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:
authorCampbell Barton <ideasman42@gmail.com>2013-09-16 08:19:48 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-09-16 08:19:48 +0400
commitb380dd9378707bbf4a45ed456d49f28cf762b882 (patch)
tree4f6513ef26bf3f48af9ac7b16f69eeb47827fd0a /source/blender/editors/curve
parent23626e0149f25f13855735bbb7f65121e0c40ca0 (diff)
fix [#36537] "Grid Floor Scaling" can have some unexpected behaviour on new objects
curves and metaballs now behave the same as meshes wrt grid scaling. remove WM_operator_view3d_distance_invoke(), and replace with a function called from exec which initializes defaults, this way operators can have their own invoke functions.
Diffstat (limited to 'source/blender/editors/curve')
-rw-r--r--source/blender/editors/curve/editcurve_add.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/source/blender/editors/curve/editcurve_add.c b/source/blender/editors/curve/editcurve_add.c
index ceb9aa90aca..0bcb550b930 100644
--- a/source/blender/editors/curve/editcurve_add.c
+++ b/source/blender/editors/curve/editcurve_add.c
@@ -45,6 +45,8 @@
#include "BKE_depsgraph.h"
#include "BKE_library.h"
+#include "RNA_access.h"
+
#include "WM_api.h"
#include "WM_types.h"
@@ -471,9 +473,12 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
bool newob = false;
bool enter_editmode, is_view_aligned;
unsigned int layer;
+ float dia;
float loc[3], rot[3];
float mat[4][4];
+ WM_operator_view3d_unit_defaults(C, op);
+
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, &is_view_aligned))
return OPERATOR_CANCELLED;
@@ -520,7 +525,11 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
if (newob && enter_editmode)
ED_undo_push(C, "Enter Editmode");
- ED_object_new_primitive_matrix(C, obedit, loc, rot, mat, true);
+ ED_object_new_primitive_matrix(C, obedit, loc, rot, mat, false);
+ dia = RNA_float_get(op->ptr, "radius");
+ mat[0][0] *= dia;
+ mat[1][1] *= dia;
+ mat[2][2] *= dia;
nu = add_nurbs_primitive(C, obedit, mat, type, newob);
editnurb = object_editcurve_get(obedit);
@@ -567,6 +576,7 @@ void CURVE_OT_primitive_bezier_curve_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -589,6 +599,7 @@ void CURVE_OT_primitive_bezier_circle_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -611,6 +622,7 @@ void CURVE_OT_primitive_nurbs_curve_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -633,6 +645,7 @@ void CURVE_OT_primitive_nurbs_circle_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -655,6 +668,7 @@ void CURVE_OT_primitive_nurbs_path_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -678,6 +692,7 @@ void SURFACE_OT_primitive_nurbs_surface_curve_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -700,6 +715,7 @@ void SURFACE_OT_primitive_nurbs_surface_circle_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -722,6 +738,7 @@ void SURFACE_OT_primitive_nurbs_surface_surface_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -744,6 +761,7 @@ void SURFACE_OT_primitive_nurbs_surface_cylinder_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -766,6 +784,7 @@ void SURFACE_OT_primitive_nurbs_surface_sphere_add(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}