void VisualDebugger::sendEntireSDK() { NpPhysics& npPhysics = NpPhysics::getInstance(); mPvdConnection->createInstance( (PxPhysics*)&npPhysics ); npPhysics.getPvdConnectionManager()->setIsTopLevelUIElement( &npPhysics, true ); mMetaDataBinding.sendAllProperties( *mPvdConnection, npPhysics ); #define SEND_BUFFER_GROUP( type, name ) { \ Ps::Array<type*> buffers; \ PxU32 numBuffers = npPhysics.getNb##name(); \ buffers.resize(numBuffers); \ npPhysics.get##name(buffers.begin(), numBuffers); \ for(PxU32 i = 0; i < numBuffers; i++) \ increaseReference(buffers[i]); \ } SEND_BUFFER_GROUP( PxMaterial, Materials ); SEND_BUFFER_GROUP( PxTriangleMesh, TriangleMeshes ); SEND_BUFFER_GROUP( PxConvexMesh, ConvexMeshes ); SEND_BUFFER_GROUP( PxHeightField, HeightFields ); #if PX_USE_CLOTH_API SEND_BUFFER_GROUP( PxClothFabric, ClothFabrics ); #endif mPvdConnection->flush(); PxU32 numScenes = npPhysics.getNbScenes(); for(PxU32 i = 0; i < numScenes; i++) { NpScene* npScene = npPhysics.getScene(i); Scb::Scene& scbScene = npScene->getScene(); scbScene.getSceneVisualDebugger().sendEntireScene(); } }
void VisualDebugger::sendEntireSDK() { PVD::PvdCommLayerError error; error = mPvdConnection->beginFrame(); NpPhysics& npPhysics = NpPhysics::getInstance(); error = mPvdConnection->createInstance(PvdClassKeys::PhysicsSDK+1, PX_PROFILE_POINTER_TO_U64(&npPhysics), PVD::EInstanceUIFlags::TopLevel); mMetaDataBinding.sendAllProperties( mPvdConnection, &npPhysics ); createGroups(); #define SEND_BUFFER_GROUP( type, name ) { \ Ps::Array<type*> buffers; \ PxU32 numBuffers = npPhysics.getNb##name(); \ buffers.resize(numBuffers); \ npPhysics.get##name(buffers.begin(), numBuffers); \ for(PxU32 i = 0; i < numBuffers; i++) \ increaseReference(buffers[i]); \ } SEND_BUFFER_GROUP( PxTriangleMesh, TriangleMeshes ); SEND_BUFFER_GROUP( PxConvexMesh, ConvexMeshes ); SEND_BUFFER_GROUP( PxHeightField, HeightFields ); SEND_BUFFER_GROUP( PxHeightField, HeightFields ); //Ensure that all the instances and class descriptions created so far //are available to the rest of the system. error = mPvdConnection->flush(); PxU32 numScenes = npPhysics.getNbScenes(); for(PxU32 i = 0; i < numScenes; i++) { NpScene* npScene = npPhysics.getScene(i); Scb::Scene& scbScene = npScene->getScene(); scbScene.getSceneVisualDebugger().sendEntireScene(); } error = mPvdConnection->endFrame(); error = mPvdConnection->flush(); }