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    DrawBase();
  32. void    UpdateLODmap();                    //将视区内要画的点做记号
  33. int     GetPos(int x,int z);
  34. int     GetXpos(int x,int z);
  35. int     GetZpos(int x,int z);
  36. void    DrawTerrainStrip(int X,int Z);
  37.     CHeightmap       m_cHmap;
  38.     TERRAIN_SKIN     Skinmap[64][64];
  39. unsigned short   NormalIndex[256*256];
  40. unsigned char    LODmap[256][256];
  41. //记录信息:从文件中读取LOD等级,0,1,2,3,4,5,6,7
  42. float biasX;
  43. float biasZ;
  44. CNormal          cNormal;
  45. unsigned int     Blend[4];
  46. unsigned int     BaseA[5];
  47. unsigned int     BaseB[5];
  48. unsigned int     Detail[2];
  49.     int              numTriangles;
  50. };
  51. #endif // !defined(AFX_TERRAIN_H__A574B9A8_37A1_4B50_AE15_C397FFC404BB__INCLUDED_)