/** * @RDE_HEADER@ * Interface-Implementation of Polyline * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "abstract_multi_point_map_object_impl.h" #include "basic_path_object_impl.h" #include // Interface // Qt #include //---------------------------------------------------------------------------- namespace SituationMap { /** * @brief The PolylineImpl class displays a polyline. * * A class instance consists of the following logical elements: * - mainGraphicalObject (GraphicalObjectPath displaying the line) */ // inherent 'public', to get that implementation // inherent 'public virtual' to get that interface class SITUATIONMAPOBJECTS_EXPORT PolylineImpl : public BasicPathObjectImpl, public virtual Polyline { using BaseClass = BasicPathObjectImpl; template friend class GenericObjectFactory; protected: explicit PolylineImpl(const QString &debugInfo = QString()); virtual ~PolylineImpl(); public: PolylineImpl(const PolylineImpl &other) = delete; PolylineImpl &operator=(PolylineImpl &other) = delete; // void setScale(float) override {} /*! \name ArrowHeads */ //@{ bool arrowHeadStart() const override; void setArrowHeadStart(bool enable) override; bool arrowHeadEnd() const override; void setArrowHeadEnd(bool enable) override; //@} QString textOnSegment(uint segment) const override; void setTextOnSegment(uint segment, const QString &segmentText) override; void clearTextOnSegment(uint segment) override; protected: virtual bool updateViewImpl() override; friend class MapImpl; bool init(MapImpl *mapImpl, const QString &logicalLayerName) override; // internal/admin // logical private: LOGGER_T m_logger; ///< Interface of the Logging-Facility }; } // namespace SituationMap