Blender V2.61 - r43446
|
#include <btCapsuleShape.h>
Public Member Functions | |
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 int | calculateSerializeBufferSize () const |
virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const |
fills the dataBuffer and returns the struct name (and 0 on failure) | |
Protected Member Functions | |
btCapsuleShape () | |
only used for btCapsuleShapeZ and btCapsuleShapeX subclasses. | |
Protected Attributes | |
int | m_upAxis |
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 26 of file btCapsuleShape.h.
btCapsuleShape::btCapsuleShape | ( | ) | [inline, protected] |
only used for btCapsuleShapeZ and btCapsuleShapeX subclasses.
Definition at line 33 of file btCapsuleShape.h.
References CAPSULE_SHAPE_PROXYTYPE.
Definition at line 22 of file btCapsuleShape.cpp.
References CAPSULE_SHAPE_PROXYTYPE, btConvexInternalShape::m_implicitShapeDimensions, and m_upAxis.
void btCapsuleShape::batchedUnitVectorGetSupportingVertexWithoutMargin | ( | const btVector3 * | vectors, |
btVector3 * | supportVerticesOut, | ||
int | numVectors | ||
) | const [virtual] |
Definition at line 83 of file btCapsuleShape.cpp.
References BT_LARGE_FLOAT, getHalfHeight(), btConvexInternalShape::getMargin(), getRadius(), getUpAxis(), and btConvexInternalShape::m_localScaling.
void btCapsuleShape::calculateLocalInertia | ( | btScalar | mass, |
btVector3 & | inertia | ||
) | const [virtual] |
CollisionShape Interface.
Definition at line 123 of file btCapsuleShape.cpp.
References CONVEX_DISTANCE_MARGIN, getHalfHeight(), getRadius(), getUpAxis(), and btTransform::setIdentity().
SIMD_FORCE_INLINE int btCapsuleShape::calculateSerializeBufferSize | ( | ) | const [virtual] |
Reimplemented from btConvexInternalShape.
Definition at line 156 of file btCapsuleShape.h.
virtual void btCapsuleShape::getAabb | ( | const btTransform & | t, |
btVector3 & | aabbMin, | ||
btVector3 & | aabbMax | ||
) | const [inline, virtual] |
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
Reimplemented from btConvexInternalShape.
Definition at line 58 of file btCapsuleShape.h.
References btMatrix3x3::absolute(), dot(), btTransform::getBasis(), getHalfHeight(), btConvexInternalShape::getMargin(), btTransform::getOrigin(), getRadius(), and m_upAxis.
btScalar btCapsuleShape::getHalfHeight | ( | ) | const [inline] |
Definition at line 87 of file btCapsuleShape.h.
References btConvexInternalShape::m_implicitShapeDimensions, and m_upAxis.
Referenced by batchedUnitVectorGetSupportingVertexWithoutMargin(), calculateLocalInertia(), btCollisionWorld::debugDrawObject(), getAabb(), localGetSupportingVertexWithoutMargin(), and btConvexConvexAlgorithm::processCollision().
virtual const char* btCapsuleShape::getName | ( | void | ) | const [inline, virtual] |
Reimplemented in btCapsuleShapeX, and btCapsuleShapeZ.
Definition at line 71 of file btCapsuleShape.h.
btScalar btCapsuleShape::getRadius | ( | ) | const [inline] |
Definition at line 81 of file btCapsuleShape.h.
References btConvexInternalShape::m_implicitShapeDimensions, and m_upAxis.
Referenced by batchedUnitVectorGetSupportingVertexWithoutMargin(), calculateLocalInertia(), btCollisionWorld::debugDrawObject(), getAabb(), localGetSupportingVertexWithoutMargin(), and btConvexConvexAlgorithm::processCollision().
int btCapsuleShape::getUpAxis | ( | ) | const [inline] |
Definition at line 76 of file btCapsuleShape.h.
References m_upAxis.
Referenced by batchedUnitVectorGetSupportingVertexWithoutMargin(), calculateLocalInertia(), btCollisionWorld::debugDrawObject(), localGetSupportingVertexWithoutMargin(), and btConvexConvexAlgorithm::processCollision().
btVector3 btCapsuleShape::localGetSupportingVertexWithoutMargin | ( | const btVector3 & | vec | ) | const [virtual] |
btConvexShape Interface
Definition at line 30 of file btCapsuleShape.cpp.
References BT_LARGE_FLOAT, btSqrt(), getHalfHeight(), btConvexInternalShape::getMargin(), getRadius(), getUpAxis(), and btConvexInternalShape::m_localScaling.
SIMD_FORCE_INLINE const char * btCapsuleShape::serialize | ( | void * | dataBuffer, |
btSerializer * | serializer | ||
) | const [virtual] |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btConvexInternalShape.
Definition at line 162 of file btCapsuleShape.h.
References btCapsuleShapeData::m_convexInternalShapeData, m_upAxis, and btCapsuleShapeData::m_upAxis.
virtual void btCapsuleShape::setLocalScaling | ( | const btVector3 & | scaling | ) | [inline, virtual] |
Reimplemented from btConvexInternalShape.
Definition at line 92 of file btCapsuleShape.h.
References btConvexInternalShape::getMargin(), btConvexInternalShape::m_implicitShapeDimensions, and btConvexInternalShape::m_localScaling.
virtual void btCapsuleShape::setMargin | ( | btScalar | collisionMargin | ) | [inline, virtual] |
Reimplemented from btConvexInternalShape.
Definition at line 46 of file btCapsuleShape.h.
References btConvexInternalShape::getMargin(), and btConvexInternalShape::m_implicitShapeDimensions.
int btCapsuleShape::m_upAxis [protected] |
Definition at line 29 of file btCapsuleShape.h.
Referenced by btCapsuleShape(), btCapsuleShapeX::btCapsuleShapeX(), btCapsuleShapeZ::btCapsuleShapeZ(), getAabb(), getHalfHeight(), getRadius(), getUpAxis(), and serialize().