Manpages - RTCQuaternionDecomposition.3embree3
Table of Contents
NAME
RTCQuaternionDecomposition - structure that represents a quaternion
decomposition of an affine transformation
SYNOPSIS
struct RTCQuaternionDecomposition
{
float scale_x, scale_y, scale_z;
float skew_xy, skew_xz, skew_yz;
float shift_x, shift_y, shift_z;
float quaternion_r, quaternion_i, quaternion_j, quaternion_k;
float translation_x, translation_y, translation_z;
};
DESCRIPTION
The struct RTCQuaternionDecomposition represents an affine
transformation decomposed into three parts. An upper triangular
scaling/skew/shift matrix
\[ S = \left( \begin{array}{cccc} scale_x & skew_{xy} & skew_{xz} & shift_x \\ 0 & scale_y & skew_{yz} & shift_y \\ 0 & 0 & scale_z & shift_z \\ 0 & 0 & 0 & 1 \\ \end{array} \right), \]
a translation matrix
\[ T = \left( \begin{array}{cccc} 1 & 0 & 0 & translation_x \\ 0 & 1 & 0 & translation_y \\ 0 & 0 & 1 & translation_z \\ 0 & 0 & 0 & 1 \\ \end{array} \right), \]
and a rotation matrix R, represented as a quaternion
/quaternion/~/r/~ + /quaternion/~/i/~ i + /quaternion/~/j/~ i + /quaternion/~/k/~ k
where i, j k are the imaginary quaternion units. The passed quaternion will be normalized internally.
The affine transformation matrix corresponding to a
RTCQuaternionDecomposition is TRS and a point
p = (/p/~/x/~, /p/~/y/~, /p/~/z/~, 1)^/T/^ will be transformed as
p/′ = /T R S p.
The functions rtcInitQuaternionDecomposition,
rtcQuaternionDecompositionSetQuaternion,
rtcQuaternionDecompositionSetScale,
rtcQuaternionDecompositionSetSkew,
rtcQuaternionDecompositionSetShift, and
rtcQuaternionDecompositionSetTranslation allow to set the fields of
the structure more conveniently.
EXIT STATUS
No error code is set by this function.
SEE ALSO
[rtcSetGeometryTransformQuaternion], [rtcInitQuaternionDecomposition]