warp.quat_rotate#

warp.quat_rotate(
quat: Quaternion[Float],
vec: Vector[Float, Literal[3]],
) → Vector[Float, Literal[3]]#
  • Kernel: true
  • Python: true
  • Differentiable: true

Return vec rotated by the rotation that quat represents.

Quaternion products apply rotations from right to left, so quat_rotate(a * b, vec) equals quat_rotate(a, quat_rotate(b, vec)).

Parameters:
  • quat – Rotation quaternion, with unit length. Gradient updates do not preserve its unit length, so re-normalize it after each update.

  • vec – Vector to rotate.

Returns:

The rotated vector, equal to quat_to_matrix(quat) @ vec.