#pragma once #include "nmData_global.h" #include "nmDataBase.h" #include "nmDefines.h" #include "nmDataAttribute.h" class nmDataRegionMark; class NM_DATA_EXPORT nmDataRegion : public nmDataBase { Q_OBJECT public: nmDataRegion(); nmDataRegion(const nmDataRegion& other); // 拷贝构造函数 nmDataRegion& operator=(const nmDataRegion& other); // 赋值运算符 ~nmDataRegion(); // 实现 nmDataBase 的抽象方法:将当前 C++ 对象序列化为 RapidJSON Value virtual rapidjson::Value ToJsonValue(rapidjson::Document::AllocatorType& allocator) const override; // 实现 nmDataBase 的抽象方法:从 RapidJSON Value 反序列化数据到当前 C++ 对象 virtual void FromJsonValue(const rapidjson::Value& jsonValue) override; public: QString getRegoinName() const; void setRegionName(QString sRegionName); // Getter and Setter for m_vecPts QVector getVecPts() const; void setVecPts(const QVector& vecPts); // Getter and Setter for m_regionFlowModel nmDataAttribute& getRegionFlowModel(); void setRegionFlowModel(const nmDataAttribute& regionFlowModel); // Getter and Setter for m_regionLeakage nmDataAttribute& getRegionLeakage(); void setRegionLeakage(const nmDataAttribute& regionLeakage); // Getter and Setter for m_regionMarkData nmDataRegionMark* getRegionMarkData() const; void setRegionMarkData(nmDataRegionMark* regionMarkData); bool getPlotVisible() const; void setPlotVisible(const bool newState); private: QString m_sRegionName; // 复合区名称 QVector m_vecPts; // 复合区位置信息 nmDataAttribute m_regionFlowModel; // 复合区流动类型 nmDataAttribute m_regionLeakage; // 复合区泄露系数 nmDataRegionMark* m_regionMarkData; // 标记区域数据对象 bool m_bPlotVisible; // 图元是否可见 };