Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Transform.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
9#include "Component.h"
10
11class
12Transform : public Component {
13public:
14 // Constructor que inicializa posición, rotación y escala por defecto
21
22 // Métodos para inicialización, actualización, renderizado y destrucción
23 // Inicializa el objeto Transform
24 void
25 init() {
26 scale.one();
27 matrix = XMMatrixIdentity();
28 worldMatrix = XMMatrixIdentity();
29 }
30
31 // Actualiza el estado del objeto Transform basado en el tiempo transcurrido
32 // @param deltaTime: Tiempo transcurrido desde la última actualización
33 void
34 update(float deltaTime) override {
35 // Aplicar escala
36 XMMATRIX scaleMatrix = XMMatrixScaling(scale.x, scale.y, scale.z);
37 // Aplicar rotacion
38 XMMATRIX rotationMatrix = XMMatrixRotationRollPitchYaw(rotation.x, rotation.y, rotation.z);
39 // Aplicar traslacion
40 XMMATRIX translationMatrix = XMMatrixTranslation(position.x, position.y, position.z);
41
42 // Componer la matriz final en el orden: scale -> rotation -> translation
43 matrix = scaleMatrix * rotationMatrix * translationMatrix;
45 }
46
47 // Renderiza el objeto Transform
48 // @param deviceContext: Contexto del dispositivo de renderizado
49 void
50 render(DeviceContext& deviceContext) override {}
51
52 // Destruye el objeto Transform y libera recursos
53 void
55
56 // Métodos de acceso a los datos de posición
57 // Retorna la posición actual
58 const EU::Vector3&
59 getPosition() const { return position; }
60
61 // Establece una nueva posición
62 void
63 setPosition(const EU::Vector3& newPos) { position = newPos; }
64
65 // Métodos de acceso a los datos de rotación
66 // Retorna la rotación actual
67 const EU::Vector3&
68 getRotation() const { return rotation; }
69
70 // Establece una nueva rotación
71 void
72 setRotation(const EU::Vector3& newRot) { rotation = newRot; }
73
74 // Métodos de acceso a los datos de escala
75 // Retorna la escala actual
76 const EU::Vector3&
77 getScale() const { return scale; }
78
79 // Establece una nueva escala
80 void
81 setScale(const EU::Vector3& newScale) { scale = newScale; }
82
83 void
84 setTransform(const EU::Vector3& newPos,
85 const EU::Vector3& newRot,
86 const EU::Vector3& newSca) {
87 position = newPos;
88 rotation = newRot;
89 scale = newSca;
90 }
91
92 // Método para trasladar la posición del objeto
93 // @param translation: Vector que representa la cantidad de traslado en cada eje
94 void
95 translate(const EU::Vector3& translation);
96
97private:
98 EU::Vector3 position; // Posición del objeto
99 EU::Vector3 rotation; // Rotación del objeto
100 EU::Vector3 scale; // Escala del objeto
101
102public:
103 XMMATRIX matrix; // Matriz de transformación local
104 XMMATRIX worldMatrix; // Matriz de transformación world
105};
106
107
Declara la API de Component dentro del subsistema ECS.
Declara la API de Prerequisites dentro del subsistema Core.
ComponentType
Tipos de componentes disponibles en el juego.
@ TRANSFORM
Componente de transformación.
Declara la API de Vector3 dentro del subsistema Math.
Clase base abstracta para todos los componentes del juego.
Definition Component.h:18
A 3D vector class.
Definition Vector3.h:45
float x
The x-coordinate of the vector.
Definition Vector3.h:47
float z
The z-coordinate of the vector.
Definition Vector3.h:49
void one()
Definition Vector3.h:133
float y
The y-coordinate of the vector.
Definition Vector3.h:48
EU::Vector3 position
Definition Transform.h:98
EU::Vector3 rotation
Definition Transform.h:99
const EU::Vector3 & getRotation() const
Definition Transform.h:68
EU::Vector3 scale
Definition Transform.h:100
void setPosition(const EU::Vector3 &newPos)
Definition Transform.h:63
const EU::Vector3 & getPosition() const
Definition Transform.h:59
XMMATRIX worldMatrix
Definition Transform.h:104
void setScale(const EU::Vector3 &newScale)
Definition Transform.h:81
void render(DeviceContext &deviceContext) override
Método virtual puro para renderizar el componente.
Definition Transform.h:50
void destroy()
Definition Transform.h:54
void translate(const EU::Vector3 &translation)
XMMATRIX matrix
Definition Transform.h:103
void setRotation(const EU::Vector3 &newRot)
Definition Transform.h:72
void init()
Definition Transform.h:25
void setTransform(const EU::Vector3 &newPos, const EU::Vector3 &newRot, const EU::Vector3 &newSca)
Definition Transform.h:84
const EU::Vector3 & getScale() const
Definition Transform.h:77
void update(float deltaTime) override
Método virtual puro para actualizar el componente.
Definition Transform.h:34