ReactPhysics3D
v0.10.2
C++ Physics engine library
|
A collider has a collision shape (box, sphere, capsule, ...) and is attached to a RigidBody. More...
#include <include/reactphysics3d/collision/Collider.h>
Public Member Functions | |
Collider (Entity entity, Body *body, MemoryManager &memoryManager) | |
Constructor. | |
virtual | ~Collider () |
Destructor. | |
Collider (const Collider &collider)=delete | |
Deleted copy-constructor. | |
Collider & | operator= (const Collider &collider)=delete |
Deleted assignment operator. | |
Entity | getEntity () const |
Return the corresponding entity of the collider. | |
CollisionShape * | getCollisionShape () |
Return a pointer to the collision shape. | |
const CollisionShape * | getCollisionShape () const |
Return a const pointer to the collision shape. | |
Body * | getBody () const |
Return the parent body. | |
void * | getUserData () const |
Return a pointer to the user data attached to this body. | |
void | setUserData (void *userData) |
Attach user data to this body. | |
const Transform & | getLocalToBodyTransform () const |
Return the local to parent body transform. | |
void | setLocalToBodyTransform (const Transform &transform) |
Set the local to parent body transform. | |
const Transform | getLocalToWorldTransform () const |
Return the local to world transform. | |
const AABB | getWorldAABB () const |
Return the AABB of the collider in world-space. | |
bool | testAABBOverlap (const AABB &worldAABB) const |
Test if the collider overlaps with a given AABB. | |
bool | testPointInside (const Vector3 &worldPoint) |
Return true if a point is inside the collision shape. | |
bool | raycast (const Ray &ray, RaycastInfo &raycastInfo) |
Raycast method with feedback information. | |
unsigned short | getCollideWithMaskBits () const |
Return the collision bits mask. | |
void | setCollideWithMaskBits (unsigned short collideWithMaskBits) |
Set the collision bits mask. | |
unsigned short | getCollisionCategoryBits () const |
Return the collision category bits. | |
void | setCollisionCategoryBits (unsigned short collisionCategoryBits) |
Set the collision category bits. | |
int | getBroadPhaseId () const |
Return the broad-phase id. | |
Material & | getMaterial () |
Return a reference to the material properties of the collider. | |
void | setMaterial (const Material &material) |
Set a new material for this collider. | |
bool | getIsTrigger () const |
Return true if the collider is a trigger. | |
void | setIsTrigger (bool isTrigger) const |
Set whether the collider is a trigger. | |
bool | getIsSimulationCollider () const |
Return true if the collider can generate contacts for the simulation of the associated body. | |
void | setIsSimulationCollider (bool isSimulationCollider) const |
Set whether the collider can generate contacts for the simulation of the associated body. | |
bool | getIsWorldQueryCollider () const |
Return true if the collider will be part of results of queries on the PhysicsWorld. | |
void | setIsWorldQueryCollider (bool isWorldQueryCollider) const |
Set whether the collider will be part of results of queries on the PhysicsWorld. | |
A collider has a collision shape (box, sphere, capsule, ...) and is attached to a RigidBody.
A body can have multiple colliders. The collider also have a mass value and a Material with many physics parameters like friction or bounciness. When you create a body, you need to attach at least one collider to it if you want that body to be able to collide in the physics world.
Collider::Collider | ( | Entity | entity, |
Body * | body, | ||
MemoryManager & | memoryManager | ||
) |
Constructor.
entity | Entity of the collider |
body | Pointer to the body |
memoryManager | Reference to the memory manager |
RP3D_FORCE_INLINE Body * reactphysics3d::Collider::getBody | ( | ) | const |
Return the parent body.
unsigned short Collider::getCollideWithMaskBits | ( | ) | const |
Return the collision bits mask.
unsigned short Collider::getCollisionCategoryBits | ( | ) | const |
Return the collision category bits.
CollisionShape * Collider::getCollisionShape | ( | ) |
Return a pointer to the collision shape.
const CollisionShape * Collider::getCollisionShape | ( | ) | const |
Return a const pointer to the collision shape.
RP3D_FORCE_INLINE Entity reactphysics3d::Collider::getEntity | ( | ) | const |
Return the corresponding entity of the collider.
bool Collider::getIsTrigger | ( | ) | const |
Return true if the collider is a trigger.
const Transform & Collider::getLocalToBodyTransform | ( | ) | const |
Return the local to parent body transform.
const Transform Collider::getLocalToWorldTransform | ( | ) | const |
Return the local to world transform.
Material & Collider::getMaterial | ( | ) |
Return a reference to the material properties of the collider.
RP3D_FORCE_INLINE void * reactphysics3d::Collider::getUserData | ( | ) | const |
Return a pointer to the user data attached to this body.
const AABB Collider::getWorldAABB | ( | ) | const |
bool Collider::raycast | ( | const Ray & | ray, |
RaycastInfo & | raycastInfo | ||
) |
Raycast method with feedback information.
ray | Ray to use for the raycasting in world-space | |
[out] | raycastInfo | Result of the raycasting that is valid only if the methods returned true |
void Collider::setCollideWithMaskBits | ( | unsigned short | collideWithMaskBits | ) |
Set the collision bits mask.
collideWithMaskBits | The bits mask that specifies with which collision category this shape will collide |
void Collider::setCollisionCategoryBits | ( | unsigned short | collisionCategoryBits | ) |
Set the collision category bits.
collisionCategoryBits | The collision category bits mask of the collider |
void Collider::setIsSimulationCollider | ( | bool | isSimulationCollider | ) | const |
Set whether the collider can generate contacts for the simulation of the associated body.
Note that a collider cannot be a simulation collider and a trigger at the same time.
If you set this to true, this collider will stop being a trigger.
isSimulationCollider | True if this collider can generate contacts for the simulation of the associated body. |
void Collider::setIsTrigger | ( | bool | isTrigger | ) | const |
Set whether the collider is a trigger.
Note that a collider cannot be a simulation collider and a trigger at the same time.
If you set this to true, this collider will stop being a simulation collider.
isTrigger | True if you want to set this collider as a trigger and false otherwise |
void Collider::setIsWorldQueryCollider | ( | bool | isWorldQueryCollider | ) | const |
Set whether the collider will be part of results of queries on the PhysicsWorld.
isWorldQueryCollider | True if this collider will be part of results of queries on the PhysicsWorld |
void Collider::setLocalToBodyTransform | ( | const Transform & | transform | ) |
Set the local to parent body transform.
transform | The transform from local-space of the collider into the local-space of the body |
void Collider::setMaterial | ( | const Material & | material | ) |
Set a new material for this collider.
material | The material you want to set to the body |
RP3D_FORCE_INLINE void reactphysics3d::Collider::setUserData | ( | void * | userData | ) |
Attach user data to this body.
userData | Pointer to the user data you want to store within the collider |
RP3D_FORCE_INLINE bool reactphysics3d::Collider::testAABBOverlap | ( | const AABB & | worldAABB | ) | const |
bool Collider::testPointInside | ( | const Vector3 & | worldPoint | ) |
Return true if a point is inside the collision shape.
worldPoint | Point to test in world-space coordinates |