- position = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_POSITION );
- size = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE );
+ position = transformManager.GetVector3PropertyValue(node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_POSITION);
+ size = transformManager.GetVector3PropertyValue(node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE);
+ success = true;
+ }
+ return success;
+}
+
+bool UpdateProxy::GetWorldPositionScaleAndSize(uint32_t id, Vector3& position, Vector3& scale, Vector3& size) const
+{
+ bool success = false;
+ const SceneGraph::Node* node = GetNodeWithId(id);
+ if(node)
+ {
+ const SceneGraph::TransformManager& transformManager = mTransformManager; // To ensure we call the const getter
+ const Matrix& worldMatrix = transformManager.GetWorldMatrix(node->GetTransformId());
+
+ Quaternion orientation;
+ worldMatrix.GetTransformComponents(position, orientation, scale);
+
+ size = transformManager.GetVector3PropertyValue(node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE);