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/InTrackCommonData.h

92 lines
2.3 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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<DATAITEM*> 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