[Bf-blender-cvs] [c22e8998f5e] soc-2021-curves: Switched make vector to toggle

dilithjay noreply at git.blender.org
Sun Jan 2 13:34:49 CET 2022


Commit: c22e8998f5e338be35c0a3fcf1d200d3e48dd167
Author: dilithjay
Date:   Sun Jan 2 17:51:06 2022 +0530
Branches: soc-2021-curves
https://developer.blender.org/rBc22e8998f5e338be35c0a3fcf1d200d3e48dd167

Switched make vector to toggle

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

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	source/blender/editors/curve/editcurve_pen.c

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

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index a518b57f2da..dae3815b71f 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -7005,7 +7005,7 @@ def km_3d_view_tool_edit_curve_pen(params):
             ("curve.pen", {"type": params.tool_mouse, "value": 'PRESS', "shift": True},
              {"properties": [("insert_point", True), ("select_multi", True),]}),
             ("curve.pen", {"type": params.tool_mouse, "value": 'DOUBLE_CLICK'},
-             {"properties": [("make_vector", True),]}),
+             {"properties": [("toggle_vector", True),]}),
         ]},
     )
 
diff --git a/source/blender/editors/curve/editcurve_pen.c b/source/blender/editors/curve/editcurve_pen.c
index cc32125e79e..99c3e87e648 100644
--- a/source/blender/editors/curve/editcurve_pen.c
+++ b/source/blender/editors/curve/editcurve_pen.c
@@ -1180,6 +1180,34 @@ static void toggle_select_bp(BPoint *bp)
   }
 }
 
+static void toggle_vector_auto(BezTriple *bezt, short bezt_idx, CurvePenData *cpd)
+{
+  if (bezt_idx == 0) {
+    if (bezt->h1 == HD_VECT) {
+      bezt->h1 = bezt->h2 = HD_AUTO;
+    }
+    else {
+      bezt->h1 = HD_VECT;
+      if (bezt->h2 != HD_VECT) {
+        bezt->h2 = HD_FREE;
+      }
+    }
+    cpd->acted = true;
+  }
+  else if (bezt_idx == 2) {
+    if (bezt->h2 == HD_VECT) {
+      bezt->h1 = bezt->h2 = HD_AUTO;
+    }
+    else {
+      bezt->h2 = HD_VECT;
+      if (bezt->h1 != HD_VECT) {
+        bezt->h1 = HD_FREE;
+      }
+    }
+    cpd->acted = true;
+  }
+}
+
 static bool is_event_key_equal_to_extra_key(const int event_key, const int extra_key)
 {
   return ((event_key == EVT_LEFTSHIFTKEY || event_key == EVT_RIGHTSHIFTKEY) &&
@@ -1228,7 +1256,7 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
   const bool select_multi = RNA_boolean_get(op->ptr, "select_multi");
   const bool move_point = RNA_boolean_get(op->ptr, "move_point");
   const bool close_spline = RNA_boolean_get(op->ptr, "close_spline");
-  const bool make_vector = RNA_boolean_get(op->ptr, "make_vector");
+  const bool toggle_vector = RNA_boolean_get(op->ptr, "toggle_vector");
 
   if (!cpd->extra_pressed && is_event_key_equal_to_extra_key(event->type, extra_key)) {
     ED_curve_nurb_vert_selected_find(vc.obedit->data, vc.v3d, &nu, &bezt, &bp);
@@ -1380,21 +1408,12 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
         }
       }
 
-      if (!cpd->acted && make_vector) {
+      if (!cpd->acted && toggle_vector) {
         short bezt_idx;
         get_closest_vertex_to_point_in_nurbs(
             &(cu->editnurb->nurbs), &nu, &bezt, &bp, &bezt_idx, mval_fl, sel_dist_mul, &vc);
         if (bezt) {
-          if (bezt_idx == 0) {
-            bezt->h1 = HD_VECT;
-            bezt->h2 = HD_FREE;
-            cpd->acted = true;
-          }
-          else if (bezt_idx == 2) {
-            bezt->h1 = HD_FREE;
-            bezt->h2 = HD_VECT;
-            cpd->acted = true;
-          }
+          toggle_vector_auto(bezt, bezt_idx, cpd);
 
           if (nu && nu->type == CU_BEZIER) {
             BKE_nurb_handles_calc(nu);
@@ -1518,5 +1537,5 @@ void CURVE_OT_pen(wmOperatorType *ot)
                          "Close Spline",
                          "Make a spline cyclic by clicking endpoints");
   prop = RNA_def_boolean(
-      ot->srna, "make_vector", false, "Make Vector", "Click handle to convert to vector handle");
+      ot->srna, "toggle_vector", false, "Toggle Vector", "Toggle between Vector and Auto handles");
 }



More information about the Bf-blender-cvs mailing list