void CharacterControllerManager::releaseController(PxController& controller) { for (PxU32 i = 0; i<mControllers->size(); i++) if ((*mControllers)[i]->getNxController() == &controller) { mControllers->replaceWithLast(i); break; } if (controller.getType() == PxControllerShapeType::eCAPSULE) { CapsuleController* cc = (CapsuleController*)&controller; cc->~CapsuleController(); mAllocator->deallocate(cc); } else if (controller.getType() == PxControllerShapeType::eBOX) { BoxController* bc = (BoxController*)&controller; bc->~BoxController(); mAllocator->deallocate(bc); } else PX_ASSERT(0); }
void CharacterControllerManager::releaseController(PxController& controller) { for(PxU32 i = 0; i<mControllers.size(); i++) { if(mControllers[i]->getPxController() == &controller) { mControllers.replaceWithLast(i); break; } } if(controller.getType() == PxControllerShapeType::eCAPSULE) { CapsuleController* cc = (CapsuleController*)&controller; PX_DELETE(cc); } else if(controller.getType() == PxControllerShapeType::eBOX) { BoxController* bc = (BoxController*)&controller; PX_DELETE(bc); } else PX_ASSERT(0); }