/** * GasPipe object * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2017-06-14 */ #pragma once #include #include "object_base.h" #include #include namespace AreaEffectSimulation { class ObjectGasPipe final : public ObjectBaseTmpl { Q_OBJECT public: explicit ObjectGasPipe(MainHandler *mainHandler, QObject *parent = nullptr); ~ObjectGasPipe(); Core::FunctionReplyObject createObject(const Database::AesGasPipe &dbData, const std::vector &ddsSegments, const QVector &dbSegments); Core::FunctionReplyObject updateObject(const Database::AesGasPipe &dbData, const std::vector &ddsSegments); Database::AesGasPipe get() const { return m_data; } Core::FunctionReplyObject removeObject() override; std::vector form() const override { return m_aiv.form(); } QPolygonF generateForm() override; AesType aesType() const override { return AesType::AtGasPipe; } bool isCentral() const override { return m_data.isCentral; } void removeTopics(); protected Q_SLOTS: void onPublishData() override; private: void publishAiv(); QVector m_dbSegments; AesItemView m_aiv; }; } // Namespace AreaEffectSimulation