What steps will reproduce the problem?
1. Create a dynamics world (I was using btDiscreteDynamicsWorld).
2. Call getSimulationIslandManager()->setSplitIslands(false) on the world.
3. Create some number of objects with the flag CF_NO_CONTACT_RESPONSE.
4. Note that collisions with said objects impart impulse.
What is the expected output? What do you see instead?
Objects with the CF_NO_CONTACT_RESPONSE flag should not impart or receive
impulse from other objects.
What version of the product are you using? On what operating system?
2.82-rev2704
Please provide any additional information below.
The problem seems to lie with
btSimulationIslandManager::buildAndProcessIslands. In the case that
m_splitIslands is FALSE, the entire list of manifolds is sent to the
processIsland function of the callback. I am attaching a patch that seems to
fix the issue by using the m_islandmanifold array to hold a list of only those
objects that pass the needsResponse check. That was already the process with
the default setting for split islands.
Original issue reported on code.google.com by drei...@atariland.net on 21 Mar 2014 at 4:06
Original issue reported on code.google.com by
drei...@atariland.net
on 21 Mar 2014 at 4:06Attachments: