void NpConstraint::updateConstants() { if(!mIsDirty) return; //ML - we can't just set dirty to false because this fails with constraints that were created while the scene was buffering! if(mConstraint.updateConstants(mConstraint.getPxConnector()->prepareData())) mIsDirty = false; #if PX_SUPPORT_PVD Scb::Scene* scbScene = mConstraint.getScbSceneForAPI(); //Changed to use the visual scenes update system which respects //the debugger's connection type flag. if( scbScene && !scbScene->isPhysicsBuffering() ) scbScene->getScenePvdClient().updatePvdProperties( &mConstraint ); #endif }
void NpShapeManager::clearShapesOnRelease(Scb::Scene& s, PxRigidActor& r) { PX_ASSERT(static_cast<Scb::RigidObject&>(NpActor::getScbFromPxActor(r)).isSimDisabledInternally()); const PxU32 nbShapes = getNbShapes(); NpShape*const* PX_RESTRICT shapes = getShapes(); for(PxU32 i=0;i<nbShapes;i++) { Scb::Shape& scbShape = shapes[i]->getScbShape(); scbShape.checkUpdateOnRemove<false>(&s); #if PX_SUPPORT_PVD s.getScenePvdClient().releasePvdInstance(&scbShape, r); #else PX_UNUSED(r); #endif } }