/** * STUB-Header für ElevationMapManager - Qt6 Migration * Diese Datei ermöglicht das Kompilieren von LtsElevation ohne das vollständige ElevationMap-Modul */ #pragma once #include #include #include #include #include // QPoint3D ist bereits in LtsUtilsCore/qpoint3d.h definiert // #include "LtsUtils/qpoint3d.h" // Wird von lts_elevation_manager.h included namespace LtsUtils { // Forward-Referenz, Definition erfolgt in qpoint3d.h struct QPoint3D; } // namespace LtsUtils using LOSVector = std::vector; namespace SituationMap { // The NGL build uses -fvisibility=hidden; LtsElevation links this class // across the shared library boundary, so it needs default visibility. class __attribute__((visibility("default"))) ElevationMapManager final : public QObject { Q_OBJECT public: ElevationMapManager(); ElevationMapManager(const ElevationMapManager &) = delete; ElevationMapManager &operator = (const ElevationMapManager &) = delete; ~ElevationMapManager(); int init(const QStringList &filePaths_rough_to_fine); void cleanupCurrentContent(); bool waitForInitialization(); bool isValid() const; double elevation(double lon_rad, double lat_rad, bool *bIsCovered = nullptr) const; double elevation(double lon_rad, double lat_rad, double defaultValue, bool *bIsCovered = nullptr) const; QRectF simpleUnitedExtent() const; bool contains(const QPointF &point) const; void LOSProfile(const QPointF &start, const QPointF &end, LOSVector &losProfile); enum class LineOfSight { LOS_UNDEFINED = 0, LOS_ERROR, LOS_VISIBLE, LOS_INVISIBLE }; LineOfSight lineOfSightCalculation(const LOSVector &losProfile, double centerHat, double objHat) const; LineOfSight lineOfSightCalculation(const LtsUtils::QPoint3D &startPointGeo_absZ, const LtsUtils::QPoint3D &endPointGeo_absZ); LineOfSight lineOfSightCalculation(const QPointF &startPointGeo, double startHat, const QPointF &endPointGeo, double endHat); protected: class Private; Private *d; }; // ElevationMapManager } // namespace SituationMap