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 #include <QLinkedList>
53 
54 //=============================================================================================================
55 // EIGEN INCLUDES
56 //=============================================================================================================
57 
58 #include <Eigen/SparseCore>
59 
60 //=============================================================================================================
61 // FORWARD DECLARATIONS
62 //=============================================================================================================
63 
64 //=============================================================================================================
65 // DEFINE NAMESPACE DISP3DLIB
66 //=============================================================================================================
67 
68 namespace DISP3DLIB
69 {
70 
72  double dThresholdX;
73  double dThresholdZ;
74 
75  Eigen::VectorXd vecSensorValues;
76  Eigen::MatrixX4f matOriginalVertColor;
77  Eigen::MatrixX4f matFinalVertColor;
78 
79  QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix;
81  QString sColormapType;
82  QRgb (*functionHandlerColorMap)(double v, const QString& sColorMap) = DISPLIB::ColorMap::valueToColor;
83 };
86  double dThresholdX;
87  double dThresholdZ;
88  int iFinalMatSize;
89 
90  Eigen::VectorXf vecData;
91 
92  QRgb (*functionHandlerColorMap)(double v);
93 };
94 
95 //=============================================================================================================
96 // DISP3DLIB FORWARD DECLARATIONS
97 //=============================================================================================================
98 
99 //=============================================================================================================
106 {
107  Q_OBJECT
108 
109 public:
110  typedef QSharedPointer<RtSourceDataWorker> SPtr;
111  typedef QSharedPointer<const RtSourceDataWorker> ConstSPtr;
113  //=========================================================================================================
117  explicit RtSourceDataWorker();
118 
119  //=========================================================================================================
125  void addData(const Eigen::MatrixXd& data);
126 
127  //=========================================================================================================
131  void clear();
132 
133  //=========================================================================================================
140  void setSurfaceColor(const Eigen::MatrixX4f &matColorLeft,
141  const Eigen::MatrixX4f &matColorRight);
142 
143  //=========================================================================================================
149  void setNumberAverages(int iNumAvr);
150 
151  //=========================================================================================================
157  void setStreamSmoothedData(bool bStreamSmoothedData);
158 
159  //=========================================================================================================
165  void setColormapType(const QString& sColormapType);
166 
167  //=========================================================================================================
173  void setThresholds(const QVector3D &vecThresholds);
174 
175  //=========================================================================================================
181  void setLoopState(bool bLoopState);
182 
183  //=========================================================================================================
189  void setSFreq(const double dSFreq);
190 
191  //=========================================================================================================
197  void setInterpolationMatrixLeft(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrixLeft);
198 
199  //=========================================================================================================
205  void setInterpolationMatrixRight(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrixRight);
206 
207  //=========================================================================================================
211  void streamData();
212 
213 protected:
214  //=========================================================================================================
225  static void normalizeAndTransformToColor(const Eigen::VectorXf& vecData,
226  Eigen::MatrixX4f &matFinalVertColor,
227  double dThresholdX,
228  double dThresholdZ,
229  QRgb (*functionHandlerColorMap)(double v, const QString& sColorMap),
230  const QString& sColorMap);
231 
232  //=========================================================================================================
238  static void generateColorsFromSensorValues(VisualizationInfo &visualizationInfoHemi);
239 
240  QList<Eigen::VectorXd> m_lDataQ;
241  QList<Eigen::VectorXd> m_lDataLoopQ;
242  Eigen::VectorXd m_vecAverage;
251  double m_dSFreq;
253  QList<VisualizationInfo> m_lHemiVisualizationInfo;
255 signals:
256  //=========================================================================================================
263  void newRtRawData(const Eigen::VectorXd &vecDataVectorLeftHemi,
264  const Eigen::VectorXd &vecDataVectorRightHemi);
265 
266  //=========================================================================================================
273  void newRtSmoothedData(const Eigen::MatrixX4f &matColorMatrixLeftHemi,
274  const Eigen::MatrixX4f &matColorMatrixRightHemi);
275 };
276 } // NAMESPACE
277 
278 #endif //DISP3DLIB_RTSOURCEDATAWORKER_H
QList< VisualizationInfo > m_lHemiVisualizationInfo
QList< Eigen::VectorXd > m_lDataQ
QList< Eigen::VectorXd > m_lDataLoopQ
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
QSharedPointer< const RtSourceDataWorker > ConstSPtr
static QRgb valueToColor(double v, const QString &sMap)
Definition: colormap.h:688
QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix
This worker streams either interpolated or raw data.
QSharedPointer< RtSourceDataWorker > SPtr
ColorMap class declaration.