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
disp3D library export/import macros.
#define DISP3DSHARED_EXPORT
FiffDigPoint class declaration.
FsSurface class declaration.
FsAnnotation class declaration.
MNESourceSpaces class declaration.
MNEBemSurface class declaration.
Network 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
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.