Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-06-04 21:46:19 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-06-04 21:46:19 +0400
commitd1e78aa75da6c3b23af86d6a5609966470e49ad2 (patch)
treeeb509400cad8b884c30ee331939879caaf93f013 /source/blender/bmesh
parent9e4914e0553d0b7f57a3db86741307a17d79c21c (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.c4
-rw-r--r--source/blender/bmesh/operators/bmo_bridge.c3
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);
}