v2.0.0
Loading...
Searching...
No Matches
fwd_coil.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef FWD_COIL_H
38#define FWD_COIL_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 <memory>
59
60//=============================================================================================================
61// DEFINE NAMESPACE FWDLIB
62//=============================================================================================================
63
64namespace FWDLIB
65{
66
67//=============================================================================================================
68// COIL TYPE AND ACCURACY CONSTANTS
69//=============================================================================================================
70
71constexpr int FWD_COIL_UNKNOWN = 0;
72
73constexpr int FWD_COILC_UNKNOWN = 0;
74constexpr int FWD_COILC_EEG = 1000;
75constexpr int FWD_COILC_MAG = 1;
76constexpr int FWD_COILC_AXIAL_GRAD = 2;
77constexpr int FWD_COILC_PLANAR_GRAD = 3;
78constexpr int FWD_COILC_AXIAL_GRAD2 = 4;
79
80constexpr int FWD_COIL_ACCURACY_POINT = 0;
81constexpr int FWD_COIL_ACCURACY_NORMAL = 1;
83
84inline constexpr bool FWD_IS_MEG_COIL(int x) { return (x != FWD_COILC_EEG && x != FWD_COILC_UNKNOWN); }
85
86//=============================================================================================================
93{
94public:
95 typedef std::unique_ptr<FwdCoil> UPtr;
96
97 //=========================================================================================================
101 FwdCoil(int p_np);
102
103 //=========================================================================================================
109 FwdCoil(const FwdCoil& p_FwdCoil);
110
111 //=========================================================================================================
115 ~FwdCoil();
116
117 //=========================================================================================================
128
129 //=========================================================================================================
135 bool is_axial_coil() const;
136
137 //=========================================================================================================
143 bool is_magnetometer_coil() const;
144
145 //=========================================================================================================
151 bool is_planar_coil() const;
152
153 //=========================================================================================================
159 bool is_eeg_electrode() const;
160
161public:
162 QString chname;
164 QString desc;
166 int type;
168 float size;
169 float base;
170 Eigen::Vector3f r0;
171 Eigen::Vector3f ex;
172 Eigen::Vector3f ey;
173 Eigen::Vector3f ez;
174 int np;
175 Eigen::Matrix<float, Eigen::Dynamic, 3, Eigen::RowMajor> rmag;
176 Eigen::Matrix<float, Eigen::Dynamic, 3, Eigen::RowMajor> cosmag;
177 Eigen::VectorXf w;
178
180 Eigen::Map<const Eigen::Vector3f> pos(int j) const { return Eigen::Map<const Eigen::Vector3f>(rmag.row(j).data()); }
182 Eigen::Map<const Eigen::Vector3f> dir(int j) const { return Eigen::Map<const Eigen::Vector3f>(cosmag.row(j).data()); }
183};
184
185//=============================================================================================================
186// INLINE DEFINITIONS
187//=============================================================================================================
188} // NAMESPACE FWDLIB
189
190#endif // FWD_COIL_H
FiffCoordTrans class declaration.
Forward library export/import macros.
#define FWDSHARED_EXPORT
Definition fwd_global.h:53
Forward modelling (BEM, MEG/EEG lead fields).
Definition compute_fwd.h:91
constexpr int FWD_COIL_ACCURACY_NORMAL
Definition fwd_coil.h:81
constexpr int FWD_COILC_EEG
Definition fwd_coil.h:74
constexpr int FWD_COIL_ACCURACY_POINT
Definition fwd_coil.h:80
constexpr int FWD_COIL_ACCURACY_ACCURATE
Definition fwd_coil.h:82
constexpr bool FWD_IS_MEG_COIL(int x)
Definition fwd_coil.h:84
constexpr int FWD_COILC_PLANAR_GRAD
Definition fwd_coil.h:77
constexpr int FWD_COIL_UNKNOWN
Definition fwd_coil.h:71
constexpr int FWD_COILC_UNKNOWN
Definition fwd_coil.h:73
constexpr int FWD_COILC_AXIAL_GRAD2
Definition fwd_coil.h:78
constexpr int FWD_COILC_AXIAL_GRAD
Definition fwd_coil.h:76
constexpr int FWD_COILC_MAG
Definition fwd_coil.h:75
Channel info descriptor.
Coordinate transformation description.
std::unique_ptr< FwdCoil > UPtr
Definition fwd_coil.h:95
Eigen::Map< const Eigen::Vector3f > dir(int j) const
Definition fwd_coil.h:182
Eigen::Vector3f ey
Definition fwd_coil.h:172
QString chname
Definition fwd_coil.h:162
FwdCoil(int p_np)
Definition fwd_coil.cpp:66
Eigen::Map< const Eigen::Vector3f > pos(int j) const
Definition fwd_coil.h:180
bool is_eeg_electrode() const
Definition fwd_coil.cpp:203
Eigen::Matrix< float, Eigen::Dynamic, 3, Eigen::RowMajor > cosmag
Definition fwd_coil.h:176
static FwdCoil::UPtr create_eeg_el(const FIFFLIB::FiffChInfo &ch, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
Definition fwd_coil.cpp:125
bool is_planar_coil() const
Definition fwd_coil.cpp:196
bool is_axial_coil() const
Definition fwd_coil.cpp:180
Eigen::Vector3f ex
Definition fwd_coil.h:171
Eigen::Vector3f r0
Definition fwd_coil.h:170
Eigen::Matrix< float, Eigen::Dynamic, 3, Eigen::RowMajor > rmag
Definition fwd_coil.h:175
bool is_magnetometer_coil() const
Definition fwd_coil.cpp:189
Eigen::Vector3f ez
Definition fwd_coil.h:173
Eigen::VectorXf w
Definition fwd_coil.h:177