Operators

quat_rotate_point_3d (Operator)

Name

quat_rotate_point_3d — Perform a rotation by a unit quaternion.

Signature

quat_rotate_point_3d( : : Quaternion, Px, Py, Pz : Qx, Qy, Qz)

Description

Given a rotation quaternion (e.g. generated by axis_angle_to_quat), the operator quat_rotate_point_3d can be used to rotate a 3D point (Px, Py, Pz). The rotated point is returned in (Qx, Qy, Qz).

The rotation of a point x by an unit quaterion q is given by

```  x' = q * x * conj(q).
```

conj(q) corresponds to the conjugation of a quaternion q (see quat_conjugate). Note that x will be transformed into quaternion form to perform the rotation. This is done by setting the real part to zero and the three imaginary components to the three components of x.

Attention

The operator quat_rotate_point_3d does not check whether Quaternion is a unit quaternion. If Quaternion is not a unit quaternion, the result of this operator is not defined.

Parallelization

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Processed without parallelization.

Parameters

Quaternion (input_control)  quaternion (real)

Rotation quaternion.

Px (input_control)  real (real)

X coordinate of the point to be rotated.

Py (input_control)  real (real)

Y coordinate of the point to be rotated.

Pz (input_control)  real (real)

Z coordinate of the point to be rotated.

Qx (output_control)  real (real)

X coordinate of the rotated point.

Qy (output_control)  real (real)

Y coordinate of the rotated point.

Qz (output_control)  real (real)

Z coordinate of the rotated point.