Blender V2.61 - r43446
Classes | Protected Member Functions | Protected Attributes

btGImpactCollisionAlgorithm Class Reference

Collision Algorithm for GImpact Shapes. More...

#include <btGImpactCollisionAlgorithm.h>

Inheritance diagram for btGImpactCollisionAlgorithm:
Inheritance graph
[legend]

List of all members.

Classes

struct  CreateFunc

Protected Member Functions

SIMD_FORCE_INLINE
btPersistentManifold * 
newContactManifold (btCollisionObject *body0, btCollisionObject *body1)
 Creates a new contact point.
SIMD_FORCE_INLINE void destroyConvexAlgorithm ()
SIMD_FORCE_INLINE void destroyContactManifolds ()
SIMD_FORCE_INLINE void clearCache ()
SIMD_FORCE_INLINE
btPersistentManifold * 
getLastManifold ()
SIMD_FORCE_INLINE void checkManifold (btCollisionObject *body0, btCollisionObject *body1)
SIMD_FORCE_INLINE
btCollisionAlgorithm
newAlgorithm (btCollisionObject *body0, btCollisionObject *body1)
SIMD_FORCE_INLINE void checkConvexAlgorithm (btCollisionObject *body0, btCollisionObject *body1)
void addContactPoint (btCollisionObject *body0, btCollisionObject *body1, const btVector3 &point, const btVector3 &normal, btScalar distance)

Protected Attributes

btCollisionAlgorithmm_convex_algorithm
btPersistentManifold * m_manifoldPtr
btManifoldResultm_resultOut
const btDispatcherInfom_dispatchInfo
int m_triface0
int m_part0
int m_triface1
int m_part1

void collide_gjk_triangles (btCollisionObject *body0, btCollisionObject *body1, btGImpactMeshShapePart *shape0, btGImpactMeshShapePart *shape1, const int *pairs, int pair_count)
void collide_sat_triangles (btCollisionObject *body0, btCollisionObject *body1, btGImpactMeshShapePart *shape0, btGImpactMeshShapePart *shape1, const int *pairs, int pair_count)
void shape_vs_shape_collision (btCollisionObject *body0, btCollisionObject *body1, btCollisionShape *shape0, btCollisionShape *shape1)
void convex_vs_convex_collision (btCollisionObject *body0, btCollisionObject *body1, btCollisionShape *shape0, btCollisionShape *shape1)
void gimpact_vs_gimpact_find_pairs (const btTransform &trans0, const btTransform &trans1, btGImpactShapeInterface *shape0, btGImpactShapeInterface *shape1, btPairSet &pairset)
void gimpact_vs_shape_find_pairs (const btTransform &trans0, const btTransform &trans1, btGImpactShapeInterface *shape0, btCollisionShape *shape1, btAlignedObjectArray< int > &collided_primitives)
void gimpacttrimeshpart_vs_plane_collision (btCollisionObject *body0, btCollisionObject *body1, btGImpactMeshShapePart *shape0, btStaticPlaneShape *shape1, bool swapped)
 btGImpactCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci, btCollisionObject *body0, btCollisionObject *body1)
