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/intern
diff options
context:
space:
mode:
authorPablo Dobarro <pablodp606@gmail.com>2019-07-25 15:25:22 +0300
committerPablo Dobarro <pablodp606@gmail.com>2019-07-25 15:25:22 +0300
commit84516c806bae5f3fb82f6ccc1123bd1428298c2e (patch)
tree3451f6d874a70b120d8f47eb78471536b2008f65 /intern
parent2c6e50c6c0c77d42b59f6fb1f0b8bb2ae800534c (diff)
parentbfe580642f46539ba85341fa8db451c52afd0cb4 (diff)
Merge branch 'master' into sculpt-mode-features
Diffstat (limited to 'intern')
-rw-r--r--intern/libmv/intern/reconstruction.cc23
1 files changed, 14 insertions, 9 deletions
diff --git a/intern/libmv/intern/reconstruction.cc b/intern/libmv/intern/reconstruction.cc
index e271d663c4a..64f00b19df0 100644
--- a/intern/libmv/intern/reconstruction.cc
+++ b/intern/libmv/intern/reconstruction.cc
@@ -264,15 +264,15 @@ libmv_Reconstruction *libmv_solveReconstruction(
update_callback.invoke(0, "Selecting keyframes");
- selectTwoKeyframesBasedOnGRICAndVariance(tracks,
+ if (selectTwoKeyframesBasedOnGRICAndVariance(tracks,
normalized_tracks,
*camera_intrinsics,
keyframe1,
- keyframe2);
-
- /* so keyframes in the interface would be updated */
- libmv_reconstruction_options->keyframe1 = keyframe1;
- libmv_reconstruction_options->keyframe2 = keyframe2;
+ keyframe2)) {
+ /* so keyframes in the interface would be updated */
+ libmv_reconstruction_options->keyframe1 = keyframe1;
+ libmv_reconstruction_options->keyframe2 = keyframe2;
+ }
}
/* Actual reconstruction. */
@@ -283,7 +283,7 @@ libmv_Reconstruction *libmv_solveReconstruction(
LG << "number of markers for init: " << keyframe_markers.size();
- if (keyframe_markers.size() < 8) {
+ if (keyframe_markers.size() < 16) {
LG << "No enough markers to initialize from";
libmv_reconstruction->is_valid = false;
return libmv_reconstruction;
@@ -291,13 +291,18 @@ libmv_Reconstruction *libmv_solveReconstruction(
update_callback.invoke(0, "Initial reconstruction");
- EuclideanReconstructTwoFrames(keyframe_markers, &reconstruction);
+ if (!EuclideanReconstructTwoFrames(keyframe_markers, &reconstruction)) {
+ LG << "Failed to initialize reconstruction";
+ libmv_reconstruction->is_valid = false;
+ return libmv_reconstruction;
+ }
+
EuclideanBundle(normalized_tracks, &reconstruction);
EuclideanCompleteReconstruction(normalized_tracks,
&reconstruction,
&update_callback);
- /* Refinement/ */
+ /* Refinement. */
if (libmv_reconstruction_options->refine_intrinsics) {
libmv_solveRefineIntrinsics(
tracks,