btPersistentManifold.h File Reference

#include "LinearMath/btVector3.h"
#include "LinearMath/btTransform.h"
#include "btManifoldPoint.h"
#include "LinearMath/btAlignedAllocator.h"
Include dependency graph for btPersistentManifold.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define MAINTAIN_PERSISTENCY   1
#define MANIFOLD_CACHE_SIZE   4

Typedefs

typedef bool(* ContactDestroyedCallback )(void *userPersistentData)
typedef bool(* ContactProcessedCallback )(btManifoldPoint &cp, void *body0, void *body1)

Enumerations

enum  btContactManifoldTypes { BT_PERSISTENT_MANIFOLD_TYPE = 1, MAX_CONTACT_MANIFOLD_TYPE }

Functions

 ATTRIBUTE_ALIGNED16 (class) btPersistentManifold

Variables

btScalar gContactBreakingThreshold
 maximum contact breaking and merging threshold
ContactDestroyedCallback gContactDestroyedCallback
ContactProcessedCallback gContactProcessedCallback

Define Documentation

#define MAINTAIN_PERSISTENCY   1
#define MANIFOLD_CACHE_SIZE   4

Definition at line 42 of file btPersistentManifold.h.


Typedef Documentation

typedef bool(* ContactDestroyedCallback)(void *userPersistentData)

Definition at line 30 of file btPersistentManifold.h.

typedef bool(* ContactProcessedCallback)(btManifoldPoint &cp, void *body0, void *body1)

Definition at line 31 of file btPersistentManifold.h.


Enumeration Type Documentation

Enumerator:
BT_PERSISTENT_MANIFOLD_TYPE 
MAX_CONTACT_MANIFOLD_TYPE 

Definition at line 36 of file btPersistentManifold.h.


Function Documentation

ATTRIBUTE_ALIGNED16 ( class   ) 

btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping in the broadphase. Those contact points are created by the collision narrow phase. The cache can be empty, or hold 1,2,3 or 4 points. Some collision algorithms (GJK) might only add one point at a time. updates/refreshes old contact points, and throw them away if necessary (distance becomes too large) reduces the cache to 4 points, when more then 4 points are added, using following rules: the contact point with deepest penetration is always kept, and it tries to maximuze the area covered by the points note that some pairs of objects might have more then one contact manifold.

this two body pointers can point to the physics rigidbody class. void* will allow any rigidbody class

sort cached points so most isolated points come first

Todo:
: get this margin from the current physics / collision environment

calculated new worldspace coordinates and depth, and reject points that exceed the collision margin

Definition at line 51 of file btPersistentManifold.h.


Variable Documentation

maximum contact breaking and merging threshold

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


bullet
Author(s): Erwin Coumans, ROS package maintained by Tully Foote
autogenerated on Fri Jan 11 10:10:40 2013