Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayMapData Namespace Reference

Classes

class  cMapWaterDef
 
class  cMapBase
 
class  CMapChanHeight
 
class  CMapChanSurface
 
class  cMapEntityParams
 
class  cMapEntity
 
class  CMapKey
 
class  CMapKeys
 
class  CMapMovable
 
class  CMapMover
 
class  cMapPatch
 
class  cMapOrbit
 
class  cMapTime
 
class  CMultiDefElement
 
class  CMultiDefBase
 
class  CCollisionTest
 
struct  CTemplateGroundParams
 
class  CTemplateDefBase
 
struct  CTemplateRollValue
 
class  CTemplateRoll
 

Typedefs

typedef int 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 MAP_CHANNEL_t
 
typedef unsigned short MAP_HEIGHT_t
 
typedef BYTE MAP_SURFACE_ID_t
 
typedef DWORD MAP_TERRAIN_MASK_t
 
typedef cRefPtr< cMapPatchcMapPatchPtr
 
typedef cThreadLockRef< cMapPatchcMapPatchPtrX
 
typedef cRefPtr< CMapMoverCMapMoverPtr
 
typedef cIUnkPtr< cMapEntitycMapEntityPtr
 
typedef int MAP_METERI_t
 integer meters for the location of a patch. MAP_METER_t More...
 
typedef float MAP_METERf_t
 Height meters dont need double accuracy. MAP_METER_t. More...
 
typedef UINT32 MAP_KEY_TYPE
 
typedef cRefPtr< CMultiDefElementCMultiDefElementPtr
 

Enumerations

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

Functions

 CSCRIPT_CLASS_IMP0 (MapBase, cMapBase::sm_Props, nullptr, "define a sector or a block of a map")
 
 CSCRIPT_CLASS_IMP1 (MapPatch, cMapPatch::sm_Props, cMapPatch::sm_Methods, "define a sector or a block of a map")
 
 CSCRIPT_CLASS_IMP0 (MultiDefBase, CMultiDefBase::sm_Props, nullptr, "Instance of MultiDef")
 
 CSCRIPT_CLASS_IMP0 (TemplateDefBase, CTemplateDefBase::sm_Props, nullptr, "Define a template of things om the ground")
 

Variables

cOSModImpl g_Module (GRAY_NAMES "MapData")
 
const int 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 MAP_PATCH_POINTS = 128
 arbitrary qty of points in the patch height grid. (meters @ MAP_LOD_BLOCK) MAP_PATCH_POINT_t More...
 
const D3DVALUE MAP_VIEWDIST_NEAR_DEF = 0.3f
 
const D3DVALUE MAP_VIEWDIST_MIN = 0.1f
 
const MAP_HEIGHT_t MAP_HEIGHT_UNITS = 0xFFFF
 
const MAP_METERf_t MAP_HEIGHT_SCALE = 0.04f
 
__DECL_IMPORT cCoordSpaceDX g_Coords
 
cRandomPerlin4096 g_RandomPerlin
 

Typedef Documentation

◆ cMapEntityPtr

◆ CMapMoverPtr

◆ cMapPatchPtr

◆ cMapPatchPtrX

◆ CMultiDefElementPtr

◆ MAP_CHANNEL_t

◆ MAP_HEIGHT_t

typedef unsigned short GrayMapData::MAP_HEIGHT_t

◆ MAP_KEY_TYPE

typedef UINT32 GrayMapData::MAP_KEY_TYPE

◆ MAP_METERf_t

Height meters dont need double accuracy. MAP_METER_t.

◆ MAP_METERI_t

integer meters for the location of a patch. MAP_METER_t

◆ MAP_PATCH_POINT_t

this gives the number of samples in the heightmap file: 128 means a 129x129 file (include skirt pixel)

0 to 128 to enum the patch height points.

◆ MAP_SURFACE_ID_t

◆ MAP_TERRAIN_MASK_t

Enumeration Type Documentation

◆ MAP_CHANNEL_TYPE_

Enumerator
MAP_CHANNEL_NONE 

what types of data are associated with a map/terrain patch. bitmask. AKA Layers in Photoshop

MAP_CHANNEL_Height 

the height map. MAP_HEIGHT_t

MAP_CHANNEL_Normal 

always computed normal/bump map. (NOT loaded from file)

MAP_CHANNEL_Surface 

the detailed ground surfaces. (detailed patch textures) (for roads, etc) (TODO Make this into an object?)

MAP_CHANNEL_Texture 

the ground texture. (for distance viewing only)

MAP_CHANNEL_Script 

the script listing all the child objects in the patch. includes water level.

MAP_CHANNEL_All 

never used with MAP_CHANNEL_NonCrit ?

MAP_CHANNEL_Height_LegX 
MAP_CHANNEL_Height_LegY 
MAP_CHANNEL_Surface_LegX 
MAP_CHANNEL_Surface_LegY 
MAP_CHANNEL_NonCrit 

get cached data only else just fail. (or out of bounds)

MAP_CHANNEL_Placement 

going to place an object. (must have proper height info)

MAP_CHANNEL_IgnoreBounds 

load even if outside bounds. (usually for very large objects)

