MNE-CPP  beta 1.0
brainview.h
1 //=============================================================================================================
36 #ifndef BRAINVIEW_H
37 #define BRAINVIEW_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "disp3DNew_global.h"
45 
47 #include "models/stcdatamodel.h"
48 
49 #include <fs/surfaceset.h>
50 #include <fs/annotationset.h>
51 
53 
54 
55 //*************************************************************************************************************
56 //=============================================================================================================
57 // QT INCLUDES
58 //=============================================================================================================
59 
60 #include <QString>
61 #include <QSharedPointer>
62 
63 #include <Qt3DCore/window.h>
64 #include <Qt3DCore/qcamera.h>
65 #include <Qt3DCore/qentity.h>
66 #include <Qt3DCore/qcameralens.h>
67 #include <Qt3DCore/qaspectengine.h>
68 
69 #include <Qt3DInput/QInputAspect>
70 
71 #include <Qt3DRenderer/qcameraselector.h>
72 #include <Qt3DRenderer/qrenderpassfilter.h>
73 #include <Qt3DRenderer/qforwardrenderer.h>
74 #include <Qt3DRenderer/qviewport.h>
75 #include <Qt3DRenderer/qrenderaspect.h>
76 #include <Qt3DRenderer/qframegraph.h>
77 #include <Qt3DRenderer/qclearbuffer.h>
78 
79 #include <Qt3DRenderer/qcylindermesh.h>
80 
81 #include <Qt3DRenderer/QPointLight>
82 
83 
84 //*************************************************************************************************************
85 //=============================================================================================================
86 // Eigen INCLUDES
87 //=============================================================================================================
88 
89 #include <Eigen/Core>
90 
91 
92 //*************************************************************************************************************
93 //=============================================================================================================
94 // FORWARD DECLARATIONS
95 //=============================================================================================================
96 
97 
98 //*************************************************************************************************************
99 //=============================================================================================================
100 // DEFINE NAMESPACE DISP3DLIB
101 //=============================================================================================================
102 
103 namespace DISP3DNEWLIB
104 {
105 
106 //*************************************************************************************************************
107 //=============================================================================================================
108 // USED NAMESPACES
109 //=============================================================================================================
110 
111 using namespace FSLIB;
112 using namespace Eigen;
113 using namespace Qt3D;
114 
115 
116 //*************************************************************************************************************
117 //=============================================================================================================
118 // FORWARD DECLARATIONS
119 //=============================================================================================================
120 
121 
122 //=============================================================================================================
129 class DISP3DNEWSHARED_EXPORT BrainView : public Qt3D::Window
130 {
131  Q_OBJECT
132 public:
133  typedef QSharedPointer<BrainView> SPtr;
134  typedef QSharedPointer<const BrainView> ConstSPtr;
136  //=========================================================================================================
141  explicit BrainView();
142 
143  //=========================================================================================================
152  explicit BrainView(const QString &subject_id, qint32 hemi, const QString &surf, const QString &subjects_dir);
153 
154  //=========================================================================================================
164  explicit BrainView(const QString &subject_id, qint32 hemi, const QString &surf, const QString &atlas, const QString &subjects_dir);
165 
166  //=========================================================================================================
172  explicit BrainView(const QString& p_sFile);
173 
174  //=========================================================================================================
178  ~BrainView();
179 
180  //=========================================================================================================
186  void addSourceEstimate(MNESourceEstimate &p_sourceEstimate);
187 
188 
189  void initStcDataModel(const QString &subject_id, qint32 hemi, const QString &surf, const QString &subjects_dir, const QString &atlas, const MNEForwardSolution &forwardSolution);
190 
191 protected:
192  //=========================================================================================================
203  void init(const QString& p_sFile, const QString &subject_id, qint32 hemi, const QString &surf, const QString &atlas, const QString &subjects_dir);
204 
205  void createCoordSystem(QEntity *rootEntity);
206 
207  //=========================================================================================================
213  void mousePressEvent(QMouseEvent *e);
214 
215  QAspectEngine m_Engine;
216  QInputAspect *m_pAspectInput;
217  QVariantMap m_data;
218 
219  Qt3D::QEntity * m_pRootEntity;
220  QSharedPointer<Qt3D::QEntity> m_XAxisEntity;
221  QSharedPointer<Qt3D::QEntity> m_YAxisEntity;
222  QSharedPointer<Qt3D::QEntity> m_ZAxisEntity;
223 
224  BrainSurface::SPtr m_pBrainSurfaceEntity;
225 
226  StcDataModel::SPtr m_pStcDataModel;
227 
228 private:
229 
230 };
231 
232 } // NAMESPACE
233 
234 #endif // BRAINVIEW_H
QSharedPointer< StcDataModel > SPtr
Definition: stcdatamodel.h:131
Declaration of BrainSurface which holds the basic functionality of a freesurfer brain surface...
StcDataModel class declaration.
QSharedPointer< BrainView > SPtr
Definition: brainview.h:133
SurfaceSet class declaration.
FreeSurfer surface visualisation.
Definition: brainview.h:129
QSharedPointer< const BrainView > ConstSPtr
Definition: brainview.h:134
QSharedPointer< BrainSurface > SPtr
Definition: brainsurface.h:114
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
AnnotationSet class declaration.