|
|
|
|
|
/************************************************************
|
|
|
|
|
|
* @ file Function2D.h <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @ version 1.0
|
|
|
|
|
|
* @ date 2011-2012
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ:
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(CFLineLink)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽڵ㣨CFPointLink)
|
|
|
|
|
|
ָ<EFBFBD>빹<EFBFBD>ɣ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺ţ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>(i,j<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺Ŷ<EFBFBD>Ϊ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ڲ<EFBFBD>Ϊ<EFBFBD><EFBFBD>Ӧ<EFBFBD>̺š<EFBFBD><EFBFBD><EFBFBD>ͼ
|
|
|
|
|
|
|0
|
|
|
|
|
|
|
|
|
|
|
|
|
----|-|------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD> -10
|
|
|
|
|
|
-10 | |10 <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
----|-|------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD> 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0
|
|
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ㲻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|0
|
|
|
|
|
|
|
|
|
|
|
|
|
----|-------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>10
|
|
|
|
|
|
| <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
----|-------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|0
|
|
|
|
|
|
************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "grid.h"
|
|
|
|
|
|
#include ".\plane.h"
|
|
|
|
|
|
#include "ContourCreate.h"
|
|
|
|
|
|
#include "ContourValue.h"
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
|
|
namespace NContour
|
|
|
|
|
|
{
|
|
|
|
|
|
class CDimension2D;
|
|
|
|
|
|
class AFX_EXT_CLASS CFunction2D :
|
|
|
|
|
|
public CGrid
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CFunction2D(void);
|
|
|
|
|
|
~CFunction2D(void);
|
|
|
|
|
|
CString bjSurfacePath;
|
|
|
|
|
|
void SetBJSurfacePath(CString pSurfacePath);
|
|
|
|
|
|
//<2F><><EFBFBD>ɵ<EFBFBD>ֵ<EFBFBD><D6B5>,<2C><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
void ContourCreate(CString m_contour, double cmin, double cmax, double step, long markNameStep, CString m_color);
|
|
|
|
|
|
void ContourCreate(CString m_contour, double cmin, double cmax, double step, long markNameStep, CString m_flt, CString m_color);
|
|
|
|
|
|
void ContourCreate(CString m_contour, double cmin, double cmax, double step, long markNameStep, LPCTSTR markLayer, LPCTSTR otherLayer , CString m_color);
|
|
|
|
|
|
void ContourCreate(CString m_contour, double cmin, double cmax, double step, long markNameStep, LPCTSTR markLayer, LPCTSTR otherLayer , CString m_flt, CString m_color);
|
|
|
|
|
|
void ContourCreate(FILE* fw, double cmin, double cmax, double step, long markNameStep, CString m_color);
|
|
|
|
|
|
void ContourCreate(FILE* fw, double cmin, double cmax, double step, long markNameStep, LPCTSTR markLayer, LPCTSTR otherLayer , CString m_color, LPCTSTR lpszDfgFileName);
|
|
|
|
|
|
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`
|
|
|
|
|
|
void ContourCreate( POSITION AddContourCurve(CCurve* pCurve, CString strLayer),
|
|
|
|
|
|
double cmin, double cmax, double step, long markNameStep, LPCTSTR markLayer, LPCTSTR otherLayer );
|
|
|
|
|
|
void ContourCreate( POSITION AddContourCurve(CCurve* pCurve, CString strLayer), CContour& cv, LPCTSTR markLayer, LPCTSTR otherLayer );
|
|
|
|
|
|
|
|
|
|
|
|
void ContourCreate(std::vector<CCurve*>* curves, std::vector<CString*>* layers, CContour& cv, CString markLayer, CString otherLayer);
|
|
|
|
|
|
|
|
|
|
|
|
// <20>õ<EFBFBD><C3B5><EFBFBD><DEB6><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CFunction2D* SubFunction2D(int ib, int jb,int it,int jt);
|
|
|
|
|
|
/** @brief <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ㸳<C4B5><E3B8B3>ֵ */
|
|
|
|
|
|
void NullPtOutside(CCurve* pCurve);
|
|
|
|
|
|
/** @brief <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ㸳<C4B5><E3B8B3>ֵ */
|
|
|
|
|
|
void NullPtInside(CCurve* pCurve);
|
|
|
|
|
|
|
|
|
|
|
|
/** @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 Empty(); //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int WriteDfg(LPCTSTR m_output);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short& ver);
|
|
|
|
|
|
virtual int Read(CFile& fr); //<2F><>չ<EFBFBD><D5B9>Ϊ*.fxy
|
|
|
|
|
|
virtual void Write(CFile& fw);
|
|
|
|
|
|
|
|
|
|
|
|
/**@brief <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Smooth<74><68><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
virtual void Smooth(double smooth_coef = 1.0 );
|
|
|
|
|
|
|
|
|
|
|
|
int ReadOld(CFile& fr); //<2F><>չ<EFBFBD><D5B9>Ϊ*.f(x,y)
|
|
|
|
|
|
void WriteOld(CFile& fw);
|
|
|
|
|
|
/** @brief <20><>Dimension2D<32><44><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> */
|
|
|
|
|
|
int ReadDimension2D(CDimension2D* dim);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>Dimension2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
int WriteDimension2D(CDimension2D* dim);
|
|
|
|
|
|
int Read(LPCTSTR m_input);
|
|
|
|
|
|
int Write(LPCTSTR strOutput);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int ReadOther(CFile& fr);
|
|
|
|
|
|
void WriteOther(CFile& fw);
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<CCurve*>* m_pCurves = nullptr;
|
|
|
|
|
|
std::vector<CString*>* m_pLayers = nullptr;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void WriteLine(FILE *fw);
|
|
|
|
|
|
void WriteLink(LPCTSTR m_link);
|
|
|
|
|
|
int WriteLine(LPCTSTR m_output);
|
|
|
|
|
|
void WriteDifferential(LPCTSTR m_output,int IsNo,int IsDY);
|
|
|
|
|
|
void WriteDifferential(FILE *fw,int IsNo,int IsDY);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD>zֵ<7A>ķ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD> */
|
|
|
|
|
|
int GetRange(double minValidValue=-1e100, double maxValidValue=1e100);
|
|
|
|
|
|
|
|
|
|
|
|
double Differential(double &x, double &y,int no,int dy);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD>㣬lΪ<6C><CEAA><EFBFBD>㴦<EFBFBD><E3B4A6>ֱ<EFBFBD>߲<EFBFBD><DFB2><EFBFBD>ֵ<EFBFBD><D6B5>preΪ<65><CEAA><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>*/
|
|
|
|
|
|
int Cross(CLine3D& line, double& l, double pre);
|
|
|
|
|
|
|
|
|
|
|
|
/** @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><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>zֵ<7A><D6B5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻǽ<CFBD><C7BD>㴦pPoint<6E><74><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵľ<C9B5><C4BE>ν<EFBFBD><CEBD>в<EFBFBD>ֵ
|
|
|
|
|
|
B---*-A
|
|
|
|
|
|
| P. |
|
|
|
|
|
|
|___*_| <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>ֵ<EFBFBD><EFBFBD>AB<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>*1<EFBFBD><EFBFBD>CD<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>*2<EFBFBD><EFBFBD>*1*2<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>P
|
|
|
|
|
|
C D
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual double Value(double x0, double y0);
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(i,j)<29><>ֵ<EFBFBD><D6B5>Ϊ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPointLink<6E><6B><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ*/
|
|
|
|
|
|
virtual double Value(int i, int j);
|
|
|
|
|
|
virtual void SetValue(int i, int j, double v);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>(x,y)<29><><EFBFBD>̺<EFBFBD>Ϊno<6E>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ֵ*/
|
|
|
|
|
|
double f(double x, double y, int no);
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>꣨x,y)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Zֵ<5A><D6B5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>Ӧ<EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD>pValue <20><> pNo */
|
|
|
|
|
|
int f(double x, double y, int *pNo, double *pValue);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD><C3B5><EFBFBD>(i,j<><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㴦<EFBFBD><E3B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pPointָ<74><D6B8>pPointIj<49>Ͷ<EFBFBD>ӦCLineX<65><58><EFBFBD><EFBFBD>__ValueNoIJ */
|
|
|
|
|
|
int GetValueNumber(int i, int j);
|
|
|
|
|
|
void * GetValue(int i, int j,int no);
|
|
|
|
|
|
int GetValue(int i, int j,int *__ValueNoIJ,double *pValue);
|
|
|
|
|
|
double ValueFaultage(double& x, double& y, int no);
|
|
|
|
|
|
int Float(double& rx, double& ry, double& rz);
|
|
|
|
|
|
double GetNo(double x, double y,double z,int &m_No);//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֱ<EFBFBD><D6B1><EFBFBD>룬<EFBFBD><EBA3AC>0<EFBFBD><30>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetOther(void);
|
|
|
|
|
|
|
|
|
|
|
|
virtual CGrid* CloneObject(void); //<2F><>¡<EFBFBD>Լ<EFBFBD>
|
|
|
|
|
|
void operator=(CFunction2D& d2d);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ڵ<EFBFBD>ָ<EFBFBD><D6B8>*/
|
|
|
|
|
|
class AFX_EXT_CLASS CPointLink
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CPointLink(void);
|
|
|
|
|
|
~CPointLink(void);
|
|
|
|
|
|
|
|
|
|
|
|
int Read (CFile& fr, CFunction2D* pGrid2D);
|
|
|
|
|
|
void Write(CFile& fw, CFunction2D* pGrid2D);
|
|
|
|
|
|
|
|
|
|
|
|
void WriteLink(FILE* fw);
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CPointLink& pk);
|
|
|
|
|
|
|
|
|
|
|
|
/** @<40><>ֵ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>Ϊ<EFBFBD><CEAA>i,j<><6A><EFBFBD>ĵ<EFBFBD>zֵ i = <20><>ֵ<EFBFBD><D6B5>.x - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.x
|
|
|
|
|
|
j = <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>.y - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.y
|
|
|
|
|
|
*/
|
|
|
|
|
|
int GetValue(double i, double j, double& m_result);
|
|
|
|
|
|
int Differential(double& m_result,int dy);
|
|
|
|
|
|
void SetOther(void);
|
|
|
|
|
|
int IsFlt(void);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
/** @brief <20>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PointLink<6E><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬˳<EBA3AC><CBB3>Ϊ
|
|
|
|
|
|
|1
|
|
|
|
|
|
2--+--0
|
|
|
|
|
|
|3
|
|
|
|
|
|
*/
|
|
|
|
|
|
CPointLink** m_pLink;
|
|
|
|
|
|
double value;
|
|
|
|
|
|
char IsOther;
|
|
|
|
|
|
char nCount; ///< <20><>¼<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ٹ<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
class AFX_EXT_CLASS CLineX
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CLineX(void);
|
|
|
|
|
|
~CLineX(void);
|
|
|
|
|
|
|
|
|
|
|
|
int Read (CFile& fr, CFunction2D* pGrid2D);
|
|
|
|
|
|
void Write(CFile& fw, CFunction2D* pGrid2D);
|
|
|
|
|
|
|
|
|
|
|
|
///< <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>CLineX<65>ϵ<EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
void *GetValue(int j);
|
|
|
|
|
|
void operator=(CLineX& lx);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
short nCount; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
|
CPointLink* pPoint; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
short j0; ///< <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD>3 j<><6A><EFBFBD><EFBFBD>5<EFBFBD><35>j0Ϊ5
|
|
|
|
|
|
short No; ///< <20>̺<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ֱ)<29><>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| CLineX1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| CLineX2
|
|
|
|
|
|
|
|
|
|
|
|
|
CLine
|
|
|
|
|
|
*/
|
|
|
|
|
|
class AFX_EXT_CLASS CLine
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CLine(void);
|
|
|
|
|
|
~CLine(void);
|
|
|
|
|
|
|
|
|
|
|
|
int Read (CFile& fr, CFunction2D* pGrid2D);
|
|
|
|
|
|
void Write(CFile& fw, CFunction2D* pGrid2D);
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CLine& line);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CLineX *pX;
|
|
|
|
|
|
_int32 nCount;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
int GetFaultageNo(int i, int j, CPointLink* pPl);
|
|
|
|
|
|
int GetFaultageNo(CPointLink* pPl);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CPoint2D _ContourIJ,_LastContourIJ;
|
|
|
|
|
|
CPoint2D _ContourXY;
|
|
|
|
|
|
char _ContourDirect;
|
|
|
|
|
|
double _ContourValue,t;
|
|
|
|
|
|
CList<CPoint2D,CPoint2D>_ContourXyList; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD>ŵ<EFBFBD>ǰ<EFBFBD><C7B0>ֵ<EFBFBD><D6B5><EFBFBD>ϵĵ<CFB5>
|
|
|
|
|
|
|
|
|
|
|
|
CLine* pLine; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CPointLink* pPoint; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
_int32 total; ///< <20><><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
|
|
|
|
|
|
|
char IsTail;
|
|
|
|
|
|
CPointLink** pPointIJ; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼(i,j)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pPoint<6E><74><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
int * __ValueNoIJ; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼(i,j)<29><><EFBFBD><EFBFBD><EFBFBD>㸲<EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>ClineX<65><58>No
|
|
|
|
|
|
CMap<int,int,void *,void *> CurveMap;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void ContourPointLink(CPointLink *&pPl);
|
|
|
|
|
|
double ContourPointLink(CPointLink* pLink, char m_direct);
|
|
|
|
|
|
void Contour(double cv);
|
|
|
|
|
|
void ContourWrite(void);
|
|
|
|
|
|
int ContourTrim(int IsTail,int fn);
|
|
|
|
|
|
//void Contour(double cmin, double cmax, double step, long markNameStep);
|
|
|
|
|
|
void Contour(CContour& cv);
|
|
|
|
|
|
|
|
|
|
|
|
CContourCreate m_contourCreate;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|
|
|
|
|
|
|