123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <class name="Quat" category="Built-In Types" version="3.1">
- <brief_description>
- Quaternion.
- </brief_description>
- <description>
- A unit quaternion used for representing 3D rotations.
- It is similar to [Basis], which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. But due to its compactness and the way it is stored in memory, certain operations (obtaining axis-angle and performing SLERP, in particular) are more efficient and robust against floating point errors.
- Quaternions need to be (re)normalized.
- </description>
- <tutorials>
- <link>https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html#interpolating-with-quaternions</link>
- <link>https://docs.godotengine.org/en/latest/tutorials/math/rotations.html</link>
- </tutorials>
- <demos>
- </demos>
- <methods>
- <method name="Quat">
- <return type="Quat">
- </return>
- <argument index="0" name="from" type="Basis">
- </argument>
- <description>
- Returns the rotation matrix corresponding to the given quaternion.
- </description>
- </method>
- <method name="Quat">
- <return type="Quat">
- </return>
- <argument index="0" name="euler" type="Vector3">
- </argument>
- <description>
- Returns a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: first Z, then X, and Y last), given in the vector format as (X-angle, Y-angle, Z-angle).
- </description>
- </method>
- <method name="Quat">
- <return type="Quat">
- </return>
- <argument index="0" name="axis" type="Vector3">
- </argument>
- <argument index="1" name="angle" type="float">
- </argument>
- <description>
- Returns a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector.
- </description>
- </method>
- <method name="Quat">
- <return type="Quat">
- </return>
- <argument index="0" name="x" type="float">
- </argument>
- <argument index="1" name="y" type="float">
- </argument>
- <argument index="2" name="z" type="float">
- </argument>
- <argument index="3" name="w" type="float">
- </argument>
- <description>
- Returns a quaternion defined by these values.
- </description>
- </method>
- <method name="cubic_slerp">
- <return type="Quat">
- </return>
- <argument index="0" name="b" type="Quat">
- </argument>
- <argument index="1" name="pre_a" type="Quat">
- </argument>
- <argument index="2" name="post_b" type="Quat">
- </argument>
- <argument index="3" name="t" type="float">
- </argument>
- <description>
- Performs a cubic spherical-linear interpolation with another quaternion.
- </description>
- </method>
- <method name="dot">
- <return type="float">
- </return>
- <argument index="0" name="b" type="Quat">
- </argument>
- <description>
- Returns the dot product of two quaternions.
- </description>
- </method>
- <method name="get_euler">
- <return type="Vector3">
- </return>
- <description>
- Return Euler angles (in the YXZ convention: first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X-angle, Y-angle, Z-angle).
- </description>
- </method>
- <method name="inverse">
- <return type="Quat">
- </return>
- <description>
- Returns the inverse of the quaternion.
- </description>
- </method>
- <method name="is_normalized">
- <return type="bool">
- </return>
- <description>
- Returns whether the quaternion is normalized or not.
- </description>
- </method>
- <method name="length">
- <return type="float">
- </return>
- <description>
- Returns the length of the quaternion.
- </description>
- </method>
- <method name="length_squared">
- <return type="float">
- </return>
- <description>
- Returns the length of the quaternion, squared.
- </description>
- </method>
- <method name="normalized">
- <return type="Quat">
- </return>
- <description>
- Returns a copy of the quaternion, normalized to unit length.
- </description>
- </method>
- <method name="set_axis_angle">
- <argument index="0" name="axis" type="Vector3">
- </argument>
- <argument index="1" name="angle" type="float">
- </argument>
- <description>
- Set the quaternion to a rotation which rotates around axis by the specified angle, in radians. The axis must be a normalized vector.
- </description>
- </method>
- <method name="set_euler">
- <argument index="0" name="euler" type="Vector3">
- </argument>
- <description>
- Set the quaternion to a rotation specified by Euler angles (in the YXZ convention: first Z, then X, and Y last), given in the vector format as (X-angle, Y-angle, Z-angle).
- </description>
- </method>
- <method name="slerp">
- <return type="Quat">
- </return>
- <argument index="0" name="b" type="Quat">
- </argument>
- <argument index="1" name="t" type="float">
- </argument>
- <description>
- Performs a spherical-linear interpolation with another quaternion.
- </description>
- </method>
- <method name="slerpni">
- <return type="Quat">
- </return>
- <argument index="0" name="b" type="Quat">
- </argument>
- <argument index="1" name="t" type="float">
- </argument>
- <description>
- Performs a spherical-linear interpolation with another quaterion without checking if the rotation path is not bigger than 90°.
- </description>
- </method>
- <method name="xform">
- <return type="Vector3">
- </return>
- <argument index="0" name="v" type="Vector3">
- </argument>
- <description>
- Transforms the vector [code]v[/code] by this quaternion.
- </description>
- </method>
- </methods>
- <members>
- <member name="w" type="float" setter="" getter="">
- W component of the quaternion. Default value: [code]1[/code]
- </member>
- <member name="x" type="float" setter="" getter="">
- X component of the quaternion. Default value: [code]0[/code]
- </member>
- <member name="y" type="float" setter="" getter="">
- Y component of the quaternion. Default value: [code]0[/code]
- </member>
- <member name="z" type="float" setter="" getter="">
- Z component of the quaternion. Default value: [code]0[/code]
- </member>
- </members>
- <constants>
- <constant name="IDENTITY" value="Quat( 0, 0, 0, 1 )">
- </constant>
- </constants>
- </class>
|