[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60157] trunk/blender: fix [#36537] " Grid Floor Scaling" can have some unexpected behaviour on new objects
Campbell Barton
ideasman42 at gmail.com
Mon Sep 16 06:19:48 CEST 2013
Revision: 60157
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60157
Author: campbellbarton
Date: 2013-09-16 04:19:48 +0000 (Mon, 16 Sep 2013)
Log Message:
-----------
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.
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_ui/space_info.py
trunk/blender/source/blender/editors/curve/editcurve_add.c
trunk/blender/source/blender/editors/include/ED_mball.h
trunk/blender/source/blender/editors/mesh/editmesh_add.c
trunk/blender/source/blender/editors/metaball/mball_edit.c
trunk/blender/source/blender/editors/object/object_add.c
trunk/blender/source/blender/windowmanager/WM_api.h
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
Modified: trunk/blender/release/scripts/startup/bl_ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_info.py 2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/release/scripts/startup/bl_ui/space_info.py 2013-09-16 04:19:48 UTC (rev 60157)
@@ -227,7 +227,7 @@
def draw(self, context):
layout = self.layout
- layout.operator_context = 'EXEC_REGION_WIN'
+ layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("curve.primitive_bezier_curve_add", icon='CURVE_BEZCURVE', text="Bezier")
layout.operator("curve.primitive_bezier_circle_add", icon='CURVE_BEZCIRCLE', text="Circle")
layout.operator("curve.primitive_nurbs_curve_add", icon='CURVE_NCURVE', text="Nurbs Curve")
@@ -242,7 +242,7 @@
def draw(self, context):
layout = self.layout
- layout.operator_context = 'EXEC_REGION_WIN'
+ layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("surface.primitive_nurbs_surface_curve_add", icon='SURFACE_NCURVE', text="NURBS Curve")
layout.operator("surface.primitive_nurbs_surface_circle_add", icon='SURFACE_NCIRCLE', text="NURBS Circle")
layout.operator("surface.primitive_nurbs_surface_surface_add", icon='SURFACE_NSURFACE', text="NURBS Surface")
@@ -297,7 +297,9 @@
layout.menu("INFO_MT_curve_add", icon='OUTLINER_OB_CURVE')
#layout.operator_menu_enum("object.surface_add", "type", text="Surface", icon='OUTLINER_OB_SURFACE')
layout.menu("INFO_MT_surface_add", icon='OUTLINER_OB_SURFACE')
+ layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator_menu_enum("object.metaball_add", "type", text="Metaball", icon='OUTLINER_OB_META')
+ layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("object.text_add", text="Text", icon='OUTLINER_OB_FONT')
layout.separator()
Modified: trunk/blender/source/blender/editors/curve/editcurve_add.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve_add.c 2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/source/blender/editors/curve/editcurve_add.c 2013-09-16 04:19:48 UTC (rev 60157)
@@ -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 @@
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 @@
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 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -589,6 +599,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -611,6 +622,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -633,6 +645,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -655,6 +668,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -678,6 +692,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -700,6 +715,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -722,6 +738,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -744,6 +761,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
@@ -766,6 +784,7 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ED_object_add_unit_props(ot);
ED_object_add_generic_props(ot, true);
}
Modified: trunk/blender/source/blender/editors/include/ED_mball.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mball.h 2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/source/blender/editors/include/ED_mball.h 2013-09-16 04:19:48 UTC (rev 60157)
@@ -39,7 +39,7 @@
void ED_operatortypes_metaball(void);
void ED_keymap_metaball(struct wmKeyConfig *keyconf);
-struct MetaElem *add_metaball_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], float dia, int type, int newname);
+struct MetaElem *add_metaball_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], float dia, int type);
bool mouse_mball(struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle);
Modified: trunk/blender/source/blender/editors/mesh/editmesh_add.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_add.c 2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/source/blender/editors/mesh/editmesh_add.c 2013-09-16 04:19:48 UTC (rev 60157)
@@ -105,6 +105,7 @@
bool was_editmode;
unsigned int layer;
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Plane"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -130,7 +131,6 @@
ot->idname = "MESH_OT_primitive_plane_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_plane_exec;
ot->poll = ED_operator_scene_editable;
@@ -150,6 +150,7 @@
bool was_editmode;
unsigned int layer;
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Cube"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -176,7 +177,6 @@
ot->idname = "MESH_OT_primitive_cube_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_cube_exec;
ot->poll = ED_operator_scene_editable;
@@ -206,6 +206,7 @@
cap_end = RNA_enum_get(op->ptr, "fill_type");
cap_tri = (cap_end == 2);
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Circle"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -232,7 +233,6 @@
ot->idname = "MESH_OT_primitive_circle_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_circle_exec;
ot->poll = ED_operator_scene_editable;
@@ -259,6 +259,7 @@
const bool cap_end = (end_fill_type != 0);
const bool cap_tri = (end_fill_type == 2);
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Cylinder"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -290,7 +291,6 @@
ot->idname = "MESH_OT_primitive_cylinder_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_cylinder_exec;
ot->poll = ED_operator_scene_editable;
@@ -319,6 +319,7 @@
const bool cap_end = (end_fill_type != 0);
const bool cap_tri = (end_fill_type == 2);
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Cone"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -347,7 +348,6 @@
ot->idname = "MESH_OT_primitive_cone_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_cone_exec;
ot->poll = ED_operator_scene_editable;
@@ -376,6 +376,7 @@
bool was_editmode;
unsigned int layer;
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Grid"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -403,7 +404,6 @@
ot->idname = "MESH_OT_primitive_grid_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_grid_exec;
ot->poll = ED_operator_scene_editable;
@@ -428,6 +428,7 @@
unsigned int layer;
bool was_editmode;
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, &is_view_aligned);
if (!is_view_aligned)
rot[0] += (float)M_PI / 2.0f;
@@ -460,7 +461,6 @@
ot->idname = "MESH_OT_primitive_monkey_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_monkey_exec;
ot->poll = ED_operator_scene_editable;
@@ -480,6 +480,7 @@
bool was_editmode;
unsigned int layer;
+ WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Sphere"), &dia, mat, &was_editmode, loc, rot, layer);
em = BKE_editmesh_from_object(obedit);
@@ -508,7 +509,6 @@
ot->idname = "MESH_OT_primitive_uv_sphere_add";
/* api callbacks */
- ot->invoke = WM_operator_view3d_distance_invoke;
ot->exec = add_primitive_uvsphere_exec;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list