added a ruler for measuring

added support for meta-data editing
improved element selection
changed zooming
fixed some issues with layer events
fixed issue with 3D outline
fixed loading issue for old maps
some interface changes
This commit is contained in:
2017-03-10 13:44:17 +01:00
parent 2297a76c53
commit f40fc9a823
32 changed files with 809 additions and 198 deletions

View File

@@ -3,37 +3,38 @@
#include "MapLayer.h"
#include "MMFloorOutlinePolygon.h"
#include "../3D/MV3DElementFloorOutline.h"
#include "MMFloorOutlinePolygonCombined.h"
#include "../3D/MV3DElementFloorOutline.h"
#include <Indoor/floorplan/v2/Floorplan.h>
/**
* layer containing all elements describing a floor's outline
*/
class MMFloorOutline : public MapLayer, public MapModelElement {
class MMFloorOutline : public MapLayer {
private:
/** the underlying model */
Floorplan::Floor* floor;
MV3DElementFloorOutline mv3d;
public:
/** ctor with the underlying model */
MMFloorOutline(MapLayer* parent, Floorplan::Floor* floor) :
MapLayer(parent, MapLayerType::FLOOR_GROUND), MapModelElement(parent), floor(floor), mv3d(floor, &floor->outline) {
MapLayer(parent, MapLayerType::FLOOR_GROUND), floor(floor) {
// the outline
// each polygon that is part of the outline
for (Floorplan::FloorOutlinePolygon* poly : floor->outline) {
elements.push_back(new MMFloorOutlinePolygon(this, floor, poly));
addElement(new MMFloorOutlinePolygon(this, floor, poly));
}
}
// for 3D, alle polygons [add/remove] are combined into one renderable polygons
addElement(new MMFloorOutlinePolygonCombined(this, floor));
MV3DElement* getMV3D() const override {return (MV3DElement*) &mv3d;}
}
/** get the corresponding floor from the underlying model */
@@ -46,7 +47,7 @@ public:
floor->outline.push_back(poly);
// add to myself as element
elements.push_back(new MMFloorOutlinePolygon(this, floor, poly));
addElement(new MMFloorOutlinePolygon(this, floor, poly));
}