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.

117 lines
4.5 KiB
C++

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden 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.

#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