Fixed quaternion for transforms

This commit is contained in:
a.pilote
2022-07-13 20:27:32 -04:00
parent a4cdf4b524
commit fb6080d734
5 changed files with 27 additions and 26 deletions

View File

@@ -51,14 +51,12 @@ namespace Nuake {
if (transform.Dirty)
{
Vector3 dum;
Vector4 dum2;
glm::decompose(transform.LocalTransform, transform.Scale, transform.Orientation, transform.Translation, dum, dum2);
transform.LocalTransform = Matrix4(1);
transform.LocalTransform = glm::translate(transform.LocalTransform, transform.Translation);
transform.Dirty = false;
Matrix4 localTransform = Matrix4(1);
localTransform = glm::translate(transform.LocalTransform, transform.Translation);
localTransform = localTransform * glm::toMat4(transform.Rotation);
localTransform = glm::scale(transform.LocalTransform, transform.Scale);
transform.LocalTransform = localTransform;
}
}
@@ -79,7 +77,7 @@ namespace Nuake {
Matrix4 globalTransform = transform.LocalTransform;
Vector3 globalPosition = transform.Translation;
Quat globalOrientation = transform.Orientation;
Quat globalOrientation = transform.Rotation;
Vector3 globalScale = transform.Scale;
ParentComponent parentComponent = currentParent.GetComponent<ParentComponent>();
@@ -90,14 +88,14 @@ namespace Nuake {
globalTransform = transformComponent.LocalTransform * globalTransform;
globalPosition += transformComponent.Translation;
globalOrientation *= transformComponent.Orientation;
globalOrientation *= transformComponent.Rotation;
globalScale *= transformComponent.Scale;
parentComponent = parentComponent.Parent.GetComponent<ParentComponent>();
}
transform.GlobalTranslation = globalPosition;
transform.GlobalOrientation = globalOrientation;
transform.GlobalRotation = globalOrientation;
transform.GlobalScale = globalScale;
transform.GlobalTransform = globalTransform;