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
43{
44class InvEcdSet;
45}
46
47namespace DISP3DLIB
48{
49
50class NetworkTreeItem;
51class SurfaceTreeItem;
52class BemTreeItem;
53
57class DISP3DSHARED_EXPORT BrainTreeModel : public QStandardItemModel
58{
59 Q_OBJECT
60public:
61 explicit BrainTreeModel(QObject* parent = nullptr);
62 ~BrainTreeModel() override = default;
63
64 // Helper functions to populate the tree
65 SurfaceTreeItem* addSurface(const QString& subject, const QString& hemi, const QString& surfType, const FSLIB::FsSurface& surface);
66
67 // Add annotation to an existing surface item? Or separate item?
68 // Usually annotation is property of a surface or child of surface.
69 // Let's attach it to the surface item for now or find the surface item and update it.
70 bool addAnnotation(const QString& subject, const QString& hemi, const FSLIB::FsAnnotation& annotation);
71
72 // Add BEM surface
73 BemTreeItem* addBemSurface(const QString& subject, const QString& bemName, const MNELIB::MNEBemSurface& bemSurf);
74
75 // Helpers to populate the tree
76 void addSensors(const QString& type, const QList<QStandardItem*>& items);
77 void addDipoles(const INVLIB::InvEcdSet& set);
78
79 // Add digitizer points with proper categorization (Cardinal, HPI, EEG, Extra)
80 void addDigitizerData(const QList<FIFFLIB::FiffDigPoint>& digitizerPoints);
81
82 // Add source space points
83 void addSourceSpace(const MNELIB::MNESourceSpaces& srcSpace);
84
85 // Add connectivity network
86 NetworkTreeItem* addNetwork(const CONNECTIVITYLIB::Network& network, const QString& name = "Network");
87
88private:
89 // Helpers to find specific items
90 QStandardItem* getSubjectItem(const QString& subject);
91};
92
93} // namespace DISP3DLIB
94
95#endif // BRAINTREEMODEL_H
Single digitization point (FIFF_DIG_POINT) with kind (cardinal/HPI/EEG/extra), identifier and 3D coor...
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
Graph container that stores the result of one functional-connectivity metric as nodes (sources/sensor...
Reader for FreeSurfer per-vertex annotation (parcellation) files such as lh.aparc....
Reader and in-memory representation of a single FreeSurfer triangular surface (e.g....
Single closed BEM surface (triangulation, normals, conductivity).
Container pairing the left and right cortical source spaces of a subject.
3-D brain visualisation using the Qt RHI rendering backend.
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Graph container for one connectivity metric; nodes + weighted edges + threshold/visualisation state.
Definition network.h:106
SurfaceTreeItem * addSurface(const QString &subject, const QString &hemi, const QString &surfType, const FSLIB::FsSurface &surface)
void addSensors(const QString &type, const QList< QStandardItem * > &items)
NetworkTreeItem * addNetwork(const CONNECTIVITYLIB::Network &network, const QString &name="Network")
BemTreeItem * addBemSurface(const QString &subject, const QString &bemName, const MNELIB::MNEBemSurface &bemSurf)
void addDipoles(const INVLIB::InvEcdSet &set)
~BrainTreeModel() override=default
void addSourceSpace(const MNELIB::MNESourceSpaces &srcSpace)
void addDigitizerData(const QList< FIFFLIB::FiffDigPoint > &digitizerPoints)
bool addAnnotation(const QString &subject, const QString &hemi, const FSLIB::FsAnnotation &annotation)
BrainTreeModel(QObject *parent=nullptr)
Tree item representing a BEM surface layer in the 3-D scene hierarchy.
Definition bemtreeitem.h:38
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:94
Holds a set of Electric Current Dipoles.
Definition inv_ecd_set.h:67
BEM surface provides geometry information.
List of MNESourceSpace objects forming a subject source space.