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();


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to