summaryrefslogtreecommitdiffstats
path: root/tests/surfacetest/graphmodifier.cpp
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-12-03 14:00:23 +0200
committerMika Salmela <mika.salmela@digia.com>2013-12-03 14:06:59 +0200
commit344870fb79e647b87aa79b9433eef8237c901e10 (patch)
treef0ccaa5991d9f0304bc6f6f91ce3ffd45232384d /tests/surfacetest/graphmodifier.cpp
parent2af35db1a112c49991a80f48e3cd8d8814deb321 (diff)
Better proxy API for surface
Part 2, item change. More is on the way. Change-Id: Ic41f3a90b5a47502b741391ace990117ef2eaf80 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'tests/surfacetest/graphmodifier.cpp')
-rw-r--r--tests/surfacetest/graphmodifier.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp
index 666f4741..11e651a3 100644
--- a/tests/surfacetest/graphmodifier.cpp
+++ b/tests/surfacetest/graphmodifier.cpp
@@ -427,7 +427,7 @@ void GraphModifier::changeRow()
void GraphModifier::changeRows()
{
if (m_activeSample == GraphModifier::SqrtSin) {
- qDebug() << "Generating new values to 3 rows from randon pos";
+ qDebug() << "Generating new values to 3 rows from random pos";
float minX = -10.0f;
float maxX = 10.0f;
@@ -457,6 +457,43 @@ void GraphModifier::changeRows()
}
}
+void GraphModifier::changeItem()
+{
+ if (m_activeSample == GraphModifier::SqrtSin) {
+ qDebug() << "Generating new values for an item at random pos";
+ float minX = -10.0f;
+ float maxX = 10.0f;
+ float minZ = -10.0f;
+ float maxZ = 10.0f;
+ float stepX = (maxX - minX) / float(m_xCount - 1);
+ float stepZ = (maxZ - minZ) / float(m_zCount - 1);
+ float i = float(rand() % m_zCount);
+ float j = float(rand() % m_xCount);
+
+ float x = qMin(maxX, (j * stepX + minX));
+ float z = qMin(maxZ, (i * stepZ + minZ));
+ float R = qSqrt(x * x + z * z) + 0.01f;
+ float y = (qSin(R) / R + 0.24f) * 1.61f + 1.2f;
+ QSurfaceDataItem newItem(QVector3D(x, y, z));
+
+ m_theSeries->dataProxy()->setItem(int(i), int(j), newItem);
+ } else {
+ qDebug() << "Change row function active only for SqrtSin";
+ }
+}
+
+void GraphModifier::changeMultipleRows()
+{
+ for (int i = 0; i < 3; i++)
+ changeRow();
+}
+
+void GraphModifier::changeMultipleItem()
+{
+ for (int i = 0; i < 3; i++)
+ changeItem();
+}
+
void GraphModifier::changeMesh()
{
static int model = 0;