<?xml version="1.0" encoding="UTF-8" ?>
<class name="Polygon2D" inherits="Node2D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<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.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_bone">
			<return type="void" />
			<param index="0" name="path" type="NodePath" />
			<param index="1" name="weights" type="PackedFloat32Array" />
			<description>
				Adds a bone with the specified [param path] and [param weights].
			</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" />
			<param 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" />
			<param 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="PackedFloat32Array" />
			<param index="0" name="index" type="int" />
			<description>
				Returns the weight values of the specified bone.
			</description>
		</method>
		<method name="set_bone_path">
			<return type="void" />
			<param index="0" name="index" type="int" />
			<param 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" />
			<param index="0" name="index" type="int" />
			<param index="1" name="weights" type="PackedFloat32Array" />
			<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], polygon edges will be anti-aliased.
		</member>
		<member name="bones" type="Array" setter="_set_bones" getter="_get_bones" default="[]">
			Internal list of [Bone2D] nodes used by the assigned [member skeleton]. Edited using the Polygon2D editor ("UV" button on the top toolbar).
		</member>
		<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)" keywords="colour">
			The polygon's fill color. If [member texture] is set, it will be multiplied by this color. It will also be the default color for vertices not set in [member vertex_colors].
		</member>
		<member name="internal_vertex_count" type="int" setter="set_internal_vertex_count" getter="get_internal_vertex_count" default="0">
			Number of internal vertices, used for UV mapping.
		</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 [member invert_enabled] is set to [code]true[/code]. Setting this value too small may result in a "Bad Polygon" error.
		</member>
		<member name="invert_enabled" type="bool" setter="set_invert_enabled" getter="get_invert_enabled" default="false">
			If [code]true[/code], the polygon will be inverted, containing the area outside the defined points and extending to the [member invert_border].
		</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="PackedVector2Array" setter="set_polygon" getter="get_polygon" default="PackedVector2Array()">
			The polygon's list of vertices. The final point will be connected to the first.
		</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 [PackedInt32Array] 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;)">
			Path to a [Skeleton2D] node used for skeleton-based deformations of this polygon. If empty or invalid, skeletal deformations will not be used.
		</member>
		<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
			The polygon's fill texture. Use [member uv] 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 [member texture]. If set to [code]Vector2(0, 0)[/code], the texture's origin (its top-left corner) will be placed at the polygon's position.
		</member>
		<member name="texture_rotation" type="float" setter="set_texture_rotation" getter="get_texture_rotation" default="0.0">
			The texture's rotation in radians.
		</member>
		<member name="texture_scale" type="Vector2" setter="set_texture_scale" getter="get_texture_scale" default="Vector2(1, 1)">
			Amount to multiply the [member uv] coordinates when using [member texture]. Larger values make the texture smaller, and vice versa.
		</member>
		<member name="uv" type="PackedVector2Array" setter="set_uv" getter="get_uv" default="PackedVector2Array()">
			Texture coordinates for each vertex of the polygon. There should be one UV value per polygon vertex. If there are fewer, undefined vertices will use [code]Vector2(0, 0)[/code].
		</member>
		<member name="vertex_colors" type="PackedColorArray" setter="set_vertex_colors" getter="get_vertex_colors" default="PackedColorArray()">
			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 [member color].
		</member>
	</members>
</class>
