#ifndef TRACKINRESULT_H #define TRACKINRESULT_H #pragma once ////////////////////////////////////////////////////////////////////////////// //主要功能: // 解释结果符号类 ///////////////////////////////////////////////////////////////////////////// struct InnerLayerStruct { double fThick; double fTop; }; class CInTrackDepthSegment; class AFX_EXT_CLASS CInTrackResult : public CInTrackDepthSegment { protected: void Init(); public: CInTrackResult(); CInTrackResult(const CRect8& position); virtual ~CInTrackResult() {} CLONE_WELLOBJECT(CInTrackResult) virtual void operator=(CInTrackResult& object); //属性结构体 struct PropStruct { int id; double value; }; double m_fValidThick; // 有效厚度 CString m_strLayer; // 层名称 CString m_strResult; // 解释结果(流体) CString m_strLitho; // 岩性解释结果 COLORREF m_fillColor; // 填充颜色 CArray m_propArr; // 属性值 //CArray m_InnerLayerArr;////夹层集合 std::vector m_InnerLayerArr; //夹层集合 CXy* m_pMarkResult; //结论指针 CXy* m_pMarkLitho; //岩性符号指针 CXy* m_pMarkSymbol; //符号指针 // Implementation protected: DWORD m_nTrackInResultFlags; //分层符号开关状态 //分层符号Flags enum TrackInLayerFlags { TrackInResultFlagSymbol = 0x0001, // 绘制符号 TrackInResultFlagColorAuto = 0x0002, //是否颜色自动 TrackInResultFlagShowName = 0x0004, //显示层名 TrackInResultFlagShowThickness = 0x0008,//显示厚度 TrackInResultFlagShowPureThickness = 0x0010, //显示纯厚度 TrackInResultFlagShowResult = 0x0020, //显示解释结果 TrackInResultFlagRenderBrief = 0x0040, //Resform中这样是简化显示 TrackInResultFlageShowStr= TrackInResultFlagShowName | TrackInResultFlagShowThickness | TrackInResultFlagShowPureThickness | TrackInResultFlagShowResult, }; public: virtual void Draw(CXyDC* pDC); virtual void Serialize(CArchive& ar, const short &ver); //开关变量值 virtual void SetTrackInResultFlags(DWORD flags); virtual void SetShowSymbol(BOOL bFlag); virtual void SetColorAuto(BOOL bFlag); virtual DWORD GetTrackInResultFlags(); virtual BOOL IsShowSymbol(); virtual BOOL IsColorAuto(); virtual BOOL IsShowName(); void SetShowName(BOOL bShow); virtual BOOL IsShowThickness(); void SetShowThickness(BOOL bShow); virtual BOOL IsShowPureThickness(); void SetShowPureThickness(BOOL bShow); virtual BOOL IsShowResult(); void SetShowResult(BOOL bShow); virtual BOOL IsShowRenderBrief(); void SetShowRenderBrief(BOOL bShow); void DisableShowMark(); CString GetMarkSymbol(CString strResult = ""); //获取斜井状态下岩性符号对应的左右井边界,供TrackLithObj computedata(),BuidChildObject()调用 2015-10-19 virtual bool CalcInclinedBorder(); void SetResultName(CString name); protected: //绘制斜井深度段 void DrawInclined(CXyDC* pDC); //左右边线中点 dfPoint m_ptL; dfPoint m_ptR; CCurveEx m_rotaRectCurve; void DrawRect(CXyDC *pDC,CRect8 showRect); void MakeIncliendMark(); public: virtual int ReadPCG_SelfData(CKXmlParse& xp, const short& ver, CTrackObj* pTrack); virtual void WritePCG_SelfData(CFile &fw, int nBaseTabNum); int m_tSlotType; //读取pcg文件时的临时变量 public: virtual void SetObjDataToRow(VARINTARR*pRow); virtual CString GetLayerName() { return this->m_strLayer; } void SetDrawSymbol(); }; #endif