Repository: bulletphysics/bullet3

Issue:
setIgnoreCollisionCheck and CCD
Seems like setIgnoreCollisionCheck doesn't work with CCD. The rigid bodies move through each other when they go slower, but when there's enough motion they collide. Is this a bug or am I just doing something silly?



Discussion:
I am not sure if I am correct, but I remember having read that CCD only triggers with at a higher velocity than a certain threshold. Therefore, slowly moving objects are not handled with CDD. That is all I know, maybe it helps you already.

Yeah, that's what I meant with "enough motion", going over the threshold so it actually starts using CCD.

It is probably a bug,  ccd collisions need to be filterered the same as discrete collisions. A patch is welcome, otherwise I look at it once I find some time.


Patch:
diff --git a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
index 74f4242c78..b9944c138b 100644
--- a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
+++ b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
@@ -842,6 +842,9 @@ class btClosestNotMeConvexResultCallback : public btCollisionWorld::ClosestConve
 
 		btCollisionObject* otherObj = (btCollisionObject*) proxy0->m_clientObject;
 
+		if(!m_dispatcher->needsCollision(m_me, otherObj))
+			return false;
+
 		//call needsResponse, see http://code.google.com/p/bullet/issues/detail?id=179
 		if (m_dispatcher->needsResponse(m_me,otherObj))
 		{