|
|
#pragma once
|
|
|
/*
|
|
|
20250509
|
|
|
增加CEmbedPcg图元可以在平面图中包装单井、剖面等图元,当平面图导入单井柱、剖面时,这些图元都装入CEmbedPcg对象。
|
|
|
目前每个CEmbedPcg只包含一个扩展图元。
|
|
|
注意:在单井、剖面等独立模块中打开这些图元时,不需要使用CEmbedPcg, 单井、剖面对象直接引入到xy中
|
|
|
*/
|
|
|
#include "BaseExtend.h"
|
|
|
#include "PathXy.h"
|
|
|
|
|
|
class CBaseExtendTypeEmbedPcg : public CBaseExtendType
|
|
|
{
|
|
|
public:
|
|
|
CBaseExtendTypeEmbedPcg(void);
|
|
|
|
|
|
virtual CBaseExtend* CreateExtendObject(int nType); //根据指定类型生成对像,类型ID号必须>=100
|
|
|
virtual int GetExtendType(LPCTSTR lpszKey); //根据指定字符串生成对像类型,类型ID号必须>=100
|
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
class CBaseExtendTypeEmbedPcgUitility
|
|
|
{
|
|
|
public:
|
|
|
CBaseExtendTypeEmbedPcgUitility();
|
|
|
virtual ~CBaseExtendTypeEmbedPcgUitility();
|
|
|
};
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
class AFX_EXT_CLASS CEmbedPcg : public CBaseExtend, public CXyBlock
|
|
|
{
|
|
|
public:
|
|
|
CEmbedPcg();
|
|
|
virtual ~CEmbedPcg();
|
|
|
|
|
|
public:
|
|
|
virtual int ReadPCG(CFile &fr, const short &ver);
|
|
|
void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short& ver) override;
|
|
|
|
|
|
void Write(CFile &fw, const short& ver);
|
|
|
virtual int Read(CFile& fr, const short& ver);
|
|
|
void operator=(CEmbedPcg& pn);
|
|
|
|
|
|
virtual BOOL IsInRange(CRect8& range);
|
|
|
virtual void Draw(CXyDC& dc);
|
|
|
virtual void Draw(CXyDC& dc, void* pHowToView);
|
|
|
virtual void Transform(CXyDC* pDC, float* matrix, BOOL bUndo);
|
|
|
|
|
|
virtual void GetRange(CRect8& range);
|
|
|
virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint);
|
|
|
|
|
|
virtual CBaseExtend* CreateClone();
|
|
|
protected:
|
|
|
void OffsetExtendObjs(CXy* xy, CRect8 rect); //ggff2025,平面图引入井或剖面时,由于这些图元只存储相对位置,因此要偏移一下
|
|
|
|
|
|
public:
|
|
|
virtual int ReadPCG(void *pxp, const short &ver);
|
|
|
}; |