Move search area form track to marker structure

This allows different markers has different size of search area which
makes it possible to scale search area when doing planar tracking.

Made changes to all related areas such as transformation, tracking,
finally ported marker clamping function, added python bindings for
changed search area and added python API for pattern corners.

TODO: It's still possible to make marker's center go outside of pattern
      corners when translating pattern area or rotating it around median
      point.
This commit is contained in:
2012-05-21 09:19:08 +00:00
parent ca446f090b
commit 130e7ab6f4
10 changed files with 218 additions and 215 deletions

View File

@@ -642,27 +642,30 @@ static void recalcData_spaceclip(TransInfo *t)
MovieClip *clip = ED_space_clip(sc);
ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking);
MovieTrackingTrack *track;
int framenr = sc->user.framenr;
flushTransTracking(t);
track = tracksbase->first;
while (track) {
if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED)==0) {
MovieTrackingMarker *marker = BKE_tracking_get_marker(track, framenr);
if (t->mode == TFM_TRANSLATION) {
if (TRACK_AREA_SELECTED(track, TRACK_AREA_PAT))
BKE_tracking_clamp_track(track, CLAMP_PAT_POS);
BKE_tracking_clamp_marker(marker, CLAMP_PAT_POS);
if (TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH))
BKE_tracking_clamp_track(track, CLAMP_SEARCH_POS);
BKE_tracking_clamp_marker(marker, CLAMP_SEARCH_POS);
}
else if (t->mode == TFM_RESIZE) {
if (TRACK_AREA_SELECTED(track, TRACK_AREA_PAT))
BKE_tracking_clamp_track(track, CLAMP_PAT_DIM);
BKE_tracking_clamp_marker(marker, CLAMP_PAT_DIM);
if (TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH))
BKE_tracking_clamp_track(track, CLAMP_SEARCH_DIM);
BKE_tracking_clamp_marker(marker, CLAMP_SEARCH_DIM);
}
else if (t->mode == TFM_ROTATION) {
if (TRACK_AREA_SELECTED(track, TRACK_AREA_PAT))
BKE_tracking_clamp_track(track, CLAMP_PAT_DIM);
BKE_tracking_clamp_marker(marker, CLAMP_PAT_POS);
}
}