1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2 /*
3  *	OPCODE - Optimized Collision Detection
4  *	Copyright (C) 2001 Pierre Terdiman
5  *	Homepage: http://www.codercorner.com/Opcode.htm
6  */
7 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
8 
9 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10 /**
11  *	Main file for Opcode.dll.
12  *	\file		Opcode.h
13  *	\author		Pierre Terdiman
14  *	\date		March, 20, 2001
15  */
16 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
17 
18 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
19 // Include Guard
20 #ifndef __OPCODE_H__
21 #define __OPCODE_H__
22 
23 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
24 // Compilation messages
25 #if defined(OPCODE_EXPORTS)
26 	#pragma message("Compiling OPCODE")
27 #elif !defined(OPCODE_EXPORTS)
28 	#pragma message("Using OPCODE")
29 	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
30 	// Automatic linking
31 	#if defined(_WIN32) && !defined(BAN_OPCODE_AUTOLINK)
32 		#ifdef _DEBUG
33 			#pragma comment(lib, "Opcode_D.lib")
34 		#else
35 			#pragma comment(lib, "Opcode.lib")
36 		#endif
37 	#endif
38 #endif
39 
40 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
41 // Preprocessor
42 #ifndef ICE_NO_DLL
43 	#ifdef OPCODE_EXPORTS
44 		#ifdef __GNUC__
45 			#define OPCODE_API __attribute__((visibility("default")))
46 		#else
47 			#define OPCODE_API __declspec(dllexport)
48 		#endif
49 	#else
50 		#ifdef __GNUC__
51 			#define OPCODE_API __attribute__((visibility("hidden")))
52 		#else
53 			#define OPCODE_API __declspec(dllimport)
54 		#endif
55 	#endif
56 #else
57 		#define OPCODE_API
58 #endif
59 
60 	#include "OPC_IceHook.h"
61 
62 	namespace Opcode
63 	{
64 		// Bulk-of-the-work
65 		#include "OPC_Settings.h"
66 		#include "OPC_Common.h"
67 		#include "OPC_MeshInterface.h"
68 		// Builders
69 		#include "OPC_TreeBuilders.h"
70 		// Trees
71 		#include "OPC_AABBTree.h"
72 		#include "OPC_OptimizedTree.h"
73 		// Models
74 		#include "OPC_BaseModel.h"
75 		#include "OPC_Model.h"
76 		#include "OPC_HybridModel.h"
77 		// Colliders
78 		#include "OPC_Collider.h"
79 		#include "OPC_VolumeCollider.h"
80 		#include "OPC_TreeCollider.h"
81 		#include "OPC_RayCollider.h"
82 		#include "OPC_SphereCollider.h"
83 		#include "OPC_OBBCollider.h"
84 		#include "OPC_AABBCollider.h"
85 		#include "OPC_LSSCollider.h"
86 		#include "OPC_PlanesCollider.h"
87 		// Usages
88 		#include "OPC_Picking.h"
89 		// Sweep-and-prune
90 		#include "OPC_BoxPruning.h"
91 		#include "OPC_SweepAndPrune.h"
92 
93 		FUNCTION OPCODE_API bool InitOpcode();
94 		FUNCTION OPCODE_API bool CloseOpcode();
95 	}
96 
97 #endif // __OPCODE_H__
98