diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-03-18 15:33:00 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-03-25 08:17:53 +0200 |
commit | 724bcb35136ed1af699fe8631b9297deb07571ad (patch) | |
tree | 165ea553da056e0620a8c09ed94874c2b1e9e05a /tests | |
parent | ba812351a1577163a1c9794b667f2b4e3acb9373 (diff) |
Actually use axis formatter in renderer.
Task-number: QTRD-2787
Change-Id: I0ced8e506928df5fba2e8df94258b53457f4412e
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/barstest/chart.cpp | 9 | ||||
-rw-r--r-- | tests/barstest/chart.h | 1 | ||||
-rw-r--r-- | tests/barstest/main.cpp | 9 | ||||
-rw-r--r-- | tests/scattertest/main.cpp | 80 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.cpp | 53 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.h | 6 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.cpp | 44 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.h | 4 | ||||
-rw-r--r-- | tests/surfacetest/main.cpp | 30 |
9 files changed, 207 insertions, 29 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 7374f25f..cf044a45 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -144,7 +144,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_dummyData4->setName("Dummy 4"); m_dummyData5->setName("Dummy 5"); - m_temperatureData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel")); + m_temperatureData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel ~ %.4f")); m_temperatureData2->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel")); m_genericData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for (@rowIdx, @colIdx): @valueLabel")); @@ -1055,7 +1055,12 @@ void GraphModifier::useLogAxis() // logAxis->formatter()->setBase(10); // logAxis->setSegmentCount(5); // logAxis->setRange(1, 100000); -// m_graph->setValueAxis(logAxis); + // m_graph->setValueAxis(logAxis); +} + +void GraphModifier::changeValueAxisFormat(const QString & text) +{ + m_graph->valueAxis()->setLabelFormat(text); } void GraphModifier::insertRemoveTimerTimeout() diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 557270e0..304103cd 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -86,6 +86,7 @@ public: void insertRemoveTestToggle(); void toggleRotation(); void useLogAxis(); + void changeValueAxisFormat(const QString & text); public slots: void flipViews(); diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index b02fa48f..edf61e2e 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -32,6 +32,7 @@ #include <QLinearGradient> #include <QPainter> #include <QColorDialog> +#include <QLineEdit> int main(int argc, char **argv) { @@ -290,6 +291,8 @@ int main(int argc, char **argv) shadowQuality->addItem(QStringLiteral("High Soft")); shadowQuality->setCurrentIndex(5); + QLineEdit *valueAxisFormatEdit = new QLineEdit(widget); + vLayout->addWidget(addDataButton, 0, Qt::AlignTop); vLayout->addWidget(addMultiDataButton, 0, Qt::AlignTop); vLayout->addWidget(insertDataButton, 0, Qt::AlignTop); @@ -344,7 +347,9 @@ int main(int argc, char **argv) vLayout2->addWidget(new QLabel(QStringLiteral("Change font")), 0, Qt::AlignTop); vLayout2->addWidget(fontList, 0, Qt::AlignTop); vLayout2->addWidget(new QLabel(QStringLiteral("Adjust font size")), 0, Qt::AlignTop); - vLayout2->addWidget(fontSizeSlider, 1, Qt::AlignTop); + vLayout2->addWidget(fontSizeSlider, 0, Qt::AlignTop); + vLayout2->addWidget(new QLabel(QStringLiteral("Value axis format")), 0, Qt::AlignTop); + vLayout2->addWidget(valueAxisFormatEdit, 1, Qt::AlignTop); // TODO: Add example for setMeshFileName widget->show(); @@ -380,6 +385,8 @@ int main(int argc, char **argv) &QComboBox::setCurrentIndex); QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier, &GraphModifier::changeFontSize); + QObject::connect(valueAxisFormatEdit, &QLineEdit::textEdited, modifier, + &GraphModifier::changeValueAxisFormat); QObject::connect(multiScaleButton, &QPushButton::clicked, modifier, &GraphModifier::toggleMultiseriesScaling); diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 30382ca5..fbe257f5 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -40,6 +40,7 @@ int main(int argc, char **argv) QWidget *widget = new QWidget; QHBoxLayout *hLayout = new QHBoxLayout(widget); QVBoxLayout *vLayout = new QVBoxLayout(); + QVBoxLayout *vLayout2 = new QVBoxLayout(); Q3DScatter *chart = new Q3DScatter(); QSize screenSize = chart->screen()->size(); @@ -54,6 +55,7 @@ int main(int argc, char **argv) hLayout->addWidget(container, 1); hLayout->addLayout(vLayout); + hLayout->addLayout(vLayout2); QPushButton *themeButton = new QPushButton(widget); themeButton->setText(QStringLiteral("Change theme")); @@ -161,6 +163,48 @@ int main(int argc, char **argv) pointSizeSlider->setValue(30); pointSizeSlider->setMaximum(100); + QSlider *minSliderX = new QSlider(Qt::Horizontal, widget); + minSliderX->setTickInterval(1); + minSliderX->setTickPosition(QSlider::TicksBelow); + minSliderX->setMinimum(-100); + minSliderX->setValue(-50); + minSliderX->setMaximum(100); + + QSlider *minSliderY = new QSlider(Qt::Horizontal, widget); + minSliderY->setTickInterval(1); + minSliderY->setTickPosition(QSlider::TicksBelow); + minSliderY->setMinimum(-200); + minSliderY->setValue(-100); + minSliderY->setMaximum(200); + + QSlider *minSliderZ = new QSlider(Qt::Horizontal, widget); + minSliderZ->setTickInterval(1); + minSliderZ->setTickPosition(QSlider::TicksBelow); + minSliderZ->setMinimum(-100); + minSliderZ->setValue(-50); + minSliderZ->setMaximum(100); + + QSlider *maxSliderX = new QSlider(Qt::Horizontal, widget); + maxSliderX->setTickInterval(1); + maxSliderX->setTickPosition(QSlider::TicksAbove); + maxSliderX->setMinimum(-100); + maxSliderX->setValue(50); + maxSliderX->setMaximum(100); + + QSlider *maxSliderY = new QSlider(Qt::Horizontal, widget); + maxSliderY->setTickInterval(1); + maxSliderY->setTickPosition(QSlider::TicksAbove); + maxSliderY->setMinimum(-200); + maxSliderY->setValue(120); + maxSliderY->setMaximum(200); + + QSlider *maxSliderZ = new QSlider(Qt::Horizontal, widget); + maxSliderZ->setTickInterval(1); + maxSliderZ->setTickPosition(QSlider::TicksAbove); + maxSliderZ->setMinimum(-100); + maxSliderZ->setValue(50); + maxSliderZ->setMaximum(100); + vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); vLayout->addWidget(styleButton, 0, Qt::AlignTop); @@ -185,13 +229,21 @@ int main(int argc, char **argv) vLayout->addWidget(backgroundCheckBox); vLayout->addWidget(gridCheckBox); vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality"))); - vLayout->addWidget(shadowQuality); - vLayout->addWidget(new QLabel(QStringLiteral("Change font"))); - vLayout->addWidget(fontList); - vLayout->addWidget(new QLabel(QStringLiteral("Adjust font size"))); - vLayout->addWidget(fontSizeSlider, 1, Qt::AlignTop); - vLayout->addWidget(new QLabel(QStringLiteral("Adjust point size"))); - vLayout->addWidget(pointSizeSlider, 1, Qt::AlignTop); + vLayout->addWidget(shadowQuality, 1, Qt::AlignTop); + + vLayout2->addWidget(new QLabel(QStringLiteral("Adjust point size"))); + vLayout2->addWidget(pointSizeSlider, 0, Qt::AlignTop); + vLayout2->addWidget(new QLabel(QStringLiteral("Adjust data window"))); + vLayout2->addWidget(minSliderX, 0, Qt::AlignTop); + vLayout2->addWidget(maxSliderX, 0, Qt::AlignTop); + vLayout2->addWidget(minSliderY, 0, Qt::AlignTop); + vLayout2->addWidget(maxSliderY, 0, Qt::AlignTop); + vLayout2->addWidget(minSliderZ, 0, Qt::AlignTop); + vLayout2->addWidget(maxSliderZ, 0, Qt::AlignTop); + vLayout2->addWidget(new QLabel(QStringLiteral("Change font"))); + vLayout2->addWidget(fontList); + vLayout2->addWidget(new QLabel(QStringLiteral("Adjust font size"))); + vLayout2->addWidget(fontSizeSlider, 1, Qt::AlignTop); widget->show(); @@ -257,6 +309,20 @@ int main(int argc, char **argv) QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, &ScatterDataModifier::setGridEnabled); + QObject::connect(minSliderX, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setMinX); + QObject::connect(minSliderY, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setMinY); + QObject::connect(minSliderZ, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setMinZ); + QObject::connect(maxSliderX, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setMaxX); + QObject::connect(maxSliderY, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setMaxY); + QObject::connect(maxSliderZ, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setMaxZ); + + modifier->start(); return app.exec(); diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index aa0c5454..a589919f 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -83,6 +83,12 @@ void ScatterDataModifier::addData() m_chart->axisX()->setRange(-50.0f, 50.0f); m_chart->axisY()->setRange(-1.0f, 1.2f); m_chart->axisZ()->setRange(-50.0f, 50.0f); + m_chart->axisX()->setSegmentCount(6); + m_chart->axisY()->setSegmentCount(4); + m_chart->axisZ()->setSegmentCount(9); + m_chart->axisX()->setSubSegmentCount(2); + m_chart->axisY()->setSubSegmentCount(3); + m_chart->axisZ()->setSubSegmentCount(1); QScatterDataArray *dataArray = new QScatterDataArray; dataArray->resize(numberOfItems); @@ -229,9 +235,12 @@ void ScatterDataModifier::resetAxes() m_chart->setAxisX(new QValue3DAxis); m_chart->setAxisY(new QValue3DAxis); m_chart->setAxisZ(new QValue3DAxis); - m_chart->axisX()->setSegmentCount(5); - m_chart->axisY()->setSegmentCount(5); - m_chart->axisZ()->setSegmentCount(5); + m_chart->axisX()->setSegmentCount(6); + m_chart->axisY()->setSegmentCount(4); + m_chart->axisZ()->setSegmentCount(9); + m_chart->axisX()->setSubSegmentCount(2); + m_chart->axisY()->setSubSegmentCount(3); + m_chart->axisZ()->setSubSegmentCount(1); m_chart->axisX()->setTitle("X"); m_chart->axisY()->setTitle("Y"); m_chart->axisZ()->setTitle("Z"); @@ -516,12 +525,46 @@ void ScatterDataModifier::setGridEnabled(int enabled) m_chart->activeTheme()->setGridEnabled((bool)enabled); } +void ScatterDataModifier::setMinX(int min) +{ + m_chart->axisX()->setMin(min); +} + +void ScatterDataModifier::setMinY(int min) +{ + m_chart->axisY()->setMin(float(min) / 100.0f); +} + +void ScatterDataModifier::setMinZ(int min) +{ + m_chart->axisZ()->setMin(min); +} + +void ScatterDataModifier::setMaxX(int max) +{ + m_chart->axisX()->setMax(max); +} + +void ScatterDataModifier::setMaxY(int max) +{ + m_chart->axisY()->setMax(float(max) / 100.0f); +} + +void ScatterDataModifier::setMaxZ(int max) +{ + m_chart->axisZ()->setMax(max); +} + QVector3D ScatterDataModifier::randVector() { - return QVector3D( + QVector3D retvec = QVector3D( (float)(rand() % 100) / 2.0f - (float)(rand() % 100) / 2.0f, (float)(rand() % 100) / 100.0f - (float)(rand() % 100) / 100.0f, (float)(rand() % 100) / 2.0f - (float)(rand() % 100) / 2.0f); + + qDebug() << __FUNCTION__ << retvec; + + return retvec; } QScatter3DSeries *ScatterDataModifier::createAndAddSeries() @@ -535,7 +578,7 @@ QScatter3DSeries *ScatterDataModifier::createAndAddSeries() m_chart->addSeries(series); series->setName(QString("Series %1").arg(counter++)); - series->setItemLabelFormat(QStringLiteral("@seriesName: @xLabel - @yLabel - @zLabel")); + series->setItemLabelFormat(QStringLiteral("@seriesName: (X:@xLabel / Z:@zLabel) Y:@yLabel")); series->setMesh(QAbstract3DSeries::MeshSphere); series->setMeshSmooth(true); series->setBaseColor(QColor(rand() % 256, rand() % 256, rand() % 256)); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 21357d62..23071c85 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -45,6 +45,12 @@ public: void changePointSize(int pointSize); void setBackgroundEnabled(int enabled); void setGridEnabled(int enabled); + void setMinX(int min); + void setMinY(int min); + void setMinZ(int min); + void setMaxX(int max); + void setMaxY(int max); + void setMaxZ(int max); void start(); public slots: diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 7f2a3ef2..e1fed76a 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -49,8 +49,10 @@ GraphModifier::GraphModifier(Q3DSurface *graph) m_activeSample(0), m_fontSize(40), m_rangeX(16.0), + m_rangeY(16.0), m_rangeZ(16.0), m_minX(-8.0), + m_minY(-8.0), m_minZ(-8.0), m_addRowCounter(m_zCount), m_insertTestZPos(0), @@ -85,14 +87,15 @@ GraphModifier::GraphModifier(Q3DSurface *graph) m_multiSampleOffsetX[3] = m_offset; m_multiSampleOffsetZ[3] = m_offset; - m_graph->axisX()->setRange(-m_limitX - m_offset, m_limitX + m_offset); - m_graph->axisY()->setRange(-1.0f, 4.5f); - m_graph->axisZ()->setRange(-m_limitZ - m_offset, m_limitZ + m_offset); +// m_graph->axisX()->setRange(-m_limitX - m_offset, m_limitX + m_offset); +// m_graph->axisY()->setRange(-1.0f, 4.5f); +// m_graph->axisZ()->setRange(-m_limitZ - m_offset, m_limitZ + m_offset); #else - m_graph->axisX()->setRange(m_minX, m_minX + m_rangeX); - m_graph->axisZ()->setRange(m_minZ, m_minZ + m_rangeZ); m_graph->addSeries(m_theSeries); #endif + m_graph->axisX()->setRange(m_minX, m_minX + m_rangeX); + m_graph->axisY()->setRange(m_minY, m_minY + m_rangeY); + m_graph->axisZ()->setRange(m_minZ, m_minZ + m_rangeZ); for (int i = 0; i < 4; i++) { m_multiseries[i] = new QSurface3DSeries; @@ -134,18 +137,27 @@ void GraphModifier::fillSeries() QSurfaceDataArray *dataArray4 = new QSurfaceDataArray; dataArray4->reserve(m_zCount); + for (int i = 0; i < m_zCount; i++) { QSurfaceDataRow *newRow[4]; + float zAdjust = 0.0f; + if (i == 3) + zAdjust = 0.7f; + for (int s = 0; s < 4; s++) { newRow[s] = new QSurfaceDataRow(m_xCount); - float z = float(i) - m_limitZ + 0.5f + m_multiSampleOffsetZ[s]; + float z = float(i) - m_limitZ + 0.5f + m_multiSampleOffsetZ[s] + zAdjust; for (int j = 0; j < m_xCount; j++) { - float x = float(j) - m_limitX + 0.5f + m_multiSampleOffsetX[s]; + float xAdjust = 0.0f; + if (j == 3) + xAdjust = 0.7f; + float x = float(j) - m_limitX + 0.5f + m_multiSampleOffsetX[s] + xAdjust; float angle = (z * x) / full * 1.57f; - float y = qSin(angle * float(qPow(1.3f, s))) + 1.1f * s; + float y = (qSin(angle * float(qPow(1.3f, s))) + 1.1f * s) * 3.0f - 5.0f + xAdjust + zAdjust; (*newRow[s])[j].setPosition(QVector3D(x, y, z)); } } + qDebug() << newRow[0]->at(0).z(); *dataArray1 << newRow[0]; *dataArray2 << newRow[1]; *dataArray3 << newRow[2]; @@ -550,6 +562,14 @@ void GraphModifier::adjustXRange(int range) qDebug() << "X Range =" << range; } +void GraphModifier::adjustYRange(int range) +{ + m_rangeY = range; + m_graph->axisY()->setRange(m_minY, m_minY + m_rangeY); + + qDebug() << "Y Range =" << range; +} + void GraphModifier::adjustZRange(int range) { m_rangeZ = range; @@ -566,6 +586,14 @@ void GraphModifier::adjustXMin(int min) qDebug() << "X Minimum =" << min; } +void GraphModifier::adjustYMin(int min) +{ + m_minY = min; + m_graph->axisY()->setRange(m_minY, m_minY + m_rangeY); + + qDebug() << "Y Minimum =" << min; +} + void GraphModifier::adjustZMin(int min) { m_minZ = min; diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index 7d7d425e..9fd0360b 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -82,8 +82,10 @@ public: void adjustXCount(int count); void adjustZCount(int count); void adjustXRange(int range); + void adjustYRange(int range); void adjustZRange(int range); void adjustXMin(int min); + void adjustYMin(int min); void adjustZMin(int min); void updateSamples(); void gradientPressed(); @@ -143,8 +145,10 @@ private: int m_activeSample; int m_fontSize; float m_rangeX; + float m_rangeY; float m_rangeZ; float m_minX; + float m_minY; float m_minZ; int m_addRowCounter; int m_insertTestZPos; diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 99c60893..6b54b8dd 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -182,28 +182,40 @@ int main(int argc, char *argv[]) QSlider *axisRangeSliderX = new QSlider(Qt::Horizontal, widget); axisRangeSliderX->setTickInterval(1); - axisRangeSliderX->setMinimum(2); + axisRangeSliderX->setMinimum(1); axisRangeSliderX->setValue(16); axisRangeSliderX->setMaximum(100); axisRangeSliderX->setEnabled(true); + QSlider *axisRangeSliderY = new QSlider(Qt::Horizontal, widget); + axisRangeSliderY->setTickInterval(1); + axisRangeSliderY->setMinimum(1); + axisRangeSliderY->setValue(16); + axisRangeSliderY->setMaximum(100); + axisRangeSliderY->setEnabled(true); QSlider *axisRangeSliderZ = new QSlider(Qt::Horizontal, widget); axisRangeSliderZ->setTickInterval(1); - axisRangeSliderZ->setMinimum(2); + axisRangeSliderZ->setMinimum(1); axisRangeSliderZ->setValue(16); axisRangeSliderZ->setMaximum(100); axisRangeSliderZ->setEnabled(true); QSlider *axisMinSliderX = new QSlider(Qt::Horizontal, widget); axisMinSliderX->setTickInterval(1); - axisMinSliderX->setMinimum(-50); + axisMinSliderX->setMinimum(-100); axisMinSliderX->setValue(-8); - axisMinSliderX->setMaximum(50); + axisMinSliderX->setMaximum(100); axisMinSliderX->setEnabled(true); + QSlider *axisMinSliderY = new QSlider(Qt::Horizontal, widget); + axisMinSliderY->setTickInterval(1); + axisMinSliderY->setMinimum(-100); + axisMinSliderY->setValue(-8); + axisMinSliderY->setMaximum(100); + axisMinSliderY->setEnabled(true); QSlider *axisMinSliderZ = new QSlider(Qt::Horizontal, widget); axisMinSliderZ->setTickInterval(1); - axisMinSliderZ->setMinimum(-50); + axisMinSliderZ->setMinimum(-100); axisMinSliderZ->setValue(-8); - axisMinSliderZ->setMaximum(50); + axisMinSliderZ->setMaximum(100); axisMinSliderZ->setEnabled(true); QLinearGradient gr(0, 0, 100, 1); @@ -378,9 +390,11 @@ int main(int argc, char *argv[]) #endif vLayout->addWidget(new QLabel(QStringLiteral("Adjust axis range"))); vLayout->addWidget(axisRangeSliderX); + vLayout->addWidget(axisRangeSliderY); vLayout->addWidget(axisRangeSliderZ); vLayout->addWidget(new QLabel(QStringLiteral("Adjust axis minimum"))); vLayout->addWidget(axisMinSliderX); + vLayout->addWidget(axisMinSliderY); vLayout->addWidget(axisMinSliderZ); vLayout2->addWidget(new QLabel(QStringLiteral("Change font"))); vLayout2->addWidget(fontList); @@ -510,10 +524,14 @@ int main(int argc, char *argv[]) #endif QObject::connect(axisRangeSliderX, &QSlider::valueChanged, modifier, &GraphModifier::adjustXRange); + QObject::connect(axisRangeSliderY, &QSlider::valueChanged, + modifier, &GraphModifier::adjustYRange); QObject::connect(axisRangeSliderZ, &QSlider::valueChanged, modifier, &GraphModifier::adjustZRange); QObject::connect(axisMinSliderX, &QSlider::valueChanged, modifier, &GraphModifier::adjustXMin); + QObject::connect(axisMinSliderY, &QSlider::valueChanged, + modifier, &GraphModifier::adjustYMin); QObject::connect(axisMinSliderZ, &QSlider::valueChanged, modifier, &GraphModifier::adjustZMin); QObject::connect(colorPB, &QPushButton::pressed, |