Makefile updates for Blender 2.5 (from GSR)
[blender.git] / extern / solid / SOLID / SOLID_broad.h
1 /*
2  * SOLID - Software Library for Interference Detection
3  * 
4  * Copyright (C) 2001-2003  Dtecta.  All rights reserved.
5  *
6  * This library may be distributed under the terms of the Q Public License
7  * (QPL) as defined by Trolltech AS of Norway and appearing in the file
8  * LICENSE.QPL included in the packaging of this file.
9  *
10  * This library may be distributed and/or modified under the terms of the
11  * GNU General Public License (GPL) version 2 as published by the Free Software
12  * Foundation and appearing in the file LICENSE.GPL included in the
13  * packaging of this file.
14  *
15  * This library is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17  *
18  * Commercial use or any other use of this library not covered by either 
19  * the QPL or the GPL requires an additional license from Dtecta. 
20  * Please contact info@dtecta.com for enquiries about the terms of commercial
21  * use of this library.
22  */
23
24 #ifndef SOLID_BROAD_H
25 #define SOLID_BROAD_H
26
27 #include "SOLID_types.h"
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32     
33         DT_DECLARE_HANDLE(BP_SceneHandle);
34         DT_DECLARE_HANDLE(BP_ProxyHandle);
35         
36         typedef void (*BP_Callback)(void *client_data,
37                                                                 void *object1,
38                                                                 void *object2);
39
40         typedef bool (*BP_RayCastCallback)(void *client_data,
41                                                                            void *object,
42                                                                            const DT_Vector3 source,
43                                                                            const DT_Vector3 target,
44                                                                            DT_Scalar *lambda);
45         
46         extern DECLSPEC BP_SceneHandle BP_CreateScene(void *client_data,
47                                                                                                   BP_Callback beginOverlap,
48                                                                                                   BP_Callback endOverlap);
49         
50         extern DECLSPEC void           BP_DestroyScene(BP_SceneHandle scene);
51         
52         extern DECLSPEC BP_ProxyHandle BP_CreateProxy(BP_SceneHandle scene, 
53                                                                                                   void *object,
54                                                                                                   const DT_Vector3 min, 
55                                                                                                   const DT_Vector3 max);
56         
57         extern DECLSPEC void           BP_DestroyProxy(BP_SceneHandle scene, 
58                                                                                                   BP_ProxyHandle proxy);
59         
60         extern DECLSPEC void BP_SetBBox(BP_ProxyHandle proxy, 
61                                                                         const DT_Vector3 min, 
62                                                                         const DT_Vector3 max);
63         
64         extern DECLSPEC void *BP_RayCast(BP_SceneHandle scene, 
65                                                                          BP_RayCastCallback objectRayCast, 
66                                                                          void *client_data,
67                                                                          const DT_Vector3 source,
68                                                                          const DT_Vector3 target,
69                                                                          DT_Scalar *lambda);            
70         
71 #ifdef __cplusplus
72 }
73 #endif
74
75 #endif