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.
nmWATI/Include/mTool/mToolPvt/iWxPvtPhaseParaCal.h

92 lines
2.4 KiB
C

#pragma once
#include "Defines.h"
#include "iWxPvtSubPhase.h"
#include "mToolPvt_global.h"
class M_TOOL_PVT_EXPORT iWxPvtPhaseParaCal : public QObject
{
Q_OBJECT
public:
explicit iWxPvtPhaseParaCal(QString sFluidType, \
QString sPhaseType);
~iWxPvtPhaseParaCal();
public:
// 关联信息
void bindSubHeader(iWxPvtSubHeader* pSubHeader);
// 计算入口
void recalPvtBy(iAlgPvtBase* pAlgPvt, QString sPara, \
VecInt& vecChecked, int nRadio, \
bool bUpdatePlotsIfChecked);
bool _calPvtBy_Common(QString sMethod, VecDouble& vecXs, VecDouble& vecYs);
bool _calPvtBy_Special(QString sMethod, VecDouble& vecXs, VecDouble& vecYs);
// 计算涉及到的信息
void dealwithMethods();
int getMethodSubType(QString sMethod);
void setMemberValuesOfAlgo();
// 计算特殊点
bool calResultPos(QPointF& pt, QString sMethod);
bool calReferPbPos(QPointF& pt, QString sMethod);
double _calResultPosY(double dX, QString sMethod);
// 返回数据
void getVecX(VecDouble& x);
signals:
// 对计算载体设置参数
void sigMemberValueNeeded(iAlgPvtBase*& );
// 获取PbRefer点
void sigReferPbNeeded(QPointF& pt);
// 计算完成后的结果触发
void sigPvtAlgResult(QString sPara, QString sMethodBase, \
QMap<QString, VecDouble>& mapRs, \
QPointF& ptRs, QPointF& ptReferPb, \
bool bUpdatePlotsIfChecked);
// 获取表格数据
void sigGetPvtTableData(QString sPara, VVecVariant& vvec);
void sigGetPvtConstData(QString sPara, double& d);
public:
// 一些公共函数接口
static bool checkIfModeT(QString sPara);
static bool checkIfPbConsidered(QString sPara, QString sPhaseType);
static void getTitleInfos(QString sPara, bool bModeT, \
QString& sTitleX, QString& sTitleY, \
QString& sUnitX, QString& sUnitY);
protected:
// 当前计算的参数对象,通常英文
QString m_sPara;
// PhaseType相类型
QString m_sPhaseType;
// 当前参数对象计算方法相关(
QStringList m_listMethodAlls; //所有的计算方法
// SubHeader
iWxPvtSubHeader* m_pSubHeader;
// 对应的实体类
iAlgPvtBase* m_pAlgPvt;
// 是否温度模式
bool m_bModeT;
// 临时标识
bool m_bUnableSP;
};