Bullet Collision Detection & Physics Library: btCapsuleShape Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
btCapsuleShape Class Reference

The btCapsuleShape represents a capsule around the Y axis, there is also the btCapsuleShapeX aligned around the X axis and btCapsuleShapeZ around the Z axis. More...

`#include <btCapsuleShape.h>`

Inheritance diagram for btCapsuleShape:
[legend]
Collaboration diagram for btCapsuleShape:
[legend]

## Public Member Functions
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btCapsuleShape (btScalar radius, btScalar height)
virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const
| CollisionShape Interface.
virtual btVector3 | localGetSupportingVertexWithoutMargin (const btVector3 &vec) const
| btConvexShape Interface
virtual void | batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
virtual void | setMargin (btScalar collisionMargin)
virtual void | getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
| getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
virtual const char * | getName () const
int | getUpAxis () const
btScalar | getRadius () const
btScalar | getHalfHeight () const
virtual void | setLocalScaling (const btVector3 &scaling)
virtual btVector3 | getAnisotropicRollingFrictionDirection () const
| the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example
virtual int | calculateSerializeBufferSize () const
virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const
| fills the dataBuffer and returns the struct name (and 0 on failure)
void | deSerializeFloat (struct btCapsuleShapeData *dataBuffer)
Public Member Functions inherited from btConvexInternalShape
| BT_DECLARE_ALIGNED_ALLOCATOR ()
virtual | ~btConvexInternalShape ()
virtual btVector3 | localGetSupportingVertex (const btVector3 &vec) const
const btVector3 & | getImplicitShapeDimensions () const
void | setImplicitShapeDimensions (const btVector3 &dimensions)
| warning: use setImplicitShapeDimensions with care changing a collision shape while the body is in the world is not recommended, it is best to remove the body from the world, then make the change, and re-add it alternatively flush the contact points, see documentation for 'cleanProxyFromPairs'
void | setSafeMargin (btScalar minDimension, btScalar defaultMarginMultiplier=0.1f)
void | setSafeMargin (const btVector3 &halfExtents, btScalar defaultMarginMultiplier=0.1f)
void | getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
| getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
virtual void | getAabbSlow (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual const btVector3 & | getLocalScaling () const
const btVector3 & | getLocalScalingNV () const
virtual btScalar | getMargin () const
btScalar | getMarginNV () const
virtual int | getNumPreferredPenetrationDirections () const
virtual void | getPreferredPenetrationDirection (int index, btVector3 &penetrationVector) const
Public Member Functions inherited from btConvexShape
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btConvexShape ()
| not supported on IBM SDK, until we fix the alignment of btVector3
virtual | ~btConvexShape ()
btVector3 | localGetSupportVertexWithoutMarginNonVirtual (const btVector3 &vec) const
btVector3 | localGetSupportVertexNonVirtual (const btVector3 &vec) const
btScalar | getMarginNonVirtual () const
void | getAabbNonVirtual (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual void | project (const btTransform &trans, const btVector3 &dir, btScalar &minProj, btScalar &maxProj, btVector3 &witnesPtMin, btVector3 &witnesPtMax) const
Public Member Functions inherited from btCollisionShape
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btCollisionShape ()
virtual | ~btCollisionShape ()
virtual void | getBoundingSphere (btVector3 &center, btScalar &radius) const
virtual btScalar | getAngularMotionDisc () const
| getAngularMotionDisc returns the maximum radius needed for Conservative Advancement to handle time-of-impact with rotations.
virtual btScalar | getContactBreakingThreshold (btScalar defaultContactThresholdFactor) const
void | calculateTemporalAabb (const btTransform &curTrans, const btVector3 &linvel, const btVector3 &angvel, btScalar timeStep, btVector3 &temporalAabbMin, btVector3 &temporalAabbMax) const
| calculateTemporalAabb calculates the enclosing aabb for the moving object over interval [0..timeStep) result is conservative
bool | isPolyhedral () const
bool | isConvex2d () const
bool | isConvex () const
bool | isNonMoving () const
bool | isConcave () const
bool | isCompound () const
bool | isSoftBody () const
bool | isInfinite () const
| isInfinite is used to catch simulation error (aabb check)
int | getShapeType () const
void | setUserPointer (void *userPtr)
| optional user data pointer
void * | getUserPointer () const
void | setUserIndex (int index)
int | getUserIndex () const
void | setUserIndex2 (int index)
int | getUserIndex2 () const
virtual void | serializeSingleShape (btSerializer *serializer) const

## Protected Member Functions
| btCapsuleShape ()
| only used for btCapsuleShapeZ and btCapsuleShapeX subclasses.
Protected Member Functions inherited from btConvexInternalShape
| btConvexInternalShape ()

## Protected Attributes
int | m_upAxis
Protected Attributes inherited from btConvexInternalShape
btVector3 | m_localScaling
btVector3 | m_implicitShapeDimensions
btScalar | m_collisionMargin
btScalar | m_padding
Protected Attributes inherited from btCollisionShape
int | m_shapeType
void * | m_userPointer
int | m_userIndex
int | m_userIndex2

## Detailed Description

The btCapsuleShape represents a capsule around the Y axis, there is also the btCapsuleShapeX aligned around the X axis and btCapsuleShapeZ around the Z axis.

The total height is height+2*radius, so the height is just the height between the center of each 'sphere' of the capsule caps. The btCapsuleShape is a convex hull of two spheres. The btMultiSphereShape is a more general collision shape that takes the convex hull of multiple sphere, so it can also represent a capsule when just using two spheres.

Definition at line 25 of file btCapsuleShape.h.

## Constructor & Destructor Documentation

## ◆ btCapsuleShape() [1/2]

btCapsuleShape::btCapsuleShape | ( |  | ) |
| inlineprotected

only used for btCapsuleShapeZ and btCapsuleShapeX subclasses.

Definition at line 33 of file btCapsuleShape.h.

## ◆ btCapsuleShape() [2/2]

btCapsuleShape::btCapsuleShape | ( | btScalar | radius,
|  | btScalar | height )

Definition at line 20 of file btCapsuleShape.cpp.

## Member Function Documentation

## ◆ batchedUnitVectorGetSupportingVertexWithoutMargin()

void btCapsuleShape::batchedUnitVectorGetSupportingVertexWithoutMargin | ( | const btVector3 * | vectors,
|  | btVector3 * | supportVerticesOut,
|  | int | numVectors ) const
| virtual

Implements btConvexShape.

Definition at line 77 of file btCapsuleShape.cpp.

## ◆ BT_DECLARE_ALIGNED_ALLOCATOR()

btCapsuleShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( |  | ) |

## ◆ calculateLocalInertia()

void btCapsuleShape::calculateLocalInertia | ( | btScalar | mass,
|  | btVector3 & | inertia ) const
| virtual

CollisionShape Interface.

Implements btCollisionShape.

Definition at line 111 of file btCapsuleShape.cpp.

## ◆ calculateSerializeBufferSize()

int btCapsuleShape::calculateSerializeBufferSize | ( |  | ) | const
| inlinevirtual

Reimplemented from btConvexInternalShape.

Definition at line 150 of file btCapsuleShape.h.

## ◆ deSerializeFloat()

void btCapsuleShape::deSerializeFloat | ( | struct btCapsuleShapeData * | dataBuffer | ) |
| inline

Definition at line 173 of file btCapsuleShape.h.

## ◆ getAabb()

virtual void btCapsuleShape::getAabb | ( | const btTransform & | t,
|  | btVector3 & | aabbMin,
|  | btVector3 & | aabbMax ) const
| inlinevirtual

getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version

Implements btConvexShape.

Definition at line 54 of file btCapsuleShape.h.

## ◆ getAnisotropicRollingFrictionDirection()

virtual btVector3 btCapsuleShape::getAnisotropicRollingFrictionDirection | ( |  | ) | const
| inlinevirtual

the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example

Reimplemented from btCollisionShape.

Definition at line 97 of file btCapsuleShape.h.

## ◆ getHalfHeight()

btScalar btCapsuleShape::getHalfHeight | ( |  | ) | const
| inline

Definition at line 82 of file btCapsuleShape.h.

## ◆ getName()

virtual const char * btCapsuleShape::getName | ( |  | ) | const
| inlinevirtual

Implements btCollisionShape.

Reimplemented in btCapsuleShapeX, and btCapsuleShapeZ.

Definition at line 66 of file btCapsuleShape.h.

## ◆ getRadius()

btScalar btCapsuleShape::getRadius | ( |  | ) | const
| inline

Definition at line 76 of file btCapsuleShape.h.

## ◆ getUpAxis()

int btCapsuleShape::getUpAxis | ( |  | ) | const
| inline

Definition at line 71 of file btCapsuleShape.h.

## ◆ localGetSupportingVertexWithoutMargin()

btVector3 btCapsuleShape::localGetSupportingVertexWithoutMargin | ( | const btVector3 & | vec | ) | const
| virtual

btConvexShape Interface

Implements btConvexShape.

Definition at line 28 of file btCapsuleShape.cpp.

## ◆ serialize()

const char * btCapsuleShape::serialize | ( | void * | dataBuffer,
|  | btSerializer * | serializer ) const
| inlinevirtual

fills the dataBuffer and returns the struct name (and 0 on failure)

Reimplemented from btConvexInternalShape.

Definition at line 156 of file btCapsuleShape.h.

## ◆ setLocalScaling()

virtual void btCapsuleShape::setLocalScaling | ( | const btVector3 & | scaling | ) |
| inlinevirtual

Reimplemented from btConvexInternalShape.

Definition at line 87 of file btCapsuleShape.h.

## ◆ setMargin()

virtual void btCapsuleShape::setMargin | ( | btScalar | collisionMargin | ) |
| inlinevirtual

Reimplemented from btConvexInternalShape.

Definition at line 48 of file btCapsuleShape.h.

## Member Data Documentation

## ◆ m_upAxis

int btCapsuleShape::m_upAxis
| protected

Definition at line 29 of file btCapsuleShape.h.

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

- btCapsuleShape.h
- btCapsuleShape.cpp