[Bf-blender-cvs] [78a44ab6bd0] soc-2021-curves: Fix handle move when moving hidden segments

Dilith Jayakody noreply at git.blender.org
Sun Apr 3 17:34:24 CEST 2022


Commit: 78a44ab6bd0cc5086a77900d895c364ff019c504
Author: Dilith Jayakody
Date:   Fri Apr 1 19:30:12 2022 +0530
Branches: soc-2021-curves
https://developer.blender.org/rB78a44ab6bd0cc5086a77900d895c364ff019c504

Fix handle move when moving hidden segments

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

M	source/blender/editors/curve/editcurve_pen.c

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

diff --git a/source/blender/editors/curve/editcurve_pen.c b/source/blender/editors/curve/editcurve_pen.c
index b2f7f3f0929..7d15d2e1814 100644
--- a/source/blender/editors/curve/editcurve_pen.c
+++ b/source/blender/editors/curve/editcurve_pen.c
@@ -1188,28 +1188,35 @@ static void move_segment(ViewContext *vc, MoveSegmentData *seg_data, const wmEve
   float k2[3];
   sub_v3_v3v3(k2, bezt1->vec[2], bezt2->vec[0]);
 
-  /* P1 = t(k1 + k2) */
-  add_v3_v3v3(bezt1->vec[2], k1, k2);
-  mul_v3_fl(bezt1->vec[2], t);
-
-  /* P2 = P1 - K2 */
-  sub_v3_v3v3(bezt2->vec[0], bezt1->vec[2], k2);
-
-  remove_handle_movement_constraints(bezt1, true, true);
-  remove_handle_movement_constraints(bezt2, true, true);
-
-  /* Move opposite handle as well if type is align. */
-  if (bezt1->h1 == HD_ALIGN) {
-    float handle_vec[3];
-    sub_v3_v3v3(handle_vec, bezt1->vec[1], bezt1->vec[2]);
-    normalize_v3_length(handle_vec, len_v3v3(bezt1->vec[1], bezt1->vec[0]));
-    add_v3_v3v3(bezt1->vec[0], bezt1->vec[1], handle_vec);
+  if (!bezt1->hide) {
+    /* P1 = t(k1 + k2) */
+    add_v3_v3v3(bezt1->vec[2], k1, k2);
+    mul_v3_fl(bezt1->vec[2], t);
+
+    remove_handle_movement_constraints(bezt1, true, true);
+
+    /* Move opposite handle as well if type is align. */
+    if (bezt1->h1 == HD_ALIGN) {
+      float handle_vec[3];
+      sub_v3_v3v3(handle_vec, bezt1->vec[1], bezt1->vec[2]);
+      normalize_v3_length(handle_vec, len_v3v3(bezt1->vec[1], bezt1->vec[0]));
+      add_v3_v3v3(bezt1->vec[0], bezt1->vec[1], handle_vec);
+    }
   }
-  if (bezt2->h2 == HD_ALIGN) {
-    float handle_vec[3];
-    sub_v3_v3v3(handle_vec, bezt2->vec[1], bezt2->vec[0]);
-    normalize_v3_length(handle_vec, len_v3v3(bezt2->vec[1], bezt2->vec[2]));
-    add_v3_v3v3(bezt2->vec[2], bezt2->vec[1], handle_vec);
+
+  if (!bezt2->hide) {
+    /* P2 = P1 - K2 */
+    sub_v3_v3v3(bezt2->vec[0], bezt1->vec[2], k2);
+
+    remove_handle_movement_constraints(bezt2, true, true);
+
+    /* Move opposite handle as well if type is align. */
+    if (bezt2->h2 == HD_ALIGN) {
+      float handle_vec[3];
+      sub_v3_v3v3(handle_vec, bezt2->vec[1], bezt2->vec[0]);
+      normalize_v3_length(handle_vec, len_v3v3(bezt2->vec[1], bezt2->vec[2]));
+      add_v3_v3v3(bezt2->vec[2], bezt2->vec[1], handle_vec);
+    }
   }
 }



More information about the Bf-blender-cvs mailing list