Motion Tracking: fixed dopesheet left in incorrect state after joining tracks
This commit is contained in:
@@ -80,7 +80,7 @@ int BKE_tracking_track_has_marker_at_frame(struct MovieTrackingTrack *track, int
|
|||||||
int BKE_tracking_track_has_enabled_marker_at_frame(struct MovieTrackingTrack *track, int framenr);
|
int BKE_tracking_track_has_enabled_marker_at_frame(struct MovieTrackingTrack *track, int framenr);
|
||||||
|
|
||||||
void BKE_tracking_track_path_clear(struct MovieTrackingTrack *track, int ref_frame, int action);
|
void BKE_tracking_track_path_clear(struct MovieTrackingTrack *track, int ref_frame, int action);
|
||||||
void BKE_tracking_tracks_join(struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track);
|
void BKE_tracking_tracks_join(struct MovieTracking *tracking, struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track);
|
||||||
|
|
||||||
struct MovieTrackingTrack *BKE_tracking_track_get_named(struct MovieTracking *tracking,
|
struct MovieTrackingTrack *BKE_tracking_track_get_named(struct MovieTracking *tracking,
|
||||||
struct MovieTrackingObject *object,
|
struct MovieTrackingObject *object,
|
||||||
|
@@ -631,7 +631,7 @@ void BKE_tracking_track_path_clear(MovieTrackingTrack *track, int ref_frame, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BKE_tracking_tracks_join(MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
|
void BKE_tracking_tracks_join(MovieTracking *tracking, MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
|
||||||
{
|
{
|
||||||
int i = 0, a = 0, b = 0, tot;
|
int i = 0, a = 0, b = 0, tot;
|
||||||
MovieTrackingMarker *markers;
|
MovieTrackingMarker *markers;
|
||||||
@@ -734,6 +734,8 @@ void BKE_tracking_tracks_join(MovieTrackingTrack *dst_track, MovieTrackingTrack
|
|||||||
dst_track->markersnr = i;
|
dst_track->markersnr = i;
|
||||||
|
|
||||||
MEM_freeN(markers);
|
MEM_freeN(markers);
|
||||||
|
|
||||||
|
BKE_tracking_dopesheet_tag_update(tracking);
|
||||||
}
|
}
|
||||||
|
|
||||||
MovieTrackingTrack *BKE_tracking_track_get_named(MovieTracking *tracking, MovieTrackingObject *object, const char *name)
|
MovieTrackingTrack *BKE_tracking_track_get_named(MovieTracking *tracking, MovieTrackingObject *object, const char *name)
|
||||||
|
@@ -2766,7 +2766,7 @@ static int join_tracks_exec(bContext *C, wmOperator *op)
|
|||||||
next = track->next;
|
next = track->next;
|
||||||
|
|
||||||
if (TRACK_VIEW_SELECTED(sc, track) && track != act_track) {
|
if (TRACK_VIEW_SELECTED(sc, track) && track != act_track) {
|
||||||
BKE_tracking_tracks_join(act_track, track);
|
BKE_tracking_tracks_join(tracking, act_track, track);
|
||||||
|
|
||||||
if (tracking->stabilization.rot_track == track)
|
if (tracking->stabilization.rot_track == track)
|
||||||
tracking->stabilization.rot_track = act_track;
|
tracking->stabilization.rot_track = act_track;
|
||||||
|
Reference in New Issue
Block a user