R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
ecs::Collider Class Reference

Component for collision detection and physics interactions. More...

#include <Collider.hpp>

Inheritance diagram for ecs::Collider:
Inheritance graph
Collaboration diagram for ecs::Collider:
Collaboration graph

Classes

struct  Vector2
 2D vector for size and offset. More...
 

Public Member Functions

 Collider (float sizeX, float sizeY, float offsetX, float offsetY, std::uint32_t layer, std::uint32_t mask, bool isTrigger)
 Constructor with full collision parameters.
 
 ~Collider () override=default
 
Vector2 getSize () const
 Get collision box size.
 
Vector2 getOffset () const
 Get position offset.
 
std::uint32_t getLayer () const
 Get collision layer.
 
std::uint32_t getMask () const
 Get collision mask.
 
bool isTrigger () const
 Check if this is a trigger.
 
void setSize (float sizeX, float sizeY)
 Set collision box size.
 
void setOffset (float offsetX, float offsetY)
 Set position offset.
 
void setLayer (std::uint32_t layer)
 Set collision layer.
 
void setMask (std::uint32_t mask)
 Set collision mask.
 
void setTrigger (bool isTrigger)
 Set trigger status.
 
ComponentType getType () const override
 Get the component type ID.
 
- Public Member Functions inherited from ecs::IComponent
virtual ~IComponent ()=default
 Virtual destructor.
 

Private Attributes

Vector2 _size
 Collision box dimensions (width, height)
 
Vector2 _offset
 Offset from entity position.
 
std::uint32_t _layer
 Collision layer identifier.
 
std::uint32_t _mask
 Bitmask of interactable layers.
 
bool _isTrigger
 True=trigger zone, false=solid collision.
 

Detailed Description

Component for collision detection and physics interactions.

Defines a bounding box for collision detection with layer-based filtering. Supports both solid collisions and trigger zones.

Definition at line 21 of file Collider.hpp.

Constructor & Destructor Documentation

◆ Collider()

ecs::Collider::Collider ( float  sizeX,
float  sizeY,
float  offsetX,
float  offsetY,
std::uint32_t  layer,
std::uint32_t  mask,
bool  isTrigger 
)
inline

Constructor with full collision parameters.

Parameters
sizeXWidth of collision box
sizeYHeight of collision box
offsetXX offset from entity position
offsetYY offset from entity position
layerCollision layer (for filtering)
maskBitmask of layers this collider can interact with
isTriggerTrue for trigger zones (no physics), false for solid

Definition at line 42 of file Collider.hpp.

◆ ~Collider()

ecs::Collider::~Collider ( )
overridedefault

Member Function Documentation

◆ getLayer()

std::uint32_t ecs::Collider::getLayer ( ) const
inline

Get collision layer.

Returns
std::uint32_t Layer identifier.

Definition at line 67 of file Collider.hpp.

References _layer.

◆ getMask()

std::uint32_t ecs::Collider::getMask ( ) const
inline

Get collision mask.

Returns
std::uint32_t Bitmask of interactable layers.

Definition at line 73 of file Collider.hpp.

References _mask.

◆ getOffset()

Vector2 ecs::Collider::getOffset ( ) const
inline

Get position offset.

Returns
Vector2 Offset from entity position.

Definition at line 61 of file Collider.hpp.

References _offset.

◆ getSize()

Vector2 ecs::Collider::getSize ( ) const
inline

Get collision box size.

Returns
Vector2 Width and height of the collider.

Definition at line 55 of file Collider.hpp.

References _size.

◆ getType()

ComponentType ecs::Collider::getType ( ) const
inlineoverridevirtual

Get the component type ID.

Returns
ComponentType Unique ID for Collider component.

Implements ecs::IComponent.

Definition at line 123 of file Collider.hpp.

◆ isTrigger()

bool ecs::Collider::isTrigger ( ) const
inline

Check if this is a trigger.

Returns
bool True if trigger zone, false if solid.

Definition at line 79 of file Collider.hpp.

References _isTrigger.

Referenced by setTrigger().

◆ setLayer()

void ecs::Collider::setLayer ( std::uint32_t  layer)
inline

Set collision layer.

Parameters
layerNew layer identifier

Definition at line 105 of file Collider.hpp.

References _layer.

◆ setMask()

void ecs::Collider::setMask ( std::uint32_t  mask)
inline

Set collision mask.

Parameters
maskNew interaction bitmask

Definition at line 111 of file Collider.hpp.

References _mask.

◆ setOffset()

void ecs::Collider::setOffset ( float  offsetX,
float  offsetY 
)
inline

Set position offset.

Parameters
offsetXNew X offset
offsetYNew Y offset

Definition at line 96 of file Collider.hpp.

References _offset, ecs::Collider::Vector2::x, and ecs::Collider::Vector2::y.

◆ setSize()

void ecs::Collider::setSize ( float  sizeX,
float  sizeY 
)
inline

Set collision box size.

Parameters
sizeXNew width
sizeYNew height

Definition at line 86 of file Collider.hpp.

References _size, ecs::Collider::Vector2::x, and ecs::Collider::Vector2::y.

◆ setTrigger()

void ecs::Collider::setTrigger ( bool  isTrigger)
inline

Set trigger status.

Parameters
isTriggerTrue for trigger, false for solid

Definition at line 117 of file Collider.hpp.

References _isTrigger, and isTrigger().

Here is the call graph for this function:

Member Data Documentation

◆ _isTrigger

bool ecs::Collider::_isTrigger
private

True=trigger zone, false=solid collision.

Definition at line 130 of file Collider.hpp.

Referenced by isTrigger(), and setTrigger().

◆ _layer

std::uint32_t ecs::Collider::_layer
private

Collision layer identifier.

Definition at line 128 of file Collider.hpp.

Referenced by getLayer(), and setLayer().

◆ _mask

std::uint32_t ecs::Collider::_mask
private

Bitmask of interactable layers.

Definition at line 129 of file Collider.hpp.

Referenced by getMask(), and setMask().

◆ _offset

Vector2 ecs::Collider::_offset
private

Offset from entity position.

Definition at line 127 of file Collider.hpp.

Referenced by getOffset(), and setOffset().

◆ _size

Vector2 ecs::Collider::_size
private

Collision box dimensions (width, height)

Definition at line 126 of file Collider.hpp.

Referenced by getSize(), and setSize().


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