Blender
V3.3
|
btCompoundCollisionAlgorithm supports collision between CompoundCollisionShapes and other collision shapes More...
#include <btCompoundCollisionAlgorithm.h>
Classes | |
struct | CreateFunc |
struct | SwappedCreateFunc |
Protected Member Functions | |
void | removeChildAlgorithms () |
void | preallocateChildAlgorithms (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap) |
![]() | |
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 |
![]() | |
btDispatcher * | m_dispatcher |
btCompoundCollisionAlgorithm supports collision between CompoundCollisionShapes and other collision shapes
Definition at line 38 of file btCompoundCollisionAlgorithm.h.
btCompoundCollisionAlgorithm::btCompoundCollisionAlgorithm | ( | const btCollisionAlgorithmConstructionInfo & | ci, |
const btCollisionObjectWrapper * | body0Wrap, | ||
const btCollisionObjectWrapper * | body1Wrap, | ||
bool | isSwapped | ||
) |
Definition at line 28 of file btCompoundCollisionAlgorithm.cpp.
References btAssert, btCompoundShape(), btCollisionObjectWrapper::getCollisionShape(), m_compoundShapeRevision, m_isSwapped, m_ownsManifold, and preallocateChildAlgorithms().
Referenced by btCompoundCollisionAlgorithm::CreateFunc::CreateCollisionAlgorithm(), and btCompoundCollisionAlgorithm::SwappedCreateFunc::CreateCollisionAlgorithm().
|
virtual |
Definition at line 89 of file btCompoundCollisionAlgorithm.cpp.
References removeChildAlgorithms().
|
virtual |
Implements btCollisionAlgorithm.
Reimplemented in btCompoundCompoundCollisionAlgorithm.
Definition at line 343 of file btCompoundCollisionAlgorithm.cpp.
References btAssert, btCollisionObject, btCompoundShape(), btTransform, CCL_NAMESPACE_BEGIN::frac(), m_childCollisionAlgorithms, m_isSwapped, and btAlignedObjectArray< T >::size().
|
inlinevirtual |
Implements btCollisionAlgorithm.
Reimplemented in btCompoundCompoundCollisionAlgorithm.
Definition at line 70 of file btCompoundCollisionAlgorithm.h.
References m_childCollisionAlgorithms, and btAlignedObjectArray< T >::size().
|
inline |
Definition at line 61 of file btCompoundCollisionAlgorithm.h.
References m_childCollisionAlgorithms.
|
protected |
Definition at line 44 of file btCompoundCollisionAlgorithm.cpp.
References BT_CONTACT_POINT_ALGORITHMS, btAssert, btCollisionShape, btCompoundShape(), btDispatcher::findAlgorithm(), btCollisionObjectWrapper::getCollisionObject(), btCollisionObjectWrapper::getCollisionShape(), btCollisionObjectWrapper::getWorldTransform(), m_childCollisionAlgorithms, btCollisionAlgorithm::m_dispatcher, m_isSwapped, m_sharedManifold, and btAlignedObjectArray< T >::resize().
Referenced by btCompoundCollisionAlgorithm(), and processCollision().
|
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.
References ATTRIBUTE_ALIGNED16, bounds(), btAssert, btCollisionShape, btCompoundShape(), btTransform, btVector3, callback, btDispatcher::freeCollisionAlgorithm(), btDbvtAabbMm::FromMM(), btCollisionObjectWrapper::getCollisionShape(), getNumContacts(), btCollisionObjectWrapper::getWorldTransform(), m_childCollisionAlgorithms, btManifoldResult::m_closestPointDistanceThreshold, m_compoundShapeRevision, btCollisionAlgorithm::m_dispatcher, m_isSwapped, m_sharedManifold, preallocateChildAlgorithms(), btManifoldResult::refreshContactPoints(), removeChildAlgorithms(), btAlignedObjectArray< T >::resize(), btManifoldResult::setPersistentManifold(), btAlignedObjectArray< T >::size(), TestAabbAgainstAabb2(), and tree.
Referenced by btCompoundCompoundCollisionAlgorithm::processCollision().
|
protected |
Definition at line 75 of file btCompoundCollisionAlgorithm.cpp.
References btDispatcher::freeCollisionAlgorithm(), m_childCollisionAlgorithms, btCollisionAlgorithm::m_dispatcher, and btAlignedObjectArray< T >::size().
Referenced by processCollision(), and ~btCompoundCollisionAlgorithm().
|
protected |
Definition at line 44 of file btCompoundCollisionAlgorithm.h.
Referenced by calculateTimeOfImpact(), getAllContactManifolds(), getChildAlgorithm(), preallocateChildAlgorithms(), processCollision(), and removeChildAlgorithms().
|
protected |
Definition at line 50 of file btCompoundCollisionAlgorithm.h.
Referenced by btCompoundCollisionAlgorithm(), and processCollision().
|
protected |
Definition at line 45 of file btCompoundCollisionAlgorithm.h.
Referenced by btCompoundCollisionAlgorithm(), calculateTimeOfImpact(), preallocateChildAlgorithms(), and processCollision().
|
protected |
Definition at line 48 of file btCompoundCollisionAlgorithm.h.
Referenced by btCompoundCollisionAlgorithm().
|
protected |
Definition at line 47 of file btCompoundCollisionAlgorithm.h.
Referenced by preallocateChildAlgorithms(), processCollision(), and btCompoundCompoundCollisionAlgorithm::processCollision().