#ifndef POWERTERMINAL_H #define POWERTERMINAL_H /**************************** * 拓扑元件的接线口,拓扑关系的精确表示 * *************************/ #include #include #include #include enum class TerminalType { PowerInput, PowerOutput, PowerConnect, ControlSignal, ProtectiveGround }; class PowerTerminal : public QObject { Q_OBJECT public: explicit PowerTerminal(const QString& parentEntityId, TerminalType type, const QString& name, const QPointF& relativePos = QPointF(), const QString& uuid = "", QObject* parent = nullptr); // 属性访问 void setId(const QString& sId){m_id = sId;} QString id() const { return m_id; } QString parentEntityId() const { return m_parentEntityId; } TerminalType type() const { return m_type; } QString name() const { return m_name; } QPointF relativePosition() const { return m_relativePosition; } // 设置相对位置 void setRelativePosition(const QPointF& newPos); // 序列化 QJsonObject toJson() const; static PowerTerminal* fromJson(const QJsonObject& json, QObject* parent = nullptr); void setGenerateBy(const QString& sName) {m_generateBy = sName;} QString getGenerateBy() {return m_generateBy;} signals: void positionChanged(const QPointF& newPosition); private: QString m_id; const QString m_parentEntityId; const TerminalType m_type; QString m_name; QPointF m_relativePosition; QString m_generateBy; //被哪个Terminal生成 }; #endif //POWERTERMINAL_H