[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18998] branches/blender2.5/blender/source /blender/editors/mesh: spin mesh is alt Rkey - ton, please check and advise regarding screw_mesh and defaults.

Shaul Kedem shaul_kedem at yahoo.com
Mon Feb 16 21:04:04 CET 2009


Revision: 18998
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18998
Author:   shul
Date:     2009-02-16 21:04:01 +0100 (Mon, 16 Feb 2009)

Log Message:
-----------
spin mesh is alt Rkey - ton, please check and advise regarding screw_mesh and defaults. F3 fails while pressed continuously

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-02-16 17:40:46 UTC (rev 18997)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c	2009-02-16 20:04:01 UTC (rev 18998)
@@ -819,10 +819,18 @@
 	RNA_def_int(ot->srna, "steps", 10, 0, 180, "Steps", "", 0, INT_MAX);
 }
 	
-void spin_mesh(View3D *v3d, Object *obedit, EditMesh *em, wmOperator *op, int steps, float degr, float *dvec, int mode)
+void spin_mesh(bContext *C, wmOperator *op,float *dvec )
 {
-	Scene *scene= NULL; // XXX from context!
-	RegionView3D *rv3d= NULL; // XXX from context
+	Object *obedit= CTX_data_edit_object(C);
+	View3D *v3d = CTX_wm_view3d(C);
+	Scene *scene = CTX_data_scene(C);
+	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
+	
+	int steps = RNA_int_get(op->ptr,"steps");
+	float degr = RNA_float_get(op->ptr,"degrees");
+	int mode = RNA_int_get(op->ptr,"steps");
+	
+	RegionView3D *rv3d= CTX_wm_region_view3d(C);
 	EditVert *eve,*nextve;
 	float nor[3]= {0.0, 0.0, 0.0};
 	float *curs, si,n[3],q[4],cmat[3][3],imat[3][3], tmat[3][3];
@@ -834,7 +842,7 @@
 	Mat3CpyMat4(bmat, obedit->obmat);
 	Mat3Inv(imat,bmat);
 
-	curs= give_cursor(NULL, v3d); // XXX
+	curs= give_cursor(scene, v3d);
 	VECCOPY(cent, curs);
 	cent[0]-= obedit->obmat[3][0];
 	cent[1]-= obedit->obmat[3][1];
@@ -903,9 +911,44 @@
 
 }
 
-void screw_mesh(Object *obedit, EditMesh *em, wmOperator *op, int steps, int turns)
+static int spin_mesh_exec(bContext *C, wmOperator *op)
 {
-	View3D *v3d= NULL; // XXX
+	Object *obedit= CTX_data_edit_object(C);
+	
+	spin_mesh(C, op,NULL);
+	
+	WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit);
+	
+	return OPERATOR_FINISHED;
+}
+
+void MESH_OT_spin(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Spin";
+	ot->idname= "MESH_OT_spin";
+	
+	/* api callbacks */
+	ot->exec= spin_mesh_exec;
+	ot->poll= ED_operator_editmesh;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	/*props */
+	//int steps, float degr, float *dvec, int mode
+	
+	RNA_def_int(ot->srna, "steps", 5, 0, INT_MAX, "Steps", "Steps", 0, INT_MAX);
+	RNA_def_int(ot->srna, "mode", 5, 0, INT_MAX, "Mode", "Mode", 0, INT_MAX);
+	RNA_def_float(ot->srna, "degrees", 5.0f, 0.0f, FLT_MAX, "Degrees", "Degrees", 0.0f, FLT_MAX);
+	//RNA_def_enum(ot->srna, "type", prop_mesh_delete_types, 10, "Type", "Method used for deleting mesh data");
+}
+
+void screw_mesh(bContext *C, wmOperator *op, int steps, int turns)
+{
+	Object *obedit= CTX_data_edit_object(C);
+	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
+	
 	EditVert *eve,*v1=0,*v2=0;
 	EditEdge *eed;
 	float dvec[3], nor[3];
@@ -959,7 +1002,8 @@
 		dvec[2]= -dvec[2];
 	}
 
-	spin_mesh(v3d, obedit, em, op, turns*steps, turns*360, dvec, 0);
+	//TODO : set : turns*steps, turns*360,0
+	spin_mesh(C, op,  dvec);
 
 }
 

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-02-16 17:40:46 UTC (rev 18997)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-02-16 20:04:01 UTC (rev 18998)
@@ -208,6 +208,7 @@
 void MESH_OT_subdivide_smooth(struct wmOperatorType *ot);
 void MESH_OT_removedoublesflag(struct wmOperatorType *ot);
 void MESH_OT_extrude(struct wmOperatorType *ot);
+void MESH_OT_spin(struct wmOperatorType *ot);
 
 void MESH_OT_fill(struct wmOperatorType *ot);
 void MESH_OT_beauty_fill(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-02-16 17:40:46 UTC (rev 18997)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-16 20:04:01 UTC (rev 18998)
@@ -140,6 +140,8 @@
 	WM_operatortype_append(MESH_OT_add_duplicate);
 	WM_operatortype_append(MESH_OT_removedoublesflag);
 	WM_operatortype_append(MESH_OT_extrude);
+	WM_operatortype_append(MESH_OT_spin);
+	
 	WM_operatortype_append(MESH_OT_vertices_to_sphere);
 	WM_operatortype_append(MESH_OT_split_mesh);
 	WM_operatortype_append(MESH_OT_extrude_repeat);
@@ -249,6 +251,8 @@
 	WM_keymap_add_item(keymap, "MESH_OT_removedoublesflag", VKEY, KM_PRESS, KM_CTRL, 0);
 	WM_keymap_add_item(keymap, "MESH_OT_extrude", EKEY, KM_PRESS, 0, 0);
 	
+	WM_keymap_add_item(keymap, "MESH_OT_spin", RKEY, KM_PRESS, KM_ALT, 0);
+	
 	WM_keymap_add_item(keymap, "VIEW3D_OT_editmesh_face_toolbox", FKEY, KM_PRESS, KM_CTRL, 0); /* operators below are in this toolbox */
 	WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_SHIFT, 0);
 	WM_keymap_add_item(keymap, "MESH_OT_beauty_fill", FKEY, KM_PRESS, KM_ALT, 0);





More information about the Bf-blender-cvs mailing list