2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2019-04-01 12:33:56 +02:00
<class name= "Quat" category= "Built-In Types" version= "3.2" >
2017-09-12 22:42:36 +02:00
<brief_description >
Quaternion.
</brief_description>
<description >
2018-05-12 02:14:39 +02:00
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.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2018-11-05 08:46:27 +01:00
<link > https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html#interpolating-with-quaternions</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<methods >
<method name= "Quat" >
<return type= "Quat" >
</return>
2018-05-28 14:53:15 +02:00
<argument index= "0" name= "from" type= "Basis" >
2017-09-12 22:42:36 +02:00
</argument>
<description >
2018-05-28 14:53:15 +02:00
Returns the rotation matrix corresponding to the given quaternion.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "Quat" >
<return type= "Quat" >
</return>
2018-05-28 14:53:15 +02:00
<argument index= "0" name= "euler" type= "Vector3" >
2017-09-12 22:42:36 +02:00
</argument>
<description >
2018-05-28 14:53:15 +02:00
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).
2017-09-12 22:42:36 +02:00
</description>
</method>
2018-05-12 02:14:39 +02:00
<method name= "Quat" >
<return type= "Quat" >
</return>
2018-05-28 14:53:15 +02:00
<argument index= "0" name= "axis" type= "Vector3" >
</argument>
<argument index= "1" name= "angle" type= "float" >
2018-05-12 02:14:39 +02:00
</argument>
<description >
2018-05-28 14:53:15 +02:00
Returns a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector.
2018-05-12 02:14:39 +02:00
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "Quat" >
<return type= "Quat" >
</return>
2018-05-28 14:53:15 +02:00
<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" >
2017-09-12 22:42:36 +02:00
</argument>
<description >
2018-05-28 14:53:15 +02:00
Returns a quaternion defined by these values.
2017-09-12 22:42:36 +02:00
</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 >
2017-10-22 22:43:35 +02:00
Performs a cubic spherical-linear interpolation with another quaternion.
2017-09-12 22:42:36 +02:00
</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>
2018-05-12 02:14:39 +02:00
<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>
2017-09-12 22:42:36 +02:00
<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>
2018-05-12 02:14:39 +02:00
<method name= "set_axis_angle" >
<argument index= "0" name= "axis" type= "Vector3" >
</argument>
2018-05-28 14:53:15 +02:00
<argument index= "1" name= "angle" type= "float" >
2018-05-12 02:14:39 +02:00
</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>
2017-09-12 22:42:36 +02:00
<method name= "slerp" >
<return type= "Quat" >
</return>
<argument index= "0" name= "b" type= "Quat" >
</argument>
<argument index= "1" name= "t" type= "float" >
</argument>
<description >
2017-10-22 22:43:35 +02:00
Performs a spherical-linear interpolation with another quaternion.
2017-09-12 22:42:36 +02:00
</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 >
2017-10-24 19:22:37 +02:00
Performs a spherical-linear interpolation with another quaterion without checking if the rotation path is not bigger than 90°.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "xform" >
<return type= "Vector3" >
</return>
<argument index= "0" name= "v" type= "Vector3" >
</argument>
<description >
2017-10-22 22:43:35 +02:00
Transforms the vector [code]v[/code] by this quaternion.
2017-09-12 22:42:36 +02:00
</description>
</method>
</methods>
<members >
2017-09-13 08:49:40 +02:00
<member name= "w" type= "float" setter= "" getter= "" >
2017-10-22 22:43:35 +02:00
W component of the quaternion. Default value: [code]1[/code]
2017-09-12 22:42:36 +02:00
</member>
2017-09-13 08:49:40 +02:00
<member name= "x" type= "float" setter= "" getter= "" >
2017-10-22 22:43:35 +02:00
X component of the quaternion. Default value: [code]0[/code]
2017-09-12 22:42:36 +02:00
</member>
2017-09-13 08:49:40 +02:00
<member name= "y" type= "float" setter= "" getter= "" >
2017-10-22 22:43:35 +02:00
Y component of the quaternion. Default value: [code]0[/code]
2017-09-12 22:42:36 +02:00
</member>
2017-09-13 08:49:40 +02:00
<member name= "z" type= "float" setter= "" getter= "" >
2017-10-22 22:43:35 +02:00
Z component of the quaternion. Default value: [code]0[/code]
2017-09-12 22:42:36 +02:00
</member>
</members>
<constants >
2018-08-21 00:35:30 +02:00
<constant name= "IDENTITY" value= "Quat( 0, 0, 0, 1 )" >
</constant>
2017-09-12 22:42:36 +02:00
</constants>
</class>