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.

103 lines
2.8 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD> Layer.h
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>COne<6E><65><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CXyͳһ<CDB3><D2BB>д<EFBFBD><D0B4>
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2009-10-07
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "..\DrawModel\baseobject.h"
#include ".\xydc.h"
//<2F>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IDֵ<44><D6B5><EFBFBD><EFBFBD>>=100
class AFX_EXT_CLASS CBaseExtend :
public CBaseObject
{
public:
CBaseExtend(void);
virtual ~CBaseExtend(void);
/** @brief <20><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
virtual void Draw(CXyDC& dc);
/** @brief <20><>¡<EFBFBD>ö<EFBFBD><C3B6><EFBFBD>*/
virtual CBaseExtend* CreateClone();
/** @brief <20><><EFBFBD><EFBFBD>ΪDML<4D><4C>ʽ */
virtual void WriteDML(CFile &fw, const short& ver, int nBaseTabNum);
/** @brief <20><><EFBFBD><EFBFBD>ΪPCG<43><47>ʽ */
virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
/** @brief <20><><EFBFBD><EFBFBD>ƫ<EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD>޸IJ<DEB8><C4B2><EFBFBD> */
virtual void Transform(CXyDC* pDC, float* matrix, BOOL bUndo);
/** @brief typeΪУ<CEAA><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Уλ<D0A3><CEBB><EFBFBD>ĵ<EFBFBD>Уλ<D0A3><CEBB>;pValueΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC>CCalibrate2<65><32>CCalibrate4<65><34> */
virtual void Calibrate(int type, void* pValue);
/** @brief <20><><EFBFBD><EFBFBD>XY<58><59><EFBFBD><EFBFBD> */
virtual void ExchangeXY(void);
/** @brief ת<><D7AA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD> */
virtual void ExchangeXY(CProjection& xyz);
virtual void ScaleProperty(double sx, double sy);
/** @brief mode=0:<3A>ӣ<EFBFBD>1:<3A><><EFBFBD><EFBFBD>2:<3A>ˣ<EFBFBD>3:<3A><> */
virtual void ScaleCoordinate(double sx, double sy, int mode);
virtual CXy* GetParentXY() { return NULL; } //ggff2025
virtual void SetParentXY(CXy* pxy) { } //ggff2025
virtual void Draw(CXyDC& dc, void* pHowToView) { };
virtual int ReadPCG(CFile &fr, const short& ver);
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>м<EFBFBD><D0BC>ص<EFBFBD><D8B5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> */
virtual int ReadPCGEx(CFile &fr, const short &ver, void *pXy = nullptr);
virtual int ReadPCG(CKXmlParse& xp, const short& ver);
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>м<EFBFBD><D0BC>ص<EFBFBD><D8B5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> */
virtual int ReadPCGEx(CKXmlParse& xp, const short &ver, void *pXy = nullptr);
};
class AFX_EXT_CLASS CBaseExtendType
{
public:
CBaseExtendType(void) {};
virtual CBaseExtend* CreateExtendObject(int nType) { return NULL; }; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49>ű<EFBFBD><C5B1><EFBFBD>>=100
virtual int GetExtendType(LPCTSTR lpszKey) {return 0;}; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>ID<49>ű<EFBFBD><C5B1><EFBFBD>>=100
virtual CString GetTypeName() { return m_TypeName; };
virtual int GetTypeID() { return m_nType; };
CString m_TypeName; //ggff20250326 add
int m_nType;
};
class AFX_EXT_CLASS CBaseExtendManager
{
public:
CBaseExtendManager(void);
~CBaseExtendManager(void);
void AddBaseExtend(CBaseExtendType* pet);
void ClearBaseExtend();
CPtrList m_listExtend; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
CBaseExtend* CreateExtendObject(int nType);
int GetExtendType(LPCTSTR lpszKey);
CString GetTypeNameFromTypeID(int nType);
//BOOL IsExtendType(int nType);
};
extern CBaseExtendManager m_baseExtendManager;
extern "C" AFX_EXT_API CBaseExtendManager * WINAPI AfxGetBaseExtendManager();