00001
00008 #ifndef _MACROS_H
00009 #define _MACROS_H
00010
00011 #include "ctrl.h"
00012 #include "math3d.h"
00013 #include "snippetsgl.h"
00014 #include "instfont.h"
00015
00016
00017
00018 #define NATO_Alphabet(letter) \
00019 ({ \
00020 char* name[] = { \
00021 "Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", \
00022 "Golf", "Hotel", "India", "Juliett", "Kilo", "Lima", "Mike", \
00023 "November", "Oscar", "Papa", "Quibec", "Romeo", "Sierra", \
00024 "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu" \
00025 }; \
00026 name[letter]; \
00027 })
00028
00029
00030 #define getSystemHour(hour1f) \
00031 { \
00032 time_t t = time(NULL); \
00033 tm *l = localtime(&t); \
00034 hour1f = (float) (l->tm_hour + l->tm_min / 60.0 + l->tm_sec / 3600.0); \
00035 }
00036
00037
00038 #define generateTexture3D(WIDTH, HEIGHT, DEPTH, texture_ptr, d_func_xyz, r_func_dxyz, g_func_dxyz, b_func_dxyz, sx, sy, sz) \
00039 { \
00040 unsigned char* t = texture_ptr; \
00041 loopi(WIDTH) { loopj(HEIGHT) { loopk(DEPTH) { \
00042 unsigned char delta = (unsigned char) d_func_xyz(sx*i, sy*j, sz*k); \
00043 (*t++) = r_func_dxyz(delta, sx*i, sy*j, sz*k); \
00044 (*t++) = g_func_dxyz(delta, sx*i, sy*j, sz*k); \
00045 (*t++) = b_func_dxyz(delta, sx*i, sy*j, sz*k); \
00046 }}}; \
00047 }
00048
00049 #define deltaFunc_NoisyPlasma(i,j,k) ( 160 + (rand()%30) + 60*(0.5 + 0.5 * sin((9*i+3*j+20)*0.017453) * sin((9*j+3*k+60)*0.017453) * sin((9*k+3*i+80)*0.017453) ) )
00050 #define ColorFunc_Delta(delta, x,y,z) (delta)
00051
00052
00053 #endif
00054