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.

523 lines
20 KiB
C

1 month ago
#pragma once
#include "WellStructDefine.h"
#include "WellClassObjGroup.h"
#include "TrackObj.h"
1 month ago
#include "InclinedTrack.h"
1 month ago
#include "TrackGroup.h"
1 month ago
1 month ago
#include "Data/DataObj_Curve.h"
1 month ago
#include "TreeBase.h"
/*
<EFBFBD>߷<EFBFBD> 20250804
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵز<EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><EFBFBD>ʷֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ǽϵ<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ρ<EFBFBD> һ<EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ķֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķֲ<EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD>ʷֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵײ<EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
1 month ago
///<2F><><EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct TrajectoryMeasurePoint
{
double fMeasureDepth; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3BEAE>
double fMeasureAzimuth; //<2F><><EFBFBD><EFBFBD><EFBFBD>㷽λ<E3B7BD><CEBB>
double fMeasureBevel; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<E3BEAE><D0B1>
};
typedef CArray<TrajectoryMeasurePoint> MeasurePointArr;
class AFX_EXT_CLASS CWellPole : public CTrackGroup //CWellClassObjGroup
{
friend class CTrackObj;
public:
CWellPole();
CWellPole(const CRect8& position);
virtual ~CWellPole();
1 month ago
virtual void* CloneElement(void);
virtual CBaseExtend* CreateClone();
void operator=(CWellPole& wellObj);
CLONE_WELLOBJECT(CWellPole)
1 month ago
public:
CRect8 GetHeadRect() { return m_HeadRect; };
double GetTotalWellColumnLen();//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
EWellType m_eWellType;
void SetWellType(EWellType type) { m_eWellType = type; };
EWellType GetWellType() { return m_eWellType; }
1 month ago
virtual BOOL IsSectionWell() { return FALSE; };
1 month ago
public:
virtual int Read(CFile& fr, const short& ver);
virtual void Write(CFile& fw, const short& ver);
1 month ago
1 month ago
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>
void SetDepthProportion(double p) { m_fProportion = p; }
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>
double GetDepthProportion(void) { return m_fProportion; }
struct well_interval
{
double top;
double bottom;
double Spacedis;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>εļ<CEB5><C4BC><EFBFBD> ,<2C><><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>
well_interval() { Spacedis = 100; }
};
std::vector<well_interval> *GetIntervalVec() { return &m_WellIntervalVec; }
void AddWellInterval(double top, double bottom, double Spacedis = 100);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>εļ<CEB5><C4BC><EFBFBD> ,<2C><><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>
int GetIntervalID(double depth); //<2F><><EFBFBD><EFBFBD><EFBFBD>ȵõ<C8B5><C3B5><EFBFBD><EFBFBD>ȶ<EFBFBD>ID
double GetIntervalLength(int interId);//
double GetIntervalBottom(int interId);
double GetIntervalTop(int interId);
double GetIntervalSpaceDis(int interId); //ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>εĿհ׼<D5B0><D7BC><EFBFBD>
void SetIntervalTop(int interId, double top);
void SetIntervalBottom(int interId, double bottom);
void SetIntervalSpaceDis(int interId, double spaceDis);
1 month ago
double GetTotalWellLength();//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3>ȵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ǵ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>ȵ<EFBFBD><C8B5>ܳ<EFBFBD><DCB3><EFBFBD>)
1 month ago
double GetTotalSpacedis();
int GetDepthInWell(double posY, double & retdepth); //<2F><>λ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>ȡ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>id<69>š<EFBFBD><C5A1><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>
int GetPosIntervalID(double posY, int &preId);////<2F><>λ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>ֵ<EFBFBD><D6B5>-1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;preId<49><64>ָǰһ<C7B0><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>-1,preID>-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>preID<49><44>preID+1֮<31><D6AE>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Flags
enum WellFlags
{
WellFlagTitle = 0x0001, // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WellFlagHeadBounds = 0x0002, // <20><>ʾ<EFBFBD><CABE>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
WellFlagBodyBounds = 0x0004, // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WellFlagTrace = 0x0008, // <20><>ʾ<EFBFBD><CABE><EFBFBD>
WellFlagLeftView = 0x0010, // <20><><EFBFBD><EFBFBD>
WellFlagTrackCorra = 0x0020, // <20><>бУ<D0B1><D0A3>
WellFlagShowDepth = 0x0040, // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
WellFlagShow = 0x0080 // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
protected:
std::vector<well_interval> m_WellIntervalVec;
protected:
void Init();
protected:
DWORD m_nWellFlags; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
CString m_strWellName;
CString m_strSymbolProvider;
public:
GDFLOGPENEXT m_penTrack; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GDFLOGPENEXT m_penGridMajor; // <20><><EFBFBD≯<EFBFBD><CCB8>߱<EFBFBD>
GDFLOGPENEXT m_penGridMinor; // <20>ο̸<CEBF><CCB8>߱<EFBFBD>
GDFLOGFONTEXT m_fontTrack; // <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
//LOGFONT m_lfontTrack;
GDFLOGFONTEXT m_fontHeadMark; // <20><>ͷ<EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>
// LOGFONT m_lfontHeadMark;
GDFLOGFONTEXT m_fontGridMark; // <20><><EFBFBD>ȿ̶<C8BF><CCB6><EFBFBD><EFBFBD><EFBFBD>
// LOGFONT m_lfontGridMark;
double m_fMajorSpace; // <20><><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
double m_fMinorSpace; // <20><><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
double m_fProportion; // <20><><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>
double m_fLevel; // <20><><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>
double m_fMarginLR; // <20><><EFBFBD>ҿհ׷<D5B0>Χ (<28>Ժ<EFBFBD><D4BA>׼<EFBFBD><D7BC><EFBFBD>)
double m_fMarginTB; // <20><><EFBFBD>¿հ׷<D5B0>Χ
double m_dSdep;
double m_dEdep;
double m_dDepthRatio;
double m_dHeightWellHead; // <20><>ͷ<EFBFBD>߶<EFBFBD>
double m_dHeightTrackHead; // <20><>ͷ<EFBFBD>߶<EFBFBD>
double fHighTableHead; // ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
double fHighTableFoot; // β<><CEB2><EFBFBD><EFBFBD><EFBFBD>߶ȣ<DFB6>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
CPoint2D m_TraceStartPt; // <20><EFBFBD><ECBCA3>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double m_HeadLineAngle; // <20><>ͷ<EFBFBD><CDB7>ת<EFBFBD>Ƕȣ<C7B6><C8A3><EFBFBD>ʱ<EFBFBD><CAB1>
double m_level_proportion; //ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD> (<28>漰dml,pcg<63>ļ<EFBFBD><C4BC>Ķ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>б<EFBFBD><D0B1>,<2C><><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD>洢ƫת<C6AB><D7AA><EFBFBD>ľ<EFBFBD>ͷ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EABCB0><EFBFBD>ĵ㣬<C4B5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>(ÿ<>ξ<EFBFBD>sizeʱ<65><CAB1><EFBFBD><EFBFBD>)
1 month ago
//CCurveEx m_HeadCurve;
1 month ago
INCLINEDWELLSTRUCTLIST m_InclinedWellList;
int m_nXjDataType; //б<><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL m_bResForm;
CString m_CopyrightName;
protected:
TRACKLIST TrackObjListTmp; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
DWORD nFlagsActionTmp; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>أ<EFBFBD>дģ<D0B4><EFBFBD><E5A1A2><EFBFBD>ݵ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD>
public:
double GetTrackHeadHigh();
void SetWellName(CString strName) {m_strWellName = strName;};
CString GetWellName() { return m_strWellName; }
CCurve& GetWellHeadCurve() { return m_HeadCurve; };
//<2F><>д<EFBFBD><D0B4>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Χ
virtual void GetRange(CRect8& range);
virtual CRect8 GetRect(void);
//<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);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//virtual void Add(CObjectBase* pObj);
//<2F><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void AddObjTitle();
//<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ڷǵ<DAB7><C7B5>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
virtual void ResetAllObjectsPosition(double offset, CRect8 orig_position);
virtual void AddTrack(CTrackObj* pTrackObj);
//virtual void SetParentObj(CObjectBase * pobjParent);
//<2F><>ȫ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void SetPenWell(GDFLOGPENEXT& pen);
virtual void SetFontWell(GDFLOGFONTEXT& font);
virtual void SetPenTrack(GDFLOGPENEXT& pen);
virtual void SetPenGrid(GDFLOGPENEXT& penmajor, GDFLOGPENEXT& penminor);
virtual void SetFontTrack(GDFLOGFONTEXT& font, BOOL bReplaceClr = TRUE);
virtual void SetFontHeadMark(GDFLOGFONTEXT& font, BOOL bReplaceClr = TRUE);
virtual void SetFontGridMark(GDFLOGFONTEXT& font);
virtual void SetSpace(double major, double minor);
virtual void SetTitle(CString text, BOOL bShow = TRUE);
//<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>ֵ
virtual void SetWellFlags(DWORD flags);
virtual void SetShowTitle(BOOL bFlag);
virtual void SetShowHeadBounds(BOOL bFlag);
virtual void SetShowBodyBounds(BOOL bFlag);
virtual void SetShowTrace(BOOL bFlag);
virtual void SetLeftView(BOOL bFlag);
virtual void SetTrackCorra(BOOL bFlag);
virtual void SetShowDepth(BOOL bFlag);
virtual void SetShow(BOOL bFlag);
virtual DWORD GetWellFlags();
virtual BOOL IsShowTitle();
virtual BOOL IsShowHeadBounds();
virtual BOOL IsShowBodyBounds();
virtual BOOL IsShowTrajectory();
virtual BOOL IsLeftView();
virtual BOOL IsTrackCorra();
virtual BOOL IsShowDepth();
virtual BOOL IsShow();
//<2F><><EFBFBD><EFBFBD><E8BEAE><EFBFBD><EFBFBD>
virtual void ReSetWellTitle();
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void ReSetCurveCrossPos();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void ResetCurveCrossWelldepth();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void ClearAllCurveBlock();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>
CTrackCurve *GetObjCurveFromName(CString curveName);
//<2F><><EFBFBD>ҵ<EFBFBD><D2B5>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(<28><><EFBFBD><EFBFBD>ֵ0<D6B5><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int FindTrackPosition(CTrackObj* pMovingTrackObj, CPoint2D& ptBegin, CPoint2D& ptEnd);
CTrackObj* FindDataRefTrackPcg(LPCTSTR lpszDataRef, BOOL bAdd);
////<2F><><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawTrackHead(CXyDC*pDC);
//<2F><><EFBFBD>ƾ<EFBFBD>ͷ<EFBFBD><CDB7>ʾ<EFBFBD><CABE><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawWellHead(CXyDC* pDC);
//<2F><><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><E5A3AC><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawWellBody(CXyDC* pDC);
//<2F><><EFBFBD>ƾ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
virtual void DrawWellHeadLine(CXyDC* pDC);
//<2F><><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawWellBodyLine(CXyDC* pDC);
//<2F><><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawWellFrameLine(CXyDC* pDC);
////<2F><><EFBFBD>ƾ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
virtual void DrawWellHeadFrameLine(CXyDC* pDC);
virtual void DrawWellBodyFrameLine(CXyDC* pDC);
virtual void Draw(CXyDC* pDC);
///<2F>жϵ<D0B6><CFB5>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>еĵ<D0B5>
// virtual BOOL IsInTrackGroup(CTrackGroup* pTrackGroup, CTrackObj* pTrack);
//<2F><><EFBFBD><EFBFBD>ͷβ<CDB7><CEB2><EFBFBD><EFBFBD>
//virtual void DrawTableHead(CXyDC* pDC);
//virtual void DrawTableTail(CXyDC* pDC);
//<2F><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int HitTest(CPoint2D point, double dHandleSize, BOOL bSelected);
virtual int GetHandleCount();
virtual CPoint2D GetHandle(int nHandle);
virtual void MoveChildren();//<2F>ƶ<EFBFBD><C6B6>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
virtual void MoveTo(CRect8& position);
virtual void MoveHandleTo(int nHandle, CPoint2D point);
virtual CWellBaseObj* ObjectAt(const CRect8& rect, double dHandleSize, BOOL bNesting = FALSE);
virtual void Serialize(CArchive& ar, const short &ver);
/* ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>(<28>ǻ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D7AA> */
double DepthToScreenY(double dDepth /* ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m */); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>תΪ<D7AA><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>λ<EFBFBD>á<EFBFBD>
double ScreenYToDepth(double dY); //<2F>߼<EFBFBD>λ<EFBFBD><CEBB>תΪ<D7AA><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>
double HeightToScreenCY(double dHeight /* <20>߶<EFBFBD>m */); // <20><><EFBFBD><EFBFBD>mתΪ<D7AA><CEAA><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
double ScreenCYToHeight(double dCY); //<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򳤶<EFBFBD>mi
////<2F><><EFBFBD>ݾ<EFBFBD><DDBE>ڵ<EFBFBD><DAB5>Ŀ<EFBFBD><C4BF>ȼ<EFBFBD><C8BC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
virtual double ComputeWellWidth();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD><EFBFBD>
virtual void ComputeReadTrackEnd();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>߶<EFBFBD>
virtual void ReSetTrackHead();
//<2F><><EFBFBD>辮ͷ<E8BEAE>߶<EFBFBD>
virtual void ReSetWellHead();
//Ӧ<><D3A6>ģ<EFBFBD><C4A3>
TRACKLIST& GetTemplateList();
virtual void ApplingTemplate(BOOL bFlag = FALSE, double dOldTrackHead = 0.0, double dOldWellHead = 0.0);
void ApplingTemplate(PCG_WELLCOLARRAY & wellColArr);
void ApplingTemplate(PCG_WELLTEMPCOL* pWellColParent, CTrackGroup* pParentGroup);
double GetHeadLineAngle() { return m_HeadLineAngle; }
1 month ago
CPoint2D& GetTraceStartPt();
1 month ago
void SetRotateHeadAngleDC(CXyDC *pDC);
void RecoverRotateHeadAngleDC(CXyDC *pDC);
void SetWellColumnAvgWidth(double dw); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĿ<C3B5><C4BF>Ⱦ<EFBFBD><C8BE>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>
CPoint2D GetAnchorPoint() { return m_HeadRect.TopLeft(); }; //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD>ê<EFBFBD><C3AA>
1 month ago
////<2F><>string vector<6F>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_InclinedWellVec
1 month ago
//void LoadFromStringVec(vector<vector<CString> >& stringVector);
//// <20><><EFBFBD><EFBFBD><E3A1A2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1 month ago
1 month ago
void ComputeTrajectory(double azimuth, double bevel,
double dep, double &depV,
double xo, double yo, double &x, double &y);
//<2F><><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>
void ComputeProjection(double k,
double x3, double y3,
double &x4, double &y4);
1 month ago
//<2F>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>ô<EFBFBD><C3B4><EFBFBD>
1 month ago
double GetVDepth(double depth);
1 month ago
//<2F>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double GetMeasuredDepth(double vdepth);
1 month ago
void SetWellDepth(double sdep, double edep);//<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><C3BE><EFBFBD>ʼֵ
BOOL IsInWellTrackHead(CRect8& range); //<2F>ھ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
virtual void TransferData(CWellBaseObj* pObj);
//void GetAllTrack(TRACKLIST* trackList);
CTrackGroup& GetTrackGroup() { return *(CTrackGroup*)this; }
virtual void SerializeHead(CArchive& ar, const short& ver);
CWellPole* CreateWellObj(DWORD type);
BOOL FindWellColumn(PCG_WELLCOLARRAY & wellColArr, CString strColRef);
1 month ago
1 month ago
double m_k; //ͶӰ<CDB6><EFBFBD><E6B7BD>б<EFBFBD><D0B1>(<28><>ΪͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>)
CString m_strTrajectoryTrackName;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD>
int m_nMeasureCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MeasurePointArr m_MeasurePointsArr; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CloneOtherParameter(const CWellPole & wellObj);
std::vector<CWellDataObj_Curve*> m_CurveDataVecs; //<2F><><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD>в<EFBFBD><D0B2><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void Transform(CXyDC* pDC, float* matrix, BOOL bUndo);
//virtual void Transform(float* matrix, BOOL bUndo);
void SetScale(double xScale, double yScale);
1 month ago
void SetTrajectory(vector<vector<CString> >& stringVector);
void GetTrajectory(vector<vector<CString> >&datas);
1 month ago
1 month ago
double ComputeProjectAngle();
1 month ago
public:
virtual BOOL IsWellStyleSimple();
1 month ago
virtual BOOL IsWellStyleComplete();
1 month ago
protected:
//CTrackGroup m_TrackObjGroup;
public:
//PCG<43><47>д
virtual int ReadPCG(CFile &fr, const short &ver);
virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
virtual void ReadPCGEnd();
//pcg<63><67>ȡ
virtual int ReadPCG_Head(CXmlParse &xp, const short& ver);
virtual int ReadPCG_Styles(CFile &fr, CXmlParse &xp, const short& ver, BOOL bDml = FALSE);
virtual int ReadPCG_WellTemplate(CFile &fr, const short& ver, PCG_WELLCOLARRAY & wellColArr);
virtual int ReadPCG_WellColumn(CXmlParse &xp, CFile &fr, const short& ver, PCG_WELLTEMPCOL* pWellColParent, int& totalCount);
virtual int ReadPCG_Traces(CFile &fr, const short& ver, PCG_WELLCOLARRAY & wellColArr);
virtual int ReadPCG_Datas(CFile &fr, const short &ver);
//virtual int ReadPCG_Exts(CFile &fr, const short &ver);
virtual int ReadPCG_CallOuts(CFile &fr, const short &ver);
virtual int ReadPCG_Trajectory(CFile &fr, CXmlParse &xp, const short &ver);
1 month ago
1 month ago
//pcgд<67><D0B4>
virtual void WritePCG_Head(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> ͷ<><CDB7><EFBFBD><EFBFBD>
virtual void WritePCG_Tail(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> β<><CEB2><EFBFBD><EFBFBD>
virtual void WritePCG_PrintTemplate(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><>ӡģ<D3A1><C4A3>
virtual void WritePCG_Symbols(CFile &fw, const short& ver, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>
virtual void WritePCG_Styles(CFile &fw, int nBaseTabNum, BOOL bDml = FALSE); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
virtual void WritePCG_WellTemplate(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><>ģ<EFBFBD><C4A3>
virtual void WritePCG_WellColumn(CFile &fw, int nBaseTabNum, CTrackGroup* pTrackGroupParent); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ϵ<EFBFBD>ģ<EFBFBD><C4A3>
virtual void WritePCG_Traces(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void WritePCG_Trajectory(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD>
virtual void WritePCG_Datas(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//virtual void WritePCG_Exts(CFile &fw,int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>չ
virtual void WritePCG_CallOuts(CFile &fw, const short& ver, int nBaseTabNum);
virtual void WritePCG_WellIntervals(CFile &fw, int nBaseTabNum);
protected:
int ReadPCG_Styles_Title(CFile &fr, CXmlParse &xp, const short& ver);
int ReadPCG_Styles_Grid(CFile &fr, CXmlParse &xp, const short& ver);
int ReadPCG_Styles_Border(CFile &fr, CXmlParse &xp, const short& ver);
int ReadPCG_Styles_Splitline(CFile &fr, CXmlParse &xp, const short& ver);
int ReadPCG_Styles_Track(CFile &fr, CXmlParse &xp, const short& ver);
void WritePCG_Styles_Title(CFile &fw, int nBaseTabNum);
void WritePCG_Styles_Grid(CFile &fw, int nBaseTabNum);
void WritePCG_Styles_Border(CFile &fw, int nBaseTabNum);
void WritePCG_Styles_Splitline(CFile &fw, int nBaseTabNum);
void WritePCG_Styles_Track(CFile &fw, int nBaseTabNum);
int ReadPCG_WellIntervals(CFile &fr, CXmlParse &xp, const short& ver); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/////////////////////////////////////////////////////////
public:
typedef struct _WellHeadLockInfo
{
BOOL bLock; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ס<EFBFBD>˾<EFBFBD>ͷ
double dShowStartDep;//<2F><>ס<EFBFBD><D7A1>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
double dShowEndDep; ///<2F><>ס<EFBFBD><D7A1>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ľ<EFBFBD><C4BE>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<well_interval> m_BakWellIntervalVec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}WELLHEADLOCKINFO;
WELLHEADLOCKINFO m_LockHeadInfo;
void SetHeadLockState(BOOL block = FALSE, double sdep = 0, double edep = 0);
void SetHeadLockStateDepth(double sdep, double edep); //<2F>ھ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ľ<EFBFBD><C4BE>Ρ<EFBFBD>
double GetHeadLockStartDepth();
double GetHeadLockEndDepth();
double GetDepthLength() { return (m_dEdep - m_dSdep); };
double GetTrackStartTop() { return m_position.top - m_dHeightTrackHead - m_dHeightWellHead; }
/////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual int ReadPCG(CKXmlParse& xp, const short &ver);
virtual int ReadPCG_Head(CKXmlParse &xp, const short& ver);
virtual int ReadPCG_Styles(CKXmlParse &xp, const short& ver, BOOL bDml = FALSE);
virtual int ReadPCG_WellTemplate(CKXmlParse &xp, const short& ver, PCG_WELLCOLARRAY & wellColArr);
virtual int ReadPCG_WellColumn(CKXmlParse &xp, const short& ver, PCG_WELLTEMPCOL* pWellColParent, int& totalCount);
virtual int ReadPCG_Traces(CKXmlParse& xp, const short& ver, PCG_WELLCOLARRAY & wellColArr);
virtual int ReadPCG_Datas(CKXmlParse& xp, const short &ver);
virtual int ReadPCG_CallOuts(CKXmlParse& xp, const short &ver);
virtual int ReadPCG_Trajectory(CKXmlParse& xp, const short &ver);
int ReadPCG_Traces_GetTraceProps(CKXmlParse& xp, PCG_TRACECOL& traceCol);
1 month ago
virtual int ReadPCG_TableDatas(CKXmlParse& xp, const short &ver);
1 month ago
protected:
int ReadPCG_Styles_Title(CKXmlParse &xp, const short& ver);
int ReadPCG_Styles_Grid(CKXmlParse &xp, const short& ver);
int ReadPCG_Styles_Border(CKXmlParse &xp, const short& ver);
int ReadPCG_Styles_Splitline(CKXmlParse &xp, const short& ver);
int ReadPCG_Styles_Track(CKXmlParse &xp, const short& ver);
int ReadPCG_WellIntervals(CKXmlParse &xp, const short& ver); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1 month ago
int ReadPCG_Stratification(CKXmlParse &xp, const short& ver); //<2F><>ȡ<EFBFBD>ز<EFBFBD><D8B2>ֲ㼶<D6B2><E3BCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void WritePCG_Stratification(CFile &fw, int nBaseTabNum); //д<>ز<EFBFBD><D8B2>ֲ㼶<D6B2><E3BCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetOneTrajectory(Struct_InclinedWell& destWell, vector<CString>& srcVec);
void InTrackObjBindDataRow(BOOL bSerialize);
void InitWellDataTables();
void ReadPCG_StratumDivision(CKXmlParse &xp, const short& ver);
void ReadPCG_WellLayerDivision(CKXmlParse &xp, const short& ver);
public:
virtual void GetTrajectoryDatasJson(CString& jsonStr);
virtual BOOL SetTrajectoryDatasJson(CString& jsonStr);
virtual BOOL SetWellStratification(CString& jsonStr);
virtual BOOL SetStratumDivision(CString& jsonStr);
virtual BOOL SetWellSandSets(CString& jsonStr, BOOL bRefreshTracks = FALSE);
void GetWellSandSets(CString& jsonStr);
virtual BOOL SetWellReservesLayers(CString& jsonStr, BOOL bRefreshTracks = FALSE);
void GetWellReservesLayers(CString& jsonStr);
virtual BOOL SetFaultPoints(CString& jsonStr, BOOL bRefreshTracks = FALSE);
virtual void GetFaultPoints(CString& jsonStr);
CWellDataObj* GetWellDataTable(CString strTableId);
virtual void WritePCG_TableDatas(CFile &fw, int nBaseTabNum);
void SetTableRowIDToTreeNode(int colNodeId,CWellDataObj* pWellData);
public:
int GetTableDataRowID(CString tableID, VARINTARR*pRow);
void NotifyTableDataChange(CWellBaseObj* pInTrackObj);
void RefreshTableDataInAllTrack(CString tableID);
void DeleteTableDataRow(CString tableID, CString ChangColId, CWellBaseObj* pDelObj, VARINTARR*pRow);
void UpdateRowData(CString tableID, CWellBaseObj* pBaseObj);
void AddRowData(CString tableID, CWellBaseObj* pBaseObj);
void GetDatasTopBottomDepth(double& top, double &bottom); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>
public:
void ClearData();
std::vector<CWellDataObj*> m_TableDatas;
CTreeBase m_WellStratiTree; //<2F><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
CString m_WellStratificationJson;
CTreeBase m_StratumDivisionTree; //<2F><><EFBFBD>ʷֲ<CAB7><D6B2><EFBFBD>
CString m_strStratumDivisionJson;
BOOL m_bReadFile; //<2F><>ʾ<EFBFBD><CABE><EFBFBD>ڶ<EFBFBD>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>״̬
void ClearTrackLayersBendList();
CRect8 m_tOldPos; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
public:
void CopyWellData(CWellPole& Object);
//InclinedWell
public:
//<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; }
//<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
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 LevelToScreenCX(double dLevel /* ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>m */);
double ScreenCXToLevel(double dCX);
void SetProjectionAngle(double dDegree);
//<2F><>ȡ<EFBFBD><C8A1>ǰͶӰ<CDB6>Ƕ<EFBFBD>
double GetProjectionAngle(void) { return m_dProjectionAngle; }
CCurveEx* GetTrajectoryDisplayCurve() { return &m_trajectoryCurve; }
virtual void ComputeTrajectory(void);
void ComputeTopDepAndLevel(void);
virtual void GetFrameCurve(std::vector<CPoint2D>& curvePts);//ggff
virtual BOOL IsInRange(CRect8& range);//ggff
virtual CPoint2D ReCalculatePoint(CPoint2D point);// б<><D0B1>״<EFBFBD><D7B4><EFBFBD><EFBFBD>,<2C><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>һЩ<D2BB><D0A9>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ<EFBFBD><CEBB>
// <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 ComputePolyLeftandRight(CPoint2D pt1, CPoint2D pt2, CPoint2D& leftpt, CPoint2D& rightpt, double width, double precent);
virtual void DrawTrajectory(CXyDC* pDC);
virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
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>
BOOL IsVerticalPole();
void SetVerticalPole(BOOL b);
protected:
double m_dProjectionAngle; //ͶӰ<CDB6>Ƕȣ<C7B6>[0,360)<29><>
CCurveEx m_trajectoryCurve; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƶľ<C6B5><C4BE><EFBFBD><ECBCA3><EFBFBD><EFBFBD>
void CaculateInclineWellSize();
void MoveToInclineWell(CRect8& position);
void MoveHandleToInclineWell(int nHandle, CPoint2D point);
CPoint2D CaculateTraceStartPt(); // <20>ӹ켣<D3B9><ECBCA3><EFBFBD><EFBFBD><EFBFBD>ڵĵ<DAB5><C4B5>ó<EFBFBD><C3B3><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʼ<EFBFBD>
BOOL m_bVWell; //<2F>Ƿ񽫴<C7B7><F1BDABB4><EFBFBD>б<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD>ʾ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֱ<EFBFBD>ӵ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ,<2C><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ڹ켣<DAB9><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
1 month ago
};