/** * @RDE_HEADER@ * Interface-Implementation of ChemicalAgent * $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 { /** * @brief The ChemicalAgentImpl class can be described by an unlimited number of positions (PositionCont). * For convenience an origin and radius can also be parametrized (inherented from BasicPathObjectImpl) * 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) * - an infinite number indication objects for displaying impacts (inherented from BasicPathObjectImpl). */ // inherent 'public', to get that implementation // inherent 'public virtual' to get that interface class SITUATIONMAPOBJECTS_EXPORT ChemicalAgentImpl : public BasicPathObjectImpl, public virtual ChemicalAgent { using BaseClass = SituationMap::BasicPathObjectImpl; template friend class GenericObjectFactory; protected: explicit ChemicalAgentImpl(const QString &debugInfo = QString()); virtual ~ChemicalAgentImpl(); public: ChemicalAgentImpl(const ChemicalAgentImpl &other) = delete; ChemicalAgentImpl &operator=(ChemicalAgentImpl &other) = delete; Point3D origin() const override; void setOrigin(const Point3D &origin) override; float radius() const override; void setRadius(float radius, unsigned int maxPointCount = 0) override; protected: 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