MNE-CPP  0.1.9
A Framework for Electrophysiology
mne_msh_display_surface.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef MNEMSHDISPLAYSURFACE_H
37 #define MNEMSHDISPLAYSURFACE_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../mne_global.h"
44 
45 typedef void (*mneUserFreeFunc)(void *); /* General purpose */
46 
47 //=============================================================================================================
48 // EIGEN INCLUDES
49 //=============================================================================================================
50 
51 //=============================================================================================================
52 // QT INCLUDES
53 //=============================================================================================================
54 
55 #include <QSharedPointer>
56 
57 //=============================================================================================================
58 // DEFINE NAMESPACE MNELIB
59 //=============================================================================================================
60 
61 namespace MNELIB
62 {
63 
64 //=============================================================================================================
65 // FORWARD DECLARATIONS
66 //=============================================================================================================
67 
68 class MneMorphMap;
69 class MneMshPicked;
70 class MneMshColorScaleDef;
71 class MneSurfaceOld;
72 
73 //=============================================================================================================
80 {
81 public:
82  typedef QSharedPointer<MneMshDisplaySurface> SPtr;
83  typedef QSharedPointer<const MneMshDisplaySurface> ConstSPtr;
85  //=========================================================================================================
90 
91  //=========================================================================================================
96 
97 public:
98  char *filename; /* Where did this surface come from? */
99  time_t time_loaded; /* When was the surface loaded */
100  char *subj; /* The name of the subject in SUBJECTS_DIR */
101  char *surf_name; /* The name of the surface */
102  MNELIB::MneSurfaceOld* s; /* This is the surface */
103  float eye[3]; /* Eye position for viewing */
104  float up[3]; /* Up vector for viewing */
105  float rot[3]; /* Rotation angles of the MRI (in radians) */
106  float move[3]; /* Possibly move the origin, too */
107 
108  float fov; /* Field of view (extent of the surface) */
109  float fov_scale; /* How much space to leave */
110  float minv[3]; /* Minimum values along the three coordinate axes */
111  float maxv[3]; /* Maximum values along the three coordinate axes */
112  float *trans; /* Extra transformation for this surface */
113  int sketch; /* Use sketch mode if decimated triangulation is available? */
114 
115  MNELIB::MneMorphMap **maps; /* Morphing maps from other surfaces to this */
116  int nmap; /* Normally just one */
117 
118  int overlay_type; /* What are the overlay values? */
119  float *overlay_values; /* Overlay value array */
120  int alt_overlay_type; /* A second choice for overlay */
121  float *alt_overlay_values;
122  float *marker_values; /* Marker values (will be shown in shades of marker color) */
123 
124  float *vertex_colors; /* Vertex color array */
125  MNELIB::MneMshColorScaleDef* color_scale; /* Color scale used to define these colors */
126  int nvertex_colors; /* How many components? */
127  float even_vertex_color[4]; /* This is going to be employed in case of uniform coloring */
128 
129  float *marker_colors; /* Vertex color array (for the markers) */
130  int nmarker_colors; /* How many components? */
131  int **marker_tri; /* Triangles containing markers */
132  int *marker_tri_no; /* Numbers of the marker triangles */
133  int nmarker_tri; /* How many */
134  float marker_color[4]; /* Marker color */
135  int curvature_color_mode; /* How to show curvature */
136 
137  int overlay_color_mode; /* How to show overlay data */
138  int transparent; /* Is this surface going to be transparent? */
139 
140  int show_aux_data; /* Show auxilliary data related to this surface */
141 
142  MNELIB::MneMshPicked* picked; /* Picked locations in world coordinates */
143  int npicked; /* How many */
144 
145  void *user_data; /* Can be used to store whatever */
146  mneUserFreeFunc* user_data_free; /* Function to free the above */
147 
148 // ### OLD STRUCT ###
149 // typedef struct { /* Display surface properties */
150 // char *filename; /* Where did this surface come from? */
151 // time_t time_loaded; /* When was the surface loaded */
152 // char *subj; /* The name of the subject in SUBJECTS_DIR */
153 // char *surf_name; /* The name of the surface */
154 // MNELIB::MneSurfaceOld* s; /* This is the surface */
155 // float eye[3]; /* Eye position for viewing */
156 // float up[3]; /* Up vector for viewing */
157 // float rot[3]; /* Rotation angles of the MRI (in radians) */
158 // float move[3]; /* Possibly move the origin, too */
159 
160 // float fov; /* Field of view (extent of the surface) */
161 // float fov_scale; /* How much space to leave */
162 // float minv[3]; /* Minimum values along the three coordinate axes */
163 // float maxv[3]; /* Maximum values along the three coordinate axes */
164 // float *trans; /* Extra transformation for this surface */
165 // int sketch; /* Use sketch mode if decimated triangulation is available? */
166 
167 // morphMap *maps; /* Morphing maps from other surfaces to this */
168 // int nmap; /* Normally just one */
169 
170 // int overlay_type; /* What are the overlay values? */
171 // float *overlay_values; /* Overlay value array */
172 // int alt_overlay_type; /* A second choice for overlay */
173 // float *alt_overlay_values;
174 // float *marker_values; /* Marker values (will be shown in shades of marker color) */
175 
176 // float *vertex_colors; /* Vertex color array */
177 // mshColorScaleDef* color_scale; /* Color scale used to define these colors */
178 // int nvertex_colors; /* How many components? */
179 // float even_vertex_color[4]; /* This is going to be employed in case of uniform coloring */
180 
181 // float *marker_colors; /* Vertex color array (for the markers) */
182 // int nmarker_colors; /* How many components? */
183 // int **marker_tri; /* Triangles containing markers */
184 // int *marker_tri_no; /* Numbers of the marker triangles */
185 // int nmarker_tri; /* How many */
186 // float marker_color[4]; /* Marker color */
187 // int curvature_color_mode; /* How to show curvature */
188 
189 // int overlay_color_mode; /* How to show overlay data */
190 // int transparent; /* Is this surface going to be transparent? */
191 
192 // int show_aux_data; /* Show auxilliary data related to this surface */
193 
194 // mshPicked* picked; /* Picked locations in world coordinates */
195 // int npicked; /* How many */
196 
197 // void *user_data; /* Can be used to store whatever */
198 // mneUserFreeFunc* user_data_free; /* Function to free the above */
199 // } *mshDisplaySurface,mshDisplaySurfaceRec;
200 };
201 
202 //=============================================================================================================
203 // INLINE DEFINITIONS
204 //=============================================================================================================
205 } // NAMESPACE MNELIB
206 
207 #endif // MNEMSHDISPLAYSURFACE_H
The MneMshColorScaleDef class.
The MneMorphMap class.
Definition: mne_morph_map.h:80
This defines a surface.
The MNE Msh Display Surface class holds information about a surface to be rendered.
#define MNESHARED_EXPORT
Definition: mne_global.h:56
The MneMshPicked class.
QSharedPointer< MneMshDisplaySurface > SPtr
QSharedPointer< const MneMshDisplaySurface > ConstSPtr