|
|
/**************************************************************************************
|
|
|
主要功能:
|
|
|
曲线基类
|
|
|
主要函数列表:
|
|
|
1 设置曲线对象
|
|
|
virtual void CalculateSize(CPoint2D point);
|
|
|
2 画左右刻度
|
|
|
void DrawTitleLeftAndRightContent(CXyDC* pDC, CString left, CString right, GDFLOGFONT logfont,CRect8 rect, GDFLOGBRUSH brush);
|
|
|
3 画曲线头
|
|
|
virtual void DrawCurveHeadLine(CXyDC* pDC);
|
|
|
4 画曲线头
|
|
|
virtual void DrawTrackHead(CXyDC* pDC);
|
|
|
5 画交互曲线头
|
|
|
virtual void DrawActiveCurveHead(CXyDC* pDC);
|
|
|
6 画曲线内容
|
|
|
virtual void DrawCurve(CXyDC* pDC);
|
|
|
7 画曲线
|
|
|
virtual void DrawCurveLine(CXyDC* pDC,CCurveEx& curve,GDFLOGPEN logpen);
|
|
|
8 画部分曲线
|
|
|
virtual void DrawCurveLineSeg(CXyDC* pDC,CCurveEx& curve,int nStart,int nPoint,GDFLOGPEN logpen);
|
|
|
9 画曲线中的散点
|
|
|
virtual void DrawDot(CXyDC* pDC,CCurveEx& curve);
|
|
|
10 画散点曲线
|
|
|
virtual void DrawDotCurve(CXyDC* pDC,CCurveEx& curve,GDFLOGPEN logpen);
|
|
|
11 画阶梯曲线
|
|
|
virtual void DrawStep(CXyDC* pDC,CCurveEx& curve,GDFLOGPEN logpen);
|
|
|
12 画杆状曲线
|
|
|
virtual void DrawRod(CXyDC* pDC,CCurveEx& curve,CRect8 rect,GDFLOGPEN logpen);
|
|
|
13 画杆状曲线图
|
|
|
virtual void DrawRodCurve(CXyDC* pDC,CCurveEx& curve,CRect8 rect,GDFLOGPEN logpen);
|
|
|
14 曲线的填充
|
|
|
virtual void DrawFillCurve(CXyDC* pDC);
|
|
|
15 画道背景
|
|
|
virtual void DrawFill(CXyDC* pDC);
|
|
|
16 画道格线
|
|
|
virtual void DrawGrid(CXyDC* pDC);
|
|
|
**************************************************************************************/
|
|
|
|
|
|
#ifndef TRACKCURVEOBJBASE_H
|
|
|
#define TRACKCURVEOBJBASE_H
|
|
|
#pragma once
|
|
|
#include "InclinedTrack.h"
|
|
|
#include "Data/WellDataObj.h"
|
|
|
|
|
|
struct DiscretreDataStuct
|
|
|
{
|
|
|
float depth;
|
|
|
float value;
|
|
|
};
|
|
|
|
|
|
class AFX_EXT_CLASS CTrackCurveBase : public CInclinedTrack
|
|
|
{
|
|
|
protected:
|
|
|
void Init();
|
|
|
public:
|
|
|
CTrackCurveBase();
|
|
|
virtual ~CTrackCurveBase();
|
|
|
CTrackCurveBase(const CRect8& position);
|
|
|
CLONE_WELLOBJECT(CTrackCurveBase)
|
|
|
virtual void operator=(CTrackCurveBase& object);
|
|
|
|
|
|
public:
|
|
|
|
|
|
//float* m_curve_value; // 曲线数据
|
|
|
//float* m_curve_depth; // 曲线深度
|
|
|
//int m_sample_count; // 曲线的采样数
|
|
|
int m_nSdep; // 开始深度下标
|
|
|
int m_nEdep; // 结束深度下标
|
|
|
int m_curve_num; // 曲线施工号
|
|
|
CString m_curve_unit; // 曲线单位
|
|
|
double m_fRlev; // 曲线的采样间距
|
|
|
double m_fSdep; // 曲线的起始深度
|
|
|
double m_fEdep; // 曲线的结束深度
|
|
|
|
|
|
int m_width; // 曲线占道宽的百分数
|
|
|
int m_offset; // 曲线的偏移量百分数
|
|
|
double m_curve_left; // 曲线的左刻
|
|
|
double m_curve_right; // 曲线的右刻
|
|
|
|
|
|
double m_fMajorSpace; // 深度主刻度间隔
|
|
|
double m_fMinorSpace; // 深度次刻度间隔
|
|
|
int m_nMajorSpace; // 横向主刻度数
|
|
|
int m_nMinorSpace; // 横向副刻度数
|
|
|
GDFLOGPENEXT m_penMajorGrid; // 主刻网格笔
|
|
|
GDFLOGPENEXT m_penMinorGrid; // 次刻网格笔
|
|
|
GDFLOGFONTEXT m_fontHeadMark; // 刻度字体
|
|
|
|
|
|
GDFLOGPENEXT m_penCurve; // 曲线画笔
|
|
|
GDFLOGPENEXT m_penRod; // 杆状图画笔
|
|
|
GDFLOGPENEXT penDot; // dot笔,不需要保存
|
|
|
|
|
|
double m_dHeadMarkPos; // 图头标注位置
|
|
|
double m_dHeadTitlePos; // 图标题位置
|
|
|
CString m_strFillSymbol; // 充填符号
|
|
|
CString m_strFillSideCurve; // 充填边界曲线名
|
|
|
double m_fFillSideValue; // 充填边界阈值
|
|
|
COLORREF m_fillClr; // 曲线填充颜色
|
|
|
|
|
|
COLORREF m_gradientLeftClr; // 渐变色曲线左颜色
|
|
|
COLORREF m_gradientRightClr; // 渐变色曲线右颜色
|
|
|
COLORREF m_gradientMiddleClr; // 渐变色曲线中间颜色
|
|
|
CString m_strGradientCurve; // 渐变色填充曲线
|
|
|
double m_fGradientLeft; // 渐变色曲线左值
|
|
|
double m_fGradientRight; // 渐变色曲线右值
|
|
|
|
|
|
//曲线散点样式时点参数
|
|
|
COLORREF m_dotBorderClr; // 曲线点边框颜色
|
|
|
COLORREF m_dotFillClr; // 曲线点填充颜色
|
|
|
CSize m_dotSize; // 曲线符号大小
|
|
|
CString m_strDotSymbol; // 曲线点符号名称
|
|
|
|
|
|
//绘制使用
|
|
|
CPoint2D m_ptSide; // 阈值点
|
|
|
CCurveEx m_curve; // 曲线点数据,供斜井使用
|
|
|
CXy* m_pMarkFill; // 曲线填充符号指针
|
|
|
CXy* m_pMarkChart; // 曲线散点符号指针
|
|
|
CColorBase m_gradientClrBar; // 渐变颜色标
|
|
|
|
|
|
std::vector<float> m_ReverseRangeVec; //反卷数值区间,数值的第一个左值是曲线本身的m_right,后面每两个数值一个区间
|
|
|
std::vector<GDFLOGPENEXT> m_ReversePenVec;//反卷区间的笔
|
|
|
std::vector<CCurveEx*> m_CurvesVec; // // 曲线点数据 ,直井使用.可以存放多段井曲线数据
|
|
|
std::vector<CCurveEx*> m_CurvesSelectVec; // // 曲线点数据 ,选择使用
|
|
|
|
|
|
BOOL m_bVacuate; //是否抽稀
|
|
|
BOOL m_bCurveRangeAutoSet; // 当从控件中读取曲线数据时,是否要自动计算曲线范围.
|
|
|
BOOL m_bCurveAvgGrid;//是否一直绘制均匀网格(不管是否是对数)
|
|
|
|
|
|
std::vector<CCurveEx*>m_fillCurveVecs; //使用曲线填充时生成的闭合多边形片段集合
|
|
|
std::vector<CCurveEx*>m_fillGradientCurvesVecs;//使用渐进色填充时生成的多边形片段集合。
|
|
|
std::vector<COLORREF> m_fillGradientColors; //对应渐进色多边形的颜色集合。 和m_fillGradientCurvesVecs一同管理。
|
|
|
protected:
|
|
|
ECurveShowMode m_eCurveShowMode; // 显示方式
|
|
|
|
|
|
DWORD m_nTrackCurveFlags; // 曲线开关状态
|
|
|
DWORD m_nTrackCurveFlagsFill; // 曲线填充状态
|
|
|
DWORD m_nTrackCurveFlagsOld; // 旧版本转化新版本
|
|
|
DWORD m_nTrackCurveFlagsShow; // 曲线显示样式开关
|
|
|
DWORD m_nTrackCurveFlagsBrush; // 充填画刷类型
|
|
|
|
|
|
|
|
|
// 曲线Flags
|
|
|
enum TrackCurveFlags
|
|
|
{
|
|
|
TrackCurveFlagBodyBounds = 0x0001, // 显示边框
|
|
|
TrackCurveFlagTitle = 0x0002, // 显示标题
|
|
|
TrackCurveFlagTrans = 0x0004, // 透明
|
|
|
TrackCurveFlagLog = 0x0008, // 对数
|
|
|
TrackCurveFlagGridX = 0x0010, // 显示横网格
|
|
|
TrackCurveFlagGridY = 0x0020, // 显示纵网格
|
|
|
TrackCurveFlagCover = 0x0040, // 覆盖道
|
|
|
TrackCurveFlagAlone = 0x0080, // 独立道
|
|
|
TrackCurveFlagHeadFill = 0x0100, // 显示头充填
|
|
|
TrackCurveFlagHeadLine = 0x0200, // 显示道头曲线横线
|
|
|
TrackCurveFlagHeadGrid = 0x0400, // 显示头标注
|
|
|
TrackCurveFlagLogMode = 0x0800, // 对数模式
|
|
|
TrackCurveFlagReadOnly = 0x1000, // 只读
|
|
|
TrackCurveFlagCombine = 0x2000, // 组合
|
|
|
TrackCurveFlagHide = 0x4000, // 隐藏
|
|
|
TrackCurveFlagSmooth = 0x10000, // 平滑
|
|
|
|
|
|
//old版本兼容使用
|
|
|
TrackCurveStyleStepOld = 0x8000, // 阶梯风格
|
|
|
TrackCurveStyleRodOld = 0x10000, // 杆状风格
|
|
|
TrackCurveStyleDotOld = 0x20000, // 散点风格
|
|
|
TrackCurveStyleAndCurveOld = 0x40000, // 与曲线组合
|
|
|
TrackCurveStyleDotCurveOld = TrackCurveStyleDotOld | TrackCurveStyleAndCurveOld, // 散点曲线风格
|
|
|
TrackCurveStyleRodCurveOld = TrackCurveStyleRodOld | TrackCurveStyleAndCurveOld, // 杆状曲线风格
|
|
|
TrackCurveStyleFillLeftOld = 0x80000, // 左充填风格
|
|
|
TrackCurveStyleFillRightOld = 0x100000, // 右充填风格
|
|
|
TrackCurveStyleFillCurveOld = TrackCurveStyleFillLeftOld | TrackCurveStyleFillRightOld, // 线间充填
|
|
|
};
|
|
|
|
|
|
//曲线充填类型
|
|
|
enum TrackCurveFlagsFill
|
|
|
{
|
|
|
TrackCurveStyleFillLeftV = 0x0001, // 左阈值
|
|
|
TrackCurveStyleFillRightV = 0x0002, // 右阈值
|
|
|
TrackCurveStyleFillLeft = 0x0008, // 左边界
|
|
|
TrackCurveStyleFillRight = 0x0010, // 右边界
|
|
|
TraclCurveFlagsFillAll = TrackCurveStyleFillLeftV | TrackCurveStyleFillRightV | TrackCurveStyleFillLeft | TrackCurveStyleFillRight,
|
|
|
TrackCurveStyleShowSideCurve = 0x0100, // 显示边界曲线
|
|
|
};
|
|
|
|
|
|
//曲线类型
|
|
|
enum TrackCurveFlagsShow
|
|
|
{
|
|
|
TrackCurveStyleCurve = 0x0001, //曲线风格
|
|
|
TrackCurveStyleStep = 0x0002, //阶梯风格
|
|
|
TrackCurveStyleRod = 0x0004, //杆状风格
|
|
|
TrackCurveStyleDot = 0x0008, //散点风格
|
|
|
TrackCurveFlagsGridVisible = 0x0010, //GridStyle Visible
|
|
|
TrackCurveFlagsStickVisible = 0x0020, //StickStyle Visible
|
|
|
};
|
|
|
|
|
|
//画刷类型(颜色、图案、渐变色)
|
|
|
enum TrackCurveFlagsBrush
|
|
|
{
|
|
|
TrackCurveFlagsBrushColor = 0x0001, //颜色充填
|
|
|
TrackCurveFlagsBrushPattern = 0x0002, //图案充填
|
|
|
TrackCurveFlagsBrushVector = 0x0004, //矢量画刷
|
|
|
TrackCurveFlagsBrushGradient = 0x0008, //渐变画刷
|
|
|
TraclCurveFlagsBrushAll = TrackCurveFlagsBrushColor | TrackCurveFlagsBrushPattern | TrackCurveFlagsBrushVector | TrackCurveFlagsBrushGradient,
|
|
|
TrackCurveFlagsGradientCurveLog = 0x0010, //渐变色曲线对数刻度
|
|
|
TrackCurveFlagsGradientMidClrAuto = 0x0020, //渐变色,自动中间色
|
|
|
};
|
|
|
public:
|
|
|
ECurveShowMode GetCurveShowMode() { return m_eCurveShowMode; }
|
|
|
void SetCurveShowMode(ECurveShowMode showMode) { m_eCurveShowMode = showMode; }
|
|
|
|
|
|
//设置曲线对象
|
|
|
virtual void CalculateSize(CPoint2D point);
|
|
|
//画左右刻度
|
|
|
void DrawTitleLeftAndRightContent(CXyDC* pDC, CString left, CString right, GDFLOGFONT logfont,CRect8 rect, GDFLOGBRUSH brush);
|
|
|
|
|
|
//画曲线头
|
|
|
virtual void DrawCurveHeadLine(CXyDC* pDC);
|
|
|
//画交互曲线头
|
|
|
virtual void DrawActiveCurveHead(CXyDC* pDC);
|
|
|
//画曲线内容
|
|
|
virtual void DrawCurve(CXyDC* pDC);
|
|
|
//画曲线
|
|
|
virtual void DrawCurveLine(CXyDC* pDC,CCurveEx& curve,GDFLOGPENEXT logpen);
|
|
|
//画部分曲线
|
|
|
virtual void DrawCurveLineSeg(CXyDC* pDC,CCurveEx& curve,int nStart,int nPoint,GDFLOGPENEXT logpen,int Reverse = 0,float xoffet = 0);
|
|
|
//画带头尾部分曲线
|
|
|
virtual void DrawCurveLineSeg(int &recursionNum,CXyDC* pDC,CCurveEx& curve,int nStart,int nPoint,GDFLOGPENEXT logpen,BOOL bH,CPoint2D hPt,BOOL bT,CPoint2D tPt,int Reverse = 0,float xoffet = 0,BOOL bMoreReverse = FALSE);
|
|
|
//画曲线中的散点
|
|
|
virtual void DrawDot(CXyDC* pDC,CCurveEx& curve);
|
|
|
//画散点曲线
|
|
|
virtual void DrawDotCurve(CXyDC* pDC,CCurveEx& curve,GDFLOGPENEXT logpen);
|
|
|
|
|
|
//画阶梯曲线
|
|
|
virtual void DrawStep(CXyDC* pDC,CCurveEx& curve,GDFLOGPENEXT logpen);
|
|
|
//画杆状曲线
|
|
|
virtual void DrawRod(CXyDC* pDC,CCurveEx& curve,CRect8 rect,GDFLOGPENEXT logpen);
|
|
|
//画杆状曲线图
|
|
|
virtual void DrawRodCurve(CXyDC* pDC,CCurveEx& curve,CRect8 rect,GDFLOGPENEXT logpen);
|
|
|
|
|
|
// 曲线的填充
|
|
|
virtual void DrawFillCurve(CXyDC* pDC);
|
|
|
|
|
|
// 画道背景 已在父类实现
|
|
|
virtual void DrawFill(CXyDC* pDC);
|
|
|
// 画道格线
|
|
|
virtual void DrawGrid(CXyDC* pDC);
|
|
|
|
|
|
virtual void Draw(CXyDC* pDC);
|
|
|
|
|
|
//将计算得到的填充点按照要求换算一下
|
|
|
virtual double GetFillX(int x,CRect8 rect,int leftRightid,BOOL bCut);
|
|
|
|
|
|
//重设矩形范围
|
|
|
virtual void ReSetPosition(CRect8 rect);
|
|
|
|
|
|
//计算曲线上的所有点数组
|
|
|
virtual void ComputePoints();
|
|
|
|
|
|
virtual void ComputePoints(CRect8 positon) {};
|
|
|
//计算斜井曲线上的所有点数组
|
|
|
virtual void ComputePointsInclined();
|
|
|
|
|
|
//将其他曲线道的值变换到当前曲线道内
|
|
|
double TranformCurvePoint(double x /*变换的点x*/,CRect8 rect/*变换曲线的范围*/);
|
|
|
|
|
|
//GetNormalShow 参数说明:blog=是否对数,value=幅度值,rect=曲线区域,返回值=计算得到的坐标点x
|
|
|
virtual double GetNormalShow(BOOL blog,double value,CRect8 &rect); //得到正常显示数据
|
|
|
//GetCutShow 参数说明:blog=是否对数,value=幅度值,rect=曲线区域,&bbreak=是否截断,传出参数,返回值=计算得到的坐标点x
|
|
|
virtual double GetCutShow(BOOL blog,double value,CRect8 &rect); //得到截断显示数据
|
|
|
//GetNormalShow 参数说明:blog=是否对数,value=幅度值,rect=曲线区域,&Brev=是否反卷,传出参数,返回值=计算得到的坐标点x
|
|
|
virtual double GetReverseShow(BOOL blog,double value,CRect8 &rect,BOOL &brev,int &mRevNum); //得到反卷显示数据
|
|
|
|
|
|
//GetNormalShow 参数说明:blog=是否对数,value=幅度值,rect=曲线区域,返回值=计算得到的坐标点x
|
|
|
virtual double GetNormalShow(BOOL blog,double value,CRect8 &rect,double left,double right); //得到正常显示数据
|
|
|
|
|
|
virtual int GetHandleCount();
|
|
|
virtual void MoveTo(CRect8& position);
|
|
|
virtual void MoveToActiveCurveHead(CRect8& position);
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
|
|
|
virtual CWellBaseObj* ObjectAt(const CRect8& rect, double dHandleSize, BOOL bNesting=FALSE);
|
|
|
virtual BOOL IsInRange(CRect8& range);
|
|
|
|
|
|
//老格式转换
|
|
|
virtual void TransformOldToNew(DWORD flags);
|
|
|
|
|
|
//根据填充序号得到符号名和背景色(转换老版本)
|
|
|
virtual BOOL GetFillMark(int nID, CString& str, COLORREF& clr);
|
|
|
|
|
|
virtual void SetPenGrid(GDFLOGPENEXT& penmajor, GDFLOGPENEXT& penminor);
|
|
|
virtual void SetFontHeadMark(GDFLOGFONTEXT& font, BOOL bReplaceClr);
|
|
|
virtual void SetSpace(double major, double minor);
|
|
|
|
|
|
//数据转移
|
|
|
virtual void TransferData(CWellBaseObj* pObj);
|
|
|
virtual CWellDataObj* GetDataObj() { return NULL; }
|
|
|
virtual void SetDataObj(CWellDataObj* pData, BOOL bCopy=TRUE) {}
|
|
|
virtual void GetDataValue(double& dmin, double& dmax) {}
|
|
|
|
|
|
//根据深度值获得曲线值
|
|
|
virtual BOOL GetCurveValue(double dDepth, double& dValue, int& nBegin);
|
|
|
virtual double GetCurveValue(int index);
|
|
|
virtual double GetCurveDepth(int index);
|
|
|
|
|
|
virtual int GetDataCount();
|
|
|
|
|
|
//创建渐变颜色标
|
|
|
virtual void MakeGradientColorBar();
|
|
|
|
|
|
virtual BOOL RemoveChild();
|
|
|
|
|
|
//开关变量值
|
|
|
virtual void SetTrackInCurveFlags(DWORD flags);
|
|
|
virtual void SetTrackInFillFlags(DWORD flags);
|
|
|
virtual void SetTrackInOldFlags(DWORD flags);
|
|
|
virtual void SetFillBrush(DWORD flags);
|
|
|
virtual DWORD GetTrackInCurveFlags();
|
|
|
virtual DWORD GetTrackInFillFlags();
|
|
|
virtual DWORD GetTrackInOldFlags();
|
|
|
virtual DWORD GetFillBrush();
|
|
|
|
|
|
virtual void SetShowTitle(BOOL bFlag);
|
|
|
virtual void SetShowHeadFill(BOOL bFlag);
|
|
|
virtual void SetShowHeadLine(BOOL bFlag);
|
|
|
virtual void SetTransparent(BOOL bFlag);
|
|
|
virtual void SetLog(BOOL bFlag);
|
|
|
virtual void SetShowGridX(BOOL bFlag);
|
|
|
virtual void SetShowGridY(BOOL bFlag);
|
|
|
virtual void SetSmooth(BOOL bFlag);
|
|
|
virtual void SetShowGridHead(BOOL bFlag);
|
|
|
virtual void SetShowCurve(BOOL bFlag);
|
|
|
virtual void SetShowStep(BOOL bFlag);
|
|
|
virtual void SetShowRod(BOOL bFlag);
|
|
|
virtual void SetShowDot(BOOL bFlag);
|
|
|
virtual void SetShowGrid(BOOL bFlag);
|
|
|
virtual void SetShowStick(BOOL bFlag);
|
|
|
virtual void SetShowFillSideCurve(BOOL bFlag);
|
|
|
virtual void SetFillStyleLeft(BOOL bFlag);
|
|
|
virtual void SetFillStyleRight(BOOL bFlag);
|
|
|
virtual void SetFillStyleLeftV(BOOL bFlag);
|
|
|
virtual void SetFillStyleRightV(BOOL bFlag);
|
|
|
virtual void SetFillBrushColor(BOOL bFlag);
|
|
|
virtual void SetFillBrushPattern(BOOL bFlag);
|
|
|
virtual void SetFillBrushVector(BOOL bFlag);
|
|
|
virtual void SetFillBrushGradient(BOOL bFlag);
|
|
|
virtual void SetGradientCurveLog(BOOL bFlag); // 颜色版不支持log
|
|
|
virtual void SetGradientMidClrAuto(BOOL bFlag);
|
|
|
|
|
|
virtual BOOL IsShowTitle();
|
|
|
virtual BOOL IsShowHeadFill();
|
|
|
virtual BOOL IsShowHeadLine();
|
|
|
virtual BOOL IsTransparent();
|
|
|
virtual BOOL IsLog();
|
|
|
virtual BOOL IsShowGridX();
|
|
|
virtual BOOL IsShowGridY();
|
|
|
virtual BOOL IsSmooth();
|
|
|
virtual BOOL IsShowGridHead();
|
|
|
virtual BOOL IsShowCurve();
|
|
|
virtual BOOL IsShowStep();
|
|
|
virtual BOOL IsShowRod();
|
|
|
virtual BOOL IsShowDot();
|
|
|
virtual BOOL IsShowGrid();
|
|
|
virtual BOOL IsShowStick();
|
|
|
virtual BOOL IsShowFillSideCurve();
|
|
|
virtual BOOL IsFillStyleLeft();
|
|
|
virtual BOOL IsFillStyleRight();
|
|
|
virtual BOOL IsFillStyleLeftV();
|
|
|
virtual BOOL IsFillStyleRightV();
|
|
|
virtual BOOL IsFillBrushColor();
|
|
|
virtual BOOL IsFillBrushPattern();
|
|
|
virtual BOOL IsFillBrushVector();
|
|
|
virtual BOOL IsFillBrushGradient();
|
|
|
virtual BOOL IsGradientCurveLog(); // 颜色版不支持log
|
|
|
virtual BOOL IsGradientMidClrAuto();
|
|
|
|
|
|
void SetFillSymbol(CString name);
|
|
|
|
|
|
void ClearCurvesVec();
|
|
|
void ClearCurvesSelectVec();
|
|
|
void ClearFillCurvesVec();
|
|
|
virtual void afterCalculateSize();
|
|
|
void CreateFillCurves();
|
|
|
protected:
|
|
|
//画曲线头
|
|
|
virtual void DrawTrackHead(CXyDC* pDC, CRect8 headrect);
|
|
|
//绘制斜井曲线充填
|
|
|
void DrawFillCurve_Inclined(CXyDC* pDC);
|
|
|
//生成井曲线填充区域,即斜井曲线与井壁形成的闭合区域,存入多边形曲线polygon起始部分为m_curve,bLeft为true表示左闭合多边形,false表示得到右闭合多边形
|
|
|
void GetCurveSolidRegion(CCurve& polygon, bool bLeft);
|
|
|
//生成阈值曲线与井壁组成的多边形,存入多边形曲线中,不成功返回false,bool bLeft == true表示左阈值多边形,false为右阈值多边形
|
|
|
bool GetLimenRegion(CCurve& limenRgn, double limenValue,bool bLeft);
|
|
|
|
|
|
|
|
|
void DrawOneCurve(CXyDC* pDC,CCurveEx *pCurve,GDFLOGPENEXT &logpen,CRect8& rect,int ii);
|
|
|
|
|
|
//画反卷曲线图
|
|
|
virtual void DrawReverseCurve(CXyDC* pDC,CCurveEx& curve,GDFLOGPENEXT& logpen,int &recursionNum); //recursionNums是递归计数,当进行多次递归反卷时计算反卷的次数
|
|
|
virtual void DrawInclineReverseCurve(CXyDC* pDC,CCurveEx& curve);
|
|
|
//pOrgPts 是曲线段增加的头尾点所对应的道左边点;0是头点,1是尾点
|
|
|
void DrawInclineCurveLineSeg(CXyDC* pDC,CCurveEx& curve,int nStart,int nPoint,GDFLOGPENEXT logpen,BOOL bH,CPoint2D hPt,BOOL bT,CPoint2D tPt/*,CPoint2D *pOrgPts*/,int Reverse = 0,float xoffet = 0);
|
|
|
|
|
|
//void CreateFillCurves(CCurveEx &subCurve, CCurveEx* pFillCurve , CTrackCurveBase* pFillSideCurve1 ,CRect8& trackrect);
|
|
|
|
|
|
void CreateFillGradientCurves();
|
|
|
void DrawInclinedTrackGrid(CXyDC* pDC);
|
|
|
|
|
|
public:
|
|
|
// PCG的读写
|
|
|
//读取PCG一条数据道的信息
|
|
|
//virtual int ReadPCG_Title(CFile &fr,const short& ver);
|
|
|
virtual int ReadPCG_SymbolStyle(CXmlParse& xp,const short& ver);
|
|
|
virtual int ReadPCG_GridStyle(CXmlParse& xp,const short& ver);
|
|
|
virtual int ReadPCG_CurveStyle(CXmlParse& xp,const short& ver);
|
|
|
virtual int ReadPCG_StickStyle(CXmlParse& xp,const short& ver);
|
|
|
virtual int ReadPCG_Self(CFile &fr,CXmlParse& xp,const short& ver );
|
|
|
virtual int ReadPCG_Trace(CXmlParse& xp,CFile &fr,const short& ver, PCG_TRACECOL& traceCol,int fVerstion);
|
|
|
|
|
|
int ReadDml_ReverseData(CFile &fr, CXmlParse& xp, const short& ver);
|
|
|
//读取多井曲线道属性
|
|
|
virtual int ReadPCG_TraceSection(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
virtual int ReadPCG_SelfSection(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
virtual int ReadPCG_SelfTraceSection(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
//写pcg格式列模板
|
|
|
virtual void WritePCG_WellColTrace(CFile &fw,int nBaseTabNum);
|
|
|
//写pcg格式的道
|
|
|
virtual void WritePCG_Trace(CFile &fw,int nBaseTabNum);
|
|
|
//写pcg格式的道
|
|
|
virtual void WritePCG_TraceSection(CFile &fw,int nBaseTabNum);
|
|
|
|
|
|
public:
|
|
|
// 曲线开始结束点对应的左右边界桩号
|
|
|
double m_dLeftCurveStartL; //曲线开始时对应的左边界桩号
|
|
|
double m_dLeftCurveEndL; //曲线结束时对应的左边界桩号
|
|
|
double m_dRightCurveStartL; //曲线开始时对应的右边界桩号
|
|
|
double m_dRightCurveEndL; //曲线结束时对应的右边界桩号
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG_SymbolStyle(CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_GridStyle(CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_CurveStyle(CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_StickStyle(CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_Self( CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_Trace(CKXmlParse& xp, const short& ver, PCG_TRACECOL& traceCol, int fVerstion);
|
|
|
|
|
|
int ReadDml_ReverseData( CKXmlParse& xp, const short& ver);
|
|
|
//读取多井曲线道属性
|
|
|
virtual int ReadPCG_TraceSection( CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_SelfSection(CKXmlParse& xp, const short& ver);
|
|
|
virtual int ReadPCG_SelfTraceSection( CKXmlParse& xp, const short& ver);
|
|
|
|
|
|
public:
|
|
|
void CheckLogLeftRightValue();
|
|
|
|
|
|
};
|
|
|
#endif
|