Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Transform.h
Go to the documentation of this file.
1#pragma once
2
3#include <glm/glm.hpp>
4#include <string>
5#include <glm/gtc/quaternion.hpp>
6
9
10namespace Engine::Ecs
11{
12 struct Transform;
13
15 {
16 private:
18 glm::vec3 skew;
19 glm::vec4 perspective;
20 glm::vec3 translation;
21 glm::vec3 scale;
22 glm::quat rotation;
23 };
24
25 static MatrixTransformComponent extractComponents(const glm::mat4& matrix);
26
27 public:
28 static glm::vec3 getPosition(const glm::mat4& matrix);
29 static glm::quat getRotation(const glm::mat4& matrix);
30 static glm::vec3 getRotationEuler(const glm::mat4& matrix);
31 static glm::vec3 getScale(const glm::mat4& matrix);
32
33 static void setPosition(Ecs::Transform& transform, const glm::vec3& newPosition);
34 static void setRotation(Ecs::Transform& transform, const glm::vec3& newRotation);
35 static void setRotation(Ecs::Transform& transform, const glm::quat& newQuaternion);
36 static void setScale(Ecs::Transform& transform, const glm::vec3& newScale);
37 };
38}
static glm::vec3 getPosition(const glm::mat4 &matrix)
static void setRotation(Ecs::Transform &transform, const glm::vec3 &newRotation)
static glm::quat getRotation(const glm::mat4 &matrix)
static void setScale(Ecs::Transform &transform, const glm::vec3 &newScale)
static void setPosition(Ecs::Transform &transform, const glm::vec3 &newPosition)
static glm::vec3 getScale(const glm::mat4 &matrix)
static MatrixTransformComponent extractComponents(const glm::mat4 &matrix)
static void setRotation(Ecs::Transform &transform, const glm::quat &newQuaternion)
static glm::vec3 getRotationEuler(const glm::mat4 &matrix)