LtsSession-STUB und GuezNasat-Fixes für BUILD_RTI=OFF
- CMakeLists.txt: Conditional compilation für BUILD_RTI=ON/OFF - lts_session_stub.h/cpp: NEU - STUB-Implementation ohne RTI-Abhängigkeit - lts_session_data_dds_stub.h: Doppeltes Namespace-Closing entfernt - gna_nasat_aircraft.h: participantId zu participantIdValue umbenannt (Konflikt) - gna_dtc.h: Doppeldefinitionen entfernt - gna_nasat_aircraft_participant.h: Doppeldefinitionen entfernt - ppm_enums.hpp: DataModification-Enum im ParticipantManagement-Namespace - ElevationMap-STUB: ArcGIS-Abhängigkeit für BUILD_RTI=OFF gekapselt - Viewer-STUB: Header für BUILD_RTI=OFF Build Build-Validierung: Configure erfolgreich, LtsSession-Fehler behoben
This commit is contained in:
17 files changed
+543
-50
No files matched your search
@@ -47,15 +47,22 @@ ENDIF()
|
|||||||
|
|
||||||
|
|
||||||
# LtsSession (RTI dependencies optional)
|
# LtsSession (RTI dependencies optional)
|
||||||
SET(ltssession_SRCS
|
|
||||||
lts_session.h
|
|
||||||
lts_session.cpp
|
|
||||||
lts_session_lock_handler.h
|
|
||||||
)
|
|
||||||
|
|
||||||
# lts_session_manager and lts_session_lock_handler.cpp only needed when BUILD_RTI=ON
|
|
||||||
IF(BUILD_RTI)
|
IF(BUILD_RTI)
|
||||||
LIST(APPEND ltssession_SRCS lts_session_manager.h lts_session_manager.cpp lts_session_lock_handler.cpp)
|
SET(ltssession_SRCS
|
||||||
|
lts_session.h
|
||||||
|
lts_session.cpp
|
||||||
|
lts_session_lock_handler.h
|
||||||
|
lts_session_manager.h
|
||||||
|
lts_session_manager.cpp
|
||||||
|
lts_session_lock_handler.cpp
|
||||||
|
)
|
||||||
|
ELSE()
|
||||||
|
# Stub version for BUILD_RTI=OFF
|
||||||
|
SET(ltssession_SRCS
|
||||||
|
lts_session_stub.h
|
||||||
|
lts_session_stub.cpp
|
||||||
|
lts_session_lock_handler.h
|
||||||
|
)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
NGL_ADD_LIBRARY2(WS LtsSession SHARED ${ltssession_SRCS})
|
NGL_ADD_LIBRARY2(WS LtsSession SHARED ${ltssession_SRCS})
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ class LtsSessionDataDds : public QObject
|
|||||||
class Fetcher
|
class Fetcher
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Fetcher(LtsSession::LtsSessionDataDds*, const QString&) {}
|
Fetcher(LtsSessionDataDds*, const QString&) {}
|
||||||
|
|
||||||
template <typename T> void getForeignGuiInterface(std::shared_ptr<T>&, const QString&, bool) {}
|
template <typename T> void getForeignGuiInterface(std::shared_ptr<T>&, const QString&, bool) {}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/**
|
||||||
|
* @RDE_HEADER@
|
||||||
|
* Stub implementation for lts_session.cpp when BUILD_RTI=OFF
|
||||||
|
* Provides minimal LtsSession class without RTI Connext DDS dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "lts_session_stub.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
namespace LtsSession
|
||||||
|
{
|
||||||
|
|
||||||
|
LtsSession::LtsSession(QObject* parent)
|
||||||
|
: LtsSessionDataDds(parent)
|
||||||
|
, m_initialized(false)
|
||||||
|
, m_sessionId(QStringLiteral("stub-session"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
LtsSession::~LtsSession() = default;
|
||||||
|
|
||||||
|
bool LtsSession::init(const DdsConnectionParams& /*params*/)
|
||||||
|
{
|
||||||
|
qWarning() << "LtsSession::init() called in STUB mode (BUILD_RTI=OFF) - no DDS functionality available";
|
||||||
|
m_initialized = false;
|
||||||
|
emit initialized(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LtsSession::isInitialized() const
|
||||||
|
{
|
||||||
|
return m_initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<DataPluginBase::Interface> LtsSession::dataPlugin() const
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<GuiPluginBase::Interface> LtsSession::guiPlugin() const
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString LtsSession::sessionId() const
|
||||||
|
{
|
||||||
|
return m_sessionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
int LtsSession::exerciseId() const
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString LtsSession::toString() const
|
||||||
|
{
|
||||||
|
return QStringLiteral("LtsSession(stub, initialized=%1)").arg(m_initialized ? "true" : "false");
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace LtsSession
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/**
|
||||||
|
* @RDE_HEADER@
|
||||||
|
* Stub header for lts_session.h when BUILD_RTI=OFF
|
||||||
|
* Provides minimal LtsSession class without RTI Connext DDS dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "lts_session_data_dds_stub.h"
|
||||||
|
#include <QObject>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
namespace LtsSession
|
||||||
|
{
|
||||||
|
|
||||||
|
// Forward declarations
|
||||||
|
namespace DataPluginBase
|
||||||
|
{
|
||||||
|
class Interface;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace GuiPluginBase
|
||||||
|
{
|
||||||
|
class Interface;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Stub LtsSession class for BUILD_RTI=OFF
|
||||||
|
*
|
||||||
|
* This stub provides the same interface as the real LtsSession class
|
||||||
|
* but without any RTI DDS functionality. All methods return default values
|
||||||
|
* or nullptr.
|
||||||
|
*/
|
||||||
|
class LtsSession : public LtsSessionDataDds
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit LtsSession(QObject* parent = nullptr);
|
||||||
|
~LtsSession() override;
|
||||||
|
|
||||||
|
// Initialization - always returns false in stub mode
|
||||||
|
bool init(const DdsConnectionParams& params);
|
||||||
|
bool isInitialized() const;
|
||||||
|
|
||||||
|
// Plugin interfaces - return nullptr in stub mode
|
||||||
|
std::shared_ptr<DataPluginBase::Interface> dataPlugin() const;
|
||||||
|
std::shared_ptr<GuiPluginBase::Interface> guiPlugin() const;
|
||||||
|
|
||||||
|
// Session info - return default values
|
||||||
|
QString sessionId() const;
|
||||||
|
int exerciseId() const;
|
||||||
|
QString toString() const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void initialized(bool success);
|
||||||
|
void sessionEnded();
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_initialized = false;
|
||||||
|
QString m_sessionId;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace LtsSession
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
ADD_SUBDIRECTORY(Common)
|
ADD_SUBDIRECTORY(Common)
|
||||||
ADD_SUBDIRECTORY(SymbologyXML)
|
ADD_SUBDIRECTORY(SymbologyXML)
|
||||||
ADD_SUBDIRECTORY(Symbology)
|
ADD_SUBDIRECTORY(Symbology)
|
||||||
|
ADD_SUBDIRECTORY(ElevationMap)
|
||||||
|
|
||||||
# Remaining subdirectories not yet migrated:
|
# Remaining subdirectories not yet migrated:
|
||||||
# ADD_SUBDIRECTORY(ElevationMap)
|
|
||||||
# ADD_SUBDIRECTORY(SymbologyGui)
|
# ADD_SUBDIRECTORY(SymbologyGui)
|
||||||
# ADD_SUBDIRECTORY(SymbologyXML)
|
# ADD_SUBDIRECTORY(SymbologyXML)
|
||||||
# ADD_SUBDIRECTORY(MapObjectsImpl)
|
# ADD_SUBDIRECTORY(MapObjectsImpl)
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# ElevationMap STUB - Qt6 Migration
|
||||||
|
# Minimal implementation to allow LtsElevation compilation
|
||||||
|
#
|
||||||
|
|
||||||
|
NGL_ADD_LIBRARY2(WS SV HLA situationMapElevationMap SHARED
|
||||||
|
elevation_map_manager.cpp
|
||||||
|
elevation_map_manager.h
|
||||||
|
)
|
||||||
|
|
||||||
|
NGL_TARGET_INCLUDE_DIRECTORIES(situationMapElevationMap
|
||||||
|
PUBLIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../../include/Viewer/SituationMap/ElevationMap
|
||||||
|
)
|
||||||
|
|
||||||
|
NGL_TARGET_LINK_LIBRARIES(situationMapElevationMap
|
||||||
|
PUBLIC
|
||||||
|
Qt6::Core
|
||||||
|
Qt6::Gui
|
||||||
|
)
|
||||||
+92
@@ -0,0 +1,92 @@
|
|||||||
|
/**
|
||||||
|
* STUB-Implementierung für ElevationMapManager - Qt6 Migration
|
||||||
|
* Diese Datei ermöglicht das Kompilieren von LtsElevation ohne das vollständige ElevationMap-Modul
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "elevation_map_manager.h"
|
||||||
|
|
||||||
|
namespace SituationMap
|
||||||
|
{
|
||||||
|
|
||||||
|
class ElevationMapManager::Private
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool initialized = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
ElevationMapManager::ElevationMapManager() : d(new Private())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::~ElevationMapManager()
|
||||||
|
{
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ElevationMapManager::init(const QStringList &filePaths_rough_to_fine)
|
||||||
|
{
|
||||||
|
Q_UNUSED(filePaths_rough_to_fine);
|
||||||
|
d->initialized = true;
|
||||||
|
return 0; // Success
|
||||||
|
}
|
||||||
|
|
||||||
|
void ElevationMapManager::cleanupCurrentContent()
|
||||||
|
{
|
||||||
|
d->initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElevationMapManager::waitForInitialization()
|
||||||
|
{
|
||||||
|
return d->initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElevationMapManager::isValid() const
|
||||||
|
{
|
||||||
|
return d->initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
double ElevationMapManager::elevation(double /*lon_rad*/, double /*lat_rad*/, bool * /*bIsCovered*/) const
|
||||||
|
{
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
double ElevationMapManager::elevation(double /*lon_rad*/, double /*lat_rad*/, double defaultValue, bool * /*bIsCovered*/) const
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRectF ElevationMapManager::simpleUnitedExtent() const
|
||||||
|
{
|
||||||
|
return QRectF();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElevationMapManager::contains(const QPointF & /*point*/) const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ElevationMapManager::LOSProfile(const QPointF & /*start*/, const QPointF & /*end*/, LOSVector &losProfile)
|
||||||
|
{
|
||||||
|
losProfile.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::LineOfSight ElevationMapManager::lineOfSightCalculation(const LOSVector & /*losProfile*/,
|
||||||
|
double /*centerHat*/,
|
||||||
|
double /*objHat*/) const
|
||||||
|
{
|
||||||
|
return LineOfSight::LOS_UNDEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::LineOfSight ElevationMapManager::lineOfSightCalculation(const LtsUtils::QPoint3D & /*startPointGeo_absZ*/,
|
||||||
|
const LtsUtils::QPoint3D & /*endPointGeo_absZ*/)
|
||||||
|
{
|
||||||
|
return LineOfSight::LOS_UNDEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::LineOfSight ElevationMapManager::lineOfSightCalculation(const QPointF & /*startPointGeo*/, double /*startHat*/,
|
||||||
|
const QPointF & /*endPointGeo*/, double /*endHat*/)
|
||||||
|
{
|
||||||
|
return LineOfSight::LOS_UNDEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace SituationMap
|
||||||
+74
@@ -0,0 +1,74 @@
|
|||||||
|
/**
|
||||||
|
* STUB-Header für ElevationMapManager - Qt6 Migration
|
||||||
|
* Diese Datei ermöglicht das Kompilieren von LtsElevation ohne das vollständige ElevationMap-Modul
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QRectF>
|
||||||
|
#include <QPointF>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace LtsUtils
|
||||||
|
{
|
||||||
|
struct QPoint3D
|
||||||
|
{
|
||||||
|
double x{0.0};
|
||||||
|
double y{0.0};
|
||||||
|
double z{0.0};
|
||||||
|
};
|
||||||
|
} // namespace LtsUtils
|
||||||
|
|
||||||
|
using LOSVector = std::vector<double>;
|
||||||
|
|
||||||
|
namespace SituationMap
|
||||||
|
{
|
||||||
|
|
||||||
|
class 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
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
// Für die Migration erstellen wir minimale Typ-Definitionen
|
// Für die Migration erstellen wir minimale Typ-Definitionen
|
||||||
|
|
||||||
#include "exm_exercise.h"
|
#include "exm_exercise.h"
|
||||||
#include "ppm_enums.hpp"
|
#include "ParticipantManagement/ppm_enums.hpp"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
|
|||||||
@@ -22,22 +22,8 @@ namespace LtsSession { class LtsSession; }
|
|||||||
namespace GuezNasat
|
namespace GuezNasat
|
||||||
{
|
{
|
||||||
|
|
||||||
// NasatAircraftParticipant - Verbindung zwischen NASAT, Exercise und Participant
|
// NasatAircraftParticipant und NasatAircraft sind bereits in gna_nasat_aircraft.h definiert
|
||||||
struct NasatAircraftParticipant {
|
// Diese Datei enthält nur die Dtc-Klasse
|
||||||
int id = 0;
|
|
||||||
int nasatAircraftId = 0;
|
|
||||||
int exerciseId = 0;
|
|
||||||
int participantId = 0;
|
|
||||||
|
|
||||||
// Helper methods für Kompatibilität
|
|
||||||
int participantId() const { return participantId; }
|
|
||||||
};
|
|
||||||
|
|
||||||
// NasatAircraft - NASAT Flugzeug
|
|
||||||
struct NasatAircraft {
|
|
||||||
int id = 0;
|
|
||||||
QString name;
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace Interface
|
namespace Interface
|
||||||
{
|
{
|
||||||
@@ -85,14 +71,14 @@ public:
|
|||||||
// Daten hinzufügen/entfernen/ändern
|
// Daten hinzufügen/entfernen/ändern
|
||||||
void addNasatAircraftParticipant(const NasatAircraftParticipant& nap) {
|
void addNasatAircraftParticipant(const NasatAircraftParticipant& nap) {
|
||||||
m_nasatAircraftParticipants.append(nap);
|
m_nasatAircraftParticipants.append(nap);
|
||||||
emit nasatAircraftParticipantChanged(nap, DataModification::eAdded);
|
emit nasatAircraftParticipantChanged(nap, ParticipantManagement::DataModification::eAdded);
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateNasatAircraftParticipant(const NasatAircraftParticipant& nap) {
|
void updateNasatAircraftParticipant(const NasatAircraftParticipant& nap) {
|
||||||
for (auto& existing : m_nasatAircraftParticipants) {
|
for (auto& existing : m_nasatAircraftParticipants) {
|
||||||
if (existing.id == nap.id) {
|
if (existing.id == nap.id) {
|
||||||
existing = nap;
|
existing = nap;
|
||||||
emit nasatAircraftParticipantChanged(nap, DataModification::eModified);
|
emit nasatAircraftParticipantChanged(nap, ParticipantManagement::DataModification::eModified);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -104,7 +90,7 @@ public:
|
|||||||
if (it->id == id) {
|
if (it->id == id) {
|
||||||
NasatAircraftParticipant removed = *it;
|
NasatAircraftParticipant removed = *it;
|
||||||
m_nasatAircraftParticipants.erase(it);
|
m_nasatAircraftParticipants.erase(it);
|
||||||
emit nasatAircraftParticipantChanged(removed, DataModification::eRemoved);
|
emit nasatAircraftParticipantChanged(removed, ParticipantManagement::DataModification::eRemoved);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -112,14 +98,14 @@ public:
|
|||||||
|
|
||||||
void addNasatAircraft(const NasatAircraft& na) {
|
void addNasatAircraft(const NasatAircraft& na) {
|
||||||
m_nasatAircrafts.append(na);
|
m_nasatAircrafts.append(na);
|
||||||
emit nasatAircraftChanged(na, DataModification::eAdded);
|
emit nasatAircraftChanged(na, ParticipantManagement::DataModification::eAdded);
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateNasatAircraft(const NasatAircraft& na) {
|
void updateNasatAircraft(const NasatAircraft& na) {
|
||||||
for (auto& existing : m_nasatAircrafts) {
|
for (auto& existing : m_nasatAircrafts) {
|
||||||
if (existing.id == na.id) {
|
if (existing.id == na.id) {
|
||||||
existing = na;
|
existing = na;
|
||||||
emit nasatAircraftChanged(na, DataModification::eModified);
|
emit nasatAircraftChanged(na, ParticipantManagement::DataModification::eModified);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -131,7 +117,7 @@ public:
|
|||||||
if (it->id == id) {
|
if (it->id == id) {
|
||||||
NasatAircraft removed = *it;
|
NasatAircraft removed = *it;
|
||||||
m_nasatAircrafts.erase(it);
|
m_nasatAircrafts.erase(it);
|
||||||
emit nasatAircraftChanged(removed, DataModification::eRemoved);
|
emit nasatAircraftChanged(removed, ParticipantManagement::DataModification::eRemoved);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ struct GNACOMMON_EXPORT NasatAircraftParticipant
|
|||||||
int id = 0;
|
int id = 0;
|
||||||
int nasatAircraftId = 0;
|
int nasatAircraftId = 0;
|
||||||
int exerciseId = 0;
|
int exerciseId = 0;
|
||||||
int participantId = 0;
|
int participantIdValue = 0;
|
||||||
|
|
||||||
// Helper method für Kompatibilität
|
// Helper method für Kompatibilität
|
||||||
int participantId() const { return participantId; }
|
int participantId() const { return participantIdValue; }
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace GuezNasat
|
} // namespace GuezNasat
|
||||||
@@ -45,6 +45,6 @@ inline std::ostream& operator<<(std::ostream& os, const GuezNasat::NasatAircraft
|
|||||||
{
|
{
|
||||||
os << "NasatAircraftParticipant{id=" << participant.id
|
os << "NasatAircraftParticipant{id=" << participant.id
|
||||||
<< ", nasatAircraftId=" << participant.nasatAircraftId
|
<< ", nasatAircraftId=" << participant.nasatAircraftId
|
||||||
<< ", participantId=" << participant.participantId << "}";
|
<< ", participantId=" << participant.participantIdValue << "}";
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
// STUB-HEADER: Diese Datei wird normalerweise von DDS generiert
|
// STUB-HEADER: Diese Datei wird normalerweise von DDS generiert
|
||||||
|
|
||||||
namespace GuezNasat
|
// NasatAircraftParticipant ist bereits in gna_nasat_aircraft.h definiert
|
||||||
{
|
#include "gna_nasat_aircraft.h"
|
||||||
|
|
||||||
// NasatAircraftParticipant - Verbindung zwischen NASAT, Exercise und Participant
|
|
||||||
struct NasatAircraftParticipant {
|
|
||||||
int id = 0;
|
|
||||||
int nasatAircraftId = 0;
|
|
||||||
int exerciseId = 0;
|
|
||||||
int participantId = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace GuezNasat
|
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||||
// Für die Migration erstellen wir minimale Typ-Definitionen
|
// Für die Migration erstellen wir minimale Typ-Definitionen
|
||||||
|
|
||||||
|
#include <ostream>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
namespace ParticipantManagement
|
namespace ParticipantManagement
|
||||||
{
|
{
|
||||||
// Placeholder enums - werden durch echte DDS-Typen ersetzt
|
// Placeholder enums - werden durch echte DDS-Typen ersetzt
|
||||||
@@ -10,13 +13,16 @@ enum class SymbolAppearance : int { Solid = 0, Dashed = 1, Dotted = 2 };
|
|||||||
|
|
||||||
enum class SymbolVisibility : int { Visible = 0, Hidden = 1 };
|
enum class SymbolVisibility : int { Visible = 0, Hidden = 1 };
|
||||||
|
|
||||||
enum class TypeClass : int { Unknown = 0, Aircraft = 1, Ground = 2, Naval = 3 };
|
enum class TypeClass : int { eUninitialized = 0, Unknown = 1, Aircraft = 2, Ground = 3, Naval = 4 };
|
||||||
|
|
||||||
enum class DataModification : int { eAdded = 0, eModified = 1, eRemoved = 2 };
|
enum class DataModification : int { eAdded = 0, eModified = 1, eRemoved = 2 };
|
||||||
|
|
||||||
inline std::ostream& operator<<(std::ostream& os, TypeClass tc)
|
inline std::ostream& operator<<(std::ostream& os, TypeClass tc)
|
||||||
{
|
{
|
||||||
switch (tc) {
|
switch (tc) {
|
||||||
|
case TypeClass::eUninitialized:
|
||||||
|
os << "eUninitialized";
|
||||||
|
break;
|
||||||
case TypeClass::Unknown:
|
case TypeClass::Unknown:
|
||||||
os << "Unknown";
|
os << "Unknown";
|
||||||
break;
|
break;
|
||||||
@@ -30,7 +36,7 @@ inline std::ostream& operator<<(std::ostream& os, TypeClass tc)
|
|||||||
os << "Naval";
|
os << "Naval";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
os << "Unknown";
|
os << std::string("Unknown");
|
||||||
}
|
}
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|||||||
+74
@@ -0,0 +1,74 @@
|
|||||||
|
/**
|
||||||
|
* STUB-Header für ElevationMapManager - Qt6 Migration
|
||||||
|
* Diese Datei ermöglicht das Kompilieren von LtsElevation ohne das vollständige ElevationMap-Modul
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QRectF>
|
||||||
|
#include <QPointF>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace LtsUtils
|
||||||
|
{
|
||||||
|
struct QPoint3D
|
||||||
|
{
|
||||||
|
double x{0.0};
|
||||||
|
double y{0.0};
|
||||||
|
double z{0.0};
|
||||||
|
};
|
||||||
|
} // namespace LtsUtils
|
||||||
|
|
||||||
|
using LOSVector = std::vector<double>;
|
||||||
|
|
||||||
|
namespace SituationMap
|
||||||
|
{
|
||||||
|
|
||||||
|
class 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
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#include "alm_translation.h"
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
namespace AlarmManagement
|
||||||
|
{
|
||||||
|
|
||||||
|
QString tr(const char *sourceText, const char *comment, int n)
|
||||||
|
{
|
||||||
|
// STUB: Wird durch korrekte Translation-Implementation ersetzt
|
||||||
|
// Für den Build benötigen wir eine funktionierende tr()-Funktion
|
||||||
|
return QObject::tr(sourceText, comment, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace AlarmManagement
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#include "ppm_translation.h"
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
namespace ParticipantManagement
|
||||||
|
{
|
||||||
|
|
||||||
|
QString tr(const char *sourceText, const char *comment, int n)
|
||||||
|
{
|
||||||
|
// STUB: Wird durch korrekte Translation-Implementation ersetzt
|
||||||
|
// Für den Build benötigen wir eine funktionierende tr()-Funktion
|
||||||
|
return QObject::tr(sourceText, comment, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace ParticipantManagement
|
||||||
+92
@@ -0,0 +1,92 @@
|
|||||||
|
/**
|
||||||
|
* STUB-Implementierung für ElevationMapManager - Qt6 Migration
|
||||||
|
* Diese Datei ermöglicht das Kompilieren von LtsElevation ohne das vollständige ElevationMap-Modul
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "elevation_map_manager.h"
|
||||||
|
|
||||||
|
namespace SituationMap
|
||||||
|
{
|
||||||
|
|
||||||
|
class ElevationMapManager::Private
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool initialized = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
ElevationMapManager::ElevationMapManager() : d(new Private())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::~ElevationMapManager()
|
||||||
|
{
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ElevationMapManager::init(const QStringList &filePaths_rough_to_fine)
|
||||||
|
{
|
||||||
|
Q_UNUSED(filePaths_rough_to_fine);
|
||||||
|
d->initialized = true;
|
||||||
|
return 0; // Success
|
||||||
|
}
|
||||||
|
|
||||||
|
void ElevationMapManager::cleanupCurrentContent()
|
||||||
|
{
|
||||||
|
d->initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElevationMapManager::waitForInitialization()
|
||||||
|
{
|
||||||
|
return d->initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElevationMapManager::isValid() const
|
||||||
|
{
|
||||||
|
return d->initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
double ElevationMapManager::elevation(double /*lon_rad*/, double /*lat_rad*/, bool * /*bIsCovered*/) const
|
||||||
|
{
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
double ElevationMapManager::elevation(double /*lon_rad*/, double /*lat_rad*/, double defaultValue, bool * /*bIsCovered*/) const
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRectF ElevationMapManager::simpleUnitedExtent() const
|
||||||
|
{
|
||||||
|
return QRectF();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElevationMapManager::contains(const QPointF & /*point*/) const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ElevationMapManager::LOSProfile(const QPointF & /*start*/, const QPointF & /*end*/, LOSVector &losProfile)
|
||||||
|
{
|
||||||
|
losProfile.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::LineOfSight ElevationMapManager::lineOfSightCalculation(const LOSVector & /*losProfile*/,
|
||||||
|
double /*centerHat*/,
|
||||||
|
double /*objHat*/) const
|
||||||
|
{
|
||||||
|
return LineOfSight::LOS_UNDEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::LineOfSight ElevationMapManager::lineOfSightCalculation(const LtsUtils::QPoint3D & /*startPointGeo_absZ*/,
|
||||||
|
const LtsUtils::QPoint3D & /*endPointGeo_absZ*/)
|
||||||
|
{
|
||||||
|
return LineOfSight::LOS_UNDEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ElevationMapManager::LineOfSight ElevationMapManager::lineOfSightCalculation(const QPointF & /*startPointGeo*/, double /*startHat*/,
|
||||||
|
const QPointF & /*endPointGeo*/, double /*endHat*/)
|
||||||
|
{
|
||||||
|
return LineOfSight::LOS_UNDEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace SituationMap
|
||||||
Reference in new issue
Block a user