48 #ifndef AI_DEFINES_H_INC
49 #define AI_DEFINES_H_INC
52 #pragma GCC system_header
55 #include <assimp/config.h>
78 #ifndef ASSIMP_BUILD_NO_COMPRESSED_X
79 #define ASSIMP_BUILD_NEED_Z_INFLATE
82 #ifndef ASSIMP_BUILD_NO_COMPRESSED_BLEND
83 #define ASSIMP_BUILD_NEED_Z_INFLATE
86 #ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC
87 #define ASSIMP_BUILD_NEED_Z_INFLATE
88 #define ASSIMP_BUILD_NEED_UNZIP
91 #ifndef ASSIMP_BUILD_NO_Q3BSP_IMPORTER
92 #define ASSIMP_BUILD_NEED_Z_INFLATE
93 #define ASSIMP_BUILD_NEED_UNZIP
136 #ifdef ASSIMP_BUILD_DLL_EXPORT
137 #define ASSIMP_API __declspec(dllexport)
138 #define ASSIMP_API_WINONLY __declspec(dllexport)
144 #elif (defined ASSIMP_DLL)
145 #define ASSIMP_API __declspec(dllimport)
146 #define ASSIMP_API_WINONLY __declspec(dllimport)
149 #define ASSIMP_API_WINONLY
154 #define ASSIMP_API __attribute__((visibility("default")))
155 #define ASSIMP_API_WINONLY
159 #pragma warning(disable : 4521 4512 4714 4127 4351 4510)
160 #ifdef ASSIMP_BUILD_DLL_EXPORT
161 #pragma warning(disable : 4251)
165 #define AI_FORCE_INLINE __forceinline
169 #define AI_WONT_RETURN __declspec(noreturn)
175 #define AI_WONT_RETURN
176 #define AI_FORCE_INLINE inline
177 #endif // (defined _MSC_VER)
180 #define AI_WONT_RETURN_SUFFIX __attribute__((noreturn))
182 #define AI_WONT_RETURN_SUFFIX
183 #endif // (defined __clang__)
198 ENABLE_PREPROCESSING = YES
199 MACRO_EXPANSION = YES
200 EXPAND_ONLY_PREDEF = YES
201 SEARCH_INCLUDES = YES
203 INCLUDE_FILE_PATTERNS =
204 PREDEFINED = ASSIMP_DOXYGEN_BUILD=1
205 EXPAND_AS_DEFINED = C_STRUCT C_ENUM
206 SKIP_FUNCTION_MACROS = YES
214 #if (defined ASSIMP_DOXYGEN_BUILD)
218 #define C_STRUCT struct
223 #if (defined(__BORLANDC__) || defined(__BCPLUSPLUS__))
224 #error Currently, Borland is unsupported. Feel free to port Assimp.
232 #ifndef ASSIMP_BUILD_SINGLETHREADED
233 #define ASSIMP_BUILD_SINGLETHREADED
236 #if defined(_DEBUG) || !defined(NDEBUG)
237 #define ASSIMP_BUILD_DEBUG
245 #ifdef ASSIMP_DOUBLE_PRECISION
246 typedef double ai_real;
247 typedef signed long long int ai_int;
248 typedef unsigned long long int ai_uint;
249 #ifndef ASSIMP_AI_REAL_TEXT_PRECISION
250 #define ASSIMP_AI_REAL_TEXT_PRECISION 16
251 #endif // ASSIMP_AI_REAL_TEXT_PRECISION
252 #else // ASSIMP_DOUBLE_PRECISION
253 typedef float ai_real;
254 typedef signed int ai_int;
255 typedef unsigned int ai_uint;
256 #ifndef ASSIMP_AI_REAL_TEXT_PRECISION
257 #define ASSIMP_AI_REAL_TEXT_PRECISION 8
258 #endif // ASSIMP_AI_REAL_TEXT_PRECISION
259 #endif // ASSIMP_DOUBLE_PRECISION
266 #define AI_MATH_PI (3.141592653589793238462643383279)
267 #define AI_MATH_TWO_PI (AI_MATH_PI * 2.0)
268 #define AI_MATH_HALF_PI (AI_MATH_PI * 0.5)
271 #define AI_MATH_PI_F (3.1415926538f)
272 #define AI_MATH_TWO_PI_F (AI_MATH_PI_F * 2.0f)
273 #define AI_MATH_HALF_PI_F (AI_MATH_PI_F * 0.5f)
276 #define AI_DEG_TO_RAD(x) ((x) * (ai_real)0.0174532925)
277 #define AI_RAD_TO_DEG(x) ((x) * (ai_real)57.2957795)
280 static const ai_real ai_epsilon = (ai_real)0.00001;
283 #if defined(__BYTE_ORDER__)
284 #if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
285 #if !defined(__BIG_ENDIAN__)
286 #define __BIG_ENDIAN__
289 #if defined(__BIG_ENDIAN__)
290 #undef __BIG_ENDIAN__
294 #if defined(__BIG_ENDIAN__)
295 #define AI_BUILD_BIG_ENDIAN
303 #define AI_MAX_ALLOC(type) ((256U * 1024 * 1024) / sizeof(type))
306 #if __cplusplus >= 201103L // C++11
307 #define AI_NO_EXCEPT noexcept
312 #if (_MSC_VER >= 1915)
313 #define AI_NO_EXCEPT noexcept
322 #if (defined ASSIMP_BUILD_DEBUG)
323 #define AI_DEBUG_INVALIDATE_PTR(x) x = NULL;
325 #define AI_DEBUG_INVALIDATE_PTR(x)
328 #endif // !! AI_DEFINES_H_INC