65#include <QSharedPointer>
66#include <Qt3DCore/QEntity>
67#include <QSurfaceFormat>
78using namespace MNELIB;
79using namespace DISP3DLIB;
80using namespace INVERSELIB;
81using namespace CONNECTIVITYLIB;
83using namespace FIFFLIB;
90: QStandardItemModel(parent)
91, m_pModelEntity(new Qt3DCore::QEntity())
112 return QStandardItemModel::data(index, role);
117int Data3DTreeModel::columnCount(
const QModelIndex &parent)
const
126QVariant Data3DTreeModel::headerData(
int section, Qt::Orientation orientation,
129 if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
132 data.setValue(QString(
"Data"));
133 }
else if(section == 1) {
134 data.setValue(QString(
"Description"));
145Qt::ItemFlags Data3DTreeModel::flags(
const QModelIndex &index)
const
148 if(index.column() == 1) {
149 return Qt::ItemIsEnabled;
152 return QStandardItemModel::flags(index);
158 const QString& sMriSetName,
162 QList<FsSurfaceTreeItem*> returnItemList;
164 for(
int i = 0; i < surfaceSet.
size(); ++i) {
165 if(i < annotationSet.
size()) {
166 returnItemList.append(
addSurface(sSubject, sMriSetName, surfaceSet[i], annotationSet[i]));
172 return returnItemList;
178 const QString& sMriSetName,
188 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sMriSetName);
190 if(!itemList.isEmpty()) {
205 const QString& sMeasurementSetName,
208 QList<SourceSpaceTreeItem*> pReturnItem;
214 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sMeasurementSetName);
216 if(!itemList.isEmpty()) {
231 const QString& sMeasurementSetName,
240 const QString& sMeasurementSetName,
246 bool bUseGPU =
false;
260 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sMeasurementSetName);
263 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::MeasurementItem)) {
265 pReturnItem = pMeasurementItem->
addData(tSourceEstimate,
275 pReturnItem = pMeasurementItem->
addData(tSourceEstimate,
298 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sSet);
301 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::MeasurementItem)) {
317 const QString& sMeasurementSetName,
318 const QList<Network>& networkData)
320 QList<NetworkTreeItem*> returnList;
322 for(
int i = 0; i < networkData.size(); ++i) {
334 const QString& sMeasurementSetName,
343 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sMeasurementSetName);
345 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::MeasurementItem)) {
361 const QString& sBemSetName,
370 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sBemSetName);
372 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::BemItem)) {
373 pReturnItem =
dynamic_cast<BemTreeItem*
>(itemList.first());
376 pReturnItem =
new BemTreeItem(Data3DTreeModelItemTypes::BemItem, sBemSetName);
387 const QString& sSensorSetName,
388 const QList<FIFFLIB::FiffChInfo>& lChInfo,
390 const QStringList& bads)
398 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sSensorSetName);
400 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::SensorSetItem)) {
402 if(pReturnItem == Q_NULLPTR){
403 qDebug()<<
"Dynamic cast failed, returning null pointer";
408 pReturnItem =
new SensorSetTreeItem(Data3DTreeModelItemTypes::SensorSetItem, sSensorSetName);
419 const QString& sSensorSetName,
420 const QList<FIFFLIB::FiffChInfo>& lChInfo,
421 const QStringList& bads)
429 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sSensorSetName);
433 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::SensorSetItem)) {
435 if(pReturnItem == Q_NULLPTR){
436 qDebug() <<
"Dynamic cast failed, returning null pointer";
437 pReturnItem = Q_NULLPTR;
442 pReturnItem =
new SensorSetTreeItem(Data3DTreeModelItemTypes::SensorSetItem, sSensorSetName);
453 const QString& sMeasurementSetName,
462 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sMeasurementSetName);
464 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::MeasurementItem)) {
479 const QString& sMeasurementSetName,
480 const MatrixXd& matSensorData,
483 const QString& sDataType)
485 bool bUseGPU =
false;
499 QList<QStandardItem*> itemList = pSubjectItem->
findChildren(sMeasurementSetName);
502 if(!itemList.isEmpty() && (itemList.first()->type() == Data3DTreeModelItemTypes::MeasurementItem)) {
504 pReturnItem = pMeasurementItem->
addData(matSensorData,
514 pReturnItem = pMeasurementItem->
addData(matSensorData,
539 QList<QStandardItem*> itemSubjectList = this->findItems(sSubject);
542 if(itemSubjectList.size() == 0) {
543 pReturnItem =
new SubjectTreeItem(Data3DTreeModelItemTypes::SubjectItem, sSubject);
544 itemSubjectList << pReturnItem;
545 itemSubjectList <<
new QStandardItem(pReturnItem->toolTip());
559 qRegisterMetaType<QVector<QVector<int> > >();
560 qRegisterMetaType<QVector<int> >();
562 qRegisterMetaType<QVector<Vector3f> >();
563 qRegisterMetaType<QVector<Eigen::Vector3f> >();
565 qRegisterMetaType<QList<FSLIB::Label> >();
566 qRegisterMetaType<QList<Label> >();
568 qRegisterMetaType<FIFFLIB::FiffInfo>();
569 qRegisterMetaType<FiffInfo>();
571 qRegisterMetaType<Eigen::MatrixX3i>();
572 qRegisterMetaType<MatrixX3i>();
574 qRegisterMetaType<Eigen::MatrixXd>();
575 qRegisterMetaType<MatrixXd>();
577 qRegisterMetaType<Eigen::MatrixX3f>();
578 qRegisterMetaType<MatrixX3f>();
580 qRegisterMetaType<Eigen::MatrixX4f>();
581 qRegisterMetaType<MatrixX4f>();
583 qRegisterMetaType<Eigen::VectorXf>();
584 qRegisterMetaType<VectorXf>();
586 qRegisterMetaType<Eigen::VectorXi>();
587 qRegisterMetaType<VectorXi>();
589 qRegisterMetaType<Eigen::VectorXd>();
590 qRegisterMetaType<VectorXd>();
592 qRegisterMetaType<Eigen::RowVectorXf>();
593 qRegisterMetaType<RowVectorXf>();
595 qRegisterMetaType<Eigen::Vector3f>();
596 qRegisterMetaType<Vector3f>();
598 qRegisterMetaType<Eigen::SparseMatrix<float> >();
599 qRegisterMetaType<SparseMatrix<float> >();
601 qRegisterMetaType<QSharedPointer<Eigen::SparseMatrix<float> > >();
602 qRegisterMetaType<QSharedPointer<SparseMatrix<float> > >();
FiffDigPointSet class declaration.
AnnotationSet class declaration.
SurfaceSet class declaration.
Renderable3DEntity class declaration.
Data3DTreeModel class declaration.
SensorSetTreeItem class declaration.
DigitizerTreeItem class declaration.
BemTreeItem class declaration.
MriTreeItem class declaration.
SubjectTreeItem class declaration.
SourceSpaceTreeItem class declaration.
FsSurfaceTreeItem class declaration.
MeasurementTreeItem class declaration.
FiffDigPointSet class declaration.
This class holds information about a network, can compute a distance table and provide network metric...
EcdDataTreeItem * addDipoleFitData(const QString &sSubject, const QString &sSet, const INVERSELIB::ECDSet &ecdSet)
SensorSetTreeItem * addMegSensorInfo(const QString &sSubject, const QString &sSensorSetName, const QList< FIFFLIB::FiffChInfo > &lChInfo, const MNELIB::MNEBem &sensor=MNELIB::MNEBem(), const QStringList &bads=QStringList())
QList< SourceSpaceTreeItem * > addSourceSpace(const QString &sSubject, const QString &sMeasurementSetName, const MNELIB::MNESourceSpace &sourceSpace)
QPointer< Qt3DCore::QEntity > m_pModelEntity
QPointer< Qt3DCore::QEntity > getRootEntity()
SensorDataTreeItem * addSensorData(const QString &sSubject, const QString &sMeasurementSetName, const Eigen::MatrixXd &matSensorData, const MNELIB::MNEBemSurface &tBemSurface, const FIFFLIB::FiffInfo &fiffInfo, const QString &sDataType)
SubjectTreeItem * addSubject(const QString &sSubject)
QList< FsSurfaceTreeItem * > addSurfaceSet(const QString &sSubject, const QString &sMriSetName, const FSLIB::SurfaceSet &surfaceSet, const FSLIB::AnnotationSet &annotationSet=FSLIB::AnnotationSet())
MneDataTreeItem * addSourceData(const QString &sSubject, const QString &sMeasurementSetName, const MNELIB::MNESourceEstimate &tSourceEstimate, const MNELIB::MNEForwardSolution &tForwardSolution, const FSLIB::SurfaceSet &tSurfSet, const FSLIB::AnnotationSet &tAnnotSet)
Data3DTreeModel(QObject *parent=0)
SensorSetTreeItem * addEegSensorInfo(const QString &sSubject, const QString &sSensorSetName, const QList< FIFFLIB::FiffChInfo > &lChInfo, const QStringList &bads=QStringList())
FsSurfaceTreeItem * addSurface(const QString &sSubject, const QString &sSet, const FSLIB::Surface &surface, const FSLIB::Annotation &annotation=FSLIB::Annotation())
QList< SourceSpaceTreeItem * > addForwardSolution(const QString &sSubject, const QString &sMeasurementSetName, const MNELIB::MNEForwardSolution &forwardSolution)
QStandardItem * m_pRootItem
QList< NetworkTreeItem * > addConnectivityData(const QString &sSubject, const QString &sMeasurementSetName, const QList< CONNECTIVITYLIB::Network > &networkData)
DigitizerSetTreeItem * addDigitizerData(const QString &sSubject, const QString &sMeasurementSetName, const FIFFLIB::FiffDigPointSet &digitizer)
BemTreeItem * addBemData(const QString &sSubject, const QString &sBemSetName, const MNELIB::MNEBem &bem)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
BemTreeItem provides a tree item to hold BEM models.
void addData(const MNELIB::MNEBem &tBem, Qt3DCore::QEntity *p3DEntityParent=0)
static void addItemWithDescription(QStandardItem *pItemParent, QStandardItem *pItemAdd)
QList< QStandardItem * > findChildren(int type)
DigitizerSetTreeItem provides a tree item to hold the set of digitizer data.
Provides a generic brain tree item.
Provides a generic MeasurementTreeItem.
QList< SourceSpaceTreeItem * > addData(const MNELIB::MNESourceSpace &tSourceSpace, Qt3DCore::QEntity *p3DEntityParent=0)
Provides a generic MriTreeItem.
QList< FsSurfaceTreeItem * > addData(const FSLIB::SurfaceSet &tSurfaceSet, const FSLIB::AnnotationSet &tAnnotationSet, Qt3DCore::QEntity *p3DEntityParent=0)
Provides a generic brain tree item to hold real time data.
void addData(const CONNECTIVITYLIB::Network &tNetworkData)
This item integrates GeometryInfo and Interpolation into Disp3D structure.
virtual void addData(const Eigen::MatrixXd &tSensorData)
Provides a generic SensorSetTreeItem.
void addData(const MNELIB::MNEBem &tSensor, const QList< FIFFLIB::FiffChInfo > &lChInfo, const QString &sDataType, const QStringList &bads=QStringList(), Qt3DCore::QEntity *p3DEntityParent=0)
Provides a generic brain tree item to hold real time data.
void addData(const INVERSELIB::ECDSet &pECDSet)
Provides a generic brain tree item to hold real time data.
void addData(const MNELIB::MNESourceEstimate &tSourceEstimate)
Provides a generic SubjectTreeItem.
Holds a set of digitizer points.
FIFF measurement file information.
A hemisphere set of surfaces.
Holds a set of Electric Current Dipoles.
BEM surface provides geometry information.
Source Space descritpion.