MNE-CPP  0.1.9
A Framework for Electrophysiology
rtsensordataworker.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef DISP3DLIB_RTSENSORDATAWORKER_H
37 #define DISP3DLIB_RTSENSORDATAWORKER_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../../../../disp3D_global.h"
44 
46 
47 //=============================================================================================================
48 // QT INCLUDES
49 //=============================================================================================================
50 
51 #include <QRgb>
52 #include <QSharedPointer>
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 
71 //=============================================================================================================
72 // DISP3DLIB FORWARD DECLARATIONS
73 //=============================================================================================================
74 
75 //=============================================================================================================
82 {
83  Q_OBJECT
84 
85 public:
86  typedef QSharedPointer<RtSensorDataWorker> SPtr;
87  typedef QSharedPointer<const RtSensorDataWorker> ConstSPtr;
89  //=========================================================================================================
93  explicit RtSensorDataWorker();
94 
95  //=========================================================================================================
101  void addData(const Eigen::MatrixXd& data);
102 
103  //=========================================================================================================
107  void clear();
108 
109  //=========================================================================================================
115  void setNumberVertices(int iNumberVerts);
116 
117  //=========================================================================================================
123  void setNumberAverages(int iNumAvr);
124 
125  //=========================================================================================================
131  void setStreamSmoothedData(bool bStreamSmoothedData);
132 
133  //=========================================================================================================
139  void setColormapType(const QString& sColormapType);
140 
141  //=========================================================================================================
147  void setThresholds(const QVector3D &vecThresholds);
148 
149  //=========================================================================================================
155  void setLoopState(bool bLoopState);
156 
157  //=========================================================================================================
163  void setSFreq(const double dSFreq);
164 
165  //=========================================================================================================
171  void setInterpolationMatrix(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix);
172 
173  //=========================================================================================================
177  void streamData();
178 
179 protected:
180  //=========================================================================================================
192  void normalizeAndTransformToColor(const Eigen::VectorXf& vecData,
193  Eigen::MatrixX4f &matFinalVertColor,
194  double dThresholdX,
195  double dThreholdZ,
196  QRgb (*functionHandlerColorMap)(double v, const QString& sColorMap),
197  const QString& sColorMap);
198 
199  //=========================================================================================================
207  Eigen::MatrixX4f generateColorsFromSensorValues(const Eigen::VectorXd& vecSensorValues);
208 
209  QList<Eigen::VectorXd> m_lDataQ;
210  QList<Eigen::VectorXd> m_lDataLoopQ;
212  Eigen::VectorXd m_vecAverage;
213  QSharedPointer<Eigen::SparseMatrix<float> > m_pMatInterpolationMatrix;
221  double m_dSFreq;
223  //=========================================================================================================
228  double dThresholdX;
229  double dThresholdZ;
230 
231  Eigen::MatrixX4f matOriginalVertColor;
232  Eigen::MatrixX4f matFinalVertColor;
233 
234  QString sColormapType;
235  QRgb (*functionHandlerColorMap)(double v, const QString& sColorMap) = DISPLIB::ColorMap::valueToColor;
236  } m_lVisualizationInfo;
238 signals:
239  //=========================================================================================================
245  void newRtRawData(Eigen::VectorXd vecDataVector);
246 
247  //=========================================================================================================
253  void newRtSmoothedData(const Eigen::MatrixX4f &matColorMatrix);
254 };
255 } // NAMESPACE
256 
257 #endif //DISP3DLIB_RTSENSORDATAWORKER_H
DISP3DLIB::RtSensorDataWorker::m_iAverageSamples
int m_iAverageSamples
Definition: rtsensordataworker.h:219
DISP3DLIB::RtSensorDataWorker::ConstSPtr
QSharedPointer< const RtSensorDataWorker > ConstSPtr
Definition: rtsensordataworker.h:87
DISP3DLIB::RtSensorDataWorker::VisualizationInfo
Definition: rtsensordataworker.h:227
DISP3DLIB::RtSensorDataWorker::m_vecAverage
Eigen::VectorXd m_vecAverage
Definition: rtsensordataworker.h:212
DISP3DLIB::RtSensorDataWorker::m_pMatInterpolationMatrix
QSharedPointer< Eigen::SparseMatrix< float > > m_pMatInterpolationMatrix
Definition: rtsensordataworker.h:213
DISP3DLIB::RtSensorDataWorker::m_lDataQ
QList< Eigen::VectorXd > m_lDataQ
Definition: rtsensordataworker.h:209
DISPLIB::ColorMap::valueToColor
static QRgb valueToColor(double v, const QString &sMap)
Definition: colormap.h:688
DISP3DLIB::RtSensorDataWorker::SPtr
QSharedPointer< RtSensorDataWorker > SPtr
Definition: rtsensordataworker.h:86
DISP3DLIB::RtSensorDataWorker::m_lDataLoopQ
QList< Eigen::VectorXd > m_lDataLoopQ
Definition: rtsensordataworker.h:210
DISP3DLIB::RtSensorDataWorker::m_iCurrentSample
int m_iCurrentSample
Definition: rtsensordataworker.h:218
DISP3DLIB::RtSensorDataWorker
This worker streams either interpolated or raw data.
Definition: rtsensordataworker.h:81
DISP3DLIB::RtSensorDataWorker::m_bStreamSmoothedData
bool m_bStreamSmoothedData
Definition: rtsensordataworker.h:216
DISP3DSHARED_EXPORT
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
colormap.h
ColorMap class declaration.
DISP3DLIB::RtSensorDataWorker::m_bIsLooping
bool m_bIsLooping
Definition: rtsensordataworker.h:215
DISP3DLIB::RtSensorDataWorker::m_dSFreq
double m_dSFreq
Definition: rtsensordataworker.h:221