28#include <QRegularExpression>
62 s->
models.push_back(std::move(m));
70 static const int def_nlayer = 4;
71 VectorXf def_unit_rads(def_nlayer);
72 def_unit_rads << 0.90f, 0.92f, 0.97f, 1.0f;
73 VectorXf def_sigmas(def_nlayer);
74 def_sigmas << 0.33f, 1.0f, 0.4e-2f, 0.33f;
86 if (filename.isEmpty())
90 if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
93 QTextStream in(&file);
100 QString line = in.readLine().trimmed();
101 if (line.isEmpty() || line.startsWith(
'#'))
104 QStringList parts = line.split(QRegularExpression(
"[:\\n\\r]"), Qt::SkipEmptyParts);
108 name = parts[0].trimmed();
111 for (
int i = 1; i + 1 < parts.size(); i += 2) {
112 bool okRad =
false, okSig =
false;
113 float r = parts[i].trimmed().toFloat(&okRad);
114 float s = parts[i + 1].trimmed().toFloat(&okSig);
115 if (!okRad || !okSig) {
119 rads.conservativeResize(nlayer + 1);
120 sigmas.conservativeResize(nlayer + 1);
135 QString name(
"Default");
137 if (!p_sName.isEmpty())
140 if (this->
nmodel() == 0) {
141 qWarning(
"No EEG sphere model definitions available");
145 for (
int k = 0; k < this->
nmodel(); k++) {
146 if (this->
models[k]->name.compare(name) == 0) {
147 qInfo(
"Selected model: %s", this->
models[k]->name.toUtf8().constData());
151 qWarning(
"EEG sphere model %s not found.", name.toUtf8().constData());
161 qInfo(
"Available EEG sphere models:");
162 for (
int k = 0; k < this->
nmodel(); k++) {
164 QString line = QString(
"\t%1 : %2").arg(this_model->
name).arg(this_model->
nlayer());
165 for (
int p = 0; p < this_model->
nlayer(); p++)
166 line += QString(
" : %1 : %2").arg(this_model->
layers[p].rel_rad, 7,
'f', 3).arg(this_model->
layers[p].sigma, 7,
'f', 3);
167 qInfo(
"%s", line.toUtf8().constData());
Named container of FwdEegSphereModel objects loaded from an mne_setup_eeg_sphere_model parameter file...
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
Multi-shell concentric-sphere head model holding the Berg-Scherg equivalent-source parameters that ac...
static FwdEegSphereModel::UPtr fwd_create_eeg_sphere_model(const QString &name, int nlayer, const Eigen::VectorXf &rads, const Eigen::VectorXf &sigmas)
std::vector< FwdEegSphereLayer > layers
std::unique_ptr< FwdEegSphereModel > UPtr
FwdEegSphereModel * fwd_select_eeg_sphere_model(const QString &p_sName)
static FwdEegSphereModelSet * fwd_add_default_eeg_sphere_model(FwdEegSphereModelSet *s)
static FwdEegSphereModelSet * fwd_add_to_eeg_sphere_model_set(FwdEegSphereModelSet *s, FwdEegSphereModel::UPtr m)
static FwdEegSphereModelSet * fwd_load_eeg_sphere_models(const QString &p_sFileName, FwdEegSphereModelSet *now)
std::vector< FwdEegSphereModel::UPtr > models
void fwd_list_eeg_sphere_models()