TORCS  1.3.10
The Open Racing Car Simulator
Loading...
Searching...
No Matches
solid.h
Go to the documentation of this file.
1/*
2 SOLID - Software Library for Interference Detection
3 Copyright (C) 1997-1998 Gino van den Bergen
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the Free
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19 Please send remarks, questions and bug reports to gino@win.tue.nl,
20 or write to:
21 Gino van den Bergen
22 Department of Mathematics and Computing Science
23 Eindhoven University of Technology
24 P.O. Box 513, 5600 MB Eindhoven, The Netherlands
25*/
26
27#ifndef _SOLID_H_
28#define _SOLID_H_
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34typedef double DtScalar;
35typedef DtScalar DtVector[3];
36typedef unsigned int DtIndex;
37typedef unsigned int DtCount;
38
39typedef void *DtObjectRef;
40typedef void *DtShapeRef;
41
47
54
60
61typedef void (*DtResponse)(
62 void *client_data,
63 DtObjectRef object1,
64 DtObjectRef object2,
65 const DtCollData *coll_data);
66
67
68
69/* Shape definition */
70
72extern DtShapeRef dtCone(DtScalar radius, DtScalar height);
73extern DtShapeRef dtCylinder(DtScalar radius, DtScalar height);
74extern DtShapeRef dtSphere(DtScalar radius);
75
77extern void dtEndComplexShape();
78
79extern void dtBegin(DtPolyType type);
80extern void dtEnd();
81
82extern void dtVertex(DtScalar x, DtScalar y, DtScalar z);
83extern void dtVertexBase(const void *base);
84extern void dtVertexIndex(DtIndex index);
85extern void dtVertexIndices(DtPolyType type, DtCount count,
86 const DtIndex *indices);
87extern void dtVertexRange(DtPolyType type, DtIndex first, DtCount count);
88
89extern void dtChangeVertexBase(DtShapeRef shape, const void *base);
90
91extern void dtDeleteShape(DtShapeRef shape);
92
93
94/* Object */
95
96extern void dtCreateObject(DtObjectRef object, DtShapeRef shape);
97extern void dtDeleteObject(DtObjectRef object);
98extern void dtSelectObject(DtObjectRef object);
99
100extern void dtLoadIdentity();
101
102extern void dtLoadMatrixf(const float *m);
103extern void dtLoadMatrixd(const double *m);
104
105extern void dtMultMatrixf(const float *m);
106extern void dtMultMatrixd(const double *m);
107
108extern void dtTranslate(DtScalar x, DtScalar y, DtScalar z);
109extern void dtRotate(DtScalar x, DtScalar y, DtScalar z, DtScalar w);
110extern void dtScale(DtScalar x, DtScalar y, DtScalar z);
111
112
113/* Response */
114
115extern void dtSetDefaultResponse(DtResponse response, DtResponseType type,
116 void *client_data);
117
118extern void dtClearDefaultResponse();
119
120extern void dtSetObjectResponse(DtObjectRef object, DtResponse response,
121 DtResponseType type, void *client_data);
122extern void dtClearObjectResponse(DtObjectRef object);
123extern void dtResetObjectResponse(DtObjectRef object);
124
125extern void dtSetPairResponse(DtObjectRef object1, DtObjectRef object2,
126 DtResponse response, DtResponseType type,
127 void *client_data);
128extern void dtClearPairResponse(DtObjectRef object1, DtObjectRef object2);
129extern void dtResetPairResponse(DtObjectRef object1, DtObjectRef object2);
130
131
132/* Global */
133
134extern DtCount dtTest();
135extern void dtProceed();
136
137extern void dtEnableCaching();
138extern void dtDisableCaching();
139
140extern void dtSetTolerance(DtScalar tol);
141
142#ifdef __cplusplus
143}
144#endif
145
146#endif
static Vector y[4]
Definition Convex.cpp:56
void dtLoadMatrixd(const double *m)
Definition C-api.cpp:238
void(* DtResponse)(void *client_data, DtObjectRef object1, DtObjectRef object2, const DtCollData *coll_data)
Definition solid.h:61
unsigned int DtCount
Definition solid.h:37
void dtVertex(DtScalar x, DtScalar y, DtScalar z)
Definition C-api.cpp:124
void dtSetObjectResponse(DtObjectRef object, DtResponse response, DtResponseType type, void *client_data)
Definition C-api.cpp:261
DtShapeRef dtBox(DtScalar x, DtScalar y, DtScalar z)
Definition C-api.cpp:84
void dtEnableCaching()
Definition C-api.cpp:299
void dtCreateObject(DtObjectRef object, DtShapeRef shape)
Definition C-api.cpp:195
void dtResetPairResponse(DtObjectRef object1, DtObjectRef object2)
Definition C-api.cpp:284
DtResponseType
Definition solid.h:48
@ DT_SMART_RESPONSE
Definition solid.h:51
@ DT_NO_RESPONSE
Definition solid.h:49
@ DT_WITNESSED_RESPONSE
Definition solid.h:52
@ DT_SIMPLE_RESPONSE
Definition solid.h:50
void * DtObjectRef
Definition solid.h:39
void dtBegin(DtPolyType type)
Definition C-api.cpp:118
void dtVertexIndex(DtIndex index)
Definition C-api.cpp:137
void dtClearDefaultResponse()
Definition C-api.cpp:257
void dtEnd()
Definition C-api.cpp:119
DtScalar DtVector[3]
Definition solid.h:35
void dtLoadIdentity()
Definition C-api.cpp:230
void dtDeleteShape(DtShapeRef shape)
Definition C-api.cpp:172
void dtSetTolerance(DtScalar tol)
Definition C-api.cpp:308
DtShapeRef dtCone(DtScalar radius, DtScalar height)
Definition C-api.cpp:88
void dtSelectObject(DtObjectRef object)
Definition C-api.cpp:200
void dtClearPairResponse(DtObjectRef object1, DtObjectRef object2)
Definition C-api.cpp:280
void dtVertexRange(DtPolyType type, DtIndex first, DtCount count)
Definition C-api.cpp:165
void dtSetDefaultResponse(DtResponse response, DtResponseType type, void *client_data)
Definition C-api.cpp:252
void dtVertexIndices(DtPolyType type, DtCount count, const DtIndex *indices)
Definition C-api.cpp:139
DtShapeRef dtSphere(DtScalar radius)
Definition C-api.cpp:96
void dtScale(DtScalar x, DtScalar y, DtScalar z)
Definition C-api.cpp:226
void dtTranslate(DtScalar x, DtScalar y, DtScalar z)
Definition C-api.cpp:218
DtPolyType
Definition solid.h:42
@ DT_POLYGON
Definition solid.h:44
@ DT_POLYHEDRON
Definition solid.h:45
@ DT_SIMPLEX
Definition solid.h:43
void dtEndComplexShape()
Definition C-api.cpp:105
void dtMultMatrixf(const float *m)
Definition C-api.cpp:242
double DtScalar
Definition solid.h:34
DtShapeRef dtNewComplexShape()
Definition C-api.cpp:100
DtShapeRef dtCylinder(DtScalar radius, DtScalar height)
Definition C-api.cpp:92
void * DtShapeRef
Definition solid.h:40
void dtVertexBase(const void *base)
void dtChangeVertexBase(DtShapeRef shape, const void *base)
void dtRotate(DtScalar x, DtScalar y, DtScalar z, DtScalar w)
Definition C-api.cpp:222
void dtProceed()
Definition C-api.cpp:290
void dtLoadMatrixf(const float *m)
Definition C-api.cpp:234
void dtMultMatrixd(const double *m)
Definition C-api.cpp:246
DtCount dtTest()
Definition C-api.cpp:348
void dtResetObjectResponse(DtObjectRef object)
Definition C-api.cpp:270
unsigned int DtIndex
Definition solid.h:36
void dtDeleteObject(DtObjectRef object)
Definition C-api.cpp:208
void dtClearObjectResponse(DtObjectRef object)
Definition C-api.cpp:266
void dtDisableCaching()
Definition C-api.cpp:306
void dtSetPairResponse(DtObjectRef object1, DtObjectRef object2, DtResponse response, DtResponseType type, void *client_data)
Definition C-api.cpp:274
DtVector point1
Definition solid.h:56
DtVector point2
Definition solid.h:57
DtVector normal
Definition solid.h:58