Skylicht Engine
Loading...
Searching...
No Matches
Skylicht::Physics::ICollisionObject Class Reference

Base interface for all objects that can participate in collisions. More...

#include <PhysicsEngine/ICollisionObject.h>

Inheritance diagram for Skylicht::Physics::ICollisionObject:
Skylicht::CComponentSystem Skylicht::IActivatorObject Skylicht::Physics::CCharacterController Skylicht::Physics::CRigidbody

Public Types

enum  ECollisionType { Unknown , RigidBody , Character }
 Types of collision objects.

Public Member Functions

virtual void setCollisionGroupAndFilter (int group, int filter)
 Sets the collision group and filter mask.
ECollisionType getCollisionType ()
 Gets the collision type.
int getCollisionGroup ()
 Gets the collision group bitmask.
int getCollisionFilter ()
 Gets the collision filter bitmask.
Public Member Functions inherited from Skylicht::CComponentSystem
const char * getName ()
virtual void reset ()
virtual void initComponent ()=0
virtual void startComponent ()
virtual void updateComponent ()=0
virtual void endUpdate ()
virtual void onEnable (bool b)
virtual void onUpdateCullingLayer (u32 mask)
virtual CObjectSerializablecreateSerializable ()
virtual void loadSerializable (CObjectSerializable *object)
void setEnable (bool b)
bool isEnable ()
CGameObject * getGameObject ()
void setEnableSerializable (bool b)
bool isSerializable ()
void addLinkComponent (CComponentSystem *comp)
void removeAllLink ()
Public Member Functions inherited from Skylicht::IActivatorObject
virtual ~IActivatorObject ()
 Virtual destructor for polymorphic activator objects.

Public Attributes

std::function< void(ICollisionObject *, ICollisionObject *, SCollisionContactPoint *, int)> OnCollision
 Callback function triggered when a collision occurs.

Protected Attributes

ECollisionType m_collisionType
int m_group
int m_filter
Protected Attributes inherited from Skylicht::CComponentSystem
CGameObject * m_gameObject
bool m_enable
bool m_serializable
std::vector< CComponentSystem * > m_linkComponent

Additional Inherited Members

Static Public Member Functions inherited from Skylicht::CComponentSystem
static int useComponent (CComponentSystem *used)
Protected Member Functions inherited from Skylicht::CComponentSystem
void setOwner (CGameObject *obj)

Detailed Description

Base interface for all objects that can participate in collisions.

This includes rigid bodies and character controllers. It provides common properties like collision groups, filters, and collision callbacks.

Example: Handling collisions

Physics::CRigidbody* body = gameObject->getComponent<Physics::CRigidbody>();
os::Printer::log("Collision detected!");
// Identify the other object
// Physics::ICollisionObject* other = (a == body) ? b : a;
};
Represents a physical rigid body in the physics simulation.
Definition CRigidbody.h:77
Base interface for all objects that can participate in collisions.
Definition ICollisionObject.h:63
std::function< void(ICollisionObject *, ICollisionObject *, SCollisionContactPoint *, int)> OnCollision
Callback function triggered when a collision occurs.
Definition ICollisionObject.h:97
Data structure containing information about a collision contact point.
Definition ICollisionObject.h:38

Member Function Documentation

◆ getCollisionFilter()

int Skylicht::Physics::ICollisionObject::getCollisionFilter ( )
inline

Gets the collision filter bitmask.

Returns
Filter bitmask.

◆ getCollisionGroup()

int Skylicht::Physics::ICollisionObject::getCollisionGroup ( )
inline

Gets the collision group bitmask.

Returns
Group bitmask.

◆ getCollisionType()

ECollisionType Skylicht::Physics::ICollisionObject::getCollisionType ( )
inline

Gets the collision type.

Returns
ECollisionType value.

◆ setCollisionGroupAndFilter()

virtual void Skylicht::Physics::ICollisionObject::setCollisionGroupAndFilter ( int group,
int filter )
virtual

Sets the collision group and filter mask.

Parameters
groupBitmask representing the collision group.
filterBitmask representing which groups this object should collide with.

Reimplemented in Skylicht::Physics::CCharacterController, and Skylicht::Physics::CRigidbody.

Member Data Documentation

◆ OnCollision

std::function<void(ICollisionObject*, ICollisionObject*, SCollisionContactPoint*, int)> Skylicht::Physics::ICollisionObject::OnCollision

Callback function triggered when a collision occurs.

Arguments: Object A, Object B, Contact points array, number of contact points.


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