MAP_CHANNEL_Now 

i need this data now. can't wait for it.

◆ MAP_LIMITS_TYPE

Enumerator
MAP_MIN_X 
MAP_MAX_X 
MAP_MIN_Y 
MAP_MAX_Y 
MAP_MIN_Z 
MAP_MAX_Z 
MAP_BAD_Z 
MAP_HEIGHT_MIN 
MAP_HEIGHT_SEA 
MAP_HEIGHT_MAX 
MAP_VIEWDIST_TER_MAX 
MAP_VIEWDIST_OBJ_MAX 
MAP_VIEWDIST_TER_DEF 
MAP_VIEWDIST_OBJ_DEF 

◆ MAP_LOD_TYPE

enumerate the levels of detail for the map patches. each is 8 (MAP_LOD_RATIO) times bigger than previous.

Enumerator
MAP_LOD_BLOCK 
MAP_LOD_SECTOR 
MAP_LOD_OCTANT 
MAP_LOD_ZONE 
MAP_LOD_WORLD 

◆ MAP_SURFACE_TYPE

Enumerator
MAP_SURFACE_Legacy 

For MAP_CHANNEL_Surface.

MAP_SURFACE_Hole 
MAP_SURFACE_QTY 

◆ MAP_TERRAIN_TYPE

Enumerator
MAP_TERRAIN_NONE 
MAP_TERRAIN_STONE 
MAP_TERRAIN_WOOD 
MAP_TERRAIN_DIRT 
MAP_TERRAIN_GRASS 
MAP_TERRAIN_MUD 
MAP_TERRAIN_SNOW 
MAP_TERRAIN_ICE 
MAP_TERRAIN_WATER_SHALLOW 
MAP_TERRAIN_WATER_SURFACE 
MAP_TERRAIN_WATER_DEEP 
MAP_TERRAIN_WATER_BOTTOM 
MAP_TERRAIN_UnderGround 
MAP_TERRAIN_BURIED 
MAP_TERRAIN_QTY 
MAP_TERRAIN_MASK_ANY 

◆ MAPMOVER_TYPE

An actively moving object . May match between clients.

Enumerator
MAPMOVER_PlayerMove 

player controlled move

MAPMOVER_PlayerTurn 

player controlled turn.

MAPMOVER_QTY 

◆ OBJ_SAVE_TYPE

How is this cMapEntity saved ?

Enumerator
OBJ_SAVE_Script 
OBJ_SAVE_Server 
OBJ_SAVE_Template 
OBJ_SAVE_Multi 
OBJ_SAVE_Temporary 
OBJ_SAVE_QTY 

◆ TemplatePass_TYPE

Stages to pass through for each sector in the region template.

Enumerator
TemplatePass_Height 

finding proper height

TemplatePass_Region 

finding a spot in the region polygon.

TemplatePass_Grade 

finding proper grade

TemplatePass_MinDistance 

finding non occupied spot in the region.

TemplatePass_QTY 

Function Documentation

◆ CSCRIPT_CLASS_IMP0() [1/3]

GrayMapData::CSCRIPT_CLASS_IMP0 ( MapBase  ,
cMapBase::sm_Props  ,
nullptr  ,
"define a sector or a block of a map"   
)

◆ CSCRIPT_CLASS_IMP0() [2/3]

GrayMapData::CSCRIPT_CLASS_IMP0 ( MultiDefBase  ,
CMultiDefBase::sm_Props  ,
nullptr  ,
"Instance of MultiDef"   
)

◆ CSCRIPT_CLASS_IMP0() [3/3]

GrayMapData::CSCRIPT_CLASS_IMP0 ( TemplateDefBase  ,
CTemplateDefBase::sm_Props  ,
nullptr  ,
"Define a template of things om the ground"   
)

◆ CSCRIPT_CLASS_IMP1()

GrayMapData::CSCRIPT_CLASS_IMP1 ( MapPatch  ,
cMapPatch::sm_Props  ,
cMapPatch::sm_Methods  ,
"define a sector or a block of a map"   
)

Variable Documentation

◆ g_Coords

__DECL_IMPORT cCoordSpaceDX GrayMapData::g_Coords
extern

◆ g_Module

cOSModImpl GrayMapData::g_Module(GRAY_NAMES "MapData") ( GRAY_NAMES "MapData"  )

◆ g_RandomPerlin

cRandomPerlin4096 GrayMapData::g_RandomPerlin

◆ MAP_HEIGHT_SCALE

const MAP_METERf_t GrayMapData::MAP_HEIGHT_SCALE = 0.04f

◆ MAP_HEIGHT_UNITS

const MAP_HEIGHT_t GrayMapData::MAP_HEIGHT_UNITS = 0xFFFF

◆ MAP_LOD_RATIO

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.

◆ MAP_PATCH_POINTS

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

◆ MAP_VIEWDIST_MIN

const D3DVALUE GrayMapData::MAP_VIEWDIST_MIN = 0.1f

◆ MAP_VIEWDIST_NEAR_DEF

const D3DVALUE GrayMapData::MAP_VIEWDIST_NEAR_DEF = 0.3f