|
|
|
|
|
/**************************************************************************************
|
|
|
|
|
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bend.h
|
|
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|
|
|
|
|
<EFBFBD>ྮ<EFBFBD>ز<EFBFBD><EFBFBD>ԱȲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>ϲ<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 virtual void CreateBendLines(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
2 void CreateBendLine(BOOL bTop); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
|
3 virtual void CreateBendFills(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
4 void CreateBendLithoBreak(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
5 <EFBFBD>ϲ<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL FaultCut(CPointArr* ptsIn, CPointArr* ptsOut,BOOL bTop, double dLeft=0.0, double dRight=0.0, BOOL bBreak=FALSE,BOOL bCross=TRUE);
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptsInΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㼯<EFBFBD><EFBFBD>ptsOutΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㼯<EFBFBD><EFBFBD>bTop<EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>ϲ<EFBFBD>λ<EFBFBD><EFBFBD> bBreak<EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>bCorsss<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD>bend<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
6 void FaultPlug(); //<2F>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塢<EFBFBD><E5A1A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CCurveEx m_curveTopNew; <EFBFBD>ϲ<EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
|
CCurveEx m_curveBotNew; <EFBFBD>²<EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
|
CPointArr m_ptArrCurveTop; <EFBFBD>ϲ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ŀ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CPointArr m_ptArrCurveBot; <EFBFBD>²<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ŀ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>°<EFBFBD>pcg<EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD>߿<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
m_curveBreakLithoOld <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
m_ptArrInsertTopNew; //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(<28><><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ʱʹ<CAB1><CAB9>)
|
|
|
|
|
|
m_ptArrInsertBotNew; //<2F>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(<28><><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ʱʹ<CAB1><CAB9>)
|
|
|
|
|
|
m_bBreakLitho; //<2F>ɰ<EFBFBD><C9B0><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ʱ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
m_SelectCurveMode;////<2F><>ǰѡ<C7B0>еĶ<D0B5><C4B6><EFBFBD>(<28>ϡ<EFBFBD><CFA1>²<EFBFBD>λ<EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
CurveType //<2F>ϲ<EFBFBD><CFB2>и<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD>λ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
**************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef BEND_H
|
|
|
|
|
|
#define BEND_H
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "WellPoleLib/WellBaseObj.h"
|
|
|
|
|
|
#include "WellPoleLib/InTrackDepthSegment.h"
|
|
|
|
|
|
#include "FaultObj.h"
|
|
|
|
|
|
//<2F><>λ<EFBFBD><CEBB><EFBFBD>Ƶ<EFBFBD>
|
|
|
|
|
|
struct BendControlStuct
|
|
|
|
|
|
{
|
|
|
|
|
|
int level;
|
|
|
|
|
|
double X;
|
|
|
|
|
|
double Y;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
struct FaultCrossStuct
|
|
|
|
|
|
{
|
|
|
|
|
|
BOOL bCross; //<2F>Ƿ<EFBFBD><C7B7>ཻ
|
|
|
|
|
|
int nUCross; //<2F><EFBFBD><F3BDBBB5><EFBFBD><EFBFBD><EFBFBD>,(nUCross,nDCross ;<3B><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ཻʱ,<2C><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ߵ<EFBFBD>(<28><><EFBFBD><EFBFBD>λ<EFBFBD>ߵ<EFBFBD><DFB5>ڲ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>е<EFBFBD>ID<49><44>)<29><><EFBFBD>ϲ<EFBFBD><CFB2>ߵ<EFBFBD><DFB5>ཻ) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
|
|
|
|
|
int nDCross; //<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dfPoint point; //
|
|
|
|
|
|
dfPoint firstPoint; //<2F><><EFBFBD>㵱<EFBFBD><E3B5B1><EFBFBD>ϲ<EFBFBD><CFB2>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
|
|
|
|
|
int nFirstUCross;
|
|
|
|
|
|
int nFirstDCross;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
FaultCrossStuct()
|
|
|
|
|
|
{
|
|
|
|
|
|
bCross = FALSE;
|
|
|
|
|
|
nUCross = -1;
|
|
|
|
|
|
nDCross = -1;
|
|
|
|
|
|
nFirstUCross = -1;
|
|
|
|
|
|
nFirstDCross = -1;
|
|
|
|
|
|
}
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(ar.IsStoring())
|
|
|
|
|
|
{
|
|
|
|
|
|
ar << bCross;
|
|
|
|
|
|
ar << nUCross;
|
|
|
|
|
|
ar << nDCross;
|
|
|
|
|
|
ar << point.x0; ar << point.y0;
|
|
|
|
|
|
ar << nFirstUCross;
|
|
|
|
|
|
ar << nFirstDCross;
|
|
|
|
|
|
ar << firstPoint.x0; ar << firstPoint.y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> bCross;
|
|
|
|
|
|
ar >> nUCross;
|
|
|
|
|
|
ar >> nDCross;
|
|
|
|
|
|
ar >> point.x0;
|
|
|
|
|
|
ar >> point.y0;
|
|
|
|
|
|
ar >> nFirstUCross;
|
|
|
|
|
|
ar >> nFirstDCross;
|
|
|
|
|
|
ar >> firstPoint.x0; ar >> firstPoint.y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ϵ<EFBFBD><CFB5>ľ<EFBFBD><C4BE><EFBFBD>
|
|
|
|
|
|
struct FaultThrowStuct
|
|
|
|
|
|
{
|
|
|
|
|
|
int nID; //<2F>ϲ<EFBFBD>ID
|
|
|
|
|
|
double fUThrow; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double fDThrow; //<2F>Ҿ<EFBFBD><D2BE><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(ar.IsStoring())
|
|
|
|
|
|
{
|
|
|
|
|
|
ar << nID;
|
|
|
|
|
|
ar << fUThrow;
|
|
|
|
|
|
ar << fDThrow;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> nID;
|
|
|
|
|
|
ar >> fUThrow;
|
|
|
|
|
|
ar >> fDThrow;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ϵĶϲ㡢<CFB2>ϵ<EFBFBD>
|
|
|
|
|
|
struct FaultOnBendStruct
|
|
|
|
|
|
{
|
|
|
|
|
|
CFaultObj* pFault; //<2F>ϲ<EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
int faultID; //<2F>ϲ<EFBFBD>ID
|
|
|
|
|
|
FaultThrowStuct faultThrow; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
FaultCrossStuct faultUCross;//<2F>ϲ<EFBFBD>λ<EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
|
|
FaultCrossStuct faultDCross;//<2F>²<EFBFBD>λ<EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
//FaultCrossStuct faultBreakCross; //<2F><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
CPoint2D faultBandPt[2]; //<2F><>¼<EFBFBD>˶ϲ<CBB6><CFB2>Ͳ<EFBFBD>λ<EFBFBD>ཻ<EFBFBD><E0BDBB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
|
|
|
|
|
|
int fBanPtId; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
FaultOnBendStruct()
|
|
|
|
|
|
{
|
|
|
|
|
|
pFault = NULL;
|
|
|
|
|
|
faultID = -1;
|
|
|
|
|
|
fBanPtId = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void AddFaultBandPt(double x,double y)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(fBanPtId<2)
|
|
|
|
|
|
{
|
|
|
|
|
|
faultBandPt[fBanPtId].x0 = x;
|
|
|
|
|
|
faultBandPt[fBanPtId].y0 = y;
|
|
|
|
|
|
fBanPtId++;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(ar.IsStoring())
|
|
|
|
|
|
{
|
|
|
|
|
|
ar << pFault->GetId();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> faultID;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
faultThrow.Serialize(ar, ver);
|
|
|
|
|
|
faultUCross.Serialize(ar, ver);
|
|
|
|
|
|
faultDCross.Serialize(ar, ver);
|
|
|
|
|
|
//faultBreakCross.Serialize(ar, ver);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
/*
|
|
|
|
|
|
<EFBFBD><EFBFBD>λ<EFBFBD>߱<EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>˼·<EFBFBD><EFBFBD>
|
|
|
|
|
|
1<EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>ཻ<EFBFBD>Ķϲ<EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ߡ<EFBFBD>
|
|
|
|
|
|
2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҶϾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ƭ<EFBFBD>Ρ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λƬ<EFBFBD>λ<EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>ܼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>֮<EFBFBD>䣬<EFBFBD>Ҳ<EFBFBD><EFBFBD>IJ<EFBFBD>λƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><EFBFBD>ζϲ<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>㡣
|
|
|
|
|
|
3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>确֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>λ<EFBFBD>߱<EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>δ<EFBFBD><EFBFBD>ڡ<EFBFBD><EFBFBD><EFBFBD>ȥͷβƬ<EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ƭ<EFBFBD>ε<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཻ.<EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>IJ<EFBFBD>λ<EFBFBD>ֶλ<EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD>ڶϲ<EFBFBD><EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķϲ<EFBFBD><EFBFBD>߶<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>ཻ<EFBFBD><EFBFBD>
|
|
|
|
|
|
3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD>m_pLeftLayer<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Ϊ<EFBFBD><EFBFBD>һ<EFBFBD>µĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ㶼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>ʹ<EFBFBD><EFBFBD>ʱע<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֯<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ƭ<EFBFBD>ε㡣
|
|
|
|
|
|
4<EFBFBD><EFBFBD>_LayerLineFragment<EFBFBD>ṹ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>λƬ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ΰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD>+<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ߵĽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>Ʋ<EFBFBD>λ<EFBFBD>㼰<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.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ǰһ<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>λ<EFBFBD>ߵĴ<EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>ζϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>߽<EFBFBD><EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD>λ<EFBFBD>ߵĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鿴<EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λƬ<EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD>λƬ<EFBFBD>ΰ<EFBFBD><EFBFBD>ձ<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
typedef struct _LayerLineFragment
|
|
|
|
|
|
{//<2F><>λ<EFBFBD><CEBB>Ƭ<EFBFBD><C6AC>
|
|
|
|
|
|
CFaultObj *pFaultPre; //<2F><>λ<EFBFBD><CEBB>Ƭ<EFBFBD><C6AC>ͷ<EFBFBD><CDB7><EFBFBD>и<EFBFBD><D0B8>ϲ<EFBFBD><CFB2><EFBFBD>
|
|
|
|
|
|
dfPoint preFaultPt;////<2F>Ƕϲ<C7B6><CFB2><EFBFBD>pFaultPre<72><65><EFBFBD><EFBFBD>λ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD><EFBFBD>ı<EFBFBD>Ƭ<EFBFBD>϶˵<CFB6>ƫ<EFBFBD>Ƶ<EFBFBD>(<28><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>nextPt2<74><32>ͬ)
|
|
|
|
|
|
CString strLeftFault;
|
|
|
|
|
|
CFaultObj *pFaultNext; //<2F><>λ<EFBFBD><CEBB>Ƭ<EFBFBD><C6AC>β<EFBFBD><CEB2><EFBFBD>и<EFBFBD><D0B8>ϲ<EFBFBD><CFB2><EFBFBD>
|
|
|
|
|
|
CString strRightFault;
|
|
|
|
|
|
std::vector<dfPoint> linePts;
|
|
|
|
|
|
CCurveEx lineCurve;
|
|
|
|
|
|
//BOOL bLayerLine; //<2F><>ʾ<EFBFBD>Dz<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ƕϲ<C7B6>Ƭ<EFBFBD><C6AC>
|
|
|
|
|
|
BOOL bOnRight; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<D0B8><EEA3AC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λƬ<CEBB><C6AC><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ڶϲ<DAB6><CFB2><EFBFBD><EFBFBD>Ҳࣨ<D2B2><E0A3A8>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>̬<EFBFBD>IJ<EFBFBD>λ<EFBFBD>ߣ<EFBFBD><DFA3>ᱻ<EFBFBD><E1B1BB><EFBFBD><EFBFBD><EFBFBD>и<D0B8><EEA3AC>ʱ<EFBFBD><CAB1>Ƭ<EFBFBD><C6AC><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>IJ<EFBFBD>λ<EFBFBD>ᱻ<EFBFBD><E1B1BB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>и<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD>λ<EFBFBD>Ҳ<EFBFBD><D2B2>Ķϲ<C4B6><CFB2>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>ص㡣
|
|
|
|
|
|
<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>и<EFBFBD>մ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵĴ<EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>߱<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ౻<EFBFBD>жϣ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>¼<EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD>λ<EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>λ<EFBFBD>߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD>Ķϲ<EFBFBD><EFBFBD>ߵ<EFBFBD>Ҳ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ߴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD>nextFaultPt<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ㣬nextFaultPt2<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ㣬
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ߴ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nextFaultPt<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ㣬nextFaultPt2<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ㣬
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֱ<EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>ʹ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
dfPoint nextFaultPt; //<2F>Ƕϲ<C7B6><CFB2><EFBFBD>pFaultRight<68><74><EFBFBD><EFBFBD>λ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>
|
|
|
|
|
|
dfPoint nextFaultPt2; //<2F>Ƕϲ<C7B6><CFB2><EFBFBD>pFaultRight<68><74><EFBFBD><EFBFBD>λ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>(Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ƭ<EFBFBD><C6AC>ʹ<EFBFBD><CAB9>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ǰһ<C7B0><D2BB>Ƭ<EFBFBD>Σ<EFBFBD>Ч<EFBFBD>ʽϵ<CABD>.20250420)
|
|
|
|
|
|
dfPoint fbintectPt; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::vector<dfPoint> faultPts;
|
|
|
|
|
|
std::vector<dfPoint> leftExtentPts; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>á<EFBFBD>
|
|
|
|
|
|
std::vector<dfPoint> rightExtentPts;
|
|
|
|
|
|
BOOL bShow;
|
|
|
|
|
|
_LayerLineFragment()
|
|
|
|
|
|
{
|
|
|
|
|
|
pFaultPre = NULL;
|
|
|
|
|
|
pFaultNext = NULL;
|
|
|
|
|
|
bOnRight = FALSE;
|
|
|
|
|
|
bShow = TRUE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ar.IsStoring())
|
|
|
|
|
|
{
|
|
|
|
|
|
if (pFaultPre != NULL)
|
|
|
|
|
|
strLeftFault = pFaultPre->m_strName;
|
|
|
|
|
|
if (pFaultNext != NULL)
|
|
|
|
|
|
strRightFault = pFaultNext->m_strName;
|
|
|
|
|
|
ar << strLeftFault << strRightFault;
|
|
|
|
|
|
ar << bOnRight;
|
|
|
|
|
|
int num = linePts.size();
|
|
|
|
|
|
ar << num;
|
|
|
|
|
|
for (int ii = 0; ii < num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ar << linePts[ii].x0 << linePts[ii].y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
ar << preFaultPt.x0 << preFaultPt.y0;
|
|
|
|
|
|
ar << nextFaultPt.x0 << nextFaultPt.y0;
|
|
|
|
|
|
ar << nextFaultPt2.x0 << nextFaultPt2.y0;
|
|
|
|
|
|
ar << fbintectPt.x0 << fbintectPt.y0;
|
|
|
|
|
|
ar << bShow;
|
|
|
|
|
|
|
|
|
|
|
|
num = leftExtentPts.size();
|
|
|
|
|
|
ar << num;
|
|
|
|
|
|
for (int ii = 0; ii < num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ar << leftExtentPts[ii].x0 << leftExtentPts[ii].y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
num = rightExtentPts.size();
|
|
|
|
|
|
ar << num;
|
|
|
|
|
|
for (int ii = 0; ii < num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ar << rightExtentPts[ii].x0 << rightExtentPts[ii].y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> strLeftFault >> strRightFault;
|
|
|
|
|
|
ar >> bOnRight;
|
|
|
|
|
|
int num;
|
|
|
|
|
|
ar >> num;
|
|
|
|
|
|
dfPoint tpt;
|
|
|
|
|
|
for (int ii = 0; ii < num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> tpt.x0 >> tpt.y0;
|
|
|
|
|
|
linePts.push_back(tpt);
|
|
|
|
|
|
}
|
|
|
|
|
|
ar >> preFaultPt.x0 >> preFaultPt.y0;
|
|
|
|
|
|
ar >> nextFaultPt.x0 >> nextFaultPt.y0;
|
|
|
|
|
|
ar >> nextFaultPt2.x0 >> nextFaultPt2.y0;
|
|
|
|
|
|
ar >> fbintectPt.x0 >> fbintectPt.y0;
|
|
|
|
|
|
ar >> bShow;
|
|
|
|
|
|
|
|
|
|
|
|
ar >> num;
|
|
|
|
|
|
for (int ii = 0; ii < num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> tpt.x0 >> tpt.y0;
|
|
|
|
|
|
leftExtentPts.push_back(tpt);
|
|
|
|
|
|
}
|
|
|
|
|
|
ar >> num;
|
|
|
|
|
|
for (int ii = 0; ii < num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ar >> tpt.x0 >> tpt.y0;
|
|
|
|
|
|
rightExtentPts.push_back(tpt);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
lineCurve.Serialize(ar, ver);
|
|
|
|
|
|
}
|
|
|
|
|
|
void GetLeftRightPoint(CPoint2D& leftPt, CPoint2D& rightPt)
|
|
|
|
|
|
{
|
|
|
|
|
|
rightPt.x0 = leftPt.x0 = linePts[0].x0; rightPt.y0 = leftPt.y0 = linePts[0].y0;
|
|
|
|
|
|
if (lineCurve.num == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int ii = 0; ii < linePts.size(); ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (linePts[ii].x0 < leftPt.x0)
|
|
|
|
|
|
{
|
|
|
|
|
|
leftPt.x0 = linePts[ii].x0;
|
|
|
|
|
|
leftPt.y0 = linePts[ii].y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (linePts[ii].x0 > rightPt.x0)
|
|
|
|
|
|
{
|
|
|
|
|
|
rightPt.x0 = linePts[ii].x0;
|
|
|
|
|
|
rightPt.y0 = linePts[ii].y0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int ii = 0; ii < lineCurve.num; ii++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (lineCurve.x[ii] < leftPt.x0)
|
|
|
|
|
|
{
|
|
|
|
|
|
leftPt.x0 = lineCurve.x[ii];
|
|
|
|
|
|
leftPt.y0 = lineCurve.y[ii];
|
|
|
|
|
|
}
|
|
|
|
|
|
if (lineCurve.x[ii] > rightPt.x0)
|
|
|
|
|
|
{
|
|
|
|
|
|
rightPt.x0 = lineCurve.x[ii];
|
|
|
|
|
|
rightPt.y0 = lineCurve.y[ii];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} LAYERLINEFRAGMENT;
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Էֽ<D4B7><D6BD>ߵ<EFBFBD><DFB5>иʽ<EEB7BD><CABD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Էֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γɷ<EFBFBD><EFBFBD><EFBFBD>ʰȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵĶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>leftFillCurves<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>Ⱦʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>leftFillCurvesʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
typedef struct _StratumFragment
|
|
|
|
|
|
{//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC>
|
|
|
|
|
|
CFaultObj *pFaultLeft;
|
|
|
|
|
|
CString strLeftFault;
|
|
|
|
|
|
CFaultObj *pFaultRight;
|
|
|
|
|
|
CString strRightFault;
|
|
|
|
|
|
CCurveEx fillCurve;//<2F><><EFBFBD><EFBFBD>Ƭ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::vector<CCurveEx*> leftFillCurves; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::vector<LAYERLINEFRAGMENT*> topLayerLines;
|
|
|
|
|
|
std::vector<LAYERLINEFRAGMENT*> botLayerLines;
|
|
|
|
|
|
int fillType;// 0=<3D><>ʾĬ<CABE>ϵĵز<C4B5>Ƭ<EFBFBD><C6AC>,
|
|
|
|
|
|
BOOL bShow;
|
|
|
|
|
|
_StratumFragment()
|
|
|
|
|
|
{
|
|
|
|
|
|
pFaultLeft = NULL;
|
|
|
|
|
|
pFaultRight = NULL;
|
|
|
|
|
|
fillType = 0;
|
|
|
|
|
|
bShow = TRUE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void MakeFillCurve(CBendObj* pBend);
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
~_StratumFragment()
|
|
|
|
|
|
{
|
|
|
|
|
|
ClearLeftFillCurves();
|
|
|
|
|
|
}
|
|
|
|
|
|
void ClearLeftFillCurves();
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void getLinesPoints(CBendObj* pBend, std::vector<LAYERLINEFRAGMENT*>&fraglayerLines, std::vector<LAYERLINEFRAGMENT*>&bendlayerLines, std::vector<dfPoint>& curvePts);
|
|
|
|
|
|
} STRATUMFRAGMENT;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>Ƶ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct ControlYOffSet
|
|
|
|
|
|
{
|
|
|
|
|
|
double OneOffSet; /// 1/3<><33><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
double TwoOffSet; /// 2/3<><33><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
double OneX; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ResForm<72><6D><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱû<CAB1><C3BB><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>xλ<78>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>ˣ<EFBFBD>
|
|
|
|
|
|
double TwoX; //
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
typedef CArray<BendControlStuct, BendControlStuct> CONTROLPOINTARR; //<2F><><EFBFBD>Ƶ<EFBFBD><C6B5>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
typedef CArray<FaultThrowStuct, FaultThrowStuct> FAULTCONTROLARR; //<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
typedef CArray<FaultOnBendStruct, FaultOnBendStruct> FAULTONBENDARR; //<2F>ϲ<EFBFBD><CFB2>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
typedef CArray<CCurveEx*, CCurveEx*> CURVEARR; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
typedef CArray<ControlYOffSet, ControlYOffSet> CONTROLOFFSETARR; //<2F><><EFBFBD>Ƶ<EFBFBD>yֵƫ<D6B5><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
class CFaultObj;
|
|
|
|
|
|
class AFX_EXT_CLASS CBendObj : public CWellBaseObj
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CBendObj(void);
|
|
|
|
|
|
~CBendObj(void);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void SetBendType(EBendType type) { m_eBendType = type; }
|
|
|
|
|
|
EBendType GetBendType() { return m_eBendType; }
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<LAYERLINEFRAGMENT*> m_TopLayLineFragments;//<2F><><EFBFBD>еIJ<D0B5>λ<EFBFBD><CEBB>Ƭ<EFBFBD>ζ<EFBFBD><CEB6>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::vector<LAYERLINEFRAGMENT*> m_BotLayLineFragments; //<2F><><EFBFBD>еIJ<D0B5>λ<EFBFBD><CEBB>Ƭ<EFBFBD>ζ<EFBFBD><CEB6>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::vector<STRATUMFRAGMENT*> m_StratumFragments; //<2F><>λƬ<CEBB>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CCurveEx m_ContolLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CCurveEx m_ControlPtLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CCurveEx m_TopCtrlPtB; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CCurveEx m_BotCtrlPtB; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//CCurveEx m_ControlBezierLine;
|
|
|
|
|
|
GDFLOGPENEXT m_penTop; //<2F><><EFBFBD>㶥<EFBFBD><E3B6A5><EFBFBD><EFBFBD><DFBB><EFBFBD>
|
|
|
|
|
|
GDFLOGPENEXT m_penBottom; //<2F><><EFBFBD><EFBFBD><EFBFBD>ױ<EFBFBD><D7B1><EFBFBD><DFBB><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
CString m_LeftLayerName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString m_RightLayerName; //<2F>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////PCG<43><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
double m_fGasBottom; //<2F><EFBFBD><D7BD><EFBFBD>
|
|
|
|
|
|
double m_fWaterTop; //<2F><><EFBFBD><EFBFBD>ˮ
|
|
|
|
|
|
double m_fTopLithoBreakPoint; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զϵ<D4B6>
|
|
|
|
|
|
double m_fBottomLithoBreakPoint; //<2F><EFBFBD><D7BD><EFBFBD><EFBFBD>Զϵ<D4B6>
|
|
|
|
|
|
double m_fLithoBreakWidth; //<2F><><EFBFBD>Զϵ<D4B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_fOutBendControlLevel; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_fBeginBreakPos; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İٷֱ<D9B7>
|
|
|
|
|
|
double m_fEndBreakPos; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İٷֱ<D9B7>
|
|
|
|
|
|
double m_fEndBreakDepth; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
|
|
|
|
|
|
|
|
|
|
|
CString m_strLineBreakStyle; //<2F><>λ<EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
|
|
|
|
|
|
int m_nLithoBreakStyle; //<2F><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>ʽID
|
|
|
|
|
|
int m_nWaveStyle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
|
|
|
|
|
|
CONTROLPOINTARR m_ptArrControls; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>
|
|
|
|
|
|
ControlYOffSet m_ptArrControlsOffSet[2]; //<2F><>λ<EFBFBD><CEBB><EFBFBD>Ƶ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,(pcg<63><67>ȡʱ<C8A1><CAB1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>level=0<><30>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>¼level=1<><31>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>)(<28><>resform<72><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ߵĿ<DFB5><C4BF>Ƶ㣬<C6B5>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>ǵײ<C7B5><D7B2><EFBFBD>λ<EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>)
|
|
|
|
|
|
|
|
|
|
|
|
FAULTCONTROLARR m_faultControlsArr; //<2F>ϲ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>Ϣ,ͬm_faultArr<72><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pcg<63><67><EFBFBD>ļ<EFBFBD><C4BC>н<EFBFBD><D0BD>ϲ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;<3B><><EFBFBD>궯̬<EAB6AF><CCAC><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>Ϣʱ<CFA2><CAB1><EFBFBD><EFBFBD>¼ƫ<C2BC><C6AB><EFBFBD><EFBFBD>Ϣ,m_faultArr<72><72>¼<EFBFBD><C2BC>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>Ϣ,<2C><><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>pcgʱ<67><CAB1><EFBFBD><EFBFBD>m_faultArr<72>е<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>Ϣ,<2C><>ȡʱ<C8A1><CAB1><EFBFBD><EFBFBD>m_faultControlsArr(ƽʱ<C6BD><CAB1>ʹ<EFBFBD><CAB9>).
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////PCG<43><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
|
|
//ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CWellPole* m_pWellLeft; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1>ã<EFBFBD>
|
|
|
|
|
|
CWellPole* m_pWellRight; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1>ã<EFBFBD>
|
|
|
|
|
|
CInTrackDepthSegment* m_pLayerLeft; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CInTrackDepthSegment* m_pLayerRight; //<2F><><EFBFBD><EFBFBD><EFBFBD>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD>ʱΪ<CAB1>գ<EFBFBD>
|
|
|
|
|
|
CXy* m_pMarkBreak; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʹ<EFBFBD><CAB9>
|
|
|
|
|
|
dfPoint m_ptBeginBreak; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>Ƶ㣨<C6B5><E3A3A8><EFBFBD>Ҿ<EFBFBD><D2BE><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>м<EFBFBD><D0BC>㣬Ҳ<E3A3AC><D2B2><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD>,
|
|
|
|
|
|
dfPoint m_ptEndBreak; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dfPoint m_ptEndBreakInteract; //<2F><><EFBFBD>²<EFBFBD>λ<EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>
|
|
|
|
|
|
dfPoint m_ptLeft; //<2F><><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dfPoint m_ptRight; //<2F><><EFBFBD>²<EFBFBD>λ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<dfPoint> m_ptArrCurveTopOldRe; //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB>ԭʼ<D4AD><CABC><EFBFBD>Ƶ<EFBFBD> (<28><>pcg<63>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>¼Resform<72>е<EFBFBD><D0B5><EFBFBD><EFBFBD>Ե<EFBFBD>)
|
|
|
|
|
|
std::vector<dfPoint> m_ptArrCurveBotOldRe; //<2F>²<EFBFBD>λ<EFBFBD><CEBB>ԭʼ<D4AD><CABC><EFBFBD>Ƶ<EFBFBD> <20><><EFBFBD><EFBFBD>pcg<63>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD>λ<EFBFBD>ײ<EFBFBD><D7B2>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFA3AC>¼Resform<72>е<EFBFBD><D0B5><EFBFBD><EFBFBD>Ե㣩
|
|
|
|
|
|
CPointArr m_ptArrCurveTopOld; //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB>ԭʼ<D4AD><CABC><EFBFBD>Ƶ<EFBFBD> (<28><>pcg<63>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
CPointArr m_ptArrCurveBotOld; //<2F>²<EFBFBD>λ<EFBFBD><CEBB>ԭʼ<D4AD><CABC><EFBFBD>Ƶ<EFBFBD> <20><><EFBFBD><EFBFBD>pcg<63>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD>λ<EFBFBD>ײ<EFBFBD><D7B2>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//std::vector<dfPoint> m_ptArrCurveTopOldVcs;
|
|
|
|
|
|
//std::vector<dfPoint> m_ptArrCurveBotOldVcs;
|
|
|
|
|
|
|
|
|
|
|
|
CPointArr m_ptArrCurveTop; //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ʱ<EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CPointArr m_ptArrCurveBot; //<2F>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ʱ<EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FAULTONBENDARR m_faultArr; //<2F>ϲ<EFBFBD><CFB2><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
|
CCurveEx m_curveTop; //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
CCurveEx m_curveBot; //<2F>²<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
CURVEARR m_curveFillArr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CCurveEx m_curveBreakLitho; //<2F><><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>(<28><><EFBFBD>Ƶ<EFBFBD>ƽ<EFBFBD><C6BD>֮<EFBFBD><D6AE>)
|
|
|
|
|
|
CCurveEx m_curveBreakLithoInteract; //<2F><><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>(ƽ<><C6BD>֮ǰ)
|
|
|
|
|
|
CCurveEx m_curveBreakLithoOld; //<2F><><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>(ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
CPointArr ptArrInsertPointTemp; //<2F><><EFBFBD>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
CPointArr ptArrInsertTopTemp; //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(<28><><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ʱʹ<CAB1><CAB9>)
|
|
|
|
|
|
CPointArr ptArrInsertBotTemp; //<2F>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(<28><><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ʱʹ<CAB1><CAB9>))
|
|
|
|
|
|
BOOL bPlug;
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>е<EFBFBD><D0B5>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ཻʱ<E0BDBB><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣩
|
|
|
|
|
|
BOOL bHideBendLeft;
|
|
|
|
|
|
BOOL bHideBendRight;
|
|
|
|
|
|
BOOL bBreakLithoTemp; //<2F>ɰ<EFBFBD><C9B0><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ʱ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double fSlope; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʱʹ<CAB1><CAB9> б<><D0B1>a y = a*x+b <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><D2B6>о<EFBFBD><D0BE>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>)
|
|
|
|
|
|
double fConstant; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʱʹ<CAB1><CAB9> <20><><EFBFBD><EFBFBD>b y = a*x+b
|
|
|
|
|
|
CPoint2D pointCenter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʱʹ<CAB1><CAB9>
|
|
|
|
|
|
CPoint2D pointBorder; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʱʹ<CAB1><CAB9>(<28><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵĽ<C6B5><C4BD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
CPoint2D ptBreakRotateTemp; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>λ<EFBFBD>ߵĽ<DFB5><C4BD>㣬Ϊ<E3A3AC><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ת<EFBFBD><D7AA>
|
|
|
|
|
|
|
|
|
|
|
|
int nLeftWellID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|
|
|
|
|
int nRightWellID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|
|
|
|
|
int nLeftLayerIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int nRightLayerIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString strLeftWellName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString strRightWellName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString m_strID; //<2F>ַ<EFBFBD><D6B7><EFBFBD>ID<49><44>
|
|
|
|
|
|
std::vector<dfPoint> m_BreakLithoCtrlPoints; //ResForm<72>еķֽ<C4B7><D6BD>߿<EFBFBD><DFBF>Ƶ<EFBFBD>
|
|
|
|
|
|
//std::vector<dfPoint> m_BreakLithoPoints; //ResForm<72>еķֽ<C4B7><D6BD>߿<EFBFBD><DFBF>Ƶ<EFBFBD>
|
|
|
|
|
|
std::vector<LAYERLINEFRAGMENT*> m_BreakLithoLineFragments;//ResForm<72>еķֽ<C4B7><D6BD><EFBFBD>Ƭ<EFBFBD><C6AC>
|
|
|
|
|
|
|
|
|
|
|
|
void SetLeftFillAuto(BOOL b);
|
|
|
|
|
|
BOOL IsLeftFillAuto();
|
|
|
|
|
|
void SetRightFillAuto(BOOL b);
|
|
|
|
|
|
BOOL IsRightFillAuto();
|
|
|
|
|
|
CCurveEx* GetLeftPickCurve();
|
|
|
|
|
|
BOOL m_bNeedBreakLith;
|
|
|
|
|
|
protected:
|
|
|
|
|
|
GDFLOGBRUSH m_LeftBrush, m_RightBrush,m_defaultBrush;
|
|
|
|
|
|
enum BendFillFlags
|
|
|
|
|
|
{
|
|
|
|
|
|
BendFillLeftAuto = 0x0001,
|
|
|
|
|
|
BendFillRightAuto = 0x0002,
|
|
|
|
|
|
BendFillAllAuto = 0x0001|0x0002
|
|
|
|
|
|
};
|
|
|
|
|
|
DWORD m_nBendFillFlags;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
EBendType m_eBendType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
DWORD m_nBendFlags; //<2F><><EFBFBD>㿪<EFBFBD><E3BFAA>״̬
|
|
|
|
|
|
DWORD m_nDrawTypeFlags; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
DWORD m_nBendSlotType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
DWORD m_nFaultCutLineType; //<2F>ϲ<EFBFBD><CFB2>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Flags
|
|
|
|
|
|
enum BendFlags
|
|
|
|
|
|
{
|
|
|
|
|
|
BendFlagWaveLine = 0x0001, // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BendFlagTopWave = 0x0002, // <20><>ʾ<EFBFBD>ϱ߽粻<DFBD><E7B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BendFlagBotWave = 0x0004 // <20><>ʾ<EFBFBD>±߽粻<DFBD><E7B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum DrawTypeFlags
|
|
|
|
|
|
{
|
|
|
|
|
|
DrawTypeFlagUpLine = 0x0001, // <20><><EFBFBD>ϲ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
DrawTypeFlagDownLine = 0x0002, // <20><><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
DrawTypeFlagFill = 0x0004 // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
enum BendSlotType
|
|
|
|
|
|
{
|
|
|
|
|
|
BendSlotTypeStratiUnit = 0x0001, //<2F>ز㵥Ԫ
|
|
|
|
|
|
BendSlotTypeReservoirGroup = 0x0002, //<2F>Ͳ<EFBFBD><CDB2><EFBFBD>
|
|
|
|
|
|
BendSlotTypeSandSet = 0x0004, //ɰ<><C9B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
BendSlotTypeReserveUnit = 0x0008, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
|
|
|
|
|
|
BendSlotTypeResult = 0x0010, //<2F><><EFBFBD>ͷֲ<CDB7>
|
|
|
|
|
|
BendSlotTypeStandard = 0x0020, //<2F><><EFBFBD><D7BC>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ϲ<EFBFBD><CFB2>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
enum FaultCutLineType
|
|
|
|
|
|
{
|
|
|
|
|
|
FaultCutLineTypeTop = 0x0001, //<2F>ϲ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
FaultCutLineTypeBot = 0x0002, //<2F>²<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
FaultCutLineTypeLitho = 0x0004, //<2F><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static CBendObj* CreateBendObj(EBendType eType);
|
|
|
|
|
|
//<2F><>¡<EFBFBD><C2A1><EFBFBD>麯<EFBFBD><E9BAAF>
|
|
|
|
|
|
virtual void* CloneElement(void);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
virtual void Draw(CXyDC* pDC);
|
|
|
|
|
|
virtual void MoveTo(CRect8& position);
|
|
|
|
|
|
virtual void MoveHandleTo(int nHandle, CPoint2D point);
|
|
|
|
|
|
virtual void MoveHandleToTop(int nHandle, CPoint2D point);
|
|
|
|
|
|
virtual void MoveHandleToBot(int nHandle, CPoint2D point);
|
|
|
|
|
|
virtual void MoveHandleToBreakLitho(int nHandle, CPoint2D point);
|
|
|
|
|
|
|
|
|
|
|
|
virtual CRect8 GetRect(void);
|
|
|
|
|
|
virtual BOOL IsInRange(CRect8& range);
|
|
|
|
|
|
|
|
|
|
|
|
virtual BOOL Intersects(const CRect8& rect, double dHandleSize);
|
|
|
|
|
|
|
|
|
|
|
|
virtual BOOL IntersectsTop(const CRect8& rect, double dHandleSize);
|
|
|
|
|
|
virtual BOOL IntersectsBot(const CRect8& rect, double dHandleSize);
|
|
|
|
|
|
virtual BOOL IntersectsBreakLitho(const CRect8& rect, double dHandleSize);
|
|
|
|
|
|
|
|
|
|
|
|
virtual CPoint2D GetHandleControl(int nHandle);
|
|
|
|
|
|
virtual CPoint2D GetHandleTop(int nHandle);
|
|
|
|
|
|
virtual CPoint2D GetHandleBot(int nHandle);
|
|
|
|
|
|
virtual CPoint2D GetHandleBreakLitho(int nHandle);
|
|
|
|
|
|
virtual int HitTest(CPoint2D point, double dHandleSize, BOOL bSelected);
|
|
|
|
|
|
virtual int HitTestControl(CPoint2D point, double dHandleSize, BOOL bSelected);
|
|
|
|
|
|
virtual int HitTestTop(CPoint2D point, double dHandleSize, BOOL bSelected);
|
|
|
|
|
|
virtual int HitTestBot(CPoint2D point, double dHandleSize, BOOL bSelected);
|
|
|
|
|
|
virtual int HitTestBreakLitho(CPoint2D point, double dHandleSize, BOOL bSelected);
|
|
|
|
|
|
virtual CRect8 GetHandleRectControl(int nHandleID, double dHandleSize);
|
|
|
|
|
|
virtual CRect8 GetHandleRectTop(int nHandleID, double dHandleSize);
|
|
|
|
|
|
virtual CRect8 GetHandleRectBot(int nHandleID, double dHandleSize);
|
|
|
|
|
|
virtual CRect8 GetHandleRectBreakLitho(int nHandleID, double dHandleSize);
|
|
|
|
|
|
|
|
|
|
|
|
int GetControlCount(); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetBreakCount(); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetTopCount(); //<2F>õ<EFBFBD><C3B5>ϲ<EFBFBD>λ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|
|
|
|
|
int GetBotCount(); //<2F>õ<EFBFBD><C3B5>²<EFBFBD>λ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|
|
|
|
|
int GetBreakLithoCount(); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB>(<28>ϰ汾)
|
|
|
|
|
|
virtual void CreateBendLineForOld(BOOL bTop);
|
|
|
|
|
|
virtual void CreateBendLinesForOld(); //<2F><><EFBFBD>ϰ<EFBFBD>PCG<43><47><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽʱʹ<CAB1><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
virtual void CreateBendLines(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void CreateBendFills(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void CreateBendLithoBreak(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void FaultCutLines(); //<2F>ϲ<EFBFBD><CFB2>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void SmoothBendLines(); //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
virtual void GetBendXValue(double &xLeftValue,double &xRightValue);//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
virtual void BendAddFault();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bend<6E><64><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>Ĺ<EFBFBD><C4B9><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD><C6B5>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD>
|
|
|
|
|
|
virtual void ComputeControlsWhenMoveEndBreak(CPoint2D point);
|
|
|
|
|
|
////////<2F><><EFBFBD><EFBFBD> fSlope<70><65>fConstant<6E><74>pointCenter<65><72>pointBorder<65><72>ֵ
|
|
|
|
|
|
virtual void ComputeSlopeAndConstant();
|
|
|
|
|
|
//<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>;nflag=1ʱΪ<CAB1><CEAA>ǰ<EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD>nFlag=-1ʱΪ<CAB1>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD>ǰһ<C7B0>ھ<EFBFBD>
|
|
|
|
|
|
virtual void ComputeControlsWhenFixedDistance(CPoint2D pt,int nFlag=1);
|
|
|
|
|
|
///////<2F><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
|
|
|
|
|
|
virtual void ReComupteControls();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bend<6E><64><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>Ҷ˵<D2B6><CBB5><EFBFBD>yֵ
|
|
|
|
|
|
virtual void ComputeBendYValue(double &yLeftValue,double &yRightValue);
|
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҿ<EFBFBD><D2BE>ı<EFBFBD><C4B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>xRightλ<74>õ<EFBFBD>yֵ<79><D6B5><EFBFBD>Ҿ<EFBFBD><D2BE><EFBFBD><EFBFBD>µı<C2B5><C4B1><EFBFBD>
|
|
|
|
|
|
virtual void ComputeBreakRatio();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>ʱȡ<CAB1>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB>֮<EFBFBD><D6AE><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD>
|
|
|
|
|
|
virtual void GetFaultBettweenTopAndBot(CPointArr &PointArr,BOOL bHideBends,BOOL bRight = TRUE);
|
|
|
|
|
|
//<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ڶϲ<DAB6><CFB2><EFBFBD><EFBFBD>ҶϾ<D2B6>ʱȷ<CAB1><C8B7><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ㲻<C6B5>ᳬ<EFBFBD><E1B3AC><EFBFBD>ϲ<EFBFBD><CFB2>ķ<EFBFBD>Χ
|
|
|
|
|
|
virtual void ComputeMoveHeight(CFaultObj* pFault,double &fHeight,BOOL bLeft = TRUE);
|
|
|
|
|
|
// дPCGʱ<47><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SortLayerIndex(CTrackObj* pTrack);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ƽǰ<C6BD><C7B0><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>꣨<EFBFBD><EAA3A8>λ<EFBFBD><CEBB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дPCGʱʹ<CAB1>ã<EFBFBD>
|
|
|
|
|
|
void FlatComputeControlPointY(CPointArr &ArrTop,CPointArr &ArrBot);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ÿ<EFBFBD><C3BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void AddControlPoints(double xLeft, double yLeft, double xRight, double yRight, double width);
|
|
|
|
|
|
|
|
|
|
|
|
///////<2F><><EFBFBD>ɰ汾ʱ<E6B1BE><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>λIDת<44><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
void TransformIDtoIndex();
|
|
|
|
|
|
/////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㸳<EFBFBD><E3B8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetSlotType();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString GetLineBreakStyle(int nStyle);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString GetLithoBreakStyle(int nStyle);
|
|
|
|
|
|
//<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetBreakType(int& nType, CCurveEx*& pCurve);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nType<70><65>0<EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD>ԳƼ<D4B3><C6BC><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
void GetRange(CRect8& rect);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>ֵ
|
|
|
|
|
|
virtual void SetBendFlags(DWORD flags);
|
|
|
|
|
|
virtual void SetShowWaveLine(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowTopWave(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowBotWave(BOOL bFlag);
|
|
|
|
|
|
|
|
|
|
|
|
virtual DWORD GetBendFlags();
|
|
|
|
|
|
virtual BOOL IsShowWaveLine();
|
|
|
|
|
|
virtual BOOL IsShowTopWave();
|
|
|
|
|
|
virtual BOOL IsShowBotWave();
|
|
|
|
|
|
|
|
|
|
|
|
virtual void SetDrawTypeFlags(DWORD flags);
|
|
|
|
|
|
virtual void SetShowTopLine(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowBotLine(BOOL bFlag);
|
|
|
|
|
|
virtual void SetShowFill(BOOL bFlag);
|
|
|
|
|
|
|
|
|
|
|
|
virtual DWORD GetDrawTypeFlags();
|
|
|
|
|
|
virtual BOOL IsShowTopLine();
|
|
|
|
|
|
virtual BOOL IsShowBotLine();
|
|
|
|
|
|
virtual BOOL IsShowFill();
|
|
|
|
|
|
|
|
|
|
|
|
void SetBendSlotType(DWORD flags);
|
|
|
|
|
|
void SetSlotTypeStratiUnit(BOOL bFlag);
|
|
|
|
|
|
void SetSlotTypeReservoirGroup(BOOL bFlag);
|
|
|
|
|
|
void SetSlotTypeSandSet(BOOL bFlag);
|
|
|
|
|
|
void SetSlotTypeReservesUnit(BOOL bFlag);
|
|
|
|
|
|
void SetSlotTypeResult(BOOL bFlag);
|
|
|
|
|
|
void SetSlotTypeStandardLayer(BOOL bFlag);
|
|
|
|
|
|
|
|
|
|
|
|
DWORD GetBendSlotType();
|
|
|
|
|
|
BOOL IsSlotTypeStratiUnit();
|
|
|
|
|
|
BOOL IsSlotTypeReservoirGroup();
|
|
|
|
|
|
BOOL IsSlotTypeSandSet();
|
|
|
|
|
|
BOOL IsSlotTypeReservesUnit();
|
|
|
|
|
|
BOOL IsSlotTypeResult();
|
|
|
|
|
|
BOOL IsSlotTypeStandardLayer();
|
|
|
|
|
|
|
|
|
|
|
|
//pcg<63>ļ<EFBFBD><C4BC><EFBFBD>д
|
|
|
|
|
|
virtual int ReadPCG_Bend(CFile &fr,const short& ver);
|
|
|
|
|
|
virtual int ReadPCG(CFile &fr,const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WriteDML_PCG(CFile &fw,int nBaseTabNum,int xmlId =1);
|
|
|
|
|
|
virtual void WritePCG_Bend(CFile &fw, int nBaseTabNum); //<2F>ɵIJ<C9B5><C4B2>ã<EFBFBD>ʹ<EFBFBD><CAB9> WriteDML_PCG ,20250326
|
|
|
|
|
|
/*<2A><><EFBFBD>ݲ<EFBFBD>λ<EFBFBD>뾮<EFBFBD><EBBEAE><EFBFBD><EFBFBD><EFBFBD>㷽ʽ<E3B7BD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>λ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> baseType= 0<><30><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD>Ƶ㣬=1<><31>top<6F><70>λ<EFBFBD>ߣ<EFBFBD>=2<><32>bottom<6F><6D>λ<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>Ƶ㡣*/
|
|
|
|
|
|
void GetLayerLineLeftRightBasePoint(int baseType, dfPoint& leftPoint, dfPoint& rightPoint);
|
|
|
|
|
|
void GetLayerLinePointsFromLayFragment(std::vector<LAYERLINEFRAGMENT*>&pLayerLines, BOOL bReverse, std::vector<dfPoint>&outPts);
|
|
|
|
|
|
void MakeLayerLineFragmentCurve(std::vector<LAYERLINEFRAGMENT*>&pLayerLines, BOOL bReverse);
|
|
|
|
|
|
void SetFaultForLayerLineFragments();
|
|
|
|
|
|
void SetCutOrHideBendForAllFault();
|
|
|
|
|
|
BOOL IsIntersectFault(CFaultObj* pFault);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SetResFormBendTopBotPoint();
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void MakeBreakLitho_ResForm();
|
|
|
|
|
|
void AddExtentPointsToLaylines(BOOL bTop, CPointArr &ptArrLeft, CPointArr &ptArrRight);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>λƬ<CEBB><C6AC><EFBFBD>Ƿ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
|
|
|
|
|
|
void SetFaultCutOrHideBendLine(CFaultObj* pLeftFault, CFaultObj* pRightFault, std::vector<LAYERLINEFRAGMENT*>&pLayerLines);//<2F><><EFBFBD>ò<EFBFBD>λƬ<CEBB><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>IJ<EFBFBD>λƬ<CEBB><C6AC>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB>(<28>ϰ汾)
|
|
|
|
|
|
//virtual void CreateBendLineForOld(BOOL bTop);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
virtual void CreateBendLine(BOOL bTop);
|
|
|
|
|
|
//virtual void CreateBendLineResForm(BOOL bTop);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|
|
|
|
|
virtual void CreateBoundaryLine();
|
|
|
|
|
|
//<2F><><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//virtual void CreateBendLinePointArr(BOOL bTop,CPointArr &ptArrControl,CPointArr &ptArrLeft,CPointArr &ptArrRight);
|
|
|
|
|
|
virtual void CreateBendLinePointArr(BOOL bTop, std::vector<dfPoint> &ptArrControl, CPointArr &ptArrLeft, CPointArr &ptArrRight);
|
|
|
|
|
|
//<2F><><EFBFBD>²<EFBFBD>λ<EFBFBD><CEBB>curve
|
|
|
|
|
|
virtual void CreateBendLineCurve(BOOL bTop,std::vector<dfPoint> &ptArrControl,CPointArr &ptArrLeft,CPointArr &ptArrRight);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void BendLineBreak(CCurveEx* pCurve, int nBreakType, std::vector<dfPoint> &ptArrControl, CPointArr &ptArrControlOriginal, double fHLeft, double fHRight, BOOL bTop);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void BendLithoBreak(CString str,CPointArr &ptArrControl,CInTrackDepthSegment* pLayerThin,CInTrackDepthSegment* pLayerThick);//xΪ<78>ϲ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷֱ<D9B7>,yΪ<79>²<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷֱ<D9B7>
|
|
|
|
|
|
|
|
|
|
|
|
//virtual void BendLineBreakDeal(CPointArr &ptArrControl,CPointArr &ptArrControlOriginal,CCurveEx *pCurve,BOOL bTop,int nStyle,double fHLeft,double fHRight);//nStyle:0,<2C>ϼ<EFBFBD><CFBC><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2>ԳƼ<D4B3><C6BC><EFBFBD>2<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
|
|
|
|
|
|
virtual void BendLineBreakDeal(std::vector<dfPoint> &ptArrControl, CPointArr &ptArrControlOriginal, CCurveEx *pCurve, BOOL bTop, int nStyle, double fHLeft, double fHRight);//nStyle:0,<2C>ϼ<EFBFBD><CFBC><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2>ԳƼ<D4B3><C6BC><EFBFBD>2<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual void BendLithoBreakDeal(CPointArr &ptArrControl,CPointArr &ptArrControlOriginal,CCurveEx *pCurve,double x);
|
|
|
|
|
|
//<2F><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>
|
|
|
|
|
|
//virtual void BreakTransform(CPointArr &ptArrControl,CPointArr &ptArrControlOriginal,CPointArr &ptArrCurve,BOOL bTop,BOOL bLith=0);//
|
|
|
|
|
|
virtual void BreakTransform(std::vector<dfPoint> &ptArrControl, CPointArr &ptArrControlOriginal, CPointArr &ptArrCurve, BOOL bTop, BOOL bLith = 0);//
|
|
|
|
|
|
//<2F>ϲ<EFBFBD><CFB2>и<EFBFBD><D0B8><EFBFBD>λ
|
|
|
|
|
|
BOOL FaultCut(std::vector<dfPoint>* ptsIn, CPointArr* ptsOut,DWORD nCutType,double dLeft=0.0, double dRight=0.0, BOOL bBreak=FALSE,BOOL bCross=TRUE);
|
|
|
|
|
|
BOOL FaultCut_ResForm(std::vector<dfPoint>* ptsIn, CPointArr* ptsOut, DWORD nCutType, double dLeft = 0.0, double dRight = 0.0, BOOL bBreak = FALSE, BOOL bCross = TRUE);
|
|
|
|
|
|
//BOOL FaultCut1(CPointArr* ptsIn, CPointArr* ptsOut, DWORD nCutType, double dLeft = 0.0, double dRight = 0.0, BOOL bBreak = FALSE, BOOL bCross = TRUE);
|
|
|
|
|
|
//<2F>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塢<EFBFBD><E5A1A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
void FaultPlug(CPointArr& BreakLithLeft,CPointArr& BreakLithRight);
|
|
|
|
|
|
|
|
|
|
|
|
CString FluidRationship(CString strLeft,CString strRight);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD>ϵ
|
|
|
|
|
|
CString LithoRationship(CString strLeft,CString strRight);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>°汾<C2B0>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>췽ʽ<ECB7BD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>, bLeft<66><74>ʾ<EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetExtendPoints(CPointArr &ptArr,BOOL bLeftWell,BOOL bTop,BOOL bLeft, std::vector<dfPoint> &ptArrControl);
|
|
|
|
|
|
|
|
|
|
|
|
//pcg<63>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int ReadPCG_BendPens(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
int ReadPCG_BendControls(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
int ReadPCG_FaultControls(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadPCG_BendControlsNew(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadPCG_BendBrushs(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadPCG_Borders(CFile &fr,CXmlParse& xp,const short& ver);
|
|
|
|
|
|
int ReadPCG_Borders_ResForm(CFile &fr, CXmlParse& xp, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int GetLayerID(CInTrackDepthSegment *pLayer);
|
|
|
|
|
|
|
|
|
|
|
|
void GetCutFluidForPinchOut(std::vector<dfPoint>& BreakLithLeft, std::vector<dfPoint>& BreakLithRight); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>µĶ<C2B5><C4B6><EFBFBD><EFBFBD>Ρ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
void ClearLayerLines(std::vector<LAYERLINEFRAGMENT*>&pLines);
|
|
|
|
|
|
void ClearStratumFragments();
|
|
|
|
|
|
void MakeStratumFragments();
|
|
|
|
|
|
BOOL IsLineOnFaultLeft(LAYERLINEFRAGMENT*pLayLine, LAYERLINEFRAGMENT*pPreLine, CFaultObj* pFault);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ߶ȵȲ<C8B5><C8B2><EFBFBD>
|
|
|
|
|
|
void GetBendLeftRightAndHeight(BOOL bTop,double& fLayerLeftH,double& fLayerRightH, double& valueLeft,double& valueRight,BOOL& bLeftFlag,BOOL & bRightFlag);
|
|
|
|
|
|
|
|
|
|
|
|
void ReCalculateCtrlPts(dfPoint* pResCtrls, std::vector<dfPoint>& dfPts ,BOOL bCtrlLine=TRUE);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG_Bend(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
virtual int ReadPCG(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int ReadPCG_BendPens(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
int ReadPCG_BendControls(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
int ReadPCG_FaultControls(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadPCG_BendControlsNew(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadPCG_BendBrushs(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadPCG_Borders(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
int ReadPCG_Borders_ResForm(CKXmlParse &xp, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual void Transform(CXyDC* pDC, float* matrix, BOOL bUndo);
|
|
|
|
|
|
virtual void TransformComputeZB(CXyDC* pDC, float* matrix, BOOL bUndo);
|
|
|
|
|
|
virtual void ComputeBend();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|