4 #include <QOpenGLWidget> 5 #include <QTabletEvent> 9 #include <QScopedPointer> 10 #include <QDragEnterEvent> 11 #include <QDragLeaveEvent> 12 #include <QDragMoveEvent> 15 #include <osg/ref_ptr> 16 #include <osg/observer_ptr> 17 #include <osgViewer/GraphicsWindow> 18 #include <osgViewer/CompositeViewer> 19 #include <osgViewer/Viewer> 22 #include <osg/GraphicsContext> 24 #include "RootScene.h" 26 #include "../libSGControls/Manipulator.h" 27 #include "../libSGControls/EventHandler.h" 28 #include "../libSGControls/ViewerCommand.h" 33 class Viewer :
public osgViewer::Viewer {
35 virtual void setUpThreading()
37 if (_threadingModel == osgViewer::ViewerBase::SingleThreaded){
38 if (_threadsRunning) this->stopThreading();
40 if (!_threadsRunning) this->startThreading();
57 GLWidget(
RootScene* root, QUndoStack* stack, QWidget* parent=0, Qt::WindowFlags f = 0);
60 osg::Camera* getCamera()
const;
67 void setCameraView(
const osg::Vec3d& eye,
const osg::Vec3d& center,
const osg::Vec3d& up,
const double& fov2);
70 void getCameraView(osg::Vec3d& eye, osg::Vec3d& center, osg::Vec3d& up,
double& fov)
const;
89 void FOVSet(
double fov);
92 void importPhoto(
const QString& path,
const QString& fileName);
96 void setTabletActivity(
bool active);
100 QPixmap getScreenShot(
const osg::Vec3d& eye,
const osg::Vec3d& center,
const osg::Vec3d& up);
105 void onFOVChangedSlider(
double fov);
108 void onOrthoSet(
bool ortho);
112 virtual void initializeGL();
113 virtual void paintGL();
114 virtual void resizeGL(
int w,
int h);
116 virtual void keyPressEvent(QKeyEvent* event);
117 virtual void keyReleaseEvent(QKeyEvent* event);
119 virtual void mouseMoveEvent(QMouseEvent* event);
120 virtual void mousePressEvent(QMouseEvent* event);
121 virtual void mouseDoubleClickEvent(QMouseEvent* event);
122 virtual void mouseReleaseEvent(QMouseEvent* event);
123 virtual void wheelEvent(QWheelEvent* event);
124 virtual void tabletEvent(QTabletEvent* event);
126 virtual bool event(QEvent* event);
130 void dragEnterEvent(QDragEnterEvent* event);
131 void dragLeaveEvent(QDragLeaveEvent* event);
132 void dragMoveEvent(QDragMoveEvent* event);
133 void dropEvent(QDropEvent* event);
136 virtual void onHome();
138 virtual void onResize(
int w,
int h);
140 osgGA::EventQueue* getEventQueue()
const;
144 osg::ref_ptr<osg::GraphicsContext::Traits> m_traits;
145 osg::ref_ptr<osgViewer::GraphicsWindowEmbedded> m_graphicsWindow;
146 osg::ref_ptr<Viewer> m_viewer;
147 osg::observer_ptr<RootScene> m_RootScene;
149 QTabletEvent::TabletDevice m_TabletDevice;
156 osg::ref_ptr<Manipulator> m_manipulator;
157 osg::ref_ptr<EventHandler> m_EH;
161 QUndoStack* m_viewStack;
162 osg::Vec3d m_eye, m_center, m_up;
An OpenSceneGraph events that were passed from Qt's interface - GLWidget. Event handler is where all ...
Definition: EventHandler.h:47
An overridden osgViewer::Viewer class that avoids setting the CPU affinity to core 0 by overwriting s...
Definition: GLWidget.h:33
Contains all the entities that will appear on the scene: both user scene and utility entities (i...
Definition: RootScene.h:46
MOUSE_MODE
Definition: Settings.h:97
Settings is a configuration variables file for Cherish: enums, consts, defaults. Contains settings su...