<?xml version="1.0" encoding="UTF-8" ?>
<class name="Polygon2D" inherits="Node2D" version="4.2">
	<brief_description>
		A 2D polygon.
	</brief_description>
	<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.
		[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>
	</tutorials>
	<methods>
		<method name="add_bone">
			<return type="void" />
			<argument index="0" name="path" type="NodePath" />
			<argument index="1" name="weights" type="PoolRealArray" />
			<description>
				Adds a bone with the specified [code]path[/code] and [code]weights[/code].
			</description>
		</method>
		<method name="clear_bones">
			<return type="void" />
			<description>
				Removes all bones from this [Polygon2D].
			</description>
		</method>
		<method name="erase_bone">
			<return type="void" />
			<argument index="0" name="index" type="int" />
			<description>
				Removes the specified bone from this [Polygon2D].
			</description>
		</method>
		<method name="get_bone_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of bones in this [Polygon2D].
			</description>
		</method>
		<method name="get_bone_path" qualifiers="const">
			<return type="NodePath" />
			<argument index="0" name="index" type="int" />
			<description>
				Returns the path to the node associated with the specified bone.
			</description>
		</method>
		<method name="get_bone_weights" qualifiers="const">
			<return type="PoolRealArray" />
			<argument index="0" name="index" type="int" />
			<description>
				Returns the height values of the specified bone.
			</description>
		</method>
		<method name="set_bone_path">
			<return type="void" />
			<argument index="0" name="index" type="int" />
			<argument index="1" name="path" type="NodePath" />
			<description>
				Sets the path to the node associated with the specified bone.
			</description>
		</method>
		<method name="set_bone_weights">
			<return type="void" />
			<argument index="0" name="index" type="int" />
			<argument index="1" name="weights" type="PoolRealArray" />
			<description>
				Sets the weight values for the specified bone.
			</description>
		</method>
	</methods>
	<members>
		<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased" default="false">
			If [code]true[/code], attempts to perform antialiasing for polygon edges by drawing a thin OpenGL smooth line on the edges.
			[b]Note:[/b] 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 [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
		</member>
		<member name="bones" type="Array" setter="_set_bones" getter="_get_bones" default="[  ]">
		</member>
		<member name="color" type="Color" setter="set_color" getter="get_color" default="Color( 1, 1, 1, 1 )">
			The polygon's fill color. If [code]texture[/code] is defined, it will be multiplied by this color. It will also be the default color for vertices not set in [code]vertex_colors[/code].
		</member>
		<member name="internal_vertex_count" type="int" setter="set_internal_vertex_count" getter="get_internal_vertex_count" default="0">
		</member>
		<member name="invert_border" type="float" setter="set_invert_border" getter="get_invert_border" default="100.0">
			Added padding applied to the bounding box when using [code]invert[/code]. Setting this value too small may result in a "Bad Polygon" error.
		</member>
		<member name="invert_enable" type="bool" setter="set_invert" getter="get_invert" default="false">
			If [code]true[/code], polygon will be inverted, containing the area outside the defined points and extending to the [code]invert_border[/code].
		</member>
		<member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2( 0, 0 )">
			The offset applied to each vertex.
		</member>
		<member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon" default="PoolVector2Array(  )">
			The polygon's list of vertices. The final point will be connected to the first.
			[b]Note:[/b] This returns a copy of the [PoolVector2Array] rather than a reference.
		</member>
		<member name="polygons" type="Array" setter="set_polygons" getter="get_polygons" default="[  ]">
			The list of polygons, in case more than one is being represented. Every individual polygon is stored as a [PoolIntArray] where each [int] is an index to a point in [member polygon]. If empty, this property will be ignored, and the resulting single polygon will be composed of all points in [member polygon], using the order they are stored in.
		</member>
		<member name="skeleton" type="NodePath" setter="set_skeleton" getter="get_skeleton" default="NodePath(&quot;&quot;)">
		</member>
		<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
			The polygon's fill texture. Use [code]uv[/code] to set texture coordinates.
		</member>
		<member name="texture_offset" type="Vector2" setter="set_texture_offset" getter="get_texture_offset" default="Vector2( 0, 0 )">
			Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] the texture's origin (its top-left corner) will be placed at the polygon's [code]position[/code].
		</member>
		<member name="texture_rotation" type="float" setter="set_texture_rotation" getter="get_texture_rotation">
			The texture's rotation in radians.
		</member>
		<member name="texture_rotation_degrees" type="float" setter="set_texture_rotation_degrees" getter="get_texture_rotation_degrees" default="0.0">
			The texture's rotation in degrees.
		</member>
		<member name="texture_scale" type="Vector2" setter="set_texture_scale" getter="get_texture_scale" default="Vector2( 1, 1 )">
			Amount to multiply the [code]uv[/code] coordinates when using a [code]texture[/code]. Larger values make the texture smaller, and vice versa.
		</member>
		<member name="uv" type="PoolVector2Array" setter="set_uv" getter="get_uv" default="PoolVector2Array(  )">
			Texture coordinates for each vertex of the polygon. There should be one [code]uv[/code] per polygon vertex. If there are fewer, undefined vertices will use [code](0, 0)[/code].
		</member>
		<member name="vertex_colors" type="PoolColorArray" setter="set_vertex_colors" getter="get_vertex_colors" default="PoolColorArray(  )">
			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 [code]color[/code].
		</member>
	</members>
	<constants>
	</constants>
</class>
