[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12466] trunk/blender/source/blender/src/ editmesh_lib.c: Bug fix to handle extruding with a mirror modifier, now that axes are

Chris Want cwant at ualberta.ca
Sun Nov 4 03:25:33 CET 2007


Revision: 12466
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12466
Author:   hos
Date:     2007-11-04 03:25:32 +0100 (Sun, 04 Nov 2007)

Log Message:
-----------
Bug fix to handle extruding with a mirror modifier, now that axes are
specified with a bitmask rather than only operating on a single axis.
This is a reworking of the fix done in blender 2.42 that was mentioned
in the sixth on item on this page:

http://www.blender.org/development/release-logs/blender-242/mesh-tools/

Modified Paths:
--------------
    trunk/blender/source/blender/src/editmesh_lib.c

Modified: trunk/blender/source/blender/src/editmesh_lib.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_lib.c	2007-11-04 00:53:37 UTC (rev 12465)
+++ trunk/blender/source/blender/src/editmesh_lib.c	2007-11-04 02:25:32 UTC (rev 12466)
@@ -1145,23 +1145,20 @@
 				for (eed= em->edges.first; eed; eed= eed->next) {
 					if(eed->f2 == 1) {
 
-						switch(mmd->axis){
-							case 0:
-								if ( (fabs(eed->v1->co[0]) < mmd->tolerance) &&
-									 (fabs(eed->v2->co[0]) < mmd->tolerance) )
-									++eed->f2;
-								break;
-							case 1:
-								if ( (fabs(eed->v1->co[1]) < mmd->tolerance) &&
-									 (fabs(eed->v2->co[1]) < mmd->tolerance) )
-									++eed->f2;
-								break;
-							case 2:
-								if ( (fabs(eed->v1->co[2]) < mmd->tolerance) &&
-									 (fabs(eed->v2->co[2]) < mmd->tolerance) )
-									++eed->f2;
-								break;
-						}
+						if (mmd->flag & MOD_MIR_AXIS_X)
+							if ( (fabs(eed->v1->co[0]) < mmd->tolerance) &&
+								 (fabs(eed->v2->co[0]) < mmd->tolerance) )
+								++eed->f2;
+
+						if (mmd->flag & MOD_MIR_AXIS_Y)
+							if ( (fabs(eed->v1->co[1]) < mmd->tolerance) &&
+								 (fabs(eed->v2->co[1]) < mmd->tolerance) )
+								++eed->f2;
+
+						if (mmd->flag & MOD_MIR_AXIS_Z)
+							if ( (fabs(eed->v1->co[2]) < mmd->tolerance) &&
+								 (fabs(eed->v2->co[2]) < mmd->tolerance) )
+								++eed->f2;
 					}
 				}
 			}
@@ -1414,23 +1411,19 @@
 				for (eed= em->edges.first; eed; eed= eed->next) {
 					if(eed->f2 == 2) {
 
-						switch(mmd->axis){
-							case 0:
-								if ( (fabs(eed->v1->co[0]) < mmd->tolerance) &&
-									 (fabs(eed->v2->co[0]) < mmd->tolerance) )
-									++eed->f2;
-								break;
-							case 1:
-								if ( (fabs(eed->v1->co[1]) < mmd->tolerance) &&
-									 (fabs(eed->v2->co[1]) < mmd->tolerance) )
-									++eed->f2;
-								break;
-							case 2:
-								if ( (fabs(eed->v1->co[2]) < mmd->tolerance) &&
-									 (fabs(eed->v2->co[2]) < mmd->tolerance) )
-									++eed->f2;
-								break;
-						}
+						if (mmd->flag & MOD_MIR_AXIS_X)
+							if ( (fabs(eed->v1->co[0]) < mmd->tolerance) &&
+								 (fabs(eed->v2->co[0]) < mmd->tolerance) )
+								++eed->f2;
+
+						if (mmd->flag & MOD_MIR_AXIS_Y)
+							if ( (fabs(eed->v1->co[1]) < mmd->tolerance) &&
+								 (fabs(eed->v2->co[1]) < mmd->tolerance) )
+								++eed->f2;
+						if (mmd->flag & MOD_MIR_AXIS_Z)
+							if ( (fabs(eed->v1->co[2]) < mmd->tolerance) &&
+								 (fabs(eed->v2->co[2]) < mmd->tolerance) )
+								++eed->f2;
 					}
 				}
 			}





More information about the Bf-blender-cvs mailing list