Константы (макроподстановки).

Символическое имя Значение Примечания Файл
MAXSHORT 0x7FFF - u_typedef.hpp
MINSHORT 0x8000 - u_typedef.hpp
MAXLONG 0x7FFFFFFF - u_typedef.hpp
MINLONG 0x80000000 - u_typedef.hpp
FLOAT_ZERO_EPSILON 1e-6   u_typedef.hpp
FLOAT_ZERO_EPSILON_SQUARE 1e-12   u_typedef.hpp
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       


#ifndef U_ASSERT
#ifdef DEBUG
#define U_ASSERT(exp) assert(exp)
#else
#define U_ASSERT(exp)
#endif
#endif

#ifndef U_UNASSIGN
#ifdef DEBUG
#define U_UNASSIGN(ptr) ptr=NULL
#else
#define U_UNASSIGN(ptr)
#endif
#endif

typedef unsigned char u_8;
typedef char i_8;
typedef unsigned short u_16;
typedef short i_16;
typedef unsigned long u_32;
typedef long i_32;
typedef unsigned __int64 u_64;
typedef __int64 i_64;

/* Удобные типы - гарантированная длина */
typedef u_8 byte;
typedef byte *pbyte;
typedef i_8 *pchar;
typedef i_16 word;
typedef word *pword;
typedef u_32 dword;
typedef dword *pdword;

/* Булевский тип - длина НЕ гарантирована ! */
#if !defined(__cplusplus) && defined(__WATCOMC__)
typedef enum { false, true } uboolean;
#else
typedef int uboolean;
#define false 0
#define true (!false)
#endif

/* Базовый скалярный тип */
#ifdef DOUBLEVEC
typedef double scalar_t,*scalar_p;
#else /* !DOUBLEVEC */
typedef float scalar_t,*scalar_p;
#endif /* DOUBLEVEC */

typedef scalar_t vec_t,*vec_p;

#define size_vec sizeof(vec_t)

/* Векторные типы */
typedef vec_t vec2_t[2];
typedef vec2_t tex_t;
typedef vec_t vec3_t[3];
typedef vec_t vec4_t[4];
typedef vec3_t rgb_t;
typedef vec4_t rgba_t;
typedef vec_t matrix2_t[2][2];
typedef vec_t matrix3_t[3][3];
typedef vec_t matrix4_t[4][4];
typedef vec_t matrix3x4_t[3][4];
typedef matrix3x4_t transform_t;
/* Байтовые цвета RGB и с альфа - составляющей */
typedef struct { byte b,g,r;} bytebgr_t;
typedef struct { byte a,b,g,r;} byteabgr_t;
typedef struct { byte r,g,b;} bytergb_t;
typedef struct { byte r,g,b,a;} bytergba_t;

/* Макрос для экспортируемых функций */
#ifdef WIN32
#define UEXPORT __declspec(dllexport) __stdcall
#else
#define UEXPORT __stdcall
#endif