|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "WellPole.h"
|
|
|
|
|
|
|
|
|
|
|
|
// б<><D0B1><EFBFBD><EFBFBD>
|
|
|
|
|
|
/*
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷʱ,<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תDC<EFBFBD><EFBFBD>ʵ<EFBFBD>ֵ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_HeadLineAngle<EFBFBD>ĽǶ<EFBFBD><EFBFBD><EFBFBD>ת ggff,(Ŀǰ<EFBFBD><EFBFBD>ת<EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ켣<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>)
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS ComputMiniCurvatureTrace //<2F><>С<EFBFBD><D0A1><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>㾮<EFBFBD>켣
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ComputMiniCurvatureTrace();
|
|
|
|
|
|
virtual ~ComputMiniCurvatureTrace();
|
|
|
|
|
|
|
|
|
|
|
|
void ComputeMiniCurveture(CList<Struct_InclinedWell, Struct_InclinedWell> &wellTraceList);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
void GetZbOffset(CList<Struct_InclinedWell, Struct_InclinedWell>& wellTraceList, double dep, double& x, double& y); //<2F><><EFBFBD><EFBFBD><EFBFBD>ȸ<EFBFBD><C8B8>ݾ<EFBFBD><DDBE>켣<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void ComputeProjection(double k,
|
|
|
|
|
|
double x3, double y3,
|
|
|
|
|
|
double &x4, double &y4); //<2F><><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CInclinedTrack;
|
|
|
|
|
|
class AFX_EXT_CLASS CInclinedWellPole : public CWellPole
|
|
|
|
|
|
{
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//DECLARE_SERIAL(CInclinedWellPole);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CInclinedWellPole();
|
|
|
|
|
|
CInclinedWellPole(const CRect8& position);
|
|
|
|
|
|
virtual ~CInclinedWellPole();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>¡<EFBFBD><C2A1><EFBFBD>麯<EFBFBD><E9BAAF>
|
|
|
|
|
|
virtual void* CloneElement(void);
|
|
|
|
|
|
|
|
|
|
|
|
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void MoveTo(CRect8& position);
|
|
|
|
|
|
virtual void MoveHandleTo(int nHandle, CPoint2D point);
|
|
|
|
|
|
virtual void MoveChildren();//<2F>ƶ<EFBFBD><C6B6>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetLevelProportion(double p) { m_level_proportion = p; }
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GetLevelProportion(void) { return m_level_proportion; }
|
|
|
|
|
|
|
|
|
|
|
|
virtual void ComputeTrajectory(void);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
//<2F><>д<EFBFBD><D0B4>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Χ
|
|
|
|
|
|
//virtual void GetRange(CRect8& range);
|
|
|
|
|
|
// <20><><EFBFBD>ƾ<EFBFBD>ͷ
|
|
|
|
|
|
virtual void DrawWellHead(CXyDC* pDC);
|
|
|
|
|
|
//<2F><><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD>߿<EFBFBD>
|
|
|
|
|
|
virtual void DrawWellBodyLine(CXyDC* pDC);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void DrawWellBody(CXyDC* pDC);
|
|
|
|
|
|
// <20><><EFBFBD>ƾ<EFBFBD><C6BE>켣<EFBFBD><ECBCA3><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void DrawTrajectory(CXyDC* pDC);
|
|
|
|
|
|
virtual void Draw(CXyDC* pDC);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>㾮<EFBFBD><E3BEAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
|
virtual void CalculateSize(CPoint2D point);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>б<EFBFBD><D0B1><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ĺ켣(<28>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮƽλ<C6BD><CEBB>)
|
|
|
|
|
|
void ComputeTrajectory(double dep, double &vdep, double &level);
|
|
|
|
|
|
|
|
|
|
|
|
//void ComputeTraceArrange(double dep, double &vdep, double &level);
|
|
|
|
|
|
|
|
|
|
|
|
//void ComputeTraceArrange(void);
|
|
|
|
|
|
|
|
|
|
|
|
void ComputePolyLeftandRight(CPoint2D pt1, CPoint2D pt2, CPoint2D& leftpt, CPoint2D& rightpt, double width, double precent);
|
|
|
|
|
|
|
|
|
|
|
|
//void SortTrack(CTrackObj* pTheMovingTrackObj);
|
|
|
|
|
|
//void SortTrack(CArray<Struct_TrackSort, Struct_TrackSort> &arrayTrackSort);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>Ⱥͽ<C8BA><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>,<2C><>m_topDepV, m_topLevel;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ComputeTrace<63><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2015-9-16
|
|
|
|
|
|
void ComputeTopDepAndLevel(void);
|
|
|
|
|
|
|
|
|
|
|
|
//virtual BOOL RemoveSelection();
|
|
|
|
|
|
|
|
|
|
|
|
double LevelToScreenCX(double dLevel /* ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>m */);
|
|
|
|
|
|
double ScreenCXToLevel(double dCX);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ͶӰ<CDB6>Ƕ<EFBFBD>,ֵ<><D6B5><EFBFBD><EFBFBD>0-360<36><30>
|
|
|
|
|
|
void SetProjectionAngle(double dDegree);
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1>ǰͶӰ<CDB6>Ƕ<EFBFBD>
|
|
|
|
|
|
double GetProjectionAngle(void) { return m_dProjectionAngle; }
|
|
|
|
|
|
CCurveEx* GetTrajectoryDisplayCurve() { return &m_trajectoryCurve; }
|
|
|
|
|
|
|
|
|
|
|
|
virtual void GetFrameCurve(std::vector<CPoint2D>& curvePts);//ggff
|
|
|
|
|
|
virtual BOOL IsInRange(CRect8& range);//ggff
|
|
|
|
|
|
virtual CPoint2D ReCalculatePoint(CPoint2D point);
|
|
|
|
|
|
virtual void GetRange(CRect8& range);
|
|
|
|
|
|
void GetTracksFromOtherWell(CWellPole *pWellObj); //<2F><>һ<EFBFBD>ھ<EFBFBD><DABE>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5>,<2C><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>Ĺ켣<C4B9><ECBCA3><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ע<>ⲻ<EFBFBD>Ǹ<EFBFBD><C7B8>Ƶ<EFBFBD>,<2C>Ǵ<EFBFBD>ԭ<EFBFBD><D4AD>ֱ<EFBFBD><D6B1>ժ<EFBFBD><D5AA><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>)
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EEA3AC>ֵ<EFBFBD><D6B5><EFBFBD>㴦<EFBFBD><E3B4A6>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ʱƽ<CAB1><C6BD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>false 2015-9-16
|
|
|
|
|
|
bool InterpolateDepVandLevel(double dep, double& depV, double& level);
|
|
|
|
|
|
// <20>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>ˮƽλ<C6BD>ƣ<EFBFBD><C6A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ComputeDisplayTrajectory();
|
|
|
|
|
|
|
|
|
|
|
|
void GetInclinedWellRange(CRect8 &range, vector<CInclinedTrack*>& trackVec); //<2F>õ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>ķ<EFBFBD>Χ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double m_dProjectionAngle; //ͶӰ<CDB6>Ƕȣ<C7B6>[0,360)<29><>
|
|
|
|
|
|
CCurveEx m_trajectoryCurve; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƶľ<C6B5><C4BE>켣<EFBFBD><ECBCA3><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
GDFLOGPENEXT m_penTrajectory; //<2F>켣<EFBFBD>߱<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
double m_topDepV; //<2F><><EFBFBD>ڶ<EFBFBD>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
|
double m_topLevel; //<2F>뾮<EFBFBD>ڵ<EFBFBD>ˮƽλ<C6BD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int m_nTraceTrackNum; //<2F>켣<EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ETrackType m_traceTrackType; //<2F>켣<EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ETrackBorder m_traceTrackBorder; //<2F>켣<EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|