00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __EH_MACROS_H__
00022 #define __EH_MACROS_H__
00023
00024 #define E_BADVAL (G_MAXFLOAT)
00025 #define E_NOVAL (G_MAXFLOAT)
00026
00027 #define S_LINEMAX (2048)
00028 #define S_NAMEMAX (255)
00029 #define S_MAXPATHNAME (1024)
00030
00031 #define E_MAJOR_VERSION (1)
00032 #define E_MINOR_VERSION (1)
00033 #define E_MICRO_VERSION (0)
00034
00035 #define E_CHECK_VERSION(major,minor,micro) \
00036 (E_MAJOR_VERSION > (major) || \
00037 (E_MAJOR_VERSION == (major) && E_MINOR_VERSION > (minor)) || \
00038 (E_MAJOR_VERSION == (major) && E_MINOR_VERSION == (minor) && \
00039 E_MICRO_VERSION >= (micro)))
00040
00041 #define eh_p_msg( msg_level , str ) \
00042 eh_print_msg( msg_level , __PRETTY_FUNCTION__ , str )
00043
00044 #define eh_lower_bound( val , low ) ( val = ((val)<(low) )?(low ):(val) )
00045 #define eh_upper_bound( val , high ) ( val = ((val)>(high))?(high):(val) )
00046
00047 #define eh_clamp( val , low , high ) \
00048 ( val = ((val)<(low))?(low):(((val)>(high))?(high):(val)) )
00049
00050 #define EH_SWAP_PTR( a , b ) { void* t=(b); (b)=(a); (a)=t; }
00051 #define swap_int( a , b ) { int temp=b; b=a; a=temp; }
00052 #define swap_dbl( a , b ) { double temp=b; b=a; a=temp; }
00053 #define swap_dbl_vec( x , i , j ) { double temp=x[i]; x[i]=x[j]; x[j]=temp; }
00054 #define eh_memswap( a , b , n ) { void* temp=g_memdup(a,n); g_memmove(a,b,n); g_memmove(b,temp,n); eh_free(temp); }
00055 #define EH_STRUCT_MEMBER( type , st , mem ) ( ((type*)st)->mem )
00056
00057 #define eh_new_2( type , m , n ) ( (type**)eh_alloc_2( m , n , sizeof(type) ) )
00058 #define eh_free_2( p ) ( eh_free_void_2( ((void**)(p)) ) )
00059
00060 #define EH_RADS_PER_DEGREE ( 0.01745329251994 )
00061 #define EH_DEGREES_PER_RAD ( 57.29577951308232 )
00062
00063 #define EH_SQRT_PI ( 1.77245385090552 )
00064
00065 #define POLYGON_IN_CROSSINGS ( 1<<0 )
00066 #define POLYGON_OUT_CROSSINGS ( 1<<1 )
00067
00068
00069 #define BIT_ON 00000001
00070 #define BIT_OFF 00000000
00071 #define NO 0
00072 #define YES 1
00073 #define PTR_SIZE 8
00074 #define ALL -1
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 #define eh_sign(a) ( (a>=0)?1:-1 )
00100 #define eh_max(a,b) ( ( (a) > (b) ) ? (a) : (b) )
00101 #define eh_set_max(a,b) if ( (b)>(a) ) { (a) = (b); }
00102 #define eh_set_min(a,b) if ( (b)<(a) ) { (a) = (b); }
00103 #define eh_dbl_set_max(a,b) { double __t=(b); if ( __t>(a) ) { (a)=__t; } }
00104 #define eh_dbl_set_min(a,b) { double __t=(b); if ( __t<(a) ) { (a)=__t; } }
00105 #define eh_min(a,b) ( ( (a) < (b) ) ? (a) : (b) )
00106
00107 #define get_bit(pt,n) ( (pt)[(n)/8]&(0x80>>((n)%8)) )
00108 #define turn_bit_on(pt,n) (pt)[(n)/8] = (pt)[(n)/8] | (0x80>>((n)%8))
00109 #define turn_bit_off(pt,n) (pt)[(n)/8] = (pt)[(n)/8] &~ (0x80>>((n)%8));
00110 #define nbb(n) ( ( (n) + 7 ) / 8 )
00111
00112 #define eh_sqr( x ) ( (x)*(x) )
00113 #define eh_nrsign( a , b ) ( (b>0)?fabs(a):(-fabs(a)) )
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 #ifndef initarray
00141 # define initarray(pt,len,c) { unsigned long i; for (i=0;i<len;(pt)[i++]=c); }
00142 #endif
00143 #define count_pix(pt,len,val,c) { unsigned long i; for (i=0;i<len;i++) if ((pt)[i]==val) c++; }
00144 #define rotate_array(ar_type,pt,len) { unsigned long i; \
00145 ar_type temp; \
00146 for (i=0,temp=(pt)[0];i<len-1;(pt)[i]=(pt)[i+1],i++); \
00147 (pt)[len-1]=temp; \
00148 }
00149 #define mmove(dst,src,len) { unsigned long j; \
00150 for (j=0;j<(len);j++) \
00151 (dst)[j]=(src)[j]; \
00152 }
00153
00154
00155
00156 #endif