#include <btConvexInternalShape.h>
Public Member Functions | |
virtual int | calculateSerializeBufferSize () const |
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 |
const btVector3 & | getImplicitShapeDimensions () 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 |
virtual btVector3 | localGetSupportingVertex (const btVector3 &vec) const |
virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const |
fills the dataBuffer and returns the struct name (and 0 on failure) | |
void | setImplicitShapeDimensions (const btVector3 &dimensions) |
virtual void | setLocalScaling (const btVector3 &scaling) |
virtual void | setMargin (btScalar margin) |
void | setSafeMargin (btScalar minDimension, btScalar defaultMarginMultiplier=0.1f) |
void | setSafeMargin (const btVector3 &halfExtents, btScalar defaultMarginMultiplier=0.1f) |
virtual | ~btConvexInternalShape () |
Protected Member Functions | |
btConvexInternalShape () | |
Protected Attributes | |
btScalar | m_collisionMargin |
btVector3 | m_implicitShapeDimensions |
btVector3 | m_localScaling |
btScalar | m_padding |
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.
btConvexInternalShape::btConvexInternalShape | ( | ) | [protected] |
virtual btConvexInternalShape::~btConvexInternalShape | ( | ) | [inline, virtual] |
Definition at line 49 of file btConvexInternalShape.h.
SIMD_FORCE_INLINE int btConvexInternalShape::calculateSerializeBufferSize | ( | ) | const [virtual] |
Reimplemented in btCylinderShape, btCapsuleShape, and btMultiSphereShape.
Definition at line 160 of file btConvexInternalShape.h.
void btConvexInternalShape::getAabb | ( | const btTransform & | t, |
btVector3 & | aabbMin, | ||
btVector3 & | aabbMax | ||
) | const [inline] |
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
Reimplemented in btConvexInternalAabbCachingShape, btSoftClusterCollisionShape, btBox2dShape, btBoxShape, btPolyhedralConvexAabbCachingShape, btCapsuleShape, btCylinderShape, and btBU_Simplex1to4.
Definition at line 88 of file btConvexInternalShape.h.
virtual void btConvexInternalShape::getAabbSlow | ( | const btTransform & | t, |
btVector3 & | aabbMin, | ||
btVector3 & | aabbMax | ||
) | const [virtual] |
const btVector3& btConvexInternalShape::getImplicitShapeDimensions | ( | ) | const [inline] |
Definition at line 56 of file btConvexInternalShape.h.
virtual const btVector3& btConvexInternalShape::getLocalScaling | ( | ) | const [inline, virtual] |
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] |
Reimplemented in btSoftClusterCollisionShape, and btMinkowskiSumShape.
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] |
Reimplemented in btBox2dShape, and btBoxShape.
Definition at line 123 of file btConvexInternalShape.h.
virtual void btConvexInternalShape::getPreferredPenetrationDirection | ( | int | index, |
btVector3 & | penetrationVector | ||
) | const [inline, virtual] |
Reimplemented in btBox2dShape, and btBoxShape.
Definition at line 128 of file btConvexInternalShape.h.
virtual btVector3 btConvexInternalShape::localGetSupportingVertex | ( | const btVector3 & | vec | ) | const [virtual] |
Reimplemented in btSoftClusterCollisionShape, btCylinderShape, btBox2dShape, btBoxShape, btConvexTriangleMeshShape, and btConeShape.
SIMD_FORCE_INLINE const char * btConvexInternalShape::serialize | ( | void * | dataBuffer, |
btSerializer * | serializer | ||
) | const [virtual] |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented in btCylinderShape, btCapsuleShape, 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.
virtual void btConvexInternalShape::setLocalScaling | ( | const btVector3 & | scaling | ) | [virtual] |
virtual void btConvexInternalShape::setMargin | ( | btScalar | margin | ) | [inline, virtual] |
Reimplemented in btSoftClusterCollisionShape, btBox2dShape, btBoxShape, btCylinderShape, and btCapsuleShape.
Definition at line 109 of file btConvexInternalShape.h.
void btConvexInternalShape::setSafeMargin | ( | btScalar | minDimension, |
btScalar | defaultMarginMultiplier = 0.1f |
||
) | [inline] |
Definition at line 70 of file btConvexInternalShape.h.
void btConvexInternalShape::setSafeMargin | ( | const btVector3 & | halfExtents, |
btScalar | defaultMarginMultiplier = 0.1f |
||
) | [inline] |
Definition at line 78 of file btConvexInternalShape.h.
btScalar btConvexInternalShape::m_collisionMargin [protected] |
Definition at line 39 of file btConvexInternalShape.h.
btVector3 btConvexInternalShape::m_implicitShapeDimensions [protected] |
Definition at line 37 of file btConvexInternalShape.h.
btVector3 btConvexInternalShape::m_localScaling [protected] |
Definition at line 35 of file btConvexInternalShape.h.
btScalar btConvexInternalShape::m_padding [protected] |
Definition at line 41 of file btConvexInternalShape.h.