summaryrefslogtreecommitdiffstats
path: root/tests/scattertest
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/scattertest
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/scattertest')
-rw-r--r--tests/scattertest/main.cpp47
-rw-r--r--tests/scattertest/scatterchart.cpp24
-rw-r--r--tests/scattertest/scatterchart.h5
3 files changed, 67 insertions, 9 deletions
diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp
index 55515cb0..116a4dc2 100644
--- a/tests/scattertest/main.cpp
+++ b/tests/scattertest/main.cpp
@@ -41,6 +41,7 @@ int main(int argc, char **argv)
QHBoxLayout *hLayout = new QHBoxLayout(widget);
QVBoxLayout *vLayout = new QVBoxLayout();
QVBoxLayout *vLayout2 = new QVBoxLayout();
+ QVBoxLayout *vLayout3 = new QVBoxLayout();
Q3DScatter *chart = new Q3DScatter();
QSize screenSize = chart->screen()->size();
@@ -56,6 +57,7 @@ int main(int argc, char **argv)
hLayout->addWidget(container, 1);
hLayout->addLayout(vLayout);
hLayout->addLayout(vLayout2);
+ hLayout->addLayout(vLayout3);
QPushButton *themeButton = new QPushButton(widget);
themeButton->setText(QStringLiteral("Change theme"));
@@ -276,6 +278,22 @@ int main(int argc, char **argv)
radialLabelSlider->setValue(100);
radialLabelSlider->setMaximum(150);
+ 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(themeButton, 0, Qt::AlignTop);
vLayout->addWidget(labelButton, 0, Qt::AlignTop);
vLayout->addWidget(styleButton, 0, Qt::AlignTop);
@@ -326,15 +344,20 @@ int main(int argc, char **argv)
vLayout2->addWidget(aspectRatioSlider);
vLayout2->addWidget(new QLabel(QStringLiteral("Adjust horizontal aspect ratio")));
vLayout2->addWidget(horizontalAspectRatioSlider, 1, Qt::AlignTop);
- vLayout2->addWidget(optimizationStaticCB);
- vLayout2->addWidget(orthoCB);
- vLayout2->addWidget(polarCB);
- vLayout2->addWidget(axisTitlesVisibleCB);
- vLayout2->addWidget(axisTitlesFixedCB);
- vLayout2->addWidget(new QLabel(QStringLiteral("Axis label rotation")));
- vLayout2->addWidget(axisLabelRotationSlider);
- vLayout2->addWidget(new QLabel(QStringLiteral("Radial label offset")));
- vLayout2->addWidget(radialLabelSlider, 1, Qt::AlignTop);
+
+ vLayout3->addWidget(optimizationStaticCB);
+ vLayout3->addWidget(orthoCB);
+ vLayout3->addWidget(polarCB);
+ vLayout3->addWidget(axisTitlesVisibleCB);
+ vLayout3->addWidget(axisTitlesFixedCB);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Axis label rotation")));
+ vLayout3->addWidget(axisLabelRotationSlider);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Radial label offset")));
+ vLayout3->addWidget(radialLabelSlider, 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);
ScatterDataModifier *modifier = new ScatterDataModifier(chart);
@@ -440,6 +463,12 @@ int main(int argc, char **argv)
&ScatterDataModifier::setHorizontalAspectRatio);
QObject::connect(radialLabelSlider, &QSlider::valueChanged, modifier,
&ScatterDataModifier::changeRadialLabelOffset);
+ QObject::connect(cameraTargetSliderX, &QSlider::valueChanged, modifier,
+ &ScatterDataModifier::setCameraTargetX);
+ QObject::connect(cameraTargetSliderY, &QSlider::valueChanged, modifier,
+ &ScatterDataModifier::setCameraTargetY);
+ QObject::connect(cameraTargetSliderZ, &QSlider::valueChanged, modifier,
+ &ScatterDataModifier::setCameraTargetZ);
modifier->setFpsLabel(fpsLabel);
diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp
index 5db772b5..35d56236 100644
--- a/tests/scattertest/scatterchart.cpp
+++ b/tests/scattertest/scatterchart.cpp
@@ -993,6 +993,30 @@ void ScatterDataModifier::toggleOrtho(bool enable)
m_chart->setOrthoProjection(enable);
}
+void ScatterDataModifier::setCameraTargetX(int value)
+{
+ // Value is (-100, 100), normalize
+ m_cameraTarget.setX(float(value) / 100.0f);
+ m_chart->scene()->activeCamera()->setTarget(m_cameraTarget);
+ qDebug() << "m_cameraTarget:" << m_cameraTarget;
+}
+
+void ScatterDataModifier::setCameraTargetY(int value)
+{
+ // Value is (-100, 100), normalize
+ m_cameraTarget.setY(float(value) / 100.0f);
+ m_chart->scene()->activeCamera()->setTarget(m_cameraTarget);
+ qDebug() << "m_cameraTarget:" << m_cameraTarget;
+}
+
+void ScatterDataModifier::setCameraTargetZ(int value)
+{
+ // Value is (-100, 100), normalize
+ m_cameraTarget.setZ(float(value) / 100.0f);
+ m_chart->scene()->activeCamera()->setTarget(m_cameraTarget);
+ qDebug() << "m_cameraTarget:" << m_cameraTarget;
+}
+
void ScatterDataModifier::changeShadowQuality(int quality)
{
QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality);
diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h
index df2494b6..1a97c5f0 100644
--- a/tests/scattertest/scatterchart.h
+++ b/tests/scattertest/scatterchart.h
@@ -98,6 +98,9 @@ public slots:
void togglePolar(bool enable);
void toggleStatic(bool enable);
void toggleOrtho(bool enable);
+ void setCameraTargetX(int value);
+ void setCameraTargetY(int value);
+ void setCameraTargetZ(int value);
signals:
void shadowQualityChanged(int quality);
@@ -118,6 +121,8 @@ private:
QScatter3DSeries *m_targetSeries;
QScatterDataArray m_massiveTestCacheArray;
QLabel *m_fpsLabel;
+ QVector3D m_cameraTarget;
+
};
#endif