[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14816] trunk/blender/source/blender/src/ editmesh_tools.c: mirror face UVs and color was rotating, shift for alternate axis also wasnt implimented

Campbell Barton ideasman42 at gmail.com
Mon May 12 20:30:51 CEST 2008


Revision: 14816
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14816
Author:   campbellbarton
Date:     2008-05-12 20:30:50 +0200 (Mon, 12 May 2008)

Log Message:
-----------
mirror face UVs and color was rotating, shift for alternate axis also wasnt implimented

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

Modified: trunk/blender/source/blender/src/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_tools.c	2008-05-12 17:41:03 UTC (rev 14815)
+++ trunk/blender/source/blender/src/editmesh_tools.c	2008-05-12 18:30:50 UTC (rev 14816)
@@ -6758,7 +6758,7 @@
 {
 	EditMesh *em = G.editMesh;
 	EditFace *efa;
-	short change = 0;
+	short change = 0, altaxis;
 	MTFace *tf;
 	float u1, v1;
 	
@@ -6767,33 +6767,65 @@
 		return;
 	}
 	
+	altaxis = (G.qual == LR_SHIFTKEY);
+	
 	for(efa=em->faces.first; efa; efa=efa->next) {
 		if (efa->f & SELECT) {
 			tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
-			u1= tf->uv[0][0];
-			v1= tf->uv[0][1];
-			if(efa->v4) {
-				tf->uv[0][0]= tf->uv[3][0];
-				tf->uv[0][1]= tf->uv[3][1];
-			
-				tf->uv[3][0]= u1;
-				tf->uv[3][1]= v1;
-
+			if (altaxis) {
 				u1= tf->uv[1][0];
 				v1= tf->uv[1][1];
+				if(efa->v4) {
+				
+					tf->uv[1][0]= tf->uv[2][0];
+					tf->uv[1][1]= tf->uv[2][1];
+			
+					tf->uv[2][0]= u1;
+					tf->uv[2][1]= v1;
 
-				tf->uv[1][0]= tf->uv[2][0];
-				tf->uv[1][1]= tf->uv[2][1];
+					u1= tf->uv[3][0];
+					v1= tf->uv[3][1];
+
+					tf->uv[3][0]= tf->uv[0][0];
+					tf->uv[3][1]= tf->uv[0][1];
 			
-				tf->uv[2][0]= u1;
-				tf->uv[2][1]= v1;
+					tf->uv[0][0]= u1;
+					tf->uv[0][1]= v1;
+				}
+				else {
+					tf->uv[1][0]= tf->uv[2][0];
+					tf->uv[1][1]= tf->uv[2][1];
+					tf->uv[2][0]= u1;
+					tf->uv[2][1]= v1;
+				}
+				
+			} else {
+				u1= tf->uv[0][0];
+				v1= tf->uv[0][1];
+				if(efa->v4) {
+				
+					tf->uv[0][0]= tf->uv[1][0];
+					tf->uv[0][1]= tf->uv[1][1];
+			
+					tf->uv[1][0]= u1;
+					tf->uv[1][1]= v1;
+
+					u1= tf->uv[3][0];
+					v1= tf->uv[3][1];
+
+					tf->uv[3][0]= tf->uv[2][0];
+					tf->uv[3][1]= tf->uv[2][1];
+			
+					tf->uv[2][0]= u1;
+					tf->uv[2][1]= v1;
+				}
+				else {
+					tf->uv[0][0]= tf->uv[1][0];
+					tf->uv[0][1]= tf->uv[1][1];
+					tf->uv[1][0]= u1;
+					tf->uv[1][1]= v1;
+				}
 			}
-			else {
-				tf->uv[0][0]= tf->uv[2][0];
-				tf->uv[0][1]= tf->uv[2][1];
-				tf->uv[2][0]= u1;
-				tf->uv[2][1]= v1;
-			}
 			change = 1;
 		}
 	}
@@ -6858,27 +6890,38 @@
 {
 	EditMesh *em = G.editMesh;
 	EditFace *efa;
-	short change = 0;
+	short change = 0, altaxis;
 	MCol tmpcol, *mcol;
 	if (!EM_vertColorCheck()) {
 		error("mesh has no color layers");
 		return;
 	}
 	
+	altaxis = (G.qual == LR_SHIFTKEY);
+	
 	for(efa=em->faces.first; efa; efa=efa->next) {
 		if (efa->f & SELECT) {
 			mcol = CustomData_em_get(&em->fdata, efa->data, CD_MCOL);
-			tmpcol= mcol[0];
-			
-			mcol[0]= mcol[1];
-			mcol[1]= mcol[2];
-
-			if(efa->v4) {
-				mcol[2]= mcol[3];
-				mcol[3]= tmpcol;
-			}
-			else {
+			if (altaxis) {
+				tmpcol= mcol[1];
+				mcol[1]= mcol[2];
 				mcol[2]= tmpcol;
+				
+				if(efa->v4) {
+					tmpcol= mcol[0];
+					mcol[0]= mcol[3];
+					mcol[3]= tmpcol;
+				}
+			} else {
+				tmpcol= mcol[0];
+				mcol[0]= mcol[1];
+				mcol[1]= tmpcol;
+				
+				if(efa->v4) {
+					tmpcol= mcol[2];
+					mcol[2]= mcol[3];
+					mcol[3]= tmpcol;
+				}
 			}
 			change = 1;
 		}





More information about the Bf-blender-cvs mailing list