Blender V2.61 - r43446
|
#include "LinearMath/btVector3.h"
#include "LinearMath/btTransform.h"
#include "btManifoldPoint.h"
#include "LinearMath/btAlignedAllocator.h"
Go to the source code of this file.
Defines | |
#define | MANIFOLD_CACHE_SIZE 4 |
#define | MAINTAIN_PERSISTENCY 1 |
Typedefs | |
typedef bool(* | ContactDestroyedCallback )(void *userPersistentData) |
typedef bool(* | ContactProcessedCallback )(btManifoldPoint &cp, void *body0, void *body1) |
Enumerations | |
enum | btContactManifoldTypes { MIN_CONTACT_MANIFOLD_TYPE = 1024, BT_PERSISTENT_MANIFOLD_TYPE } |
Functions | |
ATTRIBUTE_ALIGNED128 (class) btPersistentManifold | |
Variables | |
btScalar | gContactBreakingThreshold |
maximum contact breaking and merging threshold | |
ContactDestroyedCallback | gContactDestroyedCallback |
ContactProcessedCallback | gContactProcessedCallback |
#define MAINTAIN_PERSISTENCY 1 |
#define MANIFOLD_CACHE_SIZE 4 |
Definition at line 42 of file btPersistentManifold.h.
Referenced by ATTRIBUTE_ALIGNED128().
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.
Definition at line 36 of file btPersistentManifold.h.
ATTRIBUTE_ALIGNED128 | ( | 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
calculated new worldspace coordinates and depth, and reject points that exceed the collision margin
Definition at line 53 of file btPersistentManifold.h.
References BT_DECLARE_ALIGNED_ALLOCATOR, BT_PERSISTENT_MANIFOLD_TYPE, btAssert, btManifoldPoint::getLifeTime(), i, btManifoldPoint::m_appliedImpulse, btManifoldPoint::m_appliedImpulseLateral1, btManifoldPoint::m_appliedImpulseLateral2, btManifoldPoint::m_distance1, btManifoldPoint::m_lateralFrictionInitialized, btManifoldPoint::m_lifeTime, btManifoldPoint::m_userPersistentData, MANIFOLD_CACHE_SIZE, btManifoldPoint::mConstraintRow, and SIMD_FORCE_INLINE.
maximum contact breaking and merging threshold
Definition at line 21 of file btPersistentManifold.cpp.
Definition at line 22 of file btPersistentManifold.cpp.
Definition at line 23 of file btPersistentManifold.cpp.