Mesh.h
上传用户:sz83729876
上传日期:2013-03-07
资源大小:4140k
文件大小:1k
源码类别:

OpenGL

开发平台:

Windows_Unix

  1. #ifndef _MESH_H_
  2. #define _MESH_H_
  3. #include "Stdinc.h"
  4. class CVertex
  5. {
  6.     public:
  7.         float       x, y, z;
  8.         float       nx, ny, nz;
  9.         float       tu, tv;
  10. };
  11. class CMaterial
  12. {
  13.     public:
  14.         std::string         m_strName;
  15.     
  16.         float               m_fUScale;
  17.         float               m_fVScale;
  18.         bool                m_bHasTexture;
  19.         std::string         m_strTextureName;
  20.         int                 m_iTextureID;
  21. };
  22. class CMesh
  23. {
  24.     public:
  25.         std::string         m_strName;
  26.         CVertex*            m_pVertices;
  27.         int                 m_dwVertexCount;
  28.         unsigned short*     m_pIndices;
  29.         int                 m_dwIndexCount;
  30.         std::string         m_strMaterialName; // for object loading
  31.         CMaterial*          m_pMaterial;
  32.         void CalculateNormals();
  33.         void Render();
  34.         CMesh();
  35.         ~CMesh();
  36. };
  37. class CObject
  38. {
  39.     protected:
  40.         std::vector<CMesh*> m_vMesh;
  41.         std::vector<CMaterial*> m_vMaterials;
  42.         bool ParseMeshesAndMaterials();
  43.     public:
  44.         bool LoadFrom3DS( std::string strFile );
  45.         void AddMesh( CMesh* pMesh );
  46.         void AddMaterial( CMaterial* pMat );
  47.         virtual bool Render();
  48.         CObject();
  49.         ~CObject();
  50. };
  51. #endif