[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34301] trunk/blender/source/blender/ editors/mesh: Bugfix #25614
Ton Roosendaal
ton at blender.org
Thu Jan 13 20:01:28 CET 2011
Revision: 34301
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34301
Author: ton
Date: 2011-01-13 19:01:27 +0000 (Thu, 13 Jan 2011)
Log Message:
-----------
Bugfix #25614
Reporter saw weird fgons and edge creases on spin-mesh.
Appeared that the edge-flag copying code happened after
freeing edges. Already since May 2007 or so... weird!
Also in this commit a couple of simple cleanups.
Modified Paths:
--------------
trunk/blender/source/blender/editors/mesh/editmesh.c
trunk/blender/source/blender/editors/mesh/editmesh_lib.c
Modified: trunk/blender/source/blender/editors/mesh/editmesh.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh.c 2011-01-13 16:00:14 UTC (rev 34300)
+++ trunk/blender/source/blender/editors/mesh/editmesh.c 2011-01-13 19:01:27 UTC (rev 34301)
@@ -259,7 +259,7 @@
eed->h |= (example->h & EM_FGON);
}
}
-
+
return eed;
}
Modified: trunk/blender/source/blender/editors/mesh/editmesh_lib.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_lib.c 2011-01-13 16:00:14 UTC (rev 34300)
+++ trunk/blender/source/blender/editors/mesh/editmesh_lib.c 2011-01-13 19:01:27 UTC (rev 34301)
@@ -1637,10 +1637,10 @@
VECCOPY(v1->co, eve->co);
VECCOPY(v1->no, eve->no);
v1->f= eve->f;
- eve->f-= flag;
+ eve->f &= ~flag;
eve->tmp.v = v1;
}
- else eve->tmp.v = 0;
+ else eve->tmp.v = NULL;
eve= eve->prev;
}
@@ -1698,17 +1698,7 @@
eed= nexted;
}
- if(del_old) {
- eed= em->edges.first;
- while(eed) {
- nexted= eed->next;
- if(eed->f2==3 && eed->f1==1) {
- remedge(em, eed);
- free_editedge(em, eed);
- }
- eed= nexted;
- }
- }
+
/* duplicate faces, if necessary remove old ones */
efa= em->faces.first;
while(efa) {
@@ -1721,7 +1711,7 @@
if(efa->v4)
v4 = efa->v4->tmp.v;
else
- v4= 0;
+ v4= NULL;
/* hmm .. not sure about edges here */
if(del_old==0) // if we keep old, we flip normal
@@ -1739,6 +1729,18 @@
}
efa= nextvl;
}
+ /* delete edges after copying edges above! */
+ if(del_old) {
+ eed= em->edges.first;
+ while(eed) {
+ nexted= eed->next;
+ if(eed->f2==3 && eed->f1==1) {
+ remedge(em, eed);
+ free_editedge(em, eed);
+ }
+ eed= nexted;
+ }
+ }
normalize_v3(nor); // for grab
@@ -1824,7 +1826,7 @@
EditVert *v1= addvertlist(em, eve->co, eve);
v1->f= eve->f;
- eve->f-= flag;
+ eve->f &= ~flag;
eve->f|= 128;
eve->tmp.v = v1;
@@ -1863,7 +1865,7 @@
newed= addedgelist(em, v1, v2, eed);
newed->f= eed->f;
- eed->f -= flag;
+ eed->f &= ~flag;
eed->f |= 128;
}
}
@@ -1890,7 +1892,7 @@
}
newfa->f= efa->f;
- efa->f -= flag;
+ efa->f &= ~flag;
efa->f |= 128;
}
}
More information about the Bf-blender-cvs
mailing list