|
Monad Engine da02fba2
> Undercity Codex_
|
High-level capsule character controller: walks, jumps, detects ground. More...
#include <KinematicCharacterController.h>
Inheritance diagram for mnd::KinematicCharacterController:
Collaboration diagram for mnd::KinematicCharacterController:Public Member Functions | |
| KinematicCharacterController (float radius, float height, const glm::vec3 &position) | |
| ~KinematicCharacterController () | |
| vec3 | GetPosition () const |
| quat | GetRotation () const |
| void | Walk (const vec3 &direction) |
| Apply a walk velocity in world space for this frame. | |
| void | Jump (const vec3 &direction) |
Apply an impulse-style jump in direction (typically {0, jumpSpeed, 0}). | |
| bool | OnGround () const |
| True when the controller has a contact point beneath it. | |
| CollisionObjectType | GetCollisionObjectType () |
| void | AddContactListener (IContactListener *listener) |
| void | RemoveContactListener (IContactListener *listener) |
| void | SetOwner (GameObject *owner) |
| GameObject * | GetOwner () const |
Protected Member Functions | |
| void | DispatchContactEvent (CollisionObject *obj, const vec3 &pos, const vec3 &norm) |
Protected Attributes | |
| CollisionObjectType | m_collisionObjType |
| std::vector< IContactListener * > | m_contactListeners |
| GameObject * | m_owner = nullptr |
High-level capsule character controller: walks, jumps, detects ground.
Unlike a RigidBody, this object is not force-driven. Game code calls Walk / Jump with desired directions and Bullet resolves the resulting motion against the collision world.
Definition at line 29 of file KinematicCharacterController.h.
| mnd::KinematicCharacterController::KinematicCharacterController | ( | float | radius, |
| float | height, | ||
| const glm::vec3 & | position | ||
| ) |
| radius | Capsule radius (metres). |
| height | Capsule height (metres, full — caps included). |
| position | Initial world position. |
Definition at line 12 of file KinematicCharacterController.cpp.
References mnd::Engine::GetInstance(), mnd::Engine::GetPhysicsManager(), mnd::PhysicsManager::GetWorld(), kDefaultStepHeight, mnd::KinematicCharacterController, and mnd::CollisionObject::m_collisionObjType.
| mnd::KinematicCharacterController::~KinematicCharacterController | ( | ) |
Definition at line 47 of file KinematicCharacterController.cpp.
References mnd::Engine::GetInstance(), mnd::Engine::GetPhysicsManager(), and mnd::PhysicsManager::GetWorld().
|
inherited |
Definition at line 13 of file CollisionObject.cpp.
References mnd::CollisionObject::m_contactListeners.
|
protectedinherited |
Definition at line 35 of file CollisionObject.cpp.
References mnd::CollisionObject::m_contactListeners.
|
inherited |
Definition at line 8 of file CollisionObject.cpp.
References mnd::CollisionObject::m_collisionObjType.
|
inlineinherited |
Definition at line 31 of file CollisionObject.h.
References mnd::CollisionObject::m_owner.
| glm::vec3 mnd::KinematicCharacterController::GetPosition | ( | ) | const |
Definition at line 60 of file KinematicCharacterController.cpp.
| glm::quat mnd::KinematicCharacterController::GetRotation | ( | ) | const |
Definition at line 68 of file KinematicCharacterController.cpp.
| void mnd::KinematicCharacterController::Jump | ( | const vec3 & | direction | ) |
Apply an impulse-style jump in direction (typically {0, jumpSpeed, 0}).
Definition at line 79 of file KinematicCharacterController.cpp.
| bool mnd::KinematicCharacterController::OnGround | ( | ) | const |
True when the controller has a contact point beneath it.
Definition at line 87 of file KinematicCharacterController.cpp.
|
inherited |
Definition at line 26 of file CollisionObject.cpp.
References mnd::CollisionObject::m_contactListeners.
|
inlineinherited |
Backref to the owning GameObject so raycast hits can resolve to scene objects without a separate map. Set by PhysicsComponent / KCC owner.
Definition at line 30 of file CollisionObject.h.
References mnd::CollisionObject::m_owner.
| void mnd::KinematicCharacterController::Walk | ( | const vec3 & | direction | ) |
Apply a walk velocity in world space for this frame.
Definition at line 74 of file KinematicCharacterController.cpp.
|
protectedinherited |
Definition at line 36 of file CollisionObject.h.
Referenced by KinematicCharacterController(), mnd::RigidBody::RigidBody(), and mnd::CollisionObject::GetCollisionObjectType().
|
protectedinherited |
Definition at line 37 of file CollisionObject.h.
Referenced by mnd::CollisionObject::AddContactListener(), mnd::CollisionObject::DispatchContactEvent(), and mnd::CollisionObject::RemoveContactListener().
|
protectedinherited |
Definition at line 38 of file CollisionObject.h.
Referenced by mnd::CollisionObject::GetOwner(), and mnd::CollisionObject::SetOwner().