41#include "../../../../helpers/interpolation/interpolation.h"
42#include "../../items/common/abstractmeshtreeitem.h"
50#include <QElapsedTimer>
62using namespace DISP3DLIB;
64using namespace DISPLIB;
65using namespace FIFFLIB;
75, m_bStreamSmoothedData(true)
77, m_pMatInterpolationMatrix(QSharedPointer<SparseMatrix<float> >(new SparseMatrix<float>()))
85 if(data.rows() == 0) {
86 qDebug() <<
"RtSensorDataWorker::addData - Passed data is epmpty!";
91 for(
int i = 0; i<data.cols(); i++) {
95 qDebug() <<
"RtSensorDataWorker::addData - worker is full ("<<
m_lDataQ.size()<<
")";
236 qDebug() <<
"RtSensorDataWorker::generateColorsFromSensorValues - Number of new vertex colors (" << vecSensorValues.rows() <<
") do not match with previously set number of sensors (" <<
m_pMatInterpolationMatrix->cols() <<
"). Returning...";
261 MatrixX4f& matFinalVertColor,
264 QRgb (*functionHandlerColorMap)(
double v,
const QString& sColorMap),
265 const QString& sColorMap)
268 if(vecData.rows() != matFinalVertColor.rows()) {
269 qDebug() <<
"RtSensorDataWorker::normalizeAndTransformToColor - Sizes of input data (" << vecData.rows() <<
") do not match output data ("<< matFinalVertColor.rows() <<
"). Returning ...";
275 const double dTresholdDiff = dThreholdZ - dThresholdX;
277 for(
int r = 0; r < vecData.rows(); ++r) {
279 fSample = std::fabs(vecData(r));
281 if(fSample >= dThresholdX) {
282 matFinalVertColor(r,3) = 1.0f;
285 if(fSample >= dThreholdZ) {
293 if(fSample != 0.0f && dTresholdDiff != 0.0 ) {
295 fSample = 0.5 - (fSample - dThresholdX) / (dTresholdDiff * 2);
297 fSample = 0.5 + (fSample - dThresholdX) / (dTresholdDiff * 2);
304 qRgb = functionHandlerColorMap(fSample, sColorMap);
306 matFinalVertColor(r,0) = (float)qRed(qRgb)/255.0f;
307 matFinalVertColor(r,1) = (float)qGreen(qRgb)/255.0f;
308 matFinalVertColor(r,2) = (float)qBlue(qRgb)/255.0f;
RtSensorDataWorker class declaration.
static Eigen::MatrixX4f createVertColor(int numVert, const QColor &color=QColor(0, 49, 69))
QList< Eigen::VectorXd > m_lDataLoopQ
Eigen::MatrixX4f generateColorsFromSensorValues(const Eigen::VectorXd &vecSensorValues)
generateColorsFromSensorValues Produces the final color matrix that is to be emitted
QList< Eigen::VectorXd > m_lDataQ
void newRtSmoothedData(const Eigen::MatrixX4f &matColorMatrix)
void normalizeAndTransformToColor(const Eigen::VectorXf &vecData, Eigen::MatrixX4f &matFinalVertColor, double dThresholdX, double dThreholdZ, QRgb(*functionHandlerColorMap)(double v, const QString &sColorMap), const QString &sColorMap)
normalizeAndTransformToColor This method normalizes final values for all vertices of the mesh and con...
void setSFreq(const double dSFreq)
void setLoopState(bool bLoopState)
void setColormapType(const QString &sColormapType)
void addData(const Eigen::MatrixXd &data)
struct DISP3DLIB::RtSensorDataWorker::VisualizationInfo m_lVisualizationInfo
void setInterpolationMatrix(QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix)
void setNumberVertices(int iNumberVerts)
void setThresholds(const QVector3D &vecThresholds)
void setNumberAverages(int iNumAvr)
bool m_bStreamSmoothedData
void setStreamSmoothedData(bool bStreamSmoothedData)
void newRtRawData(Eigen::VectorXd vecDataVector)
QSharedPointer< Eigen::SparseMatrix< float > > m_pMatInterpolationMatrix
Eigen::VectorXd m_vecAverage
static Eigen::VectorXf interpolateSignal(const QSharedPointer< Eigen::SparseMatrix< float > > matInterpolationMatrix, const QSharedPointer< Eigen::VectorXf > &vecMeasurementData)