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.
kev/Drawer/SSBase/WellPoleLib/InTrackCoreWell.h

58 lines
1.8 KiB
C++

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