/** * @RDE_HEADER@ * Interface-Implementation of AreaFire * $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 { // GUEZE_2933 // // #define AREA_FIRE_DRAPED_RENDERER /** * @brief The AreaFireImpl class displays a area of impacts. * * 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 AreaFireImpl : public BasicPathObjectImpl, public virtual AreaFire { using BaseClass = BasicPathObjectImpl; public: explicit AreaFireImpl(const QString &debugInfo = QString()); virtual ~AreaFireImpl(); AreaFireImpl(const AreaFireImpl &other) = delete; AreaFireImpl &operator=(AreaFireImpl &other) = delete; void setUniqueId(const UniqueMapId &uniqueId) override; PositionCont scheduledImpacts() const override; void setScheduledImpacts(const PositionCont &posCont, const QColor &explicitColor = QColor()) override; PositionCont impacts() const override; void setImpacts(const PositionCont &posCont) override; PositionCont impactsAbsoluteHeight() const override; void setImpactsAbsoluteHeight(const PositionCont &posCont) override; PositionCont detonationsAbsolute() const override; bool setDetonationsAbsolute(const PositionCont &detonationsPositions, int detonationRadius) override; PositionCont detonationsDraped() const override; bool setDetonationsDraped(const PositionCont &detonationsPositions, int detonationRadius) override; void setGunToTargetLineSurface(const Point3D &start, const Point3D &end) override; void setGunToTargetTrajectory3D(const PositionCont &gunToTargetPath) override; void setNonLethalArea(const PositionCont &nonLethalArea) override; PositionCont trajectory(int index) const override; bool setTrajectory(int index, const PositionCont &trajectoryPath) override; protected: virtual bool updateViewImpl() override; #ifdef AREA_FIRE_DRAPED_RENDERER virtual bool updateViewImplDetonation3dDraped_RendererApproach(); #else virtual bool updateViewImplDetonation3dDraped_SceneMarkerApproach(); #endif // AREA_FIRE_DRAPED_RENDERER friend class MapImpl; bool init(MapImpl *mapImpl, const QString &logicalLayerName) override; bool onMapExtentChanged() override; // internal/admin // logical class Private; /** * The private d->pointer to not break BC when changing internals of this class */ Private *d = nullptr; private: LOGGER_T m_logger; ///< Interface of the Logging-Facility }; } // namespace SituationMap