OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
transform.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include <glm/glm.hpp>
8#include <glm/gtc/quaternion.hpp>
9#include <glm/gtx/quaternion.hpp>
10#include <ostream>
11
12#include "../ecs/component.hpp"
13#include "../ecs/hierarchy.hpp"
14
15namespace Engine::Scene {
21 struct Transform : public ECS::Component {
23 glm::vec3 position = {0.0f, 0.0f, 0.0f};
25 glm::quat rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f);
27 glm::vec3 scale = {1.0f, 1.0f, 1.0f};
28
34 void Translate(const glm::vec3& offset);
40 void Translate(const glm::vec2& offset);
41
48 void Rotate(const glm::vec3& axis, float angleRadians);
54 void Rotate2D(float angleRadians);
55
61 void SetRotation2D(float angleRadians);
62
69 bool IsRotated();
70
78 glm::vec3 GetWorldPosition() const;
84 glm::quat GetWorldRotation() const;
90 glm::vec3 GetWorldScale() const;
91
97 glm::mat4 GetLocalMatrix() const;
98
104 glm::mat4 GetWorldMatrix() const;
105 };
106}
Classe Component à dériver pour pouvoir être utilisée dans les systèmes ECS.
Definition component.hpp:18
Définit un component de base dans le cadre d'un ECS.
Definition registry.hpp:23
Cette structure de donnée permet la gestion d'une entité dans l'espace.
Definition transform.hpp:21
glm::vec3 position
La position dans la scène.
Definition transform.hpp:23
glm::quat rotation
La rotation (quaternion) du transform.
Definition transform.hpp:25
void Translate(const glm::vec3 &offset)
Déplace le component d'un offset donné
Definition transform.cpp:5
void Rotate2D(float angleRadians)
Encapsule une rotation dans un cadre 2D (autour de l'axe Z)
Definition transform.cpp:19
bool IsRotated()
Permet de savoir si l'objet a subi une ou plusieurs rotations.
Definition transform.cpp:27
void SetRotation2D(float angleRadians)
Règle l'angle aotour de l'axe Z à l'angle en radians donné
Definition transform.cpp:23
glm::mat4 GetWorldMatrix() const
Renvoie la matrice modèle "monde" du transform.
Definition transform.cpp:74
glm::mat4 GetLocalMatrix() const
Renvoie la matrice modèle locale du transform.
Definition transform.cpp:68
glm::vec3 scale
Facteur d'argrandissement par lequel tous les components avec une taille sont mis à l'échelle.
Definition transform.hpp:27
glm::vec3 GetWorldPosition() const
Renvoie la position du transform dans le "monde".
Definition transform.cpp:32
glm::vec3 GetWorldScale() const
Renvoie le scaling "monde" du transform.
Definition transform.cpp:56
glm::quat GetWorldRotation() const
Renvoie la rotation du transform dans le "monde".
Definition transform.cpp:44
void Rotate(const glm::vec3 &axis, float angleRadians)
Fait tourner l'objet d'un angle donné autour d'un axe.
Definition transform.cpp:13