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

Method removeDetail

Engine/source/ts/tsShapeEdit.cpp:1309–1357  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1307}
1308
1309bool TSShape::removeDetail( S32 size )
1310{
1311 S32 dl = findDetailBySize( size );
1312
1313 if ( ( dl < 0 ) || ( dl >= details.size() ) )
1314 {
1315 Con::errorf( "TSShape::removeDetail: Invalid detail index (%d)", dl );
1316 return false;
1317 }
1318
1319 // Need to make everything editable since node indexes etc will change
1320 makeEditable();
1321
1322 // Destroy and remove each mesh in the detail level
1323 for ( S32 objIndex = objects.size()-1; objIndex >= 0; objIndex-- )
1324 {
1325 TSShape::Object& obj = objects[objIndex];
1326 if ( dl < obj.numMeshes )
1327 {
1328 if ( meshes[obj.startMeshIndex + dl] )
1329 destructInPlace( meshes[obj.startMeshIndex + dl] );
1330 removeMeshFromObject(objIndex, dl);
1331
1332 // Remove the object if there are no meshes left
1333 if (!obj.numMeshes)
1334 removeObject( getName( obj.nameIndex ) );
1335 }
1336 }
1337
1338 // Destroy billboard detail level
1339 if ( dl < billboardDetails.size() )
1340 {
1341 if ( billboardDetails[dl] )
1342 {
1343 // Delete old textures
1344 billboardDetails[dl]->deleteImposterCacheTextures();
1345 delete billboardDetails[dl];
1346 }
1347
1348 billboardDetails.erase( dl );
1349 }
1350
1351 // Update smallest visible detail
1352 updateSmallestVisibleDL();
1353
1354 initObjects();
1355
1356 return true;
1357}
1358
1359//-----------------------------------------------------------------------------
1360bool TSShape::addSequence(const Torque::Path& path, const String& fromSeq,

Callers 1

Calls 6

destructInPlaceFunction · 0.85
errorfFunction · 0.50
getNameFunction · 0.50
sizeMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected