v2.0.0
Loading...
Searching...
No Matches
evokedsetmodel.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef EVOKEDSETMODEL_H
36#define EVOKEDSETMODEL_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "../../disp_global.h"
43
45#include <fiff/fiff_types.h>
46
47//=============================================================================================================
48// QT INCLUDES
49//=============================================================================================================
50
51#include <QAbstractTableModel>
52#include <QSharedPointer>
53#include <QColor>
54
55//=============================================================================================================
56// EIGEN INCLUDES
57//=============================================================================================================
58
59#include <Eigen/Core>
60#include <Eigen/SparseCore>
61
62//=============================================================================================================
63// FORWARD DECLARATIONS
64//=============================================================================================================
65
66namespace FIFFLIB {
67 class FiffEvokedSet;
68 class FiffProj;
69}
70
71//=============================================================================================================
72// DEFINE NAMESPACE DISPLIB
73//=============================================================================================================
74
75namespace DISPLIB
76{
77
78//=============================================================================================================
79// DISPLIB FORWARD DECLARATIONS
80//=============================================================================================================
81
83 enum ItemRole{GetAverageData = Qt::UserRole + 1020};
84}
85
86//=============================================================================================================
87// DEFINE TYPEDEFS
88//=============================================================================================================
89
90typedef Eigen::Matrix<double,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor> MatrixXdR;
91typedef QPair<const double*,qint32> RowVectorPair;
92typedef QPair<QString, Eigen::RowVectorXd> AvrTypeRowVector;
93typedef QPair<QString, DISPLIB::RowVectorPair> AvrTypeRowVectorPair;
94
95//=============================================================================================================
101class DISPSHARED_EXPORT EvokedSetModel : public QAbstractTableModel
102{
103 Q_OBJECT
104
105public:
106 typedef QSharedPointer<EvokedSetModel> SPtr;
107 typedef QSharedPointer<const EvokedSetModel> ConstSPtr;
108
109 //=========================================================================================================
115 EvokedSetModel(QObject *parent = 0);
116
118
119 //=========================================================================================================
125 bool isInit() const;
126
127 //=========================================================================================================
133 qint32 getNumSamples() const;
134
135 //=========================================================================================================
143 virtual int rowCount(const QModelIndex &parent = QModelIndex()) const ;
144
145 //=========================================================================================================
153 virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
154
155 //=========================================================================================================
165 QVariant data(int row,
166 int column,
167 int role = Qt::DisplayRole) const;
168
169 //=========================================================================================================
178 virtual QVariant data(const QModelIndex &index,
179 int role = Qt::DisplayRole) const;
180
181 //=========================================================================================================
191 virtual QVariant headerData(int section,
192 Qt::Orientation orientation,
193 int role = Qt::DisplayRole) const;
194
195 void init();
196
197 //=========================================================================================================
203 void setEvokedSet(QSharedPointer<FIFFLIB::FiffEvokedSet> pEvokedSet);
204
205 //=========================================================================================================
206 QSharedPointer<FIFFLIB::FiffEvokedSet> getEvokedSet();
207
208 //=========================================================================================================
212 void updateData();
213
214 //=========================================================================================================
220 QSharedPointer<QMap<QString, QColor> > getAverageColor() const;
221
222 //=========================================================================================================
228 QSharedPointer<QMap<QString, bool> > getAverageActivation() const;
229
230 //=========================================================================================================
236 void setAverageColor(const QSharedPointer<QMap<QString, QColor> > qMapAverageColor);
237
238 //=========================================================================================================
244 void setAverageActivation(const QSharedPointer<QMap<QString, bool> > qMapAverageActivation);
245
246 //=========================================================================================================
254 FIFFLIB::fiff_int_t getKind(qint32 row) const;
255
256 //=========================================================================================================
264 bool getIsChannelBad(qint32 row) const;
265
266 //=========================================================================================================
274 FIFFLIB::fiff_int_t getUnit(qint32 row) const;
275
276 //=========================================================================================================
284 FIFFLIB::fiff_int_t getCoil(qint32 row) const;
285
286 //=========================================================================================================
292 const QMap<qint32,qint32>& getIdxSelMap() const;
293
294 //=========================================================================================================
300 int getNumberOfTimeSpacers() const;
301
302 //=========================================================================================================
308 QPair<QVariant,QVariant> getBaselineInfo() const;
309
310 //=========================================================================================================
316 int getNumAverages() const;
317
318 //=========================================================================================================
324 qint32 getNumPreStimSamples() const;
325
326 //=========================================================================================================
332 float getSamplingFrequency() const;
333
334 //=========================================================================================================
340 void selectRows(const QList<qint32> &selection);
341
342 //=========================================================================================================
346 void resetSelection();
347
348 //=========================================================================================================
354 qint32 numVLines() const;
355
356 //=========================================================================================================
362 bool isFreezed() const;
363
364 //=========================================================================================================
368 void updateProjection(const QList<FIFFLIB::FiffProj>& projs);
369
370 //=========================================================================================================
376 void updateCompensator(int to);
377
378 //=========================================================================================================
382 void toggleFreeze();
383
384private:
385 QSharedPointer<FIFFLIB::FiffEvokedSet> m_pEvokedSet;
386
387 QMap<qint32,qint32> m_qMapIdxRowSelection;
388 QSharedPointer<QMap<QString, QColor> > m_qMapAverageColor;
389 QSharedPointer<QMap<QString, bool> > m_qMapAverageActivation;
390 QSharedPointer<QMap<QString, QColor> > m_qMapAverageColorOld;
391 QSharedPointer<QMap<QString, bool> > m_qMapAverageActivationOld;
392
393 QList<Eigen::MatrixXd> m_matData;
394 QList<Eigen::MatrixXd> m_matDataFreeze;
395 QStringList m_lAvrTypes;
396
397 Eigen::MatrixXd m_matProj;
398 Eigen::MatrixXd m_matComp;
399 Eigen::SparseMatrix<double> m_matSparseProjCompMult;
400 Eigen::SparseMatrix<double> m_matSparseProjMult;
401 Eigen::SparseMatrix<double> m_matSparseCompMult;
402
403 Eigen::RowVectorXi m_vecBadIdcs;
404
405 QPair<QVariant,QVariant> m_pairBaseline;
406
407 bool m_bIsInit;
408 bool m_bIsFreezed;
409 bool m_bProjActivated;
410 bool m_bCompActivated;
411 float m_fSps;
412
413signals:
414 //=========================================================================================================
420 void newSelection(QList<qint32> selection);
421
422 //=========================================================================================================
428 void newAverageColorMap(const QSharedPointer<QMap<QString, QColor> > qMapAverageColor);
429
430 //=========================================================================================================
436 void newAverageActivationMap(const QSharedPointer<QMap<QString, bool> > qMapAverageActivation);
437};
438
439//=============================================================================================================
440// INLINE DEFINITIONS
441//=============================================================================================================
442} // NAMESPACE
443
444#ifndef metatype_listrowvectorxd
445#define metatype_listrowvectorxd
447#endif
448
449#ifndef metatype_listrowvectorpair
450#define metatype_listrowvectorpair
452#endif
453
454#endif // EVOKEDSETMODEL_H
The FilterKernel class represents a filter object that generates the FIR filter coefficients using Pa...
Q_DECLARE_METATYPE(DISPLIB::AvrTypeRowVector)
disp library export/import macros.
#define DISPSHARED_EXPORT
Definition disp_global.h:51
Old fiff_type declarations - replace them.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
qint32 fiff_int_t
Definition fiff_types.h:89
2-D display widgets and visualisation helpers (charts, topography, colour maps).
QPair< QString, DISPLIB::RowVectorPair > AvrTypeRowVectorPair
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > MatrixXdR
QPair< QString, Eigen::RowVectorXd > AvrTypeRowVector
QPair< const double *, qint32 > RowVectorPair
FIFFLIB::fiff_int_t getUnit(qint32 row) const
QSharedPointer< QMap< QString, bool > > getAverageActivation() const
void setAverageActivation(const QSharedPointer< QMap< QString, bool > > qMapAverageActivation)
QSharedPointer< const EvokedSetModel > ConstSPtr
QVariant data(int row, int column, int role=Qt::DisplayRole) const
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
void newSelection(QList< qint32 > selection)
void newAverageActivationMap(const QSharedPointer< QMap< QString, bool > > qMapAverageActivation)
float getSamplingFrequency() const
QSharedPointer< EvokedSetModel > SPtr
void newAverageColorMap(const QSharedPointer< QMap< QString, QColor > > qMapAverageColor)
void selectRows(const QList< qint32 > &selection)
void updateProjection(const QList< FIFFLIB::FiffProj > &projs)
void setAverageColor(const QSharedPointer< QMap< QString, QColor > > qMapAverageColor)
const QMap< qint32, qint32 > & getIdxSelMap() const
qint32 getNumPreStimSamples() const
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
QPair< QVariant, QVariant > getBaselineInfo() const
QSharedPointer< QMap< QString, QColor > > getAverageColor() const
FIFFLIB::fiff_int_t getCoil(qint32 row) const
bool getIsChannelBad(qint32 row) const
void setEvokedSet(QSharedPointer< FIFFLIB::FiffEvokedSet > pEvokedSet)
QSharedPointer< FIFFLIB::FiffEvokedSet > getEvokedSet()
EvokedSetModel(QObject *parent=0)
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
FIFFLIB::fiff_int_t getKind(qint32 row) const
SSP projector data.
Definition fiff_proj.h:82