#ifndef MV2DELEMENTFLOOROUTLINEPOLYGON_H #define MV2DELEMENTFLOOROUTLINEPOLYGON_H #include "MV2DElement.h" #include "HasMoveableNodes.h" #include class MV2DElementFloorOutlinePolygon : public MV2DElement, public HasMoveableNodes { private: Floorplan::FloorOutlinePolygon& fo; public: /** ctor */ MV2DElementFloorOutlinePolygon(Floorplan::FloorOutlinePolygon& fo); /** get the element's 3D bounding box */ BBox2 getBoundingBox() const override; /** get the element's minimal distance (nearest whatsoever) to the given point */ ClickDist getMinDistanceXY(const Point2 p) const override; virtual void onFocus() override; virtual void onUnfocus() override; void paint(Painter& p) override; /** get a list of all nodes that are selectable / moveable */ virtual std::vector getMoveableNodes() const override; /** the given node was moved */ void onNodeMove(MapView2D* v, const int userIdx, const Point2 newPos) override; void onNodeMoved(MapView2D* v, const int userIdx, const Point2 newPos) override; virtual bool keyPressEvent(MapView2D* v, QKeyEvent *e) override; }; #endif // MV2DELEMENTFLOOROUTLINEPOLYGON_H