Bullet Collision Detection & Physics Library
|
The btConvexHullShape implements an implicit convex hull of an array of vertices. More...
#include <btConvexHullShape.h>
Public Member Functions | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
btConvexHullShape (const btScalar *points=0, int numPoints=0, int stride=sizeof(btVector3)) | |
this constructor optionally takes in a pointer to points. More... | |
void | addPoint (const btVector3 &point, bool recalculateLocalAabb=true) |
btVector3 * | getUnscaledPoints () |
const btVector3 * | getUnscaledPoints () const |
const btVector3 * | getPoints () const |
getPoints is obsolete, please use getUnscaledPoints More... | |
btVector3 | getScaledPoint (int i) const |
int | getNumPoints () const |
virtual btVector3 | localGetSupportingVertex (const btVector3 &vec) const |
virtual btVector3 | localGetSupportingVertexWithoutMargin (const btVector3 &vec) const |
virtual void | batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const |
virtual void | project (const btTransform &trans, const btVector3 &dir, btScalar &minProj, btScalar &maxProj, btVector3 &witnesPtMin, btVector3 &witnesPtMax) const |
virtual const char * | getName () const |
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 bool | isInside (const btVector3 &pt, btScalar tolerance) const |
virtual void | setLocalScaling (const btVector3 &scaling) |
in case we receive negative scaling More... | |
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 btPolyhedralConvexAabbCachingShape | |
btPolyhedralConvexAabbCachingShape () | |
void | getNonvirtualAabb (const btTransform &trans, btVector3 &aabbMin, btVector3 &aabbMax, btScalar margin) const |
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 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... | |
const btConvexPolyhedron * | getConvexPolyhedron () const |
virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const |
Public Member Functions inherited from btConvexInternalShape | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
virtual | ~btConvexInternalShape () |
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 &min, btScalar &max) 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 maximus 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 |
virtual void | serializeSingleShape (btSerializer *serializer) const |
Private Attributes | |
btAlignedObjectArray< btVector3 > | m_unscaledPoints |
Additional Inherited Members | |
Protected Member Functions inherited from btPolyhedralConvexAabbCachingShape | |
void | setCachedLocalAabb (const btVector3 &aabbMin, const btVector3 &aabbMax) |
void | getCachedLocalAabb (btVector3 &aabbMin, btVector3 &aabbMax) const |
Protected Member Functions inherited from btConvexInternalShape | |
btConvexInternalShape () | |
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 |
The btConvexHullShape implements an implicit convex hull of an array of vertices.
Bullet provides a general and fast collision detector for convex shapes based on GJK and EPA using localGetSupportingVertex.
Definition at line 26 of file btConvexHullShape.h.
btConvexHullShape::btConvexHullShape | ( | const btScalar * | points = 0 , |
int | numPoints = 0 , |
||
int | stride = sizeof(btVector3) |
||
) |
this constructor optionally takes in a pointer to points.
Each point is assumed to be 3 consecutive btScalar (x,y,z), the striding defines the number of bytes between each point, in memory. It is easier to not pass any points in the constructor, and just add one point at a time, using addPoint. btConvexHullShape make an internal copy of the points.
Definition at line 26 of file btConvexHullShape.cpp.
void btConvexHullShape::addPoint | ( | const btVector3 & | point, |
bool | recalculateLocalAabb = true |
||
) |
Definition at line 52 of file btConvexHullShape.cpp.
|
virtual |
Reimplemented from btPolyhedralConvexShape.
Definition at line 76 of file btConvexHullShape.cpp.
btConvexHullShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
inlinevirtual |
Reimplemented from btConvexInternalShape.
Definition at line 115 of file btConvexHullShape.h.
Implements btPolyhedralConvexShape.
Definition at line 143 of file btConvexHullShape.cpp.
|
inlinevirtual |
Implements btCollisionShape.
Definition at line 80 of file btConvexHullShape.h.
|
virtual |
Implements btPolyhedralConvexShape.
Definition at line 138 of file btConvexHullShape.cpp.
|
virtual |
Implements btPolyhedralConvexShape.
Definition at line 157 of file btConvexHullShape.cpp.
|
inline |
Definition at line 66 of file btConvexHullShape.h.
|
virtual |
Implements btPolyhedralConvexShape.
Definition at line 133 of file btConvexHullShape.cpp.
|
virtual |
Implements btPolyhedralConvexShape.
Definition at line 162 of file btConvexHullShape.cpp.
|
inline |
getPoints is obsolete, please use getUnscaledPoints
Definition at line 53 of file btConvexHullShape.h.
|
inline |
Definition at line 61 of file btConvexHullShape.h.
|
inline |
Definition at line 42 of file btConvexHullShape.h.
|
inline |
Definition at line 47 of file btConvexHullShape.h.
|
virtual |
Implements btPolyhedralConvexShape.
Definition at line 152 of file btConvexHullShape.cpp.
Implements btPolyhedralConvexShape.
Definition at line 169 of file btConvexHullShape.cpp.
Reimplemented from btConvexInternalShape.
Definition at line 106 of file btConvexHullShape.cpp.
|
virtual |
Reimplemented from btPolyhedralConvexShape.
Definition at line 60 of file btConvexHullShape.cpp.
|
virtual |
Definition at line 209 of file btConvexHullShape.cpp.
|
virtual |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btConvexInternalShape.
Definition at line 176 of file btConvexHullShape.cpp.
|
virtual |
in case we receive negative scaling
Reimplemented from btPolyhedralConvexAabbCachingShape.
Definition at line 46 of file btConvexHullShape.cpp.
|
private |
Definition at line 28 of file btConvexHullShape.h.