Bullet Collision Detection & Physics Library: btConvexInternalShape Class Reference

Bullet Collision Detection & Physics Library

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
btConvexInternalShape Class Reference

The btConvexInternalShape is an internal base class, shared by most convex shape implementations. More...

`#include <btConvexInternalShape.h>`

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

## 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 | 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
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
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

## Detailed Description

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.

## Constructor & Destructor Documentation

## § btConvexInternalShape()

btConvexInternalShape::btConvexInternalShape | ( |  | ) |
| protected

Definition at line 21 of file btConvexInternalShape.cpp.

## § ~btConvexInternalShape()

virtual btConvexInternalShape::~btConvexInternalShape | ( |  | ) |
| inlinevirtual

Definition at line 49 of file btConvexInternalShape.h.

## Member Function Documentation

## § BT_DECLARE_ALIGNED_ALLOCATOR()

btConvexInternalShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( |  | ) |

## § calculateSerializeBufferSize()

int btConvexInternalShape::calculateSerializeBufferSize | ( |  | ) | const
| inlinevirtual

Reimplemented from btCollisionShape.

Reimplemented in btCylinderShape, btCapsuleShape, btConeShape, btConvexHullShape, and btMultiSphereShape.

Definition at line 160 of file btConvexInternalShape.h.

## § getAabb()

void btConvexInternalShape::getAabb | ( | const btTransform & | t,
|  | btVector3 & | aabbMin,
|  | btVector3 & | aabbMax
| ) |  | const
| inlinevirtual

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

Implements btConvexShape.

Reimplemented in btConvexInternalAabbCachingShape, btTriangleShapeEx, btSoftClusterCollisionShape, btPolyhedralConvexAabbCachingShape, btTriangleShape, btCylinderShape, btBU_Simplex1to4, and btSphereShape.

Definition at line 88 of file btConvexInternalShape.h.

## § getAabbSlow()

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

Implements btConvexShape.

Definition at line 35 of file btConvexInternalShape.cpp.

## § getImplicitShapeDimensions()

const btVector3& btConvexInternalShape::getImplicitShapeDimensions | ( |  | ) | const
| inline

Definition at line 56 of file btConvexInternalShape.h.

## § getLocalScaling()

virtual const btVector3& btConvexInternalShape::getLocalScaling | ( |  | ) | const
| inlinevirtual

Implements btConvexShape.

Reimplemented in btConvexTriangleMeshShape.

Definition at line 99 of file btConvexInternalShape.h.

## § getLocalScalingNV()

const btVector3& btConvexInternalShape::getLocalScalingNV | ( |  | ) | const
| inline

Definition at line 104 of file btConvexInternalShape.h.

## § getMargin()

virtual btScalar btConvexInternalShape::getMargin | ( |  | ) | const
| inlinevirtual

Implements btConvexShape.

Reimplemented in btSoftClusterCollisionShape, btSphereShape, and btMinkowskiSumShape.

Definition at line 113 of file btConvexInternalShape.h.

## § getMarginNV()

btScalar btConvexInternalShape::getMarginNV | ( |  | ) | const
| inline

Definition at line 118 of file btConvexInternalShape.h.

## § getNumPreferredPenetrationDirections()

virtual int btConvexInternalShape::getNumPreferredPenetrationDirections | ( |  | ) | const
| inlinevirtual

Implements btConvexShape.

Reimplemented in btBox2dShape, btBoxShape, and btTriangleShape.

Definition at line 123 of file btConvexInternalShape.h.

## § getPreferredPenetrationDirection()

virtual void btConvexInternalShape::getPreferredPenetrationDirection | ( | int | index,
|  | btVector3 & | penetrationVector
| ) |  | const
| inlinevirtual

Implements btConvexShape.

Reimplemented in btBox2dShape, btBoxShape, and btTriangleShape.

Definition at line 128 of file btConvexInternalShape.h.

## § localGetSupportingVertex()

btVector3 btConvexInternalShape::localGetSupportingVertex | ( | const btVector3 & | vec | ) | const
| virtual

Implements btConvexShape.

Reimplemented in btSoftClusterCollisionShape, btConvexPointCloudShape, btCylinderShape, btConvexHullShape, btBox2dShape, btBoxShape, btConvexTriangleMeshShape, btConeShape, and btSphereShape.

Definition at line 58 of file btConvexInternalShape.cpp.

## § serialize()

const char * btConvexInternalShape::serialize | ( | void * | dataBuffer,
|  | btSerializer * | serializer
| ) |  | const
| inlinevirtual

fills the dataBuffer and returns the struct name (and 0 on failure)

Reimplemented from btCollisionShape.

Reimplemented in btCylinderShape, btCapsuleShape, btConeShape, btConvexHullShape, and btMultiSphereShape.

Definition at line 166 of file btConvexInternalShape.h.

## § setImplicitShapeDimensions()

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.

## § setLocalScaling()

void btConvexInternalShape::setLocalScaling | ( | const btVector3 & | scaling | ) |
| virtual

Implements btConvexShape.

Reimplemented in btConvexInternalAabbCachingShape, btBox2dShape, btCylinderShape, btPolyhedralConvexAabbCachingShape, btConeShape, btConvexPointCloudShape, btBoxShape, btConvexHullShape, btCapsuleShape, and btConvexTriangleMeshShape.

Definition at line 28 of file btConvexInternalShape.cpp.

## § setMargin()

virtual void btConvexInternalShape::setMargin | ( | btScalar | margin | ) |
| inlinevirtual

Implements btConvexShape.

Reimplemented in btSoftClusterCollisionShape, btBox2dShape, btBoxShape, btCylinderShape, btSphereShape, and btCapsuleShape.

Definition at line 109 of file btConvexInternalShape.h.

## § setSafeMargin() [1/2]

void btConvexInternalShape::setSafeMargin | ( | btScalar | minDimension,
|  | btScalar | defaultMarginMultiplier = `0.1f`
| ) |  |
| inline

Definition at line 70 of file btConvexInternalShape.h.

## § setSafeMargin() [2/2]

void btConvexInternalShape::setSafeMargin | ( | const btVector3 & | halfExtents,
|  | btScalar | defaultMarginMultiplier = `0.1f`
| ) |  |
| inline

Definition at line 78 of file btConvexInternalShape.h.

## Member Data Documentation

## § m_collisionMargin

btScalar btConvexInternalShape::m_collisionMargin
| protected

Definition at line 39 of file btConvexInternalShape.h.

## § m_implicitShapeDimensions

btVector3 btConvexInternalShape::m_implicitShapeDimensions
| protected

Definition at line 37 of file btConvexInternalShape.h.

## § m_localScaling

btVector3 btConvexInternalShape::m_localScaling
| protected

Definition at line 35 of file btConvexInternalShape.h.

## § m_padding

btScalar btConvexInternalShape::m_padding
| protected

Definition at line 41 of file btConvexInternalShape.h.

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

- btConvexInternalShape.h
- btConvexInternalShape.cpp