#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* 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 m_mapRsDatas; // 结果:特殊点 QPointF m_ptResult; QPointF m_ptReferPb; private: QString m_sColX; };