#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 &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