MNE-CPP  0.1.9
A Framework for Electrophysiology
rtsensordatacontroller.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef DISP3DLIB_RTSENSORDATACONTROLLER_H
36 #define DISP3DLIB_RTSENSORDATACONTROLLER_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../../../../disp3D_global.h"
43 
44 //=============================================================================================================
45 // QT INCLUDES
46 //=============================================================================================================
47 
48 #include <QTimer>
49 #include <QPointer>
50 #include <QThread>
51 
52 //=============================================================================================================
53 // EIGEN INCLUDES
54 //=============================================================================================================
55 
56 #include <Eigen/SparseCore>
57 
58 //=============================================================================================================
59 // FORWARD DECLARATIONS
60 //=============================================================================================================
61 
62 namespace FIFFLIB {
63  class FiffInfo;
64 }
65 
66 //=============================================================================================================
67 // DEFINE NAMESPACE DISP3DLIB
68 //=============================================================================================================
69 
70 namespace DISP3DLIB
71 {
72 
73 //=============================================================================================================
74 // DISP3DLIB FORWARD DECLARATIONS
75 //=============================================================================================================
76 
77 class RtSensorDataWorker;
78 class RtSensorInterpolationMatWorker;
79 
80 //=============================================================================================================
87 {
88  Q_OBJECT
89 
90 public:
91  typedef QSharedPointer<RtSensorDataController> SPtr;
92  typedef QSharedPointer<const RtSensorDataController> ConstSPtr;
94  //=========================================================================================================
99 
100  //=========================================================================================================
105 
106  //=========================================================================================================
112  void setStreamingState(bool bStreamingState);
113 
114  //=========================================================================================================
121  void setInterpolationFunction(const QString &sInterpolationFunction);
122 
123  //=========================================================================================================
129  void setLoopState(bool bLoopState);
130 
131  //=========================================================================================================
139  void setCancelDistance(double dCancelDist);
140 
141  //=========================================================================================================
147  void setTimeInterval(int iMSec);
148 
149  //=========================================================================================================
162  void setInterpolationInfo(const Eigen::MatrixX3f &matVertices,
163  const QVector<QVector<int> > &vecNeighborVertices,
164  const QVector<Eigen::Vector3f> &vecSensorPos,
165  const FIFFLIB::FiffInfo &fiffInfo,
166  int iSensorType);
167 
168  //=========================================================================================================
174  void setThresholds(const QVector3D &vecThresholds);
175 
176  //=========================================================================================================
182  void setColormapType(const QString &sColormapType);
183 
184  //=========================================================================================================
190  void setNumberAverages(int iNumAvr);
191 
192  //=========================================================================================================
198  void setSFreq(double dSFreq);
199 
200  //=========================================================================================================
206  void setBadChannels(const FIFFLIB::FiffInfo &info);
207 
208  //=========================================================================================================
214  void setStreamSmoothedData(bool bStreamSmoothedData);
215 
216  //=========================================================================================================
222  void addData(const Eigen::MatrixXd& data);
223 
224 protected:
225  //=========================================================================================================
231  void onNewRtRawData(const Eigen::VectorXd &vecDataVector);
232 
233  //=========================================================================================================
239  void onNewSmoothedRtRawData(const Eigen::MatrixX4f &matColorMatrix);
240 
241  //=========================================================================================================
247  void onNewInterpolationMatrixCalculated(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix);
248 
249  QTimer m_timer;
254  QPointer<RtSensorDataWorker> m_pRtSensorDataWorker;
255  QPointer<RtSensorInterpolationMatWorker> m_pRtInterpolationWorker;
258 signals:
259  //=========================================================================================================
269  void interpolationInfoChanged(const Eigen::MatrixX3f &matVertices,
270  const QVector<QVector<int> > &vecNeighborVertices,
271  const QVector<Eigen::Vector3f> &vecSensorPos,
272  const FIFFLIB::FiffInfo &fiffInfo,
273  int iSensorType);
274 
275  //=========================================================================================================
281  void numberVerticesChanged(int iNumberVerts);
282 
283  //=========================================================================================================
289  void badChannelsChanged(const FIFFLIB::FiffInfo &info);
290 
291  //=========================================================================================================
297  void streamSmoothedDataChanged(bool bStreamSmoothedData);
298 
299  //=========================================================================================================
305  void interpolationFunctionChanged(const QString &sInterpolationFunction);
306 
307  //=========================================================================================================
313  void cancelDistanceChanged(double dCancelDist);
314 
315  //=========================================================================================================
321  void surfaceColorChanged(const Eigen::MatrixX3f& matSurfaceVertColor);
322 
323  //=========================================================================================================
329  void thresholdsChanged(const QVector3D &vecThresholds);
330 
331  //=========================================================================================================
337  void sFreqChanged(double dSFreq);
338 
339  //=========================================================================================================
345  void numberAveragesChanged(int iNumAvr);
346 
347  //=========================================================================================================
353  void loopStateChanged(bool bLoopState);
354 
355  //=========================================================================================================
361  void colormapTypeChanged(const QString &sColormapType);
362 
363  //=========================================================================================================
369  void rawDataChanged(const Eigen::MatrixXd& data);
370 
371  //=========================================================================================================
377  void newInterpolationMatrixAvailable(QSharedPointer<Eigen::SparseMatrix<float> > pMatInterpolationMatrix);
378 
379  //=========================================================================================================
385  void newRtRawDataAvailable(const Eigen::VectorXd &vecDataVector);
386 
387  //=========================================================================================================
393  void newRtSmoothedDataAvailable(const Eigen::MatrixX4f &matColorMatrix);
394 };
395 } // NAMESPACE
396 
397 #endif //DISP3DLIB_RTSENSORDATACONTROLLER_H
FIFF measurement file information.
Definition: fiff_info.h:84
QSharedPointer< RtSensorDataController > SPtr
This controller organizes data streaming and interpolation matrix calculations. It only uses Queued s...
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55
QPointer< RtSensorDataWorker > m_pRtSensorDataWorker
QPointer< RtSensorInterpolationMatWorker > m_pRtInterpolationWorker
QSharedPointer< const RtSensorDataController > ConstSPtr