.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "RTCQuaternionDecomposition" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCQuaternionDecomposition - structure that represents a quaternion
  decomposition of an affine transformation
\f[R]
.fi
.SS SYNOPSIS
.IP
.nf
\f[C]
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;
};
\f[R]
.fi
.SS DESCRIPTION
.PP
The struct \f[C]RTCQuaternionDecomposition\f[R] represents an affine
transformation decomposed into three parts.
An upper triangular scaling/skew/shift matrix
.PP
.RS
$$
S = \[rs]left( \[rs]begin{array}{cccc}
scale_x & skew_{xy} & skew_{xz} & shift_x \[rs]\[rs] 
0 & scale_y & skew_{yz} & shift_y \[rs]\[rs] 
0 & 0 & scale_z & shift_z \[rs]\[rs] 
0 & 0 & 0 & 1 \[rs]\[rs] 
\[rs]end{array} \[rs]right),
$$
.RE
.PP
a translation matrix
.PP
.RS
$$
T = \[rs]left( \[rs]begin{array}{cccc}
1 & 0 & 0 & translation_x \[rs]\[rs] 
0 & 1 & 0 & translation_y \[rs]\[rs] 
0 & 0 & 1 & translation_z \[rs]\[rs] 
0 & 0 & 0 & 1 \[rs]\[rs] 
\[rs]end{array} \[rs]right),
$$
.RE
.PP
and a rotation matrix \f[I]R\f[R], represented as a quaternion
.PP
\f[I]q\f[R]\f[I]u\f[R]\f[I]a\f[R]\f[I]t\f[R]\f[I]e\f[R]\f[I]r\f[R]\f[I]n\f[R]\f[I]i\f[R]\f[I]o\f[R]\f[I]n\f[R]~\f[I]r\f[R]~\[u2005]+\[u2005]\f[I]q\f[R]\f[I]u\f[R]\f[I]a\f[R]\f[I]t\f[R]\f[I]e\f[R]\f[I]r\f[R]\f[I]n\f[R]\f[I]i\f[R]\f[I]o\f[R]\f[I]n\f[R]~\f[I]i\f[R]~\ \f[B]i\f[R]\[u2005]+\[u2005]\f[I]q\f[R]\f[I]u\f[R]\f[I]a\f[R]\f[I]t\f[R]\f[I]e\f[R]\f[I]r\f[R]\f[I]n\f[R]\f[I]i\f[R]\f[I]o\f[R]\f[I]n\f[R]~\f[I]j\f[R]~\ \f[B]i\f[R]\[u2005]+\[u2005]\f[I]q\f[R]\f[I]u\f[R]\f[I]a\f[R]\f[I]t\f[R]\f[I]e\f[R]\f[I]r\f[R]\f[I]n\f[R]\f[I]i\f[R]\f[I]o\f[R]\f[I]n\f[R]~\f[I]k\f[R]~\ \f[B]k\f[R]
.PP
where \f[B]i\f[R], \f[B]j\f[R] \f[B]k\f[R] are the imaginary quaternion
units.
The passed quaternion will be normalized internally.
.PP
The affine transformation matrix corresponding to a
\f[C]RTCQuaternionDecomposition\f[R] is
\f[I]T\f[R]\f[I]R\f[R]\f[I]S\f[R] and a point
\f[I]p\f[R]\[u2004]=\[u2004](\f[I]p\f[R]~\f[I]x\f[R]~,\[u2006]\f[I]p\f[R]~\f[I]y\f[R]~,\[u2006]\f[I]p\f[R]~\f[I]z\f[R]~,\[u2006]1)^\f[I]T\f[R]^
will be transformed as
.RS
\f[I]p\f[R]\[fm]\[u2004]=\[u2004]\f[I]T\f[R]\ \f[I]R\f[R]\ \f[I]S\f[R]\ \f[I]p\f[R].
.RE
.PP
The functions \f[C]rtcInitQuaternionDecomposition\f[R],
\f[C]rtcQuaternionDecompositionSetQuaternion\f[R],
\f[C]rtcQuaternionDecompositionSetScale\f[R],
\f[C]rtcQuaternionDecompositionSetSkew\f[R],
\f[C]rtcQuaternionDecompositionSetShift\f[R], and
\f[C]rtcQuaternionDecompositionSetTranslation\f[R] allow to set the
fields of the structure more conveniently.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcSetGeometryTransformQuaternion], [rtcInitQuaternionDecomposition]
