btSoftRigidCollisionAlgorithm.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "btSoftRigidCollisionAlgorithm.h"
00017 #include "BulletCollision/CollisionDispatch/btCollisionDispatcher.h"
00018 #include "BulletCollision/CollisionShapes/btSphereShape.h"
00019 #include "BulletCollision/CollisionShapes/btBoxShape.h"
00020 #include "BulletCollision/CollisionDispatch/btCollisionObject.h"
00021 #include "btSoftBody.h"
00024
00025
00026
00027 btSoftRigidCollisionAlgorithm::btSoftRigidCollisionAlgorithm(btPersistentManifold* ,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* ,btCollisionObject* , bool isSwapped)
00028 : btCollisionAlgorithm(ci),
00029
00030
00031 m_isSwapped(isSwapped)
00032 {
00033 }
00034
00035
00036 btSoftRigidCollisionAlgorithm::~btSoftRigidCollisionAlgorithm()
00037 {
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 }
00049
00050
00051 #include <stdio.h>
00052
00053 void btSoftRigidCollisionAlgorithm::processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut)
00054 {
00055 (void)dispatchInfo;
00056 (void)resultOut;
00057
00058
00059 btSoftBody* softBody = m_isSwapped? (btSoftBody*)body1 : (btSoftBody*)body0;
00060 btCollisionObject* rigidCollisionObject = m_isSwapped? body0 : body1;
00061
00062 if (softBody->m_collisionDisabledObjects.findLinearSearch(rigidCollisionObject)==softBody->m_collisionDisabledObjects.size())
00063 {
00064 softBody->defaultCollisionHandler(rigidCollisionObject);
00065 }
00066
00067
00068 }
00069
00070 btScalar btSoftRigidCollisionAlgorithm::calculateTimeOfImpact(btCollisionObject* col0,btCollisionObject* col1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut)
00071 {
00072 (void)resultOut;
00073 (void)dispatchInfo;
00074 (void)col0;
00075 (void)col1;
00076
00077
00078 return btScalar(1.);
00079 }
00080
00081
00082