[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14251] trunk/blender/source/blender/src/ editmesh_tools.c:

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Mar 26 18:56:14 CET 2008


Revision: 14251
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14251
Author:   blendix
Date:     2008-03-26 18:56:14 +0100 (Wed, 26 Mar 2008)

Log Message:
-----------

Fix for bug #8407: merging vertices at first/last did not
preserve UVs correct.

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-03-26 17:29:20 UTC (rev 14250)
+++ trunk/blender/source/blender/src/editmesh_tools.c	2008-03-26 17:56:14 UTC (rev 14251)
@@ -6118,7 +6118,7 @@
 
 /*End UV Edge collapse code*/
 
-static void collapseuvs(void)
+static void collapseuvs(EditVert *mergevert)
 {
 	EditFace *efa;
 	MTFace *tf;
@@ -6135,22 +6135,22 @@
 	for(efa = G.editMesh->faces.first; efa; efa=efa->next){
 		tf = CustomData_em_get(&G.editMesh->fdata, efa->data, CD_MTFACE);
 
-		if(efa->v1->f1){
+		if(efa->v1->f1 && ELEM(mergevert, NULL, efa->v1)) {
 			uvav[0] += tf->uv[0][0];
 			uvav[1] += tf->uv[0][1];
 			uvcount += 1;
 		}
-		if(efa->v2->f1){
+		if(efa->v2->f1 && ELEM(mergevert, NULL, efa->v2)){
 			uvav[0] += tf->uv[1][0];		
 			uvav[1] += tf->uv[1][1];
 			uvcount += 1;
 		}
-		if(efa->v3->f1){
+		if(efa->v3->f1 && ELEM(mergevert, NULL, efa->v3)){
 			uvav[0] += tf->uv[2][0];
 			uvav[1] += tf->uv[2][1];
 			uvcount += 1;
 		}
-		if(efa->v4 && efa->v4->f1){
+		if(efa->v4 && efa->v4->f1 && ELEM(mergevert, NULL, efa->v4)){
 			uvav[0] += tf->uv[3][0];
 			uvav[1] += tf->uv[3][1];
 			uvcount += 1;
@@ -6287,7 +6287,7 @@
 		for(eve=G.editMesh->verts.first; eve; eve=eve->next){
 			if(eve->f&SELECT) eve->f1 = 1;
 		}
-		collapseuvs();
+		collapseuvs(mergevert);
 	}
 	
 	countall();
@@ -6308,7 +6308,7 @@
 		for(eve=G.editMesh->verts.first; eve; eve=eve->next){
 				if(eve->f&SELECT) eve->f1 = 1;
 		}
-		collapseuvs();
+		collapseuvs(NULL);
 	}
 	
 	countall();





More information about the Bf-blender-cvs mailing list