Bullet Collision Detection & Physics Library: btConvexShape Class Reference

Bullet Collision Detection & Physics Library

Public Member Functions | List of all members
btConvexShape Class Referenceabstract

The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape, btConvexHullShape etc. More...

`#include <btConvexShape.h>`

Inheritance diagram for btConvexShape:
[legend]
Collaboration diagram for btConvexShape:
[legend]

## Public Member Functions
| 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 | getBoundingSphere (btVector3 &center, 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 | 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...
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

## Additional Inherited Members
Protected Attributes inherited from btCollisionShape
int | m_shapeType
void * | m_userPointer
int | m_userIndex
int | m_userIndex2

## Detailed Description

The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape, btConvexHullShape etc.

It describes general convex shapes using the localGetSupportingVertex interface, used by collision detectors such as btGjkPairDetector.

Definition at line 31 of file btConvexShape.h.

## Constructor & Destructor Documentation

## ◆ btConvexShape()

btConvexShape::btConvexShape | ( |  | ) |

not supported on IBM SDK, until we fix the alignment of btVector3

Definition at line 41 of file btConvexShape.cpp.

## ◆ ~btConvexShape()

btConvexShape::~btConvexShape | ( |  | ) |
| virtual

Definition at line 45 of file btConvexShape.cpp.

## Member Function Documentation

## ◆ batchedUnitVectorGetSupportingVertexWithoutMargin()

virtual void btConvexShape::batchedUnitVectorGetSupportingVertexWithoutMargin | ( | const btVector3 * | vectors,
|  | btVector3 * | supportVerticesOut,
|  | int | numVectors
| ) |  | const
| pure virtual

Implemented in btSoftClusterCollisionShape, btUniformScalingShape, btTriangleShape, btSphereShape, btPolyhedralConvexShape, btMultiSphereShape, btMinkowskiSumShape, btCylinderShapeZ, btCylinderShapeX, btCylinderShape, btConvexTriangleMeshShape, btConvexPointCloudShape, btConvexHullShape, btConvex2dShape, btConeShape, btCapsuleShape, btBoxShape, and btBox2dShape.

## ◆ BT_DECLARE_ALIGNED_ALLOCATOR()

btConvexShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( |  | ) |

## ◆ getAabb()

void btConvexShape::getAabb | ( | const btTransform & | t,
|  | btVector3 & | aabbMin,
|  | btVector3 & | aabbMax
| ) |  | const
| pure virtual

getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version

Implements btCollisionShape.

Implemented in btSoftClusterCollisionShape, btTriangleShapeEx, btUniformScalingShape, btTriangleShape, btBU_Simplex1to4, btSphereShape, btPolyhedralConvexAabbCachingShape, btCylinderShape, btConvexInternalAabbCachingShape, btConvexInternalShape, btConvex2dShape, btCapsuleShape, btBoxShape, and btBox2dShape.

## ◆ getAabbNonVirtual()

void btConvexShape::getAabbNonVirtual | ( | const btTransform & | t,
|  | btVector3 & | aabbMin,
|  | btVector3 & | aabbMax
| ) |  | const

Definition at line 374 of file btConvexShape.cpp.

## ◆ getAabbSlow()

virtual void btConvexShape::getAabbSlow | ( | const btTransform & | t,
|  | btVector3 & | aabbMin,
|  | btVector3 & | aabbMax
| ) |  | const
| pure virtual

Implemented in btUniformScalingShape, btConvexInternalShape, and btConvex2dShape.

## ◆ getLocalScaling()

virtual const btVector3& btConvexShape::getLocalScaling | ( |  | ) | const
| pure virtual

Implements btCollisionShape.

Implemented in btUniformScalingShape, btConvexTriangleMeshShape, btConvexInternalShape, and btConvex2dShape.

## ◆ getMargin()

virtual btScalar btConvexShape::getMargin | ( |  | ) | const
| pure virtual

Implements btCollisionShape.

Implemented in btSoftClusterCollisionShape, btUniformScalingShape, btSphereShape, btMinkowskiSumShape, btConvexInternalShape, and btConvex2dShape.

## ◆ getMarginNonVirtual()

btScalar btConvexShape::getMarginNonVirtual | ( |  | ) | const

Definition at line 320 of file btConvexShape.cpp.

## ◆ getNumPreferredPenetrationDirections()

virtual int btConvexShape::getNumPreferredPenetrationDirections | ( |  | ) | const
| pure virtual

Implemented in btUniformScalingShape, btTriangleShape, btConvexInternalShape, btConvex2dShape, btBoxShape, and btBox2dShape.

## ◆ getPreferredPenetrationDirection()

virtual void btConvexShape::getPreferredPenetrationDirection | ( | int | index,
|  | btVector3 & | penetrationVector
| ) |  | const
| pure virtual

Implemented in btUniformScalingShape, btTriangleShape, btConvexInternalShape, btConvex2dShape, btBoxShape, and btBox2dShape.

## ◆ localGetSupportingVertex()

virtual btVector3 btConvexShape::localGetSupportingVertex | ( | const btVector3 & | vec | ) | const
| pure virtual

Implemented in btSoftClusterCollisionShape, btUniformScalingShape, btSphereShape, btCylinderShape, btConvexTriangleMeshShape, btConvexPointCloudShape, btConvexInternalShape, btConvexHullShape, btConvex2dShape, btConeShape, btBoxShape, and btBox2dShape.

## ◆ localGetSupportingVertexWithoutMargin()

virtual btVector3 btConvexShape::localGetSupportingVertexWithoutMargin | ( | const btVector3 & | vec | ) | const
| pure virtual

Implemented in btSoftClusterCollisionShape, btUniformScalingShape, btSphereShape, btPolyhedralConvexShape, btMultiSphereShape, btMinkowskiSumShape, btCylinderShapeZ, btCylinderShapeX, btCylinderShape, btConvexTriangleMeshShape, btConvexPointCloudShape, btConvexHullShape, btConvex2dShape, btConeShape, btCapsuleShape, btBoxShape, btBox2dShape, and btTriangleShape.

## ◆ localGetSupportVertexNonVirtual()

btVector3 btConvexShape::localGetSupportVertexNonVirtual | ( | const btVector3 & | vec | ) | const

Definition at line 307 of file btConvexShape.cpp.

## ◆ localGetSupportVertexWithoutMarginNonVirtual()

btVector3 btConvexShape::localGetSupportVertexWithoutMarginNonVirtual | ( | const btVector3 & | vec | ) | const

Definition at line 131 of file btConvexShape.cpp.

## ◆ project()

void btConvexShape::project | ( | const btTransform & | trans,
|  | const btVector3 & | dir,
|  | btScalar & | minProj,
|  | btScalar & | maxProj,
|  | btVector3 & | witnesPtMin,
|  | btVector3 & | witnesPtMax
| ) |  | const
| virtual

Reimplemented in btConvexHullShape.

Definition at line 49 of file btConvexShape.cpp.

## ◆ setLocalScaling()

virtual void btConvexShape::setLocalScaling | ( | const btVector3 & | scaling | ) |
| pure virtual

Implements btCollisionShape.

Implemented in btUniformScalingShape, btPolyhedralConvexAabbCachingShape, btCylinderShape, btConvexTriangleMeshShape, btConvexPointCloudShape, btConvexInternalAabbCachingShape, btConvexInternalShape, btConvexHullShape, btConvex2dShape, btConeShape, btCapsuleShape, btBoxShape, and btBox2dShape.

## ◆ setMargin()

virtual void btConvexShape::setMargin | ( | btScalar | margin | ) |
| pure virtual

Implements btCollisionShape.

Implemented in btSoftClusterCollisionShape, btUniformScalingShape, btSphereShape, btConvexInternalShape, btConvex2dShape, btCylinderShape, btCapsuleShape, btBoxShape, and btBox2dShape.

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

- btConvexShape.h
- btConvexShape.cpp