diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-06-04 21:46:19 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-06-04 21:46:19 +0400 |
commit | d1e78aa75da6c3b23af86d6a5609966470e49ad2 (patch) | |
tree | eb509400cad8b884c30ee331939879caaf93f013 /source/blender/bmesh | |
parent | 9e4914e0553d0b7f57a3db86741307a17d79c21c (diff) |
fix for own error in recent bridge changes, make sure normals are calculated before use.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_edgeloop.c | 4 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_bridge.c | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_edgeloop.c b/source/blender/bmesh/intern/bmesh_edgeloop.c index 294cf23c613..91812fb2cff 100644 --- a/source/blender/bmesh/intern/bmesh_edgeloop.c +++ b/source/blender/bmesh/intern/bmesh_edgeloop.c @@ -426,6 +426,10 @@ void BM_mesh_edgeloops_calc_order(BMesh *UNUSED(bm), ListBase *eloops, const boo const float *co = ((BMEdgeLoopStore *)eloops_ordered.last)->co; const float *no = ((BMEdgeLoopStore *)eloops_ordered.last)->no; float len_best = FLT_MAX; + + if (use_normals) + BLI_assert(fabsf(len_squared_v3(no) - 1.0f) < FLT_EPSILON); + for (el_store = eloops->first; el_store; el_store = el_store->next) { float len; if (use_normals) { diff --git a/source/blender/bmesh/operators/bmo_bridge.c b/source/blender/bmesh/operators/bmo_bridge.c index ddecfe59aa1..116fe46ee53 100644 --- a/source/blender/bmesh/operators/bmo_bridge.c +++ b/source/blender/bmesh/operators/bmo_bridge.c @@ -488,6 +488,9 @@ void bmo_bridge_loops_exec(BMesh *bm, BMOperator *op) } if (count > 2) { + if (use_pairs) { + BM_mesh_edgeloops_calc_normal(bm, &eloops); + } BM_mesh_edgeloops_calc_order(bm, &eloops, use_pairs); } |