/** * @RDE_HEADER@ * Interface-Implementation of Mine * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "abstract_single_point_map_object_impl.h" //#include "abstract_effect_simulation_impl.h" #include // Interface // Qt //---------------------------------------------------------------------------- namespace SituationMap { /** * @brief The MineImpl class displays a mine impact. * * A class instance consists of the following logical elements: * - mainGraphicalObject (GraphicalObjectPictureMarker / Image, 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 MineImpl : public AbstractSinglePointMapObjectImpl, public virtual Mine { using BaseClass = AbstractSinglePointMapObjectImpl; template friend class GenericObjectFactory; protected: explicit MineImpl(const QString &debugInfo = QString()); virtual ~MineImpl(); public: MineImpl(const MineImpl &other) = delete; MineImpl &operator=(MineImpl &other) = delete; QString toString() const override; bool state() const override; void setState(bool state) override; SymbolImage symbolImage() const override; static QImage renderMineSymbol(const QColor &color, int size, bool filled); protected: virtual bool updateViewImpl() override; friend class MapImpl; bool init(MapImpl *mapImpl, const QString &logicalLayerName) override; // internal/admin // logical SimpleValue m_state = false; private: LOGGER_T m_logger; ///< Interface of the Logging-Facility }; } // namespace SituationMap