?? terrain.h
字號:
//========================================================
/**
* @file Terrain.h
*
* 項(xiàng)目描述: 3DS文件載入
* 文件描述: 地形類
* 適用平臺: Windows98/2000/NT/XP
*
* 作者: WWBOSS
* 電子郵件: wwboss123@gmail.com
* 創(chuàng)建日期: 2006-12-06
* 修改日期: 2007-04-02 加入了細(xì)節(jié)紋理,采用了多重紋理技術(shù),使地表更富有細(xì)節(jié)感
* 2007-05-19 給地形加入了簡單霧效
*
*/
//========================================================
#ifndef __TERRAIN_H__
#define __TERRAIN_H__
#include "stdafx.h"
#include "CBMPLoader.h"
#include "camera.h"
/** 地形類 */
class CTerrain
{
public:
/** 構(gòu)造函數(shù) */
CTerrain();
~CTerrain();
/** 初始化地形 */
bool init();
/** 渲染地形 */
void render();
/** 設(shè)置是否使用細(xì)節(jié)紋理標(biāo)志 */
void setDetail(bool _bDetail) { m_bDetail = _bDetail;}
/** 獲得地面高度 */
float getAveHeight(float x, float z);
/** 得到當(dāng)前Terrain指針 */
static CTerrain* GetTerrainPointer() { return m_pTerrain;}
private:
/** 設(shè)置地形的大小 */
void setSize(unsigned int width, unsigned int cell);
/** 載入'.raw'高度圖 */
bool loadRawFile(const char* fileName);
/** 裝載紋理 */
bool loadTexture();
/** 獲得點(diǎn)(x,y)的高度信息 */
int getHeight(int x, int y);
/** 設(shè)置紋理坐標(biāo) */
void setTexCoord(float x, float z);
/** 設(shè)置霧效 */
void initFog();
public:
static CTerrain* m_pTerrain; /**< 當(dāng)前Terrain指針 */
unsigned int m_nWidth; /**< 地形網(wǎng)格數(shù) */
unsigned int m_nCellWidth; /**< 每一格寬度 */
BYTE* m_pHeightMap; /**< 存放高度信息 */
CBMPLoader m_texture[2]; /**< 地面紋理和細(xì)節(jié)紋理 */
bool m_bDetail; /**< 是否使用細(xì)節(jié)紋理標(biāo)志 */
int m_DetailScale; /**< 縮放比例 */
};
#endif //__TERRAIN_H__
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -