You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.3 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<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;