Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2021-04-21 13:35:38 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2021-04-21 14:01:32 +0300
commitb72d9216f12edb37e79ce2fe17c72bb5a072db6a (patch)
treeab530001f45a6bd4efda50ba4cabae55ea7784f0
parent26ab90e49bb49e5ff86d19bd19934293e6891d60 (diff)
Fix T87677: Add primitive tools produce wrong sized objects after changing values in 'Adjust Last Operation'
Always use the defaults here (radius, depth etc), since desired bounds have been set interactively, it does not make sense to use a different value from a previous command. The Cube tool has already seen a fix for this in rB26e5718e29a7, but Cone/UVSphere/Cylinder/IcoSphere havent. Maniphest Tasks: T87677 Differential Revision: https://developer.blender.org/D11038
-rw-r--r--source/blender/editors/space_view3d/view3d_placement.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_placement.c b/source/blender/editors/space_view3d/view3d_placement.c
index 8172742a756..7347e528edc 100644
--- a/source/blender/editors/space_view3d/view3d_placement.c
+++ b/source/blender/editors/space_view3d/view3d_placement.c
@@ -1472,10 +1472,27 @@ static int view3d_interactive_add_modal(bContext *C, wmOperator *op, const wmEve
RNA_float_set_array(&op_props, "rotation", rotation);
RNA_float_set_array(&op_props, "location", location);
RNA_float_set_array(&op_props, "scale", scale);
- /* Always use default size here. */
+
+ /* Always use the defaults here since desired bounds have been set interactively, it does
+ * not make sense to use a different values from a previous command. */
if (ipd->primitive_type == PLACE_PRIMITIVE_TYPE_CUBE) {
RNA_float_set(&op_props, "size", 2.0f);
}
+ if (ELEM(ipd->primitive_type,
+ PLACE_PRIMITIVE_TYPE_CYLINDER,
+ PLACE_PRIMITIVE_TYPE_SPHERE_UV,
+ PLACE_PRIMITIVE_TYPE_SPHERE_ICO)) {
+ RNA_float_set(&op_props, "radius", 1.0f);
+ }
+ if (ELEM(
+ ipd->primitive_type, PLACE_PRIMITIVE_TYPE_CYLINDER, PLACE_PRIMITIVE_TYPE_CONE)) {
+ RNA_float_set(&op_props, "depth", 2.0f);
+ }
+ if (ipd->primitive_type == PLACE_PRIMITIVE_TYPE_CONE) {
+ RNA_float_set(&op_props, "radius1", 1.0f);
+ RNA_float_set(&op_props, "radius2", 0.0f);
+ }
+
WM_operator_name_call_ptr(C, ot, WM_OP_EXEC_DEFAULT, &op_props);
WM_operator_properties_free(&op_props);
}