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.
nmWTAI-Platform/Include/nmNum/nmData/nmDataVerticalFracturedWell.h

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;
};