[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33059] trunk/blender/source/blender/ editors/transform/transform_generics.c: [#24639] Snap to Face (retopo) doesn't work when clipping is enabled in mirror modifier.

Martin Poirier theeth at yahoo.com
Sun Nov 14 17:31:06 CET 2010


Revision: 33059
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33059
Author:   theeth
Date:     2010-11-14 17:31:06 +0100 (Sun, 14 Nov 2010)

Log Message:
-----------
[#24639] Snap to Face (retopo) doesn't work when clipping is enabled in mirror modifier.

Apply project snap at the very end.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_generics.c

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2010-11-14 11:59:42 UTC (rev 33058)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2010-11-14 16:31:06 UTC (rev 33059)
@@ -622,11 +622,6 @@
 	}
 	else if (t->spacetype == SPACE_VIEW3D) {
 		
-		/* project */
-		if(t->state != TRANS_CANCEL) {
-			applyProject(t);
-		}
-		
 		if (t->obedit) {
 			if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
 				Curve *cu= t->obedit->data;
@@ -635,6 +630,7 @@
 
 				if(t->state != TRANS_CANCEL) {
 					clipMirrorModifier(t, t->obedit);
+					applyProject(t);
 				}
 
 				DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA);  /* sets recalc flags */
@@ -655,6 +651,11 @@
 			}
 			else if(t->obedit->type==OB_LATTICE) {
 				Lattice *la= t->obedit->data;
+
+				if(t->state != TRANS_CANCEL) {
+					applyProject(t);
+				}
+
 				DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA);  /* sets recalc flags */
 	
 				if(la->editlatt->latt->flag & LT_OUTSIDE) outside_lattice(la->editlatt->latt);
@@ -664,6 +665,7 @@
 				/* mirror modifier clipping? */
 				if(t->state != TRANS_CANCEL) {
 					clipMirrorModifier(t, t->obedit);
+					applyProject(t);
 				}
 				if((t->options & CTX_NO_MIRROR) == 0 && (t->flag & T_MIRROR))
 					editmesh_apply_to_mirror(t);
@@ -679,6 +681,10 @@
 				TransData *td = t->data;
 				int i;
 				
+				if(t->state != TRANS_CANCEL) {
+					applyProject(t);
+				}
+
 				/* Ensure all bones are correctly adjusted */
 				for (ebo = edbo->first; ebo; ebo = ebo->next){
 					
@@ -751,7 +757,12 @@
 				
 			}
 			else
+			{
+				if(t->state != TRANS_CANCEL) {
+					applyProject(t);
+				}
 				DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA);  /* sets recalc flags */
+			}
 		}
 		else if( (t->flag & T_POSE) && t->poseobj) {
 			Object *ob= t->poseobj;
@@ -777,11 +788,18 @@
 				where_is_pose(scene, ob);
 		}
 		else if(base && (base->object->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(scene, base->object)) {
+			if(t->state != TRANS_CANCEL) {
+				applyProject(t);
+			}
 			flushTransParticles(t);
 		}
 		else {
 			int i;
 			
+			if(t->state != TRANS_CANCEL) {
+				applyProject(t);
+			}
+
 			for (i = 0; i < t->total; i++) {
 				TransData *td = t->data + i;
 				Object *ob = td->ob;





More information about the Bf-blender-cvs mailing list