|
|
|
|
#ifndef NMDATAFRACTURE_H
|
|
|
|
|
#define NMDATAFRACTURE_H
|
|
|
|
|
|
|
|
|
|
#include "nmData_global.h"
|
|
|
|
|
#include "nmDataBase.h"
|
|
|
|
|
#include "nmDefines.h"
|
|
|
|
|
#include "nmDataAttribute.h"
|
|
|
|
|
|
|
|
|
|
class NM_DATA_EXPORT nmDataFracture : public nmDataBase
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
nmDataFracture();
|
|
|
|
|
nmDataFracture(const nmDataFracture& other); // 拷贝构造函数
|
|
|
|
|
nmDataFracture& operator=(const nmDataFracture& other); // 赋值运算符
|
|
|
|
|
~nmDataFracture();
|
|
|
|
|
|
|
|
|
|
//virtual void saveDataToDom(rapidjson::Document &dom) override;
|
|
|
|
|
//virtual void readDataFromDom(rapidjson::Document &dom) override;
|
|
|
|
|
|
|
|
|
|
// 实现 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:
|
|
|
|
|
// Getter and Setter for m_sFractureName
|
|
|
|
|
QString getFractureName() const;
|
|
|
|
|
void setFractureName(const QString& sFractureName);
|
|
|
|
|
|
|
|
|
|
// Getter and Setter for m_vecPts
|
|
|
|
|
QVector<QPointF> getFracturePoints() const;
|
|
|
|
|
void setFracturePoints(const QVector<QPointF>& vecPts);
|
|
|
|
|
|
|
|
|
|
nmDataAttribute& getStartX();
|
|
|
|
|
nmDataAttribute& getStartY();
|
|
|
|
|
nmDataAttribute& getEndX();
|
|
|
|
|
nmDataAttribute& getEndY();
|
|
|
|
|
|
|
|
|
|
// Getter and Setter for m_fractureFlowModel
|
|
|
|
|
nmDataAttribute& getFractureFlowModel();
|
|
|
|
|
void setFractureFlowModel(const nmDataAttribute& fractureFlowModel);
|
|
|
|
|
|
|
|
|
|
// Getter and Setter for m_fractureDfc
|
|
|
|
|
nmDataAttribute& getFractureDfc();
|
|
|
|
|
void setFractureDfc(const nmDataAttribute& fractureDfc);
|
|
|
|
|
|
|
|
|
|
// Getter and Setter for m_fractureDw
|
|
|
|
|
nmDataAttribute& getFractureDw();
|
|
|
|
|
void setFractureDw(const nmDataAttribute& fractureDw);
|
|
|
|
|
|
|
|
|
|
nmDataAttribute& getFractureType();
|
|
|
|
|
void setFractureType(const nmDataAttribute& fractureType);
|
|
|
|
|
|
|
|
|
|
bool getPlotVisible() const;
|
|
|
|
|
void setPlotVisible(const bool newState);
|
|
|
|
|
// 批量赋值后手动通知关联视图刷新。
|
|
|
|
|
void notifyDataChanged();
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
// 参数面板修改数据后,通知 Binder 刷新图元和左侧属性面板。
|
|
|
|
|
void sigFractureDataChanged();
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
void onEndPointAttributeChanged();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void connectAttributeSignals();
|
|
|
|
|
void syncEndPointAttributes();
|
|
|
|
|
|
|
|
|
|
// m_vecPts 首尾点的面板绑定属性,不单独参与序列化。
|
|
|
|
|
nmDataAttribute m_startX;
|
|
|
|
|
nmDataAttribute m_startY;
|
|
|
|
|
nmDataAttribute m_endX;
|
|
|
|
|
nmDataAttribute m_endY;
|
|
|
|
|
// 防止“点集 -> 属性 -> 点集”递归同步。
|
|
|
|
|
bool m_bSyncingEndPoints;
|
|
|
|
|
|
|
|
|
|
QString m_sFractureName; // 裂缝名称
|
|
|
|
|
QVector<QPointF> m_vecPts; // 裂缝位置信息
|
|
|
|
|
nmDataAttribute m_fractureFlowModel; // 裂缝流动类型
|
|
|
|
|
nmDataAttribute m_fractureDfc; // 裂缝导流能力
|
|
|
|
|
nmDataAttribute m_fractureDw; // 裂缝储能比
|
|
|
|
|
|
|
|
|
|
nmDataAttribute m_fractureType; // 裂缝类型
|
|
|
|
|
|
|
|
|
|
bool m_bPlotVisible; // 图元是否可见
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // NMDATAFRACTURE_H
|