From 37931a6b1a9931c8eeb8a7dcd3ea79ed50a86064 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 5 Jan 2011 17:27:26 +0000 Subject: Todo item: brought transform texture space back. Code changes are minimal, re-using the code as already was there. Options are in pulldown menu, or SHIFT+T and SHIFT+ALT+T Might be that Martin likes to see it different... do we need a special operatortype for it? --- source/blender/editors/include/ED_transform.h | 1 + source/blender/editors/transform/transform.c | 3 +++ source/blender/editors/transform/transform_conversions.c | 1 + source/blender/editors/transform/transform_ops.c | 16 ++++++++++++++-- 4 files changed, 19 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index c9139a503f1..5864449a490 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -142,6 +142,7 @@ void BIF_selectOrientation(void); #define P_GEO_SNAP (P_SNAP|(1 << 4)) #define P_ALIGN_SNAP (P_GEO_SNAP|(1 << 5)) #define P_CONSTRAINT (1 << 6) +#define P_OPTIONS (1 << 7) void Transform_Properties(struct wmOperatorType *ot, int flags); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 7d32ee69a5e..2b1746f0e96 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1499,6 +1499,9 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int t->state = TRANS_STARTING; + if(RNA_boolean_get(op->ptr, "texture_space")) + options |= CTX_TEXTURE; + t->options = options; t->mode = mode; diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index df267254d8f..333f0731289 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -268,6 +268,7 @@ static void createTransTexspace(TransInfo *t) invert_m3_m3(td->smtx, td->mtx); if (give_obdata_texspace(ob, &texflag, &td->loc, &td->ext->size, &td->ext->rot)) { + ob->dtx |= OB_TEXSPACE; *texflag &= ~AUTOSPACE; } diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 322bb7cb7db..1854e05b574 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -444,6 +444,11 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) } } } + + if (flags & P_OPTIONS) + { + RNA_def_boolean(ot->srna, "texture_space", 0, "Edit Object data texture space", ""); + } // Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button"); @@ -467,7 +472,7 @@ void TRANSFORM_OT_translate(struct wmOperatorType *ot) RNA_def_float_vector_xyz(ot->srna, "value", 3, NULL, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX); - Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_ALIGN_SNAP); + Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_ALIGN_SNAP|P_OPTIONS); } void TRANSFORM_OT_resize(struct wmOperatorType *ot) @@ -487,7 +492,7 @@ void TRANSFORM_OT_resize(struct wmOperatorType *ot) RNA_def_float_vector(ot->srna, "value", 3, VecOne, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX); - Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP); + Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP|P_OPTIONS); } @@ -854,6 +859,13 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap"); km = WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); + + km = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(km->ptr, "texture_space", 1); + + km = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); + RNA_boolean_set(km->ptr, "texture_space", 1); + break; case SPACE_ACTION: -- cgit v1.2.3