⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uint.h

📁 [Game.Programming].Academic - Graphics Gems (6 books source code)
💻 H
字号:
/* ------------------------------------------------------------------------- *\   UINT.H :   Definition of an unsigned integer type (and related types)   by Christophe Schlick (1 June 1992)\* ------------------------------------------------------------------------- */#ifndef _UINT_#define _UINT_#include "tool.h"/*** By default, unsigned integers are defined in double precision (ie ulong)** To get single precision, simply add "#define SINGLE_UINT" in your program*//*** Scalar type definition (single or double precision)*/#ifdef SINGLE_UINTtypedef unsigned short uint;#define UINT1FILE "%u\n"#define UINT2FILE "%u %u\n"#define UINT3FILE "%u %u %u\n"#define UINT4FILE "%u %u %u %u\n"#elsetypedef unsigned long uint;#define UINT1FILE "%lu\n"#define UINT2FILE "%lu %lu\n"#define UINT3FILE "%lu %lu %lu\n"#define UINT4FILE "%lu %lu %lu %lu\n"#endif/*** Vector type definition*/typedef struct {  uint x,y;} uintvec2;                         /* 2D vector of signed integers */typedef struct {  uint x,y,z;} uintvec3;                         /* 3D vector of signed integers */typedef struct {  uint x,y,z,w;} uintvec4;                         /* 4D vector of signed integers *//*** Matrix type definition*/typedef uintvec2 uintmat2[2];       /* 2D matrix of signed integers */typedef uintvec3 uintmat3[3];       /* 3D matrix of signed integers */typedef uintvec4 uintmat4[4];       /* 4D matrix of signed integers *//*** Aliases for lazy programmers*/typedef uintvec2 uv2;typedef uintvec3 uv3;typedef uintvec4 uv4;typedef uintmat2 um2;typedef uintmat3 um3;typedef uintmat4 um4;/*** Get values from file*/#define GET_UINT(File,Var)\        (fscanf (File, UINT1FILE, &(Var)))#define GET_UINTVEC2(File,Var)\        (fscanf (File, UINT2FILE, &(Var).x, &(Var).y))#define GET_UINTVEC3(File,Var)\        (fscanf (File, UINT3FILE, &(Var).x, &(Var).y, &(Var).z))#define GET_UINTVEC4(File,Var)\        (fscanf (File, UINT4FILE, &(Var).x, &(Var).y, &(Var).z, &(Var).w))#define GET_UINTMAT2(File,Var)\        (GET_UINTVEC2(File,(Var)[0]),\         GET_UINTVEC2(File,(Var)[1]))#define GET_UINTMAT3(File,Var)\        (GET_UINTVEC3(File,(Var)[0]),\         GET_UINTVEC3(File,(Var)[1]),\         GET_UINTVEC3(File,(Var)[2]))#define GET_UINTMAT4(File,Var)\        (GET_UINTVEC4(File,(Var)[0]),\         GET_UINTVEC4(File,(Var)[1]),\         GET_UINTVEC4(File,(Var)[2]),\         GET_UINTVEC4(File,(Var)[3]))/*** Put values in file*/#define PUT_UINT(File,Var)\        (fprintf (File, UINT1FILE, (Var)))#define PUT_UINTVEC2(File,Var)\        (fprintf (File, UINT2FILE, (Var).x, (Var).y))#define PUT_UINTVEC3(File,Var)\        (fprintf (File, UINT3FILE, (Var).x, (Var).y, (Var).z))#define PUT_UINTVEC4(File,Var)\        (fprintf (File, UINT4FILE, (Var).x, (Var).y, (Var).z, (Var).w))#define PUT_UINTMAT2(File,Var)\        (PUT_UINTVEC2 (File,(Var)[0]),\         PUT_UINTVEC2 (File,(Var)[1]))#define PUT_UINTMAT3(File,Var)\        (PUT_UINTVEC3(File,(Var)[0]),\         PUT_UINTVEC3(File,(Var)[1]),\         PUT_UINTVEC3(File,(Var)[2]))#define PUT_UINTMAT4(File,Var)\        (PUT_UINTVEC4(File,(Var)[0]),\         PUT_UINTVEC4(File,(Var)[1]),\         PUT_UINTVEC4(File,(Var)[2]),\         PUT_UINTVEC4(File,(Var)[3]))#endif/* ------------------------------------------------------------------------- */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -