19#ifndef TESSERACT_COLLISION_TESSERACT_COMPOUND_COLLISION_ALGORITHM_H
20#define TESSERACT_COLLISION_TESSERACT_COMPOUND_COLLISION_ALGORITHM_H
24#include <BulletCollision/BroadphaseCollision/btDispatcher.h>
25#include <BulletCollision/BroadphaseCollision/btBroadphaseInterface.h>
26#include <BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h>
27#include <BulletCollision/NarrowPhaseCollision/btPersistentManifold.h>
28#include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h>
29#include <BulletCollision/CollisionDispatch/btCollisionCreateFunc.h>
30#include <LinearMath/btAlignedObjectArray.h>
31#include <BulletCollision/BroadphaseCollision/btDbvt.h>
34class btCollisionObject;
35class btCollisionShape;
72 const btCollisionObjectWrapper* body0Wrap,
73 const btCollisionObjectWrapper* body1Wrap,
85 const btCollisionObjectWrapper* body1Wrap,
86 const btDispatcherInfo& dispatchInfo,
87 btManifoldResult* resultOut)
override;
90 btCollisionObject* body1,
91 const btDispatcherInfo& dispatchInfo,
92 btManifoldResult* resultOut)
override;
106 const btCollisionObjectWrapper* body0Wrap,
107 const btCollisionObjectWrapper* body1Wrap)
override
117 const btCollisionObjectWrapper* body0Wrap,
118 const btCollisionObjectWrapper* body1Wrap)
override
Supports collision between CompoundCollisionShapes and other collision shapes.
Definition: tesseract_compound_collision_algorithm.h:53
class btPersistentManifold * m_sharedManifold
Definition: tesseract_compound_collision_algorithm.h:61
TesseractCompoundCollisionAlgorithm & operator=(TesseractCompoundCollisionAlgorithm &&)=default
btAlignedObjectArray< btCollisionAlgorithm * > m_childCollisionAlgorithms
Definition: tesseract_compound_collision_algorithm.h:58
TesseractCompoundCollisionAlgorithm(const TesseractCompoundCollisionAlgorithm &)=default
TesseractCompoundCollisionAlgorithm(TesseractCompoundCollisionAlgorithm &&)=default
btNodeStack stack2
Definition: tesseract_compound_collision_algorithm.h:54
bool m_ownsManifold
Definition: tesseract_compound_collision_algorithm.h:62
~TesseractCompoundCollisionAlgorithm() override
Definition: tesseract_compound_collision_algorithm.cpp:103
int m_compoundShapeRevision
Definition: tesseract_compound_collision_algorithm.h:64
TesseractCompoundCollisionAlgorithm & operator=(const TesseractCompoundCollisionAlgorithm &)=default
void removeChildAlgorithms()
Definition: tesseract_compound_collision_algorithm.cpp:90
void getAllContactManifolds(btManifoldArray &manifoldArray) override
Definition: tesseract_compound_collision_algorithm.h:94
btManifoldArray manifoldArray
Definition: tesseract_compound_collision_algorithm.h:55
void preallocateChildAlgorithms(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
Definition: tesseract_compound_collision_algorithm.cpp:53
btScalar calculateTimeOfImpact(btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut) override
Definition: tesseract_compound_collision_algorithm.cpp:375
btCollisionAlgorithm * getChildAlgorithm(int n) const
Definition: tesseract_compound_collision_algorithm.h:82
bool m_isSwapped
Definition: tesseract_compound_collision_algorithm.h:59
void processCollision(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut) override
Definition: tesseract_compound_collision_algorithm.cpp:254
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
Definition: create_convex_hull.cpp:36
Definition: bullet_cast_bvh_manager.h:49
Definition: tesseract_compound_collision_algorithm.h:104
btCollisionAlgorithm * CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap) override
Definition: tesseract_compound_collision_algorithm.h:105
Definition: tesseract_compound_collision_algorithm.h:115
btCollisionAlgorithm * CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap) override
Definition: tesseract_compound_collision_algorithm.h:116