Bullet Collision Detection & Physics Library: btConvexShape Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

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
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
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.
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
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)
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
void | setUserPointer (void *userPtr)
| optional user data pointer
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)
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 btBox2dShape, btBoxShape, btCapsuleShape, btConeShape, btConvex2dShape, btConvexHullShape, btConvexPointCloudShape, btConvexTriangleMeshShape, btCylinderShape, btCylinderShapeX, btCylinderShapeZ, btMinkowskiSumShape, btMultiSphereShape, btPolyhedralConvexShape, btSoftClusterCollisionShape, btSphereShape, btTriangleShape, and btUniformScalingShape.

## ◆ 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 btBox2dShape, btBoxShape, btBU_Simplex1to4, btCapsuleShape, btConvex2dShape, btConvexInternalAabbCachingShape, btConvexInternalShape, btCylinderShape, btPolyhedralConvexAabbCachingShape, btSoftClusterCollisionShape, btSphereShape, btTriangleShape, btTriangleShapeEx, and btUniformScalingShape.

## ◆ 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 btConvex2dShape, btConvexInternalShape, and btUniformScalingShape.

## ◆ getLocalScaling()

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

Implements btCollisionShape.

Implemented in btConvex2dShape, btConvexInternalShape, btConvexTriangleMeshShape, and btUniformScalingShape.

## ◆ getMargin()

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

Implements btCollisionShape.

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

## ◆ getMarginNonVirtual()

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

Definition at line 320 of file btConvexShape.cpp.

## ◆ getNumPreferredPenetrationDirections()

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

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

## ◆ getPreferredPenetrationDirection()

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

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

## ◆ localGetSupportingVertex()

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

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

## ◆ localGetSupportingVertexWithoutMargin()

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

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

## ◆ 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 btBox2dShape, btBoxShape, btCapsuleShape, btConeShape, btConvex2dShape, btConvexHullShape, btConvexInternalAabbCachingShape, btConvexInternalShape, btConvexPointCloudShape, btConvexTriangleMeshShape, btCylinderShape, btPolyhedralConvexAabbCachingShape, and btUniformScalingShape.

## ◆ setMargin()

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

Implements btCollisionShape.

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

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

- btConvexShape.h
- btConvexShape.cpp