Difference between revisions of "Mesh:setVertexAttribute"

(Created page)
 
m (Function)
Line 12: Line 12:
 
{{param|number|attributeindex|The index of the attribute within the vertex to be modified.}}
 
{{param|number|attributeindex|The index of the attribute within the vertex to be modified.}}
 
{{param|number|value1|The new value for the first component of the attribute.}}
 
{{param|number|value1|The new value for the first component of the attribute.}}
{{param|number|value1|The new value for the second component of the attribute.}}
+
{{param|number|value2|The new value for the second component of the attribute.}}
 +
{{param|number|...|Any additional vertex attribute components.}}
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
 
=== Notes ===
 
=== Notes ===
 
Attribute components which exist within the attribute but are not specified as arguments default to 0 for attributes with the <code>float</code> data type, and 255 for the <code>byte</code> data type.
 
Attribute components which exist within the attribute but are not specified as arguments default to 0 for attributes with the <code>float</code> data type, and 255 for the <code>byte</code> data type.
 +
 
== Examples ==
 
== Examples ==
 
Modify the colors of a standard mesh after it's created.
 
Modify the colors of a standard mesh after it's created.

Revision as of 02:12, 5 December 2015

Available since LÖVE 0.10.0
This function is not supported in earlier versions.

Sets the properties of a specific attribute within a vertex in the Mesh.

Meshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.

Function

Synopsis

Mesh:setVertex( vertexindex, attributeindex, value1, value2, ... )

Arguments

number vertexindex
The index of the the vertex to be modified.
number attributeindex
The index of the attribute within the vertex to be modified.
number value1
The new value for the first component of the attribute.
number value2
The new value for the second component of the attribute.
number ...
Any additional vertex attribute components.

Returns

Nothing.

Notes

Attribute components which exist within the attribute but are not specified as arguments default to 0 for attributes with the float data type, and 255 for the byte data type.

Examples

Modify the colors of a standard mesh after it's created.

-- Standard mesh with position, texture coordinates, and color attributes.
mesh = love.graphics.newMesh {
    {0,   0,    0, 0,  255, 255, 255, 255}, -- first vertex positioned at (0, 0)
    {400, 0,    0, 0,  255, 255, 255, 255}, -- second vertex positioned at (400, 0)
    {200, 400,  0, 0,  255, 255, 255, 255}, -- third vertex positioned at (200, 400)
}

local time = 0

function love.update(dt)
    time = time + dt

    for i = 1, mesh:getVertexCount() do
        -- The 3rd vertex attribute for a standard mesh is its color.
        mesh:setVertexAttribute(i, 3, (time * 10) % 255, 255, 255)
    end
end

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

See Also

Other Languages