85 lines
2.4 KiB
C++
Executable File
85 lines
2.4 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Manage and combine several ElevationMap
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "elevation_map_helper.h"
|
|
#include <ElevationMap/situationmapelevationmap_export.h>
|
|
#include <Common/situation_map_logging.h>
|
|
|
|
#include <QObject>
|
|
|
|
namespace SituationMap
|
|
{
|
|
|
|
// forward:
|
|
class ElevationMap;
|
|
|
|
//------------------------------------------------------------------------------------------------------------
|
|
// ElevationMapManager
|
|
//------------------------------------------------------------------------------------------------------------
|
|
class SITUATIONMAPELEVATIONMAP_EXPORT ElevationMapManager final : public QObject
|
|
{
|
|
using BaseClass = QObject;
|
|
|
|
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;
|
|
|
|
// united extent of seperate files:
|
|
QRectF simpleUnitedExtent() const;
|
|
|
|
bool contains(const QPointF &point) const;
|
|
|
|
// Line of Sight Profile: berücksichtigt Erdkrümmung und WGS84 Erdellipsoid
|
|
void LOSProfile(const QPointF &start, const QPointF &end, LOSVector &losProfile);
|
|
|
|
/*! \name Line of Sight */
|
|
//@{
|
|
enum class LineOfSight { LOS_UNDEFINED,
|
|
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;
|
|
LOGGER_T m_logger; ///< Interface of the Logging-Facility
|
|
}; // ElevationMapManager
|
|
|
|
|
|
} // SituationMap
|
|
|
|
|