added Mesh.calc_tessface(), needed to update mesh tessface after bmesh edits.
[blender.git] / doc / python_api / rst / include__bmesh.rst
index 025788ae9f4d43acc9a4f0cee3f18757697e9ee3..24f113e7b50e60faf7384be8d392713e3420b65d 100644 (file)
@@ -75,6 +75,16 @@ its good practice to call :class:`bmesh.types.BMesh.free` which will remove all
 further access.
 
 
+EditMode Tessellation
+^^^^^^^^^^^^^^^^^^^^^
+
+When writing scripts that operate on editmode data you will normally want to re-calculate the tessellation after
+running the  script, this needs to be called explicitly.
+
+The BMesh its self does not store the triangulated faces, they are stored in the :class:`bpy.types.Mesh`,
+to refresh tessellation faces call :class:`bpy.types.Mesh.calc_tessface`.
+
+
 CustomData Access
 -----------------
 
@@ -104,16 +114,35 @@ Here are some examples ...
         print("Vert Shape: %f, %f, %f" % (shape.x, shape.y, shape.z))
 
 
+.. code-block:: python
+
+   # in this example the active vertex group index is used,
+   # this is stored in the object, not the BMesh
+   group_index = obj.vertex_groups.active_index
+
+   # only ever one deform weight layer
+   dvert_lay = bm.verts.layers.deform.active
+
+   for vert in bm.verts:
+       dvert = vert[dvert_lay]
+               
+       if group_index in dvert:
+           print("Weight %f" % dvert[group_index])
+       else:
+           print("Setting Weight")
+           dvert[group_index] = 0.5
+
+
 Keeping a Correct State
 -----------------------
 
 When modeling in blender there are certain assumptions made about the state of the mesh.
 
 * hidden geometry isn't selected.
-* when an edge is selected, its vertices's are selected too.
-* when a face is selected, its edges and vertices's are selected.
+* when an edge is selected, its vertices are selected too.
+* when a face is selected, its edges and vertices are selected.
 * duplicate edges / faces don't exist.
-* faces have at least 3 vertices's.
+* faces have at least 3 vertices.
 
 To give developers flexibility these conventions are not enforced,
 however tools must leave the mesh in a valid state else other tools may behave incorrectly.