35#ifndef INV_SENSOR_SET_H
36#define INV_SENSOR_SET_H
49#include <QSharedPointer>
86 typedef QSharedPointer<InvSensorSet>
SPtr;
87 typedef QSharedPointer<const InvSensorSet>
ConstSPtr;
102 explicit InvSensorSet(
const QSharedPointer<FWDLIB::FwdCoilSet> pFwdCoilSet);
104 inline int np()
const;
105 inline int ncoils()
const;
106 inline Eigen::VectorXd
ez(
int iSensor)
const;
107 inline Eigen::MatrixXd
ez()
const;
109 inline Eigen::VectorXd
r0(
int iSensor)
const;
110 inline Eigen::MatrixXd
r0()
const;
112 inline Eigen::MatrixXd
rmag(
int iSensor)
const;
113 inline Eigen::MatrixXd
rmag()
const;
115 inline Eigen::MatrixXd
cosmag(
int iSensor)
const;
116 inline Eigen::MatrixXd
cosmag()
const;
118 inline Eigen::MatrixXd
tra(
int iSensor)
const;
119 inline Eigen::MatrixXd
tra()
const;
121 inline Eigen::RowVectorXd
w(
int iSensor)
const;
122 inline Eigen::RowVectorXd
w()
const;
134 void initFromFwdCoilSet(
const QSharedPointer<FWDLIB::FwdCoilSet> pFwdCoilSet);
142 void initMatrices(
int iNchan,
int iNp);
144 Eigen::MatrixXd m_ez{Eigen::MatrixXd(0,0)};
145 Eigen::MatrixXd m_r0{Eigen::MatrixXd(0,0)};
146 Eigen::MatrixXd m_rmag{Eigen::MatrixXd(0,0)};
147 Eigen::MatrixXd m_cosmag{Eigen::MatrixXd(0,0)};
148 Eigen::MatrixXd m_tra{Eigen::MatrixXd(0,0)};
149 Eigen::RowVectorXd m_w{Eigen::RowVectorXd(0)};
170 return m_ez.row(iSensor);
180 return m_r0.row(iSensor);
190 return m_w.segment(iSensor*m_np,m_np);
200 return m_rmag.block(iSensor*m_np,0,m_np,3);
210 return m_cosmag.block(iSensor*m_np,0,m_np,3);
226 return (this->
ez() == b.
ez() &&
227 this->r0() == b.
r0() &&
228 this->rmag() == b.
rmag() &&
229 this->cosmag() == b.
cosmag() &&
230 this->tra() == b.
tra() &&
231 this->w() == b.
w() &&
232 this->np() == b.
np() &&
233 this->ncoils() == b.
ncoils());
240 bool equal =
this==&b;
254 typedef QSharedPointer<InvSensorSetCreator>
SPtr;
255 typedef QSharedPointer<const InvSensorSetCreator>
ConstSPtr;
275 QSharedPointer<FWDLIB::FwdCoilSet> m_pCoilDefinitions{
nullptr};
inverse library export/import macros.
bool operator==(const BIDSPath &a, const BIDSPath &b)
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Forward modelling (BEM, MEG/EEG lead fields).
Coordinate transformation description.
Holds a set of digitizer points.
Single MEG or EEG sensor coil with integration points, weights, and coordinate frame.
Collection of FwdCoil objects representing a full MEG or EEG sensor array.
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)