[Bf-blender-cvs] [4987eb4] master: Fix T35952: Switching a single handle to free would lock the others alignment

Campbell Barton noreply at git.blender.org
Thu Sep 4 07:44:20 CEST 2014


Commit: 4987eb4dc926fa4dacc2031fbd1aba044e959025
Author: Campbell Barton
Date:   Thu Sep 4 15:40:29 2014 +1000
Branches: master
https://developer.blender.org/rB4987eb4dc926fa4dacc2031fbd1aba044e959025

Fix T35952: Switching a single handle to free would lock the others alignment

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

M	source/blender/blenkernel/intern/curve.c

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

diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 730bffd..285dc41 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -3209,7 +3209,13 @@ static void calchandleNurb_intern(BezTriple *bezt, BezTriple *prev, BezTriple *n
 		madd_v3_v3v3fl(p2_h2, p2, dvec_b,  1.0f / 3.0f);
 	}
 
-	if (skip_align || (!ELEM(HD_ALIGN, bezt->h1, bezt->h2) && !ELEM(HD_ALIGN_DOUBLESIDE, bezt->h1, bezt->h2))) {
+	if (skip_align ||
+	    /* when one handle is free, alignming makes no sense, see: T35952 */
+	    (ELEM(HD_FREE, bezt->h1, bezt->h2)) ||
+	    /* also when no handles are aligned, skip this step */
+	    (!ELEM(HD_ALIGN, bezt->h1, bezt->h2) &&
+	     !ELEM(HD_ALIGN_DOUBLESIDE, bezt->h1, bezt->h2)))
+	{
 		/* handles need to be updated during animation and applying stuff like hooks,
 		 * but in such situations it's quite difficult to distinguish in which order
 		 * align handles should be aligned so skip them for now */




More information about the Bf-blender-cvs mailing list