8#define GLM_FORCE_RADIANS
9#define GLM_FORCE_DEPTH_ZERO_TO_ONE
10#define GLM_ENABLE_EXPERIMENTAL
11#include <glm/vec4.hpp>
12#include <glm/mat4x4.hpp>
14#include <glm/gtc/quaternion.hpp>
15#include <glm/gtx/quaternion.hpp>
16#include <glm/gtc/matrix_transform.hpp>
17#include <glm/gtc/matrix_inverse.hpp>
93 void SetScale(
const glm::vec3& scale);
141 glm::vec3
GetUp()
const;
glm::vec3 GetRight() const
Returns the right (local Y+) direction vector in world space.
const glm::vec3 & GetPosition() const
Gets the current position.
SceneComponent(const SceneComponent &rhs)=delete
void UpdateWorldMatrix()
Updates the world transformation matrix from the current position, rotation, and scale.
const glm::vec3 & GetRotation() const
Gets the current rotation as Euler angles (in radians).
const glm::mat4 & GetWorldMatrix() const
Returns the world transformation matrix (model matrix).
virtual ~SceneComponent()=default
Destructor.
void SetRotation(const glm::quat &rotation)
Sets the rotation using a quaternion.
SceneComponent()
Constructs a SceneComponent with default transform (origin, identity rotation, unit scale).
void SetPosition(const glm::vec3 &position)
Sets the position of the component in world space.
const glm::vec3 & GetScale() const
Gets the current scale.
glm::vec3 GetForward() const
Returns the forward (local X+) direction vector in world space.
SceneComponent & operator=(const SceneComponent &rhs)=delete
void SetScale(const glm::vec3 &scale)
Sets the scale for each dimension.
const glm::quat & GetRotationQuat() const
Gets the current rotation as a quaternion.
glm::vec3 GetUp() const
Returns the up (local Z+) direction vector in world space.