added a 'repeat' option to vertex smooth in the main 2.5 branch.
authorJoseph Eagar <joeedh@gmail.com>
Thu, 6 Aug 2009 12:34:48 +0000 (12:34 +0000)
committerJoseph Eagar <joeedh@gmail.com>
Thu, 6 Aug 2009 12:34:48 +0000 (12:34 +0000)
source/blender/editors/mesh/editmesh_mods.c

index 8691070654067b96693208203aefb066e5957ddf..72ca97921efd7a0c3b74d2a68353e11a3c03032c 100644 (file)
@@ -4299,6 +4299,18 @@ static int smooth_vertex(bContext *C, wmOperator *op)
        return OPERATOR_FINISHED;
 }
 
+static int smooth_vertex_exec(bContext *C, wmOperator *op)
+{
+       int repeat = RNA_int_get(op->ptr, "repeat");
+       int i;
+
+       if (!repeat) repeat = 1;
+
+       for (i=0; i<repeat; i++) {
+               smooth_vertex(C, op);
+       }
+}
+
 void MESH_OT_vertices_smooth(wmOperatorType *ot)
 {
        /* identifiers */
@@ -4306,11 +4318,13 @@ void MESH_OT_vertices_smooth(wmOperatorType *ot)
        ot->idname= "MESH_OT_vertices_smooth";
        
        /* api callbacks */
-       ot->exec= smooth_vertex;
+       ot->exec= smooth_vertex_exec;
        ot->poll= ED_operator_editmesh;
        
        /* flags */
-       ot->flag= OPTYPE_UNDO;
+       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+       RNA_def_int(ot->srna, "repeat", 1, 1, 100, "Number of times to smooth the mesh", "", 1, INT_MAX);
 }
 
 void vertexnoise(Object *obedit, EditMesh *em)