Crash in btCompoundCollisionAlgorithm::calculateTimeOfImpact

mreuvers
Posts: 69
Joined: Sat May 10, 2008 8:39 am

Crash in btCompoundCollisionAlgorithm::calculateTimeOfImpact

Post by mreuvers »

Hi there,

When replacing my discrete world for a continuous world I get a crash in btCompoundCollisionAlgorithm.cpp line 300:

Code: Select all

btScalar frac = m_childCollisionAlgorithms[i]->calculateTimeOfImpact(colObj,otherObj,dispatchInfo,resultOut);
In debug mode also no assert is triggered :(

This is the callstack

Code: Select all

# btCompoundCollisionAlgorithm::calculateTimeOfImpact(btCollisionObject * body0=0x03001bc0, btCollisionObject * body1=0x0515b9b0, const btDispatcherInfo & dispatchInfo={...}, btManifoldResult * resultOut=0x0012e380)  Line 300 + 0x2f bytes	C++
# btCollisionDispatcher::defaultNearCallback(btBroadphasePair & collisionPair={...}, btCollisionDispatcher & dispatcher={...}, const btDispatcherInfo & dispatchInfo={...})  Line 269 + 0x28 bytes	C++
# btCollisionPairCallback::processOverlap(btBroadphasePair & pair={...})  Line 221 + 0x21 bytes	C++
# btHashedOverlappingPairCache::processAllOverlappingPairs(btOverlapCallback * callback=0x0012e734, btDispatcher * dispatcher=0x016e9028)  Line 383 + 0x13 bytes	C++
# btCollisionDispatcher::dispatchAllCollisionPairs(btOverlappingPairCache * pairCache=0x02f50860, const btDispatcherInfo & dispatchInfo={...}, btDispatcher * dispatcher=0x016e9028)  Line 235 + 0x17 bytes	C++
# btContinuousDynamicsWorld::calculateTimeOfImpacts(float timeStep=0.0083333338)  Line 124 + 0x39 bytes	C++
# btContinuousDynamicsWorld::internalSingleStepSimulation(float timeStep=0.0083333338)  Line 80 + 0x19 bytes	C++
# btDiscreteDynamicsWorld::stepSimulation(float timeStep=0.033333335, int maxSubSteps=2, float fixedTimeStep=0.0083333338)  Line 355 + 0x16 bytes	C++
# demolition::components::PhysicsWorld::stepSimulation(float p_timestep=0.033333335)  Line 326 + 0x35 bytes	C++
And my initalization code:

Code: Select all

m_collisionConfiguration = new btDefaultCollisionConfiguration();
	
// Use the default collision dispatcher. 
m_dispatcher = new btCollisionDispatcher(m_collisionConfiguration);
	
m_overlappingPairCache = new btDbvtBroadphase;
	
// The default constraint solver. 
m_constraintSolver = new btSequentialImpulseConstraintSolver;
	
// Initialise the physics world
m_dynamicsWorld = new btContinuousDynamicsWorld(m_dispatcher,
	                                              m_overlappingPairCache,
	                                              m_constraintSolver,
	                                              m_collisionConfiguration);
Anything I forgot?

Thanks!

Best,

Martijn
ola
Posts: 169
Joined: Sun Jan 14, 2007 7:56 pm
Location: Norway

Re: Crash in btCompoundCollisionAlgorithm::calculateTimeOfImpact

Post by ola »

Hi,

as far as I know, the continuous collision world is being worked on and isn't ready for use yet.

Best regards,
Ola
mreuvers
Posts: 69
Joined: Sat May 10, 2008 8:39 am

Re: Crash in btCompoundCollisionAlgorithm::calculateTimeOfImpact

Post by mreuvers »

Well, that'd explain a lot :-) Erwin, perhaps add an assert message stating assert(0, "Work in Progress, come back later"); ;-) With the current amount of documentation, it is very hard to track down what's finished, and what's not.
pico
Posts: 229
Joined: Sun Sep 30, 2007 7:58 am

Re: Crash in btCompoundCollisionAlgorithm::calculateTimeOfImpact

Post by pico »

Hi,

in the .h file Erwin wrote:

///Under construction, don't use yet! Please use btDiscreteDynamicsWorld instead.

:)
mreuvers
Posts: 69
Joined: Sat May 10, 2008 8:39 am

Re: Crash in btCompoundCollisionAlgorithm::calculateTimeOfImpact

Post by mreuvers »

A .h file... excellent documentation ;-)

Anyway, thanks for letting me know. Erwin is it useful to report these crashbugs? And is there an ETA on when the CCD is finalized? I've tried to search on Google code for that, but found a dead topic:

http://code.google.com/p/bullet/issues/detail?id=22