16#ifndef BT_KINEMATIC_CHARACTER_CONTROLLER_H
17#define BT_KINEMATIC_CHARACTER_CONTROLLER_H
ATTR_WARN_UNUSED_RESULT const BMVert * v
btAlignedObjectArray< btPersistentManifold * > btManifoldArray
btCollisionShape
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
btConvexShape()
not supported on IBM SDK, until we fix the alignment of btVector3
btScalar m_maxSlopeRadians
virtual btVector3 getLinearVelocity() const
void setLinearDamping(btScalar d)
btConvexShape * m_convexShape
BT_DECLARE_ALIGNED_ALLOCATOR()
void setUp(const btVector3 &up)
void setUpVector(const btVector3 &up)
btVector3 perpindicularComponent(const btVector3 &direction, const btVector3 &normal)
btVector3 m_targetPosition
btVector3 getGravity() const
btScalar m_angularDamping
void setUseGhostSweepTest(bool useGhostObjectSweepTest)
virtual void setWalkDirection(const btVector3 &walkDirection)
btScalar getAngularDamping() const
void applyImpulse(const btVector3 &v)
virtual void setAngularVelocity(const btVector3 &velocity)
btVector3 computeReflectionDirection(const btVector3 &direction, const btVector3 &normal)
btScalar m_velocityTimeInterval
btScalar m_maxPenetrationDepth
void debugDraw(btIDebugDraw *debugDrawer)
btActionInterface interface
void stepDown(btCollisionWorld *collisionWorld, btScalar dt)
void jump(const btVector3 &v=btVector3(0, 0, 0))
btScalar getMaxPenetrationDepth() const
btKinematicCharacterController(btPairCachingGhostObject *ghostObject, btConvexShape *convexShape, btScalar stepHeight, const btVector3 &up=btVector3(1.0, 0.0, 0.0))
btQuaternion m_targetOrientation
void setJumpSpeed(btScalar jumpSpeed)
btScalar getStepHeight() const
btManifoldArray m_manifoldArray
keep track of the contact manifolds
btVector3 m_walkDirection
this is the desired walk direction, set by the user
void stepForwardAndStrafe(btCollisionWorld *collisionWorld, const btVector3 &walkMove)
btScalar m_maxSlopeCosine
void setMaxSlope(btScalar slopeRadians)
void setStepHeight(btScalar h)
void setUpInterpolate(bool value)
void setMaxPenetrationDepth(btScalar d)
void setFallSpeed(btScalar fallSpeed)
void setGravity(const btVector3 &gravity)
virtual const btVector3 & getAngularVelocity() const
btScalar m_currentStepOffset
void updateTargetPositionBasedOnCollision(const btVector3 &hit_normal, btScalar tangentMag=btScalar(0.0), btScalar normalMag=btScalar(1.0))
void stepUp(btCollisionWorld *collisionWorld)
virtual void setLinearVelocity(const btVector3 &velocity)
void setAngularDamping(btScalar d)
void preStep(btCollisionWorld *collisionWorld)
~btKinematicCharacterController()
void setMaxJumpHeight(btScalar maxJumpHeight)
const btVector3 & getUp()
btPairCachingGhostObject * getGhostObject()
virtual bool needsCollision(const btCollisionObject *body0, const btCollisionObject *body1)
bool m_useGhostObjectSweepTest
virtual void setVelocityForTimeInterval(const btVector3 &velocity, btScalar timeInterval)
btScalar getJumpSpeed() const
btQuaternion m_currentOrientation
virtual void updateAction(btCollisionWorld *collisionWorld, btScalar deltaTime)
btActionInterface interface
btScalar getFallSpeed() const
btScalar m_verticalVelocity
btVector3 m_normalizedDirection
btVector3 m_currentPosition
void warp(const btVector3 &origin)
btVector3 parallelComponent(const btVector3 &direction, const btVector3 &normal)
bool recoverFromPenetration(btCollisionWorld *collisionWorld)
btVector3 m_touchingNormal
btScalar m_verticalOffset
static btVector3 * getUpAxisDirections()
btScalar getMaxSlope() const
void playerStep(btCollisionWorld *collisionWorld, btScalar dt)
btPairCachingGhostObject * m_ghostObject
btScalar getLinearDamping() const
SIMD_FORCE_INLINE const T & btClamped(const T &a, const T &lb, const T &ub)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
void reset()
clear internal cached data and reset random seed
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...
CollisionWorld is interface and container for the collision detection.
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatr...