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

游戏引擎

开发平台:

Visual C++

  1. // Heightmap.h: interface for the CHeightmap class.
  2. //作者:吴雪平  2002-6-17日修改
  3. //存储公共数据:如地形、操作者位置等
  4. //////////////////////////////////////////////////////////////////////
  5. #if !defined(AFX_HEIGHTMAP_H__5700AE61_401D_11D6_812C_5254AB37CDC9__INCLUDED_)
  6. #define AFX_HEIGHTMAP_H__5700AE61_401D_11D6_812C_5254AB37CDC9__INCLUDED_
  7. #if _MSC_VER > 1000
  8. #pragma once
  9. #endif // _MSC_VER > 1000
  10. #include "structdef.h"
  11. class CHeightmap  
  12. {
  13. public:
  14. CHeightmap();
  15. virtual ~CHeightmap();
  16.     unsigned char   GetHeightmapPointValue(VERTEX *checked);
  17. float   GetHeight(VERTEX *checked);
  18. float   GetHeight(float xpos,float zpos);
  19. bool    CollideCheck(VERTEX viewPos,VERTEX objPos,float step=10);
  20.     bool    CheckSunVisible();
  21. bool    IsInFrustum(VERTEX checked);
  22.     POINT   ConvertToMovemap(VERTEX pos);
  23. static MOVE_VERTEX    * m_pMovemap;
  24. static unsigned char  * m_pTmap;    ///terrain map
  25. static unsigned char  * m_pCovermap;
  26. static VERTEX         * m_pViewPos;
  27. static VERTEX         * m_pSunPos;
  28. static float          * m_pViewRotX;
  29. static float          * m_pViewRotY;
  30. static bool             m_bSunVisible;
  31. static BOUNDARY_2D      m_rect;
  32. private:
  33. bool    ReadTerrainmapFile();
  34. bool    ReadPlantmapFile();
  35. int     GetPosInMovemap(int x,int z);
  36.     POINT   ConvertToHeightmap(VERTEX *pos);
  37. static int             m_numUser;
  38. };
  39. #endif // !defined(AFX_HEIGHTMAP_H__5700AE61_401D_11D6_812C_5254AB37CDC9__INCLUDED_)