24#ifndef INV_SENSOR_SET_H
25#define INV_SENSOR_SET_H
38#include <QSharedPointer>
84 typedef QSharedPointer<InvSensorSet>
SPtr;
85 typedef QSharedPointer<const InvSensorSet>
ConstSPtr;
100 explicit InvSensorSet(
const QSharedPointer<FWDLIB::FwdCoilSet> pFwdCoilSet);
102 inline int np()
const;
103 inline int ncoils()
const;
104 inline Eigen::VectorXd
ez(
int iSensor)
const;
105 inline Eigen::MatrixXd
ez()
const;
107 inline Eigen::VectorXd
r0(
int iSensor)
const;
108 inline Eigen::MatrixXd
r0()
const;
110 inline Eigen::MatrixXd
rmag(
int iSensor)
const;
111 inline Eigen::MatrixXd
rmag()
const;
113 inline Eigen::MatrixXd
cosmag(
int iSensor)
const;
114 inline Eigen::MatrixXd
cosmag()
const;
116 inline Eigen::MatrixXd
tra(
int iSensor)
const;
117 inline Eigen::MatrixXd
tra()
const;
119 inline Eigen::RowVectorXd
w(
int iSensor)
const;
120 inline Eigen::RowVectorXd
w()
const;
133 void initFromFwdCoilSet(
const QSharedPointer<FWDLIB::FwdCoilSet> pFwdCoilSet);
141 void initMatrices(
int iNchan,
int iNp);
143 Eigen::MatrixXd m_ez{Eigen::MatrixXd(0, 0)};
144 Eigen::MatrixXd m_r0{Eigen::MatrixXd(0, 0)};
145 Eigen::MatrixXd m_rmag{Eigen::MatrixXd(0, 0)};
146 Eigen::MatrixXd m_cosmag{Eigen::MatrixXd(0, 0)};
147 Eigen::MatrixXd m_tra{Eigen::MatrixXd(0, 0)};
148 Eigen::RowVectorXd m_w{Eigen::RowVectorXd(0)};
169 return m_ez.row(iSensor);
179 return m_r0.row(iSensor);
189 return m_w.segment(iSensor * m_np, m_np);
199 return m_rmag.block(iSensor * m_np, 0, m_np, 3);
209 return m_cosmag.block(iSensor * m_np, 0, m_np, 3);
225 return (this->
ez() == b.
ez() &&
226 this->r0() == b.
r0() &&
227 this->rmag() == b.
rmag() &&
228 this->cosmag() == b.
cosmag() &&
229 this->tra() == b.
tra() &&
230 this->w() == b.
w() &&
231 this->np() == b.
np() &&
232 this->ncoils() == b.
ncoils());
239 bool equal =
this == &b;
254 typedef QSharedPointer<InvSensorSetCreator>
SPtr;
255 typedef QSharedPointer<const InvSensorSetCreator>
ConstSPtr;
276 QSharedPointer<FWDLIB::FwdCoilSet> m_pCoilDefinitions{
nullptr};
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)