64 lines
2.0 KiB
C++
Executable File
64 lines
2.0 KiB
C++
Executable File
/**
|
|
* Object for the null mine area (where the unassigned DUS mines belong to)
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LtsUtilsGuiDds/request_helper.h>
|
|
|
|
#include "aes_db.h"
|
|
#include "object_base.h"
|
|
namespace AreaEffectSimulation
|
|
{
|
|
|
|
class ObjectMineAreaNull final : public ObjectBaseTmpl<Database::AesMineArea>
|
|
, protected TrainingAreaBase::Interface::Ftc::SendResetAllDusMinesReplyHandler
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit ObjectMineAreaNull(MainHandler *mainHandler,
|
|
QObject *parent = nullptr);
|
|
~ObjectMineAreaNull();
|
|
|
|
bool triggerMine(int mineId, bool trigger = true, int chargeTypeId = 0, const QPointF &position = QPointF(), bool publish = true);
|
|
bool triggerMine(Database::AesMineAreaTriggeredMines &mine);
|
|
void triggerMines(const QList<Database::AesMineAreaTriggeredMines> &mines);
|
|
bool resetMine(int mineId);
|
|
bool resetMines();
|
|
Database::AesMineAreaTriggeredMines takeMine(int mineId);
|
|
QList<Database::AesMineAreaTriggeredMines> mines() const {return m_triggeredMines.values();}
|
|
bool isDusMineArea() const;
|
|
bool isConcreteMine() const;
|
|
bool isVirtualMine() const;
|
|
bool isVirtualSingleMine() const;
|
|
void onSendResetAllDusMinesReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
|
|
|
|
std::vector<Core::GeoPosition> form() const override { return {}; }
|
|
QPolygonF generateForm() override;
|
|
AesType aesType() const override { return AesType_def::AtMineArea; }
|
|
bool isCentral() const override { return m_data.isCentral; }
|
|
int lastConcreteMineNo();
|
|
public Q_SLOTS:
|
|
void onPublishData() override final;
|
|
|
|
protected:
|
|
void removeTopics();
|
|
|
|
private:
|
|
void publishAiv();
|
|
bool publishTriggeredImpacts();
|
|
bool publishDusMineStatus();
|
|
|
|
LtsUtils::RequestHelper *m_requestHelper;
|
|
QMap<int, Database::AesMineAreaTriggeredMines> m_triggeredMines; // mineId
|
|
AesItemView m_aiv2;
|
|
TriggeredImpacts m_tis;
|
|
DusMineState m_dms;
|
|
int64_t m_setId;
|
|
};
|
|
|
|
} // namespace
|