#ifndef MAPELEMENTOBSTACLE_H #define MAPELEMENTOBSTACLE_H #include "MapModelElement.h" #include "../elements/MapViewElementHelper.h" #include "IHasMaterial.h" #include "IHasObstacleType.h" #include "../elements/MV2DElementFloorObstacleLine.h" #include "../3D/MV3DElementFloorObstacleWall.h" #include class MMFloorObstacleLine : public MapModelElement, public IHasMaterial, public IHasObstacleType { public: Floorplan::Floor* mf; Floorplan::FloorObstacleLine* fo; MV2DElementFloorObstacleLine mv2d; MV3DElementFloorObstacleWall mv3d; public: MMFloorObstacleLine(MapLayer* parent, Floorplan::Floor* mf, Floorplan::FloorObstacleLine* fo) : MapModelElement(parent), mf(mf), fo(fo), mv2d(fo), mv3d(mf,fo) { } void setMaterial(const Floorplan::Material m) override {fo->material = m;} Floorplan::Material getMaterial() const override {return fo->material;} void setObstacleType(const Floorplan::ObstacleType t) override {fo->type = t;} Floorplan::ObstacleType getObatcleType() const override {return fo->type;} MV2DElement* getMV2D() const override {return (MV2DElement*) &mv2d;} MV3DElement* getMV3D() const override {return (MV3DElement*) &mv3d;} void deleteMe() const override { parent->removeElement(this); mf->obstacles.erase(std::remove(mf->obstacles.begin(), mf->obstacles.end(), fo), mf->obstacles.end()); } }; #endif // MAPELEMENTOBSTACLE_H