Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cMapBase.h File Reference

Go to the source code of this file.

Classes

class  GrayMapData::cMapWaterDef
 
class  GrayMapData::cMapBase
 

Namespaces

 GrayMapData
 

Macros

#define MAP_SCALE(lod)   (1<<((lod)*3))
 integer Size of a patch's MAP_PATCH_POINTS (in meters (MAP_METERI_t)) More...
 
#define MAP_SIZE(lod)   (MAP_SCALE(lod) * MAP_PATCH_POINTS)
 size of a patch (in meters (MAP_METERI_t)) More...
 
#define cMapBaseProp(a, b, c, d, e)   P_##a,
 

Typedefs

typedef int GrayMapData::MAP_PATCH_POINT_t
 this gives the number of samples in the heightmap file: 128 means a 129x129 file (include skirt pixel) More...
 
typedef WORD GrayMapData::MAP_CHANNEL_t
 
typedef unsigned short GrayMapData::MAP_HEIGHT_t
 
typedef BYTE GrayMapData::MAP_SURFACE_ID_t
 
typedef DWORD GrayMapData::MAP_TERRAIN_MASK_t
 
typedef cRefPtr< cMapPatch > GrayMapData::cMapPatchPtr
 
typedef cThreadLockRef< cMapPatch > GrayMapData::cMapPatchPtrX
 

Enumerations

enum  GrayMapData::MAP_LOD_TYPE {
  GrayMapData::MAP_LOD_BLOCK = 0 , GrayMapData::MAP_LOD_SECTOR , GrayMapData::MAP_LOD_OCTANT , GrayMapData::MAP_LOD_ZONE ,
  GrayMapData::MAP_LOD_WORLD
}
 
enum  GrayMapData::MAP_LIMITS_TYPE {
  GrayMapData::MAP_MIN_X = 0 , GrayMapData::MAP_MAX_X = ((1<<(( MAP_LOD_WORLD )*3)) * MAP_PATCH_POINTS) , GrayMapData::MAP_MIN_Y = 0 , GrayMapData::MAP_MAX_Y = ((1<<(( MAP_LOD_WORLD )*3)) * MAP_PATCH_POINTS) ,
  GrayMapData::MAP_MIN_Z = -1000 , GrayMapData::MAP_MAX_Z = 10000 , GrayMapData::MAP_BAD_Z = -10000 , GrayMapData::MAP_HEIGHT_MIN = -100 ,
  GrayMapData::MAP_HEIGHT_SEA = 0 , GrayMapData::MAP_HEIGHT_MAX = 2521 , GrayMapData::MAP_VIEWDIST_TER_MAX = 10000 , GrayMapData::MAP_VIEWDIST_OBJ_MAX = 2000 ,
  GrayMapData::MAP_VIEWDIST_TER_DEF = 1000 , GrayMapData::MAP_VIEWDIST_OBJ_DEF = 300
}
 
enum  GrayMapData::MAP_CHANNEL_TYPE_ {
  GrayMapData::MAP_CHANNEL_NONE = 0 , GrayMapData::MAP_CHANNEL_Height = 0x0001 , GrayMapData::MAP_CHANNEL_Normal = 0x0002 , GrayMapData::MAP_CHANNEL_Surface = 0x0004 ,
  GrayMapData::MAP_CHANNEL_Texture = 0x0008 , GrayMapData::MAP_CHANNEL_Script = 0x0020 , GrayMapData::MAP_CHANNEL_All = 0x003F , GrayMapData::MAP_CHANNEL_Height_LegX = 0x0100 ,
  GrayMapData::MAP_CHANNEL_Height_LegY = 0x0200 , GrayMapData::MAP_CHANNEL_Surface_LegX = 0x0400 , GrayMapData::MAP_CHANNEL_Surface_LegY = 0x0800 , GrayMapData::MAP_CHANNEL_NonCrit = 0x1000 ,
  GrayMapData::MAP_CHANNEL_Placement = 0x2000 , GrayMapData::MAP_CHANNEL_IgnoreBounds = 0x4000 , GrayMapData::MAP_CHANNEL_Now = 0x8000
}
 
enum  GrayMapData::MAP_SURFACE_TYPE { GrayMapData::MAP_SURFACE_Legacy = 0 , GrayMapData::MAP_SURFACE_Hole = 254 , GrayMapData::MAP_SURFACE_QTY = 256 }
 
enum  GrayMapData::MAP_TERRAIN_TYPE {
  GrayMapData::MAP_TERRAIN_NONE = 0 , GrayMapData::MAP_TERRAIN_STONE , GrayMapData::MAP_TERRAIN_WOOD , GrayMapData::MAP_TERRAIN_DIRT ,
  GrayMapData::MAP_TERRAIN_GRASS , GrayMapData::MAP_TERRAIN_MUD , GrayMapData::MAP_TERRAIN_SNOW , GrayMapData::MAP_TERRAIN_ICE ,
  GrayMapData::MAP_TERRAIN_WATER_SHALLOW , GrayMapData::MAP_TERRAIN_WATER_SURFACE , GrayMapData::MAP_TERRAIN_WATER_DEEP , GrayMapData::MAP_TERRAIN_WATER_BOTTOM ,
  GrayMapData::MAP_TERRAIN_UnderGround , GrayMapData::MAP_TERRAIN_BURIED , GrayMapData::MAP_TERRAIN_QTY , GrayMapData::MAP_TERRAIN_MASK_ANY = 0x7fffffff
}
 

Variables

const int GrayMapData::MAP_LOD_RATIO = 8
 Ratio of one LOD to the next. i.e. a parent patch has (max) <= MAP_LOD_RATIO^2 immediate children. More...
 
const MAP_PATCH_POINT_t GrayMapData::MAP_PATCH_POINTS = 128
 arbitrary qty of points in the patch height grid. (meters @ MAP_LOD_BLOCK) MAP_PATCH_POINT_t More...
 
const D3DVALUE GrayMapData::MAP_VIEWDIST_NEAR_DEF = 0.3f
 
const D3DVALUE GrayMapData::MAP_VIEWDIST_MIN = 0.1f
 
const MAP_HEIGHT_t GrayMapData::MAP_HEIGHT_UNITS = 0xFFFF
 
const MAP_METERf_t GrayMapData::MAP_HEIGHT_SCALE = 0.04f
 
__DECL_IMPORT cCoordSpaceDX GrayMapData::g_Coords
 

Detailed Description

load/manage a geographic map with multiple LODs

Macro Definition Documentation

◆ cMapBaseProp

#define cMapBaseProp (   a,
  b,
  c,
  d,
 
)    P_##a,

◆ MAP_SCALE

#define MAP_SCALE (   lod)    (1<<((lod)*3))

integer Size of a patch's MAP_PATCH_POINTS (in meters (MAP_METERI_t))

◆ MAP_SIZE

#define MAP_SIZE (   lod)    (MAP_SCALE(lod) * MAP_PATCH_POINTS)

size of a patch (in meters (MAP_METERI_t))