diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-06-29 17:41:00 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-06-29 18:18:11 +0300 |
commit | d140e70c496122915eb5c05aba83153e2e0d7998 (patch) | |
tree | 1e589247d69da64aa7b0e7802319237ec050b5d6 /source/blender/editors/transform/transform_ops.c | |
parent | 147bd16ed1bb3415b30408b0eab110d0854eadd2 (diff) | |
parent | 295d0c52a26730edc6d4ed1276e4051cce006be5 (diff) |
Merge branch 'master' into temp-ghash-experimentstemp-ghash-experiments
Note that 'store hash' feature was removed for now - to complex to maintain (conflicts)
and relatively easy to re-add if we ever really want this one day.
Conflicts:
source/blender/blenlib/BLI_ghash.h
source/blender/blenlib/intern/BLI_ghash.c
source/blender/blenlib/intern/hash_mm2a.c
source/blender/bmesh/tools/bmesh_region_match.c
tests/gtests/blenlib/BLI_ghash_performance_test.cc
tests/gtests/blenlib/BLI_ghash_test.cc
tests/gtests/blenlib/CMakeLists.txt
Diffstat (limited to 'source/blender/editors/transform/transform_ops.c')
-rw-r--r-- | source/blender/editors/transform/transform_ops.c | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index e33bc19fc92..013e47886eb 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -38,6 +38,7 @@ #include "BKE_context.h" #include "BKE_global.h" #include "BKE_report.h" +#include "BKE_editmesh.h" #include "RNA_access.h" #include "RNA_define.h" @@ -63,23 +64,23 @@ typedef struct TransformModeItem { static const float VecOne[3] = {1, 1, 1}; -static char OP_TRANSLATION[] = "TRANSFORM_OT_translate"; -static char OP_ROTATION[] = "TRANSFORM_OT_rotate"; -static char OP_TOSPHERE[] = "TRANSFORM_OT_tosphere"; -static char OP_RESIZE[] = "TRANSFORM_OT_resize"; -static char OP_SKIN_RESIZE[] = "TRANSFORM_OT_skin_resize"; -static char OP_SHEAR[] = "TRANSFORM_OT_shear"; -static char OP_BEND[] = "TRANSFORM_OT_bend"; -static char OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten"; -static char OP_PUSH_PULL[] = "TRANSFORM_OT_push_pull"; -static char OP_TILT[] = "TRANSFORM_OT_tilt"; -static char OP_TRACKBALL[] = "TRANSFORM_OT_trackball"; -static char OP_MIRROR[] = "TRANSFORM_OT_mirror"; -static char OP_EDGE_SLIDE[] = "TRANSFORM_OT_edge_slide"; -static char OP_VERT_SLIDE[] = "TRANSFORM_OT_vert_slide"; -static char OP_EDGE_CREASE[] = "TRANSFORM_OT_edge_crease"; -static char OP_EDGE_BWEIGHT[] = "TRANSFORM_OT_edge_bevelweight"; -static char OP_SEQ_SLIDE[] = "TRANSFORM_OT_seq_slide"; +static const char OP_TRANSLATION[] = "TRANSFORM_OT_translate"; +static const char OP_ROTATION[] = "TRANSFORM_OT_rotate"; +static const char OP_TOSPHERE[] = "TRANSFORM_OT_tosphere"; +static const char OP_RESIZE[] = "TRANSFORM_OT_resize"; +static const char OP_SKIN_RESIZE[] = "TRANSFORM_OT_skin_resize"; +static const char OP_SHEAR[] = "TRANSFORM_OT_shear"; +static const char OP_BEND[] = "TRANSFORM_OT_bend"; +static const char OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten"; +static const char OP_PUSH_PULL[] = "TRANSFORM_OT_push_pull"; +static const char OP_TILT[] = "TRANSFORM_OT_tilt"; +static const char OP_TRACKBALL[] = "TRANSFORM_OT_trackball"; +static const char OP_MIRROR[] = "TRANSFORM_OT_mirror"; +static const char OP_EDGE_SLIDE[] = "TRANSFORM_OT_edge_slide"; +static const char OP_VERT_SLIDE[] = "TRANSFORM_OT_vert_slide"; +static const char OP_EDGE_CREASE[] = "TRANSFORM_OT_edge_crease"; +static const char OP_EDGE_BWEIGHT[] = "TRANSFORM_OT_edge_bevelweight"; +static const char OP_SEQ_SLIDE[] = "TRANSFORM_OT_seq_slide"; static void TRANSFORM_OT_translate(struct wmOperatorType *ot); static void TRANSFORM_OT_rotate(struct wmOperatorType *ot); @@ -140,6 +141,7 @@ EnumPropertyItem transform_mode_types[] = {TFM_MIRROR, "MIRROR", 0, "Mirror", ""}, {TFM_BONESIZE, "BONE_SIZE", 0, "Bonesize", ""}, {TFM_BONE_ENVELOPE, "BONE_ENVELOPE", 0, "Bone_Envelope", ""}, + {TFM_BONE_ENVELOPE_DIST, "BONE_ENVELOPE_DIST", 0, "Bone_Envelope_Distance", ""}, {TFM_CURVE_SHRINKFATTEN, "CURVE_SHRINKFATTEN", 0, "Curve_Shrinkfatten", ""}, {TFM_MASK_SHRINKFATTEN, "MASK_SHRINKFATTEN", 0, "Mask_Shrinkfatten", ""}, {TFM_GPENCIL_SHRINKFATTEN, "GPENCIL_SHRINKFATTEN", 0, "GPencil_Shrinkfatten", ""}, @@ -488,7 +490,7 @@ static int transform_invoke(bContext *C, wmOperator *op, const wmEvent *event) /* add temp handler */ WM_event_add_modal_handler(C, op); - op->flag |= OP_GRAB_POINTER; // XXX maybe we want this with the manipulator only? + op->flag |= OP_IS_MODAL_GRAB_CURSOR; // XXX maybe we want this with the manipulator only? return OPERATOR_RUNNING_MODAL; } } @@ -790,6 +792,8 @@ static void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot) RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Offset", "", -FLT_MAX, FLT_MAX); + RNA_def_boolean(ot->srna, "use_even_offset", true, "Offset Even", "Scale the offset to give more even thickness"); + Transform_Properties(ot, P_PROPORTIONAL | P_MIRROR | P_SNAP); } @@ -834,6 +838,8 @@ static void TRANSFORM_OT_mirror(struct wmOperatorType *ot) static void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot) { + PropertyRNA *prop; + /* identifiers */ ot->name = "Edge Slide"; ot->description = "Slide an edge loop along a mesh"; @@ -845,9 +851,12 @@ static void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot) ot->exec = transform_exec; ot->modal = transform_modal; ot->cancel = transform_cancel; - ot->poll = ED_operator_editmesh; + ot->poll = ED_operator_editmesh_region_view3d; - RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f); + RNA_def_float_factor(ot->srna, "value", 0, -10.0f, 10.0f, "Factor", "", -1.0f, 1.0f); + + prop = RNA_def_boolean(ot->srna, "single_side", false, "Single Side", ""); + RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE); Transform_Properties(ot, P_MIRROR | P_SNAP | P_CORRECT_UV); } @@ -865,7 +874,7 @@ static void TRANSFORM_OT_vert_slide(struct wmOperatorType *ot) ot->exec = transform_exec; ot->modal = transform_modal; ot->cancel = transform_cancel; - ot->poll = ED_operator_editmesh; + ot->poll = ED_operator_editmesh_region_view3d; RNA_def_float_factor(ot->srna, "value", 0, -10.0f, 10.0f, "Factor", "", -1.0f, 1.0f); @@ -1118,7 +1127,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap"); kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); - RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_element"); + RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_node_element"); break; case SPACE_SEQ: WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0); |