Bullet Collision Detection & Physics Library: btCompoundCollisionAlgorithm Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
btCompoundCollisionAlgorithm Class Reference

btCompoundCollisionAlgorithm supports collision between CompoundCollisionShapes and other collision shapes More...

`#include <btCompoundCollisionAlgorithm.h>`

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

## Classes
struct | CreateFunc
struct | SwappedCreateFunc

## Public Member Functions
| btCompoundCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
virtual | ~btCompoundCollisionAlgorithm ()
btCollisionAlgorithm * | getChildAlgorithm (int n) const
virtual void | processCollision (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
btScalar | calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual void | getAllContactManifolds (btManifoldArray &manifoldArray)
Public Member Functions inherited from btActivatingCollisionAlgorithm
virtual | ~btActivatingCollisionAlgorithm ()
Public Member Functions inherited from btCollisionAlgorithm
| btCollisionAlgorithm ()
| btCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
virtual | ~btCollisionAlgorithm ()
virtual void | processCollision (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)=0
virtual btScalar | calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)=0
virtual void | getAllContactManifolds (btManifoldArray &manifoldArray)=0

## Protected Member Functions
void | removeChildAlgorithms ()
void | preallocateChildAlgorithms (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
Protected Member Functions inherited from btActivatingCollisionAlgorithm
| btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
| btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)

## Protected Attributes
btAlignedObjectArray< btCollisionAlgorithm * > | m_childCollisionAlgorithms
bool | m_isSwapped
class btPersistentManifold * | m_sharedManifold
bool | m_ownsManifold
int | m_compoundShapeRevision
Protected Attributes inherited from btCollisionAlgorithm
btDispatcher * | m_dispatcher

## Private Attributes
btNodeStack | stack2
btManifoldArray | manifoldArray

## Detailed Description

btCompoundCollisionAlgorithm supports collision between CompoundCollisionShapes and other collision shapes

Definition at line 38 of file btCompoundCollisionAlgorithm.h.

## Constructor & Destructor Documentation

## ◆ btCompoundCollisionAlgorithm()

btCompoundCollisionAlgorithm::btCompoundCollisionAlgorithm | ( | const btCollisionAlgorithmConstructionInfo & | ci,
|  | const btCollisionObjectWrapper * | body0Wrap,
|  | const btCollisionObjectWrapper * | body1Wrap,
|  | bool | isSwapped
| ) |  |

Definition at line 28 of file btCompoundCollisionAlgorithm.cpp.

## ◆ ~btCompoundCollisionAlgorithm()

btCompoundCollisionAlgorithm::~btCompoundCollisionAlgorithm | ( |  | ) |
| virtual

Definition at line 89 of file btCompoundCollisionAlgorithm.cpp.

## Member Function Documentation

## ◆ calculateTimeOfImpact()

btScalar btCompoundCollisionAlgorithm::calculateTimeOfImpact | ( | btCollisionObject * | body0,
|  | btCollisionObject * | body1,
|  | const btDispatcherInfo & | dispatchInfo,
|  | btManifoldResult * | resultOut
| ) |  |
| virtual

Implements btCollisionAlgorithm.

Reimplemented in btCompoundCompoundCollisionAlgorithm.

Definition at line 343 of file btCompoundCollisionAlgorithm.cpp.

## ◆ getAllContactManifolds()

virtual void btCompoundCollisionAlgorithm::getAllContactManifolds | ( | btManifoldArray & | manifoldArray | ) |
| inlinevirtual

Implements btCollisionAlgorithm.

Reimplemented in btCompoundCompoundCollisionAlgorithm.

Definition at line 70 of file btCompoundCollisionAlgorithm.h.

## ◆ getChildAlgorithm()

btCollisionAlgorithm * btCompoundCollisionAlgorithm::getChildAlgorithm | ( | int | n | ) | const
| inline

Definition at line 61 of file btCompoundCollisionAlgorithm.h.

## ◆ preallocateChildAlgorithms()

void btCompoundCollisionAlgorithm::preallocateChildAlgorithms | ( | const btCollisionObjectWrapper * | body0Wrap,
|  | const btCollisionObjectWrapper * | body1Wrap
| ) |  |
| protected

Definition at line 44 of file btCompoundCollisionAlgorithm.cpp.

## ◆ processCollision()

void btCompoundCollisionAlgorithm::processCollision | ( | const btCollisionObjectWrapper * | body0Wrap,
|  | const btCollisionObjectWrapper * | body1Wrap,
|  | const btDispatcherInfo & | dispatchInfo,
|  | btManifoldResult * | resultOut
| ) |  |
| virtual

btCompoundShape might have changed: /make sure the internal child collision algorithm caches are still valid

clear and update all

we need to refresh all contact manifolds note that we should actually recursively traverse all children, btCompoundShape can nested more then 1 level deep so we should add a 'refreshManifolds' in the btCollisionAlgorithm

Implements btCollisionAlgorithm.

Reimplemented in btCompoundCompoundCollisionAlgorithm.

Definition at line 230 of file btCompoundCollisionAlgorithm.cpp.

## ◆ removeChildAlgorithms()

void btCompoundCollisionAlgorithm::removeChildAlgorithms | ( |  | ) |
| protected

Definition at line 75 of file btCompoundCollisionAlgorithm.cpp.

## Member Data Documentation

## ◆ m_childCollisionAlgorithms

btAlignedObjectArray<btCollisionAlgorithm*> btCompoundCollisionAlgorithm::m_childCollisionAlgorithms
| protected

Definition at line 44 of file btCompoundCollisionAlgorithm.h.

## ◆ m_compoundShapeRevision

int btCompoundCollisionAlgorithm::m_compoundShapeRevision
| protected

Definition at line 50 of file btCompoundCollisionAlgorithm.h.

## ◆ m_isSwapped

bool btCompoundCollisionAlgorithm::m_isSwapped
| protected

Definition at line 45 of file btCompoundCollisionAlgorithm.h.

## ◆ m_ownsManifold

bool btCompoundCollisionAlgorithm::m_ownsManifold
| protected

Definition at line 48 of file btCompoundCollisionAlgorithm.h.

## ◆ m_sharedManifold

class btPersistentManifold* btCompoundCollisionAlgorithm::m_sharedManifold
| protected

Definition at line 47 of file btCompoundCollisionAlgorithm.h.

## ◆ manifoldArray

btManifoldArray btCompoundCollisionAlgorithm::manifoldArray
| private

Definition at line 41 of file btCompoundCollisionAlgorithm.h.

## ◆ stack2

btNodeStack btCompoundCollisionAlgorithm::stack2
| private

Definition at line 40 of file btCompoundCollisionAlgorithm.h.

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

- btCompoundCollisionAlgorithm.h
- btCompoundCollisionAlgorithm.cpp