summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dobject.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-12 09:53:52 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-12 10:31:27 +0300
commit7f8966b035c9fd73d2cde04521c92892feefc0f9 (patch)
tree55fee47c70805ff6bd4df1a8cd7693ea34132b27 /src/datavisualization/engine/q3dobject.cpp
parent1262c6562d7264c9fe4caf2f433615348c0f2ef8 (diff)
Fix Q3DScene caching
Task-number: QTRD-2258 Change-Id: Ifce23dca40566e75398e00975e8b2159b325739e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/q3dobject.cpp')
-rw-r--r--src/datavisualization/engine/q3dobject.cpp29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/datavisualization/engine/q3dobject.cpp b/src/datavisualization/engine/q3dobject.cpp
index cd609ae6..ac110d82 100644
--- a/src/datavisualization/engine/q3dobject.cpp
+++ b/src/datavisualization/engine/q3dobject.cpp
@@ -36,11 +36,15 @@ void Q3DObject::copyValuesFrom(const Q3DObject &source)
d_ptr->m_position.setX(source.d_ptr->m_position.x());
d_ptr->m_position.setY(source.d_ptr->m_position.y());
d_ptr->m_position.setZ(source.d_ptr->m_position.z());
+ setDirty(true);
}
void Q3DObject::setParentScene(Q3DScene *parentScene)
{
- d_ptr->m_parentScene = parentScene;
+ if (d_ptr->m_parentScene != parentScene) {
+ d_ptr->m_parentScene = parentScene;
+ setDirty(true);
+ }
}
Q3DScene *Q3DObject::parentScene()
@@ -50,7 +54,10 @@ Q3DScene *Q3DObject::parentScene()
void Q3DObject::setPosition(const QVector3D &position)
{
- d_ptr->m_position = position;
+ if (d_ptr->m_position != position) {
+ d_ptr->m_position = position;
+ setDirty(true);
+ }
}
QVector3D Q3DObject::position() const
@@ -58,10 +65,26 @@ QVector3D Q3DObject::position() const
return d_ptr->m_position;
}
+/*!
+ * \internal
+ */
+void Q3DObject::setDirty(bool dirty)
+{
+ d_ptr->m_isDirty = dirty;
+}
+
+/*!
+ * \internal
+ */
+bool Q3DObject::isDirty() const
+{
+ return d_ptr->m_isDirty;
+}
Q3DObjectPrivate::Q3DObjectPrivate(Q3DObject *q) :
q_ptr(q),
- m_parentScene(0)
+ m_parentScene(0),
+ m_isDirty(true)
{
}