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++

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 "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;
};