16 #ifndef SURGSIM_GRAPHICS_OSGVIEW_H 17 #define SURGSIM_GRAPHICS_OSGVIEW_H 19 #include <osgViewer/Viewer> 21 #include "SurgSim/Graphics/View.h" 26 class DisplaySettings;
47 class OsgTrackballZoomManipulator;
49 SURGSIM_STATIC_REGISTRATION(OsgView);
65 explicit OsgView(
const std::string& name);
72 void setPosition(
const std::array<int, 2>& position)
override;
74 std::array<int, 2> getPosition()
const override;
76 void setDimensions(
const std::array<int, 2>& dimensions)
override;
78 std::array<int, 2> getDimensions()
const override;
80 void setDimensionsDouble(
const std::array<double, 2>& dimensions)
override;
82 std::array<double, 2> getDimensionsDouble()
const override;
84 void setWindowBorderEnabled(
bool enabled)
override;
86 bool isWindowBorderEnabled()
const override;
92 void setCamera(std::shared_ptr<SurgSim::Framework::Component> camera)
override;
97 void enableManipulator(
bool val);
100 bool isManipulatorEnabled();
125 void setOsgMapsUniforms(
bool val);
128 bool getOsgMapsUniforms();
132 std::shared_ptr<SurgSim::Input::CommonDevice> getKeyboardDevice();
136 void enableKeyboardDevice(
bool val);
139 bool isKeyboardDeviceEnabled();
143 std::shared_ptr<SurgSim::Input::CommonDevice> getMouseDevice();
147 void enableMouseDevice(
bool val);
150 bool isMouseDeviceEnabled();
152 void update(
double dt)
override;
155 osg::ref_ptr<osgViewer::View> getOsgView()
const;
160 bool doInitialize()
override;
163 bool doWakeUp()
override;
166 int doSetTargetScreen(
int val)
override;
170 virtual osg::ref_ptr<osg::DisplaySettings> createDisplaySettings()
const;
175 void fixupStatsHandler(osgViewer::StatsHandler* statsHandler);
178 std::array<int, 2> m_position;
180 std::array<int, 2> m_dimensions;
181 std::array<int, 2> m_screenDimensions = {};
183 bool m_isWindowBorderEnabled;
187 bool m_isFirstUpdate;
189 bool m_areWindowSettingsDirty;
192 osg::ref_ptr<osgViewer::View> m_view;
195 bool m_osgMapUniforms;
197 osg::ref_ptr<OsgTrackballZoomManipulator> m_manipulator;
202 bool m_keyboardEnabled;
203 std::shared_ptr<SurgSim::Devices::KeyboardDevice> m_keyboardDevice;
207 std::shared_ptr<SurgSim::Devices::MouseDevice> m_mouseDevice;
214 #endif // SURGSIM_GRAPHICS_OSGVIEW_H Base graphics view class, which defines the basic interface for all graphics views.
Definition: View.h:39
Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:57
OSG-based implementation of graphics view class.
Definition: OsgView.h:56