Mesh:setVertexMap (Français)

Disponible depuis LÖVE 0.9.0
Ce-tte function n'est pas supporté-e par des versions plus anciennes.

Définit la carte de vecteur du maillage. La carte de vecteur décrit l'ordre dans lequel les vecteurs sont utilisés lorsque le maillage est tracé. Les mode de tracé vecteurs, carte de vecteur et maillage, fonctionnent ensemble pour déterminer précisément ce qui est affiché à l'écran.

La carte de vecteur vous permet de réordonner ou réutiliser les vecteurs lors d'un tracé, sans changer le changer les paramètres courants ou dupliquer les vecteurs. Cette fonction est utile en particulier lorsqu'elle est combinée avec un mode de tracé de maillage différent.

Fonction

Synopsis

Mesh:setVertexMap( map )

Arguments

table (Français) map
Table contenant une liste d'index de vecteurs à utiliser lors du tracé. Les valeurs doivent être dans l'étendue de [1, Mesh:getVertexCount()].

Retourne

Rien.

Fonction

Synopsis

Mesh:setVertexMap( vi1, vi2, vi3, ... )

Arguments

number (Français) vi1
Index du premier vecteur à utiliser pendant le tracé. Dois être dans l'étendue [1, Mesh:getVertexCount()].
number (Français) vi2
Index du second vecteur à utiliser pendant le tracé.
number (Français) vi3
Index du troisième vecteur à utiliser pendant le tracé.

Retourne

Rien.

Fonction

Disponible depuis LÖVE 11.0
Ce-tte variant n'est pas supporté-e par des versions plus anciennes.

Synopsis

Mesh:setVertexMap( data, datatype )

Arguments

Data (Français) data
Table d'index de vecteurs à utiliser pendant le tracé. Les valeurs doivent être dans l'étendue [0, Mesh:getVertexCount()-1]
IndexDataType (Français) datatype
Type de donnée de la table des index de vecteurs ci-dessus.

Retourne

Rien.

Exemples

Utiliser une carte de vecteurs pour réparer un défaut visuel sans copier/coller les vecteurs.

function love.load()
    image = love.graphics.newImage("pig.png")
    local w,h = image:getDimensions()

    -- Nous désirons faire un maillage avec un vecteur au milieu de l'image, et 4 dans les angles.
    local vertices = {
        {w/2, h/2,   0.5, 0.5,   1, 0, 0}, -- Vecteur central, tinté en rouge.
        {0,   0,     0,   0,     1, 1, 1}, -- Haut gauche.
        {w,   0,     1,   0,     1, 1, 1}, -- Haut droit.
        {w,   h,     1,   1,     1, 1, 1}, -- Bas droit.
        {0,   h,     0,   1,     1, 1, 1}, -- Bas gauche.
    }

    -- Mais il y a un problème ! Le maillage tracé aura un triangle maquant sur son côté gauche.
    -- C'est parce-que dans le mode de tracé de maillage par défaut ("fan", éventail), Les vecteurs ne bouclent pas : Le vecteur en haut à gauche (#2) est déconnecté de celui en bas à gauche (#5).
    mesh = love.graphics.newMesh(vertices)
    mesh:setTexture(image)

    -- Nous pourrions copier-coller le second vecteur à la fin de la table des vecteurs.
    -- Mais à la place, on peut se contenter de changer la carte de vecteur !
    mesh:setVertexMap(1, 2, 3, 4, 5, 2)
end

function love.draw()
    love.graphics.draw(mesh, 0, 0)
end

Voir également


Autres langues