www.pudn.com > 3dSimplifier.zip > Mesh.h, change:2000-01-12,size:1540b


// Mesh.h: interface for the CMesh class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_MESH_H__9E1E69C2_755C_11D2_8C17_0000E83E7EBA__INCLUDED_) 
#define AFX_MESH_H__9E1E69C2_755C_11D2_8C17_0000E83E7EBA__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
#include "Defs.h" 
#include "Geometry.h" 
 
class CMesh   
{ 
public: 
	CMesh(); 
	virtual ~CMesh(); 
 
//members 
public: 
	void SaveData(FILE *fp); 
	int			m_nTriangle; 
	int			m_nsTriangle; 
	Triangle	*m_Triangle; 
	Triangle	*m_sTriangle; 
	int			m_nVertex; 
	int			m_nsVertex; 
	Coord3		*m_Vertex; 
	Coord3		*m_sVertex; 
	Coord3		*m_VNormal; 
	Coord3		*m_sVNormal; 
	Coord3		*m_TNormal; 
	Coord3		*m_sTNormal; 
 
	CProgressCtrl	*m_pProgress; 
//methods 
	int			ReadData(FILE *fp); 
	int			DrawModel(int RenderMode, int RenderModel); 
	int			Simplify(float ratio); 
	int			Simplify(int nFaceNo); 
	void		pair_contract(int Num_vertex,BOOL *border,int **cad_pair,float **pair_cost,Coord3 **pair_pos,Matrix4x4 *vex_Q,Coord3 *vertex,int *vex_map,int require); 
	void		cal_tri_Q(int Num_triangle,Triangle *mesh,Coord3 *vertex,Vector3 *tri_normal,Matrix4x4 *tri_Q); 
	void		cal_vex_Q(int Num_vertex,BOOL *border,int **vex_tri,Triangle *mesh,Coord3 *vertex,Vector3 *tri_normal,Matrix4x4 *tri_Q,Matrix4x4 *vex_Q); 
	void		V3Standarize(Vector3 v); 
	float		deta3(float matrix[3][3]); 
	int			Gauss(int n,float **A,float *b); 
}; 
 
#endif // !defined(AFX_MESH_H__9E1E69C2_755C_11D2_8C17_0000E83E7EBA__INCLUDED_)