|
|
#pragma once
|
|
|
|
|
|
#include "Defines.h"
|
|
|
#include "IxSerDes.h"
|
|
|
#include "mToolPvt_global.h"
|
|
|
|
|
|
// 该类PVT每个参数的计算结果(信息比较全)
|
|
|
class M_TOOL_PVT_EXPORT iPvtParaCalRst : virtual public IxSerDes
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
iPvtParaCalRst(QObject* parent = 0);
|
|
|
iPvtParaCalRst(const iPvtParaCalRst &other);
|
|
|
~iPvtParaCalRst();
|
|
|
|
|
|
// 克隆
|
|
|
iPvtParaCalRst* clone();
|
|
|
|
|
|
// 数据重置
|
|
|
void reset();
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 序列化
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
public:
|
|
|
|
|
|
/// @brief 设置参数的某种方法计算结果
|
|
|
/// @param sMethod 计算方法标识(英文,方法名)
|
|
|
/// @param vecYs 计算结果,y列/y轴
|
|
|
/// @param vecXs x列/x轴,如果非空则全局替换x
|
|
|
void setMethodRsData(QString sMethod, VecDouble& vecYs);
|
|
|
void setMethodRsData(QString sMethod, VecDouble& vecXs, VecDouble& vecYs);
|
|
|
|
|
|
/// @brief 获取参数的某种方法计算结果
|
|
|
/// @param sMethod 计算方法标识(英文,方法名)
|
|
|
/// @param vecXs 计算结果,返回x列/x轴
|
|
|
/// @param vecYs 计算结果,返回y列/y轴
|
|
|
/// @param vecPts 计算结果,按点返回
|
|
|
bool getMethodRsData(QString sMethod, VecDouble& vecYs);
|
|
|
bool getMethodRsData(QString sMethod, VecDouble& vecXs, VecDouble& vecYs);
|
|
|
bool getMethodRsData(QString sMethod, VecPointF& vecPts);
|
|
|
|
|
|
/// @brief 获取参数的指定/所有方法计算结果
|
|
|
/// @param vvec 返回结果
|
|
|
/// @param listMethods 指定方法标识,如果为空则所有
|
|
|
/// @param pListTitles 标题
|
|
|
/// @note 1.形式为ZxTableView显示的样式,每一行,为多个方法结果依次排开
|
|
|
/// 2.每一行,x为第一个,其它顺序,按照listMethods进行
|
|
|
/// 如果listMethods为空,则依次为x,m_sMethodBase,其它
|
|
|
bool getAllMethodRsData(VVecDouble& vvec, \
|
|
|
QStringList listMethods = QStringList(), \
|
|
|
QStringList* pListTitles = NULL);
|
|
|
|
|
|
/// @brief 返回数值指针
|
|
|
QMap<QString, VecDouble>* getRstDataPtrs();
|
|
|
|
|
|
/// @brief 结果点
|
|
|
void setPtResult(QPointF& pt);
|
|
|
QPointF getPtResult();
|
|
|
|
|
|
/// @brief Pb参考点
|
|
|
void setPtReferPb(QPointF& pt);
|
|
|
QPointF getPtReferPb();
|
|
|
|
|
|
private:
|
|
|
|
|
|
bool makesureListMethods(QStringList& listMethods);
|
|
|
|
|
|
public:
|
|
|
|
|
|
QString m_sPhaseType; //流体类型/油气水
|
|
|
QString m_sPara; //参数标识(英文)
|
|
|
QString m_sMethodBase; //基准计算方法(以哪个为准)
|
|
|
|
|
|
private:
|
|
|
|
|
|
// 结果:数据,各个计算方法对应的数据
|
|
|
// 注意:所有方法,对应的x列为一致的
|
|
|
QMap<QString, VecDouble> m_mapRsDatas;
|
|
|
|
|
|
// 结果:特殊点
|
|
|
QPointF m_ptResult;
|
|
|
QPointF m_ptReferPb;
|
|
|
|
|
|
private:
|
|
|
|
|
|
QString m_sColX;
|
|
|
};
|