[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32485] trunk/blender/source/blender/ editors/mesh/editmesh_add.c: Ctrl+Click extrude, project the source verts when projection and rotating the source are enabled (better for retopo workflow).

Campbell Barton ideasman42 at gmail.com
Fri Oct 15 07:27:57 CEST 2010


Revision: 32485
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32485
Author:   campbellbarton
Date:     2010-10-15 07:27:57 +0200 (Fri, 15 Oct 2010)

Log Message:
-----------
Ctrl+Click extrude, project the source verts when projection and rotating the source are enabled (better for retopo workflow).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_add.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_add.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_add.c	2010-10-15 05:18:45 UTC (rev 32484)
+++ trunk/blender/source/blender/editors/mesh/editmesh_add.c	2010-10-15 05:27:57 UTC (rev 32485)
@@ -113,9 +113,12 @@
 	EditVert *eve;
 	float min[3], max[3];
 	int done= 0;
-	
+	short use_proj;
+
 	em_setup_viewcontext(C, &vc);
 	
+	use_proj= ((vc.scene->toolsettings->snap_flag & (SCE_SNAP|SCE_SNAP_PROJECT))==(SCE_SNAP|SCE_SNAP_PROJECT)) &&	(vc.scene->toolsettings->snap_mode==SCE_SNAP_MODE_FACE);
+	
 	invert_m4_m4(vc.obedit->imat, vc.obedit->obmat); 
 	
 	INIT_MINMAX(min, max);
@@ -129,7 +132,7 @@
 
 	/* call extrude? */
 	if(done) {
-		int rot_src= RNA_boolean_get(op->ptr, "rotate_source");
+		short rot_src= RNA_boolean_get(op->ptr, "rotate_source");
 		EditEdge *eed;
 		float vec[3], cent[3], mat[3][3];
 		float nor[3]= {0.0, 0.0, 0.0};
@@ -221,8 +224,12 @@
 			}
 		}
 		
-		if(rot_src)
+		if(rot_src) {
 			rotateflag(vc.em, SELECT, cent, mat);
+			/* also project the source, for retopo workflow */
+			if(use_proj)
+				EM_project_snap_verts(C, vc.ar, vc.obedit, vc.em);
+		}
 		
 		extrudeflag(vc.obedit, vc.em, SELECT, nor, 0);
 		rotateflag(vc.em, SELECT, cent, mat);
@@ -249,11 +256,8 @@
 		eve->f= SELECT;
 	}
 
-	if(	((vc.scene->toolsettings->snap_flag & (SCE_SNAP|SCE_SNAP_PROJECT))==(SCE_SNAP|SCE_SNAP_PROJECT)) &&
-		(vc.scene->toolsettings->snap_mode==SCE_SNAP_MODE_FACE)
-	) {
+	if(use_proj)
 		EM_project_snap_verts(C, vc.ar, vc.obedit, vc.em);
-	}
 
 	WM_event_add_notifier(C, NC_GEOM|ND_DATA, vc.obedit->data); 
 	DAG_id_flush_update(vc.obedit->data, OB_RECALC_DATA);





More information about the Bf-blender-cvs mailing list