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

Method generateDefaultStates

Engine/source/ts/loader/tsShapeLoader.cpp:567–606  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

565}
566
567void TSShapeLoader::generateDefaultStates()
568{
569 // Generate default object states (includes initial geometry)
570 for (S32 iObject = 0; iObject < shape->objects.size(); iObject++)
571 {
572 updateProgress(Load_GenerateDefaultStates, "Generating initial mesh and node states...",
573 shape->objects.size(), iObject);
574
575 TSShape::Object& obj = shape->objects[iObject];
576
577 // Calculate the objectOffset for each mesh at T=0
578 for (S32 iMesh = 0; iMesh < obj.numMeshes; iMesh++)
579 {
580 AppMesh* appMesh = appMeshes[obj.startMeshIndex + iMesh];
581 AppNode* appNode = obj.nodeIndex >= 0 ? appNodes[obj.nodeIndex] : boundsNode;
582
583 MatrixF meshMat(appMesh->getMeshTransform(DefaultTime));
584 MatrixF nodeMat(appMesh->isSkin() ? meshMat : appNode->getNodeTransform(DefaultTime));
585
586 zapScale(nodeMat);
587
588 appMesh->objectOffset = nodeMat.inverse() * meshMat;
589 }
590
591 generateObjectState(shape->objects[iObject], DefaultTime, true, true);
592 }
593
594 // Generate default node transforms
595 for (S32 iNode = 0; iNode < appNodes.size(); iNode++)
596 {
597 // Determine the default translation and rotation for the node
598 QuatF rot, srot;
599 Point3F trans, scale;
600 generateNodeTransform(appNodes[iNode], DefaultTime, false, 0, rot, trans, srot, scale);
601
602 // Add default node translation and rotation
603 addNodeRotation(rot, true);
604 addNodeTranslation(trans, true);
605 }
606}
607
608void TSShapeLoader::generateObjectState(TSShape::Object& obj, F32 t, bool addFrame, bool addMatFrame)
609{

Callers

nothing calls this directly

Calls 5

sizeMethod · 0.45
getMeshTransformMethod · 0.45
isSkinMethod · 0.45
getNodeTransformMethod · 0.45
inverseMethod · 0.45

Tested by

no test coverage detected