HeightMap.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------------
  2. // File: heightmap.h
  3. //
  4. // Copyright (C) Microsoft Corporation. All Rights Reserved.
  5. //-----------------------------------------------------------------------------
  6. #pragma once
  7. #define MAX_HEIGHT_OF_MAP  1000.0f
  8. #define ZONE_WIDTH          64
  9. #define ZONE_HEIGHT         64
  10. class CTerrainEngine;
  11. class CHeightMap  
  12. {
  13. public:
  14.     CHeightMap( CTerrainEngine* pTerrainEngine, float fWorldOffsetX, float fWorldOffsetZ );
  15.     virtual ~CHeightMap();
  16.     HRESULT Create( int nHeight, int nWidth ); 
  17.     HRESULT CreateFromFile( TCHAR* strFileName );
  18.     FLOAT   GetHeightObj( float fObjCoordX, float fObjCoordZ );
  19.     BOOL    IsOutOfRangeObj( float x, float z );
  20.     float   GetCellHeightObj( float x, float z );
  21.     BOOL    IsOutOfRangeObj( int x, int z );
  22.     float   GetCellHeightObj( int x, int z );
  23.     HRESULT SmoothMap();
  24.     HRESULT FinalizeSmooth();
  25.     VOID    CreateSmallHills(); 
  26.     VOID    CreateMountain();
  27.     VOID    CreateTestMap( FLOAT fHeight );
  28.     
  29. protected:   
  30.     HRESULT SmoothSingleMap();
  31.     VOID    RaiseLand( int iCenterX, int iCenterZ, float fRadius, float fHeight );
  32. public:
  33.     int     m_nZSize;
  34.     int     m_nXSize;
  35.     FLOAT   m_fZSize;
  36.     FLOAT   m_fXSize;
  37.     FLOAT*  m_pMap;
  38.     FLOAT*  m_pSmoothMap;
  39.     CTerrainEngine* g_pTerrainEngine;
  40.     FLOAT           m_fWorldOffsetX;
  41.     FLOAT           m_fWorldOffsetZ;
  42. };