summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-01 14:31:05 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-02 07:43:06 +0300
commitfd65a86c44513d7f35d149ea9a49fa4b5a136e4a (patch)
tree4c7fa153bda0fb81b20942e2ee4494f7b2143d0d
parent4511fc46caf955a555814b7bc2190908b399e3d4 (diff)
Add wonky plane to surface example
Change-Id: Ic121097d4dcdc326e3a77e8741d28d22c0583ac4 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
-rw-r--r--examples/surfacechart/chartmodifier.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/surfacechart/chartmodifier.cpp b/examples/surfacechart/chartmodifier.cpp
index 3b5d56ca..b6b2739d 100644
--- a/examples/surfacechart/chartmodifier.cpp
+++ b/examples/surfacechart/chartmodifier.cpp
@@ -27,6 +27,7 @@
QT_DATAVISUALIZATION_USE_NAMESPACE
//#define JITTER_PLANE
+//#define WONKY_PLANE
ChartModifier::ChartModifier(Q3DSurface *chart)
: m_chart(chart),
@@ -132,14 +133,38 @@ void ChartModifier::togglePlane(bool enable)
float maxZ = 10.0;
float stepX = (maxX - minX) / float(m_xCount - 1);
float stepZ = (maxZ - minZ) / float(m_zCount - 1);
+#ifdef WONKY_PLANE
+ float halfZ = m_zCount / 2;
+ float wonkyFactor = 0.01f;
+ float maxStepX = 0.0f;
+ for (float i = 0; i < m_zCount; i++) {
+ QSurfaceDataRow *newRow = new QSurfaceDataRow(m_xCount);
+ if (i < halfZ) {
+ stepX += wonkyFactor;
+ maxStepX = stepX;
+ } else {
+ stepX -= wonkyFactor;
+ }
+ for (float j = 0; j < m_xCount; j++) {
+ (*newRow)[j].setPosition(QVector3D(j * stepX + minX, -0.04f,
+ i * stepZ + minZ));
+
+ }
+ *m_planeArray << newRow;
+ }
+
+ resetArrayAndSliders(m_planeArray, minZ, maxZ, minX, m_xCount * maxStepX + minZ);
+#else
for (float i = 0; i < m_zCount; i++) {
QSurfaceDataRow *newRow = new QSurfaceDataRow(m_xCount);
for (float j = 0; j < m_xCount; j++)
(*newRow)[j].setPosition(QVector3D(j * stepX + minX, -0.04f, i * stepZ + minZ));
+
*m_planeArray << newRow;
}
resetArrayAndSliders(m_planeArray, minZ, maxZ, minX, maxX);
+#endif
m_activeSample = ChartModifier::Plane;
}