22 #ifndef INCLUDED_TERRAIN
23 #define INCLUDED_TERRAIN
CStr8 GetMovementClass(ssize_t i, ssize_t j) const
A simple fixed-point number class.
void MakeDirty(ssize_t i0, ssize_t j0, ssize_t i1, ssize_t j1, int dirtyFlags)
const ssize_t TERRAIN_TILE_SIZE
metres [world space units] per tile in x and z
CBoundingBoxAligned GetVertexesBound(ssize_t i0, ssize_t j0, ssize_t i1, ssize_t j1)
Returns a 3D bounding box encompassing the given vertex range (inclusive)
void SetHeightMap(u16 *heightmap)
SColor4ub GetBaseColour() const
void CalcPosition(ssize_t i, ssize_t j, CVector3D &pos) const
ssize_t GetVerticesPerSide() const
bool GetTriangulationDir(ssize_t i, ssize_t j) const
float GetExactGroundLevel(float x, float z) const
void CalcNormal(ssize_t i, ssize_t j, CVector3D &normal) const
void CalcPositionFixed(ssize_t i, ssize_t j, CFixedVector3D &pos) const
fixed GetSlopeFixed(ssize_t i, ssize_t j) const
const float HEIGHT_SCALE
metres per u16 height unit
static void CalcFromPosition(float x, float z, ssize_t &i, ssize_t &j)
CMiniPatch * GetTile(ssize_t i, ssize_t j) const
ssize_t GetTilesPerSide() const
CHeightMipmap m_HeightMipmap
bool IsOnMap(float x, float z) const
bool Initialize(ssize_t patchesPerSide, const u16 *ptr)
fixed GetExactGroundLevelFixed(fixed x, fixed z) const
float GetFilteredGroundLevel(float x, float z, float radius) const
void CalcNormalFixed(ssize_t i, ssize_t j, CFixedVector3D &normal) const
fixed GetVertexGroundLevelFixed(ssize_t i, ssize_t j) const
CPatch * GetPatch(ssize_t i, ssize_t j) const
void SetBaseColour(SColor4ub colour)
float GetVertexGroundLevel(ssize_t i, ssize_t j) const
void Resize(ssize_t size)
u16 * GetHeightMap() const
static void CalcFromPosition(const CVector3D &pos, ssize_t &i, ssize_t &j)
ssize_t GetPatchesPerSide() const
const CHeightMipmap & GetHeightMipmap() const
const ssize_t HEIGHT_UNITS_PER_METRE
number of u16 height units per metre
CVector3D CalcExactNormal(float x, float z) const