diff --git a/manual/advanced/appendices/rotations.rst b/manual/advanced/appendices/rotations.rst index 84b819fe4..9b8b37acf 100644 --- a/manual/advanced/appendices/rotations.rst +++ b/manual/advanced/appendices/rotations.rst @@ -17,6 +17,7 @@ Take, for instance, any three values for X, Y and Z rotation. Perform each one o Depending on the order in which you perform these, you will end up with different final orientations. So proper rotation coordinate systems are needed. +.. _euler mode: Euler Modes =========== @@ -56,6 +57,7 @@ This particular loss of axis is known as the "gimbal lock". One advantage of this mode is that animation curves are easy to understand and edit. However, special attention must be done when the middle axis approaches values close to 90° (or equivalent angles). +.. _axis angle mode: Axis Angle Mode =============== @@ -81,6 +83,7 @@ along the defined rotation axis, i.e. it points towards the direction defined by The axis-angle system is free from gimbal lock, but animation curves in this mode are not intuitive at all when animating axis and angle at the same time, in which case they are difficult to understand and edit. +.. _quaternion mode: Quaternion Mode =============== diff --git a/manual/images/node-types_FunctionNodeAxisAngleToRotation.png b/manual/images/node-types_FunctionNodeAxisAngleToRotation.png new file mode 100644 index 000000000..5ebc03db3 --- /dev/null +++ b/manual/images/node-types_FunctionNodeAxisAngleToRotation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98d06fea723f383d8c0e4187c4dc2df6be19b6a724782148b62753bdbe7abf57 +size 12408 diff --git a/manual/images/node-types_FunctionNodeEulerToRotation.png b/manual/images/node-types_FunctionNodeEulerToRotation.png new file mode 100644 index 000000000..1d04029fe --- /dev/null +++ b/manual/images/node-types_FunctionNodeEulerToRotation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4891ec8f71338a94400266dbf7096f72e08cb05d0a186338257792205a26cb3e +size 9413 diff --git a/manual/images/node-types_FunctionNodeInvertRotation.png b/manual/images/node-types_FunctionNodeInvertRotation.png new file mode 100644 index 000000000..25dca3efb --- /dev/null +++ b/manual/images/node-types_FunctionNodeInvertRotation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62c00e428100ca8c289f5e31b12a94c5637f49453fc67a58a8ee060406df2307 +size 8825 diff --git a/manual/images/node-types_FunctionNodeQuaternionToRotation.png b/manual/images/node-types_FunctionNodeQuaternionToRotation.png new file mode 100644 index 000000000..45cdda71a --- /dev/null +++ b/manual/images/node-types_FunctionNodeQuaternionToRotation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a953213558e376df0e942a324c337f16dbd9e3b5d69b9efb19f9795c1a653d7f +size 14767 diff --git a/manual/images/node-types_FunctionNodeRotateVector.png b/manual/images/node-types_FunctionNodeRotateVector.png new file mode 100644 index 000000000..7090ec338 --- /dev/null +++ b/manual/images/node-types_FunctionNodeRotateVector.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf8e558de50975e21552b7a8af9f4f41ca205b52762c0a6e0d65214e274138a2 +size 14937 diff --git a/manual/images/node-types_FunctionNodeRotationToEuler.png b/manual/images/node-types_FunctionNodeRotationToEuler.png new file mode 100644 index 000000000..434538d95 --- /dev/null +++ b/manual/images/node-types_FunctionNodeRotationToEuler.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:588a6f192fd1c7d41adf95f4f95755928523e6a7eafbb17f18e731bd0e814cc2 +size 8928 diff --git a/manual/images/node-types_FunctionNodeRotationToQuaternion.png b/manual/images/node-types_FunctionNodeRotationToQuaternion.png new file mode 100644 index 000000000..9d5e42d4f --- /dev/null +++ b/manual/images/node-types_FunctionNodeRotationToQuaternion.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ef8b18e01f19390a0d73acb38d776c22185271de02bd84bb87721c84b598830 +size 12264 diff --git a/manual/modeling/geometry_nodes/utilities/rotation/axis_angle_to_rotation.rst b/manual/modeling/geometry_nodes/utilities/rotation/axis_angle_to_rotation.rst new file mode 100644 index 000000000..14b3a775e --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/axis_angle_to_rotation.rst @@ -0,0 +1,28 @@ +.. index:: Geometry Nodes; Axis Angle to Rotation +.. _bpy.types.FunctionNodeAxisAngleToRotation: + +*************************** +Axis Angle to Rotation Node +*************************** + +.. figure:: /images/node-types_FunctionNodeAxisAngleToRotation.png + :align: right + :alt: Axis Angle to Rotation node. + +The *Axis Angle to Rotation* node converts a :ref:`axis angle ` rotation to a standard rotation value. + +Inputs +====== + +Axis + Unit vector representing the axis to rotate around. + +Angle + The rotation angle around the axis. + + +Outputs +======= + +Rotation + Standard rotation value. \ No newline at end of file diff --git a/manual/modeling/geometry_nodes/utilities/rotation/euler_to_rotation.rst b/manual/modeling/geometry_nodes/utilities/rotation/euler_to_rotation.rst new file mode 100644 index 000000000..eb24f322c --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/euler_to_rotation.rst @@ -0,0 +1,25 @@ +.. index:: Geometry Nodes; Euler to Rotation +.. _bpy.types.FunctionNodeEulerToRotation: + +********************** +Euler to Rotation Node +********************** + +.. figure:: /images/node-types_FunctionNodeEulerToRotation.png + :align: right + :alt: Euler to Rotation node. + +The *Euler to Rotation* node creates a rotation value from an Euler rotation. + +Inputs +====== + +Euler + The :term:`Euler` rotation. + + +Outputs +======= + +Rotation + Standard rotation value. \ No newline at end of file diff --git a/manual/modeling/geometry_nodes/utilities/rotation/index.rst b/manual/modeling/geometry_nodes/utilities/rotation/index.rst index e97fc4410..ebbe4483a 100644 --- a/manual/modeling/geometry_nodes/utilities/rotation/index.rst +++ b/manual/modeling/geometry_nodes/utilities/rotation/index.rst @@ -8,3 +8,10 @@ align_euler_to_vector.rst rotate_euler.rst + rotate_vector.rst + axis_angle_to_rotation.rst + euler_to_rotation.rst + rotation_to_euler.rst + rotation_to_quaternion.rst + quaternion_to_rotation.rst + invert_rotation.rst diff --git a/manual/modeling/geometry_nodes/utilities/rotation/invert_rotation.rst b/manual/modeling/geometry_nodes/utilities/rotation/invert_rotation.rst new file mode 100644 index 000000000..c40748e6b --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/invert_rotation.rst @@ -0,0 +1,24 @@ +.. index:: Geometry Nodes; Invert Rotation +.. _bpy.types.FunctionNodeInvertRotation: + +******************** +Invert Rotation Node +******************** + +.. figure:: /images/node-types_FunctionNodeInvertRotation.png + :align: right + :alt: Invert Rotation node. + +The *Invert Rotation* node inverts a rotation. + +Inputs +====== + +Rotation + Standard rotation value. + +Outputs +======= + +Rotation + The inverted rotation. \ No newline at end of file diff --git a/manual/modeling/geometry_nodes/utilities/rotation/quaternion_to_rotation.rst b/manual/modeling/geometry_nodes/utilities/rotation/quaternion_to_rotation.rst new file mode 100644 index 000000000..46ea27590 --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/quaternion_to_rotation.rst @@ -0,0 +1,31 @@ +.. index:: Geometry Nodes; Quaternion to Rotation +.. _bpy.types.FunctionNodeQuaternionToRotation: + +*************************** +Quaternion to Rotation Node +*************************** + +.. figure:: /images/node-types_FunctionNodeQuaternionToRotation.png + :align: right + :alt: Quaternion to Rotation node. + +The *Quaternion to Rotation* node converts a :ref:`quaternion rotation ` to a standard rotation. + +Inputs +====== + +W + The W value of the quaternion. +X + The X value of the quaternion. +Y + The Y value of the quaternion. +Z + The Z value of the quaternion. + + +Outputs +======= + +Rotation + Standard rotation value. \ No newline at end of file diff --git a/manual/modeling/geometry_nodes/utilities/rotation/rotate_euler.rst b/manual/modeling/geometry_nodes/utilities/rotation/rotate_euler.rst index 24249b399..90abb64fa 100644 --- a/manual/modeling/geometry_nodes/utilities/rotation/rotate_euler.rst +++ b/manual/modeling/geometry_nodes/utilities/rotation/rotate_euler.rst @@ -16,7 +16,7 @@ Inputs ====== Rotation - The Euler rotation to rotate. + The :term:`Euler` rotation to rotate. Rotate By Specifies how much an Euler rotation is rotated. This input is only available diff --git a/manual/modeling/geometry_nodes/utilities/rotation/rotate_vector.rst b/manual/modeling/geometry_nodes/utilities/rotation/rotate_vector.rst new file mode 100644 index 000000000..fccc39260 --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/rotate_vector.rst @@ -0,0 +1,27 @@ +.. index:: Geometry Nodes; Rotate Vector +.. _bpy.types.FunctionNodeRotateVector: + +****************** +Rotate Vector Node +****************** + +.. figure:: /images/node-types_FunctionNodeRotateVector.png + :align: right + :alt: Rotate Vector node. + +The *Rotate Vector* node rotates a vector by a given rotation value. + +Inputs +====== + +Vector + The vector to rotate. + +Rotation + Standard rotation value. + +Outputs +======= + +Vector + The rotated vector. \ No newline at end of file diff --git a/manual/modeling/geometry_nodes/utilities/rotation/rotation_to_euler.rst b/manual/modeling/geometry_nodes/utilities/rotation/rotation_to_euler.rst new file mode 100644 index 000000000..bcdb01d0c --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/rotation_to_euler.rst @@ -0,0 +1,25 @@ +.. index:: Geometry Nodes; Roation to Euler +.. _bpy.types.FunctionNodeRotationToEuler: + +********************** +Rotation to Euler Node +********************** + +.. figure:: /images/node-types_FunctionNodeRotationToEuler.png + :align: right + :alt: Rotation to Euler node. + +The *Rotation to Euler* node converts a standard rotation socket value to an Euler rotation. + +Inputs +====== + +Rotation + Standard rotation socket value. + + +Outputs +======= + +Euler + The :term:`Euler` rotation. \ No newline at end of file diff --git a/manual/modeling/geometry_nodes/utilities/rotation/rotation_to_quaternion.rst b/manual/modeling/geometry_nodes/utilities/rotation/rotation_to_quaternion.rst new file mode 100644 index 000000000..6afd4062e --- /dev/null +++ b/manual/modeling/geometry_nodes/utilities/rotation/rotation_to_quaternion.rst @@ -0,0 +1,31 @@ +.. index:: Geometry Nodes; Rotation to Quaternion +.. _bpy.types.FunctionNodeRotationToQuaternion: + +*************************** +Rotation to Quaternion Node +*************************** + +.. figure:: /images/node-types_FunctionNodeRotationToQuaternion.png + :align: right + :alt: Rotation to Quaternion node. + +The *Rotation to Quaternion* node converts a standard rotation socket value to a :ref:`quaternion rotation ` rotation. + +Inputs +====== + +Rotation + Standard rotation socket value. + + +Outputs +======= + +W + The W value of the quaternion. +X + The X value of the quaternion. +Y + The Y value of the quaternion. +Z + The Z value of the quaternion. \ No newline at end of file