#pragma once #include "nmDataWellBase.h" class NM_DATA_EXPORT nmDataVerticalWell : public nmDataWellBase { Q_OBJECT public: nmDataVerticalWell(); nmDataVerticalWell(const nmDataVerticalWell& other); nmDataVerticalWell& operator=(const nmDataVerticalWell& 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 setPerforationLength(const nmDataAttribute& attr); nmDataAttribute& getPerforationLength(); private: nmDataAttribute m_perforationLength; };