source code
This object provides sequence and iterator access to the mesh's vertices. Access and assignment of single items and slices are also supported. When a single item in the vertex list is accessed, the operator[] returns a MVert object which "wraps" the actual vertex in the mesh; changing any of the vertex's attributes will immediately change the data in the mesh. When a slice of the vertex list is accessed, however, the operator[] returns a list of PVert objects which are copies of the mesh's vertex data. Changes to these objects have no effect on the mesh; they must be assigned back to the mesh's vertex list.
Slice assignments cannot change the vertex list size. The size of the list being assigned must be the same as the specified slice; otherwise an exception is thrown.
Example:
import Blender from Blender import Mesh me = Mesh.Get("Plane") # get the mesh data called "Plane" vert = me.verts[0] # vert accesses actual mesh data vert.co[0] += 2 # change the vertex's X location pvert = me.verts[-2:] # pvert is COPY of mesh's last two verts pvert[0].co[0] += 2 # change the vertex's X location pvert[1].co[0] += 2 # change the vertex's X location me.verts[-1] = pvert[1] # put change to second vertex into mesh
Note: The mesh can be "cleared" by assigning None to the mesh's vertex list. This does not delete the Blender mesh object, it only deletes all the memory allocated to the mesh. The result is equivalent to calling Mesh.New(). The intent is to allow users writing exporters to free memory after it is used in a quick and simple way.
Example:
import Blender from Blender import Mesh me = Mesh.Get("Plane") # get the mesh data called "Plane" me.verts = None # delete all the mesh's attributes