Public Member Functions | Protected Member Functions | Protected Attributes

btConvexInternalShape Class Reference

The btConvexInternalShape is an internal base class, shared by most convex shape implementations. More...

#include <btConvexInternalShape.h>

Inheritance diagram for btConvexInternalShape:
Inheritance graph
[legend]
Collaboration diagram for btConvexInternalShape:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 BT_DECLARE_ALIGNED_ALLOCATOR ()
virtual ~btConvexInternalShape ()
virtual btVector3 localGetSupportingVertex (const btVector3 &vec) const
const btVector3getImplicitShapeDimensions () 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 void setLocalScaling (const btVector3 &scaling)
virtual const btVector3getLocalScaling () const
const btVector3getLocalScalingNV () const
virtual void setMargin (btScalar margin)
virtual btScalar getMargin () const
btScalar getMarginNV () const
virtual int getNumPreferredPenetrationDirections () const
virtual void getPreferredPenetrationDirection (int index, btVector3 &penetrationVector) 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)

Protected Member Functions

 btConvexInternalShape ()

Protected Attributes

btVector3 m_localScaling
btVector3 m_implicitShapeDimensions
btScalar m_collisionMargin
btScalar m_padding

Detailed Description

The btConvexInternalShape is an internal base class, shared by most convex shape implementations.

The btConvexInternalShape uses a default collision margin set to CONVEX_DISTANCE_MARGIN. This collision margin used by Gjk and some other algorithms, see also btCollisionMargin.h Note that when creating small shapes (derived from btConvexInternalShape), you need to make sure to set a smaller collision margin, using the 'setMargin' API There is a automatic mechanism 'setSafeMargin' used by btBoxShape and btCylinderShape

Definition at line 29 of file btConvexInternalShape.h.


Constructor & Destructor Documentation

btConvexInternalShape::btConvexInternalShape (  )  [protected]

Definition at line 21 of file btConvexInternalShape.cpp.

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

Definition at line 49 of file btConvexInternalShape.h.


Member Function Documentation

btConvexInternalShape::BT_DECLARE_ALIGNED_ALLOCATOR (  ) 
int btConvexInternalShape::calculateSerializeBufferSize (  )  const [inline, virtual]

Reimplemented from btCollisionShape.

Reimplemented in btCapsuleShape, btConvexHullShape, btCylinderShape, and btMultiSphereShape.

Definition at line 160 of file btConvexInternalShape.h.

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

Implements btConvexShape.

Reimplemented in btBox2dShape, btBoxShape, btCapsuleShape, btConvexInternalAabbCachingShape, btCylinderShape, btPolyhedralConvexAabbCachingShape, btSphereShape, btBU_Simplex1to4, btTriangleShape, btTriangleShapeEx, and btSoftClusterCollisionShape.

Definition at line 88 of file btConvexInternalShape.h.

void btConvexInternalShape::getAabbSlow ( const btTransform t,
btVector3 aabbMin,
btVector3 aabbMax 
) const [virtual]

Implements btConvexShape.

Definition at line 35 of file btConvexInternalShape.cpp.

const btVector3& btConvexInternalShape::getImplicitShapeDimensions (  )  const [inline]

Definition at line 56 of file btConvexInternalShape.h.

virtual const btVector3& btConvexInternalShape::getLocalScaling (  )  const [inline, virtual]

Implements btConvexShape.

Reimplemented in btConvexTriangleMeshShape.

Definition at line 99 of file btConvexInternalShape.h.

const btVector3& btConvexInternalShape::getLocalScalingNV (  )  const [inline]

Definition at line 104 of file btConvexInternalShape.h.

virtual btScalar btConvexInternalShape::getMargin (  )  const [inline, virtual]

Implements btConvexShape.

Reimplemented in btMinkowskiSumShape, btSphereShape, and btSoftClusterCollisionShape.

Definition at line 113 of file btConvexInternalShape.h.

btScalar btConvexInternalShape::getMarginNV (  )  const [inline]

Definition at line 118 of file btConvexInternalShape.h.

virtual int btConvexInternalShape::getNumPreferredPenetrationDirections (  )  const [inline, virtual]

Implements btConvexShape.

Reimplemented in btBox2dShape, btBoxShape, and btTriangleShape.

Definition at line 123 of file btConvexInternalShape.h.

virtual void btConvexInternalShape::getPreferredPenetrationDirection ( int  index,
btVector3 penetrationVector 
) const [inline, virtual]

Implements btConvexShape.

Reimplemented in btBox2dShape, btBoxShape, and btTriangleShape.

Definition at line 128 of file btConvexInternalShape.h.

btVector3 btConvexInternalShape::localGetSupportingVertex ( const btVector3 vec  )  const [virtual]
const char * btConvexInternalShape::serialize ( void *  dataBuffer,
btSerializer serializer 
) const [inline, virtual]

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

Reimplemented from btCollisionShape.

Reimplemented in btCapsuleShape, btConvexHullShape, btCylinderShape, and btMultiSphereShape.

Definition at line 166 of file btConvexInternalShape.h.

void btConvexInternalShape::setImplicitShapeDimensions ( const btVector3 dimensions  )  [inline]

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'

Definition at line 65 of file btConvexInternalShape.h.

void btConvexInternalShape::setLocalScaling ( const btVector3 scaling  )  [virtual]
virtual void btConvexInternalShape::setMargin ( btScalar  margin  )  [inline, virtual]
void btConvexInternalShape::setSafeMargin ( const btVector3 halfExtents,
btScalar  defaultMarginMultiplier = 0.1f 
) [inline]

Definition at line 78 of file btConvexInternalShape.h.

void btConvexInternalShape::setSafeMargin ( btScalar  minDimension,
btScalar  defaultMarginMultiplier = 0.1f 
) [inline]

Definition at line 70 of file btConvexInternalShape.h.


Member Data Documentation

Definition at line 39 of file btConvexInternalShape.h.

Definition at line 37 of file btConvexInternalShape.h.

Definition at line 35 of file btConvexInternalShape.h.

Definition at line 41 of file btConvexInternalShape.h.


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