/** * @RDE_HEADER@ * Interface-Implementation of FunctionalArea * $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 { // forward: class ParticipantImpl; /** * @brief The FunctionalAreaImpl class displays an functional area (e.g. medical area). * * A class instance consists of the following logical elements: * - mainGraphicalObject (GraphicalObjectPath displaying the main techn. Appearance) * - mainGraphicalObjectText (displaying the text/name) * - tacticalAppearance (displaying the tact. Appearance) */ // inherent 'public', to get that implementation // inherent 'public virtual' to get that interface class SITUATIONMAPOBJECTS_EXPORT FunctionalAreaImpl : public BasicPathObjectImpl, public virtual FunctionalArea { using BaseClass = BasicPathObjectImpl; template friend class GenericObjectFactory; protected: explicit FunctionalAreaImpl(const QString &debugInfo = QString()); virtual ~FunctionalAreaImpl(); public: FunctionalAreaImpl(const FunctionalAreaImpl &other) = delete; FunctionalAreaImpl &operator=(FunctionalAreaImpl &other) = delete; void reRenderSymbol() override; /*! \name Point symbol */ //@{ Point3D pointSymbolOrigin() const override; void setPointSymbolOrigin(const Point3D &pointSymbolOrigin) override; const QString &pointSymbolSidc() const override; void setPointSymbolSidc(const QString &pointSymbolOriginSidc) override; //@} protected: bool updateViewImpl() override; bool updateViewImplPointSymbolData(); friend class MapImpl; bool init(MapImpl *mapImpl, const QString &logicalLayerName) override; // internal/admin // logical private: // logical struct PointSymbolData { OriginTranslated origin; SymbolData symbolData; }; PointSymbolData m_pointSymbolData; ParticipantImpl *m_pointSymbol = nullptr; LOGGER_T m_logger; ///< Interface of the Logging-Facility }; } // namespace SituationMap