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

Method getLocalNodeMatrix

Engine/source/ts/loader/tsShapeLoader.cpp:66–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64// Shape utility functions
65
66MatrixF TSShapeLoader::getLocalNodeMatrix(AppNode* node, F32 t)
67{
68 MatrixF m1 = node->getNodeTransform(t);
69
70 // multiply by inverse scale at t=0
71 MatrixF m10 = node->getNodeTransform(DefaultTime);
72 m1.scale(Point3F(1.0f/m10.getScale().x, 1.0f/m10.getScale().y, 1.0f/m10.getScale().z));
73
74 if (node->mParentIndex >= 0)
75 {
76 AppNode *parent = appNodes[node->mParentIndex];
77
78 MatrixF m2 = parent->getNodeTransform(t);
79
80 // multiply by inverse scale at t=0
81 MatrixF m20 = parent->getNodeTransform(DefaultTime);
82 m2.scale(Point3F(1.0f/m20.getScale().x, 1.0f/m20.getScale().y, 1.0f/m20.getScale().z));
83
84 // get local transform by pre-multiplying by inverted parent transform
85 m1 = m2.inverse() * m1;
86 }
87 else if (boundsNode && node != boundsNode)
88 {
89 // make transform relative to bounds node transform at time=t
90 MatrixF mb = boundsNode->getNodeTransform(t);
91 zapScale(mb);
92 m1 = mb.inverse() * m1;
93 }
94
95 return m1;
96}
97
98void TSShapeLoader::generateNodeTransform(AppNode* node, F32 t, bool blend, F32 referenceTime,
99 QuatF& rot, Point3F& trans, QuatF& srot, Point3F& scale)

Callers

nothing calls this directly

Calls 5

Point3FClass · 0.50
getNodeTransformMethod · 0.45
scaleMethod · 0.45
getScaleMethod · 0.45
inverseMethod · 0.45

Tested by

no test coverage detected