virtual ~btGImpactCollisionAlgorithm ()
virtual void processCollision (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
btScalar calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual void getAllContactManifolds (btManifoldArray &manifoldArray)
void gimpact_vs_gimpact (btCollisionObject *body0, btCollisionObject *body1, btGImpactShapeInterface *shape0, btGImpactShapeInterface *shape1)
 Collides two gimpact shapes.
void gimpact_vs_shape (btCollisionObject *body0, btCollisionObject *body1, btGImpactShapeInterface *shape0, btCollisionShape *shape1, bool swapped)
void gimpact_vs_compoundshape (btCollisionObject *body0, btCollisionObject *body1, btGImpactShapeInterface *shape0, btCompoundShape *shape1, bool swapped)
void gimpact_vs_concave (btCollisionObject *body0, btCollisionObject *body1, btGImpactShapeInterface *shape0, btConcaveShape *shape1, bool swapped)
void setFace0 (int value)
 Accessor/Mutator pairs for Part and triangleID.
int getFace0 ()
void setFace1 (int value)
int getFace1 ()
void setPart0 (int value)
int getPart0 ()
void setPart1 (int value)
int getPart1 ()
static void registerAlgorithm (btCollisionDispatcher *dispatcher)
 Use this function for register the algorithm externally.

Detailed Description

Collision Algorithm for GImpact Shapes.

For register this algorithm in Bullet, proceed as following:

btCollisionDispatcher * dispatcher = static_cast<btCollisionDispatcher *>(m_dynamicsWorld ->getDispatcher());
btGImpactCollisionAlgorithm::registerAlgorithm(dispatcher);

Definition at line 54 of file btGImpactCollisionAlgorithm.h.


Constructor & Destructor Documentation

btGImpactCollisionAlgorithm::btGImpactCollisionAlgorithm ( const btCollisionAlgorithmConstructionInfo ci,
btCollisionObject *  body0,
btCollisionObject *  body1 
)
btGImpactCollisionAlgorithm::~btGImpactCollisionAlgorithm ( ) [virtual]

Collision routines

Definition at line 203 of file btGImpactCollisionAlgorithm.cpp.

References clearCache().


Member Function Documentation

void btGImpactCollisionAlgorithm::addContactPoint ( btCollisionObject *  body0,
btCollisionObject *  body1,
const btVector3 &  point,
const btVector3 &  normal,
btScalar  distance 
) [protected]
btScalar btGImpactCollisionAlgorithm::calculateTimeOfImpact ( btCollisionObject *  body0,
btCollisionObject *  body1,
const btDispatcherInfo dispatchInfo,
btManifoldResult resultOut 
) [virtual]

Collision routines

Implements btCollisionAlgorithm.

Definition at line 876 of file btGImpactCollisionAlgorithm.cpp.

SIMD_FORCE_INLINE void btGImpactCollisionAlgorithm::checkConvexAlgorithm ( btCollisionObject *  body0,
btCollisionObject *  body1 
) [inline, protected]

Definition at line 130 of file btGImpactCollisionAlgorithm.h.

References m_convex_algorithm, and newAlgorithm().

Referenced by convex_vs_convex_collision().

SIMD_FORCE_INLINE void btGImpactCollisionAlgorithm::checkManifold ( btCollisionObject *  body0,
btCollisionObject *  body1 
) [inline, protected]
SIMD_FORCE_INLINE void btGImpactCollisionAlgorithm::clearCache ( ) [inline, protected]
void btGImpactCollisionAlgorithm::collide_gjk_triangles ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactMeshShapePart shape0,
btGImpactMeshShapePart shape1,
const int *  pairs,
int  pair_count 
) [protected]
void btGImpactCollisionAlgorithm::collide_sat_triangles ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactMeshShapePart shape0,
btGImpactMeshShapePart shape1,
const int *  pairs,
int  pair_count 
) [protected]
void btGImpactCollisionAlgorithm::convex_vs_convex_collision ( btCollisionObject *  body0,
btCollisionObject *  body1,
btCollisionShape shape0,
btCollisionShape shape1 
) [protected]
SIMD_FORCE_INLINE void btGImpactCollisionAlgorithm::destroyContactManifolds ( ) [inline, protected]
SIMD_FORCE_INLINE void btGImpactCollisionAlgorithm::destroyConvexAlgorithm ( ) [inline, protected]
virtual void btGImpactCollisionAlgorithm::getAllContactManifolds ( btManifoldArray manifoldArray) [inline, virtual]

Collision routines

Implements btCollisionAlgorithm.

Definition at line 207 of file btGImpactCollisionAlgorithm.h.

References m_manifoldPtr, and btAlignedObjectArray< T >::push_back().

int btGImpactCollisionAlgorithm::getFace0 ( ) [inline]

Collision routines

Definition at line 268 of file btGImpactCollisionAlgorithm.h.

References m_triface0.

int btGImpactCollisionAlgorithm::getFace1 ( ) [inline]

Collision routines

Definition at line 276 of file btGImpactCollisionAlgorithm.h.

References m_triface1.

SIMD_FORCE_INLINE btPersistentManifold* btGImpactCollisionAlgorithm::getLastManifold ( ) [inline, protected]

Definition at line 102 of file btGImpactCollisionAlgorithm.h.

References m_manifoldPtr.

Referenced by checkManifold(), and newAlgorithm().

int btGImpactCollisionAlgorithm::getPart0 ( ) [inline]

Collision routines

Definition at line 284 of file btGImpactCollisionAlgorithm.h.

References m_part0.

int btGImpactCollisionAlgorithm::getPart1 ( ) [inline]

Collision routines

Definition at line 292 of file btGImpactCollisionAlgorithm.h.

