////////////////////////////////////////////////////////////////////////////// //文件 PointNameEx.h //主要功能: // //程序编写: 2005-12-07 ///////////////////////////////////////////////////////////////////////////// #pragma once #include ".\pointnamebase.h" #include "rect8ex.h" #include "afxdb.h" class AFX_EXT_CLASS CPointNameEx : public CPointNameBase { public: CPointNameEx(void); virtual ~CPointNameEx(void); void Serialize(CArchive& ar, const short &ver) override; virtual int Read(CFile& fr, const short& ver); virtual void Write(CFile &fw, const short& ver); virtual void GetRange(CRect8& range,void* HowToViewPoint); virtual BOOL IsInRange(CRect8& range,void* HowToViewPoint); // type为校正类型,比如两点校位、四点校位等;pValue为类对象指针,如CCalibrate2、CCalibrate4等 virtual void Calibrate(int type, void* pValue); virtual void ScaleProperty(double sx, double sy); virtual void WriteDML(CFile &fw, const short& ver, int nBaseTabNum); virtual int ReadDML(CFile &fr, const short &ver); virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum); virtual int ReadPCG(CFile &fr, const short &ver); virtual void WritePCG2(CFile &fw, const short& ver, int nBaseTabNum); virtual int ReadPCG2(CFile &fr, const short &ver); virtual BOOL IsXYZ(void); int ReadOld(CFile& fr); void operator=(CPointNameEx& pn); void GetRangeText(CRect8& range, void* HowToViewPoint); void GetRangeZ(CRect8& range, void* HowToViewPoint); void GetRangeMark(CRect8& range, void* HowToViewPoint); void WriteXYZ(CFile& fw, char split=',', BOOL bWithName=TRUE); void WriteXYZ(CFile& fw, long nID, CString layer, char split=','); //void WriteToDB(CDatabase &db, CString strTableName, CString Maker, CString Date, CString projection, CString layer); public: virtual int ReadPCG(void *pxp, const short &ver); virtual int ReadPCG2(void *pxp, const short &ver); };