/* ======================================================================= This file is part of Redman's RT. Redman's RT is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Redman's RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Redman's RT. If not, see . ======================================================================= */ #ifndef __COMMON_HEADER #define __COMMON_HEADER #include #include #include #include #include #include #include #include //TODO: figure out the platform here #define PLATFORM_POSIX ///////////////// #define PROGRAM_NAME "RRT" //#define PROGRAM_VERSION "pre-alpha" //#define PROGRAM_FULLNAME PROGRAM_NAME " (" PROGRAM_VERSION ")" #define PROGRAM_FULLNAME PROGRAM_NAME typedef enum { false, true } bool_t; #define Swap(T,a,b) {T ___t;___t=(a);(a)=(b);(b)=___t;} /* Scalar utilities */ typedef float vec_t; #define V1Min(a,b) ((a)<(b)?(a):(b)) #define V1Max(a,b) ((a)>(b)?(a):(b)) #define V1Clamp(n,a,b) ((n)<(a)?(a):(n)>(b)?(b):(n)) #define V1Epscmp(a,b,e) (fabs((a)-(b))