diff options
Diffstat (limited to 'libraries/ode-0.9/include/ode/odecpp_collision.h')
-rw-r--r-- | libraries/ode-0.9/include/ode/odecpp_collision.h | 346 |
1 files changed, 0 insertions, 346 deletions
diff --git a/libraries/ode-0.9/include/ode/odecpp_collision.h b/libraries/ode-0.9/include/ode/odecpp_collision.h deleted file mode 100644 index 16ca78f..0000000 --- a/libraries/ode-0.9/include/ode/odecpp_collision.h +++ /dev/null | |||
@@ -1,346 +0,0 @@ | |||
1 | /************************************************************************* | ||
2 | * * | ||
3 | * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * | ||
4 | * All rights reserved. Email: russ@q12.org Web: www.q12.org * | ||
5 | * * | ||
6 | * This library is free software; you can redistribute it and/or * | ||
7 | * modify it under the terms of EITHER: * | ||
8 | * (1) The GNU Lesser General Public License as published by the Free * | ||
9 | * Software Foundation; either version 2.1 of the License, or (at * | ||
10 | * your option) any later version. The text of the GNU Lesser * | ||
11 | * General Public License is included with this library in the * | ||
12 | * file LICENSE.TXT. * | ||
13 | * (2) The BSD-style license that is included with this library in * | ||
14 | * the file LICENSE-BSD.TXT. * | ||
15 | * * | ||
16 | * This library is distributed in the hope that it will be useful, * | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * | ||
19 | * LICENSE.TXT and LICENSE-BSD.TXT for more details. * | ||
20 | * * | ||
21 | *************************************************************************/ | ||
22 | |||
23 | /* C++ interface for new collision API */ | ||
24 | |||
25 | |||
26 | #ifndef _ODE_ODECPP_COLLISION_H_ | ||
27 | #define _ODE_ODECPP_COLLISION_H_ | ||
28 | #ifdef __cplusplus | ||
29 | |||
30 | #include <ode/error.h> | ||
31 | |||
32 | |||
33 | class dGeom { | ||
34 | // intentionally undefined, don't use these | ||
35 | dGeom (dGeom &); | ||
36 | void operator= (dGeom &); | ||
37 | |||
38 | protected: | ||
39 | dGeomID _id; | ||
40 | |||
41 | public: | ||
42 | dGeom() | ||
43 | { _id = 0; } | ||
44 | ~dGeom() | ||
45 | { if (_id) dGeomDestroy (_id); } | ||
46 | |||
47 | dGeomID id() const | ||
48 | { return _id; } | ||
49 | operator dGeomID() const | ||
50 | { return _id; } | ||
51 | |||
52 | void destroy() { | ||
53 | if (_id) dGeomDestroy (_id); | ||
54 | _id = 0; | ||
55 | } | ||
56 | |||
57 | int getClass() const | ||
58 | { return dGeomGetClass (_id); } | ||
59 | |||
60 | dSpaceID getSpace() const | ||
61 | { return dGeomGetSpace (_id); } | ||
62 | |||
63 | void setData (void *data) | ||
64 | { dGeomSetData (_id,data); } | ||
65 | void *getData() const | ||
66 | { return dGeomGetData (_id); } | ||
67 | |||
68 | void setBody (dBodyID b) | ||
69 | { dGeomSetBody (_id,b); } | ||
70 | dBodyID getBody() const | ||
71 | { return dGeomGetBody (_id); } | ||
72 | |||
73 | void setPosition (dReal x, dReal y, dReal z) | ||
74 | { dGeomSetPosition (_id,x,y,z); } | ||
75 | const dReal * getPosition() const | ||
76 | { return dGeomGetPosition (_id); } | ||
77 | |||
78 | void setRotation (const dMatrix3 R) | ||
79 | { dGeomSetRotation (_id,R); } | ||
80 | const dReal * getRotation() const | ||
81 | { return dGeomGetRotation (_id); } | ||
82 | |||
83 | void setQuaternion (const dQuaternion quat) | ||
84 | { dGeomSetQuaternion (_id,quat); } | ||
85 | void getQuaternion (dQuaternion quat) const | ||
86 | { dGeomGetQuaternion (_id,quat); } | ||
87 | |||
88 | void getAABB (dReal aabb[6]) const | ||
89 | { dGeomGetAABB (_id, aabb); } | ||
90 | |||
91 | int isSpace() | ||
92 | { return dGeomIsSpace (_id); } | ||
93 | |||
94 | void setCategoryBits (unsigned long bits) | ||
95 | { dGeomSetCategoryBits (_id, bits); } | ||
96 | void setCollideBits (unsigned long bits) | ||
97 | { dGeomSetCollideBits (_id, bits); } | ||
98 | unsigned long getCategoryBits() | ||
99 | { return dGeomGetCategoryBits (_id); } | ||
100 | unsigned long getCollideBits() | ||
101 | { return dGeomGetCollideBits (_id); } | ||
102 | |||
103 | void enable() | ||
104 | { dGeomEnable (_id); } | ||
105 | void disable() | ||
106 | { dGeomDisable (_id); } | ||
107 | int isEnabled() | ||
108 | { return dGeomIsEnabled (_id); } | ||
109 | |||
110 | void collide2 (dGeomID g, void *data, dNearCallback *callback) | ||
111 | { dSpaceCollide2 (_id,g,data,callback); } | ||
112 | }; | ||
113 | |||
114 | |||
115 | class dSpace : public dGeom { | ||
116 | // intentionally undefined, don't use these | ||
117 | dSpace (dSpace &); | ||
118 | void operator= (dSpace &); | ||
119 | |||
120 | protected: | ||
121 | // the default constructor is protected so that you | ||
122 | // can't instance this class. you must instance one | ||
123 | // of its subclasses instead. | ||
124 | dSpace () { _id = 0; } | ||
125 | |||
126 | public: | ||
127 | dSpaceID id() const | ||
128 | { return (dSpaceID) _id; } | ||
129 | operator dSpaceID() const | ||
130 | { return (dSpaceID) _id; } | ||
131 | |||
132 | void setCleanup (int mode) | ||
133 | { dSpaceSetCleanup (id(), mode); } | ||
134 | int getCleanup() | ||
135 | { return dSpaceGetCleanup (id()); } | ||
136 | |||
137 | void add (dGeomID x) | ||
138 | { dSpaceAdd (id(), x); } | ||
139 | void remove (dGeomID x) | ||
140 | { dSpaceRemove (id(), x); } | ||
141 | int query (dGeomID x) | ||
142 | { return dSpaceQuery (id(),x); } | ||
143 | |||
144 | int getNumGeoms() | ||
145 | { return dSpaceGetNumGeoms (id()); } | ||
146 | dGeomID getGeom (int i) | ||
147 | { return dSpaceGetGeom (id(),i); } | ||
148 | |||
149 | void collide (void *data, dNearCallback *callback) | ||
150 | { dSpaceCollide (id(),data,callback); } | ||
151 | }; | ||
152 | |||
153 | |||
154 | class dSimpleSpace : public dSpace { | ||
155 | // intentionally undefined, don't use these | ||
156 | dSimpleSpace (dSimpleSpace &); | ||
157 | void operator= (dSimpleSpace &); | ||
158 | |||
159 | public: | ||
160 | dSimpleSpace (dSpaceID space) | ||
161 | { _id = (dGeomID) dSimpleSpaceCreate (space); } | ||
162 | }; | ||
163 | |||
164 | |||
165 | class dHashSpace : public dSpace { | ||
166 | // intentionally undefined, don't use these | ||
167 | dHashSpace (dHashSpace &); | ||
168 | void operator= (dHashSpace &); | ||
169 | |||
170 | public: | ||
171 | dHashSpace (dSpaceID space) | ||
172 | { _id = (dGeomID) dHashSpaceCreate (space); } | ||
173 | void setLevels (int minlevel, int maxlevel) | ||
174 | { dHashSpaceSetLevels (id(),minlevel,maxlevel); } | ||
175 | }; | ||
176 | |||
177 | |||
178 | class dQuadTreeSpace : public dSpace { | ||
179 | // intentionally undefined, don't use these | ||
180 | dQuadTreeSpace (dQuadTreeSpace &); | ||
181 | void operator= (dQuadTreeSpace &); | ||
182 | |||
183 | public: | ||
184 | dQuadTreeSpace (dSpaceID space, dVector3 center, dVector3 extents, int depth) | ||
185 | { _id = (dGeomID) dQuadTreeSpaceCreate (space,center,extents,depth); } | ||
186 | }; | ||
187 | |||
188 | |||
189 | class dSphere : public dGeom { | ||
190 | // intentionally undefined, don't use these | ||
191 | dSphere (dSphere &); | ||
192 | void operator= (dSphere &); | ||
193 | |||
194 | public: | ||
195 | dSphere () { } | ||
196 | dSphere (dSpaceID space, dReal radius) | ||
197 | { _id = dCreateSphere (space, radius); } | ||
198 | |||
199 | void create (dSpaceID space, dReal radius) { | ||
200 | if (_id) dGeomDestroy (_id); | ||
201 | _id = dCreateSphere (space, radius); | ||
202 | } | ||
203 | |||
204 | void setRadius (dReal radius) | ||
205 | { dGeomSphereSetRadius (_id, radius); } | ||
206 | dReal getRadius() const | ||
207 | { return dGeomSphereGetRadius (_id); } | ||
208 | }; | ||
209 | |||
210 | |||
211 | class dBox : public dGeom { | ||
212 | // intentionally undefined, don't use these | ||
213 | dBox (dBox &); | ||
214 | void operator= (dBox &); | ||
215 | |||
216 | public: | ||
217 | dBox () { } | ||
218 | dBox (dSpaceID space, dReal lx, dReal ly, dReal lz) | ||
219 | { _id = dCreateBox (space,lx,ly,lz); } | ||
220 | |||
221 | void create (dSpaceID space, dReal lx, dReal ly, dReal lz) { | ||
222 | if (_id) dGeomDestroy (_id); | ||
223 | _id = dCreateBox (space,lx,ly,lz); | ||
224 | } | ||
225 | |||
226 | void setLengths (dReal lx, dReal ly, dReal lz) | ||
227 | { dGeomBoxSetLengths (_id, lx, ly, lz); } | ||
228 | void getLengths (dVector3 result) const | ||
229 | { dGeomBoxGetLengths (_id,result); } | ||
230 | }; | ||
231 | |||
232 | |||
233 | class dPlane : public dGeom { | ||
234 | // intentionally undefined, don't use these | ||
235 | dPlane (dPlane &); | ||
236 | void operator= (dPlane &); | ||
237 | |||
238 | public: | ||
239 | dPlane() { } | ||
240 | dPlane (dSpaceID space, dReal a, dReal b, dReal c, dReal d) | ||
241 | { _id = dCreatePlane (space,a,b,c,d); } | ||
242 | |||
243 | void create (dSpaceID space, dReal a, dReal b, dReal c, dReal d) { | ||
244 | if (_id) dGeomDestroy (_id); | ||
245 | _id = dCreatePlane (space,a,b,c,d); | ||
246 | } | ||
247 | |||
248 | void setParams (dReal a, dReal b, dReal c, dReal d) | ||
249 | { dGeomPlaneSetParams (_id, a, b, c, d); } | ||
250 | void getParams (dVector4 result) const | ||
251 | { dGeomPlaneGetParams (_id,result); } | ||
252 | }; | ||
253 | |||
254 | |||
255 | class dCapsule : public dGeom { | ||
256 | // intentionally undefined, don't use these | ||
257 | dCapsule (dCapsule &); | ||
258 | void operator= (dCapsule &); | ||
259 | |||
260 | public: | ||
261 | dCapsule() { } | ||
262 | dCapsule (dSpaceID space, dReal radius, dReal length) | ||
263 | { _id = dCreateCapsule (space,radius,length); } | ||
264 | |||
265 | void create (dSpaceID space, dReal radius, dReal length) { | ||
266 | if (_id) dGeomDestroy (_id); | ||
267 | _id = dCreateCapsule (space,radius,length); | ||
268 | } | ||
269 | |||
270 | void setParams (dReal radius, dReal length) | ||
271 | { dGeomCapsuleSetParams (_id, radius, length); } | ||
272 | void getParams (dReal *radius, dReal *length) const | ||
273 | { dGeomCapsuleGetParams (_id,radius,length); } | ||
274 | }; | ||
275 | |||
276 | |||
277 | class dRay : public dGeom { | ||
278 | // intentionally undefined, don't use these | ||
279 | dRay (dRay &); | ||
280 | void operator= (dRay &); | ||
281 | |||
282 | public: | ||
283 | dRay() { } | ||
284 | dRay (dSpaceID space, dReal length) | ||
285 | { _id = dCreateRay (space,length); } | ||
286 | |||
287 | void create (dSpaceID space, dReal length) { | ||
288 | if (_id) dGeomDestroy (_id); | ||
289 | _id = dCreateRay (space,length); | ||
290 | } | ||
291 | |||
292 | void setLength (dReal length) | ||
293 | { dGeomRaySetLength (_id, length); } | ||
294 | dReal getLength() | ||
295 | { return dGeomRayGetLength (_id); } | ||
296 | |||
297 | void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz) | ||
298 | { dGeomRaySet (_id, px, py, pz, dx, dy, dz); } | ||
299 | void get (dVector3 start, dVector3 dir) | ||
300 | { dGeomRayGet (_id, start, dir); } | ||
301 | |||
302 | void setParams (int firstContact, int backfaceCull) | ||
303 | { dGeomRaySetParams (_id, firstContact, backfaceCull); } | ||
304 | void getParams (int *firstContact, int *backfaceCull) | ||
305 | { dGeomRayGetParams (_id, firstContact, backfaceCull); } | ||
306 | void setClosestHit (int closestHit) | ||
307 | { dGeomRaySetClosestHit (_id, closestHit); } | ||
308 | int getClosestHit() | ||
309 | { return dGeomRayGetClosestHit (_id); } | ||
310 | }; | ||
311 | |||
312 | |||
313 | class dGeomTransform : public dGeom { | ||
314 | // intentionally undefined, don't use these | ||
315 | dGeomTransform (dGeomTransform &); | ||
316 | void operator= (dGeomTransform &); | ||
317 | |||
318 | public: | ||
319 | dGeomTransform() { } | ||
320 | dGeomTransform (dSpaceID space) | ||
321 | { _id = dCreateGeomTransform (space); } | ||
322 | |||
323 | void create (dSpaceID space=0) { | ||
324 | if (_id) dGeomDestroy (_id); | ||
325 | _id = dCreateGeomTransform (space); | ||
326 | } | ||
327 | |||
328 | void setGeom (dGeomID geom) | ||
329 | { dGeomTransformSetGeom (_id, geom); } | ||
330 | dGeomID getGeom() const | ||
331 | { return dGeomTransformGetGeom (_id); } | ||
332 | |||
333 | void setCleanup (int mode) | ||
334 | { dGeomTransformSetCleanup (_id,mode); } | ||
335 | int getCleanup () | ||
336 | { return dGeomTransformGetCleanup (_id); } | ||
337 | |||
338 | void setInfo (int mode) | ||
339 | { dGeomTransformSetInfo (_id,mode); } | ||
340 | int getInfo() | ||
341 | { return dGeomTransformGetInfo (_id); } | ||
342 | }; | ||
343 | |||
344 | |||
345 | #endif | ||
346 | #endif | ||