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/mAlg/mAlgDefines/iModelOption.h.bak

163 lines
3.8 KiB
C

#pragma once
#include "mAlgDefines.h"
#include "ZxBaseUtil.h"
#include "mAlgDefines_global.h"
class iModelDesc;
class iModelInfoBase;
// 模型选项内容
class M_ALG_DEFINES_EXPORT iModelOption
{
public:
iModelOption();
void clone(iModelOption* p); //克隆
// 这是对应ListWx各项项
enum mpDescs
{
// 无标志
descNone = 0,
// 井储
descWbs = 0x00000001,
// 井型
descWel = 0x00000002,
// 油藏类型
descRes = 0x00000004,
// 边界
descBdy = 0x00000008,
// 其它1
descOther1 =0x00000010,
// 其它2
descOther2 =0x00000020,
// 扩展1
descExt1 = 0x00000040,
// 扩展2
descExt2 = 0x00000080,
// 扩展3
descExt3 = 0x00000100,
// 扩展4
descExt4 = 0x00000200,
// 扩展5
descExt5 = 0x00000400,
// 扩展6
descExt6 = 0x00000800,
// 待定
descUnknown = 0x00001000
};
// 这是对应Checkbox勾选项
enum mpFlags
{
// 无标志
flagNone = 0,
// 启用压力梯度
flagPressGrad = 0x00000001,
// 动态渗透率
flagDynamicK = 0x00000002,
// 小信号
flagSmallSignal = 0x00000004,
// 应力敏感
flagStressSensitive = 0x00000008,
// 井间干扰
flagInterference = 0x00000010,
// 压裂井
flagFractuWell = 0x00000020,
// 吸附系数
flagAdsorption = 0x00000040,
// 扩展2
flagExt2 = 0x00000080,
// 扩展3
flagExt3 = 0x00000100,
// 扩展4
flagExt4 = 0x00000200,
// 扩展5
flagExt5 = 0x00000400,
// 扩展6
flagExt6 = 0x00000800,
// 待定
flagUnknown = 0x00001000
};
public:
// 标识开启(对应界面上√)
bool isFlagOpen(mpFlags flags) const;
void setFlagOpen(mpFlags flags, bool bOpen);
void setFlagOpen(QString key, bool bOpen);
// 设置模型选项,如井储、井型等
void setMpDesc(QString key, QString sCode, QString sTag = "");
void setMpDesc(mpDescs descs, QString sCode, QString sTag = "");
// 为了方便调用增加
m_Assist_Type getAssistType();
QString getTagWbs();
QString getTagWel();
QString getTagRes();
QString getTagBdy();
QString getTagOfTypeId(int id, const QVector<iModelInfoBase*>* pVec);
//扩展ID对XA的接口
QString getIDWbs();
QString getIDWel();
QString getIDRes();
QString getIDBdy();
QString getIDOfTypeId(int id, const QVector<iModelInfoBase*>* pVec);
// 是否外部模型
AlgModelSrc getAMS();
// bool isCustomModel();
// bool isWxdModel();
QString sumModelInfos();
void parseModelInfos(QString s);
// 每次从界面重新处理前重置一下
void reset();
public:
// 根据文字获取
iModelDesc* matchModelDesc();
bool checkModelDesc(bool loggedIfError = false);
iModelDesc* getModelDesc();
QString getOptionStr(); //当前选项描述,为啥弹出日志
static WellFluidType convertFluidType(QString sTag);
static ModelSeriesType convertModelSeries(QString sTag);
protected:
mpFlags m_oFlags;
// 不涉及序列化该Option对应的ModelDesc
// 如果为空则表示该Option为不支持的算法模型
iModelDesc* m_pModelDesc;
public:
// 对应四个选项,井储、井模型、油藏模型、边界类型
m_Wbs_Type m_oWbsType;
m_Wel_Type m_oWelType;
m_Res_Type m_oResType;
m_Bdy_Type m_oBdyType;
ModelSeriesType m_oMst; //大的分类信息,这是软件启动时导航的选项
WellFluidType m_oWft; //井类别,指:油气水井
QString m_sModelCode; //这是模型统一编码
};