Clutter Engine 0.0.1
|
Base class for all collider components in the engine. More...
#include <ColliderComponent.h>
Public Member Functions | |
ColliderComponent () | |
Default constructor. Initializes friction, bounciness, and collider type. | |
~ColliderComponent () | |
Destructor. | |
void | Subscribe (class ICollisionListener *listener) const |
Subscribes a collision listener to this collider. | |
virtual bool | CheckCollision (ColliderComponent *pOther, hitResult &outResult) const =0 |
Checks for collision with another collider. | |
const ColliderType | GetType () const |
Gets the type of this collider. | |
bool | IsTrigger () const |
Checks if this collider is a trigger. | |
![]() | |
Component (int pUpdateOrder=0) | |
Constructor for Component. | |
virtual | ~Component ()=default |
Virtual destructor for Component. | |
virtual void | Start () |
Called when the component is started. | |
virtual void | Update () |
Called every frame to update the component. | |
virtual void | Destroy () |
Called to destroy the component. | |
void | SetActive (bool pActive) |
Enables or disables the component. | |
void | OnDestroy () |
Called when the component is destroyed. | |
bool | IsActive () const |
Checks if the component is enabled. | |
int | GetUpdateOrder () const |
Gets the update order of the component. | |
void | SetRelativeLocation (const Vector3 &loc) |
Sets the relative location of the component. | |
void | SetRelativeLocation (const Vector2 &loc) |
Sets the relative location of the component. | |
void | SetWorldLocation (const Vector3 &loc) |
Sets the world location of the component. | |
void | SetRelativeScale (const Vector3 &scale) |
Sets the relative scale of the component. | |
void | SetRelativeScale (const Vector2 &scale) |
Sets the relative scale of the component. | |
void | SetRelativeRotation (Quaternion rot) |
Sets the relative rotation of the component. | |
void | SetRelativeRotation (Vector3 rot) |
Sets the relative rotation of the component. | |
void | SetWorldRotation (const Quaternion &rot) |
Sets the world rotation of the component. | |
void | SetWorldRotation (const Vector3 &rot) |
Sets the world rotation of the component. | |
void | AddRelativeRotation (Vector3 rot) |
Adds a rotation to the current relative rotation. | |
void | SetRelativeRotation (float rot) |
Sets the relative rotation of the component. | |
void | SetRelativeTransform (Transform &transform) |
Sets the relative transform of the component. | |
Vector3 | GetRelativeLocation () const |
Gets the relative location of the component. | |
Vector3 | GetRelativeScale () const |
Gets the relative scale of the component. | |
Quaternion | GetRelativeRotation () const |
Gets the relative rotation of the component. | |
Vector3 | GetRelativeRotationEuler () const |
Gets the relative rotation of the component as Euler angles. | |
Transform | GetRelativeTransform () const |
Gets the relative transform of the component. | |
Vector3 | GetWorldLocation () const |
Gets the world location of the component. | |
Vector3 | GetWorldScale () const |
Gets the world scale of the component. | |
Quaternion | GetWorldRotation () const |
Gets the world rotation of the component. | |
virtual Transform | GetWorldTransform () const |
Gets the world transform of the component. | |
Actor * | GetOwner () const |
Gets the owner actor of this component. | |
Public Attributes | |
float | mFriction |
The friction coefficient of the collider. | |
float | mBounciness |
The bounciness (restitution) of the collider. | |
![]() | |
friend | Actor |
Protected Member Functions | |
virtual void | SetOwner (Actor *pOwner) override |
Sets the owner actor of this collider component. | |
![]() | |
bool | LineTrace (Vector3 start, Vector3 direction, float maxDistance, raycastHit &hit, bool debugPersistant=false) |
Performs a line trace (raycast) using the owning actor. | |
Protected Attributes | |
bool | mTrigger = false |
Indicates if the collider is a trigger. | |
ColliderType | mType |
The type of the collider. | |
![]() | |
bool | mIsActive = true |
Indicates if the component is active. | |
int | mUpdateOrder = 0 |
The order in which the component is updated. | |
Actor * | mOwner |
The actor that owns this component. | |
Transform | mRelativeTransform |
The relative transform of the component to its owner. | |
Base class for all collider components in the engine.
ColliderComponent provides the interface and common functionality for all collider types. It supports trigger colliders, friction, bounciness, and collision event subscription.
|
pure virtual |
Checks for collision with another collider.
pOther | Pointer to the other collider component. |
outResult | Output parameter for collision result details. |
Implemented in clt::AABBCollider, clt::CircleCollider, clt::OBBCollider, and clt::SphereCollider.
|
inline |
Gets the type of this collider.
|
inline |
Checks if this collider is a trigger.
|
overrideprotectedvirtual |
Sets the owner actor of this collider component.
pOwner | Pointer to the owning Actor. |
Reimplemented from clt::Component.
void ColliderComponent::Subscribe | ( | class ICollisionListener * | listener | ) | const |
Subscribes a collision listener to this collider.
listener | Pointer to the ICollisionListener to subscribe. |