|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC>չ<EFBFBD><D5B9>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <09><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-5-5
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "SeisSurvey3D.h"
|
|
|
|
|
|
#include "Texture.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NCube
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CMeshCoor3D : public CMeshBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMeshCoor3D(void);
|
|
|
|
|
|
~CMeshCoor3D(void);
|
|
|
|
|
|
|
|
|
|
|
|
EOrientation GetOrientation() { return m_eOrientation; }
|
|
|
|
|
|
void SetOrientation(EOrientation ori) { m_eOrientation = ori; }
|
|
|
|
|
|
|
|
|
|
|
|
bool CreateTexture(CTexture* pTex, CColorBase& cb, int nBPP);
|
|
|
|
|
|
void operator =(CMeshCoor3D& mb);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
EOrientation m_eOrientation;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>άˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>͵ģ<CDB5>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
|
|
|
|
|
|
//ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֵ<EFBFBD><D6B5>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧһ<D3A6><D2BB>
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CMesh2D : public CMeshCoor3D
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMesh2D(void);
|
|
|
|
|
|
~CMesh2D(void);
|
|
|
|
|
|
|
|
|
|
|
|
enum ECoorType
|
|
|
|
|
|
{
|
|
|
|
|
|
typeSameOne = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֵͬ
|
|
|
|
|
|
typePerOne //ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ㴦<DDB5><E3B4A6><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int CreateSameOne( double x0, double y0, double z0,
|
|
|
|
|
|
int m, int n, double dm, double dn, EOrientation ori);
|
|
|
|
|
|
|
|
|
|
|
|
//ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ㴦<DDB5><E3B4A6>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD>㴦<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ
|
|
|
|
|
|
int CreatePerOne( double x0, double y0, double z0,
|
|
|
|
|
|
int m, int n, double dm, double dn, EOrientation ori);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Empty();
|
|
|
|
|
|
|
|
|
|
|
|
double Value(double x0, double y0, double z0);
|
|
|
|
|
|
inline double Value(double x0, double y0) { return m_pMesh->Value(x0, y0);}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>꣨<EFBFBD><EAA3A8>С<EFBFBD><D0A1><EFBFBD>꣩
|
|
|
|
|
|
void SetCoordinate(double x0, double y0, double z0);
|
|
|
|
|
|
|
|
|
|
|
|
CPoint3D GetMaxPoint();
|
|
|
|
|
|
CPoint3D GetMinPoint();
|
|
|
|
|
|
bool GetCurveCoord(CCurve& cv, bool bIsMaxRange); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĿռ<C4BF><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
double xmin(void);
|
|
|
|
|
|
double xmax(void);
|
|
|
|
|
|
double ymin(void);
|
|
|
|
|
|
double ymax(void);
|
|
|
|
|
|
double zmin(void);
|
|
|
|
|
|
double zmax(void);
|
|
|
|
|
|
|
|
|
|
|
|
CPoint3D GetCoordinate(int i, int j);
|
|
|
|
|
|
void GetCoordinate(int i, int j, CPoint3D& pt);
|
|
|
|
|
|
double x(int i, int j);
|
|
|
|
|
|
double y(int i, int j);
|
|
|
|
|
|
double z(int i, int j);
|
|
|
|
|
|
|
|
|
|
|
|
CMesh2D& operator = (CMesh2D& md);
|
|
|
|
|
|
|
|
|
|
|
|
int Write(LPCTSTR lpszFileName);
|
|
|
|
|
|
void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
bool WriteSegy(LPCTSTR lpszFileName);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>//////////////////////////////////////////////////////////////////
|
|
|
|
|
|
double GetCoor3RD(int i, int j);
|
|
|
|
|
|
void SetCoor3RD(int i, int j, double coor);
|
|
|
|
|
|
void SetCoor3RD(int i, int j, CPoint3D& pt); //<2F><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
inline double GetCoor3RD(int nIndex) { return m_pCoor3RD[nIndex]; }
|
|
|
|
|
|
inline void SetCoor3RD(int nIndex, double coor) { m_pCoor3RD[nIndex] = coor; }
|
|
|
|
|
|
int GetCoor3RDCount(void); //<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|
|
|
|
|
void GetCoor3RDRange(); //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ
|
|
|
|
|
|
inline void SetCoor3RDRange(double dmin, double dmax)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_dCoor3RDRange[0] = dmin;
|
|
|
|
|
|
m_dCoor3RDRange[1] = dmax;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F><>Ƭ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>,<2C><>Ӧ<EFBFBD><D3A6><EFBFBD>£<EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ
|
|
|
|
|
|
// Inline x
|
|
|
|
|
|
// Crossline y
|
|
|
|
|
|
// ZSlice z
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double* m_pCoor3RD; //<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵҲ<D6B5><D2B2>ͬ
|
|
|
|
|
|
ECoorType m_eCoorType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_dCoor3RDRange[2]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|
|
|
|
|
|
using namespace NCube;
|
|
|
|
|
|
|