Skip to content

Commit fa44c99

Browse files
authored
Merge pull request #1815 from alicevision/dev/betterMerge
sfmMerge can merge Intrinsics
2 parents d9d6a44 + 96b56af commit fa44c99

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/software/utils/main_sfmMerge.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,21 @@ bool simpleMerge(sfmData::SfMData & sfmData1, const sfmData::SfMData & sfmData2)
113113
auto& intrinsics2 = sfmData2.getIntrinsics();
114114
const size_t totalSize = intrinsics1.size() + intrinsics2.size();
115115

116-
intrinsics1.insert(intrinsics2.begin(), intrinsics2.end());
117-
if (intrinsics1.size() < totalSize)
116+
//If both sfm share a common intrinsicId
117+
//Make sure there is no ambiguity and the content is the same
118+
for (const auto & [key, intrinsic] : intrinsics1)
118119
{
119-
ALICEVISION_LOG_ERROR("Unhandled error: common intrinsics ID between both SfMData");
120-
return false;
120+
const auto & itIntrinsicOther = intrinsics2.find(key);
121+
if (itIntrinsicOther != intrinsics2.end())
122+
{
123+
const auto & obj1 = *intrinsic;
124+
const auto & obj2 = *(itIntrinsicOther->second);
125+
126+
if (!(obj1 == obj2))
127+
{
128+
ALICEVISION_LOG_ERROR("Unhandled error: common intrinsic ID with different parameters between both SfMData");
129+
}
130+
}
121131
}
122132
}
123133

0 commit comments

Comments
 (0)