Commit: 062595b6f9706cc89d0d903ddd6ca4f512ee2b4b Author: Falk David Date: Fri Aug 21 15:37:26 2020 +0200 Branches: soc-2020-greasepencil-curve https://developer.blender.org/rB062595b6f9706cc89d0d903ddd6ca4f512ee2b4b
GPencil: Report operators that are not implemented =================================================================== M source/blender/editors/gpencil/gpencil_edit.c =================================================================== diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index b0b35ab5465..5f845a85fa6 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -930,7 +930,7 @@ static int gpencil_duplicate_exec(bContext *C, wmOperator *op) bool changed = false; if (is_curve_edit) { - /* TODO: handle copy in curve edit mode */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* for each visible (and editable) layer's selected strokes, @@ -1501,7 +1501,7 @@ static int gpencil_strokes_copy_exec(bContext *C, wmOperator *op) ED_gpencil_strokes_copybuf_free(); if (is_curve_edit) { - /* TODO: do curve copy */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* for each visible (and editable) layer's selected strokes, @@ -1698,7 +1698,7 @@ static int gpencil_strokes_paste_exec(bContext *C, wmOperator *op) new_colors = gpencil_copybuf_validate_colormap(C); if (is_curve_edit) { - /* TODO: do curve paste */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* Copy over the strokes from the buffer (and adjust the colors) */ @@ -3278,7 +3278,7 @@ static int gpencil_snap_to_cursor(bContext *C, wmOperator *op) bool changed = false; if (is_curve_edit) { - /* TODO: snap curve to cursor */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { @@ -3432,7 +3432,7 @@ static bool gpencil_stroke_points_centroid(Depsgraph *depsgraph, return changed; } -static int gpencil_snap_cursor_to_sel(bContext *C, wmOperator *UNUSED(op)) +static int gpencil_snap_cursor_to_sel(bContext *C, wmOperator *op) { Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C); Object *obact = CTX_data_active_object(C); @@ -3451,7 +3451,7 @@ static int gpencil_snap_cursor_to_sel(bContext *C, wmOperator *UNUSED(op)) bool changed = false; if (is_curve_edit) { - /* TODO: */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { changed = gpencil_stroke_points_centroid(depsgraph, C, obact, gpd, centroid, min, max, &count); @@ -4123,7 +4123,7 @@ void GPENCIL_OT_stroke_join(wmOperatorType *ot) /** \name Stroke Flip Operator * \{ */ -static int gpencil_stroke_flip_exec(bContext *C, wmOperator *UNUSED(op)) +static int gpencil_stroke_flip_exec(bContext *C, wmOperator *op) { bGPdata *gpd = ED_gpencil_data_get_active(C); Object *ob = CTX_data_active_object(C); @@ -4154,7 +4154,7 @@ static int gpencil_stroke_flip_exec(bContext *C, wmOperator *UNUSED(op)) } if (is_curve_edit) { - /* TODO: flip curve */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* flip stroke */ @@ -4213,18 +4213,19 @@ static int gpencil_strokes_reproject_exec(bContext *C, wmOperator *op) sctx = ED_transform_snap_object_context_create_view3d(scene, 0, region, CTX_wm_view3d(C)); bool changed = false; - if (is_curve_edit) { - /* TODO: reproject curve */ - } - else { - /* Init space conversion stuff. */ - GP_SpaceConversion gsc = {NULL}; - gpencil_point_conversion_init(C, &gsc); - int cfra_prv = INT_MIN; + /* Init space conversion stuff. */ + GP_SpaceConversion gsc = {NULL}; + gpencil_point_conversion_init(C, &gsc); + int cfra_prv = INT_MIN; - /* Go through each editable + selected stroke, adjusting each of its points one by one... */ - GP_EDITABLE_STROKES_BEGIN (gpstroke_iter, C, gpl, gps) { - if (gps->flag & GP_STROKE_SELECT) { + /* Go through each editable + selected stroke, adjusting each of its points one by one... */ + GP_EDITABLE_STROKES_BEGIN (gpstroke_iter, C, gpl, gps) { + bool curve_select = false; + if (is_curve_edit && gps->editcurve != NULL) { + curve_select = gps->editcurve->flag & GP_CURVE_SELECT; + } + + if (gps->flag & GP_STROKE_SELECT || curve_select) { /* update frame to get the new location of objects */ if ((mode == GP_REPROJECT_SURFACE) && (cfra_prv != gpf_->framenum)) { @@ -4233,13 +4234,22 @@ static int gpencil_strokes_reproject_exec(bContext *C, wmOperator *op) BKE_scene_graph_update_for_newframe(depsgraph); } - ED_gpencil_stroke_reproject(depsgraph, &gsc, sctx, gpl, gpf_, gps, mode, keep_original); + ED_gpencil_stroke_reproject(depsgraph, &gsc, sctx, gpl, gpf_, gps, mode, keep_original); - changed = true; + if (is_curve_edit && gps->editcurve != NULL) { + BKE_gpencil_stroke_editcurve_update( + gps, gpd->curve_edit_threshold, gpd->curve_corner_angle); + /* Update the selection from the stroke to the curve. */ + BKE_gpencil_editcurve_stroke_sync_selection(gps, gps->editcurve); + + gps->flag |= GP_STROKE_NEEDS_CURVE_UPDATE; + BKE_gpencil_stroke_geometry_update(gpd, gps); } + + changed = true; } - GP_EDITABLE_STROKES_END(gpstroke_iter); } + GP_EDITABLE_STROKES_END(gpstroke_iter); /* return frame state and DB to original state */ CFRA = oldframe; @@ -4319,17 +4329,10 @@ static int gpencil_recalc_geometry_exec(bContext *C, wmOperator *UNUSED(op)) } bGPdata *gpd = (bGPdata *)ob->data; - const bool is_curve_edit = (bool)GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd); - - if (is_curve_edit) { - /* TODO: reacalculate curve geometry */ - } - else { - LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { - LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) { - LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) { - BKE_gpencil_stroke_geometry_update(gpd, gps); - } + LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { + LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) { + LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) { + BKE_gpencil_stroke_geometry_update(gpd, gps); } } } @@ -4651,7 +4654,7 @@ static int gpencil_stroke_simplify_exec(bContext *C, wmOperator *op) bool changed = false; if (is_curve_edit) { - /* TODO: do curve simplify */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* Go through each editable + selected stroke */ @@ -4711,7 +4714,7 @@ static int gpencil_stroke_simplify_fixed_exec(bContext *C, wmOperator *op) bool changed = false; if (is_curve_edit) { - /* TODO: do curve simplify fixed */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* Go through each editable + selected stroke */ @@ -4811,7 +4814,7 @@ void GPENCIL_OT_stroke_sample(wmOperatorType *ot) /** \name Stroke Trim Operator * \{ */ -static int gpencil_stroke_trim_exec(bContext *C, wmOperator *UNUSED(op)) +static int gpencil_stroke_trim_exec(bContext *C, wmOperator *op) { bGPdata *gpd = ED_gpencil_data_get_active(C); @@ -4843,9 +4846,7 @@ static int gpencil_stroke_trim_exec(bContext *C, wmOperator *UNUSED(op)) if (gps->flag & GP_STROKE_SELECT) { if (is_curve_edit) { - /* TODO: trim curve */ - // gps->flag |= GP_STROKE_NEEDS_CURVE_UPDATE; - // BKE_gpencil_stroke_geometry_update(gpd, gps); + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { BKE_gpencil_stroke_trim(gpd, gps); @@ -4992,7 +4993,7 @@ static int gpencil_stroke_separate_exec(bContext *C, wmOperator *op) /* selected points mode */ if (mode == GP_SEPARATE_POINT) { if (is_curve_edit) { - /* TODO: seperate curve points */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* make copy of source stroke */ @@ -5123,7 +5124,7 @@ void GPENCIL_OT_stroke_separate(wmOperatorType *ot) /** \name Stroke Split Operator * \{ */ -static int gpencil_stroke_split_exec(bContext *C, wmOperator *UNUSED(op)) +static int gpencil_stroke_split_exec(bContext *C, wmOperator *op) { Object *ob = CTX_data_active_object(C); bGPdata *gpd = ED_gpencil_data_get_active(C); @@ -5161,7 +5162,7 @@ static int gpencil_stroke_split_exec(bContext *C, wmOperator *UNUSED(op)) /* Split selected strokes. */ if (gps->flag & GP_STROKE_SELECT) { if (is_curve_edit) { - /* TODO: split curve points */ + BKE_report(op->reports, RPT_ERROR, "Not implemented!"); } else { /* make copy of source stroke */ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs