Bullet Collision Detection & Physics Library
|
The btConvexInternalShape is an internal base class, shared by most convex shape implementations. More...
#include <btConvexInternalShape.h>
Public Member Functions | |
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' More... | |
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 More... | |
virtual void | getAabbSlow (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const |
virtual void | setLocalScaling (const btVector3 &scaling) |
virtual const btVector3 & | getLocalScaling () const |
const btVector3 & | getLocalScalingNV () 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) More... | |
Public Member Functions inherited from btConvexShape | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
btConvexShape () | |
not supported on IBM SDK, until we fix the alignment of btVector3 More... | |
virtual | ~btConvexShape () |
virtual btVector3 | localGetSupportingVertex (const btVector3 &vec) const =0 |
virtual btVector3 | localGetSupportingVertexWithoutMargin (const btVector3 &vec) const =0 |
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 |
virtual void | batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const =0 |
void | getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const =0 |
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version More... | |
virtual void | getAabbSlow (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const =0 |
virtual void | setLocalScaling (const btVector3 &scaling)=0 |
virtual const btVector3 & | getLocalScaling () const =0 |
virtual void | setMargin (btScalar margin)=0 |
virtual btScalar | getMargin () const =0 |
virtual int | getNumPreferredPenetrationDirections () const =0 |
virtual void | getPreferredPenetrationDirection (int index, btVector3 &penetrationVector) const =0 |
Public Member Functions inherited from btCollisionShape | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
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. More... | |
virtual void | getBoundingSphere (btVector3 ¢er, btScalar &radius) const |
virtual btScalar | getAngularMotionDisc () const |
getAngularMotionDisc returns the maximum radius needed for Conservative Advancement to handle time-of-impact with rotations. More... | |
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 More... | |
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) More... | |
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 btVector3 | getAnisotropicRollingFrictionDirection () const |
the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example More... | |
virtual void | setMargin (btScalar margin)=0 |
virtual btScalar | getMargin () const =0 |
void | setUserPointer (void *userPtr) |
optional user data pointer More... | |
void * | getUserPointer () const |
void | setUserIndex (int index) |
int | getUserIndex () const |
void | setUserIndex2 (int index) |
int | getUserIndex2 () 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) More... | |
virtual void | serializeSingleShape (btSerializer *serializer) const |
Protected Member Functions | |
btConvexInternalShape () | |
Protected Attributes | |
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 |
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 28 of file btConvexInternalShape.h.
|
protected |
Definition at line 18 of file btConvexInternalShape.cpp.
|
inlinevirtual |
Definition at line 46 of file btConvexInternalShape.h.
btConvexInternalShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
inlinevirtual |
Reimplemented from btCollisionShape.
Reimplemented in btCapsuleShape, btConeShape, btConvexHullShape, btCylinderShape, and btMultiSphereShape.
Definition at line 148 of file btConvexInternalShape.h.
|
inlinevirtual |
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
Implements btConvexShape.
Reimplemented in btConvexInternalAabbCachingShape, btCylinderShape, btPolyhedralConvexAabbCachingShape, btSphereShape, btBU_Simplex1to4, btTriangleShape, btTriangleShapeEx, and btSoftClusterCollisionShape.
Definition at line 84 of file btConvexInternalShape.h.
|
virtual |
Implements btConvexShape.
Definition at line 29 of file btConvexInternalShape.cpp.
|
inline |
Definition at line 52 of file btConvexInternalShape.h.
|
inlinevirtual |
Implements btConvexShape.
Reimplemented in btConvexTriangleMeshShape.
Definition at line 92 of file btConvexInternalShape.h.
|
inline |
Definition at line 97 of file btConvexInternalShape.h.
|
inlinevirtual |
Implements btConvexShape.
Reimplemented in btMinkowskiSumShape, btSphereShape, and btSoftClusterCollisionShape.
Definition at line 106 of file btConvexInternalShape.h.
|
inline |
Definition at line 111 of file btConvexInternalShape.h.
|
inlinevirtual |
Implements btConvexShape.
Reimplemented in btBox2dShape, btBoxShape, and btTriangleShape.
Definition at line 116 of file btConvexInternalShape.h.
|
inlinevirtual |
Implements btConvexShape.
Reimplemented in btBox2dShape, btBoxShape, and btTriangleShape.
Definition at line 121 of file btConvexInternalShape.h.
Implements btConvexShape.
Reimplemented in btBox2dShape, btBoxShape, btConeShape, btConvexHullShape, btConvexPointCloudShape, btConvexTriangleMeshShape, btCylinderShape, btSphereShape, and btSoftClusterCollisionShape.
Definition at line 50 of file btConvexInternalShape.cpp.
|
inlinevirtual |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btCollisionShape.
Reimplemented in btCapsuleShape, btConeShape, btConvexHullShape, btCylinderShape, and btMultiSphereShape.
Definition at line 154 of file btConvexInternalShape.h.
|
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 61 of file btConvexInternalShape.h.
|
virtual |
Implements btConvexShape.
Reimplemented in btBox2dShape, btBoxShape, btCapsuleShape, btConeShape, btConvexHullShape, btConvexInternalAabbCachingShape, btConvexPointCloudShape, btConvexTriangleMeshShape, btCylinderShape, and btPolyhedralConvexAabbCachingShape.
Definition at line 24 of file btConvexInternalShape.cpp.
|
inlinevirtual |
Implements btConvexShape.
Reimplemented in btBox2dShape, btBoxShape, btCapsuleShape, btCylinderShape, btSphereShape, and btSoftClusterCollisionShape.
Definition at line 102 of file btConvexInternalShape.h.
|
inline |
Definition at line 66 of file btConvexInternalShape.h.
|
inline |
Definition at line 74 of file btConvexInternalShape.h.
|
protected |
Definition at line 37 of file btConvexInternalShape.h.
|
protected |
Definition at line 35 of file btConvexInternalShape.h.
|
protected |
Definition at line 33 of file btConvexInternalShape.h.
|
protected |
Definition at line 39 of file btConvexInternalShape.h.