Cleanup: Tracking, reduce indentation level
This commit is contained in:
@@ -1728,76 +1728,78 @@ void BKE_movieclip_update_scopes(MovieClip *clip, MovieClipUser *user, MovieClip
|
|||||||
scopes->track = NULL;
|
scopes->track = NULL;
|
||||||
scopes->track_locked = true;
|
scopes->track_locked = true;
|
||||||
|
|
||||||
if (clip) {
|
|
||||||
MovieTrackingTrack *act_track = BKE_tracking_track_get_active(&clip->tracking);
|
|
||||||
|
|
||||||
if (act_track) {
|
|
||||||
MovieTrackingTrack *track = act_track;
|
|
||||||
int framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, user->framenr);
|
|
||||||
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, framenr);
|
|
||||||
|
|
||||||
scopes->marker = marker;
|
|
||||||
scopes->track = track;
|
|
||||||
|
|
||||||
if (marker->flag & MARKER_DISABLED) {
|
|
||||||
scopes->track_disabled = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ImBuf *ibuf = BKE_movieclip_get_ibuf(clip, user);
|
|
||||||
|
|
||||||
scopes->track_disabled = false;
|
|
||||||
|
|
||||||
if (ibuf && (ibuf->rect || ibuf->rect_float)) {
|
|
||||||
MovieTrackingMarker undist_marker = *marker;
|
|
||||||
|
|
||||||
if (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) {
|
|
||||||
int width, height;
|
|
||||||
float aspy = 1.0f / clip->tracking.camera.pixel_aspect;
|
|
||||||
|
|
||||||
BKE_movieclip_get_size(clip, user, &width, &height);
|
|
||||||
|
|
||||||
undist_marker.pos[0] *= width;
|
|
||||||
undist_marker.pos[1] *= height * aspy;
|
|
||||||
|
|
||||||
BKE_tracking_undistort_v2(
|
|
||||||
&clip->tracking, width, height, undist_marker.pos, undist_marker.pos);
|
|
||||||
|
|
||||||
undist_marker.pos[0] /= width;
|
|
||||||
undist_marker.pos[1] /= height * aspy;
|
|
||||||
}
|
|
||||||
|
|
||||||
scopes->track_search = BKE_tracking_get_search_imbuf(
|
|
||||||
ibuf, track, &undist_marker, true, true);
|
|
||||||
|
|
||||||
scopes->undist_marker = undist_marker;
|
|
||||||
|
|
||||||
scopes->frame_width = ibuf->x;
|
|
||||||
scopes->frame_height = ibuf->y;
|
|
||||||
|
|
||||||
scopes->use_track_mask = (track->flag & TRACK_PREVIEW_ALPHA) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMB_freeImBuf(ibuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((track->flag & TRACK_LOCKED) == 0) {
|
|
||||||
float pat_min[2], pat_max[2];
|
|
||||||
|
|
||||||
scopes->track_locked = false;
|
|
||||||
|
|
||||||
/* XXX: would work fine with non-transformed patterns, but would likely fail
|
|
||||||
* with transformed patterns, but that would be easier to debug when
|
|
||||||
* we'll have real pattern sampling (at least to test) */
|
|
||||||
BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
|
|
||||||
|
|
||||||
scopes->slide_scale[0] = pat_max[0] - pat_min[0];
|
|
||||||
scopes->slide_scale[1] = pat_max[1] - pat_min[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scopes->framenr = user->framenr;
|
scopes->framenr = user->framenr;
|
||||||
scopes->ok = true;
|
scopes->ok = true;
|
||||||
|
|
||||||
|
if (clip == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MovieTrackingTrack *track = BKE_tracking_track_get_active(&clip->tracking);
|
||||||
|
if (track == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const int framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, user->framenr);
|
||||||
|
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, framenr);
|
||||||
|
|
||||||
|
scopes->marker = marker;
|
||||||
|
scopes->track = track;
|
||||||
|
|
||||||
|
if (marker->flag & MARKER_DISABLED) {
|
||||||
|
scopes->track_disabled = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ImBuf *ibuf = BKE_movieclip_get_ibuf(clip, user);
|
||||||
|
|
||||||
|
scopes->track_disabled = false;
|
||||||
|
|
||||||
|
if (ibuf && (ibuf->rect || ibuf->rect_float)) {
|
||||||
|
MovieTrackingMarker undist_marker = *marker;
|
||||||
|
|
||||||
|
if (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) {
|
||||||
|
int width, height;
|
||||||
|
float aspy = 1.0f / clip->tracking.camera.pixel_aspect;
|
||||||
|
|
||||||
|
BKE_movieclip_get_size(clip, user, &width, &height);
|
||||||
|
|
||||||
|
undist_marker.pos[0] *= width;
|
||||||
|
undist_marker.pos[1] *= height * aspy;
|
||||||
|
|
||||||
|
BKE_tracking_undistort_v2(
|
||||||
|
&clip->tracking, width, height, undist_marker.pos, undist_marker.pos);
|
||||||
|
|
||||||
|
undist_marker.pos[0] /= width;
|
||||||
|
undist_marker.pos[1] /= height * aspy;
|
||||||
|
}
|
||||||
|
|
||||||
|
scopes->track_search = BKE_tracking_get_search_imbuf(
|
||||||
|
ibuf, track, &undist_marker, true, true);
|
||||||
|
|
||||||
|
scopes->undist_marker = undist_marker;
|
||||||
|
|
||||||
|
scopes->frame_width = ibuf->x;
|
||||||
|
scopes->frame_height = ibuf->y;
|
||||||
|
|
||||||
|
scopes->use_track_mask = (track->flag & TRACK_PREVIEW_ALPHA) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
IMB_freeImBuf(ibuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((track->flag & TRACK_LOCKED) == 0) {
|
||||||
|
float pat_min[2], pat_max[2];
|
||||||
|
|
||||||
|
scopes->track_locked = false;
|
||||||
|
|
||||||
|
/* XXX: would work fine with non-transformed patterns, but would likely fail
|
||||||
|
* with transformed patterns, but that would be easier to debug when
|
||||||
|
* we'll have real pattern sampling (at least to test) */
|
||||||
|
BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
|
||||||
|
|
||||||
|
scopes->slide_scale[0] = pat_max[0] - pat_min[0];
|
||||||
|
scopes->slide_scale[1] = pat_max[1] - pat_min[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void movieclip_build_proxy_ibuf(
|
static void movieclip_build_proxy_ibuf(
|
||||||
|
|||||||
Reference in New Issue
Block a user