v2.0.0
Loading...
Searching...
No Matches
braintreemodel.h
Go to the documentation of this file.
1//=============================================================================================================
24
25#ifndef BRAINTREEMODEL_H
26#define BRAINTREEMODEL_H
27
28//=============================================================================================================
29// INCLUDES
30//=============================================================================================================
31
32#include "../disp3D_global.h"
33
34#include <QStandardItemModel>
35#include <fs/fs_surface.h>
36#include <fs/fs_annotation.h>
37#include <mne/mne_bem_surface.h>
39#include <fiff/fiff_dig_point.h>
41
42namespace INVLIB {
43class InvEcdSet;
44}
45
46class NetworkTreeItem;
47
48class SurfaceTreeItem;
49class BemTreeItem;
50
54class DISP3DSHARED_EXPORT BrainTreeModel : public QStandardItemModel
55{
56 Q_OBJECT
57public:
58 explicit BrainTreeModel(QObject *parent = nullptr);
59 ~BrainTreeModel() override = default;
60
61 // Helper functions to populate the tree
62 SurfaceTreeItem* addSurface(const QString &subject, const QString &hemi, const QString &surfType, const FSLIB::FsSurface &surface);
63
64 // Add annotation to an existing surface item? Or separate item?
65 // Usually annotation is property of a surface or child of surface.
66 // Let's attach it to the surface item for now or find the surface item and update it.
67 bool addAnnotation(const QString &subject, const QString &hemi, const FSLIB::FsAnnotation &annotation);
68
69 // Add BEM surface
70 BemTreeItem* addBemSurface(const QString &subject, const QString &bemName, const MNELIB::MNEBemSurface &bemSurf);
71
72 // Helpers to populate the tree
73 void addSensors(const QString &type, const QList<QStandardItem*> &items);
74 void addDipoles(const INVLIB::InvEcdSet &set);
75
76 // Add digitizer points with proper categorization (Cardinal, HPI, EEG, Extra)
77 void addDigitizerData(const QList<FIFFLIB::FiffDigPoint> &digitizerPoints);
78
79 // Add source space points
80 void addSourceSpace(const MNELIB::MNESourceSpaces &srcSpace);
81
82 // Add connectivity network
83 NetworkTreeItem* addNetwork(const CONNECTIVITYLIB::Network &network, const QString &name = "Network");
84
85private:
86 // Helpers to find specific items
87 QStandardItem* getSubjectItem(const QString &subject);
88};
89
90#endif // BRAINTREEMODEL_H
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
Reader and in-memory representation of a single FreeSurfer triangular surface (e.g....
Reader for FreeSurfer per-vertex annotation (parcellation) files such as lh.aparc....
Single closed BEM surface (triangulation, normals, conductivity).
Container pairing the left and right cortical source spaces of a subject.
Graph container that stores the result of one functional-connectivity metric as nodes (sources/sensor...
Single digitization point (FIFF_DIG_POINT) with kind (cardinal/HPI/EEG/extra), identifier and 3D coor...
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Graph container for one connectivity metric; nodes + weighted edges + threshold/visualisation state.
Definition network.h:98
void addDipoles(const INVLIB::InvEcdSet &set)
SurfaceTreeItem * addSurface(const QString &subject, const QString &hemi, const QString &surfType, const FSLIB::FsSurface &surface)
BemTreeItem * addBemSurface(const QString &subject, const QString &bemName, const MNELIB::MNEBemSurface &bemSurf)
void addDigitizerData(const QList< FIFFLIB::FiffDigPoint > &digitizerPoints)
~BrainTreeModel() override=default
void addSensors(const QString &type, const QList< QStandardItem * > &items)
NetworkTreeItem * addNetwork(const CONNECTIVITYLIB::Network &network, const QString &name="Network")
bool addAnnotation(const QString &subject, const QString &hemi, const FSLIB::FsAnnotation &annotation)
void addSourceSpace(const MNELIB::MNESourceSpaces &srcSpace)
BrainTreeModel(QObject *parent=nullptr)
Tree item representing a BEM surface layer in the 3-D scene hierarchy.
Definition bemtreeitem.h:35
Tree item representing a connectivity network.
Tree item representing a FreeSurfer cortical surface in the 3-D scene hierarchy.
Single-hemisphere FreeSurfer parcellation: vertex → region label plus embedded colortable.
In-memory FreeSurfer triangular cortical surface for one hemisphere.
Definition fs_surface.h:92
Holds a set of Electric Current Dipoles.
Definition inv_ecd_set.h:64
BEM surface provides geometry information.
List of MNESourceSpace objects forming a subject source space.