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.

130 lines
3.4 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD>: DFDraw<61><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼԪ<CDBC>ؽӿ<D8BD><D3BF><EFBFBD>
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include ".\fmnfrommapping.h"
class CSectionBase;
class AFX_EXT_CLASS CDrawExchange
{
public:
CDrawExchange(void);
virtual ~CDrawExchange(void);
int CreateDrawExchange(CString name,CString m_3dv);
int CreateDrawExchangeMapping(CString sfx,CString sfy);
virtual void Initialize(void);
virtual void* SetDrawExchange(int IsDepth);
virtual double V(double x, double y, double t);
virtual double Exchange(double& x, double& y); //y=time
virtual BOOL IsCanExchange(void);
virtual BOOL IsDrawExchange();
virtual void Clear(void);
double Exchange(double& m, double& n, double &t); //<2F><><EFBFBD><EFBFBD>ʱtΪ<74><CEAA><EFBFBD><EFBFBD>
double DrawExchange(double &x,double &y);
BOOL IsX(void);
BOOL IsY(void);
BOOL IsAny(void);
//<2F>ٶȳ<D9B6><C8B3>Ƿ<EFBFBD><C7B7><EFBFBD>XY<58><59>ʽ<EFBFBD><CABD>
BOOL IsExchangeWidthXY(void)
{
return pDrawExchangeMapping==NULL ? FALSE:TRUE;
}
int GetLineSel(void);
void SetLineSel(int nXYorAny); //0<><30>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>1<EFBFBD><31>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetMN(double& x, double& y);
void SetLineName(int nLineName); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DrawExchangeXY
void SetLineName(CString lpszLineName); //<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DrawExchangeXY<58><59>m_nLineSelect
void SetSection(CSectionBase* pSection);
CSectionBase* GetSection(void);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xΪCDP<44>ţ<EFBFBD><79><CEAA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱyΪʱ<CEAA><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ֵ
double ExchangeToTime(double& x, double& y);
void* GetExchangeToTime(void);
BOOL CreateExchangeToTime(int numx, int numy, double* cdp);
//BEGIN <20><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>Ϊ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ƽ
CCurve* m_pDragCurve; //<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽָ<C6BD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double d0; //<2F><>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ֵ
void ToDragFlat(CCurve* pCurve);
void SetDragCurve(CCurve* pCurve, double bd);
double GetOffsetOfDragFlat(double x0);
BOOL IsDragFlat(void);
//END
protected:
double DrawExchangeWidthMN(double &m,double &n,double &t);
double DrawExchangeWidthXY(double &m,double &n,double &t);
protected:
CSectionBase *pSectionBase;
CDimension3D *pDrawExchange3D;
CDimension3D *pDrawExchange3DOld;
CFmnFromMapping* pDrawExchangeMapping;
void* pExchangeToTime; //<2F><><EFBFBD>ݣ<EFBFBD>CDP<44><50>H<EFBFBD><48><EFBFBD><EFBFBD>ֵ<EFBFBD>ٶ<EFBFBD>V,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʱ<CEAA><CAB1>
int m_nLineSelect; //0<><30>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>1<EFBFBD><31>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double DrawExchangeXY;
CFileMapping MappingFxy;
int m_nSel; //-1Ϊȱʡ<C8B1><CAA1>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>0Ϊʱ<CEAA><CAB1><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD>ʽ<EFBFBD><CABD><31><CEAA>ά<EFBFBD><CEAC><EFBFBD>߷<EFBFBD>ʽ
};
class AFX_EXT_CLASS CDrawExchangeCurve : public CDrawExchange
{
public:
CDrawExchangeCurve(void);
virtual ~CDrawExchangeCurve(void);
virtual void Clear(void);
public:
virtual void Initialize(void);
virtual void* SetDrawExchange(int IsDepth);
virtual double Exchange(double& x, double& y);
virtual BOOL IsCanExchange(void);
virtual BOOL IsDrawExchange();
int CreateDrawExchangeCurve(CString tv_curve_file);
double DrawExchangeWidthCurve(double& x, double& y);
BOOL IsCurveExchange(void);
protected:
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD>߱任<DFB1><E4BBBB>ʽ
CCurve* m_pCurve, *m_pCurveOld;
};
class AFX_EXT_CLASS CDrawExchange2D : public CDrawExchangeCurve
{
public:
CDrawExchange2D(void);
virtual ~CDrawExchange2D(void);
virtual double Exchange(double& x, double& y); //xΪCDP<44>ţ<EFBFBD>yΪʱ<CEAA><CAB1>
virtual BOOL IsDrawExchange();
void SetCurve2D(CCurve* pCurve);
BOOL IsExchange2D(void);
int SetCurve2D(CString strCurveFile);
protected:
double m_prevCDP;
double m_prevX;
double m_prevY;
};
//CDrawExchange2D* GetDrawExchange(void);
//double DrawExchangeToDepth(double &x,double &y);