<?xml version="1.0" encoding="UTF-8" ?>
<class name="SpriteBase3D" inherits="GeometryInstance3D" version="4.0">
	<brief_description>
		2D sprite node in 3D environment.
	</brief_description>
	<description>
		A node that displays 2D texture information in a 3D environment. See also [Sprite3D] where many other properties are defined.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="generate_triangle_mesh" qualifiers="const">
			<return type="TriangleMesh" />
			<description>
				Returns a [TriangleMesh] with the sprite's vertices following its current configuration (such as its [member axis] and [member pixel_size]).
			</description>
		</method>
		<method name="get_draw_flag" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="flag" type="int" enum="SpriteBase3D.DrawFlags" />
			<description>
				Returns the value of the specified flag.
			</description>
		</method>
		<method name="get_item_rect" qualifiers="const">
			<return type="Rect2" />
			<description>
				Returns the rectangle representing this sprite.
			</description>
		</method>
		<method name="set_draw_flag">
			<return type="void" />
			<argument index="0" name="flag" type="int" enum="SpriteBase3D.DrawFlags" />
			<argument index="1" name="enabled" type="bool" />
			<description>
				If [code]true[/code], the specified flag will be enabled. See [enum SpriteBase3D.DrawFlags] for a list of flags.
			</description>
		</method>
	</methods>
	<members>
		<member name="alpha_cut" type="int" setter="set_alpha_cut_mode" getter="get_alpha_cut_mode" enum="SpriteBase3D.AlphaCutMode" default="0">
			The alpha cutting mode to use for the sprite. See [enum AlphaCutMode] for possible values.
		</member>
		<member name="axis" type="int" setter="set_axis" getter="get_axis" enum="Vector3.Axis" default="2">
			The direction in which the front of the texture faces.
		</member>
		<member name="billboard" type="int" setter="set_billboard_mode" getter="get_billboard_mode" enum="BaseMaterial3D.BillboardMode" default="0">
			The billboard mode to use for the sprite. See [enum BaseMaterial3D.BillboardMode] for possible values.
		</member>
		<member name="centered" type="bool" setter="set_centered" getter="is_centered" default="true">
			If [code]true[/code], texture will be centered.
		</member>
		<member name="double_sided" type="bool" setter="set_draw_flag" getter="get_draw_flag" default="true">
			If [code]true[/code], texture can be seen from the back as well, if [code]false[/code], it is invisible when looking at it from behind.
		</member>
		<member name="flip_h" type="bool" setter="set_flip_h" getter="is_flipped_h" default="false">
			If [code]true[/code], texture is flipped horizontally.
		</member>
		<member name="flip_v" type="bool" setter="set_flip_v" getter="is_flipped_v" default="false">
			If [code]true[/code], texture is flipped vertically.
		</member>
		<member name="modulate" type="Color" setter="set_modulate" getter="get_modulate" default="Color(1, 1, 1, 1)">
			A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.
		</member>
		<member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2(0, 0)">
			The texture's drawing offset.
		</member>
		<member name="opacity" type="float" setter="set_opacity" getter="get_opacity" default="1.0">
			The objects' visibility on a scale from [code]0[/code] fully invisible to [code]1[/code] fully visible.
		</member>
		<member name="pixel_size" type="float" setter="set_pixel_size" getter="get_pixel_size" default="0.01">
			The size of one pixel's width on the sprite to scale it in 3D.
		</member>
		<member name="shaded" type="bool" setter="set_draw_flag" getter="get_draw_flag" default="false">
			If [code]true[/code], the [Light3D] in the [Environment] has effects on the sprite.
		</member>
		<member name="transparent" type="bool" setter="set_draw_flag" getter="get_draw_flag" default="true">
			If [code]true[/code], the texture's transparency and the opacity are used to make those parts of the sprite invisible.
		</member>
	</members>
	<constants>
		<constant name="FLAG_TRANSPARENT" value="0" enum="DrawFlags">
			If set, the texture's transparency and the opacity are used to make those parts of the sprite invisible.
		</constant>
		<constant name="FLAG_SHADED" value="1" enum="DrawFlags">
			If set, lights in the environment affect the sprite.
		</constant>
		<constant name="FLAG_DOUBLE_SIDED" value="2" enum="DrawFlags">
			If set, texture can be seen from the back as well. If not, the texture is invisible when looking at it from behind.
		</constant>
		<constant name="FLAG_MAX" value="3" enum="DrawFlags">
			Represents the size of the [enum DrawFlags] enum.
		</constant>
		<constant name="ALPHA_CUT_DISABLED" value="0" enum="AlphaCutMode">
			This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping.
		</constant>
		<constant name="ALPHA_CUT_DISCARD" value="1" enum="AlphaCutMode">
			This mode only allows fully transparent or fully opaque pixels. Harsh edges will be visible unless some form of screen-space antialiasing is enabled (see [member ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa]). On the bright side, this mode doesn't suffer from transparency sorting issues when multiple transparent materials are overlapping. This mode is also known as [i]alpha testing[/i] or [i]1-bit transparency[/i].
		</constant>
		<constant name="ALPHA_CUT_OPAQUE_PREPASS" value="2" enum="AlphaCutMode">
			This mode draws fully opaque pixels in the depth prepass. This is slower than [constant ALPHA_CUT_DISABLED] or [constant ALPHA_CUT_DISCARD], but it allows displaying translucent areas and smooth edges while using proper sorting.
		</constant>
	</constants>
</class>