This module implements axis-angle functionalities.
The axis-angle representation is defined as \(\theta\mathbf{a}\), where
\(\mathbf{a}\) is a unit vector indicating the direction of rotation and
\(\theta\) is a scalar controlling the angle of rotation. It is important to
note that the axis-angle does not perform rotation by itself, but that it can be
used to rotate any given vector \(\mathbf{v} \in {\mathbb{R}^3}\) into
a vector \(\mathbf{v}'\) using the Rodrigues' rotation formula:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2021-11-19 UTC."],[],[],null,["# Module: tfg.geometry.transformation.axis_angle\n\n|---------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/graphics/blob/master/tensorflow_graphics/geometry/transformation/axis_angle.py) |\n\nThis module implements axis-angle functionalities.\n\nThe axis-angle representation is defined as \\\\(\\\\theta\\\\mathbf{a}\\\\), where\n\\\\(\\\\mathbf{a}\\\\) is a unit vector indicating the direction of rotation and\n\\\\(\\\\theta\\\\) is a scalar controlling the angle of rotation. It is important to\nnote that the axis-angle does not perform rotation by itself, but that it can be\nused to rotate any given vector \\\\(\\\\mathbf{v} \\\\in {\\\\mathbb{R}\\^3}\\\\) into\na vector \\\\(\\\\mathbf{v}'\\\\) using the Rodrigues' rotation formula:\n\n\\\\\\[\\\\mathbf{v}'=\\\\mathbf{v}\\\\cos(\\\\theta)+(\\\\mathbf{a}\\\\times\\\\mathbf{v})\\\\sin(\\\\theta)\n+\\\\mathbf{a}(\\\\mathbf{a}\\\\cdot\\\\mathbf{v})(1-\\\\cos(\\\\theta)).\\\\\\]\n\nMore details about the axis-angle formalism can be found on [this page.](https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation)\n| **Note:** Some of the functions defined in the module expect a normalized axis \\\\(\\\\mathbf{a} = \\[x, y, z\\]\\^T\\\\) as inputs where \\\\(x\\^2 + y\\^2 + z\\^2 = 1\\\\).\n\nFunctions\n---------\n\n[`from_euler(...)`](../../../tfg/geometry/transformation/axis_angle/from_euler): Converts Euler angles to an axis-angle representation.\n\n[`from_euler_with_small_angles_approximation(...)`](../../../tfg/geometry/transformation/axis_angle/from_euler_with_small_angles_approximation): Converts small Euler angles to an axis-angle representation.\n\n[`from_quaternion(...)`](../../../tfg/geometry/transformation/axis_angle/from_quaternion): Converts a quaternion to an axis-angle representation.\n\n[`from_rotation_matrix(...)`](../../../tfg/geometry/transformation/axis_angle/from_rotation_matrix): Converts a rotation matrix to an axis-angle representation.\n\n[`inverse(...)`](../../../tfg/geometry/transformation/axis_angle/inverse): Computes the axis-angle that is the inverse of the input axis-angle.\n\n[`is_normalized(...)`](../../../tfg/geometry/transformation/axis_angle/is_normalized): Determines if the axis-angle is normalized or not.\n\n[`rotate(...)`](../../../tfg/geometry/transformation/axis_angle/rotate): Rotates a 3d point using an axis-angle by applying the Rodrigues' formula."]]