47constexpr int FAIL = -1;
91 qWarning(
"Field computation function is missing in fwd_comp_field");
107 if (comp->
work.size() == 0)
126 QList<FiffChInfo> chs;
127 QList<FiffChInfo> compchs;
134 if (!coils || coils->
ncoil() <= 0) {
135 qWarning(
"Coil data missing in fwd_make_ctf_comp_coils");
139 for (k = 0; k < coils->
ncoil(); k++) {
142 chs[k].ch_name = coil->
chname;
143 chs[k].chpos.coil_type = coil->
type;
146 nchan = coils->
ncoil();
151 compchs[k].ch_name = coil->
chname;
152 compchs[k].chpos.coil_type = coil->
type;
157 res =
set->make_comp(chs,nchan,compchs,ncomp);
183 qWarning(
"No coils to duplicate");
209 qWarning(
"Field computation function is missing in fwd_comp_field_vec");
235 for (
int k = 0; k < 3; k++) {
236 Eigen::VectorXf resRow = res.row(k).transpose();
237 Eigen::VectorXf workRow = comp->
vec_work.row(k).transpose();
240 res.row(k) = resRow.transpose();
247int FwdCompData::fwd_comp_field_grad(
const Eigen::Vector3f& rd,
const Eigen::Vector3f& Q,
FwdCoilSet& coils, Eigen::Ref<Eigen::VectorXf> res, Eigen::Ref<Eigen::VectorXf> xgrad, Eigen::Ref<Eigen::VectorXf> ygrad, Eigen::Ref<Eigen::VectorXf> zgrad,
void *
client)
252 qCritical(
"Field and gradient computation function is missing in fwd_comp_field_grad");
268 if (comp->
work.size() == 0)
275 Eigen::VectorXf vw0 = comp->
vec_work.row(0).transpose();
276 Eigen::VectorXf vw1 = comp->
vec_work.row(1).transpose();
277 Eigen::VectorXf vw2 = comp->
vec_work.row(2).transpose();
280 comp->
vec_work.row(0) = vw0.transpose();
281 comp->
vec_work.row(1) = vw1.transpose();
282 comp->
vec_work.row(2) = vw2.transpose();
289 vw0 = comp->
vec_work.row(0).transpose();
293 vw1 = comp->
vec_work.row(1).transpose();
297 vw2 = comp->
vec_work.row(2).transpose();
Old fiff_type declarations - replace them.
MNECTFCompDataSet class declaration.
std::function< int(const Eigen::Vector3f &rd, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::MatrixXf > res, void *client)> fwdVecFieldFunc
std::function< int(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, Eigen::Ref< Eigen::VectorXf > xgrad, Eigen::Ref< Eigen::VectorXf > ygrad, Eigen::Ref< Eigen::VectorXf > zgrad, void *client)> fwdFieldGradFunc
std::function< int(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, void *client)> fwdFieldFunc
FwdCompData class declaration.
Core MNE data structures (source spaces, source estimates, hemispheres).
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Forward modelling (BEM, MEG/EEG lead fields).
constexpr int FWD_COILC_EEG
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.
std::vector< FwdCoil::UPtr > coils
static int fwd_comp_field_grad(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, Eigen::Ref< Eigen::VectorXf > xgrad, Eigen::Ref< Eigen::VectorXf > ygrad, Eigen::Ref< Eigen::VectorXf > zgrad, void *client)
MNELIB::MNECTFCompDataSet * set
static int fwd_comp_field_vec(const Eigen::Vector3f &rd, FwdCoilSet &coils, Eigen::Ref< Eigen::MatrixXf > res, void *client)
fwdVecFieldFunc vec_field
static int fwd_comp_field(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, void *client)
fwdFieldGradFunc field_grad
static int fwd_make_ctf_comp_coils(MNELIB::MNECTFCompDataSet *set, FwdCoilSet *coils, FwdCoilSet *comp_coils)
static FwdCompData * fwd_make_comp_data(MNELIB::MNECTFCompDataSet *set, FwdCoilSet *coils, FwdCoilSet *comp_coils, fwdFieldFunc field, fwdVecFieldFunc vec_field, fwdFieldGradFunc field_grad, void *client)
Collection of CTF third-order gradient compensation operators.
std::unique_ptr< MNECTFCompData > current
int apply(int do_it, Eigen::Ref< Eigen::VectorXf > data, Eigen::Ref< const Eigen::VectorXf > compdata)