diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-03-04 20:36:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-03-04 20:36:31 +0400 |
commit | a0ab2eefb9c99140ebb3daad3be2303caea64b96 (patch) | |
tree | 406ed46881486425ada0baca05b67ed92d5bd01d /source/blender/bmesh/operators/bmo_edgesplit.c | |
parent | 76e9f91d1c9ff5f026ff4e05e76b751f936f83f7 (diff) |
* rename BM_face_other_loop --> BM_face_other_edge_loop
* optimize BM_face_other_edge_loop to do about half as many iterations for quad heavy meshes, with ngons the gain is much more since searching around the entire ngon when the edge already stores its loop is silly.
... also nicer in cases where edge has no face users it avoids a loop on all face corners.
Diffstat (limited to 'source/blender/bmesh/operators/bmo_edgesplit.c')
-rw-r--r-- | source/blender/bmesh/operators/bmo_edgesplit.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/bmesh/operators/bmo_edgesplit.c b/source/blender/bmesh/operators/bmo_edgesplit.c index 2b642a870cf..05a48f64e3b 100644 --- a/source/blender/bmesh/operators/bmo_edgesplit.c +++ b/source/blender/bmesh/operators/bmo_edgesplit.c @@ -180,7 +180,7 @@ static void tag_out_edges(BMesh *bm, EdgeTag *etags, BMOperator *UNUSED(op)) startl = l; do { - l = BM_face_other_loop(l->f, l->e, v); + l = BM_face_other_edge_loop(l->f, l->e, v); if (l == startl || BM_edge_face_count(l->e) != 2) { break; } @@ -317,7 +317,7 @@ void bmo_edgesplit_exec(BMesh *bm, BMOperator *op) } l3 = l3->radial_next; - l3 = BM_face_other_loop(l3->f, l3->e, v); + l3 = BM_face_other_edge_loop(l3->f, l3->e, v); } while (l3 != l2 && !BMO_elem_flag_test(bm, l3->e, EDGE_SEAM)); if (l3 == NULL || (BMO_elem_flag_test(bm, l3->e, EDGE_SEAM) && l3->e != l->e)) { @@ -333,7 +333,7 @@ void bmo_edgesplit_exec(BMesh *bm, BMOperator *op) } l3 = l3->radial_next; - l3 = BM_face_other_loop(l3->f, l3->e, v); + l3 = BM_face_other_edge_loop(l3->f, l3->e, v); et = &etags[BM_elem_index_get(l3->e)]; } while (l3 != l2 && !BMO_elem_flag_test(bm, l3->e, EDGE_SEAM)); |