Bullet Collision Detection & Physics Library: btBU_Simplex1to4 Class Reference

Bullet Collision Detection & Physics Library

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

The btBU_Simplex1to4 implements tetrahedron, triangle, line, vertex collision shapes. In most cases it is better to use btConvexHullShape instead. More...

`#include <btTetrahedronShape.h>`

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

## Public Member Functions
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btBU_Simplex1to4 ()
| btBU_Simplex1to4 (const btVector3 &pt0)
| btBU_Simplex1to4 (const btVector3 &pt0, const btVector3 &pt1)
| btBU_Simplex1to4 (const btVector3 &pt0, const btVector3 &pt1, const btVector3 &pt2)
| btBU_Simplex1to4 (const btVector3 &pt0, const btVector3 &pt1, const btVector3 &pt2, const btVector3 &pt3)
void | reset ()
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 | addVertex (const btVector3 &pt)
virtual int | getNumVertices () const
virtual int | getNumEdges () const
virtual void | getEdge (int i, btVector3 &pa, btVector3 &pb) const
virtual void | getVertex (int i, btVector3 &vtx) const
virtual int | getNumPlanes () const
virtual void | getPlane (btVector3 &planeNormal, btVector3 &planeSupport, int i) const
virtual int | getIndex (int i) const
virtual bool | isInside (const btVector3 &pt, btScalar tolerance) const
virtual const char * | getName () const
| getName is for debugging More...
Public Member Functions inherited from btPolyhedralConvexAabbCachingShape
void | getNonvirtualAabb (const btTransform &trans, btVector3 &aabbMin, btVector3 &aabbMax, btScalar margin) const
virtual void | setLocalScaling (const btVector3 &scaling)
void | recalcLocalAabb ()
Public Member Functions inherited from btPolyhedralConvexShape
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btPolyhedralConvexShape ()
virtual | ~btPolyhedralConvexShape ()
virtual bool | initializePolyhedralFeatures (int shiftVerticesByMargin=0)
| optional method mainly used to generate multiple contact points by clipping polyhedral features (faces/edges) experimental/work-in-progress More...
virtual void | setPolyhedralFeatures (btConvexPolyhedron &polyhedron)
const btConvexPolyhedron * | getConvexPolyhedron () const
virtual btVector3 | localGetSupportingVertexWithoutMargin (const btVector3 &vec) const
virtual void | batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const
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
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 ()
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 &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...
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 void | serializeSingleShape (btSerializer *serializer) const

## Protected Attributes
int | m_numVertices
btVector3 | m_vertices [4]
Protected Attributes inherited from btPolyhedralConvexShape
btConvexPolyhedron * | m_polyhedron
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
int | m_userIndex2

## Additional Inherited Members
Protected Member Functions inherited from btPolyhedralConvexAabbCachingShape
void | setCachedLocalAabb (const btVector3 &aabbMin, const btVector3 &aabbMax)
void | getCachedLocalAabb (btVector3 &aabbMin, btVector3 &aabbMax) const
| btPolyhedralConvexAabbCachingShape ()
Protected Member Functions inherited from btConvexInternalShape
| btConvexInternalShape ()

## Detailed Description

The btBU_Simplex1to4 implements tetrahedron, triangle, line, vertex collision shapes. In most cases it is better to use btConvexHullShape instead.

Definition at line 23 of file btTetrahedronShape.h.

## Constructor & Destructor Documentation

## ◆ btBU_Simplex1to4() [1/5]

btBU_Simplex1to4::btBU_Simplex1to4 | ( |  | ) |

Definition at line 19 of file btTetrahedronShape.cpp.

## ◆ btBU_Simplex1to4() [2/5]

btBU_Simplex1to4::btBU_Simplex1to4 | ( | const btVector3 & | pt0 | ) |

Definition at line 25 of file btTetrahedronShape.cpp.

## ◆ btBU_Simplex1to4() [3/5]

