- NGL_ADD_LIBRARY2: 87 CMakeLists.txt konvertiert für Export-Header Generierung - 44 Export-Header Include-Pfade korrigiert (_export.h) - 81 DDS-Stub-Header generiert (*_dtc.h, *_fts.h, *_dts.h, *_ftc.h) - INGLLogger: Duplikat gelöscht, m_logger Member entfernt, variadische Makros - Q_FUNC_INFO Redefinition behoben (Qt6 definiert bereits) - FATAL_LOG Makro hinzugefügt - InfrastructureManagement DDS-Stubs (ism.hpp, ism_enums.hpp, ism_ftc.h) - FilterManagement DDS-Stubs (flt_ftc.h, flt_dts.h) - AreaEffectSimulation DDS-Stubs (aes.hpp, aes_enums.hpp) - SymbolAppearance Klasse vollständig definiert mit content() Methode - BuildingComponentFilter Klasse definiert mit Copy-Konstruktor - Ftc Factory: nullptr Return (abstract class) - AesFilter Klasse in aes.hpp hinzugefügt - Dtc Klasse in ppm.hpp mit participantChanged Signal - AesType Enum: alle 15 At* Werte definiert - AesEffectState_def: EsReceived hinzugefügt - DataModification Enum: eAdded/eModified/eRemoved - function_reply_object.h → core_types.h Include-Pfad (72 Dateien) - Enum-Class-Streaming Template-Operator in INGLLogger.h - ism_mounting_point.h: QImage → QtGui/QImage, QGuiApplication/QScreen - ism_data_plugin_interface.h: QSet Include, Include-Reihenfolge - QRegExp → QRegularExpression in tpm_js_parser.cpp - .underlying() Aufrufe zu direktem Enum-Vergleich korrigiert - Include-Pfade: aes.hpp in symbol_appearance_settings_impl.h und aes_display_filter_impl.h Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
130 lines
2.9 KiB
C++
Executable File
130 lines
2.9 KiB
C++
Executable File
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "logger.h"
|
|
#include "ltselevation_export.h"
|
|
#include <LtsUtilsCore/qpoint3d.h>
|
|
|
|
|
|
|
|
#include <QObject>
|
|
#include <QPointer>
|
|
#include <QStringList>
|
|
#include <QCoreApplication>
|
|
|
|
#include <memory>
|
|
#include <iosfwd>
|
|
|
|
|
|
|
|
namespace LtsSession
|
|
{
|
|
class LtsSessionDataDds;
|
|
}
|
|
|
|
namespace ExerciseManagement
|
|
{
|
|
namespace Interface
|
|
{
|
|
class Dtc;
|
|
}
|
|
}
|
|
|
|
namespace AssetManagement
|
|
{
|
|
namespace Interface
|
|
{
|
|
class Dtc;
|
|
}
|
|
}
|
|
|
|
|
|
namespace LtsElevation
|
|
{
|
|
|
|
enum class LineOfSight { LOS_UNDEFINED,
|
|
LOS_ERROR,
|
|
LOS_VISIBLE,
|
|
LOS_INVISIBLE };
|
|
|
|
class LtsElevationManager;
|
|
using LTS_ELEVATION_MANAGER_TYPE = QPointer<LtsElevationManager>;
|
|
|
|
|
|
|
|
|
|
class LTSELEVATION_EXPORT LtsElevationManager : public QObject
|
|
{
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
static LTS_ELEVATION_MANAGER_TYPE createInstance(int exerciseId,
|
|
const std::shared_ptr<ExerciseManagement::Interface::Dtc> &exmDtc = {},
|
|
const std::shared_ptr<AssetManagement::Interface::Dtc> &asmDtc = {});
|
|
|
|
static LTS_ELEVATION_MANAGER_TYPE getInstance(int exerciseId);
|
|
|
|
|
|
static LTS_ELEVATION_MANAGER_TYPE createInstanceForTrainingAreaId(int trainingAreaId,
|
|
const std::shared_ptr<AssetManagement::Interface::Dtc> &asmDtc = nullptr);
|
|
|
|
|
|
|
|
|
|
static void cleanupAll();
|
|
virtual ~LtsElevationManager();
|
|
|
|
|
|
bool waitForInitialization();
|
|
bool isValid() const;
|
|
|
|
double elevation(double lon_rad, double lat_rad, double defaultValue = std::numeric_limits<double>::min(), bool *bIsCovered = nullptr) 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:
|
|
explicit LtsElevationManager();
|
|
|
|
|
|
|
|
void initDDS(const std::shared_ptr<ExerciseManagement::Interface::Dtc> &exmDtc,
|
|
const std::shared_ptr<AssetManagement::Interface::Dtc> &asmDtc);
|
|
bool init(const QStringList &filePaths_rough_to_fine);
|
|
static int exerciseIdToTrainingAreaId(int exerciseId, const std::shared_ptr<ExerciseManagement::Interface::Dtc> &exmDtc);
|
|
|
|
|
|
QStringList getFilenamesForExercise(int exerciseId);
|
|
QStringList getFilenamesForTrainingArea(int trainingAreaId);
|
|
|
|
|
|
|
|
|
|
static LTS_ELEVATION_MANAGER_TYPE createInstanceUnitTest(int id, const QStringList &filePaths_rough_to_fine);
|
|
|
|
private:
|
|
|
|
|
|
class Private;
|
|
|
|
Private *d;
|
|
LOGGER_T m_logger;
|
|
};
|
|
|
|
LTSELEVATION_EXPORT const QString toString(const LtsElevation::LineOfSight &value);
|
|
|
|
LTSELEVATION_EXPORT std::ostream &operator<< (std::ostream &stream,
|
|
const LtsElevation::LineOfSight value);
|
|
|
|
|
|
|
|
}
|