/* * © 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 MAPELEMENTHELPER_H #define MAPELEMENTHELPER_H #include #include #include #include #include #include "ClickDist.h" /** configuration */ namespace CFG { const float MOVE_SNAP_SIZE_M = 0.1f; // in meter (= map-space) const int SEL_THRESHOLD_SIZE_PX = 15; // in screen-pixels (-> should depend on the current zoom) const QColor FOCUS_COLOR = Qt::black; const QColor UNFOCUS_COLOR = Qt::gray; const QColor SEL_COLOR = Qt::blue; } /** * contains some common helper-methods */ class MapElementHelper { public: /** * get the minimal distance of dst to the line denoted by (p1, p2). * this will generate line l perpendicular to (p1, p2) * move l into dst * and calculate the cut-point between l and (p1, p2) */ static ClickDist getLineDistanceXY(Point2 p1, Point2 p2, Point2 dst); static QPen getPen(Floorplan::Material mat, Floorplan::ObstacleType type, bool focus, float thickness_px); }; #endif // MAPELEMENTHELPER_H