v2.0.0
Loading...
Searching...
No Matches
braintreemodel.h
Go to the documentation of this file.
1//=============================================================================================================
37
38#ifndef BRAINTREEMODEL_H
39#define BRAINTREEMODEL_H
40
41//=============================================================================================================
42// INCLUDES
43//=============================================================================================================
44
46
47#include <QStandardItemModel>
48#include <fs/surface.h>
49#include <fs/annotation.h>
50#include <mne/mne_bem_surface.h>
52#include <fiff/fiff_dig_point.h>
54
55namespace INVERSELIB {
56class ECDSet;
57}
58
59class NetworkTreeItem;
60
61class SurfaceTreeItem;
62class BemTreeItem;
63
67class DISP3DRHISHARED_EXPORT BrainTreeModel : public QStandardItemModel
68{
69 Q_OBJECT
70public:
71 explicit BrainTreeModel(QObject *parent = nullptr);
72 ~BrainTreeModel() override = default;
73
74 // Helper functions to populate the tree
75 SurfaceTreeItem* addSurface(const QString &subject, const QString &hemi, const QString &surfType, const FSLIB::Surface &surface);
76
77 // Add annotation to an existing surface item? Or separate item?
78 // Usually annotation is property of a surface or child of surface.
79 // Let's attach it to the surface item for now or find the surface item and update it.
80 bool addAnnotation(const QString &subject, const QString &hemi, const FSLIB::Annotation &annotation);
81
82 // Add BEM surface
83 BemTreeItem* addBemSurface(const QString &subject, const QString &bemName, const MNELIB::MNEBemSurface &bemSurf);
84
85 // Helpers to populate the tree
86 void addSensors(const QString &type, const QList<QStandardItem*> &items);
87 void addDipoles(const INVERSELIB::ECDSet &set);
88
89 // Add digitizer points with proper categorization (Cardinal, HPI, EEG, Extra)
90 void addDigitizerData(const QList<FIFFLIB::FiffDigPoint> &digitizerPoints);
91
92 // Add source space points
93 void addSourceSpace(const MNELIB::MNESourceSpaces &srcSpace);
94
95 // Add connectivity network
96 NetworkTreeItem* addNetwork(const CONNECTIVITYLIB::Network &network, const QString &name = "Network");
97
98private:
99 // Helpers to find specific items
100 QStandardItem* getSubjectItem(const QString &subject);
101};
102
103#endif // BRAINTREEMODEL_H
FiffDigPoint class declaration.
disp3D_rhi library export/import macros.
#define DISP3DRHISHARED_EXPORT
Network class declaration.
MNESourceSpaces class declaration.
MNEBemSurface class declaration.
Annotation class declaration.
Surface class declaration.
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
This class holds information about a network, can compute a distance table and provide network metric...
Definition network.h:92
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")
SurfaceTreeItem * addSurface(const QString &subject, const QString &hemi, const QString &surfType, const FSLIB::Surface &surface)
void addSourceSpace(const MNELIB::MNESourceSpaces &srcSpace)
void addDipoles(const INVERSELIB::ECDSet &set)
BrainTreeModel(QObject *parent=nullptr)
bool addAnnotation(const QString &subject, const QString &hemi, const FSLIB::Annotation &annotation)
Tree item representing a BEM surface layer in the 3-D scene hierarchy.
Definition bemtreeitem.h:52
Tree item representing a connectivity network.
Tree item representing a FreeSurfer cortical surface in the 3-D scene hierarchy.
Free surfer annotation.
Definition annotation.h:81
FreeSurfer surface mesh.
Definition surface.h:76
Holds a set of Electric Current Dipoles.
Definition ecd_set.h:81
BEM surface provides geometry information.
Source Space descritpion.