You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.5 KiB
C++
70 lines
2.5 KiB
C++
#pragma once
|
|
|
|
#include "nmDataVerticalWell.h"
|
|
#include "nmDataAttribute.h"
|
|
|
|
#include <QVector>
|
|
|
|
class nmDataReservoir;
|
|
|
|
class NM_DATA_EXPORT nmDataVerticalFracturedWell : public nmDataVerticalWell {
|
|
Q_OBJECT
|
|
public:
|
|
nmDataVerticalFracturedWell();
|
|
nmDataVerticalFracturedWell(const nmDataVerticalFracturedWell& other);
|
|
nmDataVerticalFracturedWell& operator=(const nmDataVerticalFracturedWell& other);
|
|
|
|
// 创建当前对象的深拷贝
|
|
nmDataWellBase* clone() const 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;
|
|
|
|
// 连接属性值变化信号
|
|
void connectAttributeSignals() override;
|
|
|
|
// 用于获取某个射孔的允许MD范围
|
|
void getPerforationAllowedMdRange(nmDataPerforation* pPerfToValidate,
|
|
double& dUpperAllowedMd,
|
|
double& dLowerAllowedMd) override;
|
|
|
|
private slots:
|
|
void onFractureAttributeChanged(); // 处理裂缝属性变化,更新裂缝点
|
|
|
|
public:
|
|
void setFractureModel(const nmDataAttribute& attr);
|
|
void setFractureHalfLength(const nmDataAttribute& attr);
|
|
void setFractureHeight(const nmDataAttribute& attr);
|
|
void setFractureMidPointHeight(const nmDataAttribute& attr);
|
|
void setWidth(const nmDataAttribute& attr);
|
|
void setFractureAngle(const nmDataAttribute& attr);
|
|
nmDataAttribute& getFractureModel();
|
|
nmDataAttribute& getFractureHalfLength();
|
|
nmDataAttribute& getFractureHeight();
|
|
nmDataAttribute& getFractureMidPointHeight();
|
|
nmDataAttribute& getWidth();
|
|
nmDataAttribute& getFractureAngle();
|
|
|
|
void setDfc(const nmDataAttribute& attr);
|
|
nmDataAttribute& getDfc();
|
|
|
|
// 设置裂缝信息
|
|
void setFracs();
|
|
QVector<QPointF> getFracs() const;
|
|
|
|
private:
|
|
nmDataAttribute m_fractureModel; // 裂缝模型
|
|
nmDataAttribute m_dFc; // 新增裂缝导流能力
|
|
nmDataAttribute m_fractureHalfLength; // 裂缝半长
|
|
nmDataAttribute m_fractureHeight; // 裂缝高度
|
|
nmDataAttribute m_fractureMidPointHeight; // 裂缝中点高度
|
|
nmDataAttribute m_width; // 裂缝宽度
|
|
nmDataAttribute m_fractureAngle; // 裂缝角度
|
|
|
|
QVector<QPointF> m_vecFracs; // 裂缝的端点位置信息
|
|
|
|
nmDataReservoir* m_pReservoir;
|
|
};
|