#ifndef TRACKINCOREWELL_H #define TRACKINCOREWELL_H #pragma once ////////////////////////////////////////////////////////////////////////////// //主要功能: // 道内井壁取心符号类 ///////////////////////////////////////////////////////////////////////////// // 井壁取心符号对象 class AFX_EXT_CLASS CInTrackCoreWell : public CInTrackDepthSegment { protected: void Init(); public: CInTrackCoreWell(); CInTrackCoreWell(const CRect8& position); CLONE_WELLOBJECT(CInTrackCoreWell) virtual void operator=(CInTrackCoreWell& object); CString m_strLith; //岩性 CString m_strOilGas; //含油气性 CString m_strClr; //颜色名称 int m_nTimes; //取心次数 CXy* m_pMarkLitho; //岩性符号指针 CXy* m_pMarkOilGas; //油气性符号指针 int m_SameNums; //相同取心数据的个数 int m_OffsetNum; //偏移的取心数据方位 // Implementation public: virtual int HitTest(CPoint2D point, double dHandleSize, BOOL bSelected) {return 0;}; virtual void Serialize(CArchive& ar, const short &ver); virtual void Draw(CXyDC* pDC); virtual void MoveHandleTo(int nHandle, CPoint2D point); virtual BOOL Intersects(const CRect8& rect, double dHandleSize); virtual CRect8 GetSelectedRange(void); CRect8 GetOffSetDrawRect(CRect8 orect); virtual void GetSelectRange(std::vector& PtsVec); protected: //绘制斜井道中符号,由于井壁取心是一个深度点数据,因此绘制时取出该深度点所对应的道内线段,按照该线段的角度旋转dc来绘制 void DrawInclined(CXyDC* pDC); XFORM SetRotateAngleDC(CXyDC *pDC); void RecoverRotateAngleDC(CXyDC *pDC); void DrawRectCore(CXyDC *pDC, CRect8 rect,XFORM *pXform = NULL); //在一个矩形范围内绘制取心符号 public: virtual int ReadPCG_SelfData(CKXmlParse& xp, const short& ver, CTrackObj* pTrack); virtual void WritePCG_SelfData(CFile &fw, int nBaseTabNum); }; #endif