Difference between revisions of "Mesh"
(mostly for) |
|||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
<!-- GIDEROSOBJ:Mesh --> | <!-- GIDEROSOBJ:Mesh --> | ||
− | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> |
− | ''' | + | '''Available since:''' Gideros 2012.09<br/> |
− | ''' | + | '''Inherits from:''' [[Sprite]]<br/> |
− | === | + | === Description === |
− | Mesh class is used to create and display custom constructed set of triangles (triangle meshes). It basically consists of 4 arrays: vertex | + | Mesh class is used to create and display custom constructed set of triangles (triangle meshes). It basically consists of 4 arrays: |
+ | *vertex | ||
+ | *index | ||
+ | *color (optional) | ||
+ | *textureCoordinate (optional) | ||
+ | and a texture (optional). The Mesh class provides more than one way to set/modify these arrays. | ||
Mesh can be 2D or 3D, the latter expects an additional Z coordinate in its vertices. Additionally, 3D meshes and their children are rendered with depth testing enabled, which prevents far objects to be drawn above nearest ones, irrespective of actual drawing order. | Mesh can be 2D or 3D, the latter expects an additional Z coordinate in its vertices. Additionally, 3D meshes and their children are rendered with depth testing enabled, which prevents far objects to be drawn above nearest ones, irrespective of actual drawing order. | ||
− | ' | + | '''the Mesh class doesn't do bounds check. If an element at index array points to an non-existent vertex, the application may crash''' |
− | === | + | === Examples === |
'''Mesh usage:''' | '''Mesh usage:''' | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 37: | Line 41: | ||
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Methods === |
− | [[ | + | [[Mesh.new]] ''creates a new Mesh instance''<br/><!--GIDEROSMTD:Mesh.new(is3d) creates a new Mesh instance--> |
− | [[ | + | [[Mesh:clearColorArray]] ''clears the color array''<br/><!--GIDEROSMTD:Mesh:clearColorArray() clears the color array--> |
− | [[ | + | [[Mesh:clearIndexArray]] ''clears the index array''<br/><!--GIDEROSMTD:Mesh:clearIndexArray() clears the index array--> |
− | [[ | + | [[Mesh:clearTexture]] ''clears the Mesh texture''<br/><!--GIDEROSMTD:Mesh:clearTexture(slot) clears the Mesh texture--> |
− | [[ | + | [[Mesh:clearTextureCoordinateArray]] ''clears the texture coordinate array''<br/><!--GIDEROSMTD:Mesh:clearTextureCoordinateArray() clears the texture coordinate array--> |
− | [[ | + | [[Mesh:clearVertexArray]] ''clears the vertex array''<br/><!--GIDEROSMTD:Mesh:clearVertexArray() clears the vertex array--> |
− | [[ | + | [[Mesh:getColor]] ''returns color and alpha of the i-th element from color array''<br/><!--GIDEROSMTD:Mesh:getColor(i) returns color and alpha of the i-th element from color array--> |
− | [[ | + | [[Mesh:getColorArraySize]] ''gets the size of the Color array''<br/><!--GIDEROSMTD:Mesh:getColorArraySize() gets the size of the Color array--> |
− | [[ | + | [[Mesh:getIndex]] ''returns the i-th element from index array''<br/><!--GIDEROSMTD:Mesh:getIndex(i) returns the i-th element from index array--> |
− | [[ | + | [[Mesh:getIndexArraySize]] ''gets the size of the Index array''<br/><!--GIDEROSMTD:Mesh:getIndexArraySize() gets the size of the Index array--> |
− | [[ | + | [[Mesh:getTextureCoordinate]] ''returns u and v coordinate of the i-th element from texture coordinate array''<br/><!--GIDEROSMTD:Mesh:getTextureCoordinate(i) returns u and v coordinate of the i-th element from texture coordinate array--> |
− | [[ | + | [[Mesh:getTextureCoordinateArraySize]] ''gets the size of the Texture Coordinate array''<br/><!--GIDEROSMTD:Mesh:getTextureCoordinateArraySize() gets the size of the Texture Coordinate array--> |
− | [[ | + | [[Mesh:getVertex]] ''returns x and y coordinate of the i-th element from vertex array''<br/><!--GIDEROSMTD:Mesh:getVertex(i) returns x and y coordinate of the i-th element from vertex array--> |
− | [[ | + | [[Mesh:getVertexArraySize]] ''gets the size of the Vertices array''<br/><!--GIDEROSMTD:Mesh:getVertexArraySize() gets the size of the Vertices array--> |
− | [[ | + | [[Mesh:resizeColorArray]] ''resizes the size of the Color array''<br/><!--GIDEROSMTD:Mesh:resizeColorArray(size) resizes the size of the Color array--> |
− | [[ | + | [[Mesh:resizeIndexArray]] ''resizes the size of the Index array''<br/><!--GIDEROSMTD:Mesh:resizeIndexArray(size) resizes the size of the Index array--> |
− | [[ | + | [[Mesh:resizeTextureCoordinateArray]] <br/><!--GIDEROSMTD:Mesh:resizeTextureCoordinateArray(size)--> |
− | [[ | + | [[Mesh:resizeVertexArray]] <br/><!--GIDEROSMTD:Mesh:resizeVertexArray(size)--> |
− | [[ | + | [[Mesh:setColor]] <br/><!--GIDEROSMTD:Mesh:setColor(i,color,alpha)--> |
− | [[ | + | [[Mesh:setColorArray]] <br/><!--GIDEROSMTD:Mesh:setColorArray(colors)--> |
− | [[ | + | [[Mesh:setColors]] <br/><!--GIDEROSMTD:Mesh:setColors(colors)--> |
− | [[ | + | [[Mesh:setGenericArray]] <br/><!--GIDEROSMTD:Mesh:setGenericArray(index,type,mult,count,data)--> |
− | [[ | + | [[Mesh:setIndex]] <br/><!--GIDEROSMTD:Mesh:setIndex(i,index)--> |
− | [[ | + | [[Mesh:setIndexArray]] <br/><!--GIDEROSMTD:Mesh:setIndexArray(indices)--> |
− | [[ | + | [[Mesh:setIndices]] <br/><!--GIDEROSMTD:Mesh:setIndices(indices)--> |
− | [[ | + | [[Mesh:setTexture]] <br/><!--GIDEROSMTD:Mesh:setTexture(texture,slot)--> |
− | [[ | + | [[Mesh:setTextureCoordinate]] <br/><!--GIDEROSMTD:Mesh:setTextureCoordinate(i,u,v)--> |
− | [[ | + | [[Mesh:setTextureCoordinateArray]] <br/><!--GIDEROSMTD:Mesh:setTextureCoordinateArray(textureCoordinates)--> |
− | [[ | + | [[Mesh:setTextureCoordinates]] <br/><!--GIDEROSMTD:Mesh:setTextureCoordinates(textureCoordinates)--> |
− | [[ | + | [[Mesh:setVertex]] <br/><!--GIDEROSMTD:Mesh:setVertex(i,x,y)--> |
− | [[ | + | [[Mesh:setVertexArray]] <br/><!--GIDEROSMTD:Mesh:setVertexArray(vertices)--> |
− | [[ | + | [[Mesh:setVertices]] <br/><!--GIDEROSMTD:Mesh:setVertices(vertices)--> |
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Events === |
− | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Revision as of 04:12, 16 December 2020
Supported platforms:
Available since: Gideros 2012.09
Inherits from: Sprite
Description
Mesh class is used to create and display custom constructed set of triangles (triangle meshes). It basically consists of 4 arrays:
- vertex
- index
- color (optional)
- textureCoordinate (optional)
and a texture (optional). The Mesh class provides more than one way to set/modify these arrays.
Mesh can be 2D or 3D, the latter expects an additional Z coordinate in its vertices. Additionally, 3D meshes and their children are rendered with depth testing enabled, which prevents far objects to be drawn above nearest ones, irrespective of actual drawing order.
the Mesh class doesn't do bounds check. If an element at index array points to an non-existent vertex, the application may crash
Examples
Mesh usage:
local mesh = Mesh.new()
stage:addChild(mesh)
-- 1. vertex (0, 0)
-- 2. vertex (100, 0)
-- 3. vertex (100, 150)
-- 4. vertex (0, 150)
mesh:setVertexArray(0, 0, 100, 0, 100, 150, 0, 150)
-- 1. triangle from 1, 2 and 3 vertex
-- 2. triangle from 1, 3 and 4 vertex
mesh:setIndexArray(1, 2, 3, 1, 3, 4)
-- 1. vertex 0xff0000 color with 0.5 alpha
-- 2. vertex 0x00ff00 color with 0.7 alpha
-- 3. vertex 0x0000ff color with 1 alpha
-- 4. vertex 0xffff00 color with 0 alpha
mesh:setColorArray(0xff0000, 0.5, 0x00ff00, 0.7, 0x0000ff, 1.0, 0xffff00, 0)
MethodsMesh.new creates a new Mesh instance |
EventsConstants |