[Bf-blender-cvs] [618c4b9daf2] master: Refactor Libmv C-API motion model conversion
Sergey Sharybin
noreply at git.blender.org
Mon Mar 15 15:55:25 CET 2021
Commit: 618c4b9daf216eb5d287fc7725d9154e21378219
Author: Sergey Sharybin
Date: Mon Mar 15 15:22:03 2021 +0100
Branches: master
https://developer.blender.org/rB618c4b9daf216eb5d287fc7725d9154e21378219
Refactor Libmv C-API motion model conversion
Mode to an own utility function and guard missing enumerator values
with a LOG(FATAL).
===================================================================
M intern/libmv/intern/track_region.cc
===================================================================
diff --git a/intern/libmv/intern/track_region.cc b/intern/libmv/intern/track_region.cc
index af88afd7ac2..334e331c7a8 100644
--- a/intern/libmv/intern/track_region.cc
+++ b/intern/libmv/intern/track_region.cc
@@ -21,6 +21,7 @@
#include "intern/image.h"
#include "intern/utildefines.h"
#include "libmv/image/image.h"
+#include "libmv/logging/logging.h"
#include "libmv/tracking/track_region.h"
/* define this to generate PNG images with content of search areas
@@ -36,23 +37,35 @@ using libmv::TrackRegion;
using libmv::TrackRegionOptions;
using libmv::TrackRegionResult;
-void libmv_configureTrackRegionOptions(
- const libmv_TrackRegionOptions& options,
- TrackRegionOptions* track_region_options) {
- switch (options.motion_model) {
+namespace {
+
+TrackRegionOptions::Mode convertMotionModelToMode(int motion_model) {
+ switch (motion_model) {
#define LIBMV_CONVERT(the_model) \
- case TrackRegionOptions::the_model: \
- track_region_options->mode = TrackRegionOptions::the_model; \
- break;
+ case TrackRegionOptions::the_model: return TrackRegionOptions::the_model;
+
LIBMV_CONVERT(TRANSLATION)
LIBMV_CONVERT(TRANSLATION_ROTATION)
LIBMV_CONVERT(TRANSLATION_SCALE)
LIBMV_CONVERT(TRANSLATION_ROTATION_SCALE)
LIBMV_CONVERT(AFFINE)
LIBMV_CONVERT(HOMOGRAPHY)
+
#undef LIBMV_CONVERT
}
+ LOG(FATAL) << "Unhandled motion model " << motion_model
+ << ", should never happen.";
+
+ return TrackRegionOptions::TRANSLATION;
+}
+
+} // namespace
+
+void libmv_configureTrackRegionOptions(
+ const libmv_TrackRegionOptions& options,
+ TrackRegionOptions* track_region_options) {
+ track_region_options->mode = convertMotionModelToMode(options.motion_model);
track_region_options->minimum_correlation = options.minimum_correlation;
track_region_options->max_iterations = options.num_iterations;
track_region_options->sigma = options.sigma;
More information about the Bf-blender-cvs
mailing list