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.

65 lines
1.8 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A3AC>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>˷<EFBFBD>װCDimension3D<33><44>CFunction2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
// <09><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-12-8
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "Dimension3D.h"
#include "Function2D.h"
namespace NContour
{
class AFX_EXT_CLASS CMeshBase
{
public:
CMeshBase(void);
~CMeshBase(void);
CGrid* GetMesh() { return m_pMesh; }
CDimension3D* GetDfg() { return (CDimension3D*)m_pMesh; }
CFunction2D* GetFun() { return (CFunction2D*) m_pMesh; }
CSize size(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int GetDimension(void) { return GetMesh()->n; } //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>
double x(int i) { return GetMesh()->x(i); }
double y(int j) { return GetMesh()->y(j); }
CRect8 GetRect() { return GetMesh()->GetRect(); }
void operator =(CMeshBase& mb);
double GetValue(double x0, double y0) { return m_pMesh->Value(x0, y0); }
inline double GetValue(int i, int j) { return m_pMesh->Value(i, j); }
inline void SetValue(int i, int j, double v) { return m_pMesh->SetValue(i, j, v);}
virtual void ClearMesh(); //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
virtual void Empty();
virtual void Serialize(CArchive& ar, const short &ver);
enum EMeshType
{
typeERR = 0,
typeDFG = 1, //CDimension3D<33><44><EFBFBD>󣬿<EFBFBD><F3A3ACBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typeFXY = 2 //CFunction2D<32><44><EFBFBD><EFBFBD>
};
bool CreateMesh(EMeshType mt); //<2F><><EFBFBD>ɶ<EFBFBD>Ӧ<EFBFBD><D3A6>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>󣬲<EFBFBD><F3A3ACB2><EFBFBD><EFBFBD><EFBFBD>
void Attach(CGrid* pMesh, EMeshType mt);
CGrid* Detach();
EMeshType GetMeshType() { return m_eMeshType; }
void SetMeshType(EMeshType mt) { m_eMeshType = mt; }
BOOL m_bRealTimeDraw;
protected:
//Ϊ<><CEAA>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬲<EFBFBD><F1A3ACB2><EFBFBD>CMesh<73><68><EFBFBD>еĶ<D0B5><C4B6><EFBFBD>ͳһ<CDB3><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ɵ<EFBFBD>CDimension3D<33><44><EFBFBD>󣬵<EFBFBD>ʹ<EFBFBD><CAB9>ʱ<EFBFBD><CAB1>ΪCDimension2D
//<2F><><EFBFBD><EFBFBD><E2BBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CFunction2D<32><44><EFBFBD><EFBFBD>
CGrid* m_pMesh;
EMeshType m_eMeshType;
};
}//namespace