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.

123 lines
4.4 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD>: CItem<65><6D><EFBFBD><EFBFBD>չ
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0BEAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include <vector>
#include "item.h"
#include "ItemWcsSingleWell.h"
class CSectionWellObj;
class CFaultObj;
class CWellSection;
typedef std::vector<CFaultObj*> FAULTVECTOR;
namespace NItem
{
class CItemWellSection :public CItemWcsSingleWell
{
public:
CItemWellSection(CSigmaDoc* pDoc);
~CItemWellSection(void);
virtual CItem* GetItem();// { return m_pItemSelected; }
virtual void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
virtual void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk = 0) override;
virtual int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override;
virtual void OnLButtonDblClk(UINT nFlags, CPoint point);
// virtual BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
virtual BOOL OnSetCursor(CPoint pt, int& handle);
virtual void DoLButtonUp(CDC *pDC);
virtual int GetSubMenu();
/** @brief <20><><EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD><EFBFBD>ֱ<EFBFBD> */
virtual void OnDraw(CXyDC* pXyDC);
virtual void OnDraw(CXyDC* pXyDC, CDC* pDC) override;
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CWellSection *GetWellSection();
//<2F><><EFBFBD><EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Item
virtual CItemWellBase* CreateItem(CWellBaseObj* pObj);
//ɾ<><C9BE><EFBFBD><EFBFBD>
void RemoveWell(CWellPole* pWellObj);
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void Clear();
void SetState(BOOL bAdd) { m_bUseAddItem = bAdd; }
virtual void DeleteItem();
virtual int DeleteSelection(void);
/////
//////<2F><EFBFBD><E3B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; pDrawObj<62><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ㣻nInt<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ( 1=Left<66><74>2=Right)
void ConnectOnName(CWellBaseObj* pDrawObj,int nInt, std::vector<CWellBaseObj*>& linkbends);
//////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;BendList<73><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nInt<6E><74>1=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2=<3D>ң<EFBFBD><D2A3>ߵIJ<DFB5><C4B2>ɸߵ<C9B8><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ReOrederList(WELLOBJLIST& BendList,int nInt);
//////<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//void ComputeBendPosition(CBendObj* pBend,double &valueLeft,double &valueRight);
/// Ӧ<>þ<EFBFBD>ģ<EFBFBD><C4A3>
void ApplingWellTemplate(BOOL bAll = FALSE);
void ApplingWellDbTemplate(BOOL bAll = FALSE);
void ApplingTemplateFile(CFile &fr,BOOL bAll);
////
virtual void SetDrawObj(CWellBaseObj* pObj) { m_pWellSection = (CWellSection*)pObj;}//= 0;
virtual CWellBaseObj* GetDrawObj();
//////////////////////////////////////////////////////////////////////////
//// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>ʱ<EFBFBD>Ӿ<EFBFBD><D3BE>л<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
virtual void GetLegendObject(const CStringArray &StyleList,CRect8 rt);
//////////////////////////////////////////////////////////////////////////
////// <20>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>ͼʱ<CDBC>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void CreateLayers();
virtual void BreakLayers();
void CreateLayers(std::vector<int>layersTrackType);
void MakeFaultFromFaultPoint() ;//<2F>ɶϵ<C9B6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶϲ<C9B6>
void SetAllWellColumnLineShape();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еľ<D0B5><C4BE><EFBFBD><EFBFBD><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD>ߵ<EFBFBD>״̬
void DeleteAllFaults();
void DoFaultsIntersect(CFaultObj *pBeCutFault,CUIntArray &PtIdArr,CPointArr &SectPointArr,FAULTVECTOR &CutFaultVec,CUIntArray &CutPtIdArr,FAULTVECTOR &newFaultVec);//<2F><><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>и<EFBFBD>):<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϲ<D0B6>,<2C>и<EFBFBD><D0B8>ϲ<EFBFBD>,<2C>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķϲ<C4B6><CFB2><EFBFBD>ID,<2C>жϵ<D0B6>,<2C>жϺ<D0B6><CFBA>γɵ<CEB3><C9B5>ϲ<C2B6>
void GetIntersectFaults(FAULTVECTOR &faultVec1,FAULTVECTOR &faultVec2,CPointArr &retPtArr,CUIntArray &f1idArr,CUIntArray &f2idArr); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķϲ<CFB2><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķϲ<C4B6><CFB2><EFBFBD>Ӧ<EFBFBD>ཻ,retPtArr<72><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬f1idArr<72><72>fautl1<6C><31><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>id<69><64>
/*SetFaultsHorz ͼ<>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯ʱ,<2C><><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>λ<EFBFBD><CEBB>,
<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>
*/
//void SetFaultsHorz(double oldRatio,double newRatio,CSectionWellObj *pRightWell,CRect8 rOldWellRect,CSectionWellObj *pLWell,CRect8 lOldWellRect);//
protected:
BOOL m_bUseAddItem; ////ͨ<><CDA8><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
CWellSection* m_pWellSection;////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
CItem* m_pItemOilWaterBoundary;
BOOL IsAddBendLayerPoint();
BOOL IsAddFaultPoint();
void AddBendLayerPoint();
void DeleteBendLayerPoint();
//BOOL m_bDeleteControls; //<2F>Ƿ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>
virtual void SetPos(POSITION pos);
protected:
void ConnectLayer(CSectionWellObj* pWell, int TrackType, int layerType);
public:
BOOL ApplyingTemplateFileForWell(CString filePath, ULONGLONG wellHandle = 0);
BOOL ApplyingWellTemplateForSection(ULONGLONG wellHandle);
protected:
BOOL ApplingTemplate(CKXmlParse& xp, CSectionWellObj* pWellObj = NULL);
};
};