|
|
#ifndef SECTIONWELLOBJ_H
|
|
|
#define SECTIONWELLOBJ_H
|
|
|
#pragma once
|
|
|
/*************************************************
|
|
|
|
|
|
Function List:
|
|
|
1. virtual void ComputeSize(CPoint2D point);
|
|
|
//计算井对象及其包含的道对象大小,CPoint2D point为井的左上角
|
|
|
2. virtual virtual void Add(CDrawObj* pObj);
|
|
|
//将对象添加到子对象链表,CDrawObj* pObj为增加的元素
|
|
|
3. virtual void ResetAllObjectsPosition(double offset,CRect8 orig_position);
|
|
|
//重新计算井内非道子对象和道内子对象的位置
|
|
|
//double offset为纵向偏移
|
|
|
//CRect8 orig_position为初始位置
|
|
|
4. virtual void RemoveTrackFromGroupList(CTrackObj* pTrack);
|
|
|
//把道从所属的组中移除,CTrackObj* pTrack为要移除的道指针
|
|
|
5. virtual void SortTrack(CTrackObj* pMovingTrackObj);
|
|
|
//道移动时重新排序位置,CTrackObj* pMovingTrackObj为要移动的道指针
|
|
|
6. virtual virtual void SortTrack(CTrackGroupObj* pMovingGroupObj);
|
|
|
//组移动时重新排序位置,CTrackObj* pMovingTrackObj为要移动的组指针
|
|
|
7. virtual void SortTrackGroup();
|
|
|
//重新排列组的位置
|
|
|
8. virtual void DrawTrackHead(CXyDCBase* pDC);
|
|
|
//画道头
|
|
|
9. virtual void DrawTrackBodyLine(CXyDCBase* pDC);
|
|
|
//画道框
|
|
|
10.virtual void DrawWellHead(CXyDCBase* pDC);
|
|
|
//画井头
|
|
|
11.virtual void DrawWellBodyLine(CXyDCBase* pDC);
|
|
|
//画井框
|
|
|
12.virtual void Draw(CXyDCBase* pDC);
|
|
|
//画井对象
|
|
|
*************************************************/
|
|
|
//井剖面
|
|
|
class AFX_EXT_CLASS CSectionWellObj : public CWellPole
|
|
|
{
|
|
|
public:
|
|
|
CSectionWellObj();
|
|
|
CSectionWellObj(const CRect8& position);
|
|
|
virtual ~CSectionWellObj();
|
|
|
CLONE_WELLOBJECT(CSectionWellObj)
|
|
|
CSectionWellObj& operator=(CSectionWellObj& wellObj);
|
|
|
|
|
|
protected:
|
|
|
//初始化参数
|
|
|
virtual void Initialize();
|
|
|
public:
|
|
|
//克隆,虚函数
|
|
|
virtual void* CloneElement(void);
|
|
|
|
|
|
//重设道头高度(读老版本PCG使用)
|
|
|
virtual void ReSetTrackHead();
|
|
|
//重设井头高度(读老版本PCG使用)
|
|
|
virtual void ReSetWellHead();
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
//绘制井头边线
|
|
|
virtual void DrawWellHeadLine(CXyDC* pDC);
|
|
|
//绘制井体外框
|
|
|
virtual void DrawWellFrameLine(CXyDC* pDC);
|
|
|
//绘制井体边线
|
|
|
virtual void DrawWellBodyLine(CXyDC* pDC);
|
|
|
virtual BOOL IsWellStyleSimple();
|
|
|
virtual BOOL IsSectionWell() { return TRUE; };
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG_Well(CFile &fr,CXmlParse &xp, const short& ver);
|
|
|
virtual int ReadPCG_Traces(CFile &fr,const short& ver);
|
|
|
virtual int ReadPCG_WellColumn(CXmlParse &xp, CFile &fr,const short& ver,CTrackGroup* pTrackGroupParent);
|
|
|
|
|
|
virtual int ReadPCG(CFile &fr, const short &ver);
|
|
|
virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual void WritePCG_WellTraces(CFile &fw,int nBaseTabNum ,BOOL bWriteTracks = TRUE); //pcg文件
|
|
|
virtual void WritePCG_Datas(CFile &fw,int nBaseTabNum); //pcg文件中 道数据
|
|
|
virtual void WritePCG_WellColumn(CFile &fw,int nBaseTabNum,CTrackGroup* pTrackGroupParent); //pcg文件中写组合道模板
|
|
|
|
|
|
//DML读写(调PCG读写)
|
|
|
//virtual int ReadDML(CFile &fr, const short &ver);
|
|
|
//virtual void WriteDML(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual void WriteDML_WellTraces(CFile &fw,int nBaseTabNum); //pcg文件(目前不用,20251201)
|
|
|
|
|
|
|
|
|
//void Read_Tempalte(CFile &fr, const short &ver);
|
|
|
public:
|
|
|
double m_fDepth; //井完钻井深
|
|
|
CString m_strCategory; //井别
|
|
|
double m_fX; //井纵坐标
|
|
|
double m_fY; //井横坐标
|
|
|
double m_fXRotate; //井纵坐标旋转后的坐标
|
|
|
double m_fYRotate; //井横坐标旋转后的坐标
|
|
|
|
|
|
|
|
|
double m_fBaseDepth; //基准深度(拉平显示的井有这数据,)
|
|
|
double m_fHorzDistance;//横向距离
|
|
|
double m_fShowLength; //显示长度
|
|
|
double m_fOffSet; //偏移量
|
|
|
double m_fTopY; //删状图改变仰俯角度时使用
|
|
|
|
|
|
int m_nAlcID; //ID
|
|
|
double m_fTempJDepth; //临时拉平深度
|
|
|
double m_fTempDepth; //临时操作深度
|
|
|
double m_deltaY; //每口井y方向上移动的偏移量,层拉平为了回归真实的位置
|
|
|
|
|
|
int m_nTrackRowMax; //道头的最大行数(读老版本PCG使用)
|
|
|
|
|
|
public:
|
|
|
virtual int ReadPCG_Well(CKXmlParse &xp, const short& ver);
|
|
|
virtual int ReadPCG_Traces(CKXmlParse &xp, const short& ver);
|
|
|
virtual int ReadPCG_WellColumn(CKXmlParse &xp, const short& ver, CTrackGroup* pTrackGroupParent);
|
|
|
virtual int ReadPCG(CKXmlParse &xp, const short &ver);
|
|
|
|
|
|
virtual void WritePCG_TableDatas(CFile& fw, int nBaseTabNum);
|
|
|
virtual int ReadPCG_TableDatas(CKXmlParse& xp, const short& ver);
|
|
|
};
|
|
|
#endif |