Vulkan Schnee
0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
Transform.h
1
#pragma once
2
3
#include <glm/glm.hpp>
4
#include <glm/gtc/quaternion.hpp>
5
6
namespace
Engine::Ecs
7
{
8
struct
Transform
;
9
13
class
TransformOperators
14
{
15
private
:
16
struct
MatrixTransformComponent
{
17
glm::vec3
skew
;
18
glm::vec4
perspective
;
19
glm::vec3
translation
;
20
glm::vec3
scale
;
21
glm::quat
rotation
;
22
};
23
24
static
MatrixTransformComponent
extractComponents
(
const
glm::mat4& matrix);
25
26
public
:
30
static
glm::vec3
getPosition
(
const
glm::mat4& matrix);
31
35
static
glm::quat
getRotation
(
const
glm::mat4& matrix);
36
40
static
glm::vec3
getRotationEuler
(
const
glm::mat4& matrix);
41
45
static
glm::vec3
getScale
(
const
glm::mat4& matrix);
46
50
static
glm::vec3
getForwardVector
(
const
glm::mat4& matrix);
51
55
static
glm::vec3
getUpVector
(
const
glm::mat4& matrix);
56
60
static
glm::vec3
getRightVector
(
const
glm::mat4& matrix);
61
65
static
void
setPosition
(
Ecs::Transform
& transform,
const
glm::vec3& newPosition);
66
70
static
void
setRotation
(
Ecs::Transform
& transform,
const
glm::vec3& newRotation);
71
75
static
void
setRotation
(
Ecs::Transform
& transform,
const
glm::quat& newQuaternion);
76
80
static
void
setScale
(
Ecs::Transform
& transform,
const
glm::vec3& newScale);
81
85
static
void
setFacing
(
Ecs::Transform
& transform,
const
glm::vec3& newFacing);
86
};
87
}
Engine::Ecs::TransformOperators
Static helpers for reading and mutating Transform matrices.
Definition
Transform.h:14
Engine::Ecs::TransformOperators::getPosition
static glm::vec3 getPosition(const glm::mat4 &matrix)
Extracts the translation component from a transform matrix.
Engine::Ecs::TransformOperators::setRotation
static void setRotation(Ecs::Transform &transform, const glm::vec3 &newRotation)
Replaces a transform's rotation from Euler angles in degrees.
Engine::Ecs::TransformOperators::getRotation
static glm::quat getRotation(const glm::mat4 &matrix)
Extracts the rotation component from a transform matrix.
Engine::Ecs::TransformOperators::setScale
static void setScale(Ecs::Transform &transform, const glm::vec3 &newScale)
Replaces a transform's scale while preserving axis directions.
Engine::Ecs::TransformOperators::setFacing
static void setFacing(Ecs::Transform &transform, const glm::vec3 &newFacing)
Rotates a transform so its forward axis faces the supplied direction.
Engine::Ecs::TransformOperators::getRightVector
static glm::vec3 getRightVector(const glm::mat4 &matrix)
Returns the normalized right vector for a transform matrix.
Engine::Ecs::TransformOperators::setPosition
static void setPosition(Ecs::Transform &transform, const glm::vec3 &newPosition)
Replaces a transform's translation while preserving rotation and scale.
Engine::Ecs::TransformOperators::getForwardVector
static glm::vec3 getForwardVector(const glm::mat4 &matrix)
Returns the normalized forward vector for a transform matrix.
Engine::Ecs::TransformOperators::getScale
static glm::vec3 getScale(const glm::mat4 &matrix)
Extracts the scale component from a transform matrix.
Engine::Ecs::TransformOperators::extractComponents
static MatrixTransformComponent extractComponents(const glm::mat4 &matrix)
Engine::Ecs::TransformOperators::setRotation
static void setRotation(Ecs::Transform &transform, const glm::quat &newQuaternion)
Replaces a transform's rotation from a quaternion while preserving scale.
Engine::Ecs::TransformOperators::getUpVector
static glm::vec3 getUpVector(const glm::mat4 &matrix)
Returns the normalized up vector for a transform matrix.
Engine::Ecs::TransformOperators::getRotationEuler
static glm::vec3 getRotationEuler(const glm::mat4 &matrix)
Extracts the rotation component as Euler angles in degrees.
Engine::Ecs
EnTT component data used by engine systems.
Definition
SceneComponent.h:10
Engine::Ecs::TransformOperators::MatrixTransformComponent
Definition
Transform.h:16
Engine::Ecs::TransformOperators::MatrixTransformComponent::skew
glm::vec3 skew
Definition
Transform.h:17
Engine::Ecs::TransformOperators::MatrixTransformComponent::perspective
glm::vec4 perspective
Definition
Transform.h:18
Engine::Ecs::TransformOperators::MatrixTransformComponent::translation
glm::vec3 translation
Definition
Transform.h:19
Engine::Ecs::TransformOperators::MatrixTransformComponent::rotation
glm::quat rotation
Definition
Transform.h:21
Engine::Ecs::TransformOperators::MatrixTransformComponent::scale
glm::vec3 scale
Definition
Transform.h:20
Engine::Ecs::Transform
Local transform matrix and helpers for translation, rotation, and scale.
Definition
EcsData.h:476
workspace
magerbeton
gl3-vulkan
code
Engine
include
Engine
World
Transform.h
Generated by
1.14.0