1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-18 14:21:41 +00:00
Files
godot/doc/classes/Line2D.xml
Rémi Verschelde 32ddd4f4e0 Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).

(cherry picked from commit 81064cc239)
2024-09-11 12:41:48 +02:00

133 lines
7.8 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="Line2D" inherits="Node2D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A 2D line.
</brief_description>
<description>
A line through several points in 2D space. Supports varying width and color over the line's length, texturing, and several cap/joint types.
[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].
</description>
<tutorials>
<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>
</tutorials>
<methods>
<method name="add_point">
<return type="void" />
<argument index="0" name="position" type="Vector2" />
<argument index="1" name="index" type="int" default="-1" />
<description>
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].
</description>
</method>
<method name="clear_points">
<return type="void" />
<description>
Removes all points from the line.
</description>
</method>
<method name="get_point_count" qualifiers="const">
<return type="int" />
<description>
Returns the amount of points in the line.
</description>
</method>
<method name="get_point_position" qualifiers="const">
<return type="Vector2" />
<argument index="0" name="index" type="int" />
<description>
Returns the position of the point at index [code]index[/code].
</description>
</method>
<method name="remove_point">
<return type="void" />
<argument index="0" name="index" type="int" />
<description>
Removes the point at index [code]index[/code] from the line.
</description>
</method>
<method name="set_point_position">
<return type="void" />
<argument index="0" name="index" type="int" />
<argument index="1" name="position" type="Vector2" />
<description>
Overwrites the position of the point at index [code]index[/code] with the supplied [code]position[/code].
</description>
</method>
</methods>
<members>
<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased" default="false">
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.
</member>
<member name="begin_cap_mode" type="int" setter="set_begin_cap_mode" getter="get_begin_cap_mode" enum="Line2D.LineCapMode" default="0">
Controls the style of the line's first point. Use [enum LineCapMode] constants.
</member>
<member name="default_color" type="Color" setter="set_default_color" getter="get_default_color" default="Color( 0.4, 0.5, 1, 1 )">
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" default="0">
Controls the style of the line's last point. Use [enum LineCapMode] constants.
</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" default="0">
The style for the points between the start and the end.
</member>
<member name="points" type="PoolVector2Array" setter="set_points" getter="get_points" default="PoolVector2Array( )">
The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.
</member>
<member name="round_precision" type="int" setter="set_round_precision" getter="get_round_precision" default="8">
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.
</member>
<member name="sharp_limit" type="float" setter="set_sharp_limit" getter="get_sharp_limit" default="2.0">
The direction difference in radians between vector points. This value is only used if [member joint_mode] is set to [constant LINE_JOINT_SHARP].
</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" default="0">
The style to render the [code]texture[/code] on the line. Use [enum LineTextureMode] constants.
</member>
<member name="width" type="float" setter="set_width" getter="get_width" default="10.0">
The line's width.
</member>
<member name="width_curve" type="Curve" setter="set_curve" getter="get_curve">
The line's width varies with the curve. The original width is simply multiply by the value of the Curve.
</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 draw 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 must be imported with [b]Repeat[/b] 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 [b]Repeat[/b] disabled for best results.
</constant>
</constants>
</class>