/** * @RDE_HEADER@ * Interface-Implementation of NineLiner * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "abstract_multi_point_map_object_impl.h" #include "basic_path_object_impl.h" #include // Interface // Qt #include #include //---------------------------------------------------------------------------- namespace SituationMap { // inherent 'public', to get that implementation // inherent 'public virtual' to get that interface class SITUATIONMAPOBJECTS_EXPORT NineLinerImpl : public BasicPathObjectImpl, public virtual NineLiner { using BaseClass = SituationMap::BasicPathObjectImpl; template friend class GenericObjectFactory; protected: explicit NineLinerImpl(const QString &debugInfo = QString()); virtual ~NineLinerImpl(); public: NineLinerImpl(const NineLinerImpl &other) = delete; NineLinerImpl &operator=(NineLinerImpl &other) = delete; QString identifier() const override; void setIdentifier(const QString &identifier) override; void setNineLinerData(const NineLinerData& data) override { m_data = data; } void setScale(float scale) override; protected: bool updateViewInitialPoint(); bool updateViewTargetPosition(); bool updateViewFriendlies(); bool updateViewFinalAttackHeading(int length); bool updateViewFahSector(QSharedPointer &path, const QString &debugInfo, int length, int angle); bool updateViewImpl() override; bool onMapExtentChanged() override; bool updateViewImplPost() override { BaseClass::updateViewImplPost(); m_data.reset(); m_color.reset(); m_ownScale.reset(); return true; } friend class MapImpl; bool init(MapImpl *mapImpl, const QString &logicalLayerName) override; // internal/admin // logical private: bool setPositions(const PositionCont &) override; //SHOULD NEVER BE CALLED private: // input: SimpleValue m_data; OriginTranslated m_otInitialPoint; OriginTranslated m_otTargetPosition; OriginTranslated m_otFriendliesPosition; int m_fahLength = 1; // display: SimpleValue m_ownScale; SimpleValue m_color; QSharedPointer m_pmInitialPoint; // square QSharedPointer m_pmTargetPosition; // triangle QSharedPointer m_pathFahSectorLow; QSharedPointer m_pathFahSectorHigh; QSharedPointer m_pmFriendlies; // circle LOGGER_T m_logger; ///< Interface of the Logging-Facility }; } // namespace SituationMap