Package | starling.display |
Class | public class Mesh |
Inheritance | Mesh DisplayObject EventDispatcher Object |
Subclasses | MeshBatch, Quad |
Since Starling uses Stage3D for rendering, all rendered objects must be constructed from triangles. A mesh stores the information of its triangles through VertexData and IndexData structures. The default format stores position, color and texture coordinates for each vertex.
How a mesh is rendered depends on its style. Per default, this is an instance
of the MeshStyle
base class; however, subclasses may extend its behavior
to add support for color transformations, normal mapping, etc.
See also
Property | Defined By | ||
---|---|---|---|
alpha : Number The opacity of the object. | DisplayObject | ||
base : DisplayObject [read-only] The topmost object in the display tree the object is part of. | DisplayObject | ||
blendMode : String The blend mode determines how the object is blended with the objects underneath. | DisplayObject | ||
bounds : Rectangle [read-only] The bounds of the object relative to the local coordinates of the parent. | DisplayObject | ||
color : uint Changes the color of all vertices to the same value. | Mesh | ||
defaultStyle : Class [static] The default style used for meshes if no specific style is provided. | Mesh | ||
defaultStyleFactory : Function [static] A factory method that is used to create the 'MeshStyle' for a mesh if no specific
style is provided. | Mesh | ||
filter : FragmentFilter The filter that is attached to the display object. | DisplayObject | ||
height : Number The height of the object in pixels. | DisplayObject | ||
is3D : Boolean [read-only] Indicates if this object or any of its parents is a 'Sprite3D' object. | DisplayObject | ||
mask : DisplayObject The display object that acts as a mask for the current object. | DisplayObject | ||
name : String The name of the display object (default: null). | DisplayObject | ||
numIndices : int [read-only] The total number of indices referencing vertices. | Mesh | ||
numTriangles : int [read-only] The total number of triangles in this mesh. | Mesh | ||
numVertices : int [read-only] The total number of vertices in the mesh. | Mesh | ||
parent : DisplayObjectContainer [read-only] The display object container that contains this display object. | DisplayObject | ||
pivotX : Number The x coordinate of the object's origin in its own coordinate space (default: 0). | DisplayObject | ||
pivotY : Number The y coordinate of the object's origin in its own coordinate space (default: 0). | DisplayObject | ||
pixelSnapping : Boolean Controls whether or not the instance snaps to the nearest pixel. | Mesh | ||
requiresRedraw : Boolean [read-only] Indicates if the object needs to be redrawn in the upcoming frame, i.e. | DisplayObject | ||
root : DisplayObject [read-only] The root object the display object is connected to (i.e. | DisplayObject | ||
rotation : Number The rotation of the object in radians. | DisplayObject | ||
scale : Number Sets both 'scaleX' and 'scaleY' to the same value. | DisplayObject | ||
scaleX : Number The horizontal scale factor. | DisplayObject | ||
scaleY : Number The vertical scale factor. | DisplayObject | ||
skewX : Number The horizontal skew angle in radians. | DisplayObject | ||
skewY : Number The vertical skew angle in radians. | DisplayObject | ||
stage : Stage [read-only] The stage the display object is connected to, or null if it is not connected
to the stage. | DisplayObject | ||
style : MeshStyle The style that is used to render the mesh. | Mesh | ||
texture : Texture The texture that is mapped to the mesh (or null, if there is none). | Mesh | ||
textureRepeat : Boolean Indicates if pixels at the edges will be repeated or clamped. | Mesh | ||
textureSmoothing : String The smoothing filter that is used for the texture. | Mesh | ||
touchable : Boolean Indicates if this object (and its children) will receive touch events. | DisplayObject | ||
transformationMatrix : Matrix The transformation matrix of the object relative to its parent. | DisplayObject | ||
transformationMatrix3D : Matrix3D [read-only] The 3D transformation matrix of the object relative to its parent. | DisplayObject | ||
useHandCursor : Boolean Indicates if the mouse cursor should transform into a hand while it's over the sprite. | DisplayObject | ||
vertexFormat : VertexDataFormat [read-only] The format used to store the vertices. | Mesh | ||
visible : Boolean The visibility of the object. | DisplayObject | ||
width : Number The width of the object in pixels. | DisplayObject | ||
x : Number The x coordinate of the object relative to the local coordinates of the parent. | DisplayObject | ||
y : Number The y coordinate of the object relative to the local coordinates of the parent. | DisplayObject |
Property | Defined By | ||
---|---|---|---|
indexData : IndexData [read-only] The index data describing how the vertices are interconnected. | Mesh | ||
vertexData : VertexData [read-only] The vertex data describing all vertices of the mesh. | Mesh |
Method | Defined By | ||
---|---|---|---|
Creates a new mesh with the given vertices and indices. | Mesh | ||
addEventListener(type:String, listener:Function):void [override] Registers an event listener at a certain object. | DisplayObject | ||
alignPivot(horizontalAlign:String = center, verticalAlign:String = center):void Moves the pivot point to a certain position within the local coordinate system
of the object. | DisplayObject | ||
dispatchEvent(event:Event):void Dispatches an event to all objects that have registered listeners for its type. | EventDispatcher | ||
dispatchEventWith(type:String, bubbles:Boolean = false, data:Object = null):void Dispatches an event with the given parameters to all objects that have registered
listeners for the given type. | EventDispatcher | ||
dispose():void [override] Disposes all resources of the display object. | Mesh | ||
[static] Creates a mesh from the specified polygon. | Mesh | ||
getBounds(targetSpace:DisplayObject, out:Rectangle = null):Rectangle [override] Returns a rectangle that completely encloses the object as it appears in another
coordinate system. | Mesh | ||
getTexCoords(vertexID:int, out:Point = null):Point Returns the texture coordinates of the vertex at the specified index. | Mesh | ||
getTransformationMatrix(targetSpace:DisplayObject, out:Matrix = null):Matrix Creates a matrix that represents the transformation from the local coordinate system
to another. | DisplayObject | ||
getTransformationMatrix3D(targetSpace:DisplayObject, out:Matrix3D = null):Matrix3D Creates a matrix that represents the transformation from the local coordinate system
to another. | DisplayObject | ||
getVertexAlpha(vertexID:int):Number Returns the alpha value of the vertex at the specified index. | Mesh | ||
getVertexColor(vertexID:int):uint Returns the RGB color of the vertex at the specified index. | Mesh | ||
getVertexPosition(vertexID:int, out:Point = null):Point The position of the vertex at the specified index, in the mesh's local coordinate
system. | Mesh | ||
globalToLocal(globalPoint:Point, out:Point = null):Point Transforms a point from global (stage) coordinates to the local coordinate system. | DisplayObject | ||
globalToLocal3D(globalPoint:Point, out:Vector3D = null):Vector3D Transforms a point from global (stage) coordinates to the 3D local coordinate system. | DisplayObject | ||
hasEventListener(type:String, listener:Function = null):Boolean If called with one argument, figures out if there are any listeners registered for
the given event type. | EventDispatcher | ||
hitTest(localPoint:Point):DisplayObject [override] Returns the object that is found topmost beneath a point in local coordinates, or nil
if the test fails. | Mesh | ||
hitTestMask(localPoint:Point):Boolean Checks if a certain point is inside the display object's mask. | DisplayObject | ||
local3DToGlobal(localPoint:Vector3D, out:Point = null):Point Transforms a 3D point from the local coordinate system to global (stage) coordinates. | DisplayObject | ||
localToGlobal(localPoint:Point, out:Point = null):Point Transforms a point from the local coordinate system to global (stage) coordinates. | DisplayObject | ||
removeEventListener(type:String, listener:Function):void [override] Removes an event listener from the object. | DisplayObject | ||
removeEventListeners(type:String = null):void [override] Removes all event listeners with a certain type, or all of them if type is null. | DisplayObject | ||
removeFromParent(dispose:Boolean = false):void Removes the object from its parent, if it has one, and optionally disposes it. | DisplayObject | ||
[override] Renders the display object with the help of a painter object. | Mesh | ||
setIndexDataChanged():void This method is called whenever the mesh's index data was changed. | Mesh | ||
setRequiresRedraw():void Forces the object to be redrawn in the next frame. | DisplayObject | ||
Sets the style that is used to render the mesh. | Mesh | ||
setTexCoords(vertexID:int, u:Number, v:Number):void Sets the texture coordinates of the vertex at the specified index to the given values. | Mesh | ||
setVertexAlpha(vertexID:int, alpha:Number):void Sets the alpha value of the vertex at the specified index to a certain value. | Mesh | ||
setVertexColor(vertexID:int, color:uint):void Sets the RGB color of the vertex at the specified index to a certain value. | Mesh | ||
setVertexDataChanged():void This method is called whenever the mesh's vertex data was changed. | Mesh | ||
setVertexPosition(vertexID:int, x:Number, y:Number):void | Mesh |
color | property |
color:uint
Changes the color of all vertices to the same value. The getter simply returns the color of the first vertex.
public function get color():uint
public function set color(value:uint):void
defaultStyle | property |
defaultStyle:Class
The default style used for meshes if no specific style is provided. The default is
starling.rendering.MeshStyle
, and any assigned class must be a subclass
of the same.
public static function get defaultStyle():Class
public static function set defaultStyle(value:Class):void
defaultStyleFactory | property |
defaultStyleFactory:Function
A factory method that is used to create the 'MeshStyle' for a mesh if no specific
style is provided. That's useful if you are creating a hierarchy of objects, all
of which need to have a certain style. Different to the defaultStyle
property, this method allows plugging in custom logic and passing arguments to the
constructor. Return null
to fall back to the default behavior (i.e.
to instantiate defaultStyle
). The mesh
-parameter is optional
and may be omitted.
Mesh.defaultStyleFactory = function(mesh:Mesh):MeshStyle { return new ColorizeMeshStyle(Math.random() 0xffffff); }
public static function get defaultStyleFactory():Function
public static function set defaultStyleFactory(value:Function):void
indexData | property |
indexData:IndexData
[read-only] The index data describing how the vertices are interconnected.
Any change requires a call to setRequiresRedraw
.
protected function get indexData():IndexData
numIndices | property |
numIndices:int
[read-only] The total number of indices referencing vertices.
public function get numIndices():int
numTriangles | property |
numTriangles:int
[read-only] The total number of triangles in this mesh. (In other words: the number of indices divided by three.)
public function get numTriangles():int
numVertices | property |
numVertices:int
[read-only] The total number of vertices in the mesh.
public function get numVertices():int
pixelSnapping | property |
pixelSnapping:Boolean
Controls whether or not the instance snaps to the nearest pixel. This can prevent the object from looking blurry when it's not exactly aligned with the pixels of the screen.
The default value is false
.
public function get pixelSnapping():Boolean
public function set pixelSnapping(value:Boolean):void
style | property |
style:MeshStyle
The style that is used to render the mesh. Styles (which are always subclasses of
MeshStyle
) provide a means to completely modify the way a mesh is rendered.
For example, they may add support for color transformations or normal mapping.
The setter will simply forward the assignee to setStyle(value)
.
The default value is MeshStyle
.
public function get style():MeshStyle
public function set style(value:MeshStyle):void
texture | property |
texture:Texture
The texture that is mapped to the mesh (or null
, if there is none).
public function get texture():Texture
public function set texture(value:Texture):void
textureRepeat | property |
textureRepeat:Boolean
Indicates if pixels at the edges will be repeated or clamped. Only works for
power-of-two textures; for a solution that works with all kinds of textures,
see Image.tileGrid
.
The default value is false
.
public function get textureRepeat():Boolean
public function set textureRepeat(value:Boolean):void
textureSmoothing | property |
textureSmoothing:String
The smoothing filter that is used for the texture.
The default value is bilinear
.
public function get textureSmoothing():String
public function set textureSmoothing(value:String):void
vertexData | property |
vertexData:VertexData
[read-only] The vertex data describing all vertices of the mesh.
Any change requires a call to setRequiresRedraw
.
protected function get vertexData():VertexData
vertexFormat | property |
vertexFormat:VertexDataFormat
[read-only] The format used to store the vertices.
public function get vertexFormat():VertexDataFormat
Mesh | () | Constructor |
public function Mesh(vertexData:VertexData, indexData:IndexData, style:MeshStyle = null)
Creates a new mesh with the given vertices and indices.
If you don't pass a style, an instance of MeshStyle
will be created
for you. Note that the format of the vertex data will be matched to the
given style right away.
vertexData:VertexData | |
indexData:IndexData | |
style:MeshStyle (default = null )
|
dispose | () | method |
override public function dispose():void
Disposes all resources of the display object. GPU buffers are released, event listeners are removed, filters and masks are disposed.
fromPolygon | () | method |
public static function fromPolygon(polygon:Polygon, style:MeshStyle = null):Mesh
Creates a mesh from the specified polygon. Vertex positions and indices will be set up according to the polygon; any other vertex attributes (e.g. texture coordinates) need to be set up manually.
Parameters
polygon:Polygon | |
style:MeshStyle (default = null )
|
Mesh |
getBounds | () | method |
override public function getBounds(targetSpace:DisplayObject, out:Rectangle = null):Rectangle
Returns a rectangle that completely encloses the object as it appears in another
coordinate system. If you pass an out
-rectangle, the result will be
stored in this rectangle instead of creating a new object.
Parameters
targetSpace:DisplayObject | |
out:Rectangle (default = null )
|
Rectangle |
getTexCoords | () | method |
public function getTexCoords(vertexID:int, out:Point = null):Point
Returns the texture coordinates of the vertex at the specified index.
Parameters
vertexID:int | |
out:Point (default = null )
|
Point |
getVertexAlpha | () | method |
public function getVertexAlpha(vertexID:int):Number
Returns the alpha value of the vertex at the specified index.
Parameters
vertexID:int |
Number |
getVertexColor | () | method |
public function getVertexColor(vertexID:int):uint
Returns the RGB color of the vertex at the specified index.
Parameters
vertexID:int |
uint |
getVertexPosition | () | method |
public function getVertexPosition(vertexID:int, out:Point = null):Point
The position of the vertex at the specified index, in the mesh's local coordinate system.
Only modify the position of a vertex if you know exactly what you're doing, as
some classes might not work correctly when their vertices are moved. E.g. the
Quad
class expects its vertices to spawn up a perfectly rectangular
area; some of its optimized methods won't work correctly if that premise is no longer
fulfilled or the original bounds change.
Parameters
vertexID:int | |
out:Point (default = null )
|
Point |
hitTest | () | method |
override public function hitTest(localPoint:Point):DisplayObject
Returns the object that is found topmost beneath a point in local coordinates, or nil if the test fails. Untouchable and invisible objects will cause the test to fail.
Parameters
localPoint:Point |
DisplayObject |
render | () | method |
override public function render(painter:Painter):void
Renders the display object with the help of a painter object. Never call this method directly, except from within another render method.
Parameters
painter:Painter — Captures the current render state and provides utility functions
for rendering.
|
setIndexDataChanged | () | method |
public function setIndexDataChanged():void
This method is called whenever the mesh's index data was changed.
The base implementation simply forwards to setRequiresRedraw
.
setStyle | () | method |
public function setStyle(meshStyle:MeshStyle = null, mergeWithPredecessor:Boolean = true):void
Sets the style that is used to render the mesh. Styles (which are always subclasses of
MeshStyle
) provide a means to completely modify the way a mesh is rendered.
For example, they may add support for color transformations or normal mapping.
When assigning a new style, the vertex format will be changed to fit it.
Do not use the same style instance on multiple objects! Instead, make use of
style.clone()
to assign an identical style to multiple meshes.
Parameters
meshStyle:MeshStyle (default = null ) — the style to assign. If null , the default
style will be created.
| |
mergeWithPredecessor:Boolean (default = true ) — if enabled, all attributes of the previous style will be
be copied to the new one, if possible.
|
See also
setTexCoords | () | method |
public function setTexCoords(vertexID:int, u:Number, v:Number):void
Sets the texture coordinates of the vertex at the specified index to the given values.
Parameters
vertexID:int | |
u:Number | |
v:Number |
setVertexAlpha | () | method |
public function setVertexAlpha(vertexID:int, alpha:Number):void
Sets the alpha value of the vertex at the specified index to a certain value.
Parameters
vertexID:int | |
alpha:Number |
setVertexColor | () | method |
public function setVertexColor(vertexID:int, color:uint):void
Sets the RGB color of the vertex at the specified index to a certain value.
Parameters
vertexID:int | |
color:uint |
setVertexDataChanged | () | method |
public function setVertexDataChanged():void
This method is called whenever the mesh's vertex data was changed.
The base implementation simply forwards to setRequiresRedraw
.
setVertexPosition | () | method |
public function setVertexPosition(vertexID:int, x:Number, y:Number):void
Parameters
vertexID:int | |
x:Number | |
y:Number |