1RTCQuaternionDecompositionE(m3b)ree Ray Tracing KernelRsTC3QuaternionDecomposition(3)
2
3
4
5 NAME
6 RTCQuaternionDecomposition - structure that represents a quaternion
7 decomposition of an affine transformation
8
9 SYNOPSIS
10 struct RTCQuaternionDecomposition
11 {
12 float scale_x, scale_y, scale_z;
13 float skew_xy, skew_xz, skew_yz;
14 float shift_x, shift_y, shift_z;
15 float quaternion_r, quaternion_i, quaternion_j, quaternion_k;
16 float translation_x, translation_y, translation_z;
17 };
18
19 DESCRIPTION
20 The struct RTCQuaternionDecomposition represents an affine transforma‐
21 tion decomposed into three parts. An upper triangular scal‐
22 ing/skew/shift matrix
23
24 $$ S = \left( \begin{array}{cccc} scale_x & skew_{xy} &
25 skew_{xz} & shift_x \\ 0 & scale_y & skew_{yz} & shift_y \\ 0 &
26 0 & scale_z & shift_z \\ 0 & 0 & 0 & 1 \\ \end{array} \right),
27 $$
28
29 a translation matrix
30
31 $$ T = \left( \begin{array}{cccc} 1 & 0 & 0 & translation_x \\ 0
32 & 1 & 0 & translation_y \\ 0 & 0 & 1 & translation_z \\ 0 & 0 &
33 0 & 1 \\ \end{array} \right), $$
34
35 and a rotation matrix R, represented as a quaternion
36
37 quaternion~r~ + quaternion~i~ i + quaternion~j~ i + quaternion~k~ k
38
39 where i, j k are the imaginary quaternion units. The passed quaternion
40 will be normalized internally.
41
42 The affine transformation matrix corresponding to a RTCQuaternionDecom‐
43 position is TRS and a point p = (p~x~, p~y~, p~z~, 1)^T^ will be trans‐
44 formed as
45 p′ = T R S p.
46
47 The functions rtcInitQuaternionDecomposition, rtcQuaternionDecomposi‐
48 tionSetQuaternion, rtcQuaternionDecompositionSetScale, rtcQuaternionDe‐
49 compositionSetSkew, rtcQuaternionDecompositionSetShift, and rtcQuater‐
50 nionDecompositionSetTranslation allow to set the fields of the struc‐
51 ture more conveniently.
52
53 EXIT STATUS
54 No error code is set by this function.
55
56 SEE ALSO
57 [rtcSetGeometryTransformQuaternion], [rtcInitQuaternionDecomposition]
58
59
60
61 RTCQuaternionDecomposition(3)