defines.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. #ifndef _DEFINES_H_
  2. #define _DEFINES_H_
  3. #include <malloc.h>
  4. #include <string.h>
  5. #ifdef WIN32
  6. # include "winGLdecs.h"
  7. #endif
  8. #ifndef NULL
  9. #define NULL    0
  10. #endif
  11. #ifndef TRUE
  12. #define TRUE    1
  13. #endif
  14. #ifndef FALSE
  15. #define FALSE   0
  16. #endif
  17. #ifndef MAX
  18. #define MAX(a, b) ((a) > (b) ? (a) : (b))
  19. #endif
  20. #ifndef MIN
  21. #define MIN(a, b) ((a) < (b) ? (a) : (b))
  22. #endif
  23. #ifndef SWAP
  24. #define SWAP(a, b, t) (t) = (a); (a) = (b); (b) = (t)
  25. #endif
  26. #ifndef SQUARE
  27. #define SQUARE(x) ((x)*(x))
  28. #endif
  29. #ifndef ROUND_UCHAR
  30. #define ROUND_UCHAR(x) (uchar)((x)+0.5)
  31. #endif
  32. #ifndef ROUND_INT
  33. #define ROUND_INT(x) (int)((x)+0.5)
  34. #endif
  35. #ifndef ABS
  36. #define ABS(x) ((x) > 0 ? (x) : -(x))
  37. #endif
  38. #ifndef SIGN
  39. #define SIGN(x) ((x) > 0 ? 1 : -1)
  40. #endif
  41. #ifndef DEGTORAD
  42. #define DEGTORAD(x) ((x)*M_PI/180)
  43. #endif
  44. #ifndef RADTODEG
  45. #define RADTODEG(x) ((x)*180/M_PI)
  46. #endif
  47. #ifndef MALLOC
  48. #define MALLOC(x, n) (x*)malloc((n)*sizeof(x))
  49. #endif
  50. #ifndef newmalloc
  51. #define newmalloc(x, n) (x*)malloc((n)*sizeof(x))
  52. #endif
  53. #ifndef PI
  54. #define PI 3.14159265358979323846264
  55. #endif
  56. #ifdef WIN32
  57. /* This is stuff that the stnadard include files on Irix define somewhere
  58.    or other, but that MSVC does not include.
  59.    Note that defining PATH_MAX here causes extreme problems on Irix if the 
  60.    value is different than that in <limits.h>, depending on which value is 
  61.    used in a given situation.  And it's too hard to get at the one in
  62.    <limits.h> from MSVC; so we define it here but only on Win32 and error
  63.    if it's already been defined elsewhere.
  64. */
  65. #  ifndef M_PI
  66. #    define M_PI PI
  67. #  endif
  68. #  ifndef M_LN2
  69. #    define M_LN2            0.69314718055994530942
  70. #  endif
  71. #  ifndef MAXFLOAT
  72. #    define MAXFLOAT ((float)3.40282346638528860e+38)   
  73. #  endif
  74. #  ifdef PATH_MAX
  75. #    error "PATH_MAX is a pain"
  76. #  else
  77. #    define PATH_MAX 1024
  78. #  endif
  79. #endif
  80. #ifndef EQSTR
  81. #define EQSTR(x, y)  (strcmp((x),(y)) == 0)
  82. #endif
  83. #ifndef IS_ODD
  84. #define IS_ODD(x)  ((x)%2 != 0)
  85. #endif
  86. #ifndef IS_EVEN
  87. #define IS_EVEN(x)  ((x)%2 == 0)
  88. #endif
  89. /* Watch out for BSD incompatibility */
  90. typedef unsigned char uchar;
  91. typedef unsigned short ushort;
  92. typedef unsigned int uint;
  93. typedef uchar vec3uc[3];
  94. typedef float vec2f[2];
  95. typedef uchar byte;
  96. /* Stop using this? */
  97. /* typedef int Bool; */
  98. #endif