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.

51 lines
1.6 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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