|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "IxSerDes.h"
|
|
|
|
|
|
#include "Defines.h"
|
|
|
|
|
|
#include "mAlgPseudo_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
class zxAlgRegress;
|
|
|
|
|
|
|
|
|
|
|
|
// 这是在PVT/PSEU等方法,拟压力相关的准备过程中,涉及的拟合相关的数据载体,组分计算(源自徐泽轩)
|
|
|
|
|
|
class M_ALGPSEUDO_EXPORT iAlgPseuMethodCompInfo : public QObject,
|
|
|
|
|
|
virtual public IxSerDes
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
explicit iAlgPseuMethodCompInfo();
|
|
|
|
|
|
iAlgPseuMethodCompInfo(const iAlgPseuMethodCompInfo &other);
|
|
|
|
|
|
~iAlgPseuMethodCompInfo();
|
|
|
|
|
|
|
|
|
|
|
|
bool runFit();
|
|
|
|
|
|
bool isFitted();
|
|
|
|
|
|
void clearAlg();
|
|
|
|
|
|
|
|
|
|
|
|
zxAlgRegress* getAlg() { return m_pAlg; }
|
|
|
|
|
|
void makesureAlg(bool bForceReset = true);
|
|
|
|
|
|
|
|
|
|
|
|
double getFitRsBy(double x); //根据x返回y
|
|
|
|
|
|
VecDouble getFitRsBy(VecDouble& x); //根据x返回y
|
|
|
|
|
|
VecPointF getFitRsDefault(bool bScaled = true); //这是返回数据基础之上的拟合结果
|
|
|
|
|
|
|
|
|
|
|
|
iAlgPseuMethodCompInfo* clone();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// KrgKro数据拟合前的数据准备(调整、归一化等等)
|
|
|
|
|
|
static bool prepareKrgKro1(VVecVariant& vvec);
|
|
|
|
|
|
static bool prepareKrgKro2(VVecVariant& vvec);
|
|
|
|
|
|
|
|
|
|
|
|
// Other
|
|
|
|
|
|
static QString getExpr(DataFittingType oType, int nOrder);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// TODO 由于序列化机制问题,暂未启用
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
// 原始数据转换为拟合需要的数据格式
|
|
|
|
|
|
VVecDouble orgFitSrcData();
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// TODO 由于序列化机制问题,如果增减变量,请注意
|
|
|
|
|
|
// bool iPseu3Wrapper::thisToBa(QByteArray& ba)中的变化
|
|
|
|
|
|
|
|
|
|
|
|
QString m_sPara;
|
|
|
|
|
|
VVecVariant m_vvecSrcData;
|
|
|
|
|
|
DataFittingType m_oFitType;
|
|
|
|
|
|
int m_nFitOrder;
|
|
|
|
|
|
QString m_sExpr;
|
|
|
|
|
|
// QMap<QString, QVariant> m_mapOthers;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
zxAlgRegress* m_pAlg;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 辅助类,比如清空
|
|
|
|
|
|
class M_ALGPSEUDO_EXPORT iPseudoCInfoHelper : public QObject
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
iPseudoCInfoHelper(){}
|
|
|
|
|
|
// 清理map
|
|
|
|
|
|
static void clearMapInfos(QMap<QString, iAlgPseuMethodCompInfo*>& map);
|
|
|
|
|
|
|
|
|
|
|
|
};
|