Tweaks to plane track
- Do plane re-evaluation only when transform is actually done.
Before this re-evaluation happened on every mouse move.
- Added a flag "Auto Keyframe" for the plane track, which does:
* If Auto Keyframe is enabled, then every manual edit of the
plane will create a new keyframe at current frame and update
plane motion between current frame and previous/next keyframe.
This now also implies blending detected motion with neighbor
keyframes, so there's no jump happening.
No automatic update on manual point tracks edit will happen.
* If auto Keyframe is disabled, then no keyframes are adding
to the plane and every plane tweak will re-evaluate in on
the whole frame range.
In this case manual tweaks to point tracks and re-tracking
them implies plane re-evaluation.
This commit is contained in:
@@ -659,9 +659,7 @@ static void recalcData_spaceclip(TransInfo *t)
|
||||
if (ED_space_clip_check_show_trackedit(sc)) {
|
||||
MovieClip *clip = ED_space_clip_get_clip(sc);
|
||||
ListBase *tracksbase = BKE_tracking_get_active_tracks(&clip->tracking);
|
||||
ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(&clip->tracking);
|
||||
MovieTrackingTrack *track;
|
||||
MovieTrackingPlaneTrack *plane_track;
|
||||
int framenr = ED_space_clip_get_clip_frame_number(sc);
|
||||
|
||||
flushTransTracking(t);
|
||||
@@ -692,15 +690,6 @@ static void recalcData_spaceclip(TransInfo *t)
|
||||
track = track->next;
|
||||
}
|
||||
|
||||
for (plane_track = plane_tracks_base->first;
|
||||
plane_track;
|
||||
plane_track = plane_track->next)
|
||||
{
|
||||
if (plane_track->flag & SELECT) {
|
||||
BKE_tracking_track_plane_from_existing_motion(plane_track, framenr);
|
||||
}
|
||||
}
|
||||
|
||||
DAG_id_tag_update(&clip->id, 0);
|
||||
}
|
||||
else if (t->options & CTX_MASK) {
|
||||
|
||||
Reference in New Issue
Block a user