MNE-CPP  0.1.9
A Framework for Electrophysiology
fwd_coil_set.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef FWDCOILSET_H
38 #define FWDCOILSET_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "fwd_global.h"
45 #include "fwd_coil.h"
46 #include <fiff/fiff_types.h>
47 
48 //=============================================================================================================
49 // EIGEN INCLUDES
50 //=============================================================================================================
51 
52 #include <Eigen/Core>
53 
54 //=============================================================================================================
55 // QT INCLUDES
56 //=============================================================================================================
57 
58 #include <QSharedPointer>
59 
60 typedef void (*fwdUserFreeFunc)(void *); /* General purpose */
61 
62 //=============================================================================================================
63 // DEFINE NAMESPACE FWDLIB
64 //=============================================================================================================
65 
66 namespace FWDLIB
67 {
68 
69 //=============================================================================================================
76 {
77 public:
78  typedef QSharedPointer<FwdCoilSet> SPtr;
79  typedef QSharedPointer<const FwdCoilSet> ConstSPtr;
81  //=========================================================================================================
86  FwdCoilSet();
87 
88 // //=========================================================================================================
89 // /**
90 // * Copy constructor.
91 // *
92 // * @param[in] p_FwdCoilSet FwdCoilSet which should be copied
93 // */
94 // FwdCoilSet(const FwdCoilSet& p_FwdCoilSet);
95 
96  //=========================================================================================================
101  ~FwdCoilSet();
102 
103  void fwd_free_coil_set_user_data()
104  {
105  if (user_data_free && user_data)
106  user_data_free(user_data);
107  user_data = NULL;
108  }
109 
110  //=========================================================================================================
122  FwdCoil* create_meg_coil(const FIFFLIB::FiffChInfo& ch, int acc, const FIFFLIB::FiffCoordTransOld* t);
123 
124  //=========================================================================================================
137  FwdCoilSet* create_meg_coils(const QList<FIFFLIB::FiffChInfo>& chs,
138  int nch,
139  int acc,
140  const FIFFLIB::FiffCoordTransOld* t);
141 
142  //=========================================================================================================
154  static FwdCoilSet* create_eeg_els(const QList<FIFFLIB::FiffChInfo>& chs,
155  int nch,
156  const FIFFLIB::FiffCoordTransOld* t);
157 
158  //=========================================================================================================
167  static FwdCoilSet* read_coil_defs(const QString& name);
168 
169  //=========================================================================================================
178  FwdCoilSet* dup_coil_set(const FIFFLIB::FiffCoordTransOld* t) const;
179 
180  //=========================================================================================================
189  bool is_planar_coil_type(int type) const;
190 
191  //=========================================================================================================
200  bool is_axial_coil_type(int type) const;
201 
202  //=========================================================================================================
211  bool is_magnetometer_coil_type(int type) const;
212 
213  //=========================================================================================================
222  bool is_eeg_electrode_type(int type) const;
223 
224 public:
225  FwdCoil **coils; /*< The coil or electrode positions >*/
226  int ncoil; /*< Number of coils >*/
227  int coord_frame; /*< Common coordinate frame >*/
228  void *user_data; /*< We can put whatever in here >*/
229  fwdUserFreeFunc user_data_free;
230 
231 // ### OLD STRUCT ###
232 // typedef struct {
233 // fwdCoil *coils; /* The coil or electrode positions */
234 // int ncoil;
235 // int coord_frame; /* Common coordinate frame */
236 // void *user_data; /* We can put whatever in here */
237 // fwdUserFreeFunc user_data_free;
238 // } *fwdCoilSet,fwdCoilSetRec; /* A collection of the above */
239 };
240 
241 //=============================================================================================================
242 // INLINE DEFINITIONS
243 //=============================================================================================================
244 } // NAMESPACE FWDLIB
245 
246 #endif // FWDCOILSET_H
Old fiff_type declarations - replace them.
Channel info descriptor.
Definition: fiff_ch_info.h:74
FwdCoilSet description.
Definition: fwd_coil_set.h:75
forward library export/import macros.
Coordinate transformation descriptor.
QSharedPointer< const FwdCoilSet > ConstSPtr
Definition: fwd_coil_set.h:79
FwdCoil description.
Definition: fwd_coil.h:88
QSharedPointer< FwdCoilSet > SPtr
Definition: fwd_coil_set.h:78
#define FWDSHARED_EXPORT
Definition: fwd_global.h:57
FwdCoil class declaration.