[Bf-blender-cvs] [8eedcb6f9dc] soc-2020-greasepencil-curve: GPencil: WIP: convert to curve box/lasso select
Falk David
noreply at git.blender.org
Sat Jul 18 13:06:37 CEST 2020
Commit: 8eedcb6f9dc7f16e46fb6771b567a83cba87ff8b
Author: Falk David
Date: Sat Jul 18 13:05:06 2020 +0200
Branches: soc-2020-greasepencil-curve
https://developer.blender.org/rB8eedcb6f9dc7f16e46fb6771b567a83cba87ff8b
GPencil: WIP: convert to curve box/lasso select
===================================================================
M source/blender/editors/gpencil/gpencil_select.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_select.c b/source/blender/editors/gpencil/gpencil_select.c
index 82d456892ae..54779070d1b 100644
--- a/source/blender/editors/gpencil/gpencil_select.c
+++ b/source/blender/editors/gpencil/gpencil_select.c
@@ -1749,6 +1749,7 @@ static bool gpencil_generic_stroke_select(bContext *C,
{
GP_SpaceConversion gsc = {NULL};
bool changed = false;
+ const bool is_curve_edit = (bool)GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd);
/* init space conversion stuff */
gpencil_point_conversion_init(C, &gsc);
@@ -1821,6 +1822,15 @@ static bool gpencil_generic_stroke_select(bContext *C,
whole = ED_gpencil_stroke_point_is_inside(gps_active, &gsc, mval, gpstroke_iter.diff_mat);
}
+ if (is_curve_edit && (hit || whole) && gps->editcurve == NULL) {
+ BKE_gpencil_stroke_editcurve_update(gps, gpd->curve_edit_threshold);
+ BKE_gpencil_curve_sync_selection(gps);
+ gps->editcurve->resolution = gpd->editcurve_resolution;
+ gps->flag |= GP_STROKE_NEEDS_CURVE_UPDATE;
+ BKE_gpencil_stroke_geometry_update(gpd, gps);
+ changed = true;
+ }
+
/* if stroke mode expand selection. */
if ((strokemode) || (whole)) {
const bool is_select = BKE_gpencil_stroke_select_check(gps_active) || whole;
@@ -1892,7 +1902,8 @@ static int gpencil_generic_select_exec(bContext *C,
changed = gpencil_generic_curve_select(
C, ob, is_inside_fn, box, user_data, strokemode, sel_op);
}
- else {
+
+ if (changed == false) {
changed = gpencil_generic_stroke_select(
C, ob, gpd, is_inside_fn, box, user_data, strokemode, segmentmode, sel_op, scale);
}
More information about the Bf-blender-cvs
mailing list