diff options
Diffstat (limited to 'tests/barstest')
-rw-r--r-- | tests/barstest/chart.cpp | 24 | ||||
-rw-r--r-- | tests/barstest/chart.h | 4 | ||||
-rw-r--r-- | tests/barstest/main.cpp | 28 |
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))); |