{{newin|[[0.9.0]]|090|type=function}}
Replaces a range of vertices in the Mesh with new ones. The total number of vertices in a Mesh cannot be changed after it has been created. This is often more efficient than calling [[Mesh:setVertex]] in a loop.

== Function ==
{{newin|[[0.10.0]]|100|type=variant}}
=== Synopsis ===
<source lang="lua">
Mesh:setVertices( vertices, startvertex )
</source>
=== Arguments ===
{{param|table|vertices|The table filled with vertex information tables for each vertex, in the form of <code>{vertex, ...}</code> where each vertex is a table in the form of <code>{attributecomponent, ...}</code>.}}
{{subparam|number|attributecomponent|The first component of the first vertex attribute in the vertex.}}
{{subparam|number|...|Additional components of all vertex attributes in the vertex.}}
{{param|number|startvertex (1)|The index of the first vertex to replace.}}
=== Returns ===
Nothing.
=== Notes ===
The values in each vertex table are in the same order as the vertex attributes in the Mesh's [[Mesh:getVertexFormat|vertex format]]. A standard Mesh that wasn't [[love.graphics.newMesh|created]] with a custom vertex format will use two position numbers, two texture coordinate numbers, and four color components per vertex: x, y, u, v, r, g, b, a.

If no value is supplied for a specific vertex attribute component, it will be set to a default value of 0 if its [[AttributeDataType|data type]] is "float", or 255 if its data type is "byte".

== Function ==
{{newin|[[0.10.0]]|100|type=variant}}
Sets the vertex components of the Mesh by copying directly from the memory of a [[Data]] object.
=== Synopsis ===
<source lang="lua">
Mesh:setVertices( data, startvertex )
</source>
=== Arguments ===
{{param|Data|data|A Data object to copy from. The contents of the Data must match the layout of this Mesh's [[Mesh:getVertexFormat|vertex format]].}}
{{param|number|startvertex (1)|The index of the first vertex to replace.}}
=== Returns ===
Nothing.
=== Notes ===
If LuaJIT's [http://luajit.org/ext_ffi_api.html FFI] is used to populate the Data object via [[Data:getPointer]] and [http://luajit.org/ext_ffi_api.html#ffi_cast ffi.cast], this variant can be drastically more efficient than other methods of setting Mesh vertex data.

== Function ==
Sets the vertex components of a Mesh that wasn't [[love.graphics.newMesh|created]] with a custom vertex format.
=== Synopsis ===
<source lang="lua">
Mesh:setVertices( vertices )
</source>
=== Arguments ===
{{param|table|vertices|The table filled with vertex information tables for each vertex as follows:}}
{{subparam|number|[1]|The position of the vertex on the x-axis.}}
{{subparam|number|[2]|The position of the vertex on the y-axis.}}
{{subparam|number|[3]|The horizontal component of the texture coordinate. Texture coordinates are normally in the range of [0, 1], but can be greater or less (see [[WrapMode]]).}}
{{subparam|number|[4]|The vertical component of the texture coordinate. Texture coordinates are normally in the range of [0, 1], but can be greater or less (see [[WrapMode]]).}}
{{subparam|number|[5] (1)|The red color component.}}
{{subparam|number|[6] (1)|The green color component.}}
{{subparam|number|[7] (1)|The blue color component.}}
{{subparam|number|[8] (1)|The alpha color component.}}

=== Returns ===
Nothing.

== See Also ==
* [[parent::Mesh]]
* [[Mesh:getVertex]]
* [[Mesh:getVertexCount]]
* [[Mesh:getVertexFormat]]
[[Category:Functions]]
{{#set:Description=Replaces a range of vertices in the Mesh with new ones.}}
== Other Languages ==
{{i18n|Mesh:setVertices}}