mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 21:51:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			225 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			225 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <class name="Curve" inherits="Resource" category="Core" version="3.2">
 | |
| 	<brief_description>
 | |
| 		A mathematic curve.
 | |
| 	</brief_description>
 | |
| 	<description>
 | |
| 		A curve that can be saved and re-used for other objects. By default, it ranges between [code]0[/code] and [code]1[/code] on the Y axis and positions points relative to the [code]0.5[/code] Y position.
 | |
| 	</description>
 | |
| 	<tutorials>
 | |
| 	</tutorials>
 | |
| 	<methods>
 | |
| 		<method name="add_point">
 | |
| 			<return type="int">
 | |
| 			</return>
 | |
| 			<argument index="0" name="position" type="Vector2">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="left_tangent" type="float" default="0">
 | |
| 			</argument>
 | |
| 			<argument index="2" name="right_tangent" type="float" default="0">
 | |
| 			</argument>
 | |
| 			<argument index="3" name="left_mode" type="int" enum="Curve.TangentMode" default="0">
 | |
| 			</argument>
 | |
| 			<argument index="4" name="right_mode" type="int" enum="Curve.TangentMode" default="0">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Adds a point to the curve. For each side, if the [code]*_mode[/code] is [constant TANGENT_LINEAR], the [code]*_tangent[/code] angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the [code]*_tangent[/code] angle if [code]*_mode[/code] is set to [constant TANGENT_FREE].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="bake">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Recomputes the baked cache of points for the curve.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="clean_dupes">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Removes points that are closer than [code]CMP_EPSILON[/code] (0.00001) units to their neighbor on the curve.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="clear_points">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Removes all points from the curve.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_point_count" qualifiers="const">
 | |
| 			<return type="int">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Returns the number of points describing the curve.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_point_left_mode" qualifiers="const">
 | |
| 			<return type="int" enum="Curve.TangentMode">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the left [enum TangentMode] for the point at [code]index[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_point_left_tangent" qualifiers="const">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the left tangent angle (in degrees) for the point at [code]index[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_point_position" qualifiers="const">
 | |
| 			<return type="Vector2">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the curve coordinates for the point at [code]index[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_point_right_mode" qualifiers="const">
 | |
| 			<return type="int" enum="Curve.TangentMode">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the right [enum TangentMode] for the point at [code]index[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_point_right_tangent" qualifiers="const">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the right tangent angle (in degrees) for the point at [code]index[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="interpolate" qualifiers="const">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<argument index="0" name="offset" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the Y value for the point that would exist at the X position [code]offset[/code] along the curve.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="interpolate_baked">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<argument index="0" name="offset" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Returns the Y value for the point that would exist at the X position [code]offset[/code] along the curve using the baked cache. Bakes the curve's points if not already baked.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="remove_point">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Removes the point at [code]index[/code] from the curve.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_point_left_mode">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="mode" type="int" enum="Curve.TangentMode">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Sets the left [enum TangentMode] for the point at [code]index[/code] to [code]mode[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_point_left_tangent">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="tangent" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Sets the left tangent angle for the point at [code]index[/code] to [code]tangent[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_point_offset">
 | |
| 			<return type="int">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="offset" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Sets the offset from [code]0.5[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_point_right_mode">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="mode" type="int" enum="Curve.TangentMode">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Sets the right [enum TangentMode] for the point at [code]index[/code] to [code]mode[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_point_right_tangent">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="tangent" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Sets the right tangent angle for the point at [code]index[/code] to [code]tangent[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_point_value">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="index" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="y" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Assigns the vertical position [code]y[/code] to the point at [code]index[/code].
 | |
| 			</description>
 | |
| 		</method>
 | |
| 	</methods>
 | |
| 	<members>
 | |
| 		<member name="bake_resolution" type="int" setter="set_bake_resolution" getter="get_bake_resolution" default="100">
 | |
| 			The number of points to include in the baked (i.e. cached) curve data.
 | |
| 		</member>
 | |
| 		<member name="max_value" type="float" setter="set_max_value" getter="get_max_value" default="1.0">
 | |
| 			The maximum value the curve can reach.
 | |
| 		</member>
 | |
| 		<member name="min_value" type="float" setter="set_min_value" getter="get_min_value" default="0.0">
 | |
| 			The minimum value the curve can reach.
 | |
| 		</member>
 | |
| 	</members>
 | |
| 	<signals>
 | |
| 		<signal name="range_changed">
 | |
| 			<description>
 | |
| 				Emitted when [member max_value] or [member min_value] is changed.
 | |
| 			</description>
 | |
| 		</signal>
 | |
| 	</signals>
 | |
| 	<constants>
 | |
| 		<constant name="TANGENT_FREE" value="0" enum="TangentMode">
 | |
| 			The tangent on this side of the point is user-defined.
 | |
| 		</constant>
 | |
| 		<constant name="TANGENT_LINEAR" value="1" enum="TangentMode">
 | |
| 			The curve calculates the tangent on this side of the point as the slope halfway towards the adjacent point.
 | |
| 		</constant>
 | |
| 		<constant name="TANGENT_MODE_COUNT" value="2" enum="TangentMode">
 | |
| 			The total number of available tangent modes.
 | |
| 		</constant>
 | |
| 	</constants>
 | |
| </class>
 | 
