59 lines
1017 B
C++
59 lines
1017 B
C++
#ifndef __CFoldToolKit_H__
|
|
#define __CFoldToolKit_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
typedef struct Equation
|
|
{
|
|
double m_dK0;
|
|
double m_dK1;
|
|
double m_dK2;
|
|
double m_dK3;
|
|
|
|
Equation()
|
|
{
|
|
m_dK0 = m_dK1 = m_dK2 = m_dK3 = 0.0;
|
|
}
|
|
|
|
void InputK(double dK0,double dK1,double dK2,double dK3)
|
|
{
|
|
m_dK0 = dK0;
|
|
m_dK1 = dK1;
|
|
m_dK2 = dK2;
|
|
m_dK3 = dK3;
|
|
}
|
|
}Equation;
|
|
|
|
class CFoldToolKit
|
|
{
|
|
public:
|
|
|
|
static CFoldToolKit* Instance();
|
|
|
|
static void DisInstance();
|
|
|
|
BOOL CalcFoldBx(double dH1,double dH2,double dDist,double dHx,FoldCalcResult& FoldRes);
|
|
|
|
BOOL CalcFoldBx(double dH1,double dH2,double dDist,double dHx,double& dBx);
|
|
|
|
double CalcFoldY(const Equation& equ,double dX);
|
|
|
|
double CalcFoldRx(double dH,double dHx);
|
|
|
|
double CalcEffectDist(double dH1,double dH2,double dDist,double dHx);
|
|
|
|
protected:
|
|
CFoldToolKit(void);
|
|
~CFoldToolKit(void);
|
|
|
|
//载入公式
|
|
void IniEquation();
|
|
protected:
|
|
static CFoldToolKit* m_pInstance;
|
|
std::map<CString,Equation> m_Equations; //公式参数map
|
|
};
|
|
|
|
#endif
|