Commit: 325105ee6f68ed21cfa85e89922f9ec669d74efa Author: Joseph Eagar Date: Fri Jan 13 19:58:42 2023 -0800 Branches: master https://developer.blender.org/rB325105ee6f68ed21cfa85e89922f9ec669d74efa
Sculpt: add support for curves sculpt to paint_init_pivot Uses BKE_object_boundbox_get. =================================================================== M source/blender/editors/sculpt_paint/curves_sculpt_ops.cc M source/blender/editors/sculpt_paint/paint_image.cc =================================================================== diff --git a/source/blender/editors/sculpt_paint/curves_sculpt_ops.cc b/source/blender/editors/sculpt_paint/curves_sculpt_ops.cc index 797b57dd0ca..f12b94aea8f 100644 --- a/source/blender/editors/sculpt_paint/curves_sculpt_ops.cc +++ b/source/blender/editors/sculpt_paint/curves_sculpt_ops.cc @@ -286,6 +286,7 @@ static void curves_sculptmode_enter(bContext *C) ob->mode = OB_MODE_SCULPT_CURVES; ED_paint_cursor_start(&curves_sculpt->paint, CURVES_SCULPT_mode_poll_view3d); + paint_init_pivot(ob, scene); /* Necessary to change the object mode on the evaluated object. */ DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); diff --git a/source/blender/editors/sculpt_paint/paint_image.cc b/source/blender/editors/sculpt_paint/paint_image.cc index a57287b924b..d5efb4fe9c6 100644 --- a/source/blender/editors/sculpt_paint/paint_image.cc +++ b/source/blender/editors/sculpt_paint/paint_image.cc @@ -759,23 +759,47 @@ void PAINT_OT_sample_color(wmOperatorType *ot) /******************** texture paint toggle operator ********************/ -void paint_init_pivot(Object *ob, Scene *scene) +static void paint_init_pivot_mesh(Object *ob, Scene *scene, float location[3]) { - UnifiedPaintSettings *ups = &scene->toolsettings->unified_paint_settings; - const Mesh *me_eval = BKE_object_get_evaluated_mesh(ob); if (!me_eval) { me_eval = (const Mesh *)ob->data; } - float location[3] = {FLT_MAX, FLT_MAX, FLT_MAX}, max[3] = {-FLT_MAX, -FLT_MAX, -FLT_MAX}; + float min[3] = {FLT_MAX, FLT_MAX, FLT_MAX}, max[3] = {-FLT_MAX, -FLT_MAX, -FLT_MAX}; - if (!BKE_mesh_minmax(me_eval, location, max)) { + if (!BKE_mesh_minmax(me_eval, min, max)) { zero_v3(location); zero_v3(max); } - interp_v3_v3v3(location, location, max, 0.5f); + interp_v3_v3v3(location, min, max, 0.5f); +} + +static void paint_init_pivot_curves(Object *ob, Scene *scene, float location[3]) +{ + const BoundBox *bbox = BKE_object_boundbox_get(ob); + interp_v3_v3v3(location, bbox->vec[0], bbox->vec[6], 0.5f); +} + +void paint_init_pivot(Object *ob, Scene *scene) +{ + UnifiedPaintSettings *ups = &scene->toolsettings->unified_paint_settings; + float location[3]; + + switch (ob->type) { + case OB_MESH: + paint_init_pivot_mesh(ob, scene, location); + break; + case OB_CURVES: + paint_init_pivot_curves(ob, scene, location); + break; + default: + BLI_assert_unreachable(); + ups->last_stroke_valid = false; + return; + } + mul_m4_v3(ob->object_to_world, location); ups->last_stroke_valid = true; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs