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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2010-04-18 06:03:19 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2010-04-18 06:03:19 +0400
commitdfe2f8dc03267e041102837e92f547fb04881510 (patch)
treed9582c4667ce5b9e39e2adce40832aa4f44b4fe7 /source/blender/editors/transform
parentd7e08f2d33207fdf76b1b597ef0de9dec26e3987 (diff)
parent00e46ef739cf2bfddb8805af056aa59fd3b3c71c (diff)
Merged changes in the trunk up to revision 28247.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform.c2
-rw-r--r--source/blender/editors/transform/transform_conversions.c6
-rw-r--r--source/blender/editors/transform/transform_generics.c6
-rw-r--r--source/blender/editors/transform/transform_ops.c24
4 files changed, 31 insertions, 7 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 59b0d26d00a..df024a4b3d9 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -4670,7 +4670,7 @@ void initEdgeSlide(TransInfo *t)
t->num.increment = t->snap[1];
- t->flag |= T_NO_CONSTRAINT;
+ t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
int doEdgeSlide(TransInfo *t, float perc)
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index f9c537e1c20..0e11058a244 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -4451,7 +4451,7 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
/* only insert into active keyingset
* NOTE: we assume here that the active Keying Set does not need to have its iterator overridden spe
*/
- ANIM_apply_keyingset(C, NULL, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
}
else if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
AnimData *adt= ob->adt;
@@ -4560,9 +4560,9 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
ANIM_relative_keyingset_add_source(&dsources, id, &RNA_PoseBone, pchan);
/* only insert into active keyingset? */
- // TODO: move this first case out of the loop
if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (active_ks)) {
- ANIM_apply_keyingset(C, NULL, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
+ /* run the active Keying Set on the current datasource */
+ ANIM_apply_keyingset(C, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
}
/* only insert into available channels? */
else if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 8bbeec63155..41914ed4135 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -189,8 +189,8 @@ static void clipMirrorModifier(TransInfo *t, Object *ob)
copy_v3_v3(iloc, td->iloc);
if (mmd->mirror_ob) {
- mul_v3_m4v3(loc, mtx, loc);
- mul_v3_m4v3(iloc, mtx, iloc);
+ mul_m4_v3(mtx, loc);
+ mul_m4_v3(mtx, iloc);
}
clip = 0;
@@ -218,7 +218,7 @@ static void clipMirrorModifier(TransInfo *t, Object *ob)
}
if (clip) {
if (mmd->mirror_ob) {
- mul_v3_m4v3(loc, imtx, loc);
+ mul_m4_v3(imtx, loc);
}
copy_v3_v3(td->loc, loc);
}
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 6059d9d4697..4571cc0ace9 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -61,6 +61,7 @@ char OP_RESIZE[] = "TRANSFORM_OT_resize";
char OP_SHEAR[] = "TRANSFORM_OT_shear";
char OP_WARP[] = "TRANSFORM_OT_warp";
char OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten";
+char OP_PUSH_PULL[] = "TRANSFORM_OT_push_pull";
char OP_TILT[] = "TRANSFORM_OT_tilt";
char OP_TRACKBALL[] = "TRANSFORM_OT_trackball";
char OP_MIRROR[] = "TRANSFORM_OT_mirror";
@@ -75,6 +76,7 @@ void TRANSFORM_OT_resize(struct wmOperatorType *ot);
void TRANSFORM_OT_shear(struct wmOperatorType *ot);
void TRANSFORM_OT_warp(struct wmOperatorType *ot);
void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot);
+void TRANSFORM_OT_push_pull(struct wmOperatorType *ot);
void TRANSFORM_OT_tilt(struct wmOperatorType *ot);
void TRANSFORM_OT_trackball(struct wmOperatorType *ot);
void TRANSFORM_OT_mirror(struct wmOperatorType *ot);
@@ -91,6 +93,7 @@ TransformModeItem transform_modes[] =
{OP_SHEAR, TFM_SHEAR, TRANSFORM_OT_shear},
{OP_WARP, TFM_WARP, TRANSFORM_OT_warp},
{OP_SHRINK_FATTEN, TFM_SHRINKFATTEN, TRANSFORM_OT_shrink_fatten},
+ {OP_PUSH_PULL, TFM_PUSHPULL, TRANSFORM_OT_push_pull},
{OP_TILT, TFM_TILT, TRANSFORM_OT_tilt},
{OP_TRACKBALL, TFM_TRACKBALL, TRANSFORM_OT_trackball},
{OP_MIRROR, TFM_MIRROR, TRANSFORM_OT_mirror},
@@ -579,6 +582,26 @@ void TRANSFORM_OT_shear(struct wmOperatorType *ot)
// XXX Shear axis?
}
+void TRANSFORM_OT_push_pull(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Push/Pull";
+ ot->description= "Push/Pull selected items";
+ ot->idname = OP_PUSH_PULL;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
+
+ /* api callbacks */
+ ot->invoke = transform_invoke;
+ ot->exec = transform_exec;
+ ot->modal = transform_modal;
+ ot->cancel = transform_cancel;
+ ot->poll = ED_operator_areaactive;
+
+ RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Distance", "", -FLT_MAX, FLT_MAX);
+
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
+}
+
void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot)
{
/* identifiers */
@@ -864,6 +887,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0);
+ RNA_enum_set(km->ptr, "release_confirm", 1);
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
RNA_enum_set(km->ptr, "release_confirm", 1);