summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dobject.cpp
diff options
context:
space:
mode:
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)
{
}