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
45#include "../disp3D_global.h"
46
47#include <QStandardItemModel>
48#include <fs/fs_surface.h>
49#include <fs/fs_annotation.h>
50#include <mne/mne_bem_surface.h>
52#include <fiff/fiff_dig_point.h>
54
55namespace INVLIB {
56class InvEcdSet;
57}
58
59class NetworkTreeItem;
60
61class SurfaceTreeItem;
62class BemTreeItem;
63
67class DISP3DSHARED_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::FsSurface &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::FsAnnotation &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 INVLIB::InvEcdSet &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 CONNLIB::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.
Network class declaration.
MNESourceSpaces class declaration.
MNEBemSurface class declaration.
FsSurface class declaration.
FsAnnotation class declaration.
disp3D library export/import macros.
#define DISP3DSHARED_EXPORT
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
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)
NetworkTreeItem * addNetwork(const CONNLIB::Network &network, const QString &name="Network")
~BrainTreeModel() override=default
void addSensors(const QString &type, const QList< QStandardItem * > &items)
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:52
Tree item representing a connectivity network.
Tree item representing a FreeSurfer cortical surface in the 3-D scene hierarchy.
Free surfer annotation.
FreeSurfer surface mesh.
Definition fs_surface.h:83
Holds a set of Electric Current Dipoles.
Definition inv_ecd_set.h:81
BEM surface provides geometry information.
Source Space descritpion.