Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* Handling of PDM-Data so we dont call the DTC more than once
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Philipp Dassow, SLST, 2017-09-25
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include <Common/situation_map_logging.h>
|
||||
#include <QMap>
|
||||
#include <QObject>
|
||||
|
||||
#include <memory> // std::shared_pt
|
||||
#include <LtsUtilsCore/data_modification_enum.h>
|
||||
#include <ProjectDataManagement/pdm_dtc.h> // safe_enum GearClass
|
||||
#include <AreaEffectSimulation/aes_dtc.h>
|
||||
|
||||
//namespace ProjectDataManagement
|
||||
//{
|
||||
//class ChargeType;
|
||||
//class GearTypeChargeType;
|
||||
|
||||
//namespace Interface
|
||||
//{
|
||||
//// forward
|
||||
//class Dtc;
|
||||
//}
|
||||
//}
|
||||
|
||||
|
||||
namespace SituationMap
|
||||
{
|
||||
enum class SpecialChargeType
|
||||
{
|
||||
NoneSpecial,
|
||||
LRF, // LaserRangeFinder / Laser-Entfernungsmesser
|
||||
LTD // LaserTargetDesignator / Zielmarkierung
|
||||
};
|
||||
|
||||
QString toString(SpecialChargeType value);
|
||||
|
||||
static inline std::ostream &operator<< (std::ostream &stream,
|
||||
const SpecialChargeType value)
|
||||
{
|
||||
stream << "SpecialChargeType " << toString(value);
|
||||
return stream;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
class PdmHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PdmHandler(const std::shared_ptr<ProjectDataManagement::Interface::Dtc> &dtcPdm);
|
||||
|
||||
ProjectDataManagement::ChargeType chargeTypeFromId(int chargeTypeId);
|
||||
int maxRangeFromGearTypeIdAndChargeTypeId(int gearTypeId, int chargeTypeId);
|
||||
double impactRadius(const AreaEffectSimulation::ChargeStruct &chargeStruct, double defaultValue = 10.0);
|
||||
bool isSmart(const AreaEffectSimulation::ChargeStruct &chargeStruct);
|
||||
QString trChargeTypeShortName(int chargeTypeId);
|
||||
|
||||
SpecialChargeType isSpecialChargeType(int chargeTypeId);
|
||||
bool isLRFChargeType(int chargeTypeId);
|
||||
bool isLTDChargeType(int chargeTypeId);
|
||||
bool isChargeTypeLtdOrLrf(int chargeTypeId);
|
||||
static bool isChargeTypeLtdOrLrf(SpecialChargeType sct);
|
||||
|
||||
ProjectDataManagement::GearClass gearClassFromChargeTypeId(int chargeTypeId);
|
||||
QVector<ProjectDataManagement::CasEffect> casEffects(const AreaEffectSimulation::ChargeStruct &chargeStruct);
|
||||
|
||||
private:
|
||||
void initializePdm();
|
||||
void onChargeTypeChanged(const ProjectDataManagement::ChargeType &data, DataModification mod);
|
||||
void onGearTypeChargeTypeChanged(const ProjectDataManagement::GearTypeChargeType &data, DataModification mod);
|
||||
|
||||
private:
|
||||
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_dtcPdm;
|
||||
QMap<int, ProjectDataManagement::ChargeType> m_chargeTypes;
|
||||
QMap<int, ProjectDataManagement::GearTypeChargeType> m_gearTypeChargeTypes;
|
||||
bool m_bPdmInitialized{false};
|
||||
|
||||
LOGGER_T m_logger;
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user