Files
qt5-legatus-legacy/Lts/Services/CentralEffectSimulation/aes_item_view_utm.h
T
2026-08-13 18:33:10 +02:00

70 lines
2.1 KiB
C++
Executable File

/**
* CES AesItemViewUtm
* $Id$
* $HeadURL$
* $Author$
* Created by Gerlinde Rudolphus, SLTE, 2016-04-14
*/
#pragma once
#include <CentralEffectSimulation/svccesddscommon_export.h>
#include <AreaEffectSimulation/aes_enums.hpp>
#include <AreaEffectSimulation/aes.hpp>
#include <QPointF>
#include <QPolygonF>
#include <QVector>
#include <QtCore/QHash>
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<Core::GeoPosition2D> formGeo;
QVector<QPointF> formMines;
QVector<double> radials; // for nbc area checks
QPointF center; // for nbc area checks
std::vector<uint8_t> 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<int> BitfieldState;
typedef QHash<int, BitfieldState> BitfieldStates;
} // namespace CentralEffectSimulation