/**************************************************************************************
<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 ;
}
}
FaultCrossStuct & operator = ( const FaultCrossStuct & other )
{
bCross = other . bCross ;
nUCross = other . nUCross ;
nDCross = other . nDCross ;
point . x0 = other . point . x0 ;
point . y0 = other . point . y0 ;
nFirstUCross = other . nFirstUCross ;
nFirstDCross = other . nFirstDCross ;
firstPoint . x0 = other . firstPoint . x0 ;
firstPoint . y0 = other . firstPoint . y0 ;
return * this ;
}
} ;
//<2F> ϵ<EFBFBD> <CFB5> ľ<EFBFBD> <C4BE> <EFBFBD>
struct FaultThrowStuct
{
//int nID; //<2F> ϲ <EFBFBD> ID
CString faultName ;
double fUThrow ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
double fDThrow ; //<2F> Ҿ<EFBFBD> <D2BE> <EFBFBD>
public :
FaultThrowStuct ( )
{
fUThrow = 0 ;
fDThrow = 0 ;
}
void Serialize ( CArchive & ar , const short & ver )
{
if ( ar . IsStoring ( ) )
{
//ar << nID;
ar < < faultName ;
ar < < fUThrow ;
ar < < fDThrow ;
}
else
{
//ar >> nID;
ar > > faultName ;
ar > > fUThrow ;
ar > > fDThrow ;
}
}
} ;
//<2F> <> <EFBFBD> ϵĶϲ 㡢<CFB2> ϵ<EFBFBD>
struct FaultOnBendStruct
{
CFaultObj * pFault ; //<2F> ϲ <EFBFBD> ָ<EFBFBD> <D6B8>
//int faultID; //<2F> ϲ <EFBFBD> ID
CString faultName ;
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 ;
}
FaultOnBendStruct & operator = ( const FaultOnBendStruct & other )
{
pFault = other . pFault ;
//faultID = other.faultID;
faultThrow = other . faultThrow ;
faultUCross = other . faultUCross ;
faultDCross = other . faultDCross ;
faultBandPt [ 0 ] = other . faultBandPt [ 0 ] ;
faultBandPt [ 1 ] = other . faultBandPt [ 1 ] ;
faultName = other . faultName ;
fBanPtId = fBanPtId ;
return * this ;
}
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();
ar < < faultName ;
}
else
{
//ar >> faultID;
ar > > faultName ;
}
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 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ϲ <EFBFBD> <CFB2> <EFBFBD> <EFBFBD> ϼ<EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> Ҷϲ <D2B6> <CFB2> <EFBFBD> <DFBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĵ<EFBFBD>
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 ;
static int s_count ;
_LayerLineFragment ( )
{
pFaultPre = NULL ;
pFaultNext = NULL ;
bOnRight = FALSE ;
bShow = TRUE ;
bAddFirstPoint = FALSE ;
// _LayerLineFragment::s_count++;
// TRACE(" layerline count=%d \r\n", _LayerLineFragment::s_count);
}
~ _LayerLineFragment ( )
{
// s_count--;
// TRACE(" ~~~~ layerline count=%d \r\n", _LayerLineFragment::s_count);
}
_LayerLineFragment & operator = ( const _LayerLineFragment & other )
{
pFaultPre = other . pFaultPre ;
preFaultPt = other . preFaultPt ;
strLeftFault = other . strLeftFault ;
pFaultNext = other . pFaultNext ;
strRightFault = other . strRightFault ;
linePts . assign ( other . linePts . begin ( ) , other . linePts . end ( ) ) ;
lineCurve = other . lineCurve ;
bOnRight = other . bOnRight ;
nextFaultPt = other . nextFaultPt ;
nextFaultPt2 = other . nextFaultPt2 ;
fbintectPt = other . fbintectPt ; //<2F> <> <EFBFBD> <EFBFBD>
faultPts . assign ( other . faultPts . begin ( ) , other . faultPts . end ( ) ) ;
leftExtentPts . assign ( other . leftExtentPts . begin ( ) , other . leftExtentPts . end ( ) ) ;
rightExtentPts . assign ( other . rightExtentPts . begin ( ) , other . rightExtentPts . end ( ) ) ;
bShow = other . bShow ;
bAddFirstPoint = other . bAddFirstPoint ;
return * this ;
}
BOOL bAddFirstPoint ; //<2F> ӵ<EFBFBD> <D3B5> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
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 ; //bend<6E> в<EFBFBD> λ<EFBFBD> ߵ <EFBFBD> Ƭ<EFBFBD> <C6AC> ָ<EFBFBD> 룬<EFBFBD> <EBA3AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> һ <EFBFBD> £<EFBFBD> <C2A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> Ҫʹ <D2AA> á<EFBFBD>
std : : vector < LAYERLINEFRAGMENT * > botLayerLines ; //bend<6E> в<EFBFBD> λ<EFBFBD> ߵ <EFBFBD> Ƭ<EFBFBD> <C6AC> ָ<EFBFBD> 롣
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 ( ) ;
_StratumFragment & operator = ( _StratumFragment & other )
{
pFaultLeft = other . pFaultLeft ;
strLeftFault = other . strLeftFault ;
pFaultRight = other . pFaultRight ;
strRightFault = other . strRightFault ;
fillCurve = other . fillCurve ;
ClearLeftFillCurves ( ) ;
for ( int i = 0 ; i < other . leftFillCurves . size ( ) ; i + + )
{
CCurveEx * pCurve = new CCurveEx ;
* pCurve = * other . leftFillCurves [ i ] ;
leftFillCurves . push_back ( pCurve ) ;
}
fillType = other . fillType ;
bShow = other . bShow ;
//bend<6E> в<EFBFBD> λ<EFBFBD> ߵ <EFBFBD> Ƭ<EFBFBD> <C6AC> ָ<EFBFBD> 룬ֻ<EBA3AC> Ǽ<EFBFBD> ¼<EFBFBD> Լ<EFBFBD> <D4BC> <EFBFBD> Ҫʹ <D2AA> õIJ<C3B5> λ<EFBFBD> <CEBB> ָ<EFBFBD> <D6B8> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bend<6E> <64> <EFBFBD> <EFBFBD> =<3D> Ų<EFBFBD> <C5B2> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> ¼<EFBFBD> Լ<EFBFBD> <D4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bend<6E> ڵ<EFBFBD> Ƭ<EFBFBD> Σ<EFBFBD> <CEA3> <EFBFBD> <EFBFBD> <EFBFBD> other<65> <72> )
//topLayerLines.clear();
//topLayerLines.assign(other.topLayerLines.begin(), other.topLayerLines.end());
//botLayerLines.clear();
//botLayerLines.assign(other.botLayerLines.begin(), other.botLayerLines.end());
return * this ;
}
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 ; }
CLONE_WELLOBJECT ( CBendObj )
CBendObj & operator = ( CBendObj & other ) ;
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> (resform pcg<63> дӼ<D0B4> <D3BC> <EFBFBD> <EFBFBD> IJ<EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĺ<EFBFBD> <C4BA> <EFBFBD> ռ <EFBFBD> <D5BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <C4B1> <EFBFBD> )
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> (resform pcg<63> <67> ָ<EFBFBD> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> 㳯<EFBFBD> <E3B3AF> <EFBFBD> ľ<EFBFBD> <C4BE> <EFBFBD> <EFBFBD> <EFBFBD> )
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> <> df pcg<63> ļ<EFBFBD> <C4BC> <EFBFBD> ȡ<EFBFBD> IJ<EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD> <EFBFBD> ߵ <EFBFBD> <DFB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> Resform<72> ļ<EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> m_ptArrCurveTopOldRe<52> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͼ<EFBFBD> <CDBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> ã<EFBFBD>
CPointArr m_ptArrCurveBotOld ; //<2F> ²<EFBFBD> λ<EFBFBD> <CEBB> ԭʼ <D4AD> <CABC> <EFBFBD> Ƶ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> df pcg<63> ļ<EFBFBD> <C4BC> <EFBFBD> ȡ<EFBFBD> IJ<EFBFBD> λ<EFBFBD> ײ<EFBFBD> <D7B2> ߵ <EFBFBD> <DFB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFA3A9> Resform<72> ļ<EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> m_ptArrCurveBotOldRe<52> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͼ<EFBFBD> <CDBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> ã<EFBFBD>
CPointArr m_ptArrCurveTop ; //<2F> ϲ <EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> м<EFBFBD> <D0BC> <EFBFBD> ʱ<EFBFBD> Ŀ<EFBFBD> <C4BF> Ƶ<EFBFBD> <C6B5> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> resformģʽ <C4A3> £<EFBFBD> װ<EFBFBD> <D7B0> λ<EFBFBD> <EFBFBD> <DFBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> б <EFBFBD> <D0B1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㣨<EFBFBD> ĸ<EFBFBD> <C4B8> <EFBFBD> һ <EFBFBD> 飩)
CPointArr m_ptArrCurveBot ; //<2F> ²<EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> м<EFBFBD> <D0BC> <EFBFBD> ʱ<EFBFBD> Ŀ<EFBFBD> <C4BF> Ƶ<EFBFBD> <C6B5> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> resformģʽ <C4A3> £<EFBFBD> װ<EFBFBD> <D7B0> λ<EFBFBD> <EFBFBD> <DFBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> б <EFBFBD> <D0B1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㣨<EFBFBD> ĸ<EFBFBD> <C4B8> <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 m_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 m_fConstant ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> <CEBB> ʱʹ <CAB1> <CAB9> <20> <> <EFBFBD> <EFBFBD> b y = a*x+b
CPoint2D m_pointCenter ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> <CEBB> ʱʹ <CAB1> <CAB9>
CPoint2D m_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 ) ; //<2F> Զ<EFBFBD> <D4B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ൱<EFBFBD> <E0B5B1> ʹ <EFBFBD> ò<EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD> <EFBFBD> Է<EFBFBD> <D4B7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Խ<EFBFBD> <D4BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䣬<EFBFBD> <E4A3AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F1A3ACBE> <EFBFBD> ʹ <EFBFBD> <CAB9> ָ<EFBFBD> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɫ<EFBFBD> <C9AB> <EFBFBD> 䡣
BOOL IsLeftFillAuto ( ) ;
void SetRightFillAuto ( BOOL b ) ;
BOOL IsRightFillAuto ( ) ;
CCurveEx * GetLeftPickCurve ( ) ;
BOOL m_bNeedBreakLith ;
std : : vector < dfPoint > m_BendTrendLinePts ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> IJ<EFBFBD> λ<EFBFBD> м<EFBFBD> <D0BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߡ<EFBFBD>
GDFLOGBRUSH m_LeftBrush , m_RightBrush , m_defaultBrush ;
BOOL IsLayerLineIncludePoint ( BOOL btop , CPoint2D pt , double size ) ;
protected :
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>
FaultCutTopControlLine = 0x0008 , //<2F> и<EFBFBD> <D0B8> ϲ <EFBFBD> λ<EFBFBD> ߵ Ŀ<DFB5> <C4BF> Ƶ<EFBFBD> <C6B5> <EFBFBD>
FaultCutBottomControlLine = 0x0010 //<2F> и<EFBFBD> <D0B8> ϲ <EFBFBD> λ<EFBFBD> ߵ Ŀ<DFB5> <C4BF> Ƶ<EFBFBD> <C6B5> <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 HitTestControl_Resform ( CPoint2D point , double dHandleSize , BOOL bSelected ) ;
virtual int HitTestTop_Resform ( CPoint2D point , double dHandleSize , BOOL bSelected ) ;
virtual int HitTestBot_Resform ( 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 ) ;
//<2F> Ӳ<EFBFBD> λ<EFBFBD> <CEBB> Ƭ<EFBFBD> <C6AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л<EFBFBD> <D0BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> <CEBB>
void GetLayerLinePointsFromLayFragment ( std : : vector < LAYERLINEFRAGMENT * > & pLayerLines , BOOL bReverse , std : : vector < dfPoint > & outPts ) ;
void MakeLayerLineFragmentCurve ( std : : vector < LAYERLINEFRAGMENT * > & pLayerLines , BOOL bReverse ) ; //<2F> <> <EFBFBD> ɲ<EFBFBD> λ<EFBFBD> <CEBB> Ƭ<EFBFBD> ε<EFBFBD> <CEB5> <EFBFBD> <EFBFBD> <EFBFBD> Curve
void SetFaultForLayerLineFragments ( ) ;
void SetCutOrHideBendForAllFault ( ) ;
BOOL IsIntersectFault ( CFaultObj * pFault ) ;
void SetResFormBendTopBotPoint ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Resform<72> ж<EFBFBD> <D0B6> <EFBFBD> <EFBFBD> IJ<EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD> <EFBFBD> ߵ <EFBFBD> <DFB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ꣨m_ptArrCurveTopOldRe,m_ptArrCurveBotOldRe<52> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͼ<EFBFBD> е <EFBFBD> <D0B5> <EFBFBD> <EFBFBD> ꣨m_ptArrCurveTopOld<6C> <64> m_ptArrCurveBotOld<6C> <64>
protected :
void SmoothBend_ResForm ( ) ;
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 ) ;
//resForm<72> <6D> ʽ <EFBFBD> ½<EFBFBD> <C2BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĵ<EFBFBD> <C4B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϲ <EFBFBD> <CFB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> и<D0B8> <EEA3AC> <EFBFBD> <EFBFBD> <EFBFBD> նϾ<D5B6> ƫ<EFBFBD> Ƶ<EFBFBD> <C6B5> ߣ<EFBFBD>
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 ( ) ; //ʹ <> ò<EFBFBD> λ<EFBFBD> <CEBB> Ƭ<EFBFBD> <C6AC> <EFBFBD> <EFBFBD> <EFBFBD> ɱ<EFBFBD> <C9B1> ϲ <EFBFBD> <CFB2> ָ<EFBFBD> <D6B8> IJ<EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD>
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 ) ; //Ŀǰ<C4BF> <C7B0> <EFBFBD> <EFBFBD> ʹ <EFBFBD> ã<EFBFBD> 20251125
virtual int ReadPCG ( CKXmlParse & xp , const short & ver ) ;
int ReadPCG_BendProperties ( 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 ( ) ;
void GetResformCtrlPoints ( int id , dfPoint * resCtrls ) ;
CPoint2D GetPinchOutPointToWellPoint ( CPoint2D PinchPoint ) ; // <20> <> <EFBFBD> <EFBFBD> ָ<EFBFBD> ĵ<F2BEAEB5>
BOOL AddBendLayerPoint ( BOOL bTop , int posPointId ) ; //
BOOL DeleteBendLayerPoint ( BOOL bTop , int posPointId ) ;
void ReComputeBendForBreakLitho ( ) ;
void InitBendControlPoints ( ) ; //<2F> <> <EFBFBD> ռ <D5BC> ResFormPCG<43> <47> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bend<6E> ij<EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> Ƶ<EFBFBD>
void InitBendPchoutControlPoints ( CPoint2D pchPt ) ; //<2F> <> <EFBFBD> ռ <EFBFBD> <D5BC> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bend<6E> ij<EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> Ƶ<EFBFBD>
void SetBendStyle ( CString styleName ) ;
int m_HitTestSelectId ; // hittestʱѡ <CAB1> е <EFBFBD> bendλ<64> ã<EFBFBD> =0<> <30> û<EFBFBD> У <EFBFBD> =1 bend<6E> <64> =2 bendtopline<6E> <65> =3 bendbottomline
protected :
void CreateBendLine_ResForm ( BOOL bTop , std : : vector < dfPoint > & ptArrControl , std : : vector < dfPoint > & BreakLithoPoints ) ;
void CreateBendLine_OldDf ( BOOL bTop , std : : vector < dfPoint > & ptArrControl , std : : vector < dfPoint > & BreakLithoPoints ) ;
virtual void MoveHandleToTop_ResForm ( int nHandle , CPoint2D point ) ;
virtual void MoveHandleToBot_ResForm ( int nHandle , CPoint2D point ) ;
/*
resform 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> pointOldReArr <EFBFBD> Ǵ <EFBFBD> pcg <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> ֱ <EFBFBD> Ӷ <EFBFBD> ȡ <EFBFBD> ģ <EFBFBD> pointOldArr <EFBFBD> ǰ <EFBFBD> <EFBFBD> ղ <EFBFBD> λ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݼ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> õ <EFBFBD> <EFBFBD> <EFBFBD> pointArr <EFBFBD> ǽ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݰ <EFBFBD> <EFBFBD> ղ <EFBFBD> λ <EFBFBD> <EFBFBD> <EFBFBD> Ƶ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ġ <EFBFBD>
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϶ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> pointArr <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>
*/
void MoveHandleToTopBottom_ResForm ( int nHandle , CPoint2D point , CPointArr & pointArr , CPointArr & pointOldArr , std : : vector < dfPoint > & pointOldReArr , BOOL bTop ) ;
void ComputedTopBotLayerFromStyleLine ( CCurveEx * pCurve , std : : vector < dfPoint > & layerLine , dfPoint lpt , dfPoint rpt ) ;
protected :
std : : vector < CFaultObj * > m_topCutFaults , m_botCutFaults ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> õ<EFBFBD> <C3B5> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
# endif