1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Open Dynamics Engine: odecpp.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>odecpp.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * *</span>
<a name="l00003"></a>00003 <span class="comment"> * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. *</span>
<a name="l00004"></a>00004 <span class="comment"> * All rights reserved. Email: russ@q12.org Web: www.q12.org *</span>
<a name="l00005"></a>00005 <span class="comment"> * *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or *</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of EITHER: *</span>
<a name="l00008"></a>00008 <span class="comment"> * (1) The GNU Lesser General Public License as published by the Free *</span>
<a name="l00009"></a>00009 <span class="comment"> * Software Foundation; either version 2.1 of the License, or (at *</span>
<a name="l00010"></a>00010 <span class="comment"> * your option) any later version. The text of the GNU Lesser *</span>
<a name="l00011"></a>00011 <span class="comment"> * General Public License is included with this library in the *</span>
<a name="l00012"></a>00012 <span class="comment"> * file LICENSE.TXT. *</span>
<a name="l00013"></a>00013 <span class="comment"> * (2) The BSD-style license that is included with this library in *</span>
<a name="l00014"></a>00014 <span class="comment"> * the file LICENSE-BSD.TXT. *</span>
<a name="l00015"></a>00015 <span class="comment"> * *</span>
<a name="l00016"></a>00016 <span class="comment"> * This library is distributed in the hope that it will be useful, *</span>
<a name="l00017"></a>00017 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of *</span>
<a name="l00018"></a>00018 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files *</span>
<a name="l00019"></a>00019 <span class="comment"> * LICENSE.TXT and LICENSE-BSD.TXT for more details. *</span>
<a name="l00020"></a>00020 <span class="comment"> * *</span>
<a name="l00021"></a>00021 <span class="comment"> *************************************************************************/</span>
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <span class="comment">/* C++ interface for non-collision stuff */</span>
<a name="l00024"></a>00024
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <span class="preprocessor">#ifndef _ODE_ODECPP_H_</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define _ODE_ODECPP_H_</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span>
<a name="l00030"></a>00030 <span class="preprocessor">#include <ode/error.h></span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032
<a name="l00033"></a>00033 <span class="keyword">class </span>dWorld {
<a name="l00034"></a>00034 dWorldID _id;
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00037"></a>00037 dWorld (<span class="keyword">const</span> dWorld &);
<a name="l00038"></a>00038 <span class="keywordtype">void</span> operator= (<span class="keyword">const</span> dWorld &);
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="keyword">public</span>:
<a name="l00041"></a>00041 dWorld()
<a name="l00042"></a>00042 { _id = <a class="code" href="group__world.html#g929067266d630fb745f752042d685fc7" title="Create a new, empty world and return its ID number.">dWorldCreate</a>(); }
<a name="l00043"></a>00043 ~dWorld()
<a name="l00044"></a>00044 { <a class="code" href="group__world.html#g5a2e5b1d2d6a1376dca239b488e629f9" title="Destroy a world and everything in it.">dWorldDestroy</a> (_id); }
<a name="l00045"></a>00045
<a name="l00046"></a>00046 dWorldID id()<span class="keyword"> const</span>
<a name="l00047"></a>00047 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00048"></a>00048 operator dWorldID()<span class="keyword"> const</span>
<a name="l00049"></a>00049 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00050"></a>00050
<a name="l00051"></a>00051 <span class="keywordtype">void</span> setGravity (dReal x, dReal y, dReal z)
<a name="l00052"></a>00052 { <a class="code" href="group__world.html#ga1b220b922215b335572c699cf8f8cad" title="Set the world&#39;s global gravity vector.">dWorldSetGravity</a> (_id,x,y,z); }
<a name="l00053"></a>00053 <span class="keywordtype">void</span> getGravity (dVector3 g)<span class="keyword"> const</span>
<a name="l00054"></a>00054 <span class="keyword"> </span>{ <a class="code" href="group__world.html#ge1a29b6a91cc1910a982c916ae4dee4a" title="Get the gravity vector for a given world.">dWorldGetGravity</a> (_id,g); }
<a name="l00055"></a>00055
<a name="l00056"></a>00056 <span class="keywordtype">void</span> setERP (dReal erp)
<a name="l00057"></a>00057 { <a class="code" href="group__world.html#gacd0778bdaa939d22f093fc2d5d5f868" title="Set the global ERP value, that controls how much error correction is performed in...">dWorldSetERP</a>(_id, erp); }
<a name="l00058"></a>00058 dReal getERP()<span class="keyword"> const</span>
<a name="l00059"></a>00059 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__world.html#g033cd87a0b22889a94d4d84149bda5a0" title="Get the error reduction parameter.">dWorldGetERP</a>(_id); }
<a name="l00060"></a>00060
<a name="l00061"></a>00061 <span class="keywordtype">void</span> setCFM (dReal cfm)
<a name="l00062"></a>00062 { <a class="code" href="group__world.html#g8b7913fe46d0afc468418c655da79233" title="Set the global CFM (constraint force mixing) value.">dWorldSetCFM</a>(_id, cfm); }
<a name="l00063"></a>00063 dReal getCFM()<span class="keyword"> const</span>
<a name="l00064"></a>00064 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__world.html#gc7a431f2b3fc6f887fe91ad676828ba3" title="Get the constraint force mixing value.">dWorldGetCFM</a>(_id); }
<a name="l00065"></a>00065
<a name="l00066"></a>00066 <span class="keywordtype">void</span> step (dReal stepsize)
<a name="l00067"></a>00067 { <a class="code" href="group__world.html#g8f547ebeb3deed27e0f7b8143d475f50" title="Step the world.">dWorldStep</a> (_id,stepsize); }
<a name="l00068"></a>00068
<a name="l00069"></a>00069 <span class="keywordtype">void</span> stepFast1 (dReal stepsize, <span class="keywordtype">int</span> maxiterations)
<a name="l00070"></a>00070 { <a class="code" href="group__world.html#gefa68c714bb3c8f70503f101ea062c03" title="Step the world using the StepFast1 algorithm.">dWorldStepFast1</a> (_id,stepsize,maxiterations); }
<a name="l00071"></a>00071 <span class="keywordtype">void</span> setAutoEnableDepthSF1(dWorldID, <span class="keywordtype">int</span> depth)
<a name="l00072"></a>00072 { <a class="code" href="group__disable.html#g280c6deffe6b4b8ba39d60bf25355347" title="Set the AutoEnableDepth parameter used by the StepFast1 algorithm.">dWorldSetAutoEnableDepthSF1</a> (_id, depth); }
<a name="l00073"></a>00073 <span class="keywordtype">int</span> getAutoEnableDepthSF1(dWorldID)
<a name="l00074"></a>00074 { <span class="keywordflow">return</span> <a class="code" href="group__disable.html#g5438f43d9c71d8090a44171f685de196" title="Get the AutoEnableDepth parameter used by the StepFast1 algorithm.">dWorldGetAutoEnableDepthSF1</a> (_id); }
<a name="l00075"></a>00075
<a name="l00076"></a>00076 <span class="keywordtype">void</span> setAutoDisableLinearThreshold (dReal threshold)
<a name="l00077"></a>00077 { <a class="code" href="group__disable.html#ga1070c6f127352fb0a87ab1d42677b8e" title="Set auto disable linear threshold for newly created bodies.">dWorldSetAutoDisableLinearThreshold</a> (_id,threshold); }
<a name="l00078"></a>00078 dReal getAutoDisableLinearThreshold()
<a name="l00079"></a>00079 { <span class="keywordflow">return</span> <a class="code" href="group__disable.html#g48802a9736cc8cc9c1a14cbc3125d9b2" title="Get auto disable linear threshold for newly created bodies.">dWorldGetAutoDisableLinearThreshold</a> (_id); }
<a name="l00080"></a>00080 <span class="keywordtype">void</span> setAutoDisableAngularThreshold (dReal threshold)
<a name="l00081"></a>00081 { <a class="code" href="group__disable.html#g61cae2bd156129a918c3a1e69ac1b6dd" title="Set auto disable angular threshold for newly created bodies.">dWorldSetAutoDisableAngularThreshold</a> (_id,threshold); }
<a name="l00082"></a>00082 dReal getAutoDisableAngularThreshold()
<a name="l00083"></a>00083 { <span class="keywordflow">return</span> <a class="code" href="group__disable.html#g9d32b31b5d343c324897434a97387abc" title="Get auto disable angular threshold for newly created bodies.">dWorldGetAutoDisableAngularThreshold</a> (_id); }
<a name="l00084"></a>00084 <span class="keywordtype">void</span> setAutoDisableSteps (<span class="keywordtype">int</span> steps)
<a name="l00085"></a>00085 { <a class="code" href="group__disable.html#gdb9f69119d1aa259a0e32a8ff94e2535" title="Set auto disable steps for newly created bodies.">dWorldSetAutoDisableSteps</a> (_id,steps); }
<a name="l00086"></a>00086 <span class="keywordtype">int</span> getAutoDisableSteps()
<a name="l00087"></a>00087 { <span class="keywordflow">return</span> <a class="code" href="group__disable.html#gb0a26f648b9e40d8d4639bf187d5ac94" title="Get auto disable steps for newly created bodies.">dWorldGetAutoDisableSteps</a> (_id); }
<a name="l00088"></a>00088 <span class="keywordtype">void</span> setAutoDisableTime (dReal time)
<a name="l00089"></a>00089 { <a class="code" href="group__disable.html#g06828866a19cab7aeb129ca9ec76863b" title="Set auto disable time for newly created bodies.">dWorldSetAutoDisableTime</a> (_id,time); }
<a name="l00090"></a>00090 dReal getAutoDisableTime()
<a name="l00091"></a>00091 { <span class="keywordflow">return</span> <a class="code" href="group__disable.html#gbc004c37efff5f962fa2ac271b3be8e1" title="Get auto disable time for newly created bodies.">dWorldGetAutoDisableTime</a> (_id); }
<a name="l00092"></a>00092 <span class="keywordtype">void</span> setAutoDisableFlag (<span class="keywordtype">int</span> do_auto_disable)
<a name="l00093"></a>00093 { <a class="code" href="group__disable.html#g58959b92ae4706e612bca673e85bfc50" title="Set auto disable flag for newly created bodies.">dWorldSetAutoDisableFlag</a> (_id,do_auto_disable); }
<a name="l00094"></a>00094 <span class="keywordtype">int</span> getAutoDisableFlag()
<a name="l00095"></a>00095 { <span class="keywordflow">return</span> <a class="code" href="group__disable.html#g7617d19f08c7b1d22cf17ccf22bbdc00" title="Get auto disable flag for newly created bodies.">dWorldGetAutoDisableFlag</a> (_id); }
<a name="l00096"></a>00096
<a name="l00097"></a>00097 <span class="keywordtype">void</span> impulseToForce (dReal stepsize, dReal ix, dReal iy, dReal iz,
<a name="l00098"></a>00098 dVector3 force)
<a name="l00099"></a>00099 { <a class="code" href="group__world.html#ga9c564b4dd7d8fa4c6f4b32dd95fc33a" title="Converts an impulse to a force.">dWorldImpulseToForce</a> (_id,stepsize,ix,iy,iz,force); }
<a name="l00100"></a>00100 };
<a name="l00101"></a>00101
<a name="l00102"></a>00102
<a name="l00103"></a>00103 <span class="keyword">class </span>dBody {
<a name="l00104"></a>00104 dBodyID _id;
<a name="l00105"></a>00105
<a name="l00106"></a>00106 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00107"></a>00107 dBody (<span class="keyword">const</span> dBody &);
<a name="l00108"></a>00108 <span class="keywordtype">void</span> operator= (<span class="keyword">const</span> dBody &);
<a name="l00109"></a>00109
<a name="l00110"></a>00110 <span class="keyword">public</span>:
<a name="l00111"></a>00111 dBody()
<a name="l00112"></a>00112 { _id = 0; }
<a name="l00113"></a>00113 dBody (dWorldID world)
<a name="l00114"></a>00114 { _id = <a class="code" href="group__bodies.html#g578137bbaf82d4b8896d2baee3a032a6" title="Create a body in given world.">dBodyCreate</a> (world); }
<a name="l00115"></a>00115 ~dBody()
<a name="l00116"></a>00116 { <span class="keywordflow">if</span> (_id) <a class="code" href="group__bodies.html#gc1a0ee96898f14017a29b2afa0eafe13" title="Destroy a body.">dBodyDestroy</a> (_id); }
<a name="l00117"></a>00117
<a name="l00118"></a>00118 <span class="keywordtype">void</span> create (dWorldID world) {
<a name="l00119"></a>00119 <span class="keywordflow">if</span> (_id) <a class="code" href="group__bodies.html#gc1a0ee96898f14017a29b2afa0eafe13" title="Destroy a body.">dBodyDestroy</a> (_id);
<a name="l00120"></a>00120 _id = <a class="code" href="group__bodies.html#g578137bbaf82d4b8896d2baee3a032a6" title="Create a body in given world.">dBodyCreate</a> (world);
<a name="l00121"></a>00121 }
<a name="l00122"></a>00122
<a name="l00123"></a>00123 dBodyID id()<span class="keyword"> const</span>
<a name="l00124"></a>00124 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00125"></a>00125 operator dBodyID()<span class="keyword"> const</span>
<a name="l00126"></a>00126 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00127"></a>00127
<a name="l00128"></a>00128 <span class="keywordtype">void</span> setData (<span class="keywordtype">void</span> *data)
<a name="l00129"></a>00129 { <a class="code" href="group__bodies.html#gf9cbe9e1ed1bd4559bb5603b8d0f92f2" title="Set the body&#39;s user-data pointer.">dBodySetData</a> (_id,data); }
<a name="l00130"></a>00130 <span class="keywordtype">void</span> *getData()<span class="keyword"> const</span>
<a name="l00131"></a>00131 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g68d3d80c7476776dd4512d577bf70325" title="Get the body&#39;s user-data pointer.">dBodyGetData</a> (_id); }
<a name="l00132"></a>00132
<a name="l00133"></a>00133 <span class="keywordtype">void</span> setPosition (dReal x, dReal y, dReal z)
<a name="l00134"></a>00134 { <a class="code" href="group__bodies.html#gb84612b793366f18ff5b5cbdbed092da" title="Set position of a body.">dBodySetPosition</a> (_id,x,y,z); }
<a name="l00135"></a>00135 <span class="keywordtype">void</span> setRotation (<span class="keyword">const</span> dMatrix3 R)
<a name="l00136"></a>00136 { <a class="code" href="group__bodies.html#gb5f04968ec37ef46d2aaffad6c344468" title="Set the orientation of a body.">dBodySetRotation</a> (_id,R); }
<a name="l00137"></a>00137 <span class="keywordtype">void</span> setQuaternion (<span class="keyword">const</span> dQuaternion q)
<a name="l00138"></a>00138 { <a class="code" href="group__bodies.html#ga5f51dd3605c402320e9eae4231d7ad4" title="Set the orientation of a body.">dBodySetQuaternion</a> (_id,q); }
<a name="l00139"></a>00139 <span class="keywordtype">void</span> setLinearVel (dReal x, dReal y, dReal z)
<a name="l00140"></a>00140 { <a class="code" href="group__bodies.html#gafe72e03c1df0f2150e2d7b8677e1460" title="Set the linear velocity of a body.">dBodySetLinearVel</a> (_id,x,y,z); }
<a name="l00141"></a>00141 <span class="keywordtype">void</span> setAngularVel (dReal x, dReal y, dReal z)
<a name="l00142"></a>00142 { <a class="code" href="group__bodies.html#g7b4f90c1986333395375c086c4f3ec41" title="Set the angular velocity of a body.">dBodySetAngularVel</a> (_id,x,y,z); }
<a name="l00143"></a>00143
<a name="l00144"></a>00144 <span class="keyword">const</span> dReal * getPosition()<span class="keyword"> const</span>
<a name="l00145"></a>00145 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g2bddae29591b9f14c5175411b783d570" title="Get the position of a body.">dBodyGetPosition</a> (_id); }
<a name="l00146"></a>00146 <span class="keyword">const</span> dReal * getRotation()<span class="keyword"> const</span>
<a name="l00147"></a>00147 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g2374da7ff88a2bac607e2fbce529ad27" title="Get the rotation of a body.">dBodyGetRotation</a> (_id); }
<a name="l00148"></a>00148 <span class="keyword">const</span> dReal * getQuaternion()<span class="keyword"> const</span>
<a name="l00149"></a>00149 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g36b7e19622ed47fe6b9dcfbac20237e7" title="Get the rotation of a body.">dBodyGetQuaternion</a> (_id); }
<a name="l00150"></a>00150 <span class="keyword">const</span> dReal * getLinearVel()<span class="keyword"> const</span>
<a name="l00151"></a>00151 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g2a0a986c12d53efd5a3753dd4b509cac" title="Get the linear velocity of a body.">dBodyGetLinearVel</a> (_id); }
<a name="l00152"></a>00152 <span class="keyword">const</span> dReal * getAngularVel()<span class="keyword"> const</span>
<a name="l00153"></a>00153 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g54dc73be9562cdece52d0a7d8decd1d0" title="Get the angular velocity of a body.">dBodyGetAngularVel</a> (_id); }
<a name="l00154"></a>00154
<a name="l00155"></a>00155 <span class="keywordtype">void</span> setMass (<span class="keyword">const</span> dMass *mass)
<a name="l00156"></a>00156 { <a class="code" href="group__bodies.html#gf3609b58548e34471ef8ad4727b33e52" title="Set the mass of a body.">dBodySetMass</a> (_id,mass); }
<a name="l00157"></a>00157 <span class="keywordtype">void</span> getMass (dMass *mass)<span class="keyword"> const</span>
<a name="l00158"></a>00158 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#g7aa7944f6e36a96d3e578f3369ac4171" title="Get the mass of a body.">dBodyGetMass</a> (_id,mass); }
<a name="l00159"></a>00159
<a name="l00160"></a>00160 <span class="keywordtype">void</span> addForce (dReal fx, dReal fy, dReal fz)
<a name="l00161"></a>00161 { <a class="code" href="group__bodies.html#g1e1352dc350ad42bff5818f2200ba792" title="Add force at centre of mass of body in absolute coordinates.">dBodyAddForce</a> (_id, fx, fy, fz); }
<a name="l00162"></a>00162 <span class="keywordtype">void</span> addTorque (dReal fx, dReal fy, dReal fz)
<a name="l00163"></a>00163 { <a class="code" href="group__bodies.html#g8378560dd168ee8d7a4b74e3de510ebc" title="Add torque at centre of mass of body in absolute coordinates.">dBodyAddTorque</a> (_id, fx, fy, fz); }
<a name="l00164"></a>00164 <span class="keywordtype">void</span> addRelForce (dReal fx, dReal fy, dReal fz)
<a name="l00165"></a>00165 { <a class="code" href="group__bodies.html#g0a91e5416c5af7729177c465346837ad" title="Add force at centre of mass of body in coordinates relative to body.">dBodyAddRelForce</a> (_id, fx, fy, fz); }
<a name="l00166"></a>00166 <span class="keywordtype">void</span> addRelTorque (dReal fx, dReal fy, dReal fz)
<a name="l00167"></a>00167 { <a class="code" href="group__bodies.html#g172a59e64f6dfa4a59bcd45b694585de" title="Add torque at centre of mass of body in coordinates relative to body.">dBodyAddRelTorque</a> (_id, fx, fy, fz); }
<a name="l00168"></a>00168 <span class="keywordtype">void</span> addForceAtPos (dReal fx, dReal fy, dReal fz,
<a name="l00169"></a>00169 dReal px, dReal py, dReal pz)
<a name="l00170"></a>00170 { <a class="code" href="group__bodies.html#gfa134c6b7b455680b890b677c5789c2b" title="Add force at specified point in body in global coordinates.">dBodyAddForceAtPos</a> (_id, fx, fy, fz, px, py, pz); }
<a name="l00171"></a>00171 <span class="keywordtype">void</span> addForceAtRelPos (dReal fx, dReal fy, dReal fz,
<a name="l00172"></a>00172 dReal px, dReal py, dReal pz)
<a name="l00173"></a>00173 { <a class="code" href="group__bodies.html#g77606cdb23029337a7ed43dee5a59ee1" title="Add force at specified point in body in local coordinates.">dBodyAddForceAtRelPos</a> (_id, fx, fy, fz, px, py, pz); }
<a name="l00174"></a>00174 <span class="keywordtype">void</span> addRelForceAtPos (dReal fx, dReal fy, dReal fz,
<a name="l00175"></a>00175 dReal px, dReal py, dReal pz)
<a name="l00176"></a>00176 { <a class="code" href="group__bodies.html#ga024b08f8dfb85705b86e18b99a0ef8e" title="Add force at specified point in body in global coordinates.">dBodyAddRelForceAtPos</a> (_id, fx, fy, fz, px, py, pz); }
<a name="l00177"></a>00177 <span class="keywordtype">void</span> addRelForceAtRelPos (dReal fx, dReal fy, dReal fz,
<a name="l00178"></a>00178 dReal px, dReal py, dReal pz)
<a name="l00179"></a>00179 { <a class="code" href="group__bodies.html#g7e5d20b6bb36f74d0dedb08f5eefddcb" title="Add force at specified point in body in local coordinates.">dBodyAddRelForceAtRelPos</a> (_id, fx, fy, fz, px, py, pz); }
<a name="l00180"></a>00180
<a name="l00181"></a>00181 <span class="keyword">const</span> dReal * getForce()<span class="keyword"> const</span>
<a name="l00182"></a>00182 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g3b458397a79f09b1957cb6e5a85e9eba" title="Return the current accumulated force vector.">dBodyGetForce</a>(_id); }
<a name="l00183"></a>00183 <span class="keyword">const</span> dReal * getTorque()<span class="keyword"> const</span>
<a name="l00184"></a>00184 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#gfe88a5bc363fc812c8f154e3d5f8ea5d" title="Return the current accumulated torque vector.">dBodyGetTorque</a>(_id); }
<a name="l00185"></a>00185 <span class="keywordtype">void</span> setForce (dReal x, dReal y, dReal z)
<a name="l00186"></a>00186 { <a class="code" href="group__bodies.html#gbd56079db36d4562db0e18aebea4f95f" title="Set the body force accumulation vector.">dBodySetForce</a> (_id,x,y,z); }
<a name="l00187"></a>00187 <span class="keywordtype">void</span> setTorque (dReal x, dReal y, dReal z)
<a name="l00188"></a>00188 { <a class="code" href="group__bodies.html#gfcd3e44223a878ba52428ad3a124fa94" title="Set the body torque accumulation vector.">dBodySetTorque</a> (_id,x,y,z); }
<a name="l00189"></a>00189
<a name="l00190"></a>00190 <span class="keywordtype">void</span> enable()
<a name="l00191"></a>00191 { <a class="code" href="group__bodies.html#gd0776c40f667b235f8642e10755543f8" title="Manually enable a body.">dBodyEnable</a> (_id); }
<a name="l00192"></a>00192 <span class="keywordtype">void</span> disable()
<a name="l00193"></a>00193 { <a class="code" href="group__bodies.html#ga78092d7cadae36373441aa9be7e6157" title="Manually disable a body.">dBodyDisable</a> (_id); }
<a name="l00194"></a>00194 <span class="keywordtype">int</span> isEnabled()<span class="keyword"> const</span>
<a name="l00195"></a>00195 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g7e7803132dfcfceee04a6ab0ca1e0bf8" title="Check wether a body is enabled.">dBodyIsEnabled</a> (_id); }
<a name="l00196"></a>00196
<a name="l00197"></a>00197 <span class="keywordtype">void</span> getRelPointPos (dReal px, dReal py, dReal pz, dVector3 result)<span class="keyword"> const</span>
<a name="l00198"></a>00198 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#gfcf00cd9c4c754c82189fb9d1eb9f102" title="Get world position of a relative point on body.">dBodyGetRelPointPos</a> (_id, px, py, pz, result); }
<a name="l00199"></a>00199 <span class="keywordtype">void</span> getRelPointVel (dReal px, dReal py, dReal pz, dVector3 result)<span class="keyword"> const</span>
<a name="l00200"></a>00200 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#g7fd4f4c7e70c59380da11277b2e97510" title="Get velocity vector in global coords of a relative point on body.">dBodyGetRelPointVel</a> (_id, px, py, pz, result); }
<a name="l00201"></a>00201 <span class="keywordtype">void</span> getPointVel (dReal px, dReal py, dReal pz, dVector3 result)<span class="keyword"> const</span>
<a name="l00202"></a>00202 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#g89dd6a4a3c6f3cd98c8377e8d4dec015" title="Get velocity vector in global coords of a globally specified point on a body.">dBodyGetPointVel</a> (_id,px,py,pz,result); }
<a name="l00203"></a>00203 <span class="keywordtype">void</span> getPosRelPoint (dReal px, dReal py, dReal pz, dVector3 result)<span class="keyword"> const</span>
<a name="l00204"></a>00204 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#g0334d9d523cbfeec742ac4a814834199" title="takes a point in global coordinates and returns the point&#39;s position in body-relative...">dBodyGetPosRelPoint</a> (_id,px,py,pz,result); }
<a name="l00205"></a>00205 <span class="keywordtype">void</span> vectorToWorld (dReal px, dReal py, dReal pz, dVector3 result)<span class="keyword"> const</span>
<a name="l00206"></a>00206 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#g0a2cd6f7499bcfeb8275cbb981465bbf" title="Convert from local to world coordinates.">dBodyVectorToWorld</a> (_id,px,py,pz,result); }
<a name="l00207"></a>00207 <span class="keywordtype">void</span> vectorFromWorld (dReal px, dReal py, dReal pz, dVector3 result)<span class="keyword"> const</span>
<a name="l00208"></a>00208 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#g1e3ac3ef038e806d4942ea8b399ab575" title="Convert from world to local coordinates.">dBodyVectorFromWorld</a> (_id,px,py,pz,result); }
<a name="l00209"></a>00209
<a name="l00210"></a>00210 <span class="keywordtype">void</span> setFiniteRotationMode (<span class="keywordtype">int</span> mode)
<a name="l00211"></a>00211 { <a class="code" href="group__bodies.html#gc474ca36d734fb67b8bd504b672527fa" title="controls the way a body&#39;s orientation is updated at each timestep.">dBodySetFiniteRotationMode</a> (_id, mode); }
<a name="l00212"></a>00212 <span class="keywordtype">void</span> setFiniteRotationAxis (dReal x, dReal y, dReal z)
<a name="l00213"></a>00213 { <a class="code" href="group__bodies.html#ga9546c1ea6119fcbf80c71a96f56d052" title="sets the finite rotation axis for a body.">dBodySetFiniteRotationAxis</a> (_id, x, y, z); }
<a name="l00214"></a>00214
<a name="l00215"></a>00215 <span class="keywordtype">int</span> getFiniteRotationMode()<span class="keyword"> const</span>
<a name="l00216"></a>00216 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g3fb10ac984d64c92e4f138e50b704f9e" title="Get the way a body&#39;s orientation is updated each timestep.">dBodyGetFiniteRotationMode</a> (_id); }
<a name="l00217"></a>00217 <span class="keywordtype">void</span> getFiniteRotationAxis (dVector3 result)<span class="keyword"> const</span>
<a name="l00218"></a>00218 <span class="keyword"> </span>{ <a class="code" href="group__bodies.html#gfc8853ff678be731881665ff7abf61ad" title="Get the finite rotation axis.">dBodyGetFiniteRotationAxis</a> (_id, result); }
<a name="l00219"></a>00219
<a name="l00220"></a>00220 <span class="keywordtype">int</span> getNumJoints()<span class="keyword"> const</span>
<a name="l00221"></a>00221 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g79fd517a57ac9c3594cb71850f649af7" title="Get the number of joints that are attached to this body.">dBodyGetNumJoints</a> (_id); }
<a name="l00222"></a>00222 dJointID getJoint (<span class="keywordtype">int</span> index)<span class="keyword"> const</span>
<a name="l00223"></a>00223 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g095e41c5b5632b22aa9bd1a4bd051f8d" title="Return a joint attached to this body, given by index.">dBodyGetJoint</a> (_id, index); }
<a name="l00224"></a>00224
<a name="l00225"></a>00225 <span class="keywordtype">void</span> setGravityMode (<span class="keywordtype">int</span> mode)
<a name="l00226"></a>00226 { <a class="code" href="group__bodies.html#g5465d605e7fbe82d63a0d4e1000da731" title="Set whether the body is influenced by the world&#39;s gravity or not.">dBodySetGravityMode</a> (_id,mode); }
<a name="l00227"></a>00227 <span class="keywordtype">int</span> getGravityMode()<span class="keyword"> const</span>
<a name="l00228"></a>00228 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g0df2f4fed454c567f10fc8bbb8c70455" title="Get whether the body is influenced by the world&#39;s gravity or not.">dBodyGetGravityMode</a> (_id); }
<a name="l00229"></a>00229
<a name="l00230"></a>00230 <span class="keywordtype">int</span> isConnectedTo (dBodyID body)<span class="keyword"> const</span>
<a name="l00231"></a>00231 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g68eb2f4daea03713db4d8b4daca663ae" title="Utility function.">dAreConnected</a> (_id, body); }
<a name="l00232"></a>00232
<a name="l00233"></a>00233 <span class="keywordtype">void</span> setAutoDisableLinearThreshold (dReal threshold)
<a name="l00234"></a>00234 { <a class="code" href="group__bodies.html#gb8f6e736830cfea86c35e7a0cdfa3112" title="Set auto disable linear average threshold.">dBodySetAutoDisableLinearThreshold</a> (_id,threshold); }
<a name="l00235"></a>00235 dReal getAutoDisableLinearThreshold()
<a name="l00236"></a>00236 { <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g57c1e1b1bd50fdcafc5140c1ed89c7d7" title="Get auto disable linear average threshold.">dBodyGetAutoDisableLinearThreshold</a> (_id); }
<a name="l00237"></a>00237 <span class="keywordtype">void</span> setAutoDisableAngularThreshold (dReal threshold)
<a name="l00238"></a>00238 { <a class="code" href="group__bodies.html#g206ccf22f027a62aaf5e45a16ddc4040" title="Set auto disable angular average threshold.">dBodySetAutoDisableAngularThreshold</a> (_id,threshold); }
<a name="l00239"></a>00239 dReal getAutoDisableAngularThreshold()
<a name="l00240"></a>00240 { <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g5b988719423e9bc3af1be2146872e2d6" title="Get auto disable angular average threshold.">dBodyGetAutoDisableAngularThreshold</a> (_id); }
<a name="l00241"></a>00241 <span class="keywordtype">void</span> setAutoDisableSteps (<span class="keywordtype">int</span> steps)
<a name="l00242"></a>00242 { <a class="code" href="group__bodies.html#g03cc329bdc8e19e59c4bfe62cf736578" title="Set auto disable steps.">dBodySetAutoDisableSteps</a> (_id,steps); }
<a name="l00243"></a>00243 <span class="keywordtype">int</span> getAutoDisableSteps()
<a name="l00244"></a>00244 { <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#g797ad84c737a2ae4ef3f8a37dfa02183" title="Get auto steps a body must be thought of as idle to disable.">dBodyGetAutoDisableSteps</a> (_id); }
<a name="l00245"></a>00245 <span class="keywordtype">void</span> setAutoDisableTime (dReal time)
<a name="l00246"></a>00246 { <a class="code" href="group__bodies.html#g0ae2f08bb38359934151f9420cdef341" title="Set auto disable time.">dBodySetAutoDisableTime</a> (_id,time); }
<a name="l00247"></a>00247 dReal getAutoDisableTime()
<a name="l00248"></a>00248 { <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#ga2f4d01a8fb5c4d7e77efd5f0e4dd72b" title="Get auto disable time.">dBodyGetAutoDisableTime</a> (_id); }
<a name="l00249"></a>00249 <span class="keywordtype">void</span> setAutoDisableFlag (<span class="keywordtype">int</span> do_auto_disable)
<a name="l00250"></a>00250 { <a class="code" href="group__bodies.html#ge352fdcd8851224f07da53f35691ceb7" title="Set auto disable flag.">dBodySetAutoDisableFlag</a> (_id,do_auto_disable); }
<a name="l00251"></a>00251 <span class="keywordtype">int</span> getAutoDisableFlag()
<a name="l00252"></a>00252 { <span class="keywordflow">return</span> <a class="code" href="group__bodies.html#gfe44b3ae620abb1091472089cb07f64e" title="Get auto disable flag.">dBodyGetAutoDisableFlag</a> (_id); }
<a name="l00253"></a>00253 };
<a name="l00254"></a>00254
<a name="l00255"></a>00255
<a name="l00256"></a>00256 <span class="keyword">class </span>dJointGroup {
<a name="l00257"></a>00257 dJointGroupID _id;
<a name="l00258"></a>00258
<a name="l00259"></a>00259 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00260"></a>00260 dJointGroup (<span class="keyword">const</span> dJointGroup &);
<a name="l00261"></a>00261 <span class="keywordtype">void</span> operator= (<span class="keyword">const</span> dJointGroup &);
<a name="l00262"></a>00262
<a name="l00263"></a>00263 <span class="keyword">public</span>:
<a name="l00264"></a>00264 dJointGroup (<span class="keywordtype">int</span> dummy_arg=0)
<a name="l00265"></a>00265 { _id = <a class="code" href="group__joints.html#gaaec687b184a1214133a41503e7c628f" title="Create a joint group.">dJointGroupCreate</a> (0); }
<a name="l00266"></a>00266 ~dJointGroup()
<a name="l00267"></a>00267 { <a class="code" href="group__joints.html#g49e664ee9a8bd7bfe5e6932bf936bb8f" title="Destroy a joint group.">dJointGroupDestroy</a> (_id); }
<a name="l00268"></a>00268 <span class="keywordtype">void</span> create (<span class="keywordtype">int</span> dummy_arg=0) {
<a name="l00269"></a>00269 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g49e664ee9a8bd7bfe5e6932bf936bb8f" title="Destroy a joint group.">dJointGroupDestroy</a> (_id);
<a name="l00270"></a>00270 _id = <a class="code" href="group__joints.html#gaaec687b184a1214133a41503e7c628f" title="Create a joint group.">dJointGroupCreate</a> (0);
<a name="l00271"></a>00271 }
<a name="l00272"></a>00272
<a name="l00273"></a>00273 dJointGroupID id()<span class="keyword"> const</span>
<a name="l00274"></a>00274 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00275"></a>00275 operator dJointGroupID()<span class="keyword"> const</span>
<a name="l00276"></a>00276 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00277"></a>00277
<a name="l00278"></a>00278 <span class="keywordtype">void</span> empty()
<a name="l00279"></a>00279 { <a class="code" href="group__joints.html#g6e055bac8a0a3261bda3b6d07499c4ea" title="Empty a joint group.">dJointGroupEmpty</a> (_id); }
<a name="l00280"></a>00280 };
<a name="l00281"></a>00281
<a name="l00282"></a>00282
<a name="l00283"></a>00283 <span class="keyword">class </span>dJoint {
<a name="l00284"></a>00284 <span class="keyword">private</span>:
<a name="l00285"></a>00285 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00286"></a>00286 dJoint (<span class="keyword">const</span> dJoint &) ;
<a name="l00287"></a>00287 <span class="keywordtype">void</span> operator= (<span class="keyword">const</span> dJoint &);
<a name="l00288"></a>00288
<a name="l00289"></a>00289 <span class="keyword">protected</span>:
<a name="l00290"></a>00290 dJointID _id;
<a name="l00291"></a>00291
<a name="l00292"></a>00292 <span class="keyword">public</span>:
<a name="l00293"></a>00293 dJoint()
<a name="l00294"></a>00294 { _id = 0; }
<a name="l00295"></a>00295 ~dJoint()
<a name="l00296"></a>00296 { <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id); }
<a name="l00297"></a>00297
<a name="l00298"></a>00298 dJointID id()<span class="keyword"> const</span>
<a name="l00299"></a>00299 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00300"></a>00300 operator dJointID()<span class="keyword"> const</span>
<a name="l00301"></a>00301 <span class="keyword"> </span>{ <span class="keywordflow">return</span> _id; }
<a name="l00302"></a>00302
<a name="l00303"></a>00303 <span class="keywordtype">void</span> attach (dBodyID body1, dBodyID body2)
<a name="l00304"></a>00304 { <a class="code" href="group__joints.html#g8f1c9b1302c799a1b87bc29b76d0dcec" title="Attach the joint to some new bodies.">dJointAttach</a> (_id, body1, body2); }
<a name="l00305"></a>00305
<a name="l00306"></a>00306 <span class="keywordtype">void</span> setData (<span class="keywordtype">void</span> *data)
<a name="l00307"></a>00307 { <a class="code" href="group__joints.html#g5ca72d8bd498ef1ba920b0b473e79d02" title="Set the user-data pointer.">dJointSetData</a> (_id, data); }
<a name="l00308"></a>00308 <span class="keywordtype">void</span> *getData()<span class="keyword"> const</span>
<a name="l00309"></a>00309 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g607702a11bae2d2613295f67088b0e82" title="Get the user-data pointer.">dJointGetData</a> (_id); }
<a name="l00310"></a>00310
<a name="l00311"></a>00311 <span class="keywordtype">int</span> getType()<span class="keyword"> const</span>
<a name="l00312"></a>00312 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g6f12f69d9b1a457428a28c2f77148174" title="Get the type of the joint.">dJointGetType</a> (_id); }
<a name="l00313"></a>00313
<a name="l00314"></a>00314 dBodyID getBody (<span class="keywordtype">int</span> index)<span class="keyword"> const</span>
<a name="l00315"></a>00315 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gff13cbb464f1bfdc225fc9202c2c54c3" title="Return the bodies that this joint connects.">dJointGetBody</a> (_id, index); }
<a name="l00316"></a>00316
<a name="l00317"></a>00317 <span class="keywordtype">void</span> setFeedback(dJointFeedback *fb)
<a name="l00318"></a>00318 { <a class="code" href="group__joints.html#g87ddb9beb95e9383a4280cb8a4186f01" title="Sets the datastructure that is to receive the feedback.">dJointSetFeedback</a>(_id, fb); }
<a name="l00319"></a>00319 dJointFeedback *getFeedback()<span class="keyword"> const</span>
<a name="l00320"></a>00320 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gda1deef60d7afbb6b9375ddbf97e09a1" title="Gets the datastructure that is to receive the feedback.">dJointGetFeedback</a>(_id); }
<a name="l00321"></a>00321 };
<a name="l00322"></a>00322
<a name="l00323"></a>00323
<a name="l00324"></a>00324 <span class="keyword">class </span>dBallJoint : <span class="keyword">public</span> dJoint {
<a name="l00325"></a>00325 <span class="keyword">private</span>:
<a name="l00326"></a>00326 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00327"></a>00327 dBallJoint (<span class="keyword">const</span> dBallJoint &);
<a name="l00328"></a>00328 <span class="keywordtype">void</span> operator= (<span class="keyword">const</span> dBallJoint &);
<a name="l00329"></a>00329
<a name="l00330"></a>00330 <span class="keyword">public</span>:
<a name="l00331"></a>00331 dBallJoint() { }
<a name="l00332"></a>00332 dBallJoint (dWorldID world, dJointGroupID group=0)
<a name="l00333"></a>00333 { _id = <a class="code" href="group__joints.html#g2d23509f8d6c6066b361af4cf14166f7" title="Create a new joint of the ball type.">dJointCreateBall</a> (world, group); }
<a name="l00334"></a>00334
<a name="l00335"></a>00335 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00336"></a>00336 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00337"></a>00337 _id = <a class="code" href="group__joints.html#g2d23509f8d6c6066b361af4cf14166f7" title="Create a new joint of the ball type.">dJointCreateBall</a> (world, group);
<a name="l00338"></a>00338 }
<a name="l00339"></a>00339
<a name="l00340"></a>00340 <span class="keywordtype">void</span> setAnchor (dReal x, dReal y, dReal z)
<a name="l00341"></a>00341 { <a class="code" href="group__joints.html#g058c33a3da1ff935a1125034f779dc4a" title="Set the joint anchor point.">dJointSetBallAnchor</a> (_id, x, y, z); }
<a name="l00342"></a>00342 <span class="keywordtype">void</span> getAnchor (dVector3 result)<span class="keyword"> const</span>
<a name="l00343"></a>00343 <span class="keyword"> </span>{ dJointGetBallAnchor (_id, result); }
<a name="l00344"></a>00344 <span class="keywordtype">void</span> getAnchor2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00345"></a>00345 <span class="keyword"> </span>{ dJointGetBallAnchor2 (_id, result); }
<a name="l00346"></a>00346 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00347"></a>00347 { <a class="code" href="group__joints.html#ge58f5e11c0829aa8615622a74dd11d85" title="Param setting for Ball joints.">dJointSetBallParam</a> (_id, parameter, value); }
<a name="l00348"></a>00348 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00349"></a>00349 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g20a27c479a75443552942059542f26ad" title="get joint parameter">dJointGetBallParam</a> (_id, parameter); }
<a name="l00350"></a>00350 } ;
<a name="l00351"></a>00351
<a name="l00352"></a>00352
<a name="l00353"></a>00353 <span class="keyword">class </span>dHingeJoint : <span class="keyword">public</span> dJoint {
<a name="l00354"></a>00354 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00355"></a>00355 dHingeJoint (<span class="keyword">const</span> dHingeJoint &);
<a name="l00356"></a>00356 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dHingeJoint &);
<a name="l00357"></a>00357
<a name="l00358"></a>00358 <span class="keyword">public</span>:
<a name="l00359"></a>00359 dHingeJoint() { }
<a name="l00360"></a>00360 dHingeJoint (dWorldID world, dJointGroupID group=0)
<a name="l00361"></a>00361 { _id = <a class="code" href="group__joints.html#g2f18d431d48c905abc9d72ce011c00bd" title="Create a new joint of the hinge type.">dJointCreateHinge</a> (world, group); }
<a name="l00362"></a>00362
<a name="l00363"></a>00363 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00364"></a>00364 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00365"></a>00365 _id = <a class="code" href="group__joints.html#g2f18d431d48c905abc9d72ce011c00bd" title="Create a new joint of the hinge type.">dJointCreateHinge</a> (world, group);
<a name="l00366"></a>00366 }
<a name="l00367"></a>00367
<a name="l00368"></a>00368 <span class="keywordtype">void</span> setAnchor (dReal x, dReal y, dReal z)
<a name="l00369"></a>00369 { <a class="code" href="group__joints.html#gc5727a125de0abbe2abd61af7a55da26" title="Set hinge anchor parameter.">dJointSetHingeAnchor</a> (_id, x, y, z); }
<a name="l00370"></a>00370 <span class="keywordtype">void</span> getAnchor (dVector3 result)<span class="keyword"> const</span>
<a name="l00371"></a>00371 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g1d1c4f9b10c550f6fec550f9cc80c7ab" title="Get the hinge anchor point, in world coordinates.">dJointGetHingeAnchor</a> (_id, result); }
<a name="l00372"></a>00372 <span class="keywordtype">void</span> getAnchor2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00373"></a>00373 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#gfdc1d9c7bd8824ec3e79cc5aa67ddfa1" title="Get the joint anchor point, in world coordinates.">dJointGetHingeAnchor2</a> (_id, result); }
<a name="l00374"></a>00374
<a name="l00375"></a>00375 <span class="keywordtype">void</span> setAxis (dReal x, dReal y, dReal z)
<a name="l00376"></a>00376 { <a class="code" href="group__joints.html#ga434229f033472ec7aa031a01c6cabed" title="Set hinge axis.">dJointSetHingeAxis</a> (_id, x, y, z); }
<a name="l00377"></a>00377 <span class="keywordtype">void</span> getAxis (dVector3 result)<span class="keyword"> const</span>
<a name="l00378"></a>00378 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g17b812897bc5faab33584cc5e3e4d3a4" title="get axis">dJointGetHingeAxis</a> (_id, result); }
<a name="l00379"></a>00379
<a name="l00380"></a>00380 dReal getAngle()<span class="keyword"> const</span>
<a name="l00381"></a>00381 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g7ca6bdfe2b919b6bc2a27ba6f0e069f0" title="Get the hinge angle.">dJointGetHingeAngle</a> (_id); }
<a name="l00382"></a>00382 dReal getAngleRate()<span class="keyword"> const</span>
<a name="l00383"></a>00383 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g0d92377b748eb468dc38252df12afc76" title="Get the hinge angle time derivative.">dJointGetHingeAngleRate</a> (_id); }
<a name="l00384"></a>00384
<a name="l00385"></a>00385 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00386"></a>00386 { <a class="code" href="group__joints.html#g6f9d34a01181e65639eb1f67da7a3e4c" title="set joint parameter">dJointSetHingeParam</a> (_id, parameter, value); }
<a name="l00387"></a>00387 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00388"></a>00388 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g43416613e72d1b16a32331a0ba3c7d70" title="get joint parameter">dJointGetHingeParam</a> (_id, parameter); }
<a name="l00389"></a>00389
<a name="l00390"></a>00390 <span class="keywordtype">void</span> addTorque (dReal torque)
<a name="l00391"></a>00391 { <a class="code" href="group__joints.html#ga1725abe170f80b0731321ed38785019" title="Applies the torque about the hinge axis.">dJointAddHingeTorque</a>(_id, torque); }
<a name="l00392"></a>00392 };
<a name="l00393"></a>00393
<a name="l00394"></a>00394
<a name="l00395"></a>00395 <span class="keyword">class </span>dSliderJoint : <span class="keyword">public</span> dJoint {
<a name="l00396"></a>00396 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00397"></a>00397 dSliderJoint (<span class="keyword">const</span> dSliderJoint &);
<a name="l00398"></a>00398 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dSliderJoint &);
<a name="l00399"></a>00399
<a name="l00400"></a>00400 <span class="keyword">public</span>:
<a name="l00401"></a>00401 dSliderJoint() { }
<a name="l00402"></a>00402 dSliderJoint (dWorldID world, dJointGroupID group=0)
<a name="l00403"></a>00403 { _id = <a class="code" href="group__joints.html#geccc4c67b2d409016685a6a9163be539" title="Create a new joint of the slider type.">dJointCreateSlider</a> (world, group); }
<a name="l00404"></a>00404
<a name="l00405"></a>00405 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00406"></a>00406 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00407"></a>00407 _id = <a class="code" href="group__joints.html#geccc4c67b2d409016685a6a9163be539" title="Create a new joint of the slider type.">dJointCreateSlider</a> (world, group);
<a name="l00408"></a>00408 }
<a name="l00409"></a>00409
<a name="l00410"></a>00410 <span class="keywordtype">void</span> setAxis (dReal x, dReal y, dReal z)
<a name="l00411"></a>00411 { <a class="code" href="group__joints.html#gb2f662b1190507551f49ffa29d276b61" title="set the joint axis">dJointSetSliderAxis</a> (_id, x, y, z); }
<a name="l00412"></a>00412 <span class="keywordtype">void</span> getAxis (dVector3 result)<span class="keyword"> const</span>
<a name="l00413"></a>00413 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g17e31e7a877446213c39d1431269788e" title="Get the slider axis.">dJointGetSliderAxis</a> (_id, result); }
<a name="l00414"></a>00414
<a name="l00415"></a>00415 dReal getPosition()<span class="keyword"> const</span>
<a name="l00416"></a>00416 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g7f35449914cbc4a86b845dcd85a617c0" title="Get the slider linear position (i.e. the slider&#39;s extension).">dJointGetSliderPosition</a> (_id); }
<a name="l00417"></a>00417 dReal getPositionRate()<span class="keyword"> const</span>
<a name="l00418"></a>00418 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g93378c9c2d0cd50c79cfb78ca881f8ec" title="Get the slider linear position&#39;s time derivative.">dJointGetSliderPositionRate</a> (_id); }
<a name="l00419"></a>00419
<a name="l00420"></a>00420 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00421"></a>00421 { <a class="code" href="group__joints.html#g648964f4ca4122309e71a9cc6c24c985" title="set joint parameter">dJointSetSliderParam</a> (_id, parameter, value); }
<a name="l00422"></a>00422 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00423"></a>00423 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gc76d8bb4bf8587af70ef5932025048fe" title="get joint parameter">dJointGetSliderParam</a> (_id, parameter); }
<a name="l00424"></a>00424
<a name="l00425"></a>00425 <span class="keywordtype">void</span> addForce (dReal force)
<a name="l00426"></a>00426 { <a class="code" href="group__joints.html#g8b0e018cc3df6ea5ddb42320913455e7" title="Applies the given force in the slider&#39;s direction.">dJointAddSliderForce</a>(_id, force); }
<a name="l00427"></a>00427 };
<a name="l00428"></a>00428
<a name="l00429"></a>00429
<a name="l00430"></a>00430 <span class="keyword">class </span>dUniversalJoint : <span class="keyword">public</span> dJoint {
<a name="l00431"></a>00431 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00432"></a>00432 dUniversalJoint (<span class="keyword">const</span> dUniversalJoint &);
<a name="l00433"></a>00433 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dUniversalJoint &);
<a name="l00434"></a>00434
<a name="l00435"></a>00435 <span class="keyword">public</span>:
<a name="l00436"></a>00436 dUniversalJoint() { }
<a name="l00437"></a>00437 dUniversalJoint (dWorldID world, dJointGroupID group=0)
<a name="l00438"></a>00438 { _id = <a class="code" href="group__joints.html#g1cb2e7668242313b5d24acb5d43e5c62" title="Create a new joint of the universal type.">dJointCreateUniversal</a> (world, group); }
<a name="l00439"></a>00439
<a name="l00440"></a>00440 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00441"></a>00441 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00442"></a>00442 _id = <a class="code" href="group__joints.html#g1cb2e7668242313b5d24acb5d43e5c62" title="Create a new joint of the universal type.">dJointCreateUniversal</a> (world, group);
<a name="l00443"></a>00443 }
<a name="l00444"></a>00444
<a name="l00445"></a>00445 <span class="keywordtype">void</span> setAnchor (dReal x, dReal y, dReal z)
<a name="l00446"></a>00446 { <a class="code" href="group__joints.html#gaf4657aed67f3cd7cce775215995c05d" title="set anchor">dJointSetUniversalAnchor</a> (_id, x, y, z); }
<a name="l00447"></a>00447 <span class="keywordtype">void</span> setAxis1 (dReal x, dReal y, dReal z)
<a name="l00448"></a>00448 { <a class="code" href="group__joints.html#ge0a831da9447ff65d76a0808502038e8" title="set axis">dJointSetUniversalAxis1</a> (_id, x, y, z); }
<a name="l00449"></a>00449 <span class="keywordtype">void</span> setAxis2 (dReal x, dReal y, dReal z)
<a name="l00450"></a>00450 { <a class="code" href="group__joints.html#gf3668eed7dc5aaf8fee19d7f87347343" title="set axis">dJointSetUniversalAxis2</a> (_id, x, y, z); }
<a name="l00451"></a>00451 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00452"></a>00452 { <a class="code" href="group__joints.html#g3c58284c43e997a028b06dc250064e32" title="set joint parameter">dJointSetUniversalParam</a> (_id, parameter, value); }
<a name="l00453"></a>00453
<a name="l00454"></a>00454 <span class="keywordtype">void</span> getAnchor (dVector3 result)<span class="keyword"> const</span>
<a name="l00455"></a>00455 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#ga768432c561cb76ba2490913f42d1aaf" title="Get the joint anchor point, in world coordinates.">dJointGetUniversalAnchor</a> (_id, result); }
<a name="l00456"></a>00456 <span class="keywordtype">void</span> getAnchor2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00457"></a>00457 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g00d5018903a90d75c324c4f870b0e7ea" title="Get the joint anchor point, in world coordinates.">dJointGetUniversalAnchor2</a> (_id, result); }
<a name="l00458"></a>00458 <span class="keywordtype">void</span> getAxis1 (dVector3 result)<span class="keyword"> const</span>
<a name="l00459"></a>00459 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#geaa8e546d93c304755a86ad3fa6d2abe" title="Get axis.">dJointGetUniversalAxis1</a> (_id, result); }
<a name="l00460"></a>00460 <span class="keywordtype">void</span> getAxis2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00461"></a>00461 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g13c01cbc9c5e918740bac0540f6473b3" title="Get axis.">dJointGetUniversalAxis2</a> (_id, result); }
<a name="l00462"></a>00462 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00463"></a>00463 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gf96e70e676058b7eb385f5810fec641a" title="get joint parameter">dJointGetUniversalParam</a> (_id, parameter); }
<a name="l00464"></a>00464 <span class="keywordtype">void</span> getAngles(dReal *angle1, dReal *angle2)<span class="keyword"> const</span>
<a name="l00465"></a>00465 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g3c0fafbd1ccd8e450c01012ce600f6ab" title="Get both angles at the same time.">dJointGetUniversalAngles</a> (_id, angle1, angle2); }
<a name="l00466"></a>00466
<a name="l00467"></a>00467 dReal getAngle1()<span class="keyword"> const</span>
<a name="l00468"></a>00468 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g3a08e2fed2e88eb0c964a33fb8c0c61f" title="Get angle.">dJointGetUniversalAngle1</a> (_id); }
<a name="l00469"></a>00469 dReal getAngle1Rate()<span class="keyword"> const</span>
<a name="l00470"></a>00470 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g1f8ff99b6c33d3da2004a8846112427c" title="Get time derivative of angle.">dJointGetUniversalAngle1Rate</a> (_id); }
<a name="l00471"></a>00471 dReal getAngle2()<span class="keyword"> const</span>
<a name="l00472"></a>00472 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g4026a7331d7956eef31e72e20e0c703b" title="Get angle.">dJointGetUniversalAngle2</a> (_id); }
<a name="l00473"></a>00473 dReal getAngle2Rate()<span class="keyword"> const</span>
<a name="l00474"></a>00474 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g94fb28ecb65cb0711b555558c22396cf" title="Get time derivative of angle.">dJointGetUniversalAngle2Rate</a> (_id); }
<a name="l00475"></a>00475
<a name="l00476"></a>00476 <span class="keywordtype">void</span> addTorques (dReal torque1, dReal torque2)
<a name="l00477"></a>00477 { <a class="code" href="group__joints.html#g36607569e2ee26f39d3d42cba2397898" title="Applies torque1 about the universal&#39;s axis 1, torque2 about the universal&#39;s...">dJointAddUniversalTorques</a>(_id, torque1, torque2); }
<a name="l00478"></a>00478 };
<a name="l00479"></a>00479
<a name="l00480"></a>00480
<a name="l00481"></a>00481 <span class="keyword">class </span>dHinge2Joint : <span class="keyword">public</span> dJoint {
<a name="l00482"></a>00482 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00483"></a>00483 dHinge2Joint (<span class="keyword">const</span> dHinge2Joint &);
<a name="l00484"></a>00484 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dHinge2Joint &);
<a name="l00485"></a>00485
<a name="l00486"></a>00486 <span class="keyword">public</span>:
<a name="l00487"></a>00487 dHinge2Joint() { }
<a name="l00488"></a>00488 dHinge2Joint (dWorldID world, dJointGroupID group=0)
<a name="l00489"></a>00489 { _id = <a class="code" href="group__joints.html#g6a6e32d35bdda9352d1be8d4df973f8f" title="Create a new joint of the hinge2 type.">dJointCreateHinge2</a> (world, group); }
<a name="l00490"></a>00490
<a name="l00491"></a>00491 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00492"></a>00492 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00493"></a>00493 _id = <a class="code" href="group__joints.html#g6a6e32d35bdda9352d1be8d4df973f8f" title="Create a new joint of the hinge2 type.">dJointCreateHinge2</a> (world, group);
<a name="l00494"></a>00494 }
<a name="l00495"></a>00495
<a name="l00496"></a>00496 <span class="keywordtype">void</span> setAnchor (dReal x, dReal y, dReal z)
<a name="l00497"></a>00497 { <a class="code" href="group__joints.html#gf839c13fa85aff0287a87986ff447d29" title="set anchor">dJointSetHinge2Anchor</a> (_id, x, y, z); }
<a name="l00498"></a>00498 <span class="keywordtype">void</span> setAxis1 (dReal x, dReal y, dReal z)
<a name="l00499"></a>00499 { <a class="code" href="group__joints.html#gcdf78fbb0f5b0a09b4d3ac2059b07002" title="set axis">dJointSetHinge2Axis1</a> (_id, x, y, z); }
<a name="l00500"></a>00500 <span class="keywordtype">void</span> setAxis2 (dReal x, dReal y, dReal z)
<a name="l00501"></a>00501 { <a class="code" href="group__joints.html#gdfef9f6365c87dacb95b4850a9e9f0ee" title="set axis">dJointSetHinge2Axis2</a> (_id, x, y, z); }
<a name="l00502"></a>00502
<a name="l00503"></a>00503 <span class="keywordtype">void</span> getAnchor (dVector3 result)<span class="keyword"> const</span>
<a name="l00504"></a>00504 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g879999d011f82c73acf94029132cc198" title="Get the joint anchor point, in world coordinates.">dJointGetHinge2Anchor</a> (_id, result); }
<a name="l00505"></a>00505 <span class="keywordtype">void</span> getAnchor2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00506"></a>00506 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#ga67cde755a0c9b699859ead5b5c81d26" title="Get the joint anchor point, in world coordinates. This returns the point on body...">dJointGetHinge2Anchor2</a> (_id, result); }
<a name="l00507"></a>00507 <span class="keywordtype">void</span> getAxis1 (dVector3 result)<span class="keyword"> const</span>
<a name="l00508"></a>00508 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g5d3e60c78ed85e8086dd60b13c3054f5" title="Get joint axis.">dJointGetHinge2Axis1</a> (_id, result); }
<a name="l00509"></a>00509 <span class="keywordtype">void</span> getAxis2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00510"></a>00510 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g9459009e9370ea1a1e4de10f60053c87" title="Get joint axis.">dJointGetHinge2Axis2</a> (_id, result); }
<a name="l00511"></a>00511
<a name="l00512"></a>00512 dReal getAngle1()<span class="keyword"> const</span>
<a name="l00513"></a>00513 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g430ed7cafe907e88929b28fdb17533c0" title="Get angle.">dJointGetHinge2Angle1</a> (_id); }
<a name="l00514"></a>00514 dReal getAngle1Rate()<span class="keyword"> const</span>
<a name="l00515"></a>00515 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g61881501e905ec1072aba05464fe44fb" title="Get time derivative of angle.">dJointGetHinge2Angle1Rate</a> (_id); }
<a name="l00516"></a>00516 dReal getAngle2Rate()<span class="keyword"> const</span>
<a name="l00517"></a>00517 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g028c47d8ff409f6856492d9eb0367c8a" title="Get time derivative of angle.">dJointGetHinge2Angle2Rate</a> (_id); }
<a name="l00518"></a>00518
<a name="l00519"></a>00519 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00520"></a>00520 { <a class="code" href="group__joints.html#g9a2d8d03776ccb22869667337457a7a9" title="set joint parameter">dJointSetHinge2Param</a> (_id, parameter, value); }
<a name="l00521"></a>00521 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00522"></a>00522 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g9fe8b60ba59aa9451e5758491e34045a" title="get joint parameter">dJointGetHinge2Param</a> (_id, parameter); }
<a name="l00523"></a>00523
<a name="l00524"></a>00524 <span class="keywordtype">void</span> addTorques(dReal torque1, dReal torque2)
<a name="l00525"></a>00525 { <a class="code" href="group__joints.html#ga5ba1541d092f28c93b1bdc3bfb1b69f" title="Applies torque1 about the hinge2&#39;s axis 1, torque2 about the hinge2&#39;s axis...">dJointAddHinge2Torques</a>(_id, torque1, torque2); }
<a name="l00526"></a>00526 };
<a name="l00527"></a>00527
<a name="l00528"></a>00528
<a name="l00529"></a>00529 <span class="keyword">class </span>dPRJoint : <span class="keyword">public</span> dJoint {
<a name="l00530"></a>00530 dPRJoint (<span class="keyword">const</span> dPRJoint &);
<a name="l00531"></a>00531 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dPRJoint &);
<a name="l00532"></a>00532
<a name="l00533"></a>00533 <span class="keyword">public</span>:
<a name="l00534"></a>00534 dPRJoint() { }
<a name="l00535"></a>00535 dPRJoint (dWorldID world, dJointGroupID group=0)
<a name="l00536"></a>00536 { _id = <a class="code" href="group__joints.html#gdc867f10ba9931d191244fa879e43cb2" title="Create a new joint of the PR (Prismatic and Rotoide) type.">dJointCreatePR</a> (world, group); }
<a name="l00537"></a>00537
<a name="l00538"></a>00538 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00539"></a>00539 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00540"></a>00540 _id = <a class="code" href="group__joints.html#gdc867f10ba9931d191244fa879e43cb2" title="Create a new joint of the PR (Prismatic and Rotoide) type.">dJointCreatePR</a> (world, group);
<a name="l00541"></a>00541 }
<a name="l00542"></a>00542
<a name="l00543"></a>00543 <span class="keywordtype">void</span> setAnchor (dReal x, dReal y, dReal z)
<a name="l00544"></a>00544 { <a class="code" href="group__joints.html#ge46251e2cea2d31521b1fb9b151f640f" title="set anchor">dJointSetPRAnchor</a> (_id, x, y, z); }
<a name="l00545"></a>00545 <span class="keywordtype">void</span> setAxis1 (dReal x, dReal y, dReal z)
<a name="l00546"></a>00546 { <a class="code" href="group__joints.html#ga2ae3ab1fa58ec22bd443476f786fa81" title="set the axis for the prismatic articulation">dJointSetPRAxis1</a> (_id, x, y, z); }
<a name="l00547"></a>00547 <span class="keywordtype">void</span> setAxis2 (dReal x, dReal y, dReal z)
<a name="l00548"></a>00548 { <a class="code" href="group__joints.html#gc8c61c6dd7b28a58a4c0eaf2e91ecbd5" title="set the axis for the rotoide articulation">dJointSetPRAxis2</a> (_id, x, y, z); }
<a name="l00549"></a>00549
<a name="l00550"></a>00550 <span class="keywordtype">void</span> getAnchor (dVector3 result)<span class="keyword"> const</span>
<a name="l00551"></a>00551 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g88b176c70948c3f96e5c9173904b04fe" title="Get the joint anchor point, in world coordinates.">dJointGetPRAnchor</a> (_id, result); }
<a name="l00552"></a>00552 <span class="keywordtype">void</span> getAxis1 (dVector3 result)<span class="keyword"> const</span>
<a name="l00553"></a>00553 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g826424aac5023739bb13426df672ab32" title="Get the prismatic axis.">dJointGetPRAxis1</a> (_id, result); }
<a name="l00554"></a>00554 <span class="keywordtype">void</span> getAxis2 (dVector3 result)<span class="keyword"> const</span>
<a name="l00555"></a>00555 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g5f175ed66c5df1119a251fad8a51059d" title="Get the Rotoide axis.">dJointGetPRAxis2</a> (_id, result); }
<a name="l00556"></a>00556
<a name="l00557"></a>00557 dReal getPosition()<span class="keyword"> const</span>
<a name="l00558"></a>00558 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gd8b95871e93525f44badcdaf8e521da7" title="Get the PR linear position (i.e. the prismatic&#39;s extension).">dJointGetPRPosition</a> (_id); }
<a name="l00559"></a>00559 dReal getPositionRate()<span class="keyword"> const</span>
<a name="l00560"></a>00560 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gc3a434069c8bf31ae5140e2bff3bbb26" title="Get the PR linear position&#39;s time derivative.">dJointGetPRPositionRate</a> (_id); }
<a name="l00561"></a>00561
<a name="l00562"></a>00562 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00563"></a>00563 { <a class="code" href="group__joints.html#gc08a28659605f17307d563f45db0824b" title="set joint parameter">dJointSetPRParam</a> (_id, parameter, value); }
<a name="l00564"></a>00564 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00565"></a>00565 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g968b868bd1598b24a3101a04320206c6" title="get joint parameter">dJointGetPRParam</a> (_id, parameter); }
<a name="l00566"></a>00566 };
<a name="l00567"></a>00567
<a name="l00568"></a>00568
<a name="l00569"></a>00569 <span class="keyword">class </span>dFixedJoint : <span class="keyword">public</span> dJoint {
<a name="l00570"></a>00570 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00571"></a>00571 dFixedJoint (<span class="keyword">const</span> dFixedJoint &);
<a name="l00572"></a>00572 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dFixedJoint &);
<a name="l00573"></a>00573
<a name="l00574"></a>00574 <span class="keyword">public</span>:
<a name="l00575"></a>00575 dFixedJoint() { }
<a name="l00576"></a>00576 dFixedJoint (dWorldID world, dJointGroupID group=0)
<a name="l00577"></a>00577 { _id = <a class="code" href="group__joints.html#ge568995d03077e1acb13882a627dcf32" title="Create a new joint of the fixed type.">dJointCreateFixed</a> (world, group); }
<a name="l00578"></a>00578
<a name="l00579"></a>00579 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00580"></a>00580 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00581"></a>00581 _id = <a class="code" href="group__joints.html#ge568995d03077e1acb13882a627dcf32" title="Create a new joint of the fixed type.">dJointCreateFixed</a> (world, group);
<a name="l00582"></a>00582 }
<a name="l00583"></a>00583
<a name="l00584"></a>00584 <span class="keywordtype">void</span> <span class="keyword">set</span>()
<a name="l00585"></a>00585 { <a class="code" href="group__joints.html#g8051a8232b4232f7b0d0fd57a3932072" title="Call this on the fixed joint after it has been attached to remember the current desired...">dJointSetFixed</a> (_id); }
<a name="l00586"></a>00586
<a name="l00587"></a>00587 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00588"></a>00588 { dJointSetFixedParam (_id, parameter, value); }
<a name="l00589"></a>00589
<a name="l00590"></a>00590 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00591"></a>00591 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#ge433a5eac5f8600d8e6325666c2e12c2" title="get joint parameter">dJointGetFixedParam</a> (_id, parameter); }
<a name="l00592"></a>00592 };
<a name="l00593"></a>00593
<a name="l00594"></a>00594
<a name="l00595"></a>00595 <span class="keyword">class </span>dContactJoint : <span class="keyword">public</span> dJoint {
<a name="l00596"></a>00596 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00597"></a>00597 dContactJoint (<span class="keyword">const</span> dContactJoint &);
<a name="l00598"></a>00598 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dContactJoint &);
<a name="l00599"></a>00599
<a name="l00600"></a>00600 <span class="keyword">public</span>:
<a name="l00601"></a>00601 dContactJoint() { }
<a name="l00602"></a>00602 dContactJoint (dWorldID world, dJointGroupID group, dContact *contact)
<a name="l00603"></a>00603 { _id = <a class="code" href="group__joints.html#gfa5e1543239ba44ecbdc178ebc7c3cc4" title="Create a new joint of the contact type.">dJointCreateContact</a> (world, group, contact); }
<a name="l00604"></a>00604
<a name="l00605"></a>00605 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group, dContact *contact) {
<a name="l00606"></a>00606 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00607"></a>00607 _id = <a class="code" href="group__joints.html#gfa5e1543239ba44ecbdc178ebc7c3cc4" title="Create a new joint of the contact type.">dJointCreateContact</a> (world, group, contact);
<a name="l00608"></a>00608 }
<a name="l00609"></a>00609 };
<a name="l00610"></a>00610
<a name="l00611"></a>00611
<a name="l00612"></a>00612 <span class="keyword">class </span>dNullJoint : <span class="keyword">public</span> dJoint {
<a name="l00613"></a>00613 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00614"></a>00614 dNullJoint (<span class="keyword">const</span> dNullJoint &);
<a name="l00615"></a>00615 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dNullJoint &);
<a name="l00616"></a>00616
<a name="l00617"></a>00617 <span class="keyword">public</span>:
<a name="l00618"></a>00618 dNullJoint() { }
<a name="l00619"></a>00619 dNullJoint (dWorldID world, dJointGroupID group=0)
<a name="l00620"></a>00620 { _id = dJointCreateNull (world, group); }
<a name="l00621"></a>00621
<a name="l00622"></a>00622 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00623"></a>00623 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00624"></a>00624 _id = dJointCreateNull (world, group);
<a name="l00625"></a>00625 }
<a name="l00626"></a>00626 };
<a name="l00627"></a>00627
<a name="l00628"></a>00628
<a name="l00629"></a>00629 <span class="keyword">class </span>dAMotorJoint : <span class="keyword">public</span> dJoint {
<a name="l00630"></a>00630 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00631"></a>00631 dAMotorJoint (<span class="keyword">const</span> dAMotorJoint &);
<a name="l00632"></a>00632 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dAMotorJoint &);
<a name="l00633"></a>00633
<a name="l00634"></a>00634 <span class="keyword">public</span>:
<a name="l00635"></a>00635 dAMotorJoint() { }
<a name="l00636"></a>00636 dAMotorJoint (dWorldID world, dJointGroupID group=0)
<a name="l00637"></a>00637 { _id = <a class="code" href="group__joints.html#gf23195ce77e12031393e591abd0e28e6" title="Create a new joint of the A-motor type.">dJointCreateAMotor</a> (world, group); }
<a name="l00638"></a>00638
<a name="l00639"></a>00639 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00640"></a>00640 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00641"></a>00641 _id = <a class="code" href="group__joints.html#gf23195ce77e12031393e591abd0e28e6" title="Create a new joint of the A-motor type.">dJointCreateAMotor</a> (world, group);
<a name="l00642"></a>00642 }
<a name="l00643"></a>00643
<a name="l00644"></a>00644 <span class="keywordtype">void</span> setMode (<span class="keywordtype">int</span> mode)
<a name="l00645"></a>00645 { <a class="code" href="group__joints.html#gb0a3a8527810717c62a2c68dc4dfa822" title="set mode">dJointSetAMotorMode</a> (_id, mode); }
<a name="l00646"></a>00646 <span class="keywordtype">int</span> getMode()<span class="keyword"> const</span>
<a name="l00647"></a>00647 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gf2430c2062414bc28660bdc06a0d72d5" title="Get the angular motor mode.">dJointGetAMotorMode</a> (_id); }
<a name="l00648"></a>00648
<a name="l00649"></a>00649 <span class="keywordtype">void</span> setNumAxes (<span class="keywordtype">int</span> num)
<a name="l00650"></a>00650 { <a class="code" href="group__joints.html#g1406f976045a1b7edffbb46bf626d04f" title="set the nr of axes">dJointSetAMotorNumAxes</a> (_id, num); }
<a name="l00651"></a>00651 <span class="keywordtype">int</span> getNumAxes()<span class="keyword"> const</span>
<a name="l00652"></a>00652 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g35f0392af69ece0d0c3ef7ed88b532bf" title="Get the number of angular axes that will be controlled by the AMotor.">dJointGetAMotorNumAxes</a> (_id); }
<a name="l00653"></a>00653
<a name="l00654"></a>00654 <span class="keywordtype">void</span> setAxis (<span class="keywordtype">int</span> anum, <span class="keywordtype">int</span> rel, dReal x, dReal y, dReal z)
<a name="l00655"></a>00655 { <a class="code" href="group__joints.html#gbef7d92227b62e04b60eb9df02359603" title="set axis">dJointSetAMotorAxis</a> (_id, anum, rel, x, y, z); }
<a name="l00656"></a>00656 <span class="keywordtype">void</span> getAxis (<span class="keywordtype">int</span> anum, dVector3 result)<span class="keyword"> const</span>
<a name="l00657"></a>00657 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#gef1af77cc19d81b24ad00025f3c9d5ec" title="Get the AMotor axes.">dJointGetAMotorAxis</a> (_id, anum, result); }
<a name="l00658"></a>00658 <span class="keywordtype">int</span> getAxisRel (<span class="keywordtype">int</span> anum)<span class="keyword"> const</span>
<a name="l00659"></a>00659 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g1887538374f044e22f9742650d14ae69" title="Get axis.">dJointGetAMotorAxisRel</a> (_id, anum); }
<a name="l00660"></a>00660
<a name="l00661"></a>00661 <span class="keywordtype">void</span> setAngle (<span class="keywordtype">int</span> anum, dReal angle)
<a name="l00662"></a>00662 { <a class="code" href="group__joints.html#g17b2089e6512e22d71340befb40100d2" title="Tell the AMotor what the current angle is along axis anum.">dJointSetAMotorAngle</a> (_id, anum, angle); }
<a name="l00663"></a>00663 dReal getAngle (<span class="keywordtype">int</span> anum)<span class="keyword"> const</span>
<a name="l00664"></a>00664 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g3634444b00ac33a5f34a7af4fffda8b2" title="Get the current angle for axis.">dJointGetAMotorAngle</a> (_id, anum); }
<a name="l00665"></a>00665 dReal getAngleRate (<span class="keywordtype">int</span> anum)
<a name="l00666"></a>00666 { <span class="keywordflow">return</span> <a class="code" href="group__joints.html#ga65abc36177390330037299b689b70c7" title="Get the current angle rate for axis anum.">dJointGetAMotorAngleRate</a> (_id,anum); }
<a name="l00667"></a>00667
<a name="l00668"></a>00668 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00669"></a>00669 { <a class="code" href="group__joints.html#gac3f00196ee0cdb772e00dc259ef639a" title="set joint parameter">dJointSetAMotorParam</a> (_id, parameter, value); }
<a name="l00670"></a>00670 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00671"></a>00671 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gfc4cd1046089baa4309d30ae7832d289" title="get joint parameter">dJointGetAMotorParam</a> (_id, parameter); }
<a name="l00672"></a>00672
<a name="l00673"></a>00673 <span class="keywordtype">void</span> addTorques(dReal torque1, dReal torque2, dReal torque3)
<a name="l00674"></a>00674 { <a class="code" href="group__joints.html#g69d13d54516716020d2adb841699b77b" title="Applies torque0 about the AMotor&#39;s axis 0, torque1 about the AMotor&#39;s axis...">dJointAddAMotorTorques</a>(_id, torque1, torque2, torque3); }
<a name="l00675"></a>00675 };
<a name="l00676"></a>00676
<a name="l00677"></a>00677
<a name="l00678"></a>00678 <span class="keyword">class </span>dLMotorJoint : <span class="keyword">public</span> dJoint {
<a name="l00679"></a>00679 <span class="comment">// intentionally undefined, don't use these</span>
<a name="l00680"></a>00680 dLMotorJoint (<span class="keyword">const</span> dLMotorJoint &);
<a name="l00681"></a>00681 <span class="keywordtype">void</span> operator = (<span class="keyword">const</span> dLMotorJoint &);
<a name="l00682"></a>00682
<a name="l00683"></a>00683 <span class="keyword">public</span>:
<a name="l00684"></a>00684 dLMotorJoint() { }
<a name="l00685"></a>00685 dLMotorJoint (dWorldID world, dJointGroupID group=0)
<a name="l00686"></a>00686 { _id = <a class="code" href="group__joints.html#g21c8c99615269c5d9d3c57c674f6fd56" title="Create a new joint of the L-motor type.">dJointCreateLMotor</a> (world, group); }
<a name="l00687"></a>00687
<a name="l00688"></a>00688 <span class="keywordtype">void</span> create (dWorldID world, dJointGroupID group=0) {
<a name="l00689"></a>00689 <span class="keywordflow">if</span> (_id) <a class="code" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a" title="Destroy a joint.">dJointDestroy</a> (_id);
<a name="l00690"></a>00690 _id = <a class="code" href="group__joints.html#g21c8c99615269c5d9d3c57c674f6fd56" title="Create a new joint of the L-motor type.">dJointCreateLMotor</a> (world, group);
<a name="l00691"></a>00691 }
<a name="l00692"></a>00692
<a name="l00693"></a>00693 <span class="keywordtype">void</span> setNumAxes (<span class="keywordtype">int</span> num)
<a name="l00694"></a>00694 { <a class="code" href="group__joints.html#gcbfb4014567d69010aba3024d9b7bccd" title="Set the number of axes that will be controlled by the LMotor.">dJointSetLMotorNumAxes</a> (_id, num); }
<a name="l00695"></a>00695 <span class="keywordtype">int</span> getNumAxes()<span class="keyword"> const</span>
<a name="l00696"></a>00696 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#g6d7557b5e94e0ee37561cadc5bf85cb7" title="Get nr of axes.">dJointGetLMotorNumAxes</a> (_id); }
<a name="l00697"></a>00697
<a name="l00698"></a>00698 <span class="keywordtype">void</span> setAxis (<span class="keywordtype">int</span> anum, <span class="keywordtype">int</span> rel, dReal x, dReal y, dReal z)
<a name="l00699"></a>00699 { <a class="code" href="group__joints.html#g080b7739f5b2b37a798742cee0ef38a4" title="Set the AMotor axes.">dJointSetLMotorAxis</a> (_id, anum, rel, x, y, z); }
<a name="l00700"></a>00700 <span class="keywordtype">void</span> getAxis (<span class="keywordtype">int</span> anum, dVector3 result)<span class="keyword"> const</span>
<a name="l00701"></a>00701 <span class="keyword"> </span>{ <a class="code" href="group__joints.html#g4ef7e0ca633583e82d90679c8eb6d5c3" title="Get axis.">dJointGetLMotorAxis</a> (_id, anum, result); }
<a name="l00702"></a>00702
<a name="l00703"></a>00703 <span class="keywordtype">void</span> setParam (<span class="keywordtype">int</span> parameter, dReal value)
<a name="l00704"></a>00704 { <a class="code" href="group__joints.html#g791bfa6e65d0c3dce99ca0bcd3beb8d6" title="set joint parameter">dJointSetLMotorParam</a> (_id, parameter, value); }
<a name="l00705"></a>00705 dReal getParam (<span class="keywordtype">int</span> parameter)<span class="keyword"> const</span>
<a name="l00706"></a>00706 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="group__joints.html#gcbc48fd61857e3843923166abf81a7a0" title="get joint parameter">dJointGetLMotorParam</a> (_id, parameter); }
<a name="l00707"></a>00707 };
<a name="l00708"></a>00708
<a name="l00709"></a>00709
<a name="l00710"></a>00710
<a name="l00711"></a>00711 <span class="preprocessor">#endif</span>
<a name="l00712"></a>00712 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Oct 12 08:36:51 2007 for Open Dynamics Engine by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>
|