Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef BT_SPHERE_SPHERE_COLLISION_ALGORITHM_H
00017 #define BT_SPHERE_SPHERE_COLLISION_ALGORITHM_H
00018
00019 #include "btActivatingCollisionAlgorithm.h"
00020 #include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
00021 #include "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h"
00022 #include "btCollisionDispatcher.h"
00023
00024 class btPersistentManifold;
00025
00029 class btSphereSphereCollisionAlgorithm : public btActivatingCollisionAlgorithm
00030 {
00031 bool m_ownManifold;
00032 btPersistentManifold* m_manifoldPtr;
00033
00034 public:
00035 btSphereSphereCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);
00036
00037 btSphereSphereCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)
00038 : btActivatingCollisionAlgorithm(ci) {}
00039
00040 virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
00041
00042 virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
00043
00044 virtual void getAllContactManifolds(btManifoldArray& manifoldArray)
00045 {
00046 if (m_manifoldPtr && m_ownManifold)
00047 {
00048 manifoldArray.push_back(m_manifoldPtr);
00049 }
00050 }
00051
00052 virtual ~btSphereSphereCollisionAlgorithm();
00053
00054 struct CreateFunc :public btCollisionAlgorithmCreateFunc
00055 {
00056 virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)
00057 {
00058 void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereSphereCollisionAlgorithm));
00059 return new(mem) btSphereSphereCollisionAlgorithm(0,ci,body0,body1);
00060 }
00061 };
00062
00063 };
00064
00065 #endif //BT_SPHERE_SPHERE_COLLISION_ALGORITHM_H
00066