[Bf-blender-cvs] [0e13b652d2d] soc-2021-curves: Add keyIndex_delCV to delete point

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


Commit: 0e13b652d2d93d4770d86e75b35ddfca6ab03459
Author: Dilith Jayakody
Date:   Thu Mar 31 16:08:14 2022 +0530
Branches: soc-2021-curves
https://developer.blender.org/rB0e13b652d2d93d4770d86e75b35ddfca6ab03459

Add keyIndex_delCV to delete point

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

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 244a3e66644..b2f7f3f0929 100644
--- a/source/blender/editors/curve/editcurve_pen.c
+++ b/source/blender/editors/curve/editcurve_pen.c
@@ -441,20 +441,22 @@ static void delete_nurb(Curve *cu, Nurb *nu)
   BKE_nurb_free(nu);
 }
 
-static void delete_bezt_from_nurb(const BezTriple *bezt, Nurb *nu)
+static void delete_bezt_from_nurb(const BezTriple *bezt, Nurb *nu, EditNurb *editnurb)
 {
   BLI_assert(nu->type == CU_BEZIER);
   const int index = BKE_curve_nurb_vert_index_get(nu, bezt);
   nu->pntsu -= 1;
   memmove(nu->bezt + index, nu->bezt + index + 1, (nu->pntsu - index) * sizeof(BezTriple));
+  BKE_curve_editNurb_keyIndex_delCV(editnurb->keyindex, nu->bezt + index);
 }
 
-static void delete_bp_from_nurb(const BPoint *bp, Nurb *nu)
+static void delete_bp_from_nurb(const BPoint *bp, Nurb *nu, EditNurb *editnurb)
 {
   BLI_assert(nu->type == CU_NURBS || nu->type == CU_POLY);
   const int index = BKE_curve_nurb_vert_index_get(nu, bp);
   nu->pntsu -= 1;
   memmove(nu->bp + index, nu->bp + index + 1, (nu->pntsu - index) * sizeof(BPoint));
+  BKE_curve_editNurb_keyIndex_delCV(editnurb->keyindex, nu->bp + index);
 }
 
 /**
@@ -1246,6 +1248,7 @@ static bool delete_point_under_mouse(ViewContext *vc, const wmEvent *event)
   Nurb *nu = NULL;
   int temp = 0;
   Curve *cu = vc->obedit->data;
+  EditNurb *editnurb = cu->editnurb;
   ListBase *nurbs = BKE_curve_editNurbs_get(cu);
   const float mouse_point[2] = {UNPACK2(event->mval)};
 
@@ -1264,10 +1267,10 @@ static bool delete_point_under_mouse(ViewContext *vc, const wmEvent *event)
           const int span_step[2] = {bez_index, bez_index};
           ed_dissolve_bez_segment(prev_bezt, next_bezt, nu, cu, 1, span_step);
         }
-        delete_bezt_from_nurb(bezt, nu);
+        delete_bezt_from_nurb(bezt, nu, editnurb);
       }
       else {
-        delete_bp_from_nurb(bp, nu);
+        delete_bp_from_nurb(bp, nu, editnurb);
       }
 
       if (nu->pntsu == 0) {
@@ -1530,7 +1533,7 @@ static int curve_pen_modal(bContext *C, wmOperator *op, const wmEvent *event)
   Nurb *nu = NULL;
 
   const struct SelectPick_Params params = {
-      .sel_op = ED_select_op_from_booleans(false, false, false),
+      .sel_op = SEL_OP_SET,
       .deselect_all = false,
   };



More information about the Bf-blender-cvs mailing list