/* * © Copyright 2014 – Urheberrechtshinweis * Alle Rechte vorbehalten / All Rights Reserved * * Programmcode ist urheberrechtlich geschuetzt. * Das Urheberrecht liegt, soweit nicht ausdruecklich anders gekennzeichnet, bei Frank Ebner. * Keine Verwendung ohne explizite Genehmigung. * (vgl. § 106 ff UrhG / § 97 UrhG) */ #ifndef MV2DELEMENTSTAIR_H #define MV2DELEMENTSTAIR_H #include "MV2DElement.h" #include "HasMoveableNodes.h" #include class MV2DElementStair : public MV2DElement, public HasMoveableNodes { private: bool sel = false; Floorplan::IndoorMap* map; Floorplan::Floor* floor; Floorplan::Stair* stair; public: /** ctor with the stair to render/edit */ MV2DElementStair(Floorplan::IndoorMap* map, Floorplan::Floor* floor, Floorplan::Stair* stair); /** 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; int getSelPart() const; int getSelNode() const; /** repaint me */ void paint(Painter& p) override; virtual bool keyPressEvent(MapView2D* v, QKeyEvent *e) override; virtual void onFocus() override; virtual void onUnfocus() override; virtual std::vector getMoveableNodes() const override; void onNodeMove(MapView2D* v, const int userIdx, const Point2 newPos) override; void onNodeMoved(MapView2D* v, const int userIdx, const Point2 newPos) override; void onNodeSelect(MapView2D* v, const int userIdx) override; }; #endif // MV2DELEMENTSTAIR_H