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

Method exportExtraData

physx/source/physx/src/NpActor.cpp:66–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64};
65
66void NpActor::exportExtraData(PxSerializationContext& stream)
67{
68 const PxCollection& collection = stream.getCollection();
69 if(mConnectorArray)
70 {
71 PxU32 connectorSize = mConnectorArray->size();
72 PxU32 missedCount = 0;
73 for(PxU32 i = 0; i < connectorSize; ++i)
74 {
75 NpConnector& c = (*mConnectorArray)[i];
76 PxBase* object = c.mObject;
77 if(!collection.contains(*object))
78 {
79 ++missedCount;
80 }
81 }
82
83 NpConnectorArray* exportConnectorArray = mConnectorArray;
84
85 if(missedCount > 0)
86 {
87 exportConnectorArray = NpFactory::getInstance().acquireConnectorArray();
88 if(missedCount < connectorSize)
89 {
90 exportConnectorArray->reserve(connectorSize - missedCount);
91 for(PxU32 i = 0; i < connectorSize; ++i)
92 {
93 NpConnector& c = (*mConnectorArray)[i];
94 PxBase* object = c.mObject;
95 if(collection.contains(*object))
96 {
97 exportConnectorArray->pushBack(c);
98 }
99 }
100 }
101 }
102
103 stream.alignData(PX_SERIAL_ALIGN);
104 stream.writeData(exportConnectorArray, sizeof(NpConnectorArray));
105 Cm::exportInlineArray(*exportConnectorArray, stream);
106
107 if(missedCount > 0)
108 NpFactory::getInstance().releaseConnectorArray(exportConnectorArray);
109 }
110 stream.writeName(mName);
111}
112
113void NpActor::importExtraData(PxDeserializationContext& context)
114{

Callers

nothing calls this directly

Calls 10

exportInlineArrayFunction · 0.85
acquireConnectorArrayMethod · 0.80
releaseConnectorArrayMethod · 0.80
sizeMethod · 0.45
containsMethod · 0.45
reserveMethod · 0.45
pushBackMethod · 0.45
alignDataMethod · 0.45
writeDataMethod · 0.45
writeNameMethod · 0.45

Tested by

no test coverage detected