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.
nmWTAI-Platform/Include/mAlg/mAlgPseudo/iAlgPseuMethodCompInfo.h

88 lines
2.0 KiB
C

#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);
};