24#ifndef INV_SENSOR_SET_H
25#define INV_SENSOR_SET_H
38#include <QSharedPointer>
75 typedef QSharedPointer<InvSensorSet>
SPtr;
76 typedef QSharedPointer<const InvSensorSet>
ConstSPtr;
91 explicit InvSensorSet(
const QSharedPointer<FWDLIB::FwdCoilSet> pFwdCoilSet);
93 inline int np()
const;
95 inline Eigen::VectorXd
ez(
int iSensor)
const;
96 inline Eigen::MatrixXd
ez()
const;
98 inline Eigen::VectorXd
r0(
int iSensor)
const;
99 inline Eigen::MatrixXd
r0()
const;
101 inline Eigen::MatrixXd
rmag(
int iSensor)
const;
102 inline Eigen::MatrixXd
rmag()
const;
104 inline Eigen::MatrixXd
cosmag(
int iSensor)
const;
105 inline Eigen::MatrixXd
cosmag()
const;
107 inline Eigen::MatrixXd
tra(
int iSensor)
const;
108 inline Eigen::MatrixXd
tra()
const;
110 inline Eigen::RowVectorXd
w(
int iSensor)
const;
111 inline Eigen::RowVectorXd
w()
const;
123 void initFromFwdCoilSet(
const QSharedPointer<FWDLIB::FwdCoilSet> pFwdCoilSet);
131 void initMatrices(
int iNchan,
int iNp);
133 Eigen::MatrixXd m_ez{Eigen::MatrixXd(0,0)};
134 Eigen::MatrixXd m_r0{Eigen::MatrixXd(0,0)};
135 Eigen::MatrixXd m_rmag{Eigen::MatrixXd(0,0)};
136 Eigen::MatrixXd m_cosmag{Eigen::MatrixXd(0,0)};
137 Eigen::MatrixXd m_tra{Eigen::MatrixXd(0,0)};
138 Eigen::RowVectorXd m_w{Eigen::RowVectorXd(0)};
159 return m_ez.row(iSensor);
169 return m_r0.row(iSensor);
179 return m_w.segment(iSensor*m_np,m_np);
189 return m_rmag.block(iSensor*m_np,0,m_np,3);
199 return m_cosmag.block(iSensor*m_np,0,m_np,3);
215 return (this->
ez() == b.
ez() &&
216 this->r0() == b.
r0() &&
217 this->rmag() == b.
rmag() &&
218 this->cosmag() == b.
cosmag() &&
219 this->tra() == b.
tra() &&
220 this->w() == b.
w() &&
221 this->np() == b.
np() &&
222 this->ncoils() == b.
ncoils());
229 bool equal =
this==&b;
243 typedef QSharedPointer<InvSensorSetCreator>
SPtr;
244 typedef QSharedPointer<const InvSensorSetCreator>
ConstSPtr;
264 QSharedPointer<FWDLIB::FwdCoilSet> m_pCoilDefinitions{
nullptr};
bool operator==(const BIDSPath &a, const BIDSPath &b)
INVLIB library export/import macros, build-info accessors, and namespace docstring for the inverse-so...
FIFF file I/O, in-memory data structures and high-level readers/writers.
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
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.
Collection of FiffDigPoint records as parsed from a FIFFB_ISOTRAK block.
Single MEG sensor coil or EEG electrode — stores the coil-local frame and the (r_mag,...
Container of FwdCoil instances acting both as the in-memory image of the coil_def....
Stores MEG sensor geometry (positions, orientations, weights, coil count) for a single sensor type.
Eigen::VectorXd r0(int iSensor) const
Eigen::MatrixXd rmag(int iSensor) const
bool operator!=(const InvSensorSet &b) const
Eigen::MatrixXd tra() const
Eigen::RowVectorXd w() const
Eigen::MatrixXd cosmag() const
Eigen::RowVectorXd w(int iSensor) const
Eigen::MatrixXd ez() const
Eigen::MatrixXd r0() const
Eigen::MatrixXd cosmag(int iSensor) const
QSharedPointer< const InvSensorSet > ConstSPtr
bool operator==(const InvSensorSet &b) const
Eigen::MatrixXd tra(int iSensor) const
InvSensorSet(const QSharedPointer< FWDLIB::FwdCoilSet > pFwdCoilSet)
QSharedPointer< InvSensorSet > SPtr
Eigen::MatrixXd rmag() const
Eigen::VectorXd ez(int iSensor) const
QSharedPointer< InvSensorSetCreator > SPtr
QSharedPointer< const InvSensorSetCreator > ConstSPtr
InvSensorSet updateSensorSet(const QList< FIFFLIB::FiffChInfo > &channelList, const Accuracy &accuracy)