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.

123 lines
3.8 KiB
C++

#ifndef TRACKLITHOBJ_H
#define TRACKLITHOBJ_H
#pragma once
//////////////////////////////////////////////////////////////////////////////
//主要功能:
// 岩性道类
/////////////////////////////////////////////////////////////////////////////
class CInclinedTrack;
class AFX_EXT_CLASS CTrackLith : public CInclinedTrack
{
protected:
void Init();
public:
CTrackLith();
CTrackLith(const CRect8& position);
~CTrackLith();
CLONE_WELLOBJECT(CTrackLith)
virtual void operator=(CTrackLith& object);
// Implementation
public:
virtual void Draw(CXyDC* pDC);
//合并岩性符号
BOOL UniteLith(CPoint2D downpt,CPoint2D uppt);
//插入岩性符号
BOOL InsertLith(CPoint2D downpt,CPoint2D uppt);
virtual void AddObjChild(); //创建岩性符号对象
virtual void Serialize(CArchive& ar, const short &ver);
//计算子对象数据,边界多边形等
virtual void CalcBorders();
//设置曲线对象
virtual void ComputeSize(CPoint2D point);
virtual void ResetChildProperties();
////从工区导入数据时创建道内子对象
void BuidChildObject(vector<CString> &fields, StringVectorSet &datas, BOOL bInit=FALSE);
/// 获取道内对象的具体内容
void GetChildDatas(StringVectorSet &dataContent, BOOL bHaveWellName = TRUE);
public:
int m_nWidthLitho; //岩性符号宽度百分比
int m_nWidthColor; //颜色列宽度百分比
int m_nWidthOil; //试油列宽度百分比
int m_nThick; //单位符号厚度(mm)
protected:
DWORD m_nTrackLithFlags; // 岩性道开关状态
// 岩性道Flags
enum TrackLithFlags
{
TrackLithFlagClr = 0x0001, //符号颜色
TrackLithFlagOil = 0x0002, //绘制含油气性
TrackLithFlagWidth = 0x0004, //控制岩性宽度
TrackLithFlagSingle = 0x0008, //单个符号充填
TrackLithFlagRightOil = 0x0010, //含油气性显示在道左边
TrackLithFlagFit = 0x0020, //固定岩性符号大小
TrackLithFlagIncrementOil = 0x0040, //含油气性增宽
TrackLithFlagShowLith = 0x0080 // 显示岩性
};
public:
//开关变量值
virtual void SetTrackLithFlags(DWORD flags);
virtual void SetSingle(BOOL bFlag);
virtual void SetShowColor(BOOL bFlag);
virtual void SetShowOil(BOOL bFlag);
virtual void SetWidth(BOOL bFlag);
virtual void SetFit(BOOL bFlag);
virtual void SetRightOil(BOOL bFlag);
virtual void SetIncrementOil(BOOL bFlag);
virtual void SetShowLith(BOOL bFlag);
virtual DWORD GetTrackLithFlags();
virtual BOOL IsSingle();
virtual BOOL IsShowColor();
virtual BOOL IsShowOil();
virtual BOOL IsWidth();
virtual BOOL IsFit();
virtual BOOL IsRightOil();
virtual BOOL IsIncrementOil();
virtual BOOL IsShowLith();
//读岩性道属性
virtual int ReadPCG_Self(CFile& fr,CXmlParse& xp,const short& ver);
//读岩性道属性多井对比模块下
virtual int ReadPCG_SelfTraceSection(CFile &fr,CXmlParse& xp,const short& ver);
virtual int ReadPCG_DataSection(CFile &fr,const short& ver);
//读pcg格式的数据
virtual int ReadPCG_Data(CFile &fr,const short& ver);
//新版pcg读取welltrace头
virtual int ReadPCG_TraceSelf(CXmlParse& xp);
//写pcg格式的道
virtual void WritePCG_Trace(CFile &fw,int nBaseTabNum);
//写pcg格式的道内数据
virtual void WritePCG_Data(CFile &fw,int nBaseTabNum);
virtual void WritePCG_Ext(CFile &fw,int nBaseTabNum);
//写pcg格式的道
virtual void WritePCG_TraceSection(CFile &fw,int nBaseTabNum);
//写pcg格式的道内数据
virtual void WritePCG_DataSection(CFile &fw,int nBaseTabNum);
/////////////////////////////////////////////////////////////////
public:
virtual int ReadPCG_Self( CKXmlParse& xp, const short& ver);
//读岩性道属性多井对比模块下
virtual int ReadPCG_SelfTraceSection( CKXmlParse& xp, const short& ver);
virtual int ReadPCG_DataSection(CKXmlParse& xp, const short& ver);
//读pcg格式的数据
virtual int ReadPCG_Data(CKXmlParse& xp, const short& ver);
//新版pcg读取welltrace头
virtual int ReadPCG_TraceSelf(CKXmlParse& xp);
public:
virtual void GetChildDatas(CString& jsonStr);
virtual BOOL SetChildDatas(CString& jsonStr);
};
#endif