|
Bullet Collision Detection & Physics Library
|
The btMultiSphereShape represents the convex hull of a collection of spheres. More...
#include <btMultiSphereShape.h>


Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btMultiSphereShape (const btVector3 *positions, const btScalar *radi, int numSpheres) | |
| virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const |
| CollisionShape Interface. More... | |
| virtual btVector3 | localGetSupportingVertexWithoutMargin (const btVector3 &vec) const |
| btConvexShape Interface More... | |
| virtual void | batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const |
| int | getSphereCount () const |
| const btVector3 & | getSpherePosition (int index) const |
| btScalar | getSphereRadius (int index) const |
| virtual const char * | getName () 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 btConvexInternalAabbCachingShape | |
| virtual void | setLocalScaling (const btVector3 &scaling) |
| 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 More... | |
| void | recalcLocalAabb () |
Public Member Functions inherited from btConvexInternalShape | |
| 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) |
| virtual void | getAabbSlow (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const |
| 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 |
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 () |
| 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 |
Public Member Functions inherited from btCollisionShape | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btCollisionShape () | |
| virtual | ~btCollisionShape () |
| 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... | |
| int | getShapeType () const |
| virtual btVector3 | getAnisotropicRollingFrictionDirection () const |
| the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example More... | |
| void | setUserPointer (void *userPtr) |
| optional user data pointer More... | |
| void * | getUserPointer () const |
| void | setUserIndex (int index) |
| int | getUserIndex () const |
| virtual void | serializeSingleShape (btSerializer *serializer) const |
Private Attributes | |
| btAlignedObjectArray< btVector3 > | m_localPositionArray |
| btAlignedObjectArray< btScalar > | m_radiArray |
Additional Inherited Members | |
Protected Member Functions inherited from btConvexInternalAabbCachingShape | |
| btConvexInternalAabbCachingShape () | |
| void | setCachedLocalAabb (const btVector3 &aabbMin, const btVector3 &aabbMax) |
| void | getCachedLocalAabb (btVector3 &aabbMin, btVector3 &aabbMax) const |
| void | getNonvirtualAabb (const btTransform &trans, btVector3 &aabbMin, btVector3 &aabbMax, btScalar margin) const |
Protected Member Functions inherited from btConvexInternalShape | |
| btConvexInternalShape () | |
Protected Attributes inherited from btConvexInternalShape | |
| 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 |
The btMultiSphereShape represents the convex hull of a collection of spheres.
You can create special capsules or other smooth volumes. It is possible to animate the spheres for deformation, but call 'recalcLocalAabb' after changing any sphere position/radius
Definition at line 28 of file btMultiSphereShape.h.
| btMultiSphereShape::btMultiSphereShape | ( | const btVector3 * | positions, |
| const btScalar * | radi, | ||
| int | numSpheres | ||
| ) |
Definition at line 25 of file btMultiSphereShape.cpp.
|
virtual |
Implements btConvexShape.
Definition at line 94 of file btMultiSphereShape.cpp.
| btMultiSphereShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
CollisionShape Interface.
Implements btCollisionShape.
Definition at line 138 of file btMultiSphereShape.cpp.
|
inlinevirtual |
Reimplemented from btConvexInternalShape.
Definition at line 94 of file btMultiSphereShape.h.
|
inlinevirtual |
Implements btCollisionShape.
Definition at line 63 of file btMultiSphereShape.h.
|
inline |
Definition at line 47 of file btMultiSphereShape.h.
|
inline |
Definition at line 52 of file btMultiSphereShape.h.
|
inline |
Definition at line 57 of file btMultiSphereShape.h.
|
virtual |
btConvexShape Interface
Implements btConvexShape.
Definition at line 47 of file btMultiSphereShape.cpp.
|
virtual |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btConvexInternalShape.
Definition at line 158 of file btMultiSphereShape.cpp.
|
private |
Definition at line 31 of file btMultiSphereShape.h.
|
private |
Definition at line 32 of file btMultiSphereShape.h.
1.8.13