11 #include <QMouseEvent>
15 class ComputationThread;
17 class FAST_EXPORT
View :
public QGLWidget,
public ProcessObject,
protected QOpenGLFunctions_3_3_Core {
23 void removeAllRenderers();
24 void keyPressEvent(QKeyEvent* event);
25 void mouseMoveEvent(QMouseEvent* event);
26 void mousePressEvent(QMouseEvent* event);
27 void mouseReleaseEvent(QMouseEvent* event);
28 void wheelEvent(QWheelEvent* event);
29 void setMaximumFramerate(
unsigned int framerate);
33 void setLookAt(Vector3f cameraPosition, Vector3f targetPosition, Vector3f cameraUpVector,
float zNear = 0.1,
float zFar = 1000);
38 void recalculateCamera();
39 void setBackgroundColor(
Color color);
40 void setAutoUpdateCamera(
bool autoUpdate);
41 Vector4f getOrthoProjectionParameters();
47 std::vector<Renderer::pointer> getRenderers();
48 static QGLFormat getGLFormat();
49 Matrix4f getViewMatrix()
const;
50 Matrix4f getPerspectiveMatrix()
const;
51 void loadAttributes()
override;
56 void setZoom(
float zoom);
59 uint m_textureColor = 0;
60 uint m_textureDepth = 0;
61 std::vector<Renderer::pointer> mNonVolumeRenderers;
62 std::vector<Renderer::pointer> mVolumeRenderers;
66 Affine3f m3DViewingTransformation;
67 Vector3f mRotationPoint;
68 Vector3f mCameraPosition;
71 Matrix4f mPerspectiveMatrix;
75 unsigned int mFramerate;
77 Color mBackgroundColor;
83 float fieldOfViewX, fieldOfViewY;
86 bool mAutoUpdateCamera;
87 Vector3f mBBMin, mBBMax;
89 bool mLeftMouseButtonIsPressed;
90 bool mRightButtonIsPressed;
92 int previousX, previousY;
94 float mLeft, mRight, mBottom, mTop;
99 void getMinMaxFromBoundingBoxes(
bool transform, Vector3f&
min, Vector3f&
max);
102 void resizeGL(
int width,
int height);
103 void updateRenderersInput(
int executeToken);
104 void updateRenderers();
105 void lockRenderers();
106 void unlockRenderers();
107 void stopRenderers();
108 void resetRenderers();