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

Method GetTransformMatrices

TSFlector3D.cpp:72–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72void Flector3D::GetTransformMatrices(Transform3D *M, Transform3D *Minv) const
73{
74 float gx2 = g.x * g.x;
75 float gy2 = g.y * g.y;
76 float gz2 = g.z * g.z;
77
78 float A00 = (gy2 + gz2) * 2.0F - 1.0F;
79 float A11 = (gz2 + gx2) * 2.0F - 1.0F;
80 float A22 = (gx2 + gy2) * 2.0F - 1.0F;
81 float A01 = g.x * g.y * -2.0F;
82 float A02 = g.z * g.x * -2.0F;
83 float A12 = g.y * g.z * -2.0F;
84 float A03 = p.x * p.w - g.x * g.w;
85 float A13 = p.y * p.w - g.y * g.w;
86 float A23 = p.z * p.w - g.z * g.w;
87
88 float B01 = g.z * p.w * 2.0F;
89 float B20 = g.y * p.w * 2.0F;
90 float B12 = g.x * p.w * 2.0F;
91 float B03 = g.y * p.z - g.z * p.y;
92 float B13 = g.z * p.x - g.x * p.z;
93 float B23 = g.x * p.y - g.y * p.x;
94
95 M->Set( A00, A01 + B01, A02 - B20, (A03 + B03) * 2.0F,
96 A01 - B01, A11, A12 + B12, (A13 + B13) * 2.0F,
97 A02 + B20, A12 - B12, A22, (A23 + B23) * 2.0F);
98
99 Minv->Set( A00, A01 - B01, A02 + B20, (A03 - B03) * 2.0F,
100 A01 + B01, A11, A12 - B12, (A13 - B13) * 2.0F,
101 A02 - B20, A12 + B12, A22, (A23 - B23) * 2.0F);
102}
103
104Flector3D& Flector3D::SetTransformMatrix(const Transform3D& M)
105{

Callers

nothing calls this directly

Calls 1

SetMethod · 0.45

Tested by

no test coverage detected