Mesh.h
上传用户:lin85885
上传日期:2013-04-27
资源大小:796k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. // Mesh.h: interface for the CMesh class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_MESH_H__9E1E69C2_755C_11D2_8C17_0000E83E7EBA__INCLUDED_)
  5. #define AFX_MESH_H__9E1E69C2_755C_11D2_8C17_0000E83E7EBA__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. #include "Defs.h"
  10. #include "Geometry.h"
  11. class CMesh  
  12. {
  13. public:
  14. CMesh();
  15. virtual ~CMesh();
  16. //members
  17. public:
  18. void SaveData(FILE *fp);
  19. int m_nTriangle;
  20. int m_nsTriangle;
  21. Triangle *m_Triangle;
  22. Triangle *m_sTriangle;
  23. int m_nVertex;
  24. int m_nsVertex;
  25. Coord3 *m_Vertex;
  26. Coord3 *m_sVertex;
  27. Coord3 *m_VNormal;
  28. Coord3 *m_sVNormal;
  29. Coord3 *m_TNormal;
  30. Coord3 *m_sTNormal;
  31. CProgressCtrl *m_pProgress;
  32. //methods
  33. int ReadData(FILE *fp);
  34. int DrawModel(int RenderMode, int RenderModel);
  35. int Simplify(float ratio);
  36. int Simplify(int nFaceNo);
  37. 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);
  38. void cal_tri_Q(int Num_triangle,Triangle *mesh,Coord3 *vertex,Vector3 *tri_normal,Matrix4x4 *tri_Q);
  39. 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);
  40. void V3Standarize(Vector3 v);
  41. float deta3(float matrix[3][3]);
  42. int Gauss(int n,float **A,float *b);
  43. };
  44. #endif // !defined(AFX_MESH_H__9E1E69C2_755C_11D2_8C17_0000E83E7EBA__INCLUDED_)