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.
127 lines
3.3 KiB
C++
127 lines
3.3 KiB
C++
#ifndef TRACKINRESULT_H
|
|
#define TRACKINRESULT_H
|
|
#pragma once
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//主要功能:
|
|
// 解释结果符号类
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
struct InnerLayerStruct
|
|
{
|
|
double fThick;
|
|
double fTop;
|
|
};
|
|
|
|
class CInTrackDepthSegment;
|
|
class AFX_EXT_CLASS CInTrackResult : public CInTrackDepthSegment
|
|
{
|
|
protected:
|
|
void Init();
|
|
|
|
public:
|
|
CInTrackResult();
|
|
CInTrackResult(const CRect8& position);
|
|
virtual ~CInTrackResult() {}
|
|
CLONE_WELLOBJECT(CInTrackResult)
|
|
virtual void operator=(CInTrackResult& object);
|
|
|
|
//属性结构体
|
|
struct PropStruct
|
|
{
|
|
int id;
|
|
double value;
|
|
};
|
|
|
|
double m_fValidThick; // 有效厚度
|
|
CString m_strLayer; // 层名称
|
|
CString m_strResult; // 解释结果(流体)
|
|
CString m_strLitho; // 岩性解释结果
|
|
COLORREF m_fillColor; // 填充颜色
|
|
|
|
CArray<PropStruct, PropStruct> m_propArr; // 属性值
|
|
|
|
//CArray<InnerLayerStruct,InnerLayerStruct> m_InnerLayerArr;////夹层集合
|
|
std::vector<InnerLayerStruct> m_InnerLayerArr; //夹层集合
|
|
|
|
CXy* m_pMarkResult; //结论指针
|
|
CXy* m_pMarkLitho; //岩性符号指针
|
|
CXy* m_pMarkSymbol; //符号指针
|
|
|
|
// Implementation
|
|
protected:
|
|
DWORD m_nTrackInResultFlags; //分层符号开关状态
|
|
//分层符号Flags
|
|
enum TrackInLayerFlags
|
|
{
|
|
TrackInResultFlagSymbol = 0x0001, // 绘制符号
|
|
TrackInResultFlagColorAuto = 0x0002, //是否颜色自动
|
|
TrackInResultFlagShowName = 0x0004, //显示层名
|
|
TrackInResultFlagShowThickness = 0x0008,//显示厚度
|
|
TrackInResultFlagShowPureThickness = 0x0010, //显示纯厚度
|
|
TrackInResultFlagShowResult = 0x0020, //显示解释结果
|
|
TrackInResultFlagRenderBrief = 0x0040, //Resform中这样是简化显示
|
|
TrackInResultFlageShowStr= TrackInResultFlagShowName | TrackInResultFlagShowThickness | TrackInResultFlagShowPureThickness | TrackInResultFlagShowResult,
|
|
};
|
|
|
|
public:
|
|
virtual void Draw(CXyDC* pDC);
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
//开关变量值
|
|
virtual void SetTrackInResultFlags(DWORD flags);
|
|
virtual void SetShowSymbol(BOOL bFlag);
|
|
virtual void SetColorAuto(BOOL bFlag);
|
|
|
|
virtual DWORD GetTrackInResultFlags();
|
|
virtual BOOL IsShowSymbol();
|
|
|
|
virtual BOOL IsColorAuto();
|
|
|
|
virtual BOOL IsShowName();
|
|
void SetShowName(BOOL bShow);
|
|
|
|
virtual BOOL IsShowThickness();
|
|
void SetShowThickness(BOOL bShow);
|
|
|
|
virtual BOOL IsShowPureThickness();
|
|
void SetShowPureThickness(BOOL bShow);
|
|
|
|
virtual BOOL IsShowResult();
|
|
void SetShowResult(BOOL bShow);
|
|
|
|
virtual BOOL IsShowRenderBrief();
|
|
void SetShowRenderBrief(BOOL bShow);
|
|
|
|
void DisableShowMark();
|
|
|
|
CString GetMarkSymbol(CString strResult = "");
|
|
|
|
//获取斜井状态下岩性符号对应的左右井边界,供TrackLithObj computedata(),BuidChildObject()调用 2015-10-19
|
|
virtual bool CalcInclinedBorder();
|
|
|
|
void SetResultName(CString name);
|
|
|
|
protected:
|
|
//绘制斜井深度段
|
|
void DrawInclined(CXyDC* pDC);
|
|
//左右边线中点
|
|
dfPoint m_ptL;
|
|
dfPoint m_ptR;
|
|
CCurveEx m_rotaRectCurve;
|
|
|
|
void DrawRect(CXyDC *pDC,CRect8 showRect);
|
|
void MakeIncliendMark();
|
|
public:
|
|
virtual int ReadPCG_SelfData(CKXmlParse& xp, const short& ver, CTrackObj* pTrack);
|
|
virtual void WritePCG_SelfData(CFile &fw, int nBaseTabNum);
|
|
int m_tSlotType; //读取pcg文件时的临时变量
|
|
public:
|
|
virtual void SetObjDataToRow(VARINTARR*pRow);
|
|
virtual CString GetLayerName() { return this->m_strLayer; }
|
|
|
|
void SetDrawSymbol();
|
|
};
|
|
|
|
#endif
|