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>2013-09-17 12:58:12 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-09-17 12:58:12 +0400
commit1f8ab25993c9a3251074fd996bd7e8dde3dbaaf0 (patch)
tree33688077db1d368b222b337ba77c836262c17ed9 /source/blender/editors/space_clip
parentb9be47e91c64876d65d6bd061bc3ff3ee347d03e (diff)
Setting keyframe is now possible for tracks which doesn't have marker at current frame
Diffstat (limited to 'source/blender/editors/space_clip')
-rw-r--r--source/blender/editors/space_clip/tracking_ops.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c
index a4cd1e1ccad..7a6546053cd 100644
--- a/source/blender/editors/space_clip/tracking_ops.c
+++ b/source/blender/editors/space_clip/tracking_ops.c
@@ -4118,12 +4118,13 @@ static void keyframe_set_flag(bContext *C, bool set)
for (track = tracks_base->first; track; track = track->next) {
if (TRACK_VIEW_SELECTED(sc, track)) {
- MovieTrackingMarker *marker = BKE_tracking_marker_get_exact(track, framenr);
- if (marker) {
- if (set) {
- marker->flag &= ~MARKER_TRACKED;
- }
- else {
+ if (set) {
+ MovieTrackingMarker *marker = BKE_tracking_marker_ensure(track, framenr);
+ marker->flag &= ~MARKER_TRACKED;
+ }
+ else {
+ MovieTrackingMarker *marker = BKE_tracking_marker_get_exact(track, framenr);
+ if (marker) {
marker->flag |= MARKER_TRACKED;
}
}
@@ -4132,15 +4133,16 @@ static void keyframe_set_flag(bContext *C, bool set)
for (plane_track = plane_tracks_base->first; plane_track; plane_track = plane_track->next) {
if (plane_track->flag & SELECT) {
- MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_get_exact(plane_track, framenr);
- if (plane_marker) {
- if (set) {
- if (plane_marker->flag & PLANE_MARKER_TRACKED) {
- plane_marker->flag &= ~PLANE_MARKER_TRACKED;
- BKE_tracking_track_plane_from_existing_motion(plane_track, plane_marker->framenr);
- }
+ if (set) {
+ MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_ensure(plane_track, framenr);
+ if (plane_marker->flag & PLANE_MARKER_TRACKED) {
+ plane_marker->flag &= ~PLANE_MARKER_TRACKED;
+ BKE_tracking_track_plane_from_existing_motion(plane_track, plane_marker->framenr);
}
- else {
+ }
+ else {
+ MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_get_exact(plane_track, framenr);
+ if (plane_marker) {
if ((plane_marker->flag & PLANE_MARKER_TRACKED) == 0) {
plane_marker->flag |= PLANE_MARKER_TRACKED;
BKE_tracking_retrack_plane_from_existing_motion_at_segment(plane_track, plane_marker->framenr);