/** * CES AesItemViewUtm * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLTE, 2016-04-14 */ #pragma once #include #include #include #include #include #include #include namespace CentralEffectSimulation { struct SVCCESDDSCOMMON_EXPORT AesItemViewUtm { int zone = -1; int aesItemId = 0; AreaEffectSimulation::ChargeStruct chargeStruct = {0,0,0}; int partyId = -1; // detect friendlyFire int dusMineId = -1; bool isSupplyTruck = false; int participantId = -1; bool offsetIsSet = false; double upperOffset = -1.0; double lowerOffset = -1.0; AreaEffectSimulation::AesType aesTypeId = AreaEffectSimulation::AesType_def::AtUnknown; AreaEffectSimulation::AesEffectState effectStateId = AreaEffectSimulation::AesEffectState::EsExpired; qint64 effectStart = 0; QPointF boundingBoxBottomLeft; QPointF boundingBoxTopRight; QPolygonF boundingBox; QPolygonF form; double hazardDistance_meter{0.0}; // 'hazardDistance' is used very often, find different name to ease find/grep QPolygonF hazardDistanceForm; QVector formGeo; QVector formMines; QVector radials; // for nbc area checks QPointF center; // for nbc area checks std::vector handledImpacts; qint64 sampleTimeHandledImpacts = 0; bool hasHazardDistance() const { return hazardDistance_meter > 0; } static AesItemViewUtm create(const AreaEffectSimulation::AesItemView &aiv, const AesItemViewUtm &prevData, double impactRadius, bool isSupplyTruck = false, double hazardDistance = 0.0, bool offsetIsSet = false, double upperOffset = -1.0, double lowerOffset = -1.0); }; typedef QSet BitfieldState; typedef QHash BitfieldStates; } // namespace CentralEffectSimulation