<?xml version="1.0" encoding="UTF-8" ?>
<class name="Line2D" inherits="Node2D" category="Core" version="3.2">
	<brief_description>
		A 2D line.
	</brief_description>
	<description>
		A line through several points in 2D space.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_point">
			<return type="void">
			</return>
			<argument index="0" name="position" type="Vector2">
			</argument>
			<argument index="1" name="at_position" type="int" default="-1">
			</argument>
			<description>
				Add a point at the [code]position[/code]. Appends the point at the end of the line.
				If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position &lt; 0[/code] or [code]at_position &gt;= [method get_point_count][/code]), the point will be appended at the end of the point list.
			</description>
		</method>
		<method name="clear_points">
			<return type="void">
			</return>
			<description>
				Removes all points from the line.
			</description>
		</method>
		<method name="get_point_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the Line2D's amount of points.
			</description>
		</method>
		<method name="get_point_position" qualifiers="const">
			<return type="Vector2">
			</return>
			<argument index="0" name="i" type="int">
			</argument>
			<description>
				Returns point [code]i[/code]'s position.
			</description>
		</method>
		<method name="remove_point">
			<return type="void">
			</return>
			<argument index="0" name="i" type="int">
			</argument>
			<description>
				Remove the point at index [code]i[/code] from the line.
			</description>
		</method>
		<method name="set_point_position">
			<return type="void">
			</return>
			<argument index="0" name="i" type="int">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<description>
				Overwrites the position in point [code]i[/code] with the supplied [code]position[/code].
			</description>
		</method>
	</methods>
	<members>
		<member name="begin_cap_mode" type="int" setter="set_begin_cap_mode" getter="get_begin_cap_mode" enum="Line2D.LineCapMode">
			Controls the style of the line's first point. Use [code]LINE_CAP_*[/code] constants. Default value: [code]LINE_CAP_NONE[/code].
		</member>
		<member name="default_color" type="Color" setter="set_default_color" getter="get_default_color">
			The line's color. Will not be used if a gradient is set.
		</member>
		<member name="end_cap_mode" type="int" setter="set_end_cap_mode" getter="get_end_cap_mode" enum="Line2D.LineCapMode">
			Controls the style of the line's last point. Use [code]LINE_CAP_*[/code] constants. Default value: [code]LINE_CAP_NONE[/code].
		</member>
		<member name="gradient" type="Gradient" setter="set_gradient" getter="get_gradient">
			The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.
		</member>
		<member name="joint_mode" type="int" setter="set_joint_mode" getter="get_joint_mode" enum="Line2D.LineJointMode">
			The style for the points between the start and the end.
		</member>
		<member name="points" type="PoolVector2Array" setter="set_points" getter="get_points">
			The points that form the lines. The line is drawn between every point set in this array.
		</member>
		<member name="round_precision" type="int" setter="set_round_precision" getter="get_round_precision">
			The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.
		</member>
		<member name="sharp_limit" type="float" setter="set_sharp_limit" getter="get_sharp_limit">
			The direction difference in radians between vector points. This value is only used if [code]joint mode[/code] is set to [code]LINE_JOINT_SHARP[/code].
		</member>
		<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
			The texture used for the line's texture. Uses [code]texture_mode[/code] for drawing style.
		</member>
		<member name="texture_mode" type="int" setter="set_texture_mode" getter="get_texture_mode" enum="Line2D.LineTextureMode">
			The style to render the [code]texture[/code] on the line. Use [code]LINE_TEXTURE_*[/code] constants. Default value: [code]LINE_TEXTURE_NONE[/code].
		</member>
		<member name="width" type="float" setter="set_width" getter="get_width">
			The line's width.
		</member>
	</members>
	<constants>
		<constant name="LINE_JOINT_SHARP" value="0" enum="LineJointMode">
			The line's joints will be pointy. If [code]sharp_limit[/code] is greater than the rotation of a joint, it becomes a bevel joint instead.
		</constant>
		<constant name="LINE_JOINT_BEVEL" value="1" enum="LineJointMode">
			The line's joints will be bevelled/chamfered.
		</constant>
		<constant name="LINE_JOINT_ROUND" value="2" enum="LineJointMode">
			The line's joints will be rounded.
		</constant>
		<constant name="LINE_CAP_NONE" value="0" enum="LineCapMode">
			Don't have a line cap.
		</constant>
		<constant name="LINE_CAP_BOX" value="1" enum="LineCapMode">
			Draws the line cap as a box.
		</constant>
		<constant name="LINE_CAP_ROUND" value="2" enum="LineCapMode">
			Draws the line cap as a circle.
		</constant>
		<constant name="LINE_TEXTURE_NONE" value="0" enum="LineTextureMode">
			Takes the left pixels of the texture and renders it over the whole line.
		</constant>
		<constant name="LINE_TEXTURE_TILE" value="1" enum="LineTextureMode">
			Tiles the texture over the line. The texture need to be imported with Repeat Enabled for it to work properly.
		</constant>
		<constant name="LINE_TEXTURE_STRETCH" value="2" enum="LineTextureMode">
			Stretches the texture across the line. Import the texture with Repeat Disabled for best results.
		</constant>
	</constants>
</class>