MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / removeImposter

Method removeImposter

Engine/source/ts/tsShapeEdit.cpp:271–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

269}
270
271bool TSShape::removeImposter()
272{
273 // Find the imposter detail level
274 S32 detIndex;
275 for ( detIndex = 0; detIndex < details.size(); ++detIndex )
276 {
277 if ( details[detIndex].subShapeNum < 0 )
278 break;
279 }
280
281 if ( detIndex == details.size() )
282 {
283 Con::errorf( "TSShape::removeImposter: No imposter detail level found in shape" );
284 return false;
285 }
286
287 // Remove the detail level
288 details.erase( detIndex );
289
290 if ( detIndex < billboardDetails.size() )
291 {
292 // Delete old textures
293 TSLastDetail* bb = billboardDetails[detIndex];
294 bb->deleteImposterCacheTextures();
295 delete billboardDetails[detIndex];
296 }
297 billboardDetails.clear();
298
299 detailCollisionAccelerators.erase( detIndex );
300
301 // Remove the (NULL) meshes from each object
302 for ( S32 iObj = 0; iObj < objects.size(); ++iObj )
303 {
304 if ( detIndex < objects[iObj].numMeshes )
305 {
306 objects[iObj].numMeshes--;
307 meshes.erase( objects[iObj].startMeshIndex + detIndex );
308 for (S32 j = iObj + 1; j < objects.size(); ++j )
309 objects[j].startMeshIndex--;
310 }
311 }
312
313 // Update smallest visible size
314 updateSmallestVisibleDL();
315
316 return true;
317}
318
319//-----------------------------------------------------------------------------
320

Callers 1

Calls 5

errorfFunction · 0.50
sizeMethod · 0.45
eraseMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected