Update OpenGL check on macOS
[ode.git] / OPCODE / Opcode.h
blob4a98e3645c2914209a020cd7062e184d74f9b630
1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2 /*
3 * OPCODE - Optimized Collision Detection
4 * Copyright (C) 2001 Pierre Terdiman
5 * Homepage: http://www.codercorner.com/Opcode.htm
6 */
7 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10 /**
11 * Main file for Opcode.dll.
12 * \file Opcode.h
13 * \author Pierre Terdiman
14 * \date March, 20, 2001
16 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
18 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
19 // Include Guard
20 #ifndef __OPCODE_H__
21 #define __OPCODE_H__
23 // stddef.h and stdarg.h must be included before Opcode headers
24 // as they latermay not compile being not able to find types in std::
25 #include <stddef.h>
26 #include <stdarg.h>
28 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
29 // Things to help us compile on non-windows platforms
31 #if defined(__APPLE__) || defined(__MACOSX__)
32 #if __APPLE_CC__ < 1495
33 #define sqrtf sqrt
34 #define sinf sin
35 #define cosf cos
36 #define acosf acos
37 #define asinf asin
38 #endif
39 #endif
41 #ifndef _MSC_VER
42 #ifndef __int64
43 #define __int64 long long int
44 #endif
45 #ifndef __stdcall /* this is defined in MinGW and CygWin, so avoid the warning */
46 #define __stdcall /* */
47 #endif
48 #endif
50 #if defined(__GNUC__)
51 #define OPCODE_NORETURN __attribute__((noreturn))
52 #elif defined(_MSC_VER)
53 #define OPCODE_NORETURN __declspec(noreturn)
54 #else // #if !defined(_MSC_VER)
55 #define OPCODE_NORETURN
56 #endif // #if !defined(__GNUC__)
59 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
60 // Compilation messages
61 #ifdef _MSC_VER
62 #if defined(OPCODE_EXPORTS)
63 // #pragma message("Compiling OPCODE")
64 #elif !defined(OPCODE_EXPORTS)
65 // #pragma message("Using OPCODE")
66 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
67 // Automatic linking
68 #ifndef BAN_OPCODE_AUTOLINK
69 #ifdef _DEBUG
70 //#pragma comment(lib, "Opcode_D.lib")
71 #else
72 //#pragma comment(lib, "Opcode.lib")
73 #endif
74 #endif
75 #endif
76 #endif
78 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
79 // Preprocessor
80 #ifndef ICE_NO_DLL
81 #ifdef OPCODE_EXPORTS
82 #define OPCODE_API// __declspec(dllexport)
83 #else
84 #define OPCODE_API// __declspec(dllimport)
85 #endif
86 #else
87 #define OPCODE_API
88 #endif
90 #include "OPC_Settings.h"
91 #include "OPC_IceHook.h"
93 namespace Opcode
95 // Bulk-of-the-work
96 #include "OPC_Common.h"
97 #include "OPC_MeshInterface.h"
98 // Builders
99 #include "OPC_TreeBuilders.h"
100 // Trees
101 #include "OPC_AABBTree.h"
102 #include "OPC_OptimizedTree.h"
103 // Models
104 #include "OPC_BaseModel.h"
105 #include "OPC_Model.h"
106 #include "OPC_HybridModel.h"
107 // Colliders
108 #include "OPC_Collider.h"
109 #include "OPC_VolumeCollider.h"
110 #include "OPC_TreeCollider.h"
111 #include "OPC_RayCollider.h"
112 #include "OPC_SphereCollider.h"
113 #include "OPC_OBBCollider.h"
114 #include "OPC_AABBCollider.h"
115 #include "OPC_LSSCollider.h"
116 #include "OPC_PlanesCollider.h"
117 // Usages
118 #include "OPC_Picking.h"
121 typedef void (*OPCODE_AbortHandler)();
122 FUNCTION OPCODE_API bool InitOpcode(OPCODE_AbortHandler fnAbortHandler=NULL);
123 FUNCTION OPCODE_API bool CloseOpcode();
126 #endif // __OPCODE_H__