#pragma once #include "nmDataWellBase.h" class NM_DATA_EXPORT nmDataHorizontalWell : public nmDataWellBase { Q_OBJECT public: nmDataHorizontalWell(); nmDataHorizontalWell(const nmDataHorizontalWell& other); // 拷贝构造函数声明 nmDataHorizontalWell& operator=(const nmDataHorizontalWell& 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; public: void setDrainAngle(const nmDataAttribute& attr); nmDataAttribute& getDrainAngle(); private: nmDataAttribute m_drainAngle; //泄油角度 };