Migrates AreaEffectSimulation to generated rtiddsgen API
Converts accessor calls to plain member access across aes service and plugin.
This commit is contained in:
102 files changed
+3307
-3313
No files matched your search
+32
-32
@@ -33,12 +33,12 @@ ObjectMineAreaNull::ObjectMineAreaNull(MainHandler *mainHandler,
|
||||
}
|
||||
|
||||
// Set TriggeredExplosions Base Data
|
||||
m_tis.id(AesType::AtMineAreaSingleMines);
|
||||
m_tis.aesItemId(0);
|
||||
m_tis.aesTypeId(AesType::AtMineAreaSingleMines);
|
||||
m_tis.id = AesType::AtMineAreaSingleMines;
|
||||
m_tis.aesItemId = 0;
|
||||
m_tis.aesTypeId = AesType::AtMineAreaSingleMines;
|
||||
|
||||
// Set DUS-Mine status Base Data
|
||||
m_dms.mines().resize(m_triggeredMines.size());
|
||||
m_dms.mines.resize(m_triggeredMines.size());
|
||||
|
||||
onPublishData();
|
||||
}
|
||||
@@ -49,25 +49,25 @@ ObjectMineAreaNull::~ObjectMineAreaNull()
|
||||
}
|
||||
bool ObjectMineAreaNull::isDusMineArea() const
|
||||
{
|
||||
return static_cast<MineClass::type>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
return static_cast<MineClass>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
== MineClass::DUS;
|
||||
}
|
||||
|
||||
bool ObjectMineAreaNull::isConcreteMine() const
|
||||
{
|
||||
return static_cast<MineClass::type>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
return static_cast<MineClass>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
== MineClass::Concrete;
|
||||
}
|
||||
|
||||
bool ObjectMineAreaNull::isVirtualSingleMine() const
|
||||
{
|
||||
return static_cast<MineClass::type>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
return static_cast<MineClass>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
== MineClass::VirtualSingle;
|
||||
}
|
||||
|
||||
bool ObjectMineAreaNull::isVirtualMine() const
|
||||
{
|
||||
return static_cast<MineClass::type>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
return static_cast<MineClass>(m_mainHandler->dds()->pdmDtc()->mineClass(m_data.chargeTypeId, m_data.igniterTypeId, m_data.igniterFunctionId))
|
||||
== MineClass::Virtual;
|
||||
}
|
||||
int ObjectMineAreaNull::lastConcreteMineNo()
|
||||
@@ -232,8 +232,8 @@ void ObjectMineAreaNull::removeTopics()
|
||||
{
|
||||
auto dts = m_mainHandler->dds()->dts();
|
||||
dts->removeMineAreaByKey(m_data.id);
|
||||
dts->removeAesItemViewByKey(1000 * m_data.id + AesType::AtMineAreaSingleMines);
|
||||
dts->removeTriggeredImpactsByKey(1000 * m_data.id + AesType::AtMineAreaSingleMines);
|
||||
dts->removeAesItemViewByKey(1000 * m_data.id + static_cast<int>(AesType::AtMineAreaSingleMines));
|
||||
dts->removeTriggeredImpactsByKey(1000 * m_data.id + static_cast<int>(AesType::AtMineAreaSingleMines));
|
||||
emit removeAiv(m_data.id);
|
||||
}
|
||||
|
||||
@@ -252,24 +252,24 @@ void ObjectMineAreaNull::publishAiv()
|
||||
}
|
||||
|
||||
AesItemView aiv2(m_aiv2);
|
||||
aiv2.aesItemId(0);
|
||||
aiv2.chargeStruct().chargeTypeId(m_data.chargeTypeId); // Shall be invalid. EffectSimulation has been conducted before, so not necessary for service sCES
|
||||
aiv2.effectStart(0);
|
||||
aiv2.form(vec);
|
||||
aiv2.boundingBoxBottomLeft() = Core::GeoPosition2D(tmp.boundingRect().bottomLeft().x(), tmp.boundingRect().bottomLeft().y());
|
||||
aiv2.boundingBoxTopRight() = Core::GeoPosition2D(tmp.boundingRect().topRight().x(), tmp.boundingRect().topRight().y());
|
||||
aiv2.aesTypeId(AesType::inner_enum::AtMineAreaSingleMines);
|
||||
aiv2.id(AesType::inner_enum::AtMineAreaSingleMines);
|
||||
aiv2.effectStateId(AesEffectState::inner_enum::EsActivated);
|
||||
aiv2.setId(dds::core::optional<rti::core::int64>(m_setId));
|
||||
aiv2.aesItemId = 0;
|
||||
aiv2.chargeStruct.chargeTypeId = m_data.chargeTypeId; // Shall be invalid. EffectSimulation has been conducted before, so not necessary for service sCES
|
||||
aiv2.effectStart = 0;
|
||||
aiv2.form = vec;
|
||||
aiv2.boundingBoxBottomLeft = Core::GeoPosition2D(tmp.boundingRect().bottomLeft().x(), tmp.boundingRect().bottomLeft().y());
|
||||
aiv2.boundingBoxTopRight = Core::GeoPosition2D(tmp.boundingRect().topRight().x(), tmp.boundingRect().topRight().y());
|
||||
aiv2.aesTypeId = AesType::AtMineAreaSingleMines;
|
||||
aiv2.id = AesType::AtMineAreaSingleMines;
|
||||
aiv2.effectStateId = AesEffectState::EsActivated;
|
||||
aiv2.setId = dds::core::optional<rti::core::int64>(m_setId);
|
||||
if (m_data.partyId != 0)
|
||||
aiv2.partyId(m_data.partyId);
|
||||
aiv2.partyId = m_data.partyId;
|
||||
|
||||
checkIsCentralAndPublish(aiv2.form(), m_aiv2.form(), m_data.isCentral);
|
||||
checkIsCentralAndPublish(aiv2.form, m_aiv2.form, m_data.isCentral);
|
||||
|
||||
if (aiv2 != m_aiv2)
|
||||
{
|
||||
aiv2.sampleTime(partitionTimeMSec());
|
||||
aiv2.sampleTime = partitionTimeMSec();
|
||||
m_aiv2 = aiv2;
|
||||
m_mainHandler->dds()->dts()->publish(aiv2);
|
||||
emit newAiv(aiv2);
|
||||
@@ -280,20 +280,20 @@ bool ObjectMineAreaNull::publishTriggeredImpacts()
|
||||
{
|
||||
// Build an own tes-bitfield and compare, only store and publish if changed.
|
||||
TriggeredImpacts tis(m_tis);
|
||||
tis.impactCount(m_triggeredMines.size());
|
||||
tis.bitfield().resize((m_triggeredMines.size() + 7) / 8);
|
||||
tis.setId(dds::core::optional<rti::core::int64>(m_setId));
|
||||
tis.impactCount = m_triggeredMines.size();
|
||||
tis.bitfield.resize((m_triggeredMines.size() + 7) / 8);
|
||||
tis.setId = dds::core::optional<rti::core::int64>(m_setId);
|
||||
|
||||
int i = 0;
|
||||
for (const auto &mine : qAsConst(m_triggeredMines))
|
||||
{
|
||||
// Triggered Impact == 0, if mine is disarmed/exploded
|
||||
LtsUtils::BitArray::setBit(tis.bitfield(), i++, !mine.isTriggered);
|
||||
LtsUtils::BitArray::setBit(tis.bitfield, i++, !mine.isTriggered);
|
||||
}
|
||||
if (m_tis != tis)
|
||||
{
|
||||
m_tis = tis;
|
||||
m_tis.sampleTime(partitionTimeMSec());
|
||||
m_tis.sampleTime = partitionTimeMSec();
|
||||
return m_mainHandler->dds()->dts()->publish(m_tis);
|
||||
}
|
||||
return true;
|
||||
@@ -304,19 +304,19 @@ bool ObjectMineAreaNull::publishDusMineStatus()
|
||||
// DusMineStatus mines vector is coherent to triggered impacts bitfield
|
||||
DusMineState dms(m_dms);
|
||||
|
||||
dms.mines().resize(m_triggeredMines.size());
|
||||
dms.setId(dds::core::optional<rti::core::int64>(m_setId));
|
||||
dms.mines.resize(m_triggeredMines.size());
|
||||
dms.setId = dds::core::optional<rti::core::int64>(m_setId);
|
||||
int i = 0;
|
||||
for (const auto &mine : qAsConst(m_triggeredMines))
|
||||
{
|
||||
const DusMine entry(mine.mineId, mine.isTriggered, mine.chargeTypeId, {mine.position.x(), mine.position.y()});
|
||||
dms.mines()[i++] = entry;
|
||||
dms.mines[i++] = entry;
|
||||
}
|
||||
|
||||
if (m_dms != dms)
|
||||
{
|
||||
m_dms = dms;
|
||||
m_dms.sampleTime(partitionTimeMSec());
|
||||
m_dms.sampleTime = partitionTimeMSec();
|
||||
return m_mainHandler->dds()->dts()->publish(m_dms);
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in new issue
Block a user