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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-07-26 13:50:27 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-07-26 13:50:27 +0400
commitc8ce3b76fff32342d267d9da1e3ac4186b98bdb2 (patch)
tree66a1824574e3aa5c83e38fd9dedc37712dedfeb3 /source/blender
parent188da231921b028962d1afd49eebe8a9730344a0 (diff)
Shortcuts to set solver frames: alt-1 for Keyframe A, alt-2 for keyframe B.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/space_clip/clip_intern.h2
-rw-r--r--source/blender/editors/space_clip/space_clip.c8
-rw-r--r--source/blender/editors/space_clip/tracking_ops.c43
3 files changed, 53 insertions, 0 deletions
diff --git a/source/blender/editors/space_clip/clip_intern.h b/source/blender/editors/space_clip/clip_intern.h
index c61a0baa82e..c4652c2f04d 100644
--- a/source/blender/editors/space_clip/clip_intern.h
+++ b/source/blender/editors/space_clip/clip_intern.h
@@ -150,6 +150,8 @@ void CLIP_OT_hide_tracks(struct wmOperatorType *ot);
void CLIP_OT_hide_tracks_clear(struct wmOperatorType *ot);
void CLIP_OT_lock_tracks(struct wmOperatorType *ot);
+void CLIP_OT_set_solver_keyframe(struct wmOperatorType *ot);
+
void CLIP_OT_set_origin(struct wmOperatorType *ot);
void CLIP_OT_set_plane(struct wmOperatorType *ot);
void CLIP_OT_set_axis(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c
index 7e08372441f..1b70588b59d 100644
--- a/source/blender/editors/space_clip/space_clip.c
+++ b/source/blender/editors/space_clip/space_clip.c
@@ -477,6 +477,8 @@ static void clip_operatortypes(void)
WM_operatortype_append(CLIP_OT_hide_tracks_clear);
WM_operatortype_append(CLIP_OT_lock_tracks);
+ WM_operatortype_append(CLIP_OT_set_solver_keyframe);
+
/* orientation */
WM_operatortype_append(CLIP_OT_set_origin);
WM_operatortype_append(CLIP_OT_set_plane);
@@ -562,6 +564,12 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CLIP_OT_solve_camera", SKEY, KM_PRESS, KM_SHIFT, 0);
+ kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", ONEKEY, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "keyframe", 0);
+
+ kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", TWOKEY, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "keyframe", 1);
+
/* ******** Hotkeys avalaible for main region only ******** */
keymap = WM_keymap_find(keyconf, "Clip Editor", SPACE_CLIP, 0);
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c
index 2e4ba844646..97c25df914a 100644
--- a/source/blender/editors/space_clip/tracking_ops.c
+++ b/source/blender/editors/space_clip/tracking_ops.c
@@ -2842,6 +2842,49 @@ void CLIP_OT_lock_tracks(wmOperatorType *ot)
RNA_def_enum(ot->srna, "action", actions_items, 0, "Action", "Lock action to execute");
}
+/********************** set keyframe operator *********************/
+
+static int set_solver_keyframe_exec(bContext *C, wmOperator *op)
+{
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ MovieClip *clip = ED_space_clip_get_clip(sc);
+ MovieTracking *tracking = &clip->tracking;
+ MovieTrackingSettings *settings = &tracking->settings;
+ int keyframe = RNA_enum_get(op->ptr, "keyframe");
+ int framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, sc->user.framenr);
+
+ if (keyframe == 0)
+ settings->keyframe1 = framenr;
+ else
+ settings->keyframe2 = framenr;
+
+ return OPERATOR_FINISHED;
+}
+
+void CLIP_OT_set_solver_keyframe(wmOperatorType *ot)
+{
+ static EnumPropertyItem keyframe_items[] = {
+ {0, "KEYFRAME_A", 0, "Keyframe A", ""},
+ {1, "KEYFRAME_B", 0, "Keyframe B", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ /* identifiers */
+ ot->name = "Set Selver Keyframe";
+ ot->description = "Set keyframe used by solver";
+ ot->idname = "CLIP_OT_set_solver_keyframe";
+
+ /* api callbacks */
+ ot->exec = set_solver_keyframe_exec;
+ ot->poll = ED_space_clip_tracking_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_enum(ot->srna, "keyframe", keyframe_items, 0, "Keyframe", "keyframe to set");
+}
+
/********************** track copy color operator *********************/
static int track_copy_color_exec(bContext *C, wmOperator *UNUSED(op))