2.5: warning fixes
[blender.git] / source / blender / editors / mesh / editmesh_mods.c
index 2995e2d895bb37b1539032373c8170dba3a23080..44f63427e5f250f37f6a9eab02d9f0ad2ab91df2 100644 (file)
@@ -92,7 +92,7 @@ editmesh_mods.c, UI level access, no geometry changes
 #include "BLO_sys_types.h" // for intptr_t support
 
 /* XXX */
-static void waitcursor() {}
+static void waitcursor(int val) {}
 static int pupmenu() {return 0;}
 
 /* ****************************** MIRROR **************** */
@@ -1229,12 +1229,25 @@ static int select_similar_exec(bContext *C, wmOperator *op)
 
 static EnumPropertyItem *select_similar_type_itemf(bContext *C, PointerRNA *ptr, int *free)
 {
-       Object *obedit= CTX_data_edit_object(C);
-
+       Object *obedit;
+       EnumPropertyItem *item= NULL;
+       int totitem= 0;
+       
+       if(C==NULL) {
+               /* needed for doc generation */
+               RNA_enum_items_add(&item, &totitem, prop_simvertex_types);
+               RNA_enum_items_add(&item, &totitem, prop_simedge_types);
+               RNA_enum_items_add(&item, &totitem, prop_simface_types);
+               RNA_enum_item_end(&item, &totitem);
+               *free= 1;
+               
+               return item;
+       }
+       
+       obedit= CTX_data_edit_object(C);
+       
        if(obedit && obedit->type == OB_MESH) {
                EditMesh *em= BKE_mesh_get_editmesh(obedit->data); 
-               EnumPropertyItem *item= NULL;
-               int totitem= 0;
 
                if(em->selectmode & SCE_SELECT_VERTEX)
                        RNA_enum_items_add(&item, &totitem, prop_simvertex_types);
@@ -1248,7 +1261,7 @@ static EnumPropertyItem *select_similar_type_itemf(bContext *C, PointerRNA *ptr,
 
                return item;
        }
-
+       
        return NULL;
 }
 
@@ -4286,6 +4299,20 @@ 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);
+       }
+
+       return OPERATOR_FINISHED;
+}
+
 void MESH_OT_vertices_smooth(wmOperatorType *ot)
 {
        /* identifiers */
@@ -4293,11 +4320,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)