summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/volumetrictest/main.cpp5
-rw-r--r--tests/volumetrictest/volumetrictest.cpp90
-rw-r--r--tests/volumetrictest/volumetrictest.h11
3 files changed, 86 insertions, 20 deletions
diff --git a/tests/volumetrictest/main.cpp b/tests/volumetrictest/main.cpp
index 02f67d6c..7b18ceab 100644
--- a/tests/volumetrictest/main.cpp
+++ b/tests/volumetrictest/main.cpp
@@ -17,7 +17,6 @@
****************************************************************************/
#include "volumetrictest.h"
-
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtWidgets/QHBoxLayout>
@@ -32,7 +31,9 @@
int main(int argc, char **argv)
{
QApplication app(argc, argv);
- Q3DScatter *graph = new Q3DScatter();
+ //Q3DScatter *graph = new Q3DScatter();
+ //Q3DSurface *graph = new Q3DSurface();
+ Q3DBars *graph = new Q3DBars();
QWidget *container = QWidget::createWindowContainer(graph);
QSize screenSize = graph->screen()->size();
diff --git a/tests/volumetrictest/volumetrictest.cpp b/tests/volumetrictest/volumetrictest.cpp
index 6d7da021..a277c8b0 100644
--- a/tests/volumetrictest/volumetrictest.cpp
+++ b/tests/volumetrictest/volumetrictest.cpp
@@ -17,6 +17,7 @@
****************************************************************************/
#include "volumetrictest.h"
+#include <QtDataVisualization/qbar3dseries.h>
#include <QtDataVisualization/qvalue3daxis.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
@@ -31,14 +32,14 @@
using namespace QtDataVisualization;
const int imageCount = 512;
-const float xMiddle = 10.0f;
-const float yMiddle = 12.5f;
-const float zMiddle = -40.0f;
+const float xMiddle = 100.0f;
+const float yMiddle = 2.5f;
+const float zMiddle = 100.0f;
const float xRange = 40.0f;
const float yRange = 7.5f;
const float zRange = 20.0f;
-VolumetricModifier::VolumetricModifier(Q3DScatter *scatter)
+VolumetricModifier::VolumetricModifier(QAbstract3DGraph *scatter)
: m_graph(scatter),
m_volumeItem(0),
m_volumeItem2(0),
@@ -52,13 +53,55 @@ VolumetricModifier::VolumetricModifier(Q3DScatter *scatter)
m_graph->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);
m_graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront);
m_graph->setOrthoProjection(true);
- //m_graph->scene()->activeCamera()->setTarget(QVector3D(0.5f, 0.5f, 0.5f));
- m_graph->axisX()->setRange(xMiddle - xRange, xMiddle + xRange);
- m_graph->axisX()->setSegmentCount(8);
- m_graph->axisY()->setRange(yMiddle - yRange, yMiddle + yRange);
- m_graph->axisY()->setSegmentCount(3);
- m_graph->axisZ()->setRange(zMiddle - zRange, zMiddle + zRange);
- m_graph->axisZ()->setSegmentCount(8);
+ //m_graph->scene()->activeCamera()->setTarget(QVector3D(-2.0f, 1.0f, 2.0f));
+ m_scatterGraph = qobject_cast<Q3DScatter *>(m_graph);
+ m_surfaceGraph = qobject_cast<Q3DSurface *>(m_graph);
+ m_barGraph = qobject_cast<Q3DBars *>(m_graph);
+ if (m_scatterGraph) {
+ m_scatterGraph->axisX()->setRange(xMiddle - xRange, xMiddle + xRange);
+ m_scatterGraph->axisX()->setSegmentCount(8);
+ m_scatterGraph->axisY()->setRange(yMiddle - yRange, yMiddle + yRange);
+ m_scatterGraph->axisY()->setSegmentCount(3);
+ m_scatterGraph->axisZ()->setRange(zMiddle - zRange, zMiddle + zRange);
+ m_scatterGraph->axisZ()->setSegmentCount(8);
+ } else if (m_surfaceGraph) {
+ m_surfaceGraph->axisX()->setRange(xMiddle - xRange, xMiddle + xRange);
+ m_surfaceGraph->axisX()->setSegmentCount(8);
+ m_surfaceGraph->axisY()->setRange(yMiddle - yRange, yMiddle + yRange);
+ m_surfaceGraph->axisY()->setSegmentCount(3);
+ m_surfaceGraph->axisZ()->setRange(zMiddle - zRange, zMiddle + zRange);
+ m_surfaceGraph->axisZ()->setSegmentCount(8);
+ } else if (m_barGraph) {
+ QStringList rowLabels;
+ QStringList columnLabels;
+ for (int i = 0; i < xMiddle + xRange; i++) {
+ if (i % 5 == 0)
+ columnLabels << QString::number(i);
+ else
+ columnLabels << QString();
+ }
+ for (int i = 0; i < zMiddle + zRange; i++) {
+ if (i % 5 == 0)
+ rowLabels << QString::number(i);
+ else
+ rowLabels << QString();
+ }
+
+ QBar3DSeries *series = new QBar3DSeries;
+ QBarDataArray *array = new QBarDataArray();
+ array->reserve(zRange * 2 + 1);
+ for (int i = 0; i < zRange * 2 + 1; i++)
+ array->append(new QBarDataRow(xRange * 2 + 1));
+
+ series->dataProxy()->resetArray(array, rowLabels, columnLabels);
+ m_barGraph->addSeries(series);
+
+ m_barGraph->columnAxis()->setRange(xMiddle - xRange, xMiddle + xRange);
+ m_barGraph->valueAxis()->setRange(yMiddle - yRange, yMiddle + yRange);
+ m_barGraph->rowAxis()->setRange(zMiddle - zRange, zMiddle + zRange);
+ //m_barGraph->setReflection(true);
+ }
+ m_graph->activeTheme()->setBackgroundEnabled(false);
createVolume();
createAnotherVolume();
@@ -67,6 +110,7 @@ VolumetricModifier::VolumetricModifier(Q3DScatter *scatter)
// m_volumeItem->setUseHighDefShader(false);
// m_volumeItem2->setUseHighDefShader(false);
// m_volumeItem3->setUseHighDefShader(false);
+
m_volumeItem->setScalingAbsolute(false);
m_volumeItem2->setScalingAbsolute(false);
m_volumeItem3->setScalingAbsolute(false);
@@ -81,7 +125,7 @@ VolumetricModifier::VolumetricModifier(Q3DScatter *scatter)
m_plainItem->setMeshFile(QStringLiteral(":/mesh"));
m_plainItem->setTextureImage(texture);
m_plainItem->setRotation(m_volumeItem->rotation());
- m_plainItem->setPosition(QVector3D(30.0f, 17.5f, -30.0f));
+ m_plainItem->setPosition(QVector3D(xMiddle + xRange / 2.0f, yMiddle + yRange / 2.0f, zMiddle));
m_plainItem->setScaling(QVector3D(20.0f, 5.0f, 10.0f));
m_plainItem->setScalingAbsolute(false);
@@ -243,19 +287,34 @@ void VolumetricModifier::testSubtextureSetting()
void VolumetricModifier::adjustRangeX(int value)
{
float adjustment = float(value - 512) / 10.0f;
- m_graph->axisX()->setRange(xMiddle + adjustment - xRange, xMiddle + adjustment + xRange);
+ if (m_scatterGraph)
+ m_scatterGraph->axisX()->setRange(xMiddle + adjustment - xRange, xMiddle + adjustment + xRange);
+ if (m_surfaceGraph)
+ m_surfaceGraph->axisX()->setRange(xMiddle + adjustment - xRange, xMiddle + adjustment + xRange);
+ if (m_barGraph)
+ m_barGraph->columnAxis()->setRange(xMiddle + adjustment - xRange, xMiddle + adjustment + xRange);
}
void VolumetricModifier::adjustRangeY(int value)
{
float adjustment = float(value - 512) / 10.0f;
- m_graph->axisY()->setRange(yMiddle + adjustment - yRange, yMiddle + adjustment + yRange);
+ if (m_scatterGraph)
+ m_scatterGraph->axisY()->setRange(yMiddle + adjustment - yRange, yMiddle + adjustment + yRange);
+ if (m_surfaceGraph)
+ m_surfaceGraph->axisY()->setRange(yMiddle + adjustment - yRange, yMiddle + adjustment + yRange);
+ if (m_barGraph)
+ m_barGraph->valueAxis()->setRange(yMiddle + adjustment - yRange, yMiddle + adjustment + yRange);
}
void VolumetricModifier::adjustRangeZ(int value)
{
float adjustment = float(value - 512) / 10.0f;
- m_graph->axisZ()->setRange(zMiddle + adjustment - zRange, zMiddle + adjustment + zRange);
+ if (m_scatterGraph)
+ m_scatterGraph->axisZ()->setRange(zMiddle + adjustment - zRange, zMiddle + adjustment + zRange);
+ if (m_surfaceGraph)
+ m_surfaceGraph->axisZ()->setRange(zMiddle + adjustment - zRange, zMiddle + adjustment + zRange);
+ if (m_barGraph)
+ m_barGraph->rowAxis()->setRange(zMiddle + adjustment - zRange, zMiddle + adjustment + zRange);
}
void VolumetricModifier::testBoundsSetting()
@@ -303,6 +362,7 @@ void VolumetricModifier::createVolume()
m_volumeItem->setTextureFormat(QImage::Format_ARGB32);
// m_volumeItem->setRotation(QQuaternion::fromAxisAndAngle(1.0f, 1.0f, 0.0f, 10.0f));
m_volumeItem->setPosition(QVector3D(xMiddle - (xRange / 2.0f), yMiddle + (yRange / 2.0f), zMiddle));
+ //m_volumeItem->setPosition(QVector3D(xMiddle, yMiddle, zMiddle));
QImage logo;
logo.load(QStringLiteral(":/logo_no_padding.png"));
diff --git a/tests/volumetrictest/volumetrictest.h b/tests/volumetrictest/volumetrictest.h
index 48c805d4..9029f7b9 100644
--- a/tests/volumetrictest/volumetrictest.h
+++ b/tests/volumetrictest/volumetrictest.h
@@ -19,9 +19,11 @@
#ifndef VOLUMETRICMODIFIER_H
#define VOLUMETRICMODIFIER_H
-#include <QtDataVisualization/q3dscatter.h>
#include <QtDataVisualization/qcustom3dvolume.h>
#include <QtDataVisualization/qcustom3ditem.h>
+#include <QtDataVisualization/q3dscatter.h>
+#include <QtDataVisualization/q3dsurface.h>
+#include <QtDataVisualization/q3dbars.h>
class QLabel;
@@ -31,7 +33,7 @@ class VolumetricModifier : public QObject
{
Q_OBJECT
public:
- explicit VolumetricModifier(Q3DScatter *scatter);
+ explicit VolumetricModifier(QAbstract3DGraph *scatter);
~VolumetricModifier();
void setFpsLabel(QLabel *fpsLabel);
@@ -58,7 +60,10 @@ private:
void checkRenderCase(int id, Qt::Axis axis, int index, const QVector<uchar> &dataBefore,
QCustom3DVolume *volumeItem);
- Q3DScatter *m_graph;
+ QAbstract3DGraph *m_graph;
+ Q3DScatter *m_scatterGraph;
+ Q3DSurface *m_surfaceGraph;
+ Q3DBars *m_barGraph;
QCustom3DVolume *m_volumeItem;
QCustom3DVolume *m_volumeItem2;
QCustom3DVolume *m_volumeItem3;