[Bf-blender-cvs] [5977d05] soc-2016-multiview: intermediate result, ready to move into libmv
Tianwei Shen
noreply at git.blender.org
Wed Jun 8 18:04:02 CEST 2016
Commit: 5977d05b55a590600a4894d80466bb3d0d8c201f
Author: Tianwei Shen
Date: Wed Jun 8 17:31:03 2016 +0800
Branches: soc-2016-multiview
https://developer.blender.org/rB5977d05b55a590600a4894d80466bb3d0d8c201f
intermediate result, ready to move into libmv
===================================================================
M intern/libmv/intern/reconstructionN.cc
M intern/libmv/intern/reconstructionN.h
M source/blender/blenkernel/intern/tracking_correspondence.c
===================================================================
diff --git a/intern/libmv/intern/reconstructionN.cc b/intern/libmv/intern/reconstructionN.cc
index d73362d..6a1fd7e 100644
--- a/intern/libmv/intern/reconstructionN.cc
+++ b/intern/libmv/intern/reconstructionN.cc
@@ -19,7 +19,7 @@
* All rights reserved.
*
* Contributor(s): Blender Foundation,
- * Sergey Sharybin
+ * Tianwei Shen
*
* ***** END GPL LICENSE BLOCK *****
*/
@@ -55,3 +55,14 @@ struct libmv_ReconstructionN {
double error;
bool is_valid;
};
+
+libmv_ReconstructionN** libmv_solveMultiviewReconstruction(
+ const int clip_num,
+ const libmv_TracksN **all_libmv_tracks,
+ const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options,
+ libmv_ReconstructionOptions *libmv_reconstruction_options,
+ reconstruct_progress_update_cb progress_update_callback,
+ void* callback_customdata)
+{
+ return (libmv_ReconstructionN**) NULL;
+}
diff --git a/intern/libmv/intern/reconstructionN.h b/intern/libmv/intern/reconstructionN.h
index 0908e3d..a885ed9 100644
--- a/intern/libmv/intern/reconstructionN.h
+++ b/intern/libmv/intern/reconstructionN.h
@@ -19,13 +19,15 @@
* All rights reserved.
*
* Contributor(s): Blender Foundation,
- * Sergey Sharybin
+ * Tianwei Shen
*
* ***** END GPL LICENSE BLOCK *****
*/
-#ifndef LIBMV_C_API_RECONSTRUCTION_H_
-#define LIBMV_C_API_RECONSTRUCTION_H_
+#ifndef LIBMV_C_API_RECONSTRUCTIONN_H_
+#define LIBMV_C_API_RECONSTRUCTIONN_H_
+
+#include "intern/reconstruction.h"
#ifdef __cplusplus
extern "C" {
@@ -33,8 +35,16 @@ extern "C" {
typedef struct libmv_ReconstructionN libmv_ReconstructionN;
+libmv_ReconstructionN** libmv_solveMultiviewReconstruction(
+ const int clip_num,
+ const struct libmv_TracksN **all_libmv_tracks,
+ const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options,
+ libmv_ReconstructionOptions* libmv_reconstruction_options,
+ reconstruct_progress_update_cb progress_update_callback,
+ void* callback_customdata);
+
#ifdef __cplusplus
}
#endif
-#endif // LIBMV_C_API_RECONSTRUCTION_H_
+#endif // LIBMV_C_API_RECONSTRUCTIONN_H_
diff --git a/source/blender/blenkernel/intern/tracking_correspondence.c b/source/blender/blenkernel/intern/tracking_correspondence.c
index 7f4a462..7f67b2e 100644
--- a/source/blender/blenkernel/intern/tracking_correspondence.c
+++ b/source/blender/blenkernel/intern/tracking_correspondence.c
@@ -314,28 +314,30 @@ void BKE_tracking_multiview_reconstruction_solve(MovieMultiviewReconstructContex
progressdata.stats_message = stats_message;
progressdata.message_size = message_size;
- //reconstructionOptionsFromContext(&reconstruction_options, context);
-
- //if (context->motion_flag & TRACKING_MOTION_MODAL) {
- // context->reconstruction = libmv_solveModal(context->tracks,
- // &context->camera_intrinsics_options,
- // &reconstruction_options,
- // multiview_reconstruct_update_solve_cb, &progressdata);
- //}
- //else {
- // context->reconstruction = libmv_solveReconstruction(context->tracks,
- // &context->camera_intrinsics_options,
- // &reconstruction_options,
- // multiview_reconstruct_update_solve_cb, &progressdata);
-
- // if (context->select_keyframes) {
- // /* store actual keyframes used for reconstruction to update them in the interface later */
- // context->keyframe1 = reconstruction_options.keyframe1;
- // context->keyframe2 = reconstruction_options.keyframe2;
- // }
- //}
+ reconstructionOptionsFromContext(&reconstruction_options, context);
+
+ if (context->motion_flag & TRACKING_MOTION_MODAL) {
+ // TODO(tianwei): leave tracking solve object for now
+ //context->reconstruction = libmv_solveModal(context->tracks,
+ // &context->camera_intrinsics_options,
+ // &reconstruction_options,
+ // multiview_reconstruct_update_solve_cb, &progressdata);
+ }
+ else {
+ context->all_reconstruction = libmv_solveMultiviewReconstruction(context->clip_num,
+ context->all_tracks,
+ context->all_camera_intrinsics_options,
+ &reconstruction_options,
+ multiview_reconstruct_update_solve_cb, &progressdata);
+
+ if (context->select_keyframes) {
+ /* store actual keyframes used for reconstruction to update them in the interface later */
+ context->keyframe1 = reconstruction_options.keyframe1;
+ context->keyframe2 = reconstruction_options.keyframe2;
+ }
+ }
- //error = libmv_reprojectionError(context->reconstruction);
+ //error = libmv_reprojectionError(context->all_reconstruction);
//context->reprojection_error = error;
context->reprojection_error = 0;
More information about the Bf-blender-cvs
mailing list