|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "WellStructDefine.h"
|
|
|
|
|
|
#include "WellClassObjGroup.h"
|
|
|
|
|
|
#include "TrackObj.h"
|
|
|
|
|
|
#include "InclinedTrack.h"
|
|
|
|
|
|
#include "TrackGroup.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "Data/DataObj_Curve.h"
|
|
|
|
|
|
#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>
|
|
|
|
|
|
*/
|
|
|
|
|
|
///<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();
|
|
|
|
|
|
|
|
|
|
|
|
virtual void* CloneElement(void);
|
|
|
|
|
|
virtual CBaseExtend* CreateClone();
|
|
|
|
|
|
void operator=(CWellPole& wellObj);
|
|
|
|
|
|
CLONE_WELLOBJECT(CWellPole)
|
|
|
|
|
|
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; }
|
|
|
|
|
|
virtual BOOL IsSectionWell() { return FALSE; };
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
virtual void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<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);
|
|
|
|
|
|
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>)
|
|
|
|
|
|
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>)
|
|
|
|
|
|
//CCurveEx m_HeadCurve;
|
|
|
|
|
|
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; }
|
|
|
|
|
|
CPoint2D& GetTraceStartPt();
|
|
|
|
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
////<2F><>string vector<6F>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_InclinedWellVec
|
|
|
|
|
|
//void LoadFromStringVec(vector<vector<CString> >& stringVector);
|
|
|
|
|
|
//// <20><><EFBFBD>㡢<EFBFBD><E3A1A2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
//<2F>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>ô<EFBFBD><C3B4><EFBFBD>
|
|
|
|
|
|
double GetVDepth(double depth);
|
|
|
|
|
|
//<2F>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GetMeasuredDepth(double vdepth);
|
|
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
void SetTrajectory(vector<vector<CString> >& stringVector);
|
|
|
|
|
|
void GetTrajectory(vector<vector<CString> >&datas);
|
|
|
|
|
|
|
|
|
|
|
|
double ComputeProjectAngle();
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual BOOL IsWellStyleSimple();
|
|
|
|
|
|
virtual BOOL IsWellStyleComplete();
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//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);
|
|
|
|
|
|
virtual int ReadPCG_TableDatas(CKXmlParse& xp, const short &ver);
|
|
|
|
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
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>)
|
|
|
|
|
|
};
|