MNE-CPP  beta 1.0
mne_surface.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef MNE_SURFACE_H
38 #define MNE_SURFACE_H
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // GENERAL INCLUDES
43 //=============================================================================================================
44 
45 #include <Eigen/Core>
46 
47 //*************************************************************************************************************
48 //=============================================================================================================
49 // Qt INCLUDES
50 //=============================================================================================================
51 
52 #include <QtCore/QIODevice>
53 #include <QtCore/QList>
54 #include <QtCore/QSharedPointer>
55 
56 //*************************************************************************************************************
57 //=============================================================================================================
58 // MNE INCLUDES
59 //=============================================================================================================
60 
61 #include "mne_global.h"
62 
63 //*************************************************************************************************************
64 //=============================================================================================================
65 // FIFF INCLUDES
66 //=============================================================================================================
67 
68 #include <fiff/fiff_dir_tree.h>
69 #include <fiff/fiff_stream.h>
70 #include <fiff/fiff_types.h>
71 
72 //*************************************************************************************************************
73 //=============================================================================================================
74 // DEFINE NAMESPACE MNE
75 //=============================================================================================================
76 
77 namespace MNELIB
78 {
79 
80 //*************************************************************************************************************
81 //=============================================================================================================
82 // FORWARD DECLARATIONS
83 //=============================================================================================================
84 
85 //=============================================================================================================
91 class MNESHARED_EXPORT MNESurface
92 {
93 public:
94  typedef QSharedPointer<MNESurface>SPtr;
95  typedef QSharedPointer<const MNESurface>ConstSPtr;
97  typedef Eigen::Matrix3Xf PointsT;
98  typedef Eigen::Matrix3Xf NormalsT;
99  typedef Eigen::Matrix3Xi TrianglesT;
101  //=========================================================================================================
105  MNESurface();
106 
111  {
112  }
113 
114  //=========================================================================================================
123  static bool read(QIODevice& p_IODevice, QList<MNESurface::SPtr>& surfaces);
124 
125  //=========================================================================================================
139  static bool read(FIFFLIB::FiffStream::SPtr& p_pStream, bool add_geom,
140  FIFFLIB::FiffDirTree& p_Tree, QList<MNESurface::SPtr>& surfaces);
141 
142  //=========================================================================================================
143 
144  FIFFLIB::fiff_int_t id;
145  FIFFLIB::fiff_float_t sigma;
146  FIFFLIB::fiff_int_t np;
147  FIFFLIB::fiff_int_t ntri;
148  FIFFLIB::fiff_int_t coord_frame;
149  PointsT rr;
150  NormalsT nn;
151  TrianglesT tris;
153 private:
165  static bool read(FIFFLIB::FiffStream* fiffStream,
166  const FIFFLIB::FiffDirTree& dir,
167  const FIFFLIB::fiff_int_t def_coord_frame, MNESurface::SPtr& surf);
168 };
169 
170 } // NAMESPACE
171 
172 #endif // MNE_SURFACE_H
Eigen::Matrix3Xf NormalsT
Definition: mne_surface.h:98
Old fiff_type declarations - replace them.
FiffDirTree class declaration, which provides fiff dir tree processing methods.
FIFFLIB::fiff_int_t np
Definition: mne_surface.h:146
FIFFLIB::fiff_float_t sigma
Definition: mne_surface.h:145
FIFFLIB::fiff_int_t coord_frame
Definition: mne_surface.h:148
QSharedPointer< FiffStream > SPtr
Definition: fiff_stream.h:132
FIFFLIB::fiff_int_t id
Definition: mne_surface.h:144
Eigen::Matrix3Xi TrianglesT
Definition: mne_surface.h:99
FiffStream class declaration.
Directory tree structure.
Definition: fiff_dir_tree.h:80
BEM Surface.
Definition: mne_surface.h:91
QSharedPointer< MNESurface > SPtr
Definition: mne_surface.h:94
FIFF File I/O routines.
Definition: fiff_stream.h:129
FIFFLIB::fiff_int_t ntri
Definition: mne_surface.h:147
QSharedPointer< const MNESurface > ConstSPtr
Definition: mne_surface.h:95
Eigen::Matrix3Xf PointsT
Definition: mne_surface.h:97