23#ifndef MNESOURCESPACE_H
24#define MNESOURCESPACE_H
71 using SPtr = std::shared_ptr<MNESourceSpace>;
72 using ConstSPtr = std::shared_ptr<const MNESourceSpace>;
73 using UPtr = std::unique_ptr<MNESourceSpace>;
171 static std::unique_ptr<MNESourceSpace>
load_surface(
const QString& surf_file,
172 const QString& curv_file);
184 static std::unique_ptr<MNESourceSpace>
load_surface_geom(
const QString& surf_file,
185 const QString& curv_file,
187 bool check_too_many_neighbors);
215 std::vector<std::unique_ptr<MNESourceSpace>>& spaces,
216 QTextStream* filtered);
221 const QString& bemfile,
223 std::vector<std::unique_ptr<MNESourceSpace>>& spaces,
224 QTextStream* filtered,
228 std::vector<std::unique_ptr<MNESourceSpace>>& spaces);
232 std::vector<std::unique_ptr<MNESourceSpace>>& spaces);
235 const QStringList& labels,
239 Eigen::VectorXi& sel);
281 static QList<Eigen::VectorXi>
gradeToVertices(
const QString& subjectsDir,
const QString&
subject,
int grade);
Discriminated geometry container that can represent either a triangulated surface or a discrete/volum...
MNELIB shared-library export/import macros and library build metadata.
Core MNE data structures (source spaces, source estimates, hemispheres).
Labelled 4x4 FIFF affine: source frame, destination frame, rotation, translation and cached inverse.
QSharedPointer< FiffStream > SPtr
Thread-local arguments for parallel raw data filtering (channel range, filter kernel,...
Hemisphere provides geometry information.
virtual MNESourceSpace::SPtr clone() const
std::unique_ptr< MNESourceSpace > UPtr
static std::unique_ptr< MNESourceSpace > load_surface(const QString &surf_file, const QString &curv_file)
void rearrange_source_space()
qint32 find_source_space_hemi() const
static QList< Eigen::VectorXi > gradeToVertices(const QString &subjectsDir, const QString &subject, int grade)
std::shared_ptr< MNESourceSpace > SPtr
static std::unique_ptr< MNESourceSpace > make_volume_source_space(const MNESurface &surf, float grid, float exclude, float mindist)
static int restrict_sources_to_labels(std::vector< std::unique_ptr< MNESourceSpace > > &spaces, const QStringList &labels, int nlabel)
static int filter_source_spaces(const MNESurface &surf, float limit, const FIFFLIB::FiffCoordTrans &mri_head_t, std::vector< std::unique_ptr< MNESourceSpace > > &spaces, QTextStream *filtered)
bool is_left_hemi() const
static int read_source_spaces(const QString &name, std::vector< std::unique_ptr< MNESourceSpace > > &spaces)
static std::unique_ptr< MNESourceSpace > create_source_space(int np)
static std::unique_ptr< MNESourceSpace > load_surface_geom(const QString &surf_file, const QString &curv_file, bool add_geometry, bool check_too_many_neighbors)
static MNEHemisphere icoDownsample(const MNEHemisphere &hemi, int icoGrade)
static void filter_source_space(FilterThreadArg *arg)
int writeToStream(FIFFLIB::FiffStream::SPtr &stream, bool selected_only) const
std::shared_ptr< const MNESourceSpace > ConstSPtr
int transform_source_space(const FIFFLIB::FiffCoordTrans &t)
static int read_label(const QString &label, Eigen::VectorXi &sel)
static int transform_source_spaces_to(int coord_frame, const FIFFLIB::FiffCoordTrans &t, std::vector< std::unique_ptr< MNESourceSpace > > &spaces)
void update_inuse(Eigen::VectorXi new_inuse)
void enable_all_sources()
Lightweight triangulated surface (vertices, triangles, normals).
MNESurfaceOrVolume()
Constructs the MNE FsSurface or Volume.