void Destroy() override
Requests destruction of this drawable.
SceneComponent mSceneComponent
void Initialize() override
Initializes render resource pointers (material, mesh, etc.). Must be called after setting material an...
const glm::vec3 & GetRotation() const
Gets the mesh rotation (pitch, yaw, roll in degrees).
SceneComponent & GetTransform()
Access to the underlying SceneComponent (transform).
const glm::vec3 & GetScale() const
Gets the mesh scale.
void SetRotation(const glm::vec3 &rotation)
Sets the mesh rotation in degrees.
Drawable3D(RenderResourceContext renderContext, Scene &scene)
Constructs the Drawable3D with a render context.
void SetScale(const glm::vec3 &scale)
Sets the mesh scale along each axis.
void SetPosition(const glm::vec3 &position)
Sets the mesh position in world space.
const glm::vec3 & GetPosition() const
Gets the mesh position.
void Update(float deltaTime) override
Updates logic (animation, movement, etc.) for this drawable.
Abstract base for all drawable (renderable) objects in the engine.
virtual void Initialize()
Initializes render resource pointers (material, mesh, etc.). Must be called after setting material an...
Represents a 3D transformable scene component with position, rotation, and scale.
const glm::vec3 & GetPosition() const
Gets the current position.
const glm::vec3 & GetRotation() const
Gets the current rotation as Euler angles (in radians).
void SetRotation(const glm::quat &rotation)
Sets the rotation using a quaternion.
void SetPosition(const glm::vec3 &position)
Sets the position of the component in world space.
const glm::vec3 & GetScale() const
Gets the current scale.
void SetScale(const glm::vec3 &scale)
Sets the scale for each dimension.
Base class representing a renderable scene.
void DestroyDrawable3D(Drawable3D *drawable3D)
Schedules a 3D drawable for deferred destruction.
Aggregates pointers to global rendering resource managers.