MCPcopy Create free account
hub / github.com/EricLengyel/Terathon-Math-Library / GetInverseTransformMatrix

Method GetInverseTransformMatrix

TSFlector3D.cpp:44–70  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42}
43
44Transform3D Flector3D::GetInverseTransformMatrix(void) const
45{
46 float gx2 = g.x * g.x;
47 float gy2 = g.y * g.y;
48 float gz2 = g.z * g.z;
49
50 float A00 = (gy2 + gz2) * 2.0F - 1.0F;
51 float A11 = (gz2 + gx2) * 2.0F - 1.0F;
52 float A22 = (gx2 + gy2) * 2.0F - 1.0F;
53 float A01 = g.x * g.y * -2.0F;
54 float A02 = g.z * g.x * -2.0F;
55 float A12 = g.y * g.z * -2.0F;
56 float A03 = p.x * p.w - g.x * g.w;
57 float A13 = p.y * p.w - g.y * g.w;
58 float A23 = p.z * p.w - g.z * g.w;
59
60 float B01 = g.z * p.w * 2.0F;
61 float B20 = g.y * p.w * 2.0F;
62 float B12 = g.x * p.w * 2.0F;
63 float B03 = g.y * p.z - g.z * p.y;
64 float B13 = g.z * p.x - g.x * p.z;
65 float B23 = g.x * p.y - g.y * p.x;
66
67 return (Transform3D( A00, A01 - B01, A02 + B20, (A03 - B03) * 2.0F,
68 A01 + B01, A11, A12 - B12, (A13 - B13) * 2.0F,
69 A02 - B20, A12 + B12, A22, (A23 - B23) * 2.0F));
70}
71
72void Flector3D::GetTransformMatrices(Transform3D *M, Transform3D *Minv) const
73{

Callers

nothing calls this directly

Calls 1

Transform3DClass · 0.70

Tested by

no test coverage detected