MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
view3D.h
Go to the documentation of this file.
1//=============================================================================================================
36#ifndef DISP3DLIB_VIEW3D_H
37#define DISP3DLIB_VIEW3D_H
38
39//=============================================================================================================
40// INCLUDES
41//=============================================================================================================
42
43#include "../../disp3D_global.h"
45
46//=============================================================================================================
47// QT INCLUDES
48//=============================================================================================================
49
50#include <Qt3DExtras/Qt3DWindow>
51#include <QVector3D>
52#include <QPointer>
53#include <QObjectPicker>
54#include <Qt3DCore>
55
56//=============================================================================================================
57// FORWARD DECLARATIONS
58//=============================================================================================================
59
60class QPropertyAnimation;
61
62namespace Qt3DRender {
63 class QPointLight;
64 class QRenderCaptureReply;
65 class QPickEvent;
66 class QRenderSurfaceSelector;
67 class QViewport;
68}
69
70//=============================================================================================================
71// DEFINE NAMESPACE DISP3DLIB
72//=============================================================================================================
73
74namespace DISP3DLIB
75{
76
77//=============================================================================================================
78// DISP3DLIB FORWARD DECLARATIONS
79//=============================================================================================================
80
81class Data3DTreeModel;
82class CustomFrameGraph;
83
84//=============================================================================================================
90class DISP3DSHARED_EXPORT View3D : public Qt3DExtras::Qt3DWindow
91{
92 Q_OBJECT
93
94public:
95 typedef QSharedPointer<View3D> SPtr;
96 typedef QSharedPointer<const View3D> ConstSPtr;
98 //=========================================================================================================
102 explicit View3D(/*QWidget *parent = 0*/);
103
104 //=========================================================================================================
108 ~View3D();
109
110 //=========================================================================================================
116 void setModel(QSharedPointer<DISP3DLIB::Data3DTreeModel> pModel);
117
118 //=========================================================================================================
124 void setSceneColor(const QColor& colSceneColor);
125
126 //=========================================================================================================
130 void startStopCameraRotation(bool bChecked);
131
132 //=========================================================================================================
139 void setCameraRotation(float fAngle);
140
141 //=========================================================================================================
148 Qt3DCore::QTransform getCameraTransform();
149
150 //=========================================================================================================
154 void toggleCoordAxis(bool bChecked);
155
156 //=========================================================================================================
160 void showFullScreen(bool bChecked);
161
162 //=========================================================================================================
166 void setLightColor(const QColor &color);
167
168 //=========================================================================================================
172 void setLightIntensity(double value);
173
174 //=========================================================================================================
180 void takeScreenshot();
181
182 //=========================================================================================================
188 void activatePicker(const bool bActivatePicker);
189
190 //=========================================================================================================
194 void showSingleView();
195
196 //=========================================================================================================
200 void showMultiView();
201
202protected:
203
204 void saveScreenshot();
205
206 //=========================================================================================================
210 void initLight();
211
212 //=========================================================================================================
216 void initObjectPicking();
217
218 //=========================================================================================================
222 void keyPressEvent(QKeyEvent* e) override;
223
224 //=========================================================================================================
230 void createCoordSystem(Qt3DCore::QEntity* parent);
231
232 //=========================================================================================================
238 void handlePickerPress(Qt3DRender::QPickEvent *qPickEvent);
239
240 //=========================================================================================================
244 void initSingleCam();
245
246 //=========================================================================================================
250 void initMultiCams();
251
252 //=========================================================================================================
256 void initSingleView();
257
258 //=========================================================================================================
262 void initMultiView();
263
264 //=========================================================================================================
268 void updateMultiViewAspectRatio();
269
270 //=========================================================================================================
274 void setMultiViewVertical();
275
276 //=========================================================================================================
280 void setMultiViewHorizontal();
281
282 //=========================================================================================================
286 void resizeEvent(QResizeEvent *) override;
287
288 enum MultiViewOrientation{
289 Horizontal,
290 Veritical
291 };
292
293 QPointer<Qt3DCore::QEntity> m_pRootEntity;
294 QPointer<Qt3DCore::QEntity> m_p3DObjectsEntity;
295 QPointer<Qt3DCore::QEntity> m_pLightEntity;
296 QSharedPointer<Qt3DCore::QEntity> m_pCoordSysEntity;
298 QPointer<CustomFrameGraph> m_pFrameGraph;
299 QPointer<Qt3DRender::QRenderSurfaceSelector>m_pMultiFrame;
300
301 QPointer<Qt3DRender::QCamera> m_pCamera;
302 QPointer<Qt3DRender::QCamera> m_pMultiCam1;
303 QPointer<Qt3DRender::QCamera> m_pMultiCam2;
304 QPointer<Qt3DRender::QCamera> m_pMultiCam3;
306 QPointer<Qt3DRender::QViewport> m_pMultiViewport1;
307 QPointer<Qt3DRender::QViewport> m_pMultiViewport2;
308 QPointer<Qt3DRender::QViewport> m_pMultiViewport3;
310 QPointer<Qt3DRender::QRenderCaptureReply> m_pScreenCaptureReply;
311 QPointer<Qt3DRender::QObjectPicker> m_pPicker;
313 QPointer<OrbitalCameraController> m_pCamController;
314 QPointer<QPropertyAnimation> m_pCameraAnimation;
316 QList<QPointer<Qt3DRender::QPointLight> > m_lLightSources;
318 MultiViewOrientation m_MultiViewOrientation;
320signals:
321 /*
322 * Send whenever a pick event occured
323 */
324 void pickEventOccured(Qt3DRender::QPickEvent *qPickEvent);
325
326};
327} // NAMESPACE
328
329#endif // DISP3DLIB_VIEW3D_H
#define DISP3DSHARED_EXPORT
OrbitalCameraController class declaration.
Visualizes 3D data.
Definition view3D.h:91
MultiViewOrientation m_MultiViewOrientation
Definition view3D.h:318
QPointer< Qt3DRender::QCamera > m_pCamera
Definition view3D.h:301
QSharedPointer< Qt3DCore::QEntity > m_pCoordSysEntity
Definition view3D.h:296
QSharedPointer< View3D > SPtr
Definition view3D.h:95
QPointer< Qt3DRender::QViewport > m_pMultiViewport3
Definition view3D.h:308
QPointer< CustomFrameGraph > m_pFrameGraph
Definition view3D.h:298
QPointer< Qt3DRender::QCamera > m_pMultiCam2
Definition view3D.h:303
QPointer< Qt3DRender::QCamera > m_pMultiCam3
Definition view3D.h:304
QList< QPointer< Qt3DRender::QPointLight > > m_lLightSources
Definition view3D.h:316
QPointer< Qt3DRender::QObjectPicker > m_pPicker
Definition view3D.h:311
QPointer< Qt3DRender::QViewport > m_pMultiViewport1
Definition view3D.h:306
QPointer< Qt3DRender::QRenderCaptureReply > m_pScreenCaptureReply
Definition view3D.h:310
QPointer< Qt3DRender::QCamera > m_pMultiCam1
Definition view3D.h:302
QPointer< Qt3DCore::QEntity > m_p3DObjectsEntity
Definition view3D.h:294
QPointer< QPropertyAnimation > m_pCameraAnimation
Definition view3D.h:314
QPointer< Qt3DCore::QEntity > m_pLightEntity
Definition view3D.h:295
QPointer< OrbitalCameraController > m_pCamController
Definition view3D.h:313
QSharedPointer< const View3D > ConstSPtr
Definition view3D.h:96
QPointer< Qt3DRender::QViewport > m_pMultiViewport2
Definition view3D.h:307
Qt3DCore::QTransform getCameraTransform()
QPointer< Qt3DCore::QEntity > m_pRootEntity
Definition view3D.h:293