Module Mesh :: Class MVertSeq
[frames | no frames]

Class MVertSeq


The MVertSeq object

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

Method Summary
  delete(verts)
Deletes one or more vertices from the mesh.
  extend(coords)
Append one or more vertices to the mesh.
list of ints selected()
Get selected vertices.

Method Details

delete(verts)

Deletes one or more vertices from the mesh. Any edge or face which uses the specified vertices are also deleted.
Parameters:
verts - can be
  • a single MVert belonging to the mesh (note: will not work with PVerts)
  • a single integer, specifying an index into the mesh's vertex list
  • a sequence (list or tuple) containing two or more of either of the above.

           (type=multiple ints or MVerts)

extend(coords)

Append one or more vertices to the mesh. Unlike MEdgeSeq.extend() and MFaceSeq.extend() no attempt is made to check for duplicate vertices in the parameter list, or for vertices already in the mesh.

Example:
 import Blender
 from Blender import Mesh
 from Blender.Mathutils import Vector

 me = Mesh.Get("Plane")          # get the mesh data called "Plane"
 me.verts.extend(1,1,1)          # add one vertex
 l=[(.1,.1,.1),Vector([2,2,.5])]
 me.verts.extend(l)              # add multiple vertices
Parameters:
coords - coords can be
  • a tuple of three floats,
  • a 3D vector, or
  • a sequence (list or tuple) of either of the above.

           (type=tuple(s) of floats or vectors)

selected()

Get selected vertices.
Returns:
a list of the indices for all vertices selected in edit mode.
           (type=list of ints)

Generated by Epydoc 2.1 on Thu Dec 22 22:38:11 2005 http://epydoc.sf.net