www.pudn.com > 林海血原源代码.zip > Heightmap.h


// Heightmap.h: interface for the CHeightmap class. 
//作者:吴雪平  2002-6-17日修改 
//存储公共数据:如地形、操作者位置等 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_HEIGHTMAP_H__5700AE61_401D_11D6_812C_5254AB37CDC9__INCLUDED_) 
#define AFX_HEIGHTMAP_H__5700AE61_401D_11D6_812C_5254AB37CDC9__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
#include "structdef.h" 
 
class CHeightmap   
{ 
public: 
	CHeightmap(); 
	virtual ~CHeightmap(); 
    unsigned char   GetHeightmapPointValue(VERTEX *checked); 
	float   GetHeight(VERTEX *checked); 
	float   GetHeight(float xpos,float zpos); 
	bool    CollideCheck(VERTEX viewPos,VERTEX objPos,float step=10); 
    bool    CheckSunVisible(); 
	bool    IsInFrustum(VERTEX checked); 
    POINT   ConvertToMovemap(VERTEX pos); 
 
 
	static MOVE_VERTEX    * m_pMovemap; 
	static unsigned char  * m_pTmap;    ///terrain map 
	static unsigned char  * m_pCovermap; 
 
	static VERTEX         * m_pViewPos; 
	static VERTEX         * m_pSunPos; 
 
	static float          * m_pViewRotX; 
	static float          * m_pViewRotY; 
 
	static bool             m_bSunVisible; 
 
	static BOUNDARY_2D      m_rect; 
private: 
	bool    ReadTerrainmapFile(); 
	bool    ReadPlantmapFile(); 
	int     GetPosInMovemap(int x,int z); 
    POINT   ConvertToHeightmap(VERTEX *pos); 
 
	static int             m_numUser; 
 
}; 
 
#endif // !defined(AFX_HEIGHTMAP_H__5700AE61_401D_11D6_812C_5254AB37CDC9__INCLUDED_)