MNE-CPP  0.1.9
A Framework for Electrophysiology
fwd_coil.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef FWDCOIL_H
38 #define FWDCOIL_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "fwd_global.h"
45 
47 
48 //=============================================================================================================
49 // EIGEN INCLUDES
50 //=============================================================================================================
51 
52 #include <Eigen/Core>
53 
54 //=============================================================================================================
55 // QT INCLUDES
56 //=============================================================================================================
57 
58 #include <QSharedPointer>
59 
60 #define FWD_COIL_UNKNOWN 0
61 
62 #define FWD_COILC_UNKNOWN 0
63 #define FWD_COILC_EEG 1000
64 #define FWD_COILC_MAG 1
65 #define FWD_COILC_AXIAL_GRAD 2
66 #define FWD_COILC_PLANAR_GRAD 3
67 #define FWD_COILC_AXIAL_GRAD2 4
68 
69 #define FWD_COIL_ACCURACY_POINT 0
70 #define FWD_COIL_ACCURACY_NORMAL 1
71 #define FWD_COIL_ACCURACY_ACCURATE 2
72 
73 #define FWD_IS_MEG_COIL(x) ((x) != FWD_COILC_EEG && (x) != FWD_COILC_UNKNOWN)
74 
75 //=============================================================================================================
76 // DEFINE NAMESPACE FWDLIB
77 //=============================================================================================================
78 
79 namespace FWDLIB
80 {
81 
82 //=============================================================================================================
89 {
90 public:
91  typedef QSharedPointer<FwdCoil> SPtr;
92  typedef QSharedPointer<const FwdCoil> ConstSPtr;
94  //=========================================================================================================
99  FwdCoil(int p_np);
100 
101  //=========================================================================================================
108  FwdCoil(const FwdCoil& p_FwdCoil);
109 
110  //=========================================================================================================
115  ~FwdCoil();
116 
117  //=========================================================================================================
127  static FwdCoil* create_eeg_el(const FIFFLIB::FiffChInfo& ch,
128  const FIFFLIB::FiffCoordTransOld* t);
129 
130  //=========================================================================================================
137  bool is_axial_coil() const;
138 
139  //=========================================================================================================
146  bool is_magnetometer_coil() const;
147 
148  //=========================================================================================================
155  bool is_planar_coil() const;
156 
157  //=========================================================================================================
164  bool is_eeg_electrode() const;
165 
166 public:
167  QString chname;
169  QString desc;
171  int type;
172  int accuracy;
173  float size;
174  float base;
175  float r0[3];
176  float ex[3];
177  float ey[3];
178  float ez[3];
179  int np;
180  float **rmag;
181  float **cosmag;
182  float *w;
184 // ### OLD STRUCT ###
185 // typedef struct {
186 // char *chname; /* Name of this channel */
187 // int coord_frame; /* Which coordinate frame are we in? */
188 // char *desc; /* Description for this type of a coil */
189 // int coil_class; /* Coil class */
190 // int type; /* Coil type */
191 // int accuracy; /* Accuracy */
192 // float size; /* Coil size */
193 // float base; /* Baseline */
194 // float r0[3]; /* Coil coordinate system origin */
195 // float ex[3]; /* Coil coordinate system unit vectors */
196 // float ey[3]; /* This stupid construction needs to be replaced with */
197 // float ez[3]; /* a coordinate transformation */
198 // int np; /* Number of integration points */
199 // float **rmag; /* The field point locations */
200 // float **cosmag; /* The corresponding direction cosines */
201 // float *w; /* The weighting coefficients */
202 // } *fwdCoil,fwdCoilRec;
203 };
204 
205 //=============================================================================================================
206 // INLINE DEFINITIONS
207 //=============================================================================================================
208 } // NAMESPACE FWDLIB
209 
210 #endif // FWDCOIL_H
QSharedPointer< const FwdCoil > ConstSPtr
Definition: fwd_coil.h:92
Channel info descriptor.
Definition: fiff_ch_info.h:74
float ** cosmag
Definition: fwd_coil.h:181
float ** rmag
Definition: fwd_coil.h:180
QSharedPointer< FwdCoil > SPtr
Definition: fwd_coil.h:91
forward library export/import macros.
QString desc
Definition: fwd_coil.h:169
Coordinate transformation descriptor.
FwdCoil description.
Definition: fwd_coil.h:88
QString chname
Definition: fwd_coil.h:167
#define FWDSHARED_EXPORT
Definition: fwd_global.h:57
FiffCoordTransOld class declaration.