Transform Optimization

This commit is contained in:
Antoine Pilote
2023-09-06 20:20:43 -04:00
parent 1628214370
commit 0fcca4325f
2 changed files with 17 additions and 3 deletions

View File

@@ -78,20 +78,33 @@ namespace Nuake
Quat globalOrientation = transform.GetLocalRotation();
Vector3 globalScale = transform.GetLocalScale();
#ifndef FRAME_PERFECT_TRANSFORM
ParentComponent parentComponent = currentParent.GetComponent<ParentComponent>();
while (parentComponent.HasParent)
if (parentComponent.HasParent)
{
TransformComponent& transformComponent = parentComponent.Parent.GetComponent<TransformComponent>();
globalPosition = transformComponent.GetLocalPosition() + (globalPosition);
globalPosition = transformComponent.GetGlobalPosition() + (globalPosition);
globalScale *= transformComponent.GetGlobalScale();
globalOrientation = transformComponent.GetGlobalRotation() * globalOrientation;
globalTransform = transformComponent.GetGlobalTransform() * globalTransform;
}
#else
while (parentComponent.HasParent)
{
TransformComponent& transformComponent = parentComponent.Parent.GetComponent<TransformComponent>();
globalPosition = transformComponent.GetLocalPosition() + (globalPosition);
globalScale *= transformComponent.GetLocalScale();
globalOrientation = transformComponent.GetLocalRotation() * globalOrientation;
globalTransform = transformComponent.GetLocalTransform() * globalTransform;
NameComponent& nameComponent = parentComponent.Parent.GetComponent<NameComponent>();
parentComponent = parentComponent.Parent.GetComponent<ParentComponent>();
}
#endif // FRAME_PERFECT_TRANSFORM
transform.SetGlobalPosition(globalPosition);
transform.SetGlobalRotation(globalOrientation);