Polygon2D

Inherits: Node2D < CanvasItem < Node < Object

A 2D polygon.

Description

A Polygon2D is defined by a set of points. Each point is connected to the next, with the final point being connected to the first, resulting in a closed polygon. Polygon2Ds can be filled with color (solid or gradient) or filled with a given texture.

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.

Properties

bool

antialiased

false

Array

bones

[  ]

Color

color

Color( 1, 1, 1, 1 )

int

internal_vertex_count

0

float

invert_border

100.0

bool

invert_enable

false

Vector2

offset

Vector2( 0, 0 )

PoolVector2Array

polygon

PoolVector2Array(  )

Array

polygons

[  ]

NodePath

skeleton

NodePath(“”)

Texture

texture

Vector2

texture_offset

Vector2( 0, 0 )

float

texture_rotation

float

texture_rotation_degrees

0.0

Vector2

texture_scale

Vector2( 1, 1 )

PoolVector2Array

uv

PoolVector2Array(  )

PoolColorArray

vertex_colors

PoolColorArray(  )

Methods

void

add_bone ( NodePath path, PoolRealArray weights )

void

clear_bones ( )

void

erase_bone ( int index )

int

get_bone_count ( ) const

NodePath

get_bone_path ( int index ) const

PoolRealArray

get_bone_weights ( int index ) const

void

set_bone_path ( int index, NodePath path )

void

set_bone_weights ( int index, PoolRealArray weights )

Property Descriptions

Default

false

Setter

set_antialiased(value)

Getter

get_antialiased()

If true, attempts to perform antialiasing for polygon edges by drawing a thin OpenGL smooth line on the edges.

Note: Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.


Default

[  ]


Default

Color( 1, 1, 1, 1 )

Setter

set_color(value)

Getter

get_color()

The polygon’s fill color. If texture is defined, it will be multiplied by this color. It will also be the default color for vertices not set in vertex_colors.


  • int internal_vertex_count

Default

0

Setter

set_internal_vertex_count(value)

Getter

get_internal_vertex_count()


Default

100.0

Setter

set_invert_border(value)

Getter

get_invert_border()

Added padding applied to the bounding box when using invert. Setting this value too small may result in a “Bad Polygon” error.


Default

false

Setter

set_invert(value)

Getter

get_invert()

If true, polygon will be inverted, containing the area outside the defined points and extending to the invert_border.


Default

Vector2( 0, 0 )

Setter

set_offset(value)

Getter

get_offset()

The offset applied to each vertex.


Default

PoolVector2Array(  )

Setter

set_polygon(value)

Getter

get_polygon()

The polygon’s list of vertices. The final point will be connected to the first.

Note: This returns a copy of the PoolVector2Array rather than a reference.


Default

[  ]

Setter

set_polygons(value)

Getter

get_polygons()


Default

NodePath(“”)

Setter

set_skeleton(value)

Getter

get_skeleton()


Setter

set_texture(value)

Getter

get_texture()

The polygon’s fill texture. Use uv to set texture coordinates.


Default

Vector2( 0, 0 )

Setter

set_texture_offset(value)

Getter

get_texture_offset()

Amount to offset the polygon’s texture. If (0, 0) the texture’s origin (its top-left corner) will be placed at the polygon’s position.


Setter

set_texture_rotation(value)

Getter

get_texture_rotation()

The texture’s rotation in radians.


  • float texture_rotation_degrees

Default

0.0

Setter

set_texture_rotation_degrees(value)

Getter

get_texture_rotation_degrees()

The texture’s rotation in degrees.


Default

Vector2( 1, 1 )

Setter

set_texture_scale(value)

Getter

get_texture_scale()

Amount to multiply the uv coordinates when using a texture. Larger values make the texture smaller, and vice versa.


Default

PoolVector2Array(  )

Setter

set_uv(value)

Getter

get_uv()

Texture coordinates for each vertex of the polygon. There should be one uv per polygon vertex. If there are fewer, undefined vertices will use (0, 0).


Default

PoolColorArray(  )

Setter

set_vertex_colors(value)

Getter

get_vertex_colors()

Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use color.

Method Descriptions

Adds a bone with the specified path and weights.


  • void clear_bones ( )

Removes all bones from this Polygon2D.


  • void erase_bone ( int index )

Removes the specified bone from this Polygon2D.


  • int get_bone_count ( ) const

Returns the number of bones in this Polygon2D.


Returns the path to the node associated with the specified bone.


Returns the height values of the specified bone.


Sets the path to the node associated with the specified bone.


Sets the weight values for the specified bone.