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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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; //这是模型统一编码
};