[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45261] trunk/blender: added Mesh. calc_tessface(), needed to update mesh tessface after bmesh edits.
Campbell Barton
ideasman42 at gmail.com
Thu Mar 29 15:44:37 CEST 2012
Revision: 45261
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45261
Author: campbellbarton
Date: 2012-03-29 13:44:30 +0000 (Thu, 29 Mar 2012)
Log Message:
-----------
added Mesh.calc_tessface(), needed to update mesh tessface after bmesh edits.
also add py api BMDeformVert.clear()
Modified Paths:
--------------
trunk/blender/doc/python_api/rst/include__bmesh.rst
trunk/blender/source/blender/editors/include/ED_mesh.h
trunk/blender/source/blender/editors/mesh/mesh_data.c
trunk/blender/source/blender/makesrna/intern/rna_mesh_api.c
trunk/blender/source/blender/python/bmesh/bmesh_py_types_meshdata.c
Modified: trunk/blender/doc/python_api/rst/include__bmesh.rst
===================================================================
--- trunk/blender/doc/python_api/rst/include__bmesh.rst 2012-03-29 13:09:07 UTC (rev 45260)
+++ trunk/blender/doc/python_api/rst/include__bmesh.rst 2012-03-29 13:44:30 UTC (rev 45261)
@@ -75,6 +75,16 @@
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
-----------------
Modified: trunk/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mesh.h 2012-03-29 13:09:07 UTC (rev 45260)
+++ trunk/blender/source/blender/editors/include/ED_mesh.h 2012-03-29 13:44:30 UTC (rev 45261)
@@ -261,6 +261,7 @@
void ED_mesh_transform(struct Mesh *me, float *mat);
void ED_mesh_calc_normals(struct Mesh *me);
+void ED_mesh_calc_tessface(struct Mesh *mesh);
void ED_mesh_material_link(struct Mesh *me, struct Material *ma);
void ED_mesh_update(struct Mesh *mesh, struct bContext *C, int calc_edges, int calc_tessface);
Modified: trunk/blender/source/blender/editors/mesh/mesh_data.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_data.c 2012-03-29 13:09:07 UTC (rev 45260)
+++ trunk/blender/source/blender/editors/mesh/mesh_data.c 2012-03-29 13:44:30 UTC (rev 45261)
@@ -1182,3 +1182,13 @@
NULL);
#endif
}
+
+void ED_mesh_calc_tessface(Mesh *mesh)
+{
+ if (mesh->edit_btmesh) {
+ BMEdit_RecalcTessellation(mesh->edit_btmesh);
+ }
+ else {
+ BKE_mesh_tessface_calc(mesh);
+ }
+}
Modified: trunk/blender/source/blender/makesrna/intern/rna_mesh_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_mesh_api.c 2012-03-29 13:09:07 UTC (rev 45260)
+++ trunk/blender/source/blender/makesrna/intern/rna_mesh_api.c 2012-03-29 13:44:30 UTC (rev 45261)
@@ -65,6 +65,9 @@
func = RNA_def_function(srna, "calc_normals", "ED_mesh_calc_normals");
RNA_def_function_ui_description(func, "Calculate vertex normals");
+ func = RNA_def_function(srna, "calc_tessface", "ED_mesh_calc_tessface");
+ RNA_def_function_ui_description(func, "Calculate face tessellation (supports editmode too)");
+
func = RNA_def_function(srna, "update", "ED_mesh_update");
RNA_def_boolean(func, "calc_edges", 0, "Calculate Edges", "Force recalculation of edges");
RNA_def_boolean(func, "calc_tessface", 0, "Calculate Tessellation", "Force recalculation of tessellation faces");
Modified: trunk/blender/source/blender/python/bmesh/bmesh_py_types_meshdata.c
===================================================================
--- trunk/blender/source/blender/python/bmesh/bmesh_py_types_meshdata.c 2012-03-29 13:09:07 UTC (rev 45260)
+++ trunk/blender/source/blender/python/bmesh/bmesh_py_types_meshdata.c 2012-03-29 13:44:30 UTC (rev 45261)
@@ -525,12 +525,26 @@
}
}
+
+PyDoc_STRVAR(bpy_bmdeformvert_clear_doc,
+".. method:: clear()\n"
+"\n"
+" Clears all weights.\n"
+);
+static PyObject *bpy_bmdeformvert_clear(BPy_BMDeformVert *self)
+{
+ defvert_clear(self->data);
+
+ Py_RETURN_NONE;
+}
+
static struct PyMethodDef bpy_bmdeformvert_methods[] = {
{"keys", (PyCFunction)bpy_bmdeformvert_keys, METH_NOARGS, bpy_bmdeformvert_keys_doc},
{"values", (PyCFunction)bpy_bmdeformvert_values, METH_NOARGS, bpy_bmdeformvert_values_doc},
{"items", (PyCFunction)bpy_bmdeformvert_items, METH_NOARGS, bpy_bmdeformvert_items_doc},
{"get", (PyCFunction)bpy_bmdeformvert_get, METH_VARARGS, bpy_bmdeformvert_get_doc},
- /* BMESH_TODO */
+ /* BMESH_TODO pop, popitem, update */
+ {"clear", (PyCFunction)bpy_bmdeformvert_clear, METH_NOARGS, bpy_bmdeformvert_clear_doc},
{NULL, NULL, 0, NULL}
};
@@ -586,3 +600,4 @@
bm_init_types_bmloopcol();
bm_init_types_bmdvert();
}
+
More information about the Bf-blender-cvs
mailing list