btBU_Simplex1to4::btBU_Simplex1to4 | ( | const btVector3 & | pt0,
|  | const btVector3 & | pt1
| ) |  |

Definition at line 32 of file btTetrahedronShape.cpp.

## ◆ btBU_Simplex1to4() [4/5]

btBU_Simplex1to4::btBU_Simplex1to4 | ( | const btVector3 & | pt0,
|  | const btVector3 & | pt1,
|  | const btVector3 & | pt2
| ) |  |

Definition at line 40 of file btTetrahedronShape.cpp.

## ◆ btBU_Simplex1to4() [5/5]

btBU_Simplex1to4::btBU_Simplex1to4 | ( | const btVector3 & | pt0,
|  | const btVector3 & | pt1,
|  | const btVector3 & | pt2,
|  | const btVector3 & | pt3
| ) |  |

Definition at line 49 of file btTetrahedronShape.cpp.

## Member Function Documentation

## ◆ addVertex()

void btBU_Simplex1to4::addVertex | ( | const btVector3 & | pt | ) |

Definition at line 77 of file btTetrahedronShape.cpp.

## ◆ BT_DECLARE_ALIGNED_ALLOCATOR()

btBU_Simplex1to4::BT_DECLARE_ALIGNED_ALLOCATOR | ( |  | ) |

## ◆ getAabb()

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

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

Reimplemented from btPolyhedralConvexAabbCachingShape.

Definition at line 59 of file btTetrahedronShape.cpp.

## ◆ getEdge()

void btBU_Simplex1to4::getEdge | ( | int | i,
|  | btVector3 & | pa,
|  | btVector3 & | pb
| ) |  | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 109 of file btTetrahedronShape.cpp.

## ◆ getIndex()

int btBU_Simplex1to4::getIndex | ( | int | i | ) | const
| virtual

Definition at line 195 of file btTetrahedronShape.cpp.

## ◆ getName()

virtual const char* btBU_Simplex1to4::getName | ( |  | ) | const
| inlinevirtual

getName is for debugging

Implements btCollisionShape.

Definition at line 68 of file btTetrahedronShape.h.

## ◆ getNumEdges()

int btBU_Simplex1to4::getNumEdges | ( |  | ) | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 88 of file btTetrahedronShape.cpp.

## ◆ getNumPlanes()

int btBU_Simplex1to4::getNumPlanes | ( |  | ) | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 170 of file btTetrahedronShape.cpp.

## ◆ getNumVertices()

int btBU_Simplex1to4::getNumVertices | ( |  | ) | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 83 of file btTetrahedronShape.cpp.

## ◆ getPlane()

void btBU_Simplex1to4::getPlane | ( | btVector3 & | planeNormal,
|  | btVector3 & | planeSupport,
|  | int | i
| ) |  | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 191 of file btTetrahedronShape.cpp.

## ◆ getVertex()

void btBU_Simplex1to4::getVertex | ( | int | i,
|  | btVector3 & | vtx
| ) |  | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 165 of file btTetrahedronShape.cpp.

## ◆ isInside()

bool btBU_Simplex1to4::isInside | ( | const btVector3 & | pt,
|  | btScalar | tolerance
| ) |  | const
| virtual

Implements btPolyhedralConvexShape.

Definition at line 200 of file btTetrahedronShape.cpp.

## ◆ reset()

void btBU_Simplex1to4::reset | ( |  | ) |
| inline

Definition at line 40 of file btTetrahedronShape.h.

## Member Data Documentation

## ◆ m_numVertices

int btBU_Simplex1to4::m_numVertices
| protected

Definition at line 27 of file btTetrahedronShape.h.

## ◆ m_vertices

btVector3 btBU_Simplex1to4::m_vertices[4]
| protected

Definition at line 28 of file btTetrahedronShape.h.

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

- btTetrahedronShape.h
- btTetrahedronShape.cpp