2017-09-12 20:42:36 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 08:08:05 +00:00
<class name= "Line2D" inherits= "Node2D" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 20:42:36 +00:00
<brief_description >
A 2D line.
</brief_description>
<description >
2022-04-06 17:52:55 +00:00
A line through several points in 2D space. Supports varying width and color over the line's length, texturing, and several cap/joint types.
2020-01-28 20:59:48 +00:00
[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase [member ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and [member ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb].
2017-09-12 20:42:36 +00:00
</description>
<tutorials >
2020-10-01 08:34:47 +00:00
<link title= "Matrix Transform Demo" > https://godotengine.org/asset-library/asset/584</link>
<link title= "2.5D Demo" > https://godotengine.org/asset-library/asset/583</link>
2017-09-12 20:42:36 +00:00
</tutorials>
<methods >
<method name= "add_point" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "position" type= "Vector2" />
2022-08-19 12:41:59 +00:00
<argument index= "1" name= "index" type= "int" default= "-1" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-19 12:41:59 +00:00
Adds a point with the specified [code]position[/code] relative to the line's own position. Appends the new point at the end of the point list.
If [code]index[/code] is given, the new point is inserted before the existing point identified by index [code]index[/code]. Every existing point starting from [code]index[/code] is shifted further down the list of points. The index must be greater than or equal to [code]0[/code] and must not exceed the number of existing points in the line. See [method get_point_count].
2017-09-12 20:42:36 +00:00
</description>
</method>
2019-03-19 16:59:24 +00:00
<method name= "clear_points" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2019-03-19 16:59:24 +00:00
<description >
Removes all points from the line.
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "get_point_count" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-19 12:41:59 +00:00
Returns the amount of points in the line.
2017-09-12 20:42:36 +00:00
</description>
</method>
2017-09-10 13:37:49 +00:00
<method name= "get_point_position" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "Vector2" />
2022-08-19 12:41:59 +00:00
<argument index= "0" name= "index" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-19 12:41:59 +00:00
Returns the position of the point at index [code]index[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "remove_point" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-08-19 12:41:59 +00:00
<argument index= "0" name= "index" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-19 12:41:59 +00:00
Removes the point at index [code]index[/code] from the line.
2017-09-12 20:42:36 +00:00
</description>
</method>
2017-09-10 13:37:49 +00:00
<method name= "set_point_position" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-08-19 12:41:59 +00:00
<argument index= "0" name= "index" type= "int" />
2021-07-30 13:28:05 +00:00
<argument index= "1" name= "position" type= "Vector2" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-19 12:41:59 +00:00
Overwrites the position of the point at index [code]index[/code] with the supplied [code]position[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
</methods>
<members >
2019-11-24 10:00:02 +00:00
<member name= "antialiased" type= "bool" setter= "set_antialiased" getter= "get_antialiased" default= "false" >
2022-04-06 17:52:55 +00:00
If [code]true[/code], the line's border will attempt to perform antialiasing by drawing thin OpenGL smooth lines on the line's edges.
[b]Note:[/b] Line2D is not accelerated by batching if [member antialiased] is [code]true[/code].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
2019-11-24 10:00:02 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "begin_cap_mode" type= "int" setter= "set_begin_cap_mode" getter= "get_begin_cap_mode" enum= "Line2D.LineCapMode" default= "0" >
2019-12-06 22:09:20 +00:00
Controls the style of the line's first point. Use [enum LineCapMode] constants.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "default_color" type= "Color" setter= "set_default_color" getter= "get_default_color" default= "Color( 0.4, 0.5, 1, 1 )" >
2017-10-01 22:12:14 +00:00
The line's color. Will not be used if a gradient is set.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "end_cap_mode" type= "int" setter= "set_end_cap_mode" getter= "get_end_cap_mode" enum= "Line2D.LineCapMode" default= "0" >
2019-12-06 22:09:20 +00:00
Controls the style of the line's last point. Use [enum LineCapMode] constants.
2017-09-12 20:42:36 +00:00
</member>
2019-07-15 18:42:47 +00:00
<member name= "gradient" type= "Gradient" setter= "set_gradient" getter= "get_gradient" >
2017-10-01 22:12:14 +00:00
The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "joint_mode" type= "int" setter= "set_joint_mode" getter= "get_joint_mode" enum= "Line2D.LineJointMode" default= "0" >
2018-01-18 20:37:17 +00:00
The style for the points between the start and the end.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "points" type= "PoolVector2Array" setter= "set_points" getter= "get_points" default= "PoolVector2Array( )" >
2020-08-20 17:54:58 +00:00
The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "round_precision" type= "int" setter= "set_round_precision" getter= "get_round_precision" default= "8" >
2022-02-16 23:21:00 +00:00
The smoothness of the rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. This is only used if a cap or joint is set as round.
[b]Note:[/b] The default value is tuned for lines with the default [member width]. For thin lines, this value should be reduced to a number between [code]2[/code] and [code]4[/code] to improve performance.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "sharp_limit" type= "float" setter= "set_sharp_limit" getter= "get_sharp_limit" default= "2.0" >
2021-12-02 08:15:13 +00:00
The direction difference in radians between vector points. This value is only used if [member joint_mode] is set to [constant LINE_JOINT_SHARP].
2017-09-12 20:42:36 +00:00
</member>
2019-07-15 18:42:47 +00:00
<member name= "texture" type= "Texture" setter= "set_texture" getter= "get_texture" >
2017-10-01 22:12:14 +00:00
The texture used for the line's texture. Uses [code]texture_mode[/code] for drawing style.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 19:45:14 +00:00
<member name= "texture_mode" type= "int" setter= "set_texture_mode" getter= "get_texture_mode" enum= "Line2D.LineTextureMode" default= "0" >
2019-12-06 22:09:20 +00:00
The style to render the [code]texture[/code] on the line. Use [enum LineTextureMode] constants.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "width" type= "float" setter= "set_width" getter= "get_width" default= "10.0" >
2017-10-01 22:12:14 +00:00
The line's width.
2017-09-12 20:42:36 +00:00
</member>
2019-07-15 18:42:47 +00:00
<member name= "width_curve" type= "Curve" setter= "set_curve" getter= "get_curve" >
2019-05-01 04:50:01 +00:00
The line's width varies with the curve. The original width is simply multiply by the value of the Curve.
</member>
2017-09-12 20:42:36 +00:00
</members>
<constants >
2017-11-24 22:16:30 +00:00
<constant name= "LINE_JOINT_SHARP" value= "0" enum= "LineJointMode" >
2017-10-01 22:12:14 +00:00
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.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_JOINT_BEVEL" value= "1" enum= "LineJointMode" >
2017-10-01 22:12:14 +00:00
The line's joints will be bevelled/chamfered.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_JOINT_ROUND" value= "2" enum= "LineJointMode" >
2017-10-01 22:12:14 +00:00
The line's joints will be rounded.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_CAP_NONE" value= "0" enum= "LineCapMode" >
2019-06-21 23:04:47 +00:00
Don't draw a line cap.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_CAP_BOX" value= "1" enum= "LineCapMode" >
2017-10-01 22:12:14 +00:00
Draws the line cap as a box.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_CAP_ROUND" value= "2" enum= "LineCapMode" >
2017-10-01 22:12:14 +00:00
Draws the line cap as a circle.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_TEXTURE_NONE" value= "0" enum= "LineTextureMode" >
2017-10-01 22:12:14 +00:00
Takes the left pixels of the texture and renders it over the whole line.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "LINE_TEXTURE_TILE" value= "1" enum= "LineTextureMode" >
2019-06-21 23:04:47 +00:00
Tiles the texture over the line. The texture must be imported with [b]Repeat[/b] enabled for it to work properly.
2017-09-12 20:42:36 +00:00
</constant>
2018-07-16 12:31:19 +00:00
<constant name= "LINE_TEXTURE_STRETCH" value= "2" enum= "LineTextureMode" >
2019-06-21 23:04:47 +00:00
Stretches the texture across the line. Import the texture with [b]Repeat[/b] disabled for best results.
2018-07-16 12:31:19 +00:00
</constant>
2017-09-12 20:42:36 +00:00
</constants>
</class>