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/mAlgDefines/iDynSkinInfo.h

59 lines
1.5 KiB
C

#pragma once
#include "Defines.h"
#include "IxSerDes.h"
#include "mAlgDefines_global.h"
// 动态表皮相关
class M_ALG_DEFINES_EXPORT iDynSkinInfo : virtual public IxSerDes
{
public:
iDynSkinInfo();
~iDynSkinInfo();
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
public:
// 参数传递
void setActive(bool b);
void setKB(double dK, double dB);
void setBaseQ(double dBaseQ);
bool isActive(){ return m_bActive; }
double getK(){ return m_dK; }
double getB(){ return m_dB; }
double getBaseQ(){ return m_dBaseQ; }
public:
// 所有流量数值
void setAllQs(VecDouble& vec);
// 当前是否正在获取动态的表皮模式(开关)
// 只有在计算历史压力曲线时才设置为true
void setHistRunning(bool b);
bool isHistRunning();
// 当前操作的流动段索引,为了获取前一流量
void setHistSegIndex(int n);
// 获取当前流动段索引对应的表皮
bool getDynSkin(double& dS, int nSegIndex = -1);
private:
// 过程变量,不涉及序列化
VecDouble m_vecQs;
bool m_bHistRunning;//是否正在计算历史曲线
int m_nHistSegIndex;//当前计算的流动段索引
private:
// 涉及序列化
bool m_bActive; //是否启用,整个处理解释过程,是否采用变表皮
double m_dK; //斜率k
double m_dB; //截距b
double m_dBaseQ;//起初流量,其实就是选择的流动段的前一流量
};