Cache camera position

This commit is contained in:
2023-08-01 15:18:11 +02:00
parent bd55a26a02
commit cf91c9c67e

View File

@@ -15,6 +15,7 @@ namespace openVulkanoCpp::Scene
{
protected:
Math::Matrix4f m_viewProjection{1}, m_view{1}, m_projection{1};
Math::Vector4f m_camPosition{};
float m_nearPlane, m_farPlane, m_width, m_height;
Camera() : m_nearPlane(0), m_farPlane(0), m_width(0), m_height(0) {}
@@ -78,6 +79,7 @@ namespace openVulkanoCpp::Scene
void UpdateWorldMatrix(const Math::Matrix4f& parentWorldMat) override
{
Node::UpdateWorldMatrix(parentWorldMat);
m_camPosition = GetWorldMatrix()[3];
m_view = Math::Utils::inverse(GetWorldMatrix());
UpdateViewProjectionMatrix();
}
@@ -92,9 +94,9 @@ namespace openVulkanoCpp::Scene
return m_viewProjection;
}
[[nodiscard]] Math::Vector4f GetPosition() const
[[nodiscard]] const Math::Vector4f& GetPosition() const
{
return GetWorldMatrix()[3];
return m_camPosition;
}
[[nodiscard]] Math::Vector3f GetRightVector() const