MNE-CPP  0.1.9
A Framework for Electrophysiology
rtsourcedataworker.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef DISP3DLIB_RTSOURCEDATAWORKER_H
36 #define DISP3DLIB_RTSOURCEDATAWORKER_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../../../../disp3D_global.h"
43 
45 
46 //=============================================================================================================
47 // QT INCLUDES
48 //=============================================================================================================
49 
50 #include <QRgb>
51 #include <QSharedPointer>
52 
53 //=============================================================================================================
54 // EIGEN INCLUDES
55 //=============================================================================================================
56 
57 #include <Eigen/SparseCore>
58 
59 //=============================================================================================================
60 // FORWARD DECLARATIONS
61 //=============================================================================================================
62 
63 //=============================================================================================================
64 // DEFINE NAMESPACE DISP3DLIB
65 //=============================================================================================================
66 
67 namespace DISP3DLIB
68 {
69 
71  double dThresholdX;
72  double dThresholdZ;
73 
74  Eigen::VectorXd vecSensorValues;
75  Eigen::MatrixX4f matOriginalVertColor;
76  Eigen::MatrixX4f matFinalVertColor;
77 
78  QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix;
80  QString sColormapType;
81  QRgb (*functionHandlerColorMap)(double v, const QString& sColorMap) = DISPLIB::ColorMap::valueToColor;
82 };
85  double dThresholdX;
86  double dThresholdZ;
87  int iFinalMatSize;
88 
89  Eigen::VectorXf vecData;
90 
91  QRgb (*functionHandlerColorMap)(double v);
92 };
93 
94 //=============================================================================================================
95 // DISP3DLIB FORWARD DECLARATIONS
96 //=============================================================================================================
97 
98 //=============================================================================================================
105 {
106  Q_OBJECT
107 
108 public:
109  typedef QSharedPointer<RtSourceDataWorker> SPtr;
110  typedef QSharedPointer<const RtSourceDataWorker> ConstSPtr;
112  //=========================================================================================================
116  explicit RtSourceDataWorker();
117 
118  //=========================================================================================================
124  void addData(const Eigen::MatrixXd& data);
125 
126  //=========================================================================================================
130  void clear();
131 
132  //=========================================================================================================
139  void setSurfaceColor(const Eigen::MatrixX4f &matColorLeft,
140  const Eigen::MatrixX4f &matColorRight);
141 
142  //=========================================================================================================
148  void setNumberAverages(int iNumAvr);
149 
150  //=========================================================================================================
156  void setStreamSmoothedData(bool bStreamSmoothedData);
157 
158  //=========================================================================================================
164  void setColormapType(const QString& sColormapType);
165 
166  //=========================================================================================================
172  void setThresholds(const QVector3D &vecThresholds);
173 
174  //=========================================================================================================
180  void setLoopState(bool bLoopState);
181 
182  //=========================================================================================================
188  void setSFreq(const double dSFreq);
189 
190  //=========================================================================================================
196  void setInterpolationMatrixLeft(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrixLeft);
197 
198  //=========================================================================================================
204  void setInterpolationMatrixRight(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrixRight);
205 
206  //=========================================================================================================
210  void streamData();
211 
212 protected:
213  //=========================================================================================================
224  static void normalizeAndTransformToColor(const Eigen::VectorXf& vecData,
225  Eigen::MatrixX4f &matFinalVertColor,
226  double dThresholdX,
227  double dThresholdZ,
228  QRgb (*functionHandlerColorMap)(double v, const QString& sColorMap),
229  const QString& sColorMap);
230 
231  //=========================================================================================================
237  static void generateColorsFromSensorValues(VisualizationInfo &visualizationInfoHemi);
238 
239  QList<Eigen::VectorXd> m_lDataQ;
240  QList<Eigen::VectorXd> m_lDataLoopQ;
241  Eigen::VectorXd m_vecAverage;
250  double m_dSFreq;
252  QList<VisualizationInfo> m_lHemiVisualizationInfo;
254 signals:
255  //=========================================================================================================
262  void newRtRawData(const Eigen::VectorXd &vecDataVectorLeftHemi,
263  const Eigen::VectorXd &vecDataVectorRightHemi);
264 
265  //=========================================================================================================
272  void newRtSmoothedData(const Eigen::MatrixX4f &matColorMatrixLeftHemi,
273  const Eigen::MatrixX4f &matColorMatrixRightHemi);
274 };
275 } // NAMESPACE
276 
277 #endif //DISP3DLIB_RTSOURCEDATAWORKER_H
DISP3DLIB::RtSourceDataWorker::m_vecAverage
Eigen::VectorXd m_vecAverage
Definition: rtsourcedataworker.h:241
DISP3DLIB::RtSourceDataWorker
This worker streams either interpolated or raw data.
Definition: rtsourcedataworker.h:104
DISP3DLIB::RtSourceDataWorker::m_lHemiVisualizationInfo
QList< VisualizationInfo > m_lHemiVisualizationInfo
Definition: rtsourcedataworker.h:252
DISP3DLIB::VisualizationInfo
Definition: rtsourcedataworker.h:70
DISPLIB::ColorMap::valueToColor
static QRgb valueToColor(double v, const QString &sMap)
Definition: colormap.h:688
DISP3DLIB::VisualizationInfo::pMatInterpolationMatrix
QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix
Definition: rtsourcedataworker.h:78
DISP3DLIB::RtSourceDataWorker::m_bStreamSmoothedData
bool m_bStreamSmoothedData
Definition: rtsourcedataworker.h:244
DISP3DLIB::RtSourceDataWorker::SPtr
QSharedPointer< RtSourceDataWorker > SPtr
Definition: rtsourcedataworker.h:109
DISP3DLIB::RtSourceDataWorker::m_iAverageSamples
int m_iAverageSamples
Definition: rtsourcedataworker.h:247
DISP3DLIB::RtSourceDataWorker::m_dSFreq
double m_dSFreq
Definition: rtsourcedataworker.h:250
DISP3DLIB::RtSourceDataWorker::ConstSPtr
QSharedPointer< const RtSourceDataWorker > ConstSPtr
Definition: rtsourcedataworker.h:110
DISP3DLIB::RtSourceDataWorker::m_lDataQ
QList< Eigen::VectorXd > m_lDataQ
Definition: rtsourcedataworker.h:239
DISP3DLIB::RtSourceDataWorker::m_iCurrentSample
int m_iCurrentSample
Definition: rtsourcedataworker.h:246
DISP3DLIB::ColorComputationInfo
Definition: rtsourcedataworker.h:84
DISP3DSHARED_EXPORT
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
colormap.h
ColorMap class declaration.
DISP3DLIB::RtSourceDataWorker::m_iSampleCtr
int m_iSampleCtr
Definition: rtsourcedataworker.h:248
DISP3DLIB::RtSourceDataWorker::m_bIsLooping
bool m_bIsLooping
Definition: rtsourcedataworker.h:243
DISP3DLIB::RtSourceDataWorker::m_lDataLoopQ
QList< Eigen::VectorXd > m_lDataLoopQ
Definition: rtsourcedataworker.h:240