added new helper methods to work with ground-truth
made some assertions optional [i know what i am doing!]
This commit is contained in:
@@ -40,6 +40,31 @@ public:
|
||||
return res;
|
||||
}
|
||||
|
||||
/** get all ground-truth points within the map as hash-map: id->pos */
|
||||
static std::unordered_map<int, Point3> getGroundTruthPoints(const Floorplan::IndoorMap* map) {
|
||||
std::unordered_map<int, Point3> res;
|
||||
for (const Floorplan::Floor* f : map->floors) {
|
||||
for (const Floorplan::GroundTruthPoint* gtp : f->gtpoints) {
|
||||
res[gtp->id] = gtp->getPosition(*f);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/** get all ground-truth points, identified by the given indices */
|
||||
static std::vector<Point3> getGroundTruth(const Floorplan::IndoorMap* map, const std::vector<int> indices) {
|
||||
|
||||
// get a map id->pos for all ground-truth-points within the map
|
||||
const std::unordered_map<int, Point3> src = getGroundTruthPoints(map);
|
||||
std::vector<Point3> res;
|
||||
for (const int idx : indices) {
|
||||
const auto& it = src.find(idx);
|
||||
if (it == src.end()) {throw Exception("map does not contain a ground-truth-point with ID " + std::to_string(idx));}
|
||||
res.push_back(it->second);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
/** align all floorplan values to the given grid size. needed for the grid factory */
|
||||
|
||||
Reference in New Issue
Block a user