#ifndef NMDATARECTOUTLINE_H #define NMDATARECTOUTLINE_H #include "nmData_global.h" #include #include "nmDefines.h" #include "nmDataBase.h" class NM_DATA_EXPORT nmDataOutline : public nmDataBase { Q_OBJECT public: nmDataOutline(); nmDataOutline(const nmDataOutline& other); // 拷贝构造函数 nmDataOutline& operator=(const nmDataOutline& other); // 赋值运算符 ~nmDataOutline(); // 实现 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; QString getName(); void setName(const QString& sName); QVector getOutlinePoints(); void setOutlinePoints(const QVector& vecPts); QVector getFlowTypeList() const; void setFlowTypeList(const QVector& vecFlowTypeList); NM_Data_Outline_Type getOutlineType() const; void setOutlineType(NM_Data_Outline_Type eOutlineType); QPointF getCenter() const; void setCenter(const QPointF& ptCenter); double getRadius() const; void setRadius(double dRadius); bool getPlotVisible() const; void setPlotVisible(const bool newState); // 视觉属性(画笔宽度、填充色、透明度) double getPenWidth() const; void setPenWidth(double dWidth); QColor getBackgrdColor() const; void setBackgrdColor(const QColor& clr); int getBackgrdAlpha() const; void setBackgrdAlpha(int nAlpha); // 视觉属性是否有效(仅从已保存文件加载后为true,新建时为false) bool hasVisualProps() const; void setVisualPropsValid(bool bValid); private: QString m_sName;// 边界名称 QVector m_vecPts; // 边界点的数据; QVector m_vFlowTypeList; //边界压力类型 NM_Data_Outline_Type m_eOutlineType; // 边界类型 // 对于圆形边界,特殊处理 QPointF m_ptCenter; // 圆心 double m_dRadius; // 半径 bool m_bPlotVisible; // 图元是否可见 // 视觉属性 double m_dPenWidth; // 画笔宽度 QColor m_clrBackgrd; // 填充背景色 int m_nBackgrdAlpha; // 填充透明度 (0-255) bool m_bHasVisualProps; // 视觉属性是否有效(从文件加载后为true) }; #endif // NMDATARECTOUTLINE_H