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.
58 lines
1.8 KiB
C++
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
|