summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@theqtcompany.com>2014-12-08 11:43:20 +0200
committerMika Salmela <mika.salmela@theqtcompany.com>2014-12-08 11:44:30 +0200
commitb492b273712aa09c6309516f1df7a1684b371c18 (patch)
tree90533a06f31304b7043f64f1f726c5d39b88ad20
parentb439a667c05521cea054180e880d0a55e7231541 (diff)
Fixes to galaxy.
Change-Id: I41a666177526db8563eee5799dee57e9994800dc Signed-off-by: Mika Salmela <mika.salmela@theqtcompany.com>
-rw-r--r--tests/galaxy/galaxydata.cpp73
-rw-r--r--tests/galaxy/galaxydata.h6
-rw-r--r--tests/galaxy/main.cpp7
3 files changed, 58 insertions, 28 deletions
diff --git a/tests/galaxy/galaxydata.cpp b/tests/galaxy/galaxydata.cpp
index 9cd3202c..449e9706 100644
--- a/tests/galaxy/galaxydata.cpp
+++ b/tests/galaxy/galaxydata.cpp
@@ -69,11 +69,7 @@ GalaxyData::GalaxyData(Q3DScatter *scatter,
this, &GalaxyData::handleFpsChange);
m_graph->setMeasureFps(true);
- createNormalSeries();
-
- m_dataArray = new QScatterDataArray;
- m_dataArray->resize(numOfStars);
-
+ createSeries();
createGalaxy();
}
@@ -154,17 +150,25 @@ void GalaxyData::createGalaxy()
createFilteredView();
}
-void GalaxyData::createNormalSeries()
+void GalaxyData::createSeries()
{
- QScatterDataProxy *proxy = new QScatterDataProxy;
- QScatter3DSeries *series = new QScatter3DSeries(proxy);
- series->setMesh(QAbstract3DSeries::MeshPoint);
- m_graph->addSeries(series);
+ QScatterDataProxy *proxyNormal = new QScatterDataProxy;
+ m_normalSeries = new QScatter3DSeries(proxyNormal);
+ m_normalSeries->setMesh(QAbstract3DSeries::MeshPoint);
+ m_graph->addSeries(m_normalSeries);
+
+ QScatterDataProxy *proxyFiltered = new QScatterDataProxy;
+ m_filteredSeries = new QScatter3DSeries(proxyFiltered);
+ m_filteredSeries->setMesh(QAbstract3DSeries::MeshPoint);
+ m_graph->addSeries(m_filteredSeries);
+
}
void GalaxyData::createNormalDataView()
{
- QScatterDataItem *ptrToDataArray = &m_dataArray->first();
+ QScatterDataArray *dataArray = new QScatterDataArray;
+ dataArray->resize(numOfStars);
+ QScatterDataItem *ptrToDataArray = &dataArray->first();
for (uint i = 0; i < numOfStars; i++) {
ptrToDataArray->setPosition(QVector3D(m_pStars[i].m_pos.x(),
@@ -173,8 +177,8 @@ void GalaxyData::createNormalDataView()
ptrToDataArray++;
}
- m_graph->seriesList().at(0)->dataProxy()->resetArray(m_dataArray);
- m_graph->seriesList().at(0)->setMesh(QAbstract3DSeries::MeshPoint);
+ m_normalSeries->dataProxy()->resetArray(dataArray);
+ m_normalSeries->setMesh(QAbstract3DSeries::MeshPoint);
}
void GalaxyData::createFilteredView()
@@ -203,9 +207,10 @@ void GalaxyData::createFilteredView()
nActiveCell++;
}
- m_dataArray->clear();
- m_dataArray->resize(nActiveCell);
- QScatterDataItem *ptrToDataArray = &m_dataArray->first();
+
+ QScatterDataArray *dataArray = new QScatterDataArray;
+ dataArray->resize(nActiveCell);
+ QScatterDataItem *ptrToDataArray = &dataArray->first();
for (int y = 0; y < steps; y++) {
for (int x = 0; x < steps; x++) {
@@ -218,9 +223,9 @@ void GalaxyData::createFilteredView()
}
}
- m_graph->seriesList().at(0)->dataProxy()->resetArray(m_dataArray);
- m_graph->seriesList().at(0)->setMesh(QAbstract3DSeries::MeshCube);
- m_graph->seriesList().at(0)->setItemSize(0.1f);
+ m_filteredSeries->dataProxy()->resetArray(dataArray);
+ m_filteredSeries->setMesh(QAbstract3DSeries::MeshCube);
+ m_filteredSeries->setItemSize(0.1f);
m_graph->axisY()->setRange(0.0f, float(max + 1));
@@ -297,24 +302,40 @@ void GalaxyData::setFilteredEnabled(bool enabled)
if (enabled) {
QLinearGradient gr(0, 0, 1, 100);
gr.setColorAt(0.0, Qt::white);
- gr.setColorAt(0.05, Qt::green);
+ gr.setColorAt(0.04, Qt::green);
+ gr.setColorAt(0.1, Qt::darkGreen);
gr.setColorAt(1.0, Qt::red);
- m_graph->seriesList().at(0)->setBaseGradient(gr);
- m_graph->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleRangeGradient);
+ m_filteredSeries->setBaseGradient(gr);
+ m_filteredSeries->setColorStyle(Q3DTheme::ColorStyleRangeGradient);
+
+ m_normalSeries->setVisible(false);
createFilteredView();
+
+ m_filteredSeries->setVisible(true);
} else {
- m_dataArray->clear();
- m_dataArray->resize(numOfStars);
- m_graph->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleUniform);
+ m_normalSeries->setColorStyle(Q3DTheme::ColorStyleUniform);
m_graph->axisY()->setRange(-1.0f, 1.0f);
- m_graph->seriesList().at(0)->setItemSize(0.0f);
+ m_normalSeries->setItemSize(0.0f);
+
+ m_filteredSeries->setVisible(false);
createNormalDataView();
+
+ m_normalSeries->setVisible(true);
}
}
+
+void GalaxyData::setStaticEnabled(bool enabled)
+{
+ if (enabled)
+ m_graph->setOptimizationHints(QAbstract3DGraph::OptimizationStatic);
+ else
+ m_graph->setOptimizationHints(QAbstract3DGraph::OptimizationDefault);
+}
+
void GalaxyData::resetValues()
{
m_radiusGalaxySlider->setValue(15000);
diff --git a/tests/galaxy/galaxydata.h b/tests/galaxy/galaxydata.h
index 33c33778..298acbb1 100644
--- a/tests/galaxy/galaxydata.h
+++ b/tests/galaxy/galaxydata.h
@@ -51,6 +51,7 @@ public:
void eccentricityOuterChanged(int value);
void resetValues();
void setFilteredEnabled(bool enabled);
+ void setStaticEnabled(bool enabled);
inline void setSliders(QSlider *rg,
QSlider *rc,
QSlider *ao,
@@ -70,12 +71,13 @@ private:
void checkMinMax(const Star &star);
void createNormalDataView();
void createFilteredView();
- void createNormalSeries();
+ void createSeries();
qreal value;
private:
Q3DScatter *m_graph;
- QScatterDataArray *m_dataArray;
+ QScatter3DSeries *m_normalSeries;
+ QScatter3DSeries *m_filteredSeries;
Star *m_pStars;
qreal m_elEx1; // Excentricity of the innermost ellipse
diff --git a/tests/galaxy/main.cpp b/tests/galaxy/main.cpp
index e23741da..83e06cff 100644
--- a/tests/galaxy/main.cpp
+++ b/tests/galaxy/main.cpp
@@ -83,6 +83,10 @@ int main(int argc, char **argv)
eccentricityOuterSlider->setValue(90);
eccentricityOuterSlider->setEnabled(true);
+ QCheckBox *staticCheckBox = new QCheckBox(widget);
+ staticCheckBox->setText(QStringLiteral("Static"));
+ staticCheckBox->setChecked(false);
+
QPushButton *resetButton = new QPushButton(widget);
resetButton->setText(QStringLiteral("Reset values"));
@@ -102,6 +106,7 @@ int main(int argc, char **argv)
vLayout->addWidget(eccentricityInnerSlider);
vLayout->addWidget(new QLabel(QStringLiteral("Eccentricity outer")));
vLayout->addWidget(eccentricityOuterSlider);
+ vLayout->addWidget(staticCheckBox);
vLayout->addWidget(resetButton);
vLayout->addWidget(filteredCheckBox);
vLayout->addWidget(fpsLabel);
@@ -122,6 +127,8 @@ int main(int argc, char **argv)
modifier, &GalaxyData::resetValues);
QObject::connect(filteredCheckBox, &QCheckBox::stateChanged,
modifier, &GalaxyData::setFilteredEnabled);
+ QObject::connect(staticCheckBox, &QCheckBox::stateChanged,
+ modifier, &GalaxyData::setStaticEnabled);
modifier->setSliders(radiusGalaxySlider, radiusCoreSlider, angleOffsetSlider,
eccentricityInnerSlider, eccentricityOuterSlider);