v2.0.0
Loading...
Searching...
No Matches
mne_msh_display_surface_set.h
Go to the documentation of this file.
1//=============================================================================================================
18
19#ifndef MNEMSHDISPLAYSURFACESET_H
20#define MNEMSHDISPLAYSURFACESET_H
21
22//=============================================================================================================
23// INCLUDES
24//=============================================================================================================
25
26#include "mne_global.h"
27
28//=============================================================================================================
29// EIGEN INCLUDES
30//=============================================================================================================
31
32#include <Eigen/Core>
33
34#include <memory>
35#include <vector>
36
37//=============================================================================================================
38// QT INCLUDES
39//=============================================================================================================
40
41#include <QSharedPointer>
42#include <QString>
43
44//=============================================================================================================
45// FORWARD DECLARATIONS
46//=============================================================================================================
47
48
49//=============================================================================================================
50// DEFINE NAMESPACE MNELIB
51//=============================================================================================================
52
53namespace MNELIB
54{
55
56//=============================================================================================================
57// MNELIB FORWARD DECLARATIONS
58//=============================================================================================================
59
61class MNEMshLightSet;
62class MNESurfacePatch;
63
64//=============================================================================================================
73{
74public:
75 typedef QSharedPointer<MNEMshDisplaySurfaceSet> SPtr;
76 typedef QSharedPointer<const MNEMshDisplaySurfaceSet> ConstSPtr;
77
78 //=========================================================================================================
85
86 //=========================================================================================================
91
102 static std::unique_ptr<MNEMshDisplaySurfaceSet> load(const QString& subject_id, const QString& surf, const QString& subjects_dir);
103
104
117 int add_bem_surface(const QString& filepath,
118 int kind,
119 const QString& bemname,
120 int full_geom,
121 int check);
122
131 void add_replace_surface(std::unique_ptr<MNEMshDisplaySurface> newSurf,
132 bool replace,
133 bool isDrawable);
134
135
141
146 void apply_left_eyes();
147
153
158 static void initialize_custom_lights();
159
167 static std::unique_ptr<MNEMshLightSet> dup_light_set(const MNEMshLightSet& s);
168
175 void setup_lights(const MNEMshLightSet& set);
176
177public:
178 QString subj;
179 QString morph_subj;
180 std::vector<std::unique_ptr<MNEMshDisplaySurface>> surfs;
181 std::vector<std::unique_ptr<MNESurfacePatch>> patches;
182 std::vector<float> patch_rot;
183 int nsurf;
185 Eigen::VectorXi active;
186 Eigen::VectorXi drawable;
187 std::unique_ptr<MNEMshLightSet> lights;
188 float rot[3];
189 float move[3];
190 float fov;
191 float fov_scale;
192 float eye[3];
193 float up[3];
194 float bg_color[3];
195 float text_color[3];
196};
197
198//=============================================================================================================
199// INLINE DEFINITIONS
200//=============================================================================================================
201} // NAMESPACE MNELIB
202
203#endif // MNEMSHDISPLAYSURFACESET_H
MNELIB shared-library export/import macros and library build metadata.
#define MNESHARED_EXPORT
Definition mne_global.h:40
Core MNE data structures (source spaces, source estimates, hemispheres).
The MNE Msh Display FsSurface class holds information about a surface to be rendered.
QSharedPointer< MNEMshDisplaySurfaceSet > SPtr
void setup_lights(const MNEMshLightSet &set)
static std::unique_ptr< MNEMshDisplaySurfaceSet > load(const QString &subject_id, const QString &surf, const QString &subjects_dir)
std::unique_ptr< MNEMshLightSet > lights
static std::unique_ptr< MNEMshLightSet > dup_light_set(const MNEMshLightSet &s)
void add_replace_surface(std::unique_ptr< MNEMshDisplaySurface > newSurf, bool replace, bool isDrawable)
QSharedPointer< const MNEMshDisplaySurfaceSet > ConstSPtr
std::vector< std::unique_ptr< MNEMshDisplaySurface > > surfs
std::vector< std::unique_ptr< MNESurfacePatch > > patches
int add_bem_surface(const QString &filepath, int kind, const QString &bemname, int full_geom, int check)
Collection of lights defining the lighting setup for 3-D rendering.
Cortical surface patch linking a set of vertices to a single source space point.