#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;//起初流量,其实就是选择的流动段的前一流量 };