|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "nmData_global.h"
|
|
|
|
|
#include "nmDataBase.h"
|
|
|
|
|
#include "nmDefines.h"
|
|
|
|
|
#include "nmDataAttribute.h"
|
|
|
|
|
|
|
|
|
|
#include <QColor>
|
|
|
|
|
|
|
|
|
|
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<QPointF> getVecPts() const;
|
|
|
|
|
void setVecPts(const QVector<QPointF>& 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);
|
|
|
|
|
|
|
|
|
|
// 视觉属性:画笔宽度、填充背景色
|
|
|
|
|
double getPenWidth() const;
|
|
|
|
|
void setPenWidth(double dWidth);
|
|
|
|
|
QColor getBackgrdColor() const;
|
|
|
|
|
void setBackgrdColor(const QColor& clr);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
QString m_sRegionName; // 复合区名称
|
|
|
|
|
QVector<QPointF> m_vecPts; // 复合区位置信息
|
|
|
|
|
nmDataAttribute m_regionFlowModel; // 复合区流动类型
|
|
|
|
|
nmDataAttribute m_regionLeakage; // 复合区泄露系数
|
|
|
|
|
|
|
|
|
|
nmDataRegionMark* m_regionMarkData; // 标记区域数据对象
|
|
|
|
|
|
|
|
|
|
bool m_bPlotVisible; // 图元是否可见
|
|
|
|
|
|
|
|
|
|
// 视觉属性(与图元同步)
|
|
|
|
|
double m_dPenWidth; // 画笔宽度
|
|
|
|
|
QColor m_clrBackgrd; // 填充背景色
|
|
|
|
|
};
|
|
|
|
|
|