#pragma once #if BUILD_RTI #include #include #include #include "aes.hpp" #include "logger.h" namespace TrainingAreaBase { class MainHandler; class PdmHandler { public: explicit PdmHandler(MainHandler *mainHandler); bool init(); std::shared_ptr dtc() const { return m_dtcPdm; } ProjectDataManagement::ChargeType chargeTypeFromId(int chargeTypeId); ProjectDataManagement::GearClass gearClassFromChargeTypeId(int chargeTypeId); ProjectDataManagement::RadioGroup radioGroup(int radioGroupId); ProjectDataManagement::BuildingChargeEffect buildingChargeEffect(int chargeTypeId); int vulnerabilityKindId(int tasVulnerabilityKindId, int equipmentNumber); QMap radioGroups (); int chargeTypeIdFromGearAndChargeTasCode(int gearTasCode, int chargeTasCode); int gearTypeIdFromTasGearTasCode(int gearTasCode); int legacyChargeTypeIgniterType(int chargeTypeId, int igniterTypeId, int igniterFunctionId); double impactRadius(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; double impactEdgeLength(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; bool isSmartChargeType(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; bool isIedChargeType(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; bool isReactivatableChargeType(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; bool isIndirect(int chargeTypeId) const; int hazardDistance(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; bool isLaserGuidable(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; bool isUasDroppable(const AreaEffectSimulation::ChargeStruct &chargeStruct) const; public: bool initializePdm(); private: NGL::INGLLogger &m_logger; bool m_initialized; std::shared_ptr m_dtcPdm; QMap m_chargeTypes; QMap m_gearTypes; QMap m_gearTypeChargeTypes; QMap m_radioGroups; QMap m_buildingChargeEffects; QHash m_vulnerabilityKinds; QHash m_vulnerabilityKindFallback; MainHandler *m_mainHandler; }; } #endif // BUILD_RTI