#ifndef TRACKCOMMONDATARESULT_H #define TRACKCOMMONDATARESULT_H #pragma once ////////////////////////////////////////////////////////////////////////////// #include "TrackCommonData.h" class CInTrackDepthSegment; class AFX_EXT_CLASS CInTrackCommonData : public CInTrackDepthSegment { protected: void Init(); public: CInTrackCommonData(); CInTrackCommonData(const CRect8& position); virtual ~CInTrackCommonData(); CLONE_WELLOBJECT(CInTrackCommonData) virtual void operator=(CInTrackCommonData& object); public: typedef struct DataItem { DataItem() { pSymbol = NULL; pInclinedSymbol = NULL; } ~DataItem() { if (pInclinedSymbol) delete pInclinedSymbol; }; CString value; CXy* pSymbol; CString strColName; CXy* pInclinedSymbol; CCurveEx leftBorderCurve; //斜井状态下左右的边界曲线 CCurveEx rightBorderCurve; CPoint2D lcpt, rcpt; //左右两侧边界的间点 CCurveEx polygonCurve; } DATAITEM; COLORREF m_BackClr; std::vector m_DataItems; // Implementation protected: DWORD m_nTrackInFlags; //目前没有用上,20251224 //分层符号Flags enum TrackInLayerFlags { TrackInFlagSymbol = 0x0001, // 绘制符号 TrackInFlagText = 0x0002 //绘制文本 }; public: virtual void Draw(CXyDC* pDC); virtual void Serialize(CArchive& ar, const short &ver); //开关变量值 virtual void SetShowSymbol(BOOL bFlag); virtual BOOL IsShowSymbol(); virtual void SetShowText(BOOL bFlag); virtual BOOL IsShowText(); //获取斜井状态下岩性符号对应的左右井边界,供TrackLithObj computedata(),BuidChildObject()调用 2015-10-19 virtual bool CalcInclinedBorder(); void SetDataItemCount(int count); protected: //绘制斜井深度段 void DrawInclined(CXyDC* pDC); //左右边线中点 dfPoint m_ptL; dfPoint m_ptR; CCurveEx m_rotaRectCurve; void DrawRect(CXyDC *pDC,CRect8 showRect); void ClearDataItems(); public: virtual int ReadPCG_SelfData(CKXmlParse& xp, const short& ver, CTrackObj* pTrack); virtual void WritePCG_SelfData(CFile &fw, int nBaseTabNum); public: virtual void SetObjDataToRow(VARINTARR*pRow); void SetDrawSymbol(); CInTrackCommonData::DATAITEM* GetDataItemFromItemDef(CCommonDataDef::CCommonDataItem* pItem); void GetCurveFromBorder(CCurveEx& curve, double sdep, double edep, double ratio); //依靠左右边界曲线,获得一个距离左边界一定比例的深度段曲线。 }; #endif