Terrain.h
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // Terrain.h: interface for the CTerrain class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_TERRAIN_H__A574B9A8_37A1_4B50_AE15_C397FFC404BB__INCLUDED_)
  5. #define AFX_TERRAIN_H__A574B9A8_37A1_4B50_AE15_C397FFC404BB__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "structdef.h"
  10. #include "heightmap.h"
  11. #include "normal.h"
  12. class CTerrain  
  13. {
  14. public:
  15. CTerrain();
  16. bool    InitTerrain();
  17. // void    UpdateTerrainmap();
  18.     void    RenderTerrain();
  19. void    RestoreDrawMap();
  20. virtual ~CTerrain();
  21. int     GetNumTriangles();
  22. protected:
  23. void    RenderTerrainTile(int x,int z);
  24.     void    DrawLevel_1(int x,int z);
  25.     void    DrawLevel_2(int x,int z);
  26.     void    DrawLevel_3(int x,int z);
  27.     void    DrawLevel_4(int x,int z);
  28.     void    DrawLevel_5(int x,int z);
  29.     void    DrawLevel_6(int x,int z);
  30.     void    DrawLevel_7(int x,int z);
  31. void    UpdateLODmap();                    //将视区内要画的点做记号
  32. int     GetPos(int x,int z);
  33. int     GetXpos(int x,int z);
  34. int     GetZpos(int x,int z);
  35. void    DrawTerrainStrip(int X,int Z);
  36.     CHeightmap       m_cHmap;
  37.     TERRAIN_SKIN     Skinmap[64][64];
  38. unsigned short   NormalIndex[256*256];
  39. unsigned char    LODmap[256][256];
  40. //记录信息:从文件中读取LOD等级,0,1,2,3,4,5,6,7
  41. float biasX;
  42. float biasZ;
  43. CNormal          cNormal;
  44. unsigned int     Blend[4];
  45. unsigned int     BaseA[3];
  46. unsigned int     BaseB[3];
  47. unsigned int     Detail[2];
  48.     int              numTriangles;
  49. };
  50. #endif // !defined(AFX_TERRAIN_H__A574B9A8_37A1_4B50_AE15_C397FFC404BB__INCLUDED_)