References m_part1.

void btGImpactCollisionAlgorithm::gimpact_vs_compoundshape ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactShapeInterface shape0,
btCompoundShape *  shape1,
bool  swapped 
)

Collision routines

Definition at line 694 of file btGImpactCollisionAlgorithm.cpp.

References gimpact_vs_shape(), and i.

Referenced by gimpact_vs_shape().

void btGImpactCollisionAlgorithm::gimpact_vs_concave ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactShapeInterface shape0,
btConcaveShape shape1,
bool  swapped 
)
void btGImpactCollisionAlgorithm::gimpact_vs_gimpact ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactShapeInterface shape0,
btGImpactShapeInterface shape1 
)
void btGImpactCollisionAlgorithm::gimpact_vs_gimpact_find_pairs ( const btTransform trans0,
const btTransform trans1,
btGImpactShapeInterface shape0,
btGImpactShapeInterface shape1,
btPairSet pairset 
) [protected]
void btGImpactCollisionAlgorithm::gimpact_vs_shape ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactShapeInterface shape0,
btCollisionShape shape1,
bool  swapped 
)
void btGImpactCollisionAlgorithm::gimpact_vs_shape_find_pairs ( const btTransform trans0,
const btTransform trans1,
btGImpactShapeInterface shape0,
btCollisionShape shape1,
btAlignedObjectArray< int > &  collided_primitives 
) [protected]
void btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision ( btCollisionObject *  body0,
btCollisionObject *  body1,
btGImpactMeshShapePart shape0,
btStaticPlaneShape *  shape1,
bool  swapped 
) [protected]
SIMD_FORCE_INLINE btCollisionAlgorithm* btGImpactCollisionAlgorithm::newAlgorithm ( btCollisionObject *  body0,
btCollisionObject *  body1 
) [inline, protected]
SIMD_FORCE_INLINE btPersistentManifold* btGImpactCollisionAlgorithm::newContactManifold ( btCollisionObject *  body0,
btCollisionObject *  body1 
) [inline, protected]

Creates a new contact point.

Definition at line 68 of file btGImpactCollisionAlgorithm.h.

References btDispatcher::getNewManifold(), btCollisionAlgorithm::m_dispatcher, and m_manifoldPtr.

Referenced by checkManifold().

void btGImpactCollisionAlgorithm::processCollision ( btCollisionObject *  body0,
btCollisionObject *  body1,
const btDispatcherInfo dispatchInfo,
btManifoldResult resultOut 
) [virtual]
void btGImpactCollisionAlgorithm::registerAlgorithm ( btCollisionDispatcher dispatcher) [static]

Use this function for register the algorithm externally.

Definition at line 887 of file btGImpactCollisionAlgorithm.cpp.

References GIMPACT_SHAPE_PROXYTYPE, i, MAX_BROADPHASE_COLLISION_TYPES, and btCollisionDispatcher::registerCollisionCreateFunc().

Referenced by CcdPhysicsEnvironment::CcdPhysicsEnvironment().

void btGImpactCollisionAlgorithm::setFace0 ( int  value) [inline]

Accessor/Mutator pairs for Part and triangleID.

Definition at line 264 of file btGImpactCollisionAlgorithm.h.

References m_triface0.

Referenced by btGImpactTriangleCallback::processTriangle().

void btGImpactCollisionAlgorithm::setFace1 ( int  value) [inline]

Collision routines

Definition at line 272 of file btGImpactCollisionAlgorithm.h.

References m_triface1.

Referenced by btGImpactTriangleCallback::processTriangle().

void btGImpactCollisionAlgorithm::setPart0 ( int  value) [inline]

Collision routines

Definition at line 280 of file btGImpactCollisionAlgorithm.h.

References m_part0.

Referenced by btGImpactTriangleCallback::processTriangle().

void btGImpactCollisionAlgorithm::setPart1 ( int  value) [inline]

Collision routines

Definition at line 288 of file btGImpactCollisionAlgorithm.h.

References m_part1.

Referenced by btGImpactTriangleCallback::processTriangle().

void btGImpactCollisionAlgorithm::shape_vs_shape_collision ( btCollisionObject *  body0,
btCollisionObject *  body1,
btCollisionShape shape0,
btCollisionShape shape1 
) [protected]

Member Data Documentation

btPersistentManifold* btGImpactCollisionAlgorithm::m_manifoldPtr [protected]

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