diff --git a/src/quick3d/qdemonnode.cpp b/src/quick3d/qdemonnode.cpp index 2501b3babdb08bec5e65c8b395fb321db4dc0b6d..299ecc182215807ee851a8a5718d0c4124d1b9af 100644 --- a/src/quick3d/qdemonnode.cpp +++ b/src/quick3d/qdemonnode.cpp @@ -148,8 +148,20 @@ void QDemonNode::setPosition(QVector3D position) if (m_position == position) return; + const bool xUnchanged = qFuzzyCompare(position.x(), m_position.x()); + const bool yUnchanged = qFuzzyCompare(position.y(), m_position.y()); + const bool zUnchanged = qFuzzyCompare(position.z(), m_position.z()); + m_position = position; emit positionChanged(m_position); + + if (!xUnchanged) + emit xChanged(m_position.x()); + if (!yUnchanged) + emit yChanged(m_position.y()); + if (!zUnchanged) + emit zChanged(m_position.z()); + update(); }