Better maths

This commit is contained in:
Antoine Pilote
2023-07-10 17:36:17 -04:00
parent ea3c7def51
commit 07002f0d4a
5 changed files with 39 additions and 34 deletions

View File

@@ -2,10 +2,9 @@
#include "src/Core/Maths.h"
#include "src/Scene/Scene.h"
#include "src/Scene/Components/TransformComponent.h"
#include "src/Scene/Components/CameraComponent.h"
#include "src/Scene/Components/ParentComponent.h"
#include <src/Scene/Components/TransformComponent.h>
#include <src/Scene/Components/CameraComponent.h>
#include <src/Scene/Components/ParentComponent.h>
namespace Nuake
{
@@ -37,18 +36,6 @@ namespace Nuake
void TransformSystem::UpdateTransform()
{
auto camView = m_Scene->m_Registry.view<TransformComponent, CameraComponent>();
for (auto e : camView)
{
auto [transform, camera] = camView.get<TransformComponent, CameraComponent>(e);
Matrix4 cameraTransform = camera.CameraInstance->GetTransformRotation();
camera.CameraInstance->Translation = transform.GlobalTranslation;
// We need to invert forward direction since its -1.0f in nuake.
camera.CameraInstance->SetDirection(QuatToDirection(transform.GetGlobalRotation()));
}
// Calculate all local transforms
auto localTransformView = m_Scene->m_Registry.view<TransformComponent>();
for (auto tv : localTransformView)
@@ -114,5 +101,17 @@ namespace Nuake
transform.SetGlobalScale(globalScale);
transform.SetGlobalTransform(globalTransform);
}
auto camView = m_Scene->m_Registry.view<TransformComponent, CameraComponent>();
for (auto& e : camView)
{
auto [transform, camera] = camView.get<TransformComponent, CameraComponent>(e);
Matrix4 cameraTransform = camera.CameraInstance->GetTransformRotation();
camera.CameraInstance->Translation = transform.GlobalTranslation;
const auto& globalRotation = transform.GetGlobalRotation();
const auto& forward = QuatToDirection(globalRotation);
camera.CameraInstance->SetDirection(forward);
}
}
}