v2.0.0
Loading...
Searching...
No Matches
fwd_coil.h
Go to the documentation of this file.
1//=============================================================================================================
31
32#ifndef FWD_COIL_H
33#define FWD_COIL_H
34
35//=============================================================================================================
36// INCLUDES
37//=============================================================================================================
38
39#include "fwd_global.h"
40
42
43//=============================================================================================================
44// EIGEN INCLUDES
45//=============================================================================================================
46
47#include <Eigen/Core>
48
49//=============================================================================================================
50// QT INCLUDES
51//=============================================================================================================
52
53#include <memory>
54
55//=============================================================================================================
56// DEFINE NAMESPACE FWDLIB
57//=============================================================================================================
58
59namespace FWDLIB
60{
61
62//=============================================================================================================
63// COIL TYPE AND ACCURACY CONSTANTS
64//=============================================================================================================
65
66constexpr int FWD_COIL_UNKNOWN = 0;
67
68constexpr int FWD_COILC_UNKNOWN = 0;
69constexpr int FWD_COILC_EEG = 1000;
70constexpr int FWD_COILC_MAG = 1;
71constexpr int FWD_COILC_AXIAL_GRAD = 2;
72constexpr int FWD_COILC_PLANAR_GRAD = 3;
73constexpr int FWD_COILC_AXIAL_GRAD2 = 4;
74
75constexpr int FWD_COIL_ACCURACY_POINT = 0;
76constexpr int FWD_COIL_ACCURACY_NORMAL = 1;
78
79inline constexpr bool FWD_IS_MEG_COIL(int x)
80{
81 return (x != FWD_COILC_EEG && x != FWD_COILC_UNKNOWN);
82}
83
84//=============================================================================================================
93{
94public:
95 typedef std::unique_ptr<FwdCoil> UPtr;
96
97 //=========================================================================================================
103 FwdCoil(int p_np);
104
105 //=========================================================================================================
111 FwdCoil(const FwdCoil& p_FwdCoil);
112
113 //=========================================================================================================
117 ~FwdCoil();
118
119 //=========================================================================================================
130
131 //=========================================================================================================
137 bool is_axial_coil() const;
138
139 //=========================================================================================================
145 bool is_magnetometer_coil() const;
146
147 //=========================================================================================================
153 bool is_planar_coil() const;
154
155 //=========================================================================================================
161 bool is_eeg_electrode() const;
162
163public:
164 QString chname;
166 QString desc;
168 int type;
170 float size;
171 float base;
172 Eigen::Vector3f r0;
173 Eigen::Vector3f ex;
174 Eigen::Vector3f ey;
175 Eigen::Vector3f ez;
176 int np;
177 Eigen::Matrix<float, Eigen::Dynamic, 3, Eigen::RowMajor> rmag;
178 Eigen::Matrix<float, Eigen::Dynamic, 3, Eigen::RowMajor> cosmag;
179 Eigen::VectorXf w;
180
187 Eigen::Map<const Eigen::Vector3f> pos(int j) const
188 {
189 return Eigen::Map<const Eigen::Vector3f>(rmag.row(j).data());
190 }
191
197 Eigen::Map<const Eigen::Vector3f> dir(int j) const
198 {
199 return Eigen::Map<const Eigen::Vector3f>(cosmag.row(j).data());
200 }
201};
202
203//=============================================================================================================
204// INLINE DEFINITIONS
205//=============================================================================================================
206} // NAMESPACE FWDLIB
207
208#endif // FWD_COIL_H
4x4 affine FIFF coordinate transform (FIFF_COORD_TRANS) annotated with source/destination coordinate-...
Symbol-visibility macro and build-info entry points for the FWDLIB (MEG/EEG forward-modelling) librar...
#define FWDSHARED_EXPORT
Definition fwd_global.h:44
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
Definition compute_fwd.h:85
constexpr int FWD_COIL_ACCURACY_NORMAL
Definition fwd_coil.h:76
constexpr int FWD_COILC_EEG
Definition fwd_coil.h:69
constexpr int FWD_COIL_ACCURACY_POINT
Definition fwd_coil.h:75
constexpr int FWD_COIL_ACCURACY_ACCURATE
Definition fwd_coil.h:77
constexpr bool FWD_IS_MEG_COIL(int x)
Definition fwd_coil.h:79
constexpr int FWD_COILC_PLANAR_GRAD
Definition fwd_coil.h:72
constexpr int FWD_COIL_UNKNOWN
Definition fwd_coil.h:66
constexpr int FWD_COILC_UNKNOWN
Definition fwd_coil.h:68
constexpr int FWD_COILC_AXIAL_GRAD2
Definition fwd_coil.h:73
constexpr int FWD_COILC_AXIAL_GRAD
Definition fwd_coil.h:71
constexpr int FWD_COILC_MAG
Definition fwd_coil.h:70
Per-channel FIFF descriptor: identifiers, kind, calibration, coil type, channel-frame coil position a...
Labelled 4x4 FIFF affine: source frame, destination frame, rotation, translation and cached inverse.
std::unique_ptr< FwdCoil > UPtr
Definition fwd_coil.h:95
Eigen::Map< const Eigen::Vector3f > dir(int j) const
Definition fwd_coil.h:197
Eigen::Vector3f ey
Definition fwd_coil.h:174
QString chname
Definition fwd_coil.h:164
FwdCoil(int p_np)
Definition fwd_coil.cpp:43
Eigen::Map< const Eigen::Vector3f > pos(int j) const
Definition fwd_coil.h:187
bool is_eeg_electrode() const
Definition fwd_coil.cpp:179
Eigen::Matrix< float, Eigen::Dynamic, 3, Eigen::RowMajor > cosmag
Definition fwd_coil.h:178
static FwdCoil::UPtr create_eeg_el(const FIFFLIB::FiffChInfo &ch, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
Definition fwd_coil.cpp:102
bool is_planar_coil() const
Definition fwd_coil.cpp:172
bool is_axial_coil() const
Definition fwd_coil.cpp:156
Eigen::Vector3f ex
Definition fwd_coil.h:173
Eigen::Vector3f r0
Definition fwd_coil.h:172
Eigen::Matrix< float, Eigen::Dynamic, 3, Eigen::RowMajor > rmag
Definition fwd_coil.h:177
bool is_magnetometer_coil() const
Definition fwd_coil.cpp:165
Eigen::Vector3f ez
Definition fwd_coil.h:175
Eigen::VectorXf w
Definition fwd_coil.h:179