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:
Diffstat (limited to 'intern/libmv/libmv/autotrack/autotrack.cc')
-rw-r--r--intern/libmv/libmv/autotrack/autotrack.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/intern/libmv/libmv/autotrack/autotrack.cc b/intern/libmv/libmv/autotrack/autotrack.cc
index c18567a5f28..afdf48912e5 100644
--- a/intern/libmv/libmv/autotrack/autotrack.cc
+++ b/intern/libmv/libmv/autotrack/autotrack.cc
@@ -115,14 +115,27 @@ FrameAccessor::Key GetMaskForMarker(const Marker& marker,
marker.clip, marker.frame, marker.track, &region, mask);
}
+PredictDirection getPredictDirection(const TrackRegionOptions* track_options) {
+ switch (track_options->direction) {
+ case TrackRegionOptions::FORWARD: return PredictDirection::FORWARD;
+ case TrackRegionOptions::BACKWARD: return PredictDirection::BACKWARD;
+ }
+
+ LOG(FATAL) << "Unhandled tracking direction " << track_options->direction
+ << ", should never happen.";
+
+ return PredictDirection::AUTO;
+}
+
} // namespace
bool AutoTrack::TrackMarker(Marker* tracked_marker,
TrackRegionResult* result,
const TrackRegionOptions* track_options) {
// Try to predict the location of the second marker.
+ const PredictDirection predict_direction = getPredictDirection(track_options);
bool predicted_position = false;
- if (PredictMarkerPosition(tracks_, tracked_marker)) {
+ if (PredictMarkerPosition(tracks_, predict_direction, tracked_marker)) {
LG << "Successfully predicted!";
predicted_position = true;
} else {