#pragma once #include #include #include #include #include #include #include namespace InfrastructureManagement { class ISMSHARED_EXPORT MountingPoint { public: explicit MountingPoint(); explicit MountingPoint(const StructureElement &data, int floorId); static void init(); const StructureElement &data() const { return m_data; } void updateData(const StructureElement &data, int floorId) { m_data = data; m_floor = floorId; } int32_t id() const { return m_data.id(); } int32_t associatedAssetId() const { return m_associatedAssetId; } bool hasAssociatedAsset() const { return m_associatedAssetId > 0; } bool hasAssociatedAssetDefect() const { return m_hasAssociatedAssetDefect; } MountingPointState aimState() const { return m_aimState; } void setAimState(const MountingPointState &mps) { m_aimState = mps;} bool isValid() const { return m_isValid; } Core::GeoPosition geoPosition() const { return m_data.geoPosition(); } Core::RelativePosition relPosition() const { return m_data.relPosition(); } MountingPointType type() const { return m_data.mountingPointTypeId(); } int32_t buildingId() const { return m_data.mainStructureElementId(); } QString name() const; QString fileName() const; QByteArray properties() const { return m_data.properties().c_str(); } QImage toImage(int32_t edgeLength = 100) const; bool writeFile(int32_t edgeLength = 25) const; int floor() const { return m_floor; } void setFloor(int floor) { m_floor = floor; } void setAssociatedAssetId(int32_t id); void setHasAssociatedAssetDefect(bool hasAssociatedAssetDefect); MountingPointState getNextMountingPointState(const MountingPointState currState); private: StructureElement m_data; int32_t m_associatedAssetId; MountingPointState m_aimState; bool m_hasAssociatedAssetDefect; bool m_isValid; int m_floor; public: enum class MpColor { GRAY, BLUE, RED, GREEN, ORANGE }; static QString mpColorToString(MpColor mpColor); static QString mpColorToPostfix(MpColor mpColor); struct NameImagePair { NameImagePair(const QString &name = QString(), const QImage &img = QImage()) : m_name(name), m_img(img) {} QString m_name; QImage m_img; }; struct MpNameImageData { NameImagePair nipGray; NameImagePair nipBlue; NameImagePair nipRed; NameImagePair nipGreen; NameImagePair nipOrange; }; static QMap &getImageTable(); static bool getImageAttributePlanActivity(const MountingPoint& mp, QImage &imgOut, QString &attribNameOut); static bool getImageAttributePlanDefinition(const MountingPoint& mp, QImage &imgOut, QString &attribNameOut); static bool getImageAttribute(const MountingPoint& mp, MpColor mpColor, QImage &img, QString &attribName); private: static QMap &getImageTableInternal(); static void insertHelper(MountingPointType type, const QString &name, const QString &colorCodeGray, const QString &colorCodeGreen, const QString &colorCodeRed, const QString &colorCodeOrange, const QString &defName = QString()); }; } // namespace InfrastructureManagement