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
60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
#ifndef MMFLOOROUTLINE_H
|
|
#define MMFLOOROUTLINE_H
|
|
|
|
#include "MapLayer.h"
|
|
#include "MMFloorOutlinePolygon.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 {
|
|
|
|
private:
|
|
|
|
/** the underlying model */
|
|
Floorplan::Floor* floor;
|
|
|
|
|
|
public:
|
|
|
|
/** ctor with the underlying model */
|
|
MMFloorOutline(MapLayer* parent, Floorplan::Floor* floor) :
|
|
MapLayer(parent, MapLayerType::FLOOR_GROUND), floor(floor) {
|
|
|
|
// each polygon that is part of the outline
|
|
for (Floorplan::FloorOutlinePolygon* poly : floor->outline) {
|
|
addElement(new MMFloorOutlinePolygon(this, floor, poly));
|
|
}
|
|
|
|
// for 3D, alle polygons [add/remove] are combined into one renderable polygons
|
|
addElement(new MMFloorOutlinePolygonCombined(this, floor));
|
|
|
|
}
|
|
|
|
|
|
/** get the corresponding floor from the underlying model */
|
|
Floorplan::Floor* getFloor() {return floor;}
|
|
|
|
//TODO: check
|
|
void create(Floorplan::FloorOutlinePolygon* poly) {
|
|
|
|
// add to underlying model
|
|
floor->outline.push_back(poly);
|
|
|
|
// add to myself as element
|
|
addElement(new MMFloorOutlinePolygon(this, floor, poly));
|
|
|
|
}
|
|
|
|
|
|
std::string getLayerName() const override {return "outline";}
|
|
|
|
};
|
|
|
|
#endif // MMFLOOROUTLINE_H
|