[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45324] trunk/blender/source/blender/bmesh /operators/bmo_extrude.c: fix - extrude could create hidden faces when the only connected face to an edge was hidden , the hidden setting would be copied to the newly created face.
Campbell Barton
ideasman42 at gmail.com
Mon Apr 2 05:51:28 CEST 2012
Revision: 45324
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45324
Author: campbellbarton
Date: 2012-04-02 03:51:16 +0000 (Mon, 02 Apr 2012)
Log Message:
-----------
fix - extrude could create hidden faces when the only connected face to an edge was hidden, the hidden setting would be copied to the newly created face.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/operators/bmo_extrude.c
Modified: trunk/blender/source/blender/bmesh/operators/bmo_extrude.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_extrude.c 2012-04-02 02:41:28 UTC (rev 45323)
+++ trunk/blender/source/blender/bmesh/operators/bmo_extrude.c 2012-04-02 03:51:16 UTC (rev 45324)
@@ -116,46 +116,46 @@
static void bm_extrude_copy_face_loop_attributes(BMesh *bm, BMFace *f, BMEdge *e, BMEdge *newedge)
{
BMIter iter;
- BMLoop *l, *l2;
+ BMLoop *l, *l_other;
- /* copy attribute */
- l = BM_iter_new(&iter, bm, BM_LOOPS_OF_FACE, f);
- for ( ; l; l = BM_iter_step(&iter)) {
-
+ /* copy attributes */
+ BM_ITER(l, &iter, bm, BM_LOOPS_OF_FACE, f) {
if (l->e != e && l->e != newedge) {
continue;
}
- l2 = l->radial_next;
+ l_other = l->radial_next;
- if (l2 == l) {
- l2 = newedge->l;
+ if (l_other == l) {
+ l_other = newedge->l;
- if (l2 != l) {
- BM_elem_attrs_copy(bm, bm, l2->f, l->f);
+ if (l_other != l) {
+ BM_elem_attrs_copy(bm, bm, l_other->f, f);
+ BM_elem_flag_disable(f, BM_ELEM_HIDDEN); /* possibly we copy from a hidden face */
- BM_elem_attrs_copy(bm, bm, l2, l);
- l2 = l2->next;
+ BM_elem_attrs_copy(bm, bm, l_other, l);
+ l_other = l_other->next;
l = l->next;
- BM_elem_attrs_copy(bm, bm, l2, l);
+ BM_elem_attrs_copy(bm, bm, l_other, l);
}
}
else {
- BM_elem_attrs_copy(bm, bm, l2->f, l->f);
+ BM_elem_attrs_copy(bm, bm, l_other->f, f);
+ BM_elem_flag_disable(f, BM_ELEM_HIDDEN); /* possibly we copy from a hidden face */
- /* copy dat */
- if (l2->v == l->v) {
- BM_elem_attrs_copy(bm, bm, l2, l);
- l2 = l2->next;
+ /* copy data */
+ if (l_other->v == l->v) {
+ BM_elem_attrs_copy(bm, bm, l_other, l);
+ l_other = l_other->next;
l = l->next;
- BM_elem_attrs_copy(bm, bm, l2, l);
+ BM_elem_attrs_copy(bm, bm, l_other, l);
}
else {
- l2 = l2->next;
- BM_elem_attrs_copy(bm, bm, l2, l);
- l2 = l2->prev;
+ l_other = l_other->next;
+ BM_elem_attrs_copy(bm, bm, l_other, l);
+ l_other = l_other->prev;
l = l->next;
- BM_elem_attrs_copy(bm, bm, l2, l);
+ BM_elem_attrs_copy(bm, bm, l_other, l);
}
}
}
More information about the Bf-blender-cvs
mailing list