|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
//文件 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);
|
|
|
};
|