diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-12 09:53:52 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-12 10:31:27 +0300 |
commit | 7f8966b035c9fd73d2cde04521c92892feefc0f9 (patch) | |
tree | 55fee47c70805ff6bd4df1a8cd7693ea34132b27 /src/datavisualization/engine/q3dobject.cpp | |
parent | 1262c6562d7264c9fe4caf2f433615348c0f2ef8 (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.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) { } |