|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "dfdimension.h"
|
|
|
|
|
|
#include "ScreenXY.h" // Added by ClassView
|
|
|
|
|
|
#include "ContourValue.h"
|
|
|
|
|
|
#include "ContourCreate.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NContour
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CDimension2D :
|
|
|
|
|
|
public CDimensionBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CDimension2D(void);
|
|
|
|
|
|
~CDimension2D(void);
|
|
|
|
|
|
|
|
|
|
|
|
virtual CGrid* CloneObject(void); //<2F><>¡<EFBFBD>Լ<EFBFBD>
|
|
|
|
|
|
virtual int Create(int numx, int numy, double x0, double y0, double dx, double dy);
|
|
|
|
|
|
virtual void SetValue(int i, int j, double v);
|
|
|
|
|
|
virtual double Value(double x0, double y0);///< <20><>ֵ<EFBFBD><D6B5>x0,y0<79><30>zֵ
|
|
|
|
|
|
virtual double Value(int i, int j); ///< <20><><EFBFBD><EFBFBD>zֵ
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CDimension2D& d2d);
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>NContour::CDimension2Dֱ<44>߷<EFBFBD><DFB7><EFBFBD>ϵ<EFBFBD><CFB5>ֵl<D6B5><6C><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>pre<72><65><EFBFBD><EFBFBD> */
|
|
|
|
|
|
int Cross(CLine3D& line, double& l, double pre); //<2F><><EFBFBD>أ<EFBFBD>1<EFBFBD><31>ʾû<CABE>н<EFBFBD><D0BD><EFBFBD>
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣬ <20><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>pre<72><65><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><DEBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>false */
|
|
|
|
|
|
bool Cross(CPoint3D& pt1, CPoint3D& pt2, CPoint3D& csPt, double pre);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣬ <20><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>pre<72><65><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><DEBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>false */
|
|
|
|
|
|
bool Cross(CCurve& curve, CPoint3D& csPt, double pre);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>zֵ<7A><D6B5><EFBFBD>мӼ<D0BC><D3BC>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>,0<><30><EFBFBD><EFBFBD>+ <20><>1 Ϊ<><CEAA><EFBFBD><EFBFBD>2Ϊ<32>ˣ<EFBFBD>3Ϊ<33><CEAA>*/
|
|
|
|
|
|
void ChangeZValue(double cv, int mode);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short& ver); //*.dfg
|
|
|
|
|
|
virtual int WriteDfg(LPCTSTR m_output);
|
|
|
|
|
|
int ReadDfgHead(CString m_input);
|
|
|
|
|
|
int ReadDfg(CFile& fr);
|
|
|
|
|
|
int ReadDfg(CString m_input);
|
|
|
|
|
|
int WriteDfg(CFile& fw);
|
|
|
|
|
|
int WriteDfg(FILE* fw);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadGridText(CString m_input);
|
|
|
|
|
|
int ReadGridText(CFile& fr); //˫<><CBAB><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
void WriteGridText(CFile& fw); //˫<><CBAB><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
int WriteGridText(CString m_output); //˫<><CBAB><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
void WriteGridTextData(CFile& fw); //˫<><CBAB><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
|
|
|
|
|
|
//<2F><>ȡASCII<49>ļ<EFBFBD><C4BC>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>֣<EFBFBD><D6A3><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD>Կո<D4BF><D5B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
int ReadGridTextData(CFile& fr, BOOL bReversal);
|
|
|
|
|
|
|
|
|
|
|
|
void WriteGrid(CString m_output);
|
|
|
|
|
|
int WriteToSEGY(CString m_output);
|
|
|
|
|
|
int Write(int fw, int i, int j, double z0);
|
|
|
|
|
|
double Read(int fr, int i, int j);
|
|
|
|
|
|
int WriteI64(int fw, int i, int j, __int64 z0);
|
|
|
|
|
|
__int64 ReadI64(int fr, int i, int j);
|
|
|
|
|
|
int WriteFaultage(FILE *&fw);
|
|
|
|
|
|
|
|
|
|
|
|
int GetBitmap(CImage &m_bmp,CColorBase &dcolor,int step);
|
|
|
|
|
|
int Draw(CDC *pDC,CScreenXY* pScreenXY,CColorBase &dcolor);
|
|
|
|
|
|
void FaultagePolygon(int k,int m_direction);
|
|
|
|
|
|
|
|
|
|
|
|
double fValue(int fr, double x0, double y0);
|
|
|
|
|
|
double Volume(CCurve& curve, double baseZ=0);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double TradeArea(CCurve& curve, double baseZ = 0);
|
|
|
|
|
|
|
|
|
|
|
|
int Extremum(FILE *& fw,int mm);
|
|
|
|
|
|
int Extremum(int i,int j,int mm);
|
|
|
|
|
|
/** @brief Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ߽<D3B1>*/
|
|
|
|
|
|
void Outline(CCurve& curve);
|
|
|
|
|
|
/** @brief Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ߽<D3B1>*/
|
|
|
|
|
|
int Outline(CString m_input);
|
|
|
|
|
|
|
|
|
|
|
|
int GetPlane(double x, double y, CPlane& plane);
|
|
|
|
|
|
int DX(CPoint3D &point);
|
|
|
|
|
|
int DY(CPoint3D &point);
|
|
|
|
|
|
double DifferentialX(int fr, int i, int j);
|
|
|
|
|
|
double DifferentialY(int fr, int i, int j);
|
|
|
|
|
|
double Differential(int fr, int i, int j);
|
|
|
|
|
|
double DX(int i, int j, int nt); //ntΪ<74><CEAA><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>,1=һ<><D2BB>,2=<3D><><EFBFBD><EFBFBD>....
|
|
|
|
|
|
double DY(int i, int j, int nt);
|
|
|
|
|
|
double DXY(int i, int j,int nt);
|
|
|
|
|
|
double DifferentialX(int fr, int k);
|
|
|
|
|
|
double DifferentialY(int fr, int k);
|
|
|
|
|
|
double Differential(int fr, int k);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int ContourCreate(CString m_output, CString m_contour, CString markLayer, CString otherLayer, char *mode="at");
|
|
|
|
|
|
void ContourCreate(CContour& cv);
|
|
|
|
|
|
void ContourCreate(POSITION AddContourCurve(CCurve* pCurve, CString strLayer), CContour& cv, CString markLayer, CString otherLayer);
|
|
|
|
|
|
|
|
|
|
|
|
void ContourCreate(std::vector<CCurve*>* curves, std::vector<CString*>* layers, CContour& cv, CString markLayer, CString otherLayer);
|
|
|
|
|
|
|
|
|
|
|
|
//template<class T, class PMemFun>
|
|
|
|
|
|
//void ContourCreate(T& obj, PMemFun pmemfun, CContour& cv, CString markLayer, CString otherLayer);
|
|
|
|
|
|
int Faultage(CString name);
|
|
|
|
|
|
void Faultage(CCurve& fal);
|
|
|
|
|
|
|
|
|
|
|
|
void SetContourCreateFile(FILE* fw);
|
|
|
|
|
|
/** @brief <>ٶ<EFBFBD>άƽ<CEAC><C6BD><EFBFBD><EFBFBD>ֵΪm_contour<75>ĵ<EFBFBD>ֵ<EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
void Contour2D(double m_contour);
|
|
|
|
|
|
/** @brief <20><>(i,j)λ<>ò鵽<C3B2><E9B5BD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>*/
|
|
|
|
|
|
int Contour2DK(int i, int j, double m_contour, char* mark);
|
|
|
|
|
|
|
|
|
|
|
|
//CList <dfPoint,dfPoint> m_contour_line;
|
|
|
|
|
|
std::vector<dfPoint> m_contour_line;
|
|
|
|
|
|
|
|
|
|
|
|
CCurve flt_u;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F>ϲ<EFBFBD>
|
|
|
|
|
|
void Faultage(double *xl, double *yl);
|
|
|
|
|
|
void FaultageY(int i,int j,double t);
|
|
|
|
|
|
void FaultageX(int i,int j,double t);
|
|
|
|
|
|
void FaultageY(double *xl, double *yl);
|
|
|
|
|
|
void FaultageX(double *xl, double *yl);
|
|
|
|
|
|
|
|
|
|
|
|
int DrawFaultage(int k,CDC *pDC,CScreenXY* pScreenXY,CColorBase &cr);
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<CCurve*>* m_pCurves = nullptr;
|
|
|
|
|
|
std::vector<CString*>* m_pLayers = nullptr;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20>ж<EFBFBD><D0B6>Ƿ<C7B7><F1B5BDB4>߽磬<DFBD>Լ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ص<EFBFBD>ֵ<EFBFBD>㵽<EFBFBD><E3B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>֮<EFBFBD><D6AE>*/
|
|
|
|
|
|
double ContourGet(int k,double m_contour,int m_offset);
|
|
|
|
|
|
void ContourAddPoint(double x,double y,double z);
|
|
|
|
|
|
void ContourAddPoint(CList<dfPoint, dfPoint>& lstPoint, double x, double y, double z);
|
|
|
|
|
|
/** @brief ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ֵ<EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>,<2C><><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ˵<CFB8><CBB5><EFBFBD><EFBFBD>cppע<70><D7A2>*/
|
|
|
|
|
|
void Contour2D(double &m_contour,int &k, char *mark,int m_direction);
|
|
|
|
|
|
//void Contour2DB(double &m_contour, int &k, char *mark, int m_direction);
|
|
|
|
|
|
void Contour2DPolygon(double m_contour);
|
|
|
|
|
|
void Contour2DFaultage(double &m_contour, int &k, char *mark, int m_direction);
|
|
|
|
|
|
int Contour2DFaultageIsBreak(int k1,int k2);
|
|
|
|
|
|
void ContourWrite(char *name);
|
|
|
|
|
|
void Contour(double m_contour);
|
|
|
|
|
|
|
|
|
|
|
|
int IsTail;
|
|
|
|
|
|
CContourCreate m_contourCreate;
|
|
|
|
|
|
// private:
|
|
|
|
|
|
// /** @brief <20><><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>Χ<EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>С<EFBFBD><D0A1>*/
|
|
|
|
|
|
// void EnlageU(double dz);
|
|
|
|
|
|
// /** @brief <20><><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>Χ<EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD>Сһ<D0A1><D2BB>С<EFBFBD><D0A1>*/
|
|
|
|
|
|
// void ReduceU(double dz);
|
|
|
|
|
|
// /** @brief <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><D7B7><EFBFBD><EFBFBD><EFBFBD><CEA2><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ֵ<EFBFBD><D6B5>λ*/
|
|
|
|
|
|
// void HomeU();
|
|
|
|
|
|
// list<int> m_tempNodNoLst; ///< <20>洢<EFBFBD><E6B4A2>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵʱ<D6B5>õ<EFBFBD>
|
|
|
|
|
|
// double m_tinydz; ///< zֵС<CEA2>ı<EFBFBD><C4B1><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|