Mesh:setVertexMap
Available since LÖVE 0.9.0 |
This function is not supported in earlier versions. |
Sets the vertex map for a Geometry. The vertex map describes the order in which the vertices are used when the Geometry is drawn.
The vertex map allows you to re-order or reuse vertices when drawing without changing the actual vertex parameters or duplicating vertices. It is especially useful when combined with different Geometry Draw Modes.
Contents
Function
Synopsis
Geometry:setVertexMap( vertex_map )
Arguments
table vertex_map
- A table containing a list of vertex indices to use when drawing. Values must be in the range of [1, Geometry:getVertexCount()].
Returns
Nothing.
Function
Synopsis
Geometry:setVertexMap( vi1, vi2, vi3, ... )
Arguments
number vi1
- The index of the first vertex to use when drawing. Must be in the range of [1, Geometry:getVertexCount()].
number vi2
- The index of the second vertex to use when drawing.
number vi3
- The index of the third vertex to use when drawing.
Returns
Nothing.
Examples
Use a vertex map to fix a visual glitch without copy/pasting vertices.
function love.load()
image = love.graphics.newImage("pig.png")
local w,h = image:getWidth(), image:getHeight()
-- We want to make a Geometry with 1 vertex in the middle of the image, and 4 at the corners.
local vertices = {
{w/2, h/2, 0.5,0.5, 255, 0, 0}, -- Center vertex has a red tint, the rest are white.
{0, 0, 0, 0, 255, 255, 255},
{w, 0, 1, 0, 255, 255, 255},
{w, h, 1, 1, 255, 255, 255},
{0, h 0, 1, 255, 255, 255},
}
-- But there's a problem! The drawn geometry will have a big triangle missing on its left side.
-- This is because, in the default draw mode ("fan"), the vertices don't "loop": the top left vertex (#2) is unconnected to the bottom left one (#5).
geometry = love.graphics.newGeometry(vertices)
-- We could copy/paste the second vertex onto the end of the table of vertices.
-- But instead we can just change the vertex map!
geometry:setVertexMap(1, 2, 3, 4, 5, 2)
end
function love.draw()
love.graphics.draw(pig, geometry, 0, 0)
end
See Also
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info