Blender V2.61 - r43446
Public Member Functions | Protected Attributes

btCollisionShape Class Reference

The btCollisionShape class provides an interface for collision shapes that can be shared among btCollisionObjects. More...

#include <btCollisionShape.h>

Inheritance diagram for btCollisionShape:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 btCollisionShape ()
virtual ~btCollisionShape ()
virtual void getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const =0
 getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t.
virtual void getBoundingSphere (btVector3 &center, btScalar &radius) const
virtual btScalar getAngularMotionDisc () const
 getAngularMotionDisc returns the maximus 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
SIMD_FORCE_INLINE bool isPolyhedral () const
SIMD_FORCE_INLINE bool isConvex2d () const
SIMD_FORCE_INLINE bool isConvex () const
SIMD_FORCE_INLINE bool isNonMoving () const
SIMD_FORCE_INLINE bool isConcave () const
SIMD_FORCE_INLINE bool isCompound () const
SIMD_FORCE_INLINE bool isSoftBody () const
SIMD_FORCE_INLINE bool isInfinite () const
 isInfinite is used to catch simulation error (aabb check)
virtual void setLocalScaling (const btVector3 &scaling)=0
virtual const btVector3 & getLocalScaling () const =0
virtual void calculateLocalInertia (btScalar mass, btVector3 &inertia) const =0
virtual const char * getName () const =0
int getShapeType () const
virtual void setMargin (btScalar margin)=0
virtual btScalar getMargin () const =0
void setUserPointer (void *userPtr)
 optional user data pointer
void * getUserPointer () const
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)
virtual void serializeSingleShape (btSerializer *serializer) const

Protected Attributes

int m_shapeType
void * m_userPointer

Detailed Description

The btCollisionShape class provides an interface for collision shapes that can be shared among btCollisionObjects.

Definition at line 27 of file btCollisionShape.h.


Constructor & Destructor Documentation

btCollisionShape::btCollisionShape ( ) [inline]

Definition at line 35 of file btCollisionShape.h.

virtual btCollisionShape::~btCollisionShape ( ) [inline, virtual]

Definition at line 39 of file btCollisionShape.h.


Member Function Documentation

virtual void btCollisionShape::calculateLocalInertia ( btScalar  mass,
btVector3 &  inertia 
) const [pure virtual]
SIMD_FORCE_INLINE int btCollisionShape::calculateSerializeBufferSize ( ) const [virtual]

Reimplemented in btGImpactMeshShape.

Definition at line 142 of file btCollisionShape.h.

Referenced by serializeSingleShape().

void btCollisionShape::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

Todo:
: simd would have a vector max/min operation, instead of per-element access

Definition at line 60 of file btCollisionShape.cpp.

References getAabb(), and getAngularMotionDisc().

virtual void btCollisionShape::getAabb ( const btTransform t,
btVector3 &  aabbMin,
btVector3 &  aabbMax 
) const [pure virtual]
btScalar btCollisionShape::getAngularMotionDisc ( ) const [virtual]

getAngularMotionDisc returns the maximus radius needed for Conservative Advancement to handle time-of-impact with rotations.

Todo:
cache this value, to improve performance

Definition at line 50 of file btCollisionShape.cpp.

References getBoundingSphere(), and length().

Referenced by calculateTemporalAabb(), and getContactBreakingThreshold().

void btCollisionShape::getBoundingSphere ( btVector3 &  center,
btScalar radius 
) const [virtual]

Definition at line 32 of file btCollisionShape.cpp.

References getAabb(), length(), and btTransform::setIdentity().

Referenced by getAngularMotionDisc().

btScalar btCollisionShape::getContactBreakingThreshold ( btScalar  defaultContactThresholdFactor) const [virtual]

Definition at line 45 of file btCollisionShape.cpp.

References getAngularMotionDisc().

virtual const btVector3& btCollisionShape::getLocalScaling ( ) const [pure virtual]
virtual btScalar btCollisionShape::getMargin ( ) const [pure virtual]
virtual const char* btCollisionShape::getName ( ) const [pure virtual]
int btCollisionShape::getShapeType ( ) const [inline]
void* btCollisionShape::getUserPointer ( ) const [inline]

Definition at line 120 of file btCollisionShape.h.

References m_userPointer.

SIMD_FORCE_INLINE bool btCollisionShape::isCompound ( ) const [inline]
SIMD_FORCE_INLINE bool btCollisionShape::isConcave ( ) const [inline]
SIMD_FORCE_INLINE bool btCollisionShape::isConvex ( ) const [inline]
SIMD_FORCE_INLINE bool btCollisionShape::isConvex2d ( ) const [inline]

Definition at line 65 of file btCollisionShape.h.

References getShapeType().

SIMD_FORCE_INLINE bool btCollisionShape::isInfinite ( ) const [inline]

isInfinite is used to catch simulation error (aabb check)

Definition at line 93 of file btCollisionShape.h.

References getShapeType().

SIMD_FORCE_INLINE bool btCollisionShape::isNonMoving ( ) const [inline]

Definition at line 74 of file btCollisionShape.h.

References getShapeType().

SIMD_FORCE_INLINE bool btCollisionShape::isPolyhedral ( ) const [inline]

Definition at line 60 of file btCollisionShape.h.

References getShapeType().

Referenced by btCollisionWorld::debugDrawObject().

SIMD_FORCE_INLINE bool btCollisionShape::isSoftBody ( ) const [inline]
const char * btCollisionShape::serialize ( void *  dataBuffer,
btSerializer serializer 
) const [virtual]

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

Reimplemented in btGImpactMeshShape.

Definition at line 99 of file btCollisionShape.cpp.

References btSerializer::findNameForPointer(), btSerializer::getUniquePointer(), btCollisionShapeData::m_name, btCollisionShapeData::m_shapeType, m_shapeType, and btSerializer::serializeName().

Referenced by serializeSingleShape().

void btCollisionShape::serializeSingleShape ( btSerializer serializer) const [virtual]
virtual void btCollisionShape::setLocalScaling ( const btVector3 &  scaling) [pure virtual]
virtual void btCollisionShape::setMargin ( btScalar  margin) [pure virtual]
void btCollisionShape::setUserPointer ( void *  userPtr) [inline]

optional user data pointer

Definition at line 115 of file btCollisionShape.h.

References m_userPointer.

Referenced by btSoftBodyTriangleCallback::processTriangle().


Member Data Documentation

Definition at line 31 of file btCollisionShape.h.

Referenced by getUserPointer(), and setUserPointer().


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