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/mAlgDiffusion/iAlgDiffusionKK.h

50 lines
1.4 KiB
C

#pragma once
#include "iAlgDiffusionBase.h"
// 模型方法
enum KkModelMethod
{
KK_M_Power = 0, //乘幂
KK_M_Exp, //指数
KK_M_Unknown
};
// 计算
class M_DIFFUSION_EXPORT iAlgDiffusionKK : public iAlgDiffusionBase
{
public:
iAlgDiffusionKK();
// 计算函数(调用算法)
virtual bool cal(VecDouble vecX, VecDouble& vecY1, VecDouble& vecY2);
virtual bool cal(double dIn, double& dOut1, double& dOut2);
virtual bool cal(VecDouble vecX, VecDouble& vecY);
virtual bool cal(double dIn, double& dOut);
/// @brief 根据dX/dY(左侧/右侧的第二个点),反算求解指数
/// @param dIndex求解的指数
/// @param dX,dY 点通常指的是鼠标移动后对应的数值点
/// @param bL(左侧还是右侧左侧为第一个右侧为第2个)
virtual bool inversCal(double& dIndex, double dX, double dY, bool bL);
protected:
// 把参数Map解析为成员变量
virtual bool parseParas2Members(QStringList& listTagParas, QStringList& listTagModels);
// 输入(参数+输入)正确性验证
virtual bool checkParas();
virtual bool checkInputs();
protected:
double m_dIndex1; //指数1比如Kro指数
KkModelMethod m_oModel1;//模型1比如Kro模型
double m_dIndex2; //指数2比如Krw指数
KkModelMethod m_oModel2;//模型2比如Krw模型
};