MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/PhysX / releaseObjects

Method releaseObjects

physx/source/physxextensions/src/ExtCollection.cpp:49–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47using namespace physx;
48
49void PxCollectionExt::releaseObjects(PxCollection& collection, bool releaseExclusiveShapes)
50{
51 shdfnd::Array<PxBase*> releasableObjects;
52
53 for (PxU32 i = 0; i < collection.getNbObjects(); ++i)
54 {
55 PxBase* s = &collection.getObject(i);
56 // pruning structure must be released before its actors
57 if(s->is<PxPruningStructure>())
58 {
59 if(!releasableObjects.empty())
60 {
61 PxBase* first = releasableObjects[0];
62 releasableObjects.pushBack(first);
63 releasableObjects[0] = s;
64 }
65 }
66 else
67 {
68 if (s->isReleasable() && (releaseExclusiveShapes || !s->is<PxShape>() || !s->is<PxShape>()->isExclusive()))
69 releasableObjects.pushBack(s);
70 }
71 }
72
73 for (PxU32 i = 0; i < releasableObjects.size(); ++i)
74 releasableObjects[i]->release();
75
76 while (collection.getNbObjects() > 0)
77 collection.remove(collection.getObject(0));
78}
79
80
81void PxCollectionExt::remove(PxCollection& collection, PxType concreteType, PxCollection* to)

Callers

nothing calls this directly

Calls 8

isReleasableMethod · 0.80
isExclusiveMethod · 0.80
getNbObjectsMethod · 0.45
emptyMethod · 0.45
pushBackMethod · 0.45
sizeMethod · 0.45
releaseMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected