////////////////////////////////////////////////////////////////////////////// //文件 PointNameBase.h //主要功能: // //程序编写: 2005-12-07 ///////////////////////////////////////////////////////////////////////////// #pragma once #include ".\name.h" #include ".\xmlparse.h" class AFX_EXT_CLASS CPointNameBase : public CName, public CPoint3D { public: CPointNameBase(void); virtual ~CPointNameBase(void); int64_t GetId() const; void SetId(int64_t id); virtual void ScaleCoordinate(double sx, double sy, int mode); //mode=0:加,1:减,2:乘,3:除 virtual void Offset(double dx, double dy); virtual void ScaleCoor(double xs, double ys, double dx, double dy); virtual void ExchangeXY(void); //交换XY坐标 virtual void ExchangeXY(void* pProjection); //转换到指定投影坐标,CPrljectio* pProjection virtual void Rotate(double xs, double ys, double angle); virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint); void Serialize(CArchive& ar, const short &ver) override; virtual void WriteDML(CString strTitle, CFile &fw, const short& ver, int nBaseTabNum); virtual int ParseDML(CXmlParse& xp, const short &ver); virtual void WritePCG(CString strTitle, CFile &fw, const short& ver, int nBaseTabNum); virtual int ParsePCG(CXmlParse& xp, const short &ver); void operator=(CPointNameBase& pn); // type为校正类型,比如两点校位、四点校位等;value为类对象指针,如CCalibrate2、CCalibrate4等 void Calibrate(int type, void* pValue, double &width, double &height); double angle; private: int64_t m_id = -1; public: virtual int ParsePCG(void *pxp, const short &ver); };