[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18577] branches/blender2.5/blender/source /blender/editors/mesh: subdivides are now grouped in a menu - WKEY

Shaul Kedem shaul_kedem at yahoo.com
Mon Jan 19 19:36:57 CET 2009


Revision: 18577
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18577
Author:   shul
Date:     2009-01-19 19:36:54 +0100 (Mon, 19 Jan 2009)

Log Message:
-----------
subdivides are now grouped in a menu - WKEY

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c	2009-01-19 17:28:53 UTC (rev 18576)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c	2009-01-19 18:36:54 UTC (rev 18577)
@@ -6407,3 +6407,69 @@
 	/* props */
 	RNA_def_float(ot->srna, "smoothness", 5.0f, 0.0f, 1000.0f, "Smoothness", "", 0.0f, FLT_MAX);
 }
+
+static int subdivs_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+	wmWindowManager *wm= CTX_wm_manager(C);
+	wmOperator *lastop;
+	int items;
+	char *menu, *p;
+	
+	items = 4;
+	
+	menu= MEM_callocN(items * OP_MAX_TYPENAME, "string");
+	
+	p= menu + sprintf(menu, "%s %%t", "subdiv");
+	p+= sprintf(p, "|%s %%x%d", "simple", 3);
+	p+= sprintf(p, "|%s %%x%d", "multi", 2);
+	p+= sprintf(p, "|%s %%x%d", "fractal", 1);
+	p+= sprintf(p, "|%s %%x%d", "smooth", 0);
+	
+	uiPupmenuOperator(C, 20, op, "index", menu);
+	MEM_freeN(menu);
+	
+	return OPERATOR_RUNNING_MODAL;
+}
+
+static int subdivs_exec(bContext *C, wmOperator *op)
+{	
+	switch(RNA_int_get(op->ptr, "index"))
+	{
+		case 3: // simple
+			subdivide_exec(C,op);
+			break;
+		case 2: // multi
+			subdivide_multi_exec(C,op);
+			break;
+		case 1: // fractal;
+			subdivide_multi_fractal_exec(C,op);
+			break;
+		case 0: //smooth
+			subdivide_smooth_exec(C,op);
+			break;
+	}
+					 
+	return OPERATOR_FINISHED;
+}
+
+void MESH_OT_subdivs(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "subdivs";
+	ot->idname= "MESH_OT_subdivs";
+	
+	/* api callbacks */
+	ot->invoke= subdivs_invoke;
+	ot->exec= subdivs_exec;
+	
+	ot->poll= ED_operator_editmesh;
+	
+	/*props */
+	RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, 1000);
+	
+	/* this is temp, the ops are different, but they are called from subdivs, so all the possible props should be here as well*/
+	RNA_def_int(ot->srna, "number_cuts", 4, 0, 100, "Number of Cuts", "", 0, INT_MAX);
+	RNA_def_float(ot->srna, "random_factor", 5.0, 0.0f, FLT_MAX, "Random Factor", "", 0.0f, 1000.0f);
+	RNA_def_float(ot->srna, "smoothness", 5.0f, 0.0f, 1000.0f, "Smoothness", "", 0.0f, FLT_MAX);
+		
+}
\ No newline at end of file

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-01-19 17:28:53 UTC (rev 18576)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-01-19 18:36:54 UTC (rev 18577)
@@ -210,6 +210,7 @@
 void esubdivideflag(Object *obedit, EditMesh *em, int flag, float rad, int beauty, int numcuts, int seltype);
 int EdgeSlide(EditMesh *em, short immediate, float imperc);
 
+void MESH_OT_subdivs(struct wmOperatorType *ot);
 void MESH_OT_subdivide(struct wmOperatorType *ot);
 void MESH_OT_subdivide_multi(struct wmOperatorType *ot);
 void MESH_OT_subdivide_multi_fractal(struct wmOperatorType *ot);

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-01-19 17:28:53 UTC (rev 18576)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-01-19 18:36:54 UTC (rev 18577)
@@ -117,6 +117,7 @@
 	WM_operatortype_append(MESH_OT_subdivide_multi);
 	WM_operatortype_append(MESH_OT_subdivide_multi_fractal);
 	WM_operatortype_append(MESH_OT_subdivide_smooth);
+	WM_operatortype_append(MESH_OT_subdivs);
 	WM_operatortype_append(MESH_OT_select_linked_flat_faces);
 	WM_operatortype_append(MESH_OT_select_sharp_edges);
 	WM_operatortype_append(MESH_OT_add_primitive_plane);
@@ -161,10 +162,12 @@
 	RNA_int_set(WM_keymap_add_item(keymap, "MESH_OT_righthandfaces", NKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "select", 2);
 	RNA_int_set(WM_keymap_add_item(keymap, "MESH_OT_righthandfaces", NKEY, KM_PRESS, KM_CTRL, 0)->ptr, "select", 1);
 	
-	WM_keymap_add_item(keymap, "MESH_OT_subdivide", WKEY, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "MESH_OT_subdivide_multi", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
+	WM_keymap_add_item(keymap, "MESH_OT_subdivs", WKEY, KM_PRESS, 0, 0); // this is the menu
+	/*WM_keymap_add_item(keymap, "MESH_OT_subdivide_multi", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
 	WM_keymap_add_item(keymap, "MESH_OT_subdivide_multi_fractal", WKEY, KM_PRESS, KM_ALT, 0);
-	WM_keymap_add_item(keymap, "MESH_OT_subdivide_smooth", WKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
+	WM_keymap_add_item(keymap, "MESH_OT_subdivide_smooth", WKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);*/
+	
+	
 
 	/* add */
 	WM_keymap_add_item(keymap, "MESH_OT_add_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);





More information about the Bf-blender-cvs mailing list