mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			206 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			206 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <class name="Quat" version="3.2">
 | |
| 	<brief_description>
 | |
| 		Quaternion.
 | |
| 	</brief_description>
 | |
| 	<description>
 | |
| 		A unit quaternion used for representing 3D rotations. Quaternions need to be normalized to be used for rotation.
 | |
| 		It is similar to Basis, which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. Basis stores rotation, scale, and shearing, while Quat only stores rotation.
 | |
| 		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.
 | |
| 	</description>
 | |
| 	<tutorials>
 | |
| 		<link>https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html#interpolating-with-quaternions</link>
 | |
| 	</tutorials>
 | |
| 	<methods>
 | |
| 		<method name="Quat">
 | |
| 			<return type="Quat">
 | |
| 			</return>
 | |
| 			<argument index="0" name="from" type="Basis">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Constructs a quaternion from the given [Basis].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="Quat">
 | |
| 			<return type="Quat">
 | |
| 			</return>
 | |
| 			<argument index="0" name="euler" type="Vector3">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Constructs a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: when decomposing, 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>
 | |
| 				Constructs 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>
 | |
| 				Constructs a quaternion defined by the given 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 interpolation between quaternions [code]preA[/code], this vector, [code]b[/code], and [code]postB[/code], by the given amount [code]t[/code].
 | |
| 			</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>
 | |
| 				Returns Euler angles (in the YXZ convention: when decomposing, 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_equal_approx">
 | |
| 			<return type="bool">
 | |
| 			</return>
 | |
| 			<argument index="0" name="quat" type="Quat">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if this quaterion and [code]quat[/code] are approximately equal, by running [method @GDScript.is_equal_approx] on each component.
 | |
| 			</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>
 | |
| 				Sets 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>
 | |
| 				Sets the quaternion to a rotation specified by Euler angles (in the YXZ convention: when decomposing, 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>
 | |
| 				Returns the result of the spherical linear interpolation between this quaternion and [code]to[/code] by amount [code]weight[/code].
 | |
| 				[b]Note:[/b] Both quaternions must be normalized.
 | |
| 			</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>
 | |
| 				Returns the result of the spherical linear interpolation between this quaternion and [code]to[/code] by amount [code]weight[/code], but without checking if the rotation path is not bigger than 90 degrees.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="xform">
 | |
| 			<return type="Vector3">
 | |
| 			</return>
 | |
| 			<argument index="0" name="v" type="Vector3">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns a vector transformed (multiplied) by this quaternion.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 	</methods>
 | |
| 	<members>
 | |
| 		<member name="w" type="float" setter="" getter="" default="1.0">
 | |
| 			W component of the quaternion (real part).
 | |
| 			Quaternion components should usually not be manipulated directly.
 | |
| 		</member>
 | |
| 		<member name="x" type="float" setter="" getter="" default="0.0">
 | |
| 			X component of the quaternion (imaginary [code]i[/code] axis part).
 | |
| 			Quaternion components should usually not be manipulated directly.
 | |
| 		</member>
 | |
| 		<member name="y" type="float" setter="" getter="" default="0.0">
 | |
| 			Y component of the quaternion (imaginary [code]j[/code] axis part).
 | |
| 			Quaternion components should usually not be manipulated directly.
 | |
| 		</member>
 | |
| 		<member name="z" type="float" setter="" getter="" default="0.0">
 | |
| 			Z component of the quaternion (imaginary [code]k[/code] axis part).
 | |
| 			Quaternion components should usually not be manipulated directly.
 | |
| 		</member>
 | |
| 	</members>
 | |
| 	<constants>
 | |
| 		<constant name="IDENTITY" value="Quat( 0, 0, 0, 1 )">
 | |
| 			The identity quaternion, representing no rotation. Equivalent to an identity [Basis] matrix. If a vector is transformed by an identity quaternion, it will not change.
 | |
| 		</constant>
 | |
| 	</constants>
 | |
| </class>
 | 
