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.

218 lines
6.8 KiB
C

1 month ago
#ifndef TRACKINCURVE_H
#define TRACKINCURVE_H
#pragma once
#include "TrackCurveBase.h"
#include "Data/DataObj_Curve.h"
class CWellPole;
class CTrackCurve;
//class CTrackInCurveCross;
//class CTrackInCurveSegment;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD>
//typedef TObjectList<CTrackInCurveSegment>CCurveSegmentList;
//typedef CArray<double, double> DOUBLEARR;
class AFX_EXT_CLASS CTrackCurve : public CTrackCurveBase
{
public:
CTrackCurve();
virtual ~CTrackCurve();
CTrackCurve(const CRect8& position);
1 month ago
CLONE_WELLOBJECT(CTrackCurve)
virtual void operator=(CTrackCurve& object);
1 month ago
public:
virtual CWellDataObj* GetDataObj() { return &m_dataObj; }
virtual void SetDataObj(CWellDataObj* pData, BOOL bCopy=TRUE);
virtual void GetDataValue(double& dmin, double& dmax);
virtual void Serialize(CArchive& ar, const short &ver);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>
virtual void CalculateSize(CPoint2D point);
virtual void CurveToNewPos();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ҿ̶<D2BF>
virtual void DrawTitleLeftAndRightContent(CXyDC* pDC, CString left, CString right, GDFLOGFONTEXT logfont,CRect8 rect);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawCurveLine(CXyDC* pDC,CCurveEx& curve,GDFLOGPENEXT logpen);
virtual BOOL ReadCurveData(BOOL bInit=TRUE);
virtual void ComputePoints();
1 month ago
virtual void ComputePoints(CRect8 positon);
1 month ago
//<2F><><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
virtual void ComputePointsInclined();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
virtual BOOL GetCurveValue(double dDepth, double& dValue, int& nBegin);
virtual double GetCurveValue(int index);
virtual double GetCurveDepth(int index);
//////<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
void BuidChildObject(vector<CString> &fields, StringVectorSet &datas, BOOL bInit=FALSE);
/////<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void GetChildDatas(StringVectorSet &dataContent, BOOL bHaveWellName);
void BuidChildObject(double *pDepth,double *pData,int datanum,BOOL bInit);
virtual void ClearCurveData();
public:
//<2F><>pcg<63><67>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int ReadPCG_Data(CFile &fr,const short& ver);
//<2F><>ȡpcg <20><EFBFBD><E0BEAE><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurveStyle
virtual int ReadPCG_SelfSection(CFile &fr,CXmlParse& xp,const short& ver);
//дpcg<63><67>ʽ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void WritePCG_Data(CFile &fw,int nBaseTabNum);
void CaculateStartAndEnd(CWellPole *pWellObj);
public:
CWellDataObj_Curve m_dataObj; // <20><><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
int m_nStatid; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־<EFBFBD><D6BE>statid=0<><30><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ʼ״̬,statid=1,<2C><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>״̬<D7B4><CCAC>statid=2<><32>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>ض<EFBFBD>
////<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݻ<EFBFBD><DDBB>߽<EFBFBD><DFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1><CAB9>
CString m_strOperationNum; //ʩ<><CAA9><EFBFBD><EFBFBD>
CString m_strVersionNum; //<2F><EFBFBD><E6B1BE>
//TObjectList<CTrackInCurveCross> m_CurveCrossList;//<2F><EFBFBD><EBB1BE><EFBFBD>߹<EFBFBD><DFB9><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int ReadPCG_Data(CKXmlParse& xp, const short& ver);
//<2F><>ȡpcg <20><EFBFBD><E0BEAE><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurveStyle
virtual int ReadPCG_SelfSection( CKXmlParse& xp, const short& ver);
virtual void GetChildDatas(CString& jsonStr);
virtual BOOL SetChildDatas(CString& jsonStr);
};
//
//class AFX_EXT_CLASS CTrackInCurveSegment : public CDrawTopEndObj
//{
//protected:
// //DECLARE_SERIAL(CTrackInCurveSegment);
//
//public:
// CTrackInCurveSegment();
// ~CTrackInCurveSegment();
// CTrackInCurveSegment(const CRect8& position);
//
//public:
// CTrackCurve* m_pCurve; // <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
//
//public:
// //<2F>Ա<EFBFBD><D4B1><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ߺͱ<DFBA>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// double Curve_ContrastCurve();
//
//public:
// virtual void DrawCurveSegment(CXyDC* pDC);
// virtual void Draw(CXyDC* pDC);
// virtual void Serialize(CArchive& ar, const short &ver);
//};
//
//class AFX_EXT_CLASS CTrackInCurveSegmentContainer : public CDrawTopEndObj
//{
//protected:
// //DECLARE_SERIAL(CTrackInCurveSegmentContainer);
//
//public:
// CTrackInCurveSegmentContainer();
// ~CTrackInCurveSegmentContainer();
// CTrackInCurveSegmentContainer(const CRect8& position);
//
// CCurveSegmentList m_CurveSegmentList; // <20><><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD>
//
//public:
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>
// virtual void CalculateSize(CPoint2D point);
//
//// Implementation
//public:
// virtual void MoveTo(CRect8& position);
// virtual void Serialize(CArchive& ar, const short &ver);
// virtual CPoint2D GetHandle(int nHandle);
// virtual int GetHandleCount();
// virtual void MoveHandleTo(int nHandle, CPoint2D point);
// virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
// virtual void Draw(CXyDC* pDC);
//};
//
///*<2A><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD>ӿڣ<D3BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><D5BD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>Ϳ<EFBFBD><CDBF>Լ̳<D4BC><CCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڣ<D3BF><DAA3><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><E4BAAF><EFBFBD><EFBFBD>
//*/
//class CCurveCrossInterface
//{
//public:
// enum NotifyCode
// {
// CurveAllName, //֪ͨ<CDA8>Է<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵIJ<C6B5><C4B2><EFBFBD>
// ChangeSelDataArea ,//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>Ȧ<EFBFBD><C8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// SelectCrossPic, //֪ͨ<CDA8>Է<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>µĽ<C2B5><C4BD><EFBFBD>ͼ
// DeleteCrossPic, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>Ѿ<EFBFBD><D1BE>˳<EFBFBD><CBB3><EFBFBD>
// ChangeSelDataColor //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>Ȧ<EFBFBD><C8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>
// };
//
// virtual void CrossNotify(BYTE *pDataBuf, int BufSize) = 0;
//};
//
////CTrackInCurveCross<73><73><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>ڵĶ<DAB5><C4B6>󣬹<EFBFBD><F3A3ACB9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>صĽ<D8B5><C4BD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>󣬲<EFBFBD><F3A3ACB2><EFBFBD><EBBDBB>ͼʵ<CDBC>ֻ<EFBFBD><D6BB><EFBFBD>
//class AFX_EXT_CLASS CTrackInCurveCross: public CDrawObj , public CCurveCrossInterface
//{
// //DECLARE_SERIAL(CTrackInCurveCross);
//
//public:
// CTrackInCurveCross(void);
// ~CTrackInCurveCross(void);
// CTrackInCurveCross(const CRect8& position);
//
//public:
// BOOL m_MoveDepId; //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>Id
// int m_iShowMode ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʾ1=<3D><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>2=<3D><><EFBFBD><EFBFBD>
//
// DOUBLEARR m_fsdepArr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
// DOUBLEARR m_fedepArr; //<2F><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CArray<CRect8, CRect8>m_RectArr;
// int m_PosInTrackNum; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷ֲ<DFB7><D6B2>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3
// int m_PosTrackIdArr[3];
//
// CString m_curve_name[3];
// CTrackCurve* m_pCurve[3];
//
// //CrossplotSpace::CCPCrossPic *m_pCrossPic;
// CDialog* m_pDialog;
// BOOL m_bActive; //<2F>Ƿ<EFBFBD><C7B7>ǵ<EFBFBD>ǰ<EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
//
// int m_SelId ; //<2F><>ǰѡ<C7B0>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>Ϣ
//
// static LPVOID c_pSCurPtr; //<2F>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ͼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD>ǰѡ<C7B0>е<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
// CArray <Struct_CrossSelDataDepth*, Struct_CrossSelDataDepth *> m_SeldepthArr;
//
//public:
// void Initialize();
// void ResetAlldepth(DOUBLEARR & fsdepArr, DOUBLEARR &fedepArr);
// void InitObjFromParam(CStringArray & curveName, CWellObj *pWellObj, DOUBLEARR & fsdepArr, DOUBLEARR &fedepArr);
//
// void ChangeCrossdepth(); //<2F><><EFBFBD>εĸ<CEB5><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD>޸Ľ<DEB8><C4BD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
// virtual void CrossNotify(BYTE *pDataBuf, int BufSize); //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA>Ϣ.
//
// virtual CPoint2D GetHandle(int nHandle);
// virtual int GetHandleCount();
// virtual void MoveTo(CRect8& position);
// virtual void MoveHandleTo(int nHandle, CPoint2D point);
// virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
// virtual void Draw(CXyDC* pDC);
// //virtual BOOL RemoveSelection();
// virtual void Serialize(CArchive& ar, const short &ver);
//
//
// //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD>Id,pTrack<63><6B><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
// int AddWellSecPos(const CRect8 & position, CTrackCurve* pTrack = NULL);
//
// void MoveWithCurve(CTrackCurve *pCurve);//<2F><><EFBFBD><EFBFBD>λ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>
// void ReSetOneCurvePos(int id); //<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>,id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
//
// void ReSetAllCurvePos(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ߵ<EFBFBD>λ<EFBFBD><CEBB>
//};
#endif