diff options
Diffstat (limited to 'src/datavisualization/engine/q3dobject.cpp')
-rw-r--r-- | src/datavisualization/engine/q3dobject.cpp | 29 |
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) { } |