[Bf-blender-cvs] [3ead24d] master: Fix T4256: Connect tool hangs

Campbell Barton noreply at git.blender.org
Mon Nov 10 18:39:22 CET 2014


Commit: 3ead24d2351fb6a39659ff4bd6b978876ded8d5b
Author: Campbell Barton
Date:   Mon Nov 10 18:38:46 2014 +0100
Branches: master
https://developer.blender.org/rB3ead24d2351fb6a39659ff4bd6b978876ded8d5b

Fix T4256: Connect tool hangs

===================================================================

M	source/blender/bmesh/operators/bmo_connect_pair.c

===================================================================

diff --git a/source/blender/bmesh/operators/bmo_connect_pair.c b/source/blender/bmesh/operators/bmo_connect_pair.c
index 916ea3e..80ed287 100644
--- a/source/blender/bmesh/operators/bmo_connect_pair.c
+++ b/source/blender/bmesh/operators/bmo_connect_pair.c
@@ -464,6 +464,10 @@ void bmo_connect_vert_pair_exec(BMesh *bm, BMOperator *op)
 				negate_v3(basis_nor_b);
 			}
 			add_v3_v3v3(basis_nor, basis_nor_a, basis_nor_b);
+
+			if (UNLIKELY(fabsf(dot_v3v3(basis_nor, basis_dir)) < FLT_EPSILON)) {
+				ortho_v3_v3(basis_nor, basis_dir);
+			}
 		}
 #endif
 
@@ -491,6 +495,9 @@ void bmo_connect_vert_pair_exec(BMesh *bm, BMOperator *op)
 	while (pc.state_lb.first) {
 		PathLinkState *state, *state_next;
 		found_all = true;
+#ifdef DEBUG_PRINT
+		printf("\n%s: stepping %d\n", __func__, BLI_countlist(&pc.state_lb));
+#endif
 		for (state = pc.state_lb.first; state; state = state_next) {
 			state_next = state->next;
 			if (state->link_last->ele == (BMElem *)pc.v_b) {




More information about the Bf-blender-cvs mailing list