![]() |
Jopnal Engine
alpha 0.4
Simple Component Based 2D/3D Game Engine
|
#include <Collider.hpp>
Public Member Functions | |
bool | checkOverlap (const Collider &other) const |
Check if this collider overlaps with another. More... | |
bool | checkContact (const Collider &other) const |
Check if this collider is in contact with another. More... | |
bool | checkRay (const glm::vec3 &start, const glm::vec3 &ray) const |
Check if a ray pierces this collider. More... | |
void | registerListener (ContactListener &listener) |
Register a listener for this collider. More... | |
World & | getWorld () |
Get the world this collider belongs to. More... | |
const World & | getWorld () const |
Get the world this collider belongs to. More... | |
void | detachFromWorld () |
Detach this body from its world. More... | |
void | attachToWorld () |
Attach this body to its world if it was previously detached. More... | |
bool | isDetachedFromWorld () const |
Check if this body is currently detached from its world. More... | |
void | updateWorldBounds () |
Force update of the world space bounds. More... | |
void | setCollisionShape (CollisionShape &shape) |
Set the collision shape. More... | |
const CollisionShape * | getCollisionShape () const |
Get the collision shape. More... | |
![]() | |
virtual | ~Component ()=0 |
Virtual destructor. More... | |
Message::Result | sendMessage (const Message &message) |
Send a message to this component. More... | |
uint32 | getID () const |
Get the identifier. More... | |
void | setID (const uint32 ID) |
Set the identifier. More... | |
WeakReference< Object > | getObject () |
Get the object this component is bound to. More... | |
WeakReference< const Object > | getObject () const |
Get the object this component is bound to. More... | |
bool | isActive () const |
Check if this component is active. More... | |
void | removeSelf () |
Remove this component from its object. More... | |
![]() | |
WeakReference< Collider > | getReference () const |
Get a weak reference to the bound object. More... | |
Protected Member Functions | |
Collider (Object &object, World &world, const uint32 ID) | |
Constructor. More... | |
Collider (const Collider &other, Object &newObj) | |
Copy constructor. More... | |
virtual | ~Collider () override=0 |
Virtual destructor. More... | |
void | update (const float deltaTime) override |
Update. More... | |
void | setAllowSleep (const bool allow) |
Set whether the collider is allowed to sleep. More... | |
bool | isSleepAllowed () const |
Check if sleep is allowed. More... | |
![]() | |
Component (Object &object, const uint32 ID) | |
Constructor. More... | |
Component (const Component &other, Object &newObj) | |
Copy constructor. More... | |
virtual Message::Result | receiveMessage (const Message &message) |
Receive a message. More... | |
![]() | |
SafeReferenceable (Collider *ref) | |
Constructor. More... | |
SafeReferenceable (SafeReferenceable< Collider > &&other) | |
Move constructor. More... | |
SafeReferenceable & | operator= (SafeReferenceable< Collider > &&other) |
Move assignment operator. More... | |
~SafeReferenceable () | |
Protected destructor. More... | |
Protected Attributes | |
std::unique_ptr< btCollisionObject > | m_body |
Body data. More... | |
World & | m_worldRef |
Reference to the world. More... | |
std::set< ContactListener * > | m_listeners |
Listeners registered for this collider. More... | |
bool | m_detached |
Is this body detached from the world? More... | |
bool | m_allowSleep |
Is sleep allowed? More... | |
Friends | |
class | ContactListener |
class | Joint |
Definition at line 49 of file Collider.hpp.
Constructor.
object | Reference to the object |
world | Reference to the physics world |
ID | Id of this component |
Copy constructor.
other | The other collider to copy |
newObj | The new object |
|
overrideprotectedpure virtual |
Virtual destructor.
void jop::Collider::attachToWorld | ( | ) |
Attach this body to its world if it was previously detached.
bool jop::Collider::checkContact | ( | const Collider & | other | ) | const |
Check if this collider is in contact with another.
other | The other collider to check against |
bool jop::Collider::checkOverlap | ( | const Collider & | other | ) | const |
Check if this collider overlaps with another.
This will compare the axis-aligned bounding boxes. To check if two colliders are actually touching, use checkContact().
other | The other collider to check against |
bool jop::Collider::checkRay | ( | const glm::vec3 & | start, |
const glm::vec3 & | ray | ||
) | const |
Check if a ray pierces this collider.
start | The start position of the ray |
ray | Ray to be shot from start |
void jop::Collider::detachFromWorld | ( | ) |
Detach this body from its world.
const CollisionShape* jop::Collider::getCollisionShape | ( | ) | const |
Get the collision shape.
World& jop::Collider::getWorld | ( | ) |
Get the world this collider belongs to.
const World& jop::Collider::getWorld | ( | ) | const |
Get the world this collider belongs to.
bool jop::Collider::isDetachedFromWorld | ( | ) | const |
Check if this body is currently detached from its world.
|
protected |
Check if sleep is allowed.
void jop::Collider::registerListener | ( | ContactListener & | listener | ) |
Register a listener for this collider.
Single collider can have multiple listeners
listener | Reference to the listener which is to be registered for this collider |
|
protected |
Set whether the collider is allowed to sleep.
allow | True to allow sleep. True by default |
void jop::Collider::setCollisionShape | ( | CollisionShape & | shape | ) |
Set the collision shape.
shape | The new shape to set |
|
overrideprotectedvirtual |
Update.
deltaTime | The delta time |
Reimplemented from jop::Component.
Reimplemented in jop::World, jop::World2D, and jop::PhantomBody.
void jop::Collider::updateWorldBounds | ( | ) |
Force update of the world space bounds.
You'll usually want to call this when you've called CollisionShape::setLocalScale() for the bound collision shape.
|
friend |
Definition at line 57 of file Collider.hpp.
|
friend |
Definition at line 58 of file Collider.hpp.
|
protected |
Is sleep allowed?
Definition at line 187 of file Collider.hpp.
|
protected |
Body data.
Definition at line 183 of file Collider.hpp.
|
protected |
Is this body detached from the world?
Definition at line 186 of file Collider.hpp.
|
protected |
Listeners registered for this collider.
Definition at line 185 of file Collider.hpp.
|
protected |
Reference to the world.
Definition at line 184 of file Collider.hpp.