Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-02-17 04:32:35 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-02-17 04:41:19 +0400
commitcc7cfd661736f67d3f97108c38998b159d87ec9b (patch)
treea58ba63a713c11786b7a3042d873eb9cec328b90 /source/blender/bmesh/intern
parent20da9353b88ee544c41ada47a2ab76099e78736c (diff)
Mesh Tool: removes degenerate edges, faces and face ears.
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r--source/blender/bmesh/intern/bmesh_opdefines.c22
-rw-r--r--source/blender/bmesh/intern/bmesh_operators_private.h3
2 files changed, 23 insertions, 2 deletions
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c
index 0c75597282e..0c8347f980e 100644
--- a/source/blender/bmesh/intern/bmesh_opdefines.c
+++ b/source/blender/bmesh/intern/bmesh_opdefines.c
@@ -1022,6 +1022,25 @@ static BMOpDefine bmo_dissolve_limit_def = {
};
/*
+ * Degenerate Dissolve.
+ *
+ * Dissolve edges with no length, faces with no area.
+ */
+static BMOpDefine bmo_dissolve_degenerate_def = {
+ "dissolve_degenerate",
+ /* slots_in */
+ {{"dist", BMO_OP_SLOT_FLT}, /* minimum distance to consider degenerate */
+ {"edges", BMO_OP_SLOT_ELEMENT_BUF, {BM_EDGE}},
+ {{'\0'}},
+ },
+ /* slots_out */
+ {{"verts.out", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* output vertices */
+ {{'\0'}}},
+ bmo_dissolve_degenerate_exec,
+ BMO_OPTYPE_FLAG_UNTAN_MULTIRES | BMO_OPTYPE_FLAG_NORMALS_CALC | BMO_OPTYPE_FLAG_SELECT_FLUSH,
+};
+
+/*
* Triangulate.
*/
static BMOpDefine bmo_triangulate_def = {
@@ -1828,8 +1847,9 @@ const BMOpDefine *bmo_opdefines[] = {
&bmo_delete_def,
&bmo_dissolve_edges_def,
&bmo_dissolve_faces_def,
- &bmo_dissolve_limit_def,
&bmo_dissolve_verts_def,
+ &bmo_dissolve_limit_def,
+ &bmo_dissolve_degenerate_def,
&bmo_duplicate_def,
&bmo_holes_fill_def,
&bmo_face_attribute_fill_def,
diff --git a/source/blender/bmesh/intern/bmesh_operators_private.h b/source/blender/bmesh/intern/bmesh_operators_private.h
index 517a2c4fa01..9c1b7085835 100644
--- a/source/blender/bmesh/intern/bmesh_operators_private.h
+++ b/source/blender/bmesh/intern/bmesh_operators_private.h
@@ -56,8 +56,9 @@ void bmo_create_vert_exec(BMesh *bm, BMOperator *op);
void bmo_delete_exec(BMesh *bm, BMOperator *op);
void bmo_dissolve_edges_exec(BMesh *bm, BMOperator *op);
void bmo_dissolve_faces_exec(BMesh *bm, BMOperator *op);
-void bmo_dissolve_limit_exec(BMesh *bm, BMOperator *op);
void bmo_dissolve_verts_exec(BMesh *bm, BMOperator *op);
+void bmo_dissolve_limit_exec(BMesh *bm, BMOperator *op);
+void bmo_dissolve_degenerate_exec(BMesh *bm, BMOperator *op);
void bmo_duplicate_exec(BMesh *bm, BMOperator *op);
void bmo_edgeloop_fill_exec(BMesh *bm, BMOperator *op);
void bmo_face_attribute_fill_exec(BMesh *bm, BMOperator *op);