58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
#ifndef MMREGISTRATION_H
|
|
#define MMREGISTRATION_H
|
|
|
|
|
|
#include "MMRegistrationPoint.h"
|
|
|
|
#include <Indoor/floorplan/v2/Floorplan.h>
|
|
|
|
/**
|
|
* layer that contains registriation points: earth <-> map
|
|
*/
|
|
class MMRegistration : public MapLayer {
|
|
|
|
private:
|
|
|
|
Floorplan::IndoorMap* map;
|
|
|
|
public:
|
|
|
|
/** ctor */
|
|
MMRegistration(MapLayer* parent, Floorplan::IndoorMap* map) : MapLayer(parent, MapLayerType::REGISTRATION), map(map) {
|
|
|
|
// the registered points
|
|
for (Floorplan::EarthPosMapPos* reg : map->earthReg.correspondences) {
|
|
addElement(new MMRegistrationPoint(this, map, reg));
|
|
}
|
|
|
|
}
|
|
|
|
bool isVisible() const override {
|
|
return map->earthReg.enabled;
|
|
}
|
|
|
|
void setVisible(const bool visible) override {
|
|
map->earthReg.enabled = visible;
|
|
onVisibilityChanged(visible);
|
|
}
|
|
|
|
//TODO: check
|
|
MMRegistrationPoint* create(Floorplan::EarthPosMapPos* reg) {
|
|
|
|
// add to underlying model
|
|
map->earthReg.correspondences.push_back(reg);
|
|
|
|
// add to myself as element
|
|
MMRegistrationPoint* mm = new MMRegistrationPoint(this, map, reg);
|
|
addElement(mm);
|
|
return mm;
|
|
|
|
}
|
|
|
|
virtual std::string getLayerName() const override {return "registration";}
|
|
|
|
};
|
|
|
|
|
|
#endif // MMREGISTRATION_H
|