summaryrefslogtreecommitdiffstats
path: root/tests/kinectsurface/surfacedata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/kinectsurface/surfacedata.cpp')
-rw-r--r--tests/kinectsurface/surfacedata.cpp74
1 files changed, 56 insertions, 18 deletions
diff --git a/tests/kinectsurface/surfacedata.cpp b/tests/kinectsurface/surfacedata.cpp
index d635f954..1b19d136 100644
--- a/tests/kinectsurface/surfacedata.cpp
+++ b/tests/kinectsurface/surfacedata.cpp
@@ -20,20 +20,23 @@
#include "surfacedata.h"
#include "QKinectWrapper.h"
-#include <QHeightMapSurfaceDataProxy>
-#include <Q3DValueAxis>
+#include <QtDataVisualization/QHeightMapSurfaceDataProxy>
+#include <QtDataVisualization/Q3DValueAxis>
+#include <QScrollBar>
+#include <QSize>
#include <QDebug>
QT_DATAVISUALIZATION_USE_NAMESPACE
-SurfaceData::SurfaceData(Q3DSurface *surface, QLabel *statusLabel) :
+SurfaceData::SurfaceData(Q3DSurface *surface, QTextEdit *statusArea) :
m_surface(surface),
- m_statusLabel(statusLabel),
+ m_statusArea(statusArea),
m_resize(true),
m_resolution(QSize(320, 240))
{
// Initialize surface
+ m_surface->setTheme(QDataVis::ThemeIsabelle);
QLinearGradient gradient;
gradient.setColorAt(0.0, Qt::black);
gradient.setColorAt(0.33, Qt::blue);
@@ -47,6 +50,9 @@ SurfaceData::SurfaceData(Q3DSurface *surface, QLabel *statusLabel) :
m_surface->setSmoothSurfaceEnabled(false);
m_surface->setActiveDataProxy(new QHeightMapSurfaceDataProxy());
+ // Hide scroll bar
+ m_statusArea->verticalScrollBar()->setVisible(false);
+
// Connect Kinect signals
connect(&m_kinect, &QKinect::QKinectWrapper::dataNotification, this, &SurfaceData::updateData);
connect(&m_kinect, &QKinect::QKinectWrapper::statusNotification, this,
@@ -70,19 +76,22 @@ void SurfaceData::updateStatus(QKinect::KinectStatus status)
{
switch (status) {
case QKinect::Idle: {
- m_statusLabel->setText(QStringLiteral("Stopped"));
+ m_statusArea->append(QStringLiteral("<b>Kinect:</b> Stopped"));
+ m_statusArea->append(QStringLiteral("<br><b>Ready</b><br>"));
break;
}
case QKinect::Initializing: {
- m_statusLabel->setText(QStringLiteral("Initializing"));
+ m_statusArea->append(QStringLiteral("<b>Kinect:</b> Initializing"));
break;
}
case QKinect::OkRun: {
- m_statusLabel->setText(QStringLiteral("Ok"));
+ m_statusArea->append(QStringLiteral("<b>Kinect:</b> Running"));
+ m_statusArea->append(QString(QStringLiteral("<i> - resolution: %1 x %2</i>")).arg(
+ m_resolution.width()).arg(m_resolution.height()));
break;
}
default: {
- m_statusLabel->setText(QStringLiteral("Error"));
+ m_statusArea->append(QStringLiteral("<b>Kinect:</b> Error"));
break;
}
};
@@ -90,22 +99,18 @@ void SurfaceData::updateStatus(QKinect::KinectStatus status)
void SurfaceData::start()
{
- if (m_kinect.isStopped()) {
+ if (m_kinect.isStopped())
m_kinect.start();
-#ifdef USE_TIMER_UPDATE
- m_updateTimer.start();
-#endif
- }
+ else
+ m_statusArea->append(QStringLiteral("<b>Kinect:</b> Already running"));
}
void SurfaceData::stop()
{
- if (m_kinect.isRunning()) {
+ if (m_kinect.isRunning())
m_kinect.stop();
-#ifdef USE_TIMER_UPDATE
- m_updateTimer.stop();
-#endif
- }
+ else
+ m_statusArea->append(QStringLiteral("<b>Kinect:</b> Already stopped"));
}
void SurfaceData::setDistance(int distance)
@@ -137,4 +142,37 @@ void SurfaceData::setResolution(int selection)
break;
}
};
+ m_statusArea->append(QString(QStringLiteral("<b>Resolution:</b> %1 x %2")).arg(
+ m_resolution.width()).arg(m_resolution.height()));
+ if (m_kinect.isStopped())
+ m_statusArea->append(QStringLiteral("<i> - change takes effect once Kinect is running</i>"));
+}
+
+void SurfaceData::scrollDown()
+{
+ QScrollBar *scrollbar = m_statusArea->verticalScrollBar();
+ scrollbar->setValue(scrollbar->maximum());
+}
+
+void SurfaceData::useGradientOne()
+{
+ m_surface->setTheme(QDataVis::ThemeIsabelle);
+ QLinearGradient gradient;
+ gradient.setColorAt(0.0, Qt::black);
+ gradient.setColorAt(0.33, Qt::blue);
+ gradient.setColorAt(0.67, Qt::red);
+ gradient.setColorAt(1.0, Qt::yellow);
+ m_surface->setGradient(gradient);
+ m_statusArea->append(QStringLiteral("<b>Colors:</b> Thermal image imitation"));
+}
+
+void SurfaceData::useGradientTwo()
+{
+ m_surface->setTheme(QDataVis::ThemeQt);
+ QLinearGradient gradient;
+ gradient.setColorAt(0.0, Qt::white);
+ gradient.setColorAt(0.8, Qt::red);
+ gradient.setColorAt(1.0, Qt::green);
+ m_surface->setGradient(gradient);
+ m_statusArea->append(QStringLiteral("<b>Colors:</b> Highlight foreground"));
}