summaryrefslogtreecommitdiffstats
path: root/tests/barstest
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-08-05 14:00:08 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-08-06 08:39:25 +0300
commitdd99eb73740ad015a2a2d28481e5a2ca8ab1d7b1 (patch)
treebcbbd462e547cd958b1343412d0a14e920b5c453 /tests/barstest
parent73f127d8ef1937aa77ba0ec0be63f0bfd6cf92ab (diff)
Enable camera targeting.
Also fix custom item positioning in absolute mode as it was completely broken in bars and z-coord was flipped in others. Clarified Q3DObject::position property usage, namely that it is reserved for internal use for now. Some refactoring also done. Task-number: QTRD-2567 Change-Id: I5da65b83a2f8ecf20f8fd054e59748278ef1a714 Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests/barstest')
-rw-r--r--tests/barstest/chart.cpp24
-rw-r--r--tests/barstest/chart.h4
-rw-r--r--tests/barstest/main.cpp28
3 files changed, 55 insertions, 1 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index e0f9ff18..445c235e 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -1495,6 +1495,30 @@ void GraphModifier::handleFpsChange(qreal fps)
m_fpsLabel->setText(fpsPrefix + QString::number(qRound(fps)));
}
+void GraphModifier::setCameraTargetX(int value)
+{
+ // Value is (-100, 100), normalize
+ m_cameraTarget.setX(float(value) / 100.0f);
+ m_graph->scene()->activeCamera()->setTarget(m_cameraTarget);
+ qDebug() << "m_cameraTarget:" << m_cameraTarget;
+}
+
+void GraphModifier::setCameraTargetY(int value)
+{
+ // Value is (-100, 100), normalize
+ m_cameraTarget.setY(float(value) / 100.0f);
+ m_graph->scene()->activeCamera()->setTarget(m_cameraTarget);
+ qDebug() << "m_cameraTarget:" << m_cameraTarget;
+}
+
+void GraphModifier::setCameraTargetZ(int value)
+{
+ // Value is (-100, 100), normalize
+ m_cameraTarget.setZ(float(value) / 100.0f);
+ m_graph->scene()->activeCamera()->setTarget(m_cameraTarget);
+ qDebug() << "m_cameraTarget:" << m_cameraTarget;
+}
+
void GraphModifier::populateFlatSeries(QBar3DSeries *series, int rows, int columns, float value)
{
QBarDataArray *dataArray = new QBarDataArray;
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index 7ee781ad..6740df73 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -118,6 +118,9 @@ public slots:
void triggerRotation();
void handleValueAxisLabelsChanged();
void handleFpsChange(qreal fps);
+ void setCameraTargetX(int value);
+ void setCameraTargetY(int value);
+ void setCameraTargetZ(int value);
signals:
void shadowQualityChanged(int quality);
@@ -172,6 +175,7 @@ private:
QTimer m_rotationTimer;
QLabel *m_fpsLabel;
QBar3DSeries *m_extraSeries;
+ QVector3D m_cameraTarget;
};
#endif
diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp
index 2d755c7f..bd891cd3 100644
--- a/tests/barstest/main.cpp
+++ b/tests/barstest/main.cpp
@@ -331,6 +331,22 @@ int main(int argc, char **argv)
valueAxisSegmentsSpin->setMaximum(100);
valueAxisSegmentsSpin->setValue(10);
+ QSlider *cameraTargetSliderX = new QSlider(Qt::Horizontal, widget);
+ cameraTargetSliderX->setTickInterval(1);
+ cameraTargetSliderX->setMinimum(-100);
+ cameraTargetSliderX->setValue(0);
+ cameraTargetSliderX->setMaximum(100);
+ QSlider *cameraTargetSliderY = new QSlider(Qt::Horizontal, widget);
+ cameraTargetSliderY->setTickInterval(1);
+ cameraTargetSliderY->setMinimum(-100);
+ cameraTargetSliderY->setValue(0);
+ cameraTargetSliderY->setMaximum(100);
+ QSlider *cameraTargetSliderZ = new QSlider(Qt::Horizontal, widget);
+ cameraTargetSliderZ->setTickInterval(1);
+ cameraTargetSliderZ->setMinimum(-100);
+ cameraTargetSliderZ->setValue(0);
+ cameraTargetSliderZ->setMaximum(100);
+
vLayout->addWidget(addSeriesButton, 0, Qt::AlignTop);
vLayout->addWidget(addDataButton, 0, Qt::AlignTop);
vLayout->addWidget(addMultiDataButton, 0, Qt::AlignTop);
@@ -400,7 +416,11 @@ int main(int argc, char **argv)
vLayout3->addWidget(new QLabel(QStringLiteral("Log axis base")), 0, Qt::AlignTop);
vLayout3->addWidget(logBaseEdit, 0, Qt::AlignTop);
vLayout3->addWidget(new QLabel(QStringLiteral("Value axis segments")), 0, Qt::AlignTop);
- vLayout3->addWidget(valueAxisSegmentsSpin, 1, Qt::AlignTop);
+ vLayout3->addWidget(valueAxisSegmentsSpin, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Camera target")), 0, Qt::AlignTop);
+ vLayout3->addWidget(cameraTargetSliderX, 0, Qt::AlignTop);
+ vLayout3->addWidget(cameraTargetSliderY, 0, Qt::AlignTop);
+ vLayout3->addWidget(cameraTargetSliderZ, 1, Qt::AlignTop);
// TODO: Add example for setMeshFileName
widget->show();
@@ -429,6 +449,12 @@ int main(int argc, char **argv)
&GraphModifier::setMinY);
QObject::connect(maxSliderY, &QSlider::valueChanged, modifier,
&GraphModifier::setMaxY);
+ QObject::connect(cameraTargetSliderX, &QSlider::valueChanged, modifier,
+ &GraphModifier::setCameraTargetX);
+ QObject::connect(cameraTargetSliderY, &QSlider::valueChanged, modifier,
+ &GraphModifier::setCameraTargetY);
+ QObject::connect(cameraTargetSliderZ, &QSlider::valueChanged, modifier,
+ &GraphModifier::setCameraTargetZ);
QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier,
SLOT(changeShadowQuality(int)));