v2.0.0
Loading...
Searching...
No Matches
fwd_coil_set.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef FWD_COIL_SET_H
31#define FWD_COIL_SET_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "fwd_global.h"
38#include "fwd_coil.h"
39#include <fiff/fiff_types.h>
40
41//=============================================================================================================
42// EIGEN INCLUDES
43//=============================================================================================================
44
45#include <Eigen/Core>
46
47//=============================================================================================================
48// QT INCLUDES
49//=============================================================================================================
50
51#include <QSharedPointer>
52
53#include <memory>
54#include <vector>
55
56//=============================================================================================================
57// DEFINE NAMESPACE FWDLIB
58//=============================================================================================================
59
60namespace FWDLIB
61{
62class FwdBemSolution;
63//=============================================================================================================
72{
73public:
74 typedef QSharedPointer<FwdCoilSet> SPtr;
75 typedef QSharedPointer<const FwdCoilSet> ConstSPtr;
76 typedef std::unique_ptr<FwdCoilSet> UPtr;
77
78 //=========================================================================================================
82 FwdCoilSet();
83
84 //=========================================================================================================
89
90 //=========================================================================================================
102
103 //=========================================================================================================
115 FwdCoilSet::UPtr create_meg_coils(const QList<FIFFLIB::FiffChInfo>& chs,
116 int nch,
117 int acc,
119
120 //=========================================================================================================
131 static FwdCoilSet::UPtr create_eeg_els(const QList<FIFFLIB::FiffChInfo>& chs,
132 int nch,
134
135 //=========================================================================================================
143 static FwdCoilSet::UPtr read_coil_defs(const QString& name);
144
145 //=========================================================================================================
154
155 //=========================================================================================================
163 bool is_planar_coil_type(int type) const;
164
165 //=========================================================================================================
173 bool is_axial_coil_type(int type) const;
174
175 //=========================================================================================================
183 bool is_magnetometer_coil_type(int type) const;
184
185 //=========================================================================================================
193 bool is_eeg_electrode_type(int type) const;
194
195private:
196 //=========================================================================================================
210 FwdCoil* fwd_add_coil_to_set(int type, int coil_class, int acc, int np, float size, float base, const QString& desc);
211
212public:
213 std::vector<FwdCoil::UPtr> coils;
215 std::unique_ptr<FwdBemSolution> user_data;
216
222 inline int ncoil() const
223 {
224 return static_cast<int>(coils.size());
225 }
226};
227
228//=============================================================================================================
229// INLINE DEFINITIONS
230//=============================================================================================================
231} // NAMESPACE FWDLIB
232
233#endif // FWD_COIL_SET_H
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
Symbol-visibility macro and build-info entry points for the FWDLIB (MEG/EEG forward-modelling) librar...
#define FWDSHARED_EXPORT
Definition fwd_global.h:44
Single MEG sensor coil or EEG electrode described by a set of weighted integration points in its own ...
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
Definition compute_fwd.h:85
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.
Channel-specific projection that contracts a BEM node-potential vector down to one entry per MEG coil...
Single MEG sensor coil or EEG electrode — stores the coil-local frame and the (r_mag,...
Definition fwd_coil.h:93
std::unique_ptr< FwdCoil > UPtr
Definition fwd_coil.h:95
static FwdCoilSet::UPtr read_coil_defs(const QString &name)
bool is_axial_coil_type(int type) const
std::unique_ptr< FwdBemSolution > user_data
bool is_magnetometer_coil_type(int type) const
QSharedPointer< const FwdCoilSet > ConstSPtr
bool is_planar_coil_type(int type) const
FwdCoil::UPtr create_meg_coil(const FIFFLIB::FiffChInfo &ch, int acc, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
bool is_eeg_electrode_type(int type) const
FwdCoilSet::UPtr create_meg_coils(const QList< FIFFLIB::FiffChInfo > &chs, int nch, int acc, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
QSharedPointer< FwdCoilSet > SPtr
static FwdCoilSet::UPtr create_eeg_els(const QList< FIFFLIB::FiffChInfo > &chs, int nch, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
std::unique_ptr< FwdCoilSet > UPtr
std::vector< FwdCoil::UPtr > coils
FwdCoilSet::UPtr dup_coil_set(const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans()) const