Clutter Engine 0.0.1
Loading...
Searching...
No Matches
clt::ColliderComponent Class Referenceabstract

Base class for all collider components in the engine. More...

#include <ColliderComponent.h>

Inheritance diagram for clt::ColliderComponent:
clt::Component clt::AABBCollider clt::CircleCollider clt::OBBCollider clt::SphereCollider

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.
 
- Public Member Functions inherited from clt::Component
 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.
 
ActorGetOwner () 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.
 
- Public Attributes inherited from clt::Component
friend Actor
 

Protected Member Functions

virtual void SetOwner (Actor *pOwner) override
 Sets the owner actor of this collider component.
 
- Protected Member Functions inherited from clt::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.
 
- Protected Attributes inherited from clt::Component
bool mIsActive = true
 Indicates if the component is active.
 
int mUpdateOrder = 0
 The order in which the component is updated.
 
ActormOwner
 The actor that owns this component.
 
Transform mRelativeTransform
 The relative transform of the component to its owner.
 

Detailed Description

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.

Member Function Documentation

◆ CheckCollision()

virtual bool clt::ColliderComponent::CheckCollision ( ColliderComponent * pOther,
hitResult & outResult ) const
pure virtual

Checks for collision with another collider.

Parameters
pOtherPointer to the other collider component.
outResultOutput parameter for collision result details.
Returns
True if a collision is detected, false otherwise.

Implemented in clt::AABBCollider, clt::CircleCollider, clt::OBBCollider, and clt::SphereCollider.

◆ GetType()

const ColliderType clt::ColliderComponent::GetType ( ) const
inline

Gets the type of this collider.

Returns
The collider type.

◆ IsTrigger()

bool clt::ColliderComponent::IsTrigger ( ) const
inline

Checks if this collider is a trigger.

Returns
True if the collider is a trigger, false otherwise.

◆ SetOwner()

void ColliderComponent::SetOwner ( Actor * pOwner)
overrideprotectedvirtual

Sets the owner actor of this collider component.

Parameters
pOwnerPointer to the owning Actor.

Reimplemented from clt::Component.

◆ Subscribe()

void ColliderComponent::Subscribe ( class ICollisionListener * listener) const

Subscribes a collision listener to this collider.

Parameters
listenerPointer to the ICollisionListener to subscribe.

The documentation for this class was generated from the following files: