package openfl.display {
import openfl.Vector;
/**
 * 	Defines an ordered set of triangles that can be rendered using either
 * 	(u,v) fill coordinates or a normal fill. Each triangle in the path is
 * 	represented by three sets of (x, y) coordinates, each of which is one
 * 	point of the triangle.
 * 	The triangle vertices do not contain z coordinates and do not necessarily
 * 	represent 3D faces. However a triangle path can be used to support the
 * 	rendering of 3D geometry in a 2D space.
 * 
 * 	@see [Using graphics data classes](https://books.openfl.org/openfl-developers-guide/using-the-drawing-api/advanced-use-of-the-drawing-api/using-graphics-data-classes.html)
 * 
 * @externs
 */
public class GraphicsTrianglePath implements openfl.display.IGraphicsPath, openfl.display.IGraphicsData {
	/**
	 * 		Creates a new GraphicsTrianglePath object.
	 * 
	 * 		@param	vertices	A Vector of Numbers where each pair of numbers is treated as a point (an x, y pair).
	 * 		Required.
	 * 		@param	indices	A Vector of integers or indexes, where every three indexes define a triangle.
	 * 		@param	uvtData	A Vector of normalized coordinates used to apply texture mapping.
	 * 		@param culling Specifies whether to render triangles that face in a
	 * 					   given direction. Used to prevent the rendering of
	 * 					   triangles that cannot be seen in the current view. Can
	 * 					   be set to any value defined by the TriangleCulling
	 * 					   class.
	 * 	
	 */
	public function GraphicsTrianglePath(vertices:openfl.Vector = undefined, indices:openfl.Vector = undefined, uvtData:openfl.Vector = undefined, culling:String = undefined) {}
	/**
	 * 		Specifies whether to render triangles that face in a given direction.
	 * 		Used to prevent the rendering of triangles that cannot be seen in the
	 * 		current view.
	 * 		Can be set to any value defined by the TriangleCulling class.
	 * 	
	 */
	public var culling:String;
	/**
	 * 		A Vector of integers or indexes, where every three indexes define a
	 * 		triangle. If the indexes parameter is null then every three vertices
	 * 		(six x,y pairs in the vertices Vector) defines a triangle. Otherwise
	 * 		each index refers to a vertex, which is a pair of numbers in the
	 * 		vertices Vector. For example `indexes[1]` refers to (`vertices[2]`,
	 * 		`vertices[3]`).
	 * 	
	 */
	public var indices:openfl.Vector;
	/**
	 * 		A Vector of normalized coordinates used to apply texture mapping. Each
	 * 		coordinate refers to a point on the bitmap used for the fill. There
	 * 		must be one UV or one UVT coordinate per vertex.
	 * 		In UV coordinates, (0,0) is the upper left of the bitmap, and (1,1) is
	 * 		the lower right of the bitmap.
	 * 
	 * 		If the length of this vector is twice the length of the `vertices`
	 * 		vector then normalized coordinates are used without perspective
	 * 		correction.
	 * 
	 * 		If the length of this vector is three times the length of the
	 * 		`vertices` vector then the third coordinate is interpreted as 't', the
	 * 		distance from the eye to the texture in eye space. This helps the
	 * 		rendering engine correctly apply perspective when mapping textures in
	 * 		3D.
	 * 	
	 */
	public var uvtData:openfl.Vector;
	/**
	 * 		A Vector of Numbers where each pair of numbers is treated as a point
	 * 		(an x, y pair).
	 * 	
	 */
	public var vertices:openfl.Vector;
}
}
