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
path: root/extern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-11-10 15:16:40 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-11-10 15:16:40 +0400
commitd30987fd59cbd228fbec151a219c55280fe6e53d (patch)
tree2cb7e47d1230f4c795332c74853b4bbf0f7ef7a8 /extern
parent55d0cb04aa7623ac4daa185fd502f9d381a00900 (diff)
Camera tracking integration: more code cleanup
Diffstat (limited to 'extern')
-rw-r--r--extern/libmv/libmv-capi.cpp33
-rw-r--r--extern/libmv/libmv-capi.h5
2 files changed, 10 insertions, 28 deletions
diff --git a/extern/libmv/libmv-capi.cpp b/extern/libmv/libmv-capi.cpp
index 4d17aa6f538..9d6cfd5d17a 100644
--- a/extern/libmv/libmv-capi.cpp
+++ b/extern/libmv/libmv-capi.cpp
@@ -59,13 +59,6 @@
# define snprintf _snprintf
#endif
-#define DEFAULT_WINDOW_HALFSIZE 5
-
-typedef struct libmv_RegionTracker {
- libmv::EsmRegionTracker *klt_region_tracker;
- libmv::RegionTracker *region_tracker;
-} libmv_RegionTracker;
-
typedef struct libmv_Reconstruction {
libmv::EuclideanReconstruction reconstruction;
@@ -113,22 +106,18 @@ void libmv_setLoggingVerbosity(int verbosity)
/* ************ RegionTracker ************ */
-libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level)
+libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size)
{
libmv::EsmRegionTracker *klt_region_tracker = new libmv::EsmRegionTracker;
- klt_region_tracker->half_window_size = DEFAULT_WINDOW_HALFSIZE;
+ klt_region_tracker->half_window_size = half_window_size;
klt_region_tracker->max_iterations = max_iterations;
klt_region_tracker->min_determinant = 1e-4;
libmv::PyramidRegionTracker *region_tracker =
new libmv::PyramidRegionTracker(klt_region_tracker, pyramid_level);
- libmv_RegionTracker *configured_region_tracker = new libmv_RegionTracker;
- configured_region_tracker->klt_region_tracker = klt_region_tracker;
- configured_region_tracker->region_tracker = region_tracker;
-
- return configured_region_tracker;
+ return (libmv_RegionTracker *)region_tracker;
}
static void floatBufToImage(const float *buf, int width, int height, libmv::FloatImage *image)
@@ -270,18 +259,11 @@ static void saveBytesImage(char *prefix, unsigned char *data, int width, int hei
#endif
int libmv_regionTrackerTrack(libmv_RegionTracker *libmv_tracker, const float *ima1, const float *ima2,
- int width, int height, int half_window_size,
- double x1, double y1, double *x2, double *y2)
+ int width, int height, double x1, double y1, double *x2, double *y2)
{
- libmv::RegionTracker *region_tracker;
- libmv::EsmRegionTracker *klt_region_tracker;
+ libmv::RegionTracker *region_tracker = (libmv::RegionTracker *)libmv_tracker;
libmv::FloatImage old_patch, new_patch;
- klt_region_tracker = libmv_tracker->klt_region_tracker;
- region_tracker = libmv_tracker->region_tracker;
-
- klt_region_tracker->half_window_size = half_window_size;
-
floatBufToImage(ima1, width, height, &old_patch);
floatBufToImage(ima2, width, height, &new_patch);
@@ -304,8 +286,9 @@ int libmv_regionTrackerTrack(libmv_RegionTracker *libmv_tracker, const float *im
void libmv_regionTrackerDestroy(libmv_RegionTracker *libmv_tracker)
{
- delete libmv_tracker->region_tracker;
- delete libmv_tracker;
+ libmv::RegionTracker *region_tracker= (libmv::RegionTracker *)libmv_tracker;
+
+ delete region_tracker;
}
/* ************ Tracks ************ */
diff --git a/extern/libmv/libmv-capi.h b/extern/libmv/libmv-capi.h
index d378afc5ea8..8252a11739b 100644
--- a/extern/libmv/libmv-capi.h
+++ b/extern/libmv/libmv-capi.h
@@ -43,10 +43,9 @@ void libmv_startDebugLogging(void);
void libmv_setLoggingVerbosity(int verbosity);
/* RegionTracker */
-struct libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level);
+struct libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size);
int libmv_regionTrackerTrack(struct libmv_RegionTracker *libmv_tracker, const float *ima1, const float *ima2,
- int width, int height, int half_window_size,
- double x1, double y1, double *x2, double *y2);
+ int width, int height, double x1, double y1, double *x2, double *y2);
void libmv_regionTrackerDestroy(struct libmv_RegionTracker *libmv_tracker);
/* SAD Tracker */