| 5573 | /////////////////////////////////////////////////////////////////////////////// |
| 5574 | |
| 5575 | void Sc::Scene::islandInsertion(PxBaseTask* /*continuation*/) |
| 5576 | { |
| 5577 | { |
| 5578 | PX_PROFILE_ZONE("Sim.processNewOverlaps.islandInsertion", getContextId()); |
| 5579 | |
| 5580 | const PxU32 nbShapeIdxCreated = mPreallocatedShapeInteractions.size(); |
| 5581 | for (PxU32 a = 0; a < nbShapeIdxCreated; ++a) |
| 5582 | { |
| 5583 | size_t address = reinterpret_cast<size_t>(mPreallocatedShapeInteractions[a]); |
| 5584 | if (address & 1) |
| 5585 | { |
| 5586 | ShapeInteraction* interaction = reinterpret_cast<ShapeInteraction*>(address&size_t(~1)); |
| 5587 | |
| 5588 | PxsContactManager* contactManager = const_cast<PxsContactManager*>(interaction->getContactManager()); |
| 5589 | |
| 5590 | Sc::BodySim* bs0 = interaction->getShape0().getBodySim(); |
| 5591 | Sc::BodySim* bs1 = interaction->getShape1().getBodySim(); |
| 5592 | |
| 5593 | IG::NodeIndex nodeIndexB; |
| 5594 | if (bs1) |
| 5595 | nodeIndexB = bs1->getNodeIndex(); |
| 5596 | |
| 5597 | IG::EdgeIndex edgeIdx = mSimpleIslandManager->addContactManager(contactManager, bs0->getNodeIndex(), nodeIndexB, interaction); |
| 5598 | interaction->mEdgeIndex = edgeIdx; |
| 5599 | |
| 5600 | if (contactManager) |
| 5601 | contactManager->getWorkUnit().mEdgeIndex = edgeIdx; |
| 5602 | } |
| 5603 | } |
| 5604 | |
| 5605 | // - Wakes actors that lost touch if appropriate |
| 5606 | //processLostTouchPairs(); |
| 5607 | |
| 5608 | if(mCCDPass == 0) |
| 5609 | { |
| 5610 | mSimpleIslandManager->firstPassIslandGen(); |
| 5611 | } |
| 5612 | } |
| 5613 | } |
| 5614 | |
| 5615 | void Sc::Scene::registerContactManagers(PxBaseTask* /*continuation*/) |
| 5616 | { |
nothing calls this directly
no test coverage detected