|
|
|
|
|
#ifndef TRACKDEPTH_H
|
|
|
|
|
|
#define TRACKDEPTH_H
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> TrackdepthObj.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <09><><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
class CInclinedTrack;
|
|
|
|
|
|
class AFX_EXT_CLASS CTrackDepth : public CInclinedTrack
|
|
|
|
|
|
{
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//DECLARE_SERIAL(CTrackDepth);
|
|
|
|
|
|
void Init();
|
|
|
|
|
|
public:
|
|
|
|
|
|
CTrackDepth();
|
|
|
|
|
|
CTrackDepth(const CRect8& position);
|
|
|
|
|
|
virtual ~CTrackDepth();
|
|
|
|
|
|
public:
|
|
|
|
|
|
double m_fLevel; // <20><><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>
|
|
|
|
|
|
double m_fMajorGrid; // <20><><EFBFBD>̶ȼ<CCB6><C8BC><EFBFBD>
|
|
|
|
|
|
double m_fMinorGrid; // <20>ο̶ȼ<CCB6><C8BC><EFBFBD>
|
|
|
|
|
|
double m_fMajorWidth; // <20><><EFBFBD>̶ȿ<CCB6><C8BF><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_fMinorWidth; // <20>ο̶ȿ<CCB6><C8BF><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GDFLOGPENEXT m_penGridMajor; // <20><><EFBFBD>̶ȱ<CCB6>
|
|
|
|
|
|
GDFLOGPENEXT m_penGridMinor; // <20>ο̶ȱ<CCB6>
|
|
|
|
|
|
GDFLOGFONTEXT m_fontGridMark; // <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString m_TextAlign; // <20><><EFBFBD>뷽ʽ
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
DWORD m_nTrackDepthFlags; // <20><><EFBFBD>ȵ<EFBFBD>״̬
|
|
|
|
|
|
// <20><><EFBFBD>ߵ<EFBFBD>Flags
|
|
|
|
|
|
enum TrackCurveFlags
|
|
|
|
|
|
{
|
|
|
|
|
|
TrackDepthFlagMarkUnit = 0x0001, // <20><>ʾ<EFBFBD><CABE>ע<EFBFBD><D7A2>λ
|
|
|
|
|
|
TrackDepthFlagGridMinor = 0x0002, // <20><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>
|
|
|
|
|
|
TrackDepthFlagMarkLeft = 0x0004, // <20><><EFBFBD><EFBFBD>ע
|
|
|
|
|
|
TrackDepthFlagHideTitle = 0x0008, // <20><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
|
|
|
|
|
|
TrackDepthFlagMarkLevel = 0x0010, // <20><><EFBFBD>ο̶<CEBF>
|
|
|
|
|
|
TrackDepthFlagMarkFeet = 0x0020, // Ӣ<>Ƶ<EFBFBD>λ
|
|
|
|
|
|
TrackDepthFlagGrid = 0x0040, // <20><>ʾ<EFBFBD>̱<EFBFBD>
|
|
|
|
|
|
TrackDepthFlagMarkArrange = 0x0080, // <20><>ֱ<EFBFBD><D6B1>ʾ<EFBFBD><CABE>ע
|
|
|
|
|
|
TrackDepthFlagGridMin = 0x0100, // <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
TrackDepthFlagGridFit = 0x0200, // <20>̶<EFBFBD><CCB6><EFBFBD><EFBFBD>ߴ<EFBFBD>С
|
|
|
|
|
|
TrackDepthFlagMarkBk = 0x0400 // <20><>ʾ<EFBFBD><CABE>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
|
|
|
|
|
|
};
|
|
|
|
|
|
//DWORD m_nDepthTraceStyleFlags; //<2F>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ 0-<2D><><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD> 1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<2D><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD> 4-<2D><><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD> 8-<2D><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD> 11-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
////14-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD> 15-<2D><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//enum LayerTraceStyleFlags
|
|
|
|
|
|
//{
|
|
|
|
|
|
// TraceStyleFlagNoLine = 0x0000, //
|
|
|
|
|
|
// TraceStyleFlagLeftLine = 0x0001, //
|
|
|
|
|
|
// TraceStyleFlagTopLine = 0x0002, //
|
|
|
|
|
|
// TraceStyleFlagRightLine = 0x0004, //
|
|
|
|
|
|
// TraceStyleFlagBottomLine = 0x0008,
|
|
|
|
|
|
// TraceStyleFlagOnlyLeftLine = TraceStyleFlagBottomLine|TraceStyleFlagTopLine|TraceStyleFlagLeftLine,
|
|
|
|
|
|
// TraceStyleFlagOnlyRightLine = TraceStyleFlagBottomLine|TraceStyleFlagTopLine|TraceStyleFlagRightLine,
|
|
|
|
|
|
// TraceStyleFlagAllLine = TraceStyleFlagBottomLine|TraceStyleFlagTopLine|TraceStyleFlagLeftLine|TraceStyleFlagRightLine
|
|
|
|
|
|
//};
|
|
|
|
|
|
|
|
|
|
|
|
// Implementation
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
virtual void DrawdepthMark(CXyDC* pDC); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Draw(CXyDC* pDC);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void SetPenGrid(GDFLOGPENEXT& penmajor, GDFLOGPENEXT& penminor);
|
|
|
|
|
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void SetFontGridMark(GDFLOGFONTEXT& font);
|
|
|
|
|
|
//<2F><><EFBFBD>ÿ̶ȼ<CCB6><C8BC><EFBFBD>
|
|
|
|
|
|
virtual void SetSpace(double major, double minor);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>ֵ
|
|
|
|
|
|
virtual void SetTrackDepthFlags(DWORD flags);
|
|
|
|
|
|
virtual void SetShowMarkUnit(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowGridMinor(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowGrid(BOOL bFlag);
|
|
|
|
|
|
virtual void SetMarkLeft(BOOL bFlag);
|
|
|
|
|
|
virtual void SetMarkFeet(BOOL bFlag);
|
|
|
|
|
|
virtual void SetMarkArrange(BOOL bFlag);
|
|
|
|
|
|
virtual void SetMarkLevel(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowGridMin(BOOL bFlag);
|
|
|
|
|
|
virtual void SetGridFit(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowMrakBk(BOOL bFlag);
|
|
|
|
|
|
|
|
|
|
|
|
virtual DWORD GetTrackDepthFlags();
|
|
|
|
|
|
virtual BOOL IsShowMarkUnit();
|
|
|
|
|
|
virtual BOOL IsShowGridMinor();
|
|
|
|
|
|
virtual BOOL IsShowGrid();
|
|
|
|
|
|
virtual BOOL IsMarkLeft();
|
|
|
|
|
|
virtual BOOL IsMarkFeet();
|
|
|
|
|
|
virtual BOOL IsMarkArrange();
|
|
|
|
|
|
virtual BOOL IsMarkLevel();
|
|
|
|
|
|
virtual BOOL IsShowGridMin();
|
|
|
|
|
|
virtual BOOL IsGridFit();
|
|
|
|
|
|
virtual BOOL IsShowMrakBk();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><CCB6>߱<EFBFBD>
|
|
|
|
|
|
virtual void CalcBorders();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int ReadPCG_Self(CFile &fr,CXmlParse& xp,const short& ver );
|
|
|
|
|
|
//<2F><><EFBFBD>ྮ<EFBFBD><E0BEAE><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int ReadPCG_SelfSection(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
//<2F>°<EFBFBD>pcg<63><67>ȡwelltraceͷ
|
|
|
|
|
|
virtual int ReadPCG_TraceSelf(CXmlParse& xp);
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int ReadPCG_GridStyle(CXmlParse& xp,const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
/// 2015.05.04 ɾ״ͼ<D7B4><CDBC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int ReadPCG_Font(CXmlParse& xp,const short& ver);
|
|
|
|
|
|
virtual int ReadPCG_Major(CXmlParse& xp,const short& ver);
|
|
|
|
|
|
virtual int ReadPCG_Minor(CXmlParse& xp,const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
//дpcg<63><67>ʽ<EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
virtual void WritePCG_Trace(CFile &fw,int nBaseTabNum);
|
|
|
|
|
|
//дpcg<63><67>ʽ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void WritePCG_Data(CFile &fw,int nBaseTabNum);
|
|
|
|
|
|
//дpcg<63><67>ʽ<EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
virtual void WritePCG_TraceSection(CFile &fw,int nBaseTabNum);
|
|
|
|
|
|
//дpcg<63><67>ʽ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void WritePCG_DataSection(CFile &fw,int nBaseTabNum);
|
|
|
|
|
|
|
|
|
|
|
|
struct STick //<2F>̶ȱ<CCB6>
|
|
|
|
|
|
{
|
|
|
|
|
|
CPoint2D pt1; //<2F>߽<EFBFBD><DFBD>ϵĶ˵<C4B6>
|
|
|
|
|
|
CPoint2D pt2; //<2F><><EFBFBD>ڲ<EFBFBD><DAB2>Ķ˵<C4B6>
|
|
|
|
|
|
CString text; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
virtual void SetFontScale(double yScale);// <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD><C8B0><EFBFBD>yͬ<79><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F><>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>
|
|
|
|
|
|
void DrawdepthMarkInclined(CXyDC* pDC);
|
|
|
|
|
|
//<2F><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>
|
|
|
|
|
|
void DrawdepthMarkStraight(CXyDC* pDC);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>,startIndexΪ<78><CEAA>ʼ<EFBFBD><CABC><EFBFBD>ţ<EFBFBD>lratio ΪĿ<CEAA><C4BF><EFBFBD><D7AE>ռ<EFBFBD><D5BC><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>widRatioΪ<6F>̶<EFBFBD><CCB6>߿<EFBFBD><DFBF><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetTick(int& sIndexLeft, int& sIndexRight, CPoint2D& ptHead, CPoint2D& ptTail, double lratio, double widRatio );
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ߣ<EFBFBD><DFA3>ͶԲ<CDB6><D4B2><EFBFBD>,startIndexΪ<78><CEAA>ʼ<EFBFBD><CABC><EFBFBD>ţ<EFBFBD>lratio ΪĿ<CEAA><C4BF><EFBFBD><D7AE>ռ<EFBFBD><D5BC><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>widRatioΪ<6F>̶<EFBFBD><CCB6>߿<EFBFBD><DFBF><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetTick(int& sIndexLeft, int& sIndexRight, CPoint2D& ptHead, CPoint2D& ptTail, CPoint2D& ptOpposit, double lratio, double widRatio );
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>delt_dep<65><70>Ӧ<EFBFBD><D3A6><EFBFBD>ų<EFBFBD><C5B3><EFBFBD>
|
|
|
|
|
|
double GetDeltL(double delt_dep);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֱ֪<D6AA>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>һ<EFBFBD>˵<EFBFBD>pt1<74><31>б<EFBFBD><D0B1>k <20>ͳ<EFBFBD><CDB3><EFBFBD>dist < 0Ϊ<30><CEAA><EFBFBD><EFBFBD><EFBFBD>㣬dist > 0 Ϊ<>Ҳ<EFBFBD><D2B2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>һ<EFBFBD>˵<EFBFBD>pt2
|
|
|
|
|
|
//<2F><><EFBFBD>ģ<DEB8><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a,b,k k2 ks
|
|
|
|
|
|
void CalcSegPoint(/*double a, double b,*/ CPoint2D& pt1, CPoint2D& pt2,/* double k,*/ double dist);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>i<EFBFBD>㵽i+1<><31>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, a,b,<2C><><EFBFBD><EFBFBD>б<EFBFBD><D0B1>k<EFBFBD><6B>k2
|
|
|
|
|
|
void CalcCoefficient(CCurve& curve,int index);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pt1<74>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>ij<EFBFBD><C4B3>
|
|
|
|
|
|
CPoint2D CalcMidPoint(CPoint2D& pt1, CPoint2D& pt2,double dist2pt1);
|
|
|
|
|
|
|
|
|
|
|
|
double a,b;
|
|
|
|
|
|
double k,k2;
|
|
|
|
|
|
double s; //s = sqrt((1/(k2 + 1)));
|
|
|
|
|
|
//<2F>̶ȱ꼯
|
|
|
|
|
|
list<STick> m_ticks;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG_Self(CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
//<2F><><EFBFBD>ྮ<EFBFBD><E0BEAE><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int ReadPCG_SelfSection( CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
//<2F>°<EFBFBD>pcg<63><67>ȡwelltraceͷ
|
|
|
|
|
|
virtual int ReadPCG_TraceSelf(CKXmlParse& xp);
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int ReadPCG_GridStyle(CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
virtual int ReadPCG_Font(CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
virtual int ReadPCG_Major(CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
virtual int ReadPCG_Minor(CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|