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
00019
00020
00021 #define argcmp(p, b) ( (strcmp(p,b)==0) || (b[0]=='-' && b[1]==p[2] && b[2]=='\0') )
00022
00023
00024 #define arg_i(p) argcmp(p, args[i])
00025
00026
00027 #define advance_i() { i++; if (i > argc) { return 1; } }
00028
00029
00030
00031
00032 #define NATO_Alphabet(letter) \
00033 ({ \
00034 char* name[] = { \
00035 "Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", \
00036 "Golf", "Hotel", "India", "Juliett", "Kilo", "Lima", "Mike", \
00037 "November", "Oscar", "Papa", "Quibec", "Romeo", "Sierra", \
00038 "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu" \
00039 }; \
00040 name[letter]; \
00041 })
00042
00043
00044 #define getSystemHour(hour1f) \
00045 { \
00046 time_t t = time(NULL); \
00047 tm *l = localtime(&t); \
00048 hour1f = (float) (l->tm_hour + l->tm_min / 60.0 + l->tm_sec / 3600.0); \
00049 }
00050
00051
00052 #define generateTexture3D(WIDTH, HEIGHT, DEPTH, texture_ptr, d_func_xyz, r_func_dxyz, g_func_dxyz, b_func_dxyz, sx, sy, sz) \
00053 { \
00054 unsigned char* t = texture_ptr; \
00055 loopi(WIDTH) { loopj(HEIGHT) { loopk(DEPTH) { \
00056 unsigned char delta = (unsigned char) d_func_xyz(sx*i, sy*j, sz*k); \
00057 (*t++) = r_func_dxyz(delta, sx*i, sy*j, sz*k); \
00058 (*t++) = g_func_dxyz(delta, sx*i, sy*j, sz*k); \
00059 (*t++) = b_func_dxyz(delta, sx*i, sy*j, sz*k); \
00060 }}}; \
00061 }
00062
00063 #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) ) )
00064 #define ColorFunc_Delta(delta, x,y,z) (delta)
00065
00066
00067 #endif
00068