diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-09-06 13:00:45 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-09-06 13:04:09 +0300 |
commit | 39f3474cf138c8245c0cb6faa314971dd465c6e7 (patch) | |
tree | 6f3aad6db3a7b1d2ee1a73e6478c0ba37df48fe1 /source/blender/editors | |
parent | e858d21ae42386c57c7f5b4b0982642173f460e5 (diff) |
Fix T69536: Setting dimensions for parented objects fails
Parenting/constraints/delta-scaled all caused setting dimensions to fail.
Take the difference between the input scale and final scale into
account when applying the dimensions.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_buttons.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index 3d3c73ad27c..1ace1198795 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -106,7 +106,9 @@ typedef union { /* temporary struct for storing transform properties */ typedef struct { + float ob_obmat_orig[4][4]; float ob_dims_orig[3]; + float ob_scale_orig[3]; float ob_dims[3]; /* Floats only (treated as an array). */ TransformMedian ve_median, median; @@ -1050,6 +1052,8 @@ static void v3d_object_dimension_buts(bContext *C, uiLayout *layout, View3D *v3d BKE_object_dimensions_get(ob, tfp->ob_dims); copy_v3_v3(tfp->ob_dims_orig, tfp->ob_dims); + copy_v3_v3(tfp->ob_scale_orig, ob->scale); + copy_m4_m4(tfp->ob_obmat_orig, ob->obmat); uiDefBut(block, UI_BTYPE_LABEL, @@ -1095,7 +1099,8 @@ static void v3d_object_dimension_buts(bContext *C, uiLayout *layout, View3D *v3d axis_mask |= (1 << i); } } - BKE_object_dimensions_set(ob, tfp->ob_dims, axis_mask); + BKE_object_dimensions_set_ex( + ob, tfp->ob_dims, axis_mask, tfp->ob_scale_orig, tfp->ob_obmat_orig); PointerRNA obptr; RNA_id_pointer_create(&ob->id, &obptr); |