This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
IndoorMap/mapview/model/MapLayers.h
2016-05-24 16:55:19 +02:00

73 lines
2.4 KiB
C++

#ifndef MAPLAYERFLOOR_H
#define MAPLAYERFLOOR_H
#include "MapLayer.h"
#include <Indoor/floorplan/v2/Floorplan.h>
#include "../model/MMFloorObstacleLine.h"
#include "../model/MMFloorObstacleCircle.h"
#include "../model/MMFloorOutlinePolygon.h"
#include "../model/MMFloorBeacon.h"
/*
class MapLayerFloorOutlineAdd : public TypedMapLayer {
private:
Floorplan::Floor& floor;
public:
MapLayerFloorOutlineAdd(MapLayer* parent, Floorplan::Floor& floor) : TypedMapLayer(parent, MapLayerType::FLOOR_GROUND_ADD), floor(floor) {;}
std::string getLayerName() const override {return "add";}
Floorplan::Floor& getFloor() {return floor;}
std::vector<MapModelElement*> getElements() const override {
std::vector<MapModelElement*> vec;
for (Floorplan::FloorOutlinePolygon& p : floor.outline.add) {vec.push_back(new MapViewElementFloorOutlinePolygon(floor, p, MapViewElementFloorOutlinePolygon::Type::ADD));}
return vec;
}
void create(const Floorplan::FloorOutlinePolygon& poly) {
floor.outline.add.push_back(poly);
}
virtual size_t getNumElements() const override {return floor.outline.add.size();}
};
class MapLayerFloorOutlineRemove : public TypedMapLayer {
private:
Floorplan::Floor& floor;
public:
MapLayerFloorOutlineRemove(MapLayer* parent, Floorplan::Floor& floor) : TypedMapLayer(parent, MapLayerType::FLOOR_GROUND_REMOVE), floor(floor) {;}
std::string getLayerName() const override {return "remove";}
Floorplan::Floor& getFloor() {return floor;}
std::vector<MapModelElement*> getElements() const override {
std::vector<MapModelElement*> vec;
for (Floorplan::FloorOutlinePolygon& p : floor.outline.remove) {vec.push_back(new MapViewElementFloorOutlinePolygon(floor, p, MapViewElementFloorOutlinePolygon::Type::REMOVE));}
return vec;
}
void create(const Floorplan::FloorOutlinePolygon& poly) {
floor.outline.remove.push_back(poly);
}
virtual size_t getNumElements() const override {return floor.outline.remove.size();}
};
class MapLayerFloorOutlinePolygon : public TypedMapLayer {
private:
Floorplan::Floor& floor;
public:
MapLayerFloorOutlinePolygon(MapLayer* parent, Floorplan::Floor& floor) : TypedMapLayer(parent, MapLayerType::FLOOR_GROUND), floor(floor) {
new MapLayerFloorOutlineAdd(this, floor);
new MapLayerFloorOutlineRemove(this, floor);
}
std::string getLayerName() const override {return "ground";}
Floorplan::Floor& getFloor() {return floor;}
};
*/
#endif // MAPLAYERFLOOR_H