/** * @RDE_HEADER@ * Interface-Implementation of TerrainProfile * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include // Interface #include "map_impl.h" #include "Rubberbands/rubberband_multi_point_feature.h" #include // Qt #include #include //---------------------------------------------------------------------------- namespace SituationMap { class TerrainProfileImpl : public QObject, public virtual TerrainProfile { Q_OBJECT using BaseClass = TerrainProfile; public: explicit TerrainProfileImpl(SituationMap::MapImpl *mapImpl); virtual ~TerrainProfileImpl(); TerrainProfileImpl(const TerrainProfileImpl &other) = delete; TerrainProfileImpl &operator=(TerrainProfileImpl &other) = delete; bool isReady(); void setFinishedCallback(const std::function< bool(long id, const QVector> &)> &finishedCallback) override; void setTerrainProfileDialog(long id, QPointer &terrainProfileDialog) override; bool create() override; long create(const TerrainProfileParameter &terrainProfileParameter) override; void remove(long terrainProfileId = -1) override; private Q_SLOTS: void onRbAbort(RB::RubberbandBase *rbnd); void onRb2DApply(RB::RubberbandBase *rbnd); void onLocationsToElevationsCompleted(long id); private: void init(); RB::RubberbandMultiPointFeature *createRubberband2D(); RB::RubberbandMultiPointFeature *createRubberband3D(); LOGGER_T m_logger; ///< Interface of the Logging-Facility class Private; /** * The private d->pointer to not break BC when changing internals of this class */ Private *d = nullptr; }; // TerrainProfileImpl } // namespace SituationMap