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.

155 lines
5.7 KiB
C

1 month ago
#pragma once
#include "TrackObj.h"
class AFX_EXT_CLASS CTrackGroup : public CTrackObj
{
public:
CTrackGroup();
CTrackGroup(const CRect8& position);
~CTrackGroup();
1 month ago
CLONE_WELLOBJECT(CTrackGroup)
void operator=(/*const*/ CTrackGroup &trackGroupObj);
1 month ago
public:
TRACKLIST& GetTrackList() { return m_trackList; }
void SetGroupType(EGroupType type) { m_eGroupType = type; }
EGroupType GetGroupType() { return m_eGroupType; }
protected:
void Initialize(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
virtual void Clear(void);
virtual void SetParent(CWellBaseObj * pobjParent);
virtual void SetParentXY(void* pXy);
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
virtual void AddTrack(CTrackObj* pTrackObj);
////<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//POSITION GetTrack(int nIndex);
/*<2A><><EFBFBD>Ƴ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>pTrackObj<62><6A><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>ø<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>*/
bool RemoveTrack(CTrackObj* pDelTrack);
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>
void DeleteAllTrack();
//ɾ<><C9BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//void DeleteTrack(TRACKLIST::iterator pos);
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>bIncludeSub<75>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ӵ<EFBFBD>
BOOL FindTrack(CTrackObj* pTrackObj, bool bIncludeSub);
//<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2>Ҷ<EFBFBD><D2B6>󣬲<EFBFBD><F3A3ACB2>ҵ<EFBFBD>һ<EFBFBD><D2BB>
CTrackObj* FindTrack(ETrackType type);
//<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2>ҵ<EFBFBD>
CTrackObj* FindTrack(ETrackType type, LPCTSTR strTrackName);
//<2F><><EFBFBD><EFBFBD>pcg<63><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTrackObj* FindDataRefTrack(LPCTSTR strDataRef,BOOL bReadData);
//<2F>ҵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĵ<C2B5>
CTrackObj* FindTrack(CPoint2D pt);
//<2F>ҵ<EFBFBD><D2B5><EFBFBD>ǰ<EFBFBD><C7B0>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ƶ<EFBFBD><C6B6><EFBFBD>ͷʹ<CDB7><CAB9>)
CTrackGroup* FindTrackGroup(CPoint2D pt);
///////<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
virtual BOOL FindTrackTitle(CString str);
///////<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>Ƶĵ<C6B5>
virtual BOOL FindTrackName(CString str);
///////ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3A9><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD>
virtual void GetAllTrack(TRACKLIST* TrackList, int type = -1);
////////////////////////////////////////
virtual int GetTrackRow();
//<2F><><EFBFBD>Ҿ<EFBFBD><D2BE>ڵı߽<C4B1><DFBD><EFBFBD>
CTrackObj* FindTrackLeft();
CTrackObj* FindTrackRight();
//<2F>ҵ<EFBFBD><D2B5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ߽<D2B1><DFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ϵ<EFBFBD>
CTrackGroup* FindTrackGroupOnRight(CPoint2D pt, double dHandleSize);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int GetTrackCount();
int GetTrackCount(ETrackType trackType, bool bIncludeSub); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD>
virtual void SetTrackWidthRatio(double r);
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 BOOL ReadCurveData(BOOL bInit = TRUE);
1 month ago
////<2F><><EFBFBD>ߡ<EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>Թ<EFBFBD>Ϊʱ<CEAA><CAB1><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ȶ<EFBFBD>child<6C><64><EFBFBD><EFBFBD>
1 month ago
virtual void ClearCurveSegmentObj();
virtual void ResetChildPosition(double oldProportion, double newProportion, double depthDelta);
virtual void ResetChildPosition(double offsetY = 0.0);
//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
void MoveTrackWidth(double width);
virtual void SetFontGridMark(GDFLOGFONTEXT& font);
virtual void SetSpace(double major, double minor);
virtual void DivideTrack(TRACKLIST* CurveList, TRACKLIST* OtherList);
virtual void GetTrackCurve(TRACKLIST* CurveList);
virtual CWellBaseObj* ObjectAt(const CRect8& rect, double dHandleSize, BOOL bNesting = FALSE);
virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
virtual void CalculateSize(CPoint2D point); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>Χ
virtual void GetHeadPts(double cx, double cy, double angle, double offx = 0, double offy = 0); //<2F><><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĵ<C2B5>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>,cx<63><78>cy<63><79>ת<EFBFBD><D7AA><EFBFBD>ģ<EFBFBD>angle<6C><65>ת<EFBFBD>Ƕ<EFBFBD>
virtual double GetWidth();
virtual void Serialize(CArchive& ar, const short &ver);
virtual void Serialize_TrackList(CArchive& ar, const short &ver);
virtual void SetTitle(CString title);
virtual void MoveToActiveTrackHead(CRect8& positon);
virtual void MoveTo(CRect8& position);
virtual void MoveHandleTo(int nHandle, CPoint2D point);
virtual void DrawTrackHead(CXyDC* pDC);
virtual void DrawTrackHeadLine(CXyDC* pDC, BOOL bFirst = FALSE);
virtual void DrawTrackBodyLine(CXyDC* pDC, BOOL bFirst = FALSE);
virtual void DrawActiveTrackHead(CXyDC*pDC);
virtual void Draw(CXyDC* pDC);
//<2F><><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void DrawWellBodyLine(CXyDC* pDC);
//virtual void AddLineEntity(); //<2F><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>
//virtual void AddTextEntity(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
////<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
//virtual void AddTrackHead();
////<2F><><EFBFBD>ӵ<EFBFBD>ͷ<EFBFBD><CDB7>
//virtual void AddTrackHeadLine();
virtual void WritePCG_WellTemp(CFile &fw, int nBaseTabNum);//pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><>ģ<EFBFBD><C4A3>
virtual void WritePCG_Traces(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void WritePCG_Datas(CFile &fw, int nBaseTabNum); //pcg<63>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//д<>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,дpcg<63><67>dml<6D><6C>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void WritePCG_Ext(CFile &fw, int nBaseTabNum);
virtual int ReadPCG_Exts(CFile &fr, const short &ver);
//void GetChildTracks(std::vector<CTrackObj*> &trackVec); //<2F>߷<EFBFBD>.2016.03.24 <20>õ<EFBFBD>һ<EFBFBD><D2BB>trackGroup<75><70><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>Group<75>ĵ<EFBFBD>
virtual void DrawTrajectory(CXyDC* pDC);
virtual void SetActionNoSaveData(BOOL b);
int GetTrackPosInList(CTrackObj* pTrack);
void AddTarckToPos(int ipos, CTrackObj* pTrack);
void GetMaxVGroupTrackNum(int& totalNum);
virtual CRect8 GetDragMoveRect();
virtual void SetFontScale(double yScale);// <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD><C8B0><EFBFBD><79><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void afterCalculateSize();
virtual void GetTypeTrackList(TRACKLIST* trackList,ETrackType trackType);
1 month ago
CTrackObj* GetChildTrackIniPos(int pos);
void RemoveChildTrackIniPos(int pos);
1 month ago
protected:
TRACKLIST m_trackList;
EGroupType m_eGroupType;
public:
virtual int ReadPCG_Exts(CKXmlParse& xp, const short &ver);
1 month ago
virtual void DrawMoveTrackFrame(CXyDC* pDC, CPoint2D delta);
1 month ago
};