00001
00032 #ifndef LL_LLDEFS_H
00033 #define LL_LLDEFS_H
00034
00035 #include "stdtypes.h"
00036
00037
00038 const U32 VX = 0;
00039 const U32 VY = 1;
00040 const U32 VZ = 2;
00041 const U32 VW = 3;
00042 const U32 VS = 3;
00043
00044 const U32 VRED = 0;
00045 const U32 VGREEN = 1;
00046 const U32 VBLUE = 2;
00047 const U32 VALPHA = 3;
00048
00049 const U32 INVALID_DIRECTION = 0xFFFFFFFF;
00050 const U32 EAST = 0;
00051 const U32 NORTH = 1;
00052 const U32 WEST = 2;
00053 const U32 SOUTH = 3;
00054
00055 const U32 NORTHEAST = 4;
00056 const U32 NORTHWEST = 5;
00057 const U32 SOUTHWEST = 6;
00058 const U32 SOUTHEAST = 7;
00059 const U32 MIDDLE = 8;
00060
00061 const U8 EAST_MASK = 0x1<<EAST;
00062 const U8 NORTH_MASK = 0x1<<NORTH;
00063 const U8 WEST_MASK = 0x1<<WEST;
00064 const U8 SOUTH_MASK = 0x1<<SOUTH;
00065
00066 const U8 NORTHEAST_MASK = NORTH_MASK | EAST_MASK;
00067 const U8 NORTHWEST_MASK = NORTH_MASK | WEST_MASK;
00068 const U8 SOUTHWEST_MASK = SOUTH_MASK | WEST_MASK;
00069 const U8 SOUTHEAST_MASK = SOUTH_MASK | EAST_MASK;
00070
00071 const U32 gDirOpposite[8] = {2, 3, 0, 1, 6, 7, 4, 5};
00072 const U32 gDirAdjacent[8][2] = {
00073 {4, 7},
00074 {4, 5},
00075 {5, 6},
00076 {6, 7},
00077 {0, 1},
00078 {1, 2},
00079 {2, 3},
00080 {0, 3}
00081 };
00082
00083
00084 const S32 gDirAxes[8][2] = {
00085 { 1, 0},
00086 { 0, 1},
00087 {-1, 0},
00088 { 0,-1},
00089 { 1, 1},
00090 {-1, 1},
00091 {-1,-1},
00092 { 1,-1},
00093 };
00094
00095 const S32 gDirMasks[8] = {
00096 EAST_MASK,
00097 NORTH_MASK,
00098 WEST_MASK,
00099 SOUTH_MASK,
00100 NORTHEAST_MASK,
00101 NORTHWEST_MASK,
00102 SOUTHWEST_MASK,
00103 SOUTHEAST_MASK
00104 };
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124 const U32 NO_SIDE = 0;
00125 const U32 FRONT_SIDE = 1;
00126 const U32 BACK_SIDE = 2;
00127 const U32 LEFT_SIDE = 3;
00128 const U32 RIGHT_SIDE = 4;
00129 const U32 TOP_SIDE = 5;
00130 const U32 BOTTOM_SIDE = 6;
00131
00132 const U8 LL_SOUND_FLAG_NONE = 0x0;
00133 const U8 LL_SOUND_FLAG_LOOP = 1<<0;
00134 const U8 LL_SOUND_FLAG_SYNC_MASTER = 1<<1;
00135 const U8 LL_SOUND_FLAG_SYNC_SLAVE = 1<<2;
00136 const U8 LL_SOUND_FLAG_SYNC_PENDING = 1<<3;
00137 const U8 LL_SOUND_FLAG_QUEUE = 1<<4;
00138 const U8 LL_SOUND_FLAG_STOP = 1<<5;
00139 const U8 LL_SOUND_FLAG_SYNC_MASK = LL_SOUND_FLAG_SYNC_MASTER | LL_SOUND_FLAG_SYNC_SLAVE | LL_SOUND_FLAG_SYNC_PENDING;
00140
00141
00142
00143
00144
00145
00146
00147
00148 const U32 LL_MAX_PATH = 1024;
00149
00150
00151 const U32 STD_STRING_BUF_SIZE = 255;
00152 const U32 STD_STRING_STR_LEN = 254;
00153
00154
00155
00156 const U32 MAX_STRING = STD_STRING_BUF_SIZE;
00157
00158 const U32 MAXADDRSTR = 17;
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176 template <class LLDATATYPE>
00177 inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2)
00178 {
00179 return (d1 > d2) ? d1 : d2;
00180 }
00181
00182 template <class LLDATATYPE>
00183 inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3)
00184 {
00185 LLDATATYPE r = llmax(d1,d2);
00186 return (r > d3 ? r : d3);
00187 }
00188
00189 template <class LLDATATYPE>
00190 inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2)
00191 {
00192 return (d1 < d2) ? d1 : d2;
00193 }
00194
00195 template <class LLDATATYPE>
00196 inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3)
00197 {
00198 LLDATATYPE r = llmin(d1,d2);
00199 return (r < d3 ? r : d3);
00200 }
00201
00202 template <class LLDATATYPE>
00203 inline LLDATATYPE llclamp(const LLDATATYPE& a, const LLDATATYPE& minval, const LLDATATYPE& maxval)
00204 {
00205 return llmin(llmax(a, minval), maxval);
00206 }
00207
00208 template <class LLDATATYPE>
00209 inline LLDATATYPE llclampf(const LLDATATYPE& a)
00210 {
00211 return llmin(llmax(a, (LLDATATYPE)0), (LLDATATYPE)1);
00212 }
00213
00214 template <class LLDATATYPE>
00215 inline LLDATATYPE llclampb(const LLDATATYPE& a)
00216 {
00217 return llmin(llmax(a, (LLDATATYPE)0), (LLDATATYPE)255);
00218 }
00219
00220 #endif // LL_LLDEFS_H