Skip to content

Commit 1224c07

Browse files
Change in API
1 parent f772ad1 commit 1224c07

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

cpp/map_closures/MapClosures.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ void MapClosures::MatchAndAdd(const int id, const std::vector<Eigen::Vector3d> &
104104
srrg_hbst::SplittingStrategy::SplitEven);
105105
}
106106

107-
ClosureCandidate MapClosures::GetBestClosure(const int query_id) {
107+
ClosureCandidate MapClosures::GetBestClosure(const int query_id,
108+
const std::vector<Eigen::Vector3d> &local_map) {
109+
MatchAndAdd(query_id, local_map);
108110
auto compare_closure_candidates = [](ClosureCandidate a,
109111
const ClosureCandidate &b) -> ClosureCandidate {
110112
return a.number_of_inliers > b.number_of_inliers ? a : b;
@@ -122,7 +124,9 @@ ClosureCandidate MapClosures::GetBestClosure(const int query_id) {
122124
return closure;
123125
}
124126

125-
std::vector<ClosureCandidate> MapClosures::GetTopKClosures(const int query_id, const int k) {
127+
std::vector<ClosureCandidate> MapClosures::GetTopKClosures(
128+
const int query_id, const std::vector<Eigen::Vector3d> &local_map, const int k) {
129+
MatchAndAdd(query_id, local_map);
126130
auto compare_closure_candidates = [](const ClosureCandidate &a, const ClosureCandidate &b) {
127131
return a.number_of_inliers >= b.number_of_inliers;
128132
};

cpp/map_closures/MapClosures.hpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,23 @@ class MapClosures {
6060
explicit MapClosures(const Config &config);
6161
~MapClosures() = default;
6262

63-
void MatchAndAdd(const int id, const std::vector<Eigen::Vector3d> &local_map);
64-
ClosureCandidate GetBestClosure(const int query_id);
65-
std::vector<ClosureCandidate> GetTopKClosures(const int query_id, const int k);
66-
std::vector<ClosureCandidate> GetClosures(const int query_id) {
67-
return GetTopKClosures(query_id, -1);
63+
ClosureCandidate GetBestClosure(const int query_id,
64+
const std::vector<Eigen::Vector3d> &local_map);
65+
std::vector<ClosureCandidate> GetTopKClosures(const int query_id,
66+
const std::vector<Eigen::Vector3d> &local_map,
67+
const int k);
68+
std::vector<ClosureCandidate> GetClosures(const int query_id,
69+
const std::vector<Eigen::Vector3d> &local_map) {
70+
return GetTopKClosures(query_id, local_map, -1);
6871
}
6972
const DensityMap &getDensityMapFromId(const int &map_id) const {
7073
return density_maps_.at(map_id);
7174
}
7275

73-
private:
76+
protected:
7477
ClosureCandidate ValidateClosure(const int reference_id, const int query_id) const;
78+
void MatchAndAdd(const int id, const std::vector<Eigen::Vector3d> &local_map);
7579

76-
private:
7780
Config config_;
7881
Tree::MatchVectorMap descriptor_matches_;
7982
std::unordered_map<int, DensityMap> density_maps_;

0 commit comments

Comments
 (0)