BuildWorld.h File Reference

Declares the BuildWorld, BuildDimension, SqrLimits and CoordBuild classes. More...

#include "general.h"
#include "Space3D.h"
#include "Shape.h"

Include dependency graph for BuildWorld.h:

This graph shows which files directly or indirectly include this file:


Classes

class  BuildDimension
 BuildDimension contains the raw data of a single dimention of tiles in BuildWorld. More...
class  BuildDimension::BuildPage
 BuildPage is a single page in the dimention. More...
struct  SqrLimits
 SqrLimits contains limits of single dimention. More...
struct  CoordBuild
 CoordBuild is a full coordniate designator for a tile in BuildWorld. More...
class  BuildWorld
 BuildWorld holds the raw data from the design editor. More...
struct  BuildWorld::WorldLimits
 WorldLimits contains the actual limits of BuildWorld in its 3 dimentions. More...
struct  BuildWorld::TransSqr
 TransSqr is the datum of the transp internal lookup table used doTransparent(). More...

Defines

#define BUILD_SIZE   50
 the size of a single dimention of the build.
#define FACE_NORM   0x00000201
 normal white
#define FACE_STRT   0x00000202
 starting, yellow
#define FACE_NORM_SELR   0x00020201
 show for selected to be removed
#define FACE_STRT_SELR   0x00020202
#define FACE_TRANS   0x00000101
 blue ones, possible to put there a tile
#define FACE_TRANS_NONE   0x00010101
 should be blue, but not shown.
#define FACE_DONT_TRANS   0x00000102
 impossible to put there
#define FACE_TRANS_SEL   0x00000103
 shown where its possible to put a new cube
#define TYPE_REAL   0x00000200
 real tiles
#define TYPE_VIR   0x00000100
 virtual tiles
#define SHOW_REOMOVE   0x00020000
 can happen only to REAL tiles
#define SHOW_DONT   0x00010000
 can happen only to TRANS tiles
#define SHOW_DO   0x00000000
#define GET_TYPE(face)   ((face) & 0x0000FF00)
#define GET_VAL(face)   ((face) & 0x0000FFFF)
#define GET_SHOW(face)   ((face) & 0x00FF0000)
#define GET_VAL_SHOW(face)   ((face) & 0x00FFFFFF)
#define GET_INTENSITY(face)   (((face) >> 24) & 0xFF)
#define SET_INTENSITY(face, in)   ((face & 0x00FFFFFF) | ((in) << 24))

Detailed Description

Declares the BuildWorld, BuildDimension, SqrLimits and CoordBuild classes.

BuildWorld is used by CubeDoc to hold the state of the design editor BuildWorld uses BuildDimension internally to hold the data and SqrLimits to hold the boundaries of the current structure. this file also defines various #define constacts such as FACE_NORM and FACE_STRT that are used as the tile values in the array of BuildDimension and various macros such as GET_TYPE() and GET_VAL() that are used to make sense of these values.


Define Documentation

#define BUILD_SIZE   50

the size of a single dimention of the build.

should be under 255 for MAKE_NAME

#define FACE_DONT_TRANS   0x00000102

impossible to put there

#define FACE_NORM   0x00000201

normal white

#define FACE_NORM_SELR   0x00020201

show for selected to be removed

#define FACE_STRT   0x00000202

starting, yellow

#define FACE_STRT_SELR   0x00020202

#define FACE_TRANS   0x00000101

blue ones, possible to put there a tile

#define FACE_TRANS_NONE   0x00010101

should be blue, but not shown.

#define FACE_TRANS_SEL   0x00000103

shown where its possible to put a new cube

#define GET_INTENSITY ( face   )     (((face) >> 24) & 0xFF)

#define GET_SHOW ( face   )     ((face) & 0x00FF0000)

#define GET_TYPE ( face   )     ((face) & 0x0000FF00)

#define GET_VAL ( face   )     ((face) & 0x0000FFFF)

#define GET_VAL_SHOW ( face   )     ((face) & 0x00FFFFFF)

#define SET_INTENSITY ( face,
in   )     ((face & 0x00FFFFFF) | ((in) << 24))

#define SHOW_DO   0x00000000

#define SHOW_DONT   0x00010000

can happen only to TRANS tiles

#define SHOW_REOMOVE   0x00020000

can happen only to REAL tiles

#define TYPE_REAL   0x00000200

real tiles

#define TYPE_VIR   0x00000100

virtual tiles