Line2D

Inherits: Node2D < CanvasItem < Node < Object

A 2D line.

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.

Note: 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 ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb and ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb.

Tutorials

Properties

bool

antialiased

false

LineCapMode

begin_cap_mode

0

Color

default_color

Color( 0.4, 0.5, 1, 1 )

LineCapMode

end_cap_mode

0

Gradient

gradient

LineJointMode

joint_mode

0

PoolVector2Array

points

PoolVector2Array(  )

int

round_precision

8

float

sharp_limit

2.0

Texture

texture

LineTextureMode

texture_mode

0

float

width

10.0

Curve

width_curve

Methods

void

add_point ( Vector2 position, int at_position=-1 )

void

clear_points ( )

int

get_point_count ( ) const

Vector2

get_point_position ( int i ) const

void

remove_point ( int i )

void

set_point_position ( int i, Vector2 position )

Enumerations

enum LineJointMode:

  • LINE_JOINT_SHARP = 0 —- The line’s joints will be pointy. If sharp_limit is greater than the rotation of a joint, it becomes a bevel joint instead.

  • LINE_JOINT_BEVEL = 1 —- The line’s joints will be bevelled/chamfered.

  • LINE_JOINT_ROUND = 2 —- The line’s joints will be rounded.


enum LineCapMode:

  • LINE_CAP_NONE = 0 —- Don’t draw a line cap.

  • LINE_CAP_BOX = 1 —- Draws the line cap as a box.

  • LINE_CAP_ROUND = 2 —- Draws the line cap as a circle.


enum LineTextureMode:

  • LINE_TEXTURE_NONE = 0 —- Takes the left pixels of the texture and renders it over the whole line.

  • LINE_TEXTURE_TILE = 1 —- Tiles the texture over the line. The texture must be imported with Repeat enabled for it to work properly.

  • LINE_TEXTURE_STRETCH = 2 —- Stretches the texture across the line. Import the texture with Repeat disabled for best results.

Property Descriptions

Default

false

Setter

set_antialiased(value)

Getter

get_antialiased()

If true, the line’s border will attempt to perform antialiasing by drawing thin OpenGL smooth lines on the line’s edges.

Note: Line2D is not accelerated by batching if antialiased is true.

Note: 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 Antialiased Line2D 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.


Default

0

Setter

set_begin_cap_mode(value)

Getter

get_begin_cap_mode()

Controls the style of the line’s first point. Use LineCapMode constants.


Default

Color( 0.4, 0.5, 1, 1 )

Setter

set_default_color(value)

Getter

get_default_color()

The line’s color. Will not be used if a gradient is set.


Default

0

Setter

set_end_cap_mode(value)

Getter

get_end_cap_mode()

Controls the style of the line’s last point. Use LineCapMode constants.


Setter

set_gradient(value)

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.


Default

0

Setter

set_joint_mode(value)

Getter

get_joint_mode()

The style for the points between the start and the end.


Default

PoolVector2Array(  )

Setter

set_points(value)

Getter

get_points()

The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.


  • int round_precision

Default

8

Setter

set_round_precision(value)

Getter

get_round_precision()

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.

Note: The default value is tuned for lines with the default width. For thin lines, this value should be reduced to a number between 2 and 4 to improve performance.


Default

2.0

Setter

set_sharp_limit(value)

Getter

get_sharp_limit()

The direction difference in radians between vector points. This value is only used if joint_mode is set to LINE_JOINT_SHARP.


Setter

set_texture(value)

Getter

get_texture()

The texture used for the line’s texture. Uses texture_mode for drawing style.


Default

0

Setter

set_texture_mode(value)

Getter

get_texture_mode()

The style to render the texture on the line. Use LineTextureMode constants.


Default

10.0

Setter

set_width(value)

Getter

get_width()

The line’s width.


Setter

set_curve(value)

Getter

get_curve()

The line’s width varies with the curve. The original width is simply multiply by the value of the Curve.

Method Descriptions

  • void add_point ( Vector2 position, int at_position=-1 )

Adds a point at the position. Appends the point at the end of the line.

If at_position is given, the point is inserted before the point number at_position, moving that point (and every point after) after the inserted point. If at_position is not given, or is an illegal value (at_position < 0 or at_position >= [method get_point_count]), the point will be appended at the end of the point list.


  • void clear_points ( )

Removes all points from the line.


  • int get_point_count ( ) const

Returns the Line2D’s amount of points.


Returns point i‘s position.


  • void remove_point ( int i )

Removes the point at index i from the line.


  • void set_point_position ( int i, Vector2 position )

Overwrites the position in point i with the supplied position.