Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wisp
GitHub Repository: wisp/impinj-reader-app
Path: blob/master/Resources/taoframework-2.1.0/bin/Tao.Ode.xml
178 views
1
<?xml version="1.0"?>
2
<doc>
3
<assembly>
4
<name>Tao.Ode</name>
5
</assembly>
6
<members>
7
<member name="T:Tao.Ode.Ode">
8
<summary>
9
Open Dynamics Engine (ODE - http://ode.org) bindings for .NET
10
ODE Version: 0.9
11
</summary>
12
</member>
13
<member name="F:Tao.Ode.Ode.ODE_NATIVE_LIBRARY">
14
<summary>
15
Specifies the ODE native library used in the bindings
16
</summary>
17
<remarks>
18
The Windows dll is specified here universally - note that
19
under Mono the non-windows native library can be mapped using
20
the ".config" file mechanism. Kudos to the Mono team for this
21
simple yet elegant solution.
22
</remarks>
23
</member>
24
<member name="F:Tao.Ode.Ode.CALLING_CONVENTION">
25
<summary>
26
Specifies the calling convention used for the binding.
27
</summary>
28
<remarks>
29
Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>
30
for the bindings.
31
</remarks>
32
</member>
33
<member name="F:Tao.Ode.Ode.dInfinity">
34
<summary>
35
Infinity.
36
37
The maximum value of the current data type for dReal.
38
39
</summary>
40
<remarks>
41
dReal can be System.Single or System.Double, based on the
42
multiple precision levels possible with the ODE library.
43
</remarks>
44
</member>
45
<member name="F:Tao.Ode.Ode.dMaxUserClasses">
46
<summary>the maximum number of user classes that are supported</summary>
47
</member>
48
<member name="M:Tao.Ode.Ode.dWorldCreate">
49
<summary>
50
Create a new, empty world and return its ID number.
51
</summary>
52
<remarks>
53
The world object is a container for rigid bodies and joints.
54
Objects in different worlds can not interact, for example rigid bodies from two different worlds can not collide.
55
All the objects in a world exist at the same point in time, thus one reason to use separate worlds is to simulate
56
systems at different rates.
57
58
Most applications will only need one world.
59
</remarks>
60
<returns>A dWorldID</returns>
61
</member>
62
<member name="M:Tao.Ode.Ode.dInitODE">
63
<summary>
64
65
</summary>
66
</member>
67
<member name="M:Tao.Ode.Ode.dWorldDestroy(System.IntPtr)">
68
<summary>
69
Destroy a world and everything in it.
70
This includes all bodies, and all joints that are not part of a joint group.
71
Joints that are part of a joint group will be deactivated, and can be destroyed by calling, for example,
72
dJointGroupEmpty.
73
</summary>
74
<param name="world">A dWorldID</param>
75
</member>
76
<member name="M:Tao.Ode.Ode.dWorldSetGravity(System.IntPtr,System.Single,System.Single,System.Single)">
77
<summary>
78
Set the world's global gravity vector.
79
The units are m/s/s (meters/second/second), so Earth's gravity vector would
80
be (0,0,-9.81), assuming that +z is up.
81
The default is no gravity, i.e. (0,0,0).
82
</summary>
83
<param name="world">the world to set</param>
84
<param name="x">x component of the gravity vector</param>
85
<param name="y">y component of the gravity vector</param>
86
<param name="z">z component of the gravity vector</param>
87
</member>
88
<member name="M:Tao.Ode.Ode.dWorldGetGravity(System.IntPtr,Tao.Ode.Ode.dVector3@)">
89
<summary>
90
Get the world's global gravity vector.
91
The units are m/s/s (meter/second/second).
92
</summary>
93
<param name="world">the world to query</param>
94
<param name="gravity">A dVector3 containing the world's gravity vector</param>
95
</member>
96
<member name="M:Tao.Ode.Ode.dWorldGetGravity(System.IntPtr,System.Single@)">
97
<summary>
98
99
</summary>
100
<param name="world"></param>
101
<param name="X"></param>
102
</member>
103
<member name="M:Tao.Ode.Ode.dWorldSetERP(System.IntPtr,System.Single)">
104
<summary>
105
Set the global ERP (Error Reduction Parameter) value, which controls how much error
106
correction is performed in each time step.
107
Typical values are in the range 0.1--0.8. The default is 0.2.
108
</summary>
109
<param name="world">the world to set</param>
110
<param name="erp">the global ERP value in the range 0.1-0.8 (default 0.2)</param>
111
</member>
112
<member name="M:Tao.Ode.Ode.dWorldGetERP(System.IntPtr)">
113
<summary>
114
Get the global ERP value, which controls how much error correction is performed in each time step.
115
Typical values are in the range 0.1--0.8. The default is 0.2.
116
</summary>
117
<returns>the ERP (Error Reduction Parameter) for the world. Range 0.1-0.8</returns>
118
<param name="world">the world to query</param>
119
</member>
120
<member name="M:Tao.Ode.Ode.dWorldSetCFM(System.IntPtr,System.Single)">
121
<summary>
122
Set the global CFM (constraint force mixing) value.
123
Typical values are in the range 10^-9 -- 1.
124
The default is 10^-5 if single precision is being used, or 10^-10 if double precision is being used.
125
</summary>
126
<param name="world">the world to set</param>
127
<param name="cfm">the global CFM value to set. Range 10^-9 to 1</param>
128
</member>
129
<member name="M:Tao.Ode.Ode.dWorldGetCFM(System.IntPtr)">
130
<summary>
131
Get the global CFM (constraint force mixing) value.
132
Typical values are in the range 10^-9 -- 1.
133
The default is 10-5 if single precision is being used, or 10^-10 if double precision is being used.
134
</summary>
135
<returns>the current CFM value for the world in the range 10^-9 to 1</returns>
136
<param name="world">the world to query</param>
137
</member>
138
<member name="M:Tao.Ode.Ode.dWorldImpulseToForce(System.IntPtr,System.Single,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
139
<summary>
140
Convert linear/angular impulse to a rigid body to a force/torque vector.
141
142
If you want to apply a linear or angular impulse to a rigid body, instead of a force or a torque,
143
then you can use this function to convert the desired impulse into a force/torque vector before
144
calling the dBodyAdd... function.
145
146
This function is given the desired impulse as (ix,iy,iz) and puts the force vector in force.
147
148
The current algorithm simply scales the impulse by 1/stepsize, where stepsize is the step size for
149
the next step that will be taken.
150
</summary>
151
<remarks>
152
This function is given a dWorldID because, in the future, the force computation may depend on integrator
153
parameters that are set as properties of the world.
154
</remarks>
155
<param name="world">the id of the world</param>
156
<param name="stepsize">stepsize for the next step to be taken</param>
157
<param name="ix">x component of the impulse</param>
158
<param name="iy">y component of the impulse</param>
159
<param name="iz">z component of the impulse</param>
160
<param name="force">A dVector3 containing the resulting force vector</param>
161
</member>
162
<member name="M:Tao.Ode.Ode.dWorldImpulseToForce(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single@)">
163
<summary>
164
165
</summary>
166
<param name="world"></param>
167
<param name="stepsize"></param>
168
<param name="ix"></param>
169
<param name="iy"></param>
170
<param name="iz"></param>
171
<param name="forceX"></param>
172
</member>
173
<member name="M:Tao.Ode.Ode.dWorldStep(System.IntPtr,System.Single)">
174
<summary>
175
Step the world.
176
This uses a "big matrix" method that takes time on the order of m^3 and memory on the order of m^2,
177
where m is the total number of constraint rows.
178
179
For large systems this will use a lot of memory and can be very slow, but this is currently the
180
most accurate method.
181
</summary>
182
<param name="world">the world to step</param>
183
<param name="stepsize">the stepsize</param>
184
</member>
185
<member name="M:Tao.Ode.Ode.dWorldQuickStep(System.IntPtr,System.Single)">
186
<summary>
187
Step the world.
188
This uses an iterative method that takes time on the order of m*N and memory on the order of m, where
189
m is the total number of constraint rows and N is the number of iterations.
190
191
For large systems this is a lot faster than dWorldStep, but it is less accurate.
192
</summary>
193
<remarks>
194
QuickStep is great for stacks of objects especially when the auto-disable feature is used as well.
195
However, it has poor accuracy for near-singular systems. Near-singular systems can occur when using
196
high-friction contacts, motors, or certain articulated structures.
197
For example, a robot with multiple legs sitting on the ground may be near-singular.
198
199
There are ways to help overcome QuickStep's inaccuracy problems:
200
- Increase CFM.
201
- Reduce the number of contacts in your system (e.g. use the minimum number of contacts for
202
the feet of a robot or creature).
203
- Don't use excessive friction in the contacts.
204
- Use contact slip if appropriate
205
- Avoid kinematic loops (however, kinematic loops are inevitable in legged creatures).
206
- Don't use excessive motor strength.
207
- Use force-based motors instead of velocity-based motors.
208
209
Increasing the number of QuickStep iterations may help a little bit, but it is not going to help much
210
if your system is really near singular.
211
</remarks>
212
<param name="world">the world to step</param>
213
<param name="stepsize">the stepsize</param>
214
</member>
215
<member name="M:Tao.Ode.Ode.dWorldSetQuickStepNumIterations(System.IntPtr,System.Int32)">
216
<summary>
217
Set the number of iterations that the QuickStep method performs per step.
218
219
More iterations will give a more accurate solution, but will take longer to compute.
220
221
The default is 20 iterations.
222
</summary>
223
<param name="world">the world to step</param>
224
<param name="num">the iterations per step (default 20)</param>
225
</member>
226
<member name="M:Tao.Ode.Ode.dWorldGetQuickStepNumIterations(System.IntPtr)">
227
<summary>
228
Get the number of iterations that the QuickStep method performs per step.
229
230
The default is 20 iterations.
231
</summary>
232
<returns>the iterations per step (default 20)</returns>
233
<param name="world">the world to query</param>
234
</member>
235
<member name="M:Tao.Ode.Ode.dWorldSetQuickStepW(System.IntPtr,System.Single)">
236
<summary>
237
Set the QuickStep SOR over-relaxation parameter
238
</summary>
239
<param name="world">the world to set</param>
240
<param name="over_relaxation">over_relaxation value to use by SOR</param>
241
</member>
242
<member name="M:Tao.Ode.Ode.dWorldGetQuickStepW(System.IntPtr)">
243
<summary>
244
Get the QuickStep SOR over-relaxation parameter
245
</summary>
246
<returns>the world's over relaxation value</returns>
247
<param name="world">the world to query</param>
248
</member>
249
<member name="M:Tao.Ode.Ode.dWorldSetContactMaxCorrectingVel(System.IntPtr,System.Single)">
250
<summary>
251
Set maximum correcting velocity that contacts are allowed to generate.
252
253
The default value is infinity (i.e. no limit).
254
255
Reducing this value can help prevent "popping" of deeply embedded objects.
256
</summary>
257
<param name="world">the world to set</param>
258
<param name="vel">the maximum correcting velocity contacts can generate (default is infinity - no limit)</param>
259
</member>
260
<member name="M:Tao.Ode.Ode.dWorldGetContactMaxCorrectingVel(System.IntPtr)">
261
<summary>
262
Get the maximum correcting velocity that contacts are allowed to generate.
263
264
The default value is infinity (i.e. no limit).
265
</summary>
266
<returns>current maximum correcting velocity (default is infinity - no limit)</returns>
267
<param name="world">the world to query</param>
268
</member>
269
<member name="M:Tao.Ode.Ode.dWorldSetContactSurfaceLayer(System.IntPtr,System.Single)">
270
<summary>
271
Set the depth of the surface layer around all geometry objects.
272
273
Contacts are allowed to sink into the surface layer up to the given depth before coming to rest.
274
275
The default value is zero.
276
277
Increasing this to some small value (e.g. 0.001) can help prevent jittering problems due to contacts
278
being repeatedly made and broken.
279
</summary>
280
<param name="world">the world to set</param>
281
<param name="depth">the contact surface layer depth (default 0)</param>
282
</member>
283
<member name="M:Tao.Ode.Ode.dWorldGetContactSurfaceLayer(System.IntPtr)">
284
<summary>
285
Get the depth of the surface layer around all geometry objects.
286
287
The default value is zero.
288
</summary>
289
<returns>the world's contact surface layer (default 0)</returns>
290
<param name="world">the world to query</param>
291
</member>
292
<member name="M:Tao.Ode.Ode.dWorldStepFast1(System.IntPtr,System.Single,System.Int32)">
293
<summary>
294
Step the world by stepsize seconds using the StepFast1 algorithm.
295
The number of iterations to perform is given by maxiterations.
296
297
NOTE: The StepFast algorithm has been superseded by the QuickStep algorithm: see the dWorldQuickStep function.
298
</summary>
299
<param name="world">the world to set</param>
300
<param name="stepsize">the stepsize (in seconds)</param>
301
<param name="maxiterations">maximum iterations to perform</param>
302
</member>
303
<member name="M:Tao.Ode.Ode.dWorldSetAutoEnableDepthSF1(System.IntPtr,System.Int32)">
304
<summary>
305
Set the AutoEnableDepth parameter used by the StepFast1 algorithm.
306
</summary>
307
<param name="world">the world to set</param>
308
<param name="autoEnableDepth">the autoenable depth</param>
309
</member>
310
<member name="M:Tao.Ode.Ode.dWorldGetAutoEnableDepthSF1(System.IntPtr)">
311
<summary>
312
Get the AutoEnableDepth parameter used by the StepFast1 algorithm.
313
</summary>
314
<returns>the autoenable depth</returns>
315
<param name="world">the world to query</param>
316
</member>
317
<member name="M:Tao.Ode.Ode.dWorldSetAutoDisableLinearThreshold(System.IntPtr,System.Single)">
318
<summary>
319
Set the default auto-disable linear threshold for newly created bodies.
320
321
The default parameter is: AutoDisableLinearThreshold = 0.01
322
</summary>
323
<param name="world">A dWorldID</param>
324
<param name="linear_threshold">A dReal</param>
325
</member>
326
<member name="M:Tao.Ode.Ode.dWorldGetAutoDisableLinearThreshold(System.IntPtr)">
327
<summary>
328
Get the current auto-disable linear threshold for newly created bodies.
329
</summary>
330
<returns>A dReal</returns>
331
<param name="world">A dWorldID</param>
332
</member>
333
<member name="M:Tao.Ode.Ode.dWorldSetAutoDisableAngularThreshold(System.IntPtr,System.Single)">
334
<summary>
335
Set the default auto-disable angular threshold for newly created bodies.
336
337
The default parameter is: AutoDisableAngularThreshold = 0.01
338
</summary>
339
<param name="world">A dWorldID</param>
340
<param name="angular_threshold">A dReal</param>
341
</member>
342
<member name="M:Tao.Ode.Ode.dWorldGetAutoDisableAngularThreshold(System.IntPtr)">
343
<summary>
344
Get the current auto-disable angular threshold for newly created objects
345
</summary>
346
<returns>A dReal</returns>
347
<param name="world">A dWorldID</param>
348
</member>
349
<member name="M:Tao.Ode.Ode.dWorldSetAutoDisableSteps(System.IntPtr,System.Int32)">
350
<summary>
351
Set the default auto-disable steps for newly created bodies.
352
353
The default parameter is: AutoDisableSteps = 10
354
</summary>
355
<param name="world">A dWorldID</param>
356
<param name="steps">the new auto-disable step setting</param>
357
</member>
358
<member name="M:Tao.Ode.Ode.dWorldGetAutoDisableSteps(System.IntPtr)">
359
<summary>
360
Get the current auto-disable steps for newly created bodies
361
</summary>
362
<returns>number of current auto-disable steps</returns>
363
<param name="world">the world to query</param>
364
</member>
365
<member name="M:Tao.Ode.Ode.dWorldSetAutoDisableTime(System.IntPtr,System.Single)">
366
<summary>
367
Set the default auto-disable time for newly created bodies.
368
369
The default parameter is: AutoDisableTime = 0
370
</summary>
371
<param name="world">A dWorldID</param>
372
<param name="time">A dReal</param>
373
</member>
374
<member name="M:Tao.Ode.Ode.dWorldGetAutoDisableTime(System.IntPtr)">
375
<summary>
376
Get the current auto-disable time for newly created bodies.
377
</summary>
378
<returns>A dReal</returns>
379
<param name="world">A dWorldID</param>
380
</member>
381
<member name="M:Tao.Ode.Ode.dWorldSetAutoDisableFlag(System.IntPtr,System.Int32)">
382
<summary>
383
Set the default auto-disable flag for newly created bodies.
384
385
The default parameter is: AutoDisableFlag = disabled
386
</summary>
387
<param name="world">A dWorldID</param>
388
<param name="do_auto_disable">An int</param>
389
</member>
390
<member name="M:Tao.Ode.Ode.dWorldGetAutoDisableFlag(System.IntPtr)">
391
<summary>
392
Get the current auto-disable flag for newly created bodies.
393
</summary>
394
<returns>An int</returns>
395
<param name="world">A dWorldID</param>
396
</member>
397
<member name="M:Tao.Ode.Ode.dBodyCreate(System.IntPtr)">
398
<summary>
399
Create a body in the given world with default mass parameters at position (0,0,0).
400
Return its ID (really a handle to the body).
401
</summary>
402
<returns>A dBodyID</returns>
403
<param name="world">A dWorldID</param>
404
</member>
405
<member name="M:Tao.Ode.Ode.dBodyDestroy(System.IntPtr)">
406
<summary>
407
Destroy a body.
408
409
All joints that are attached to this body will be put into limbo (i.e. unattached and
410
not affecting the simulation, but they will NOT be deleted)
411
</summary>
412
<param name="body">A dBodyID</param>
413
</member>
414
<member name="M:Tao.Ode.Ode.dBodySetPosition(System.IntPtr,System.Single,System.Single,System.Single)">
415
<summary>
416
Set the position of the body.
417
418
After setting a group of bodies, the outcome of the simulation is undefined if the new configuration
419
is inconsistent with the joints/constraints that are present.
420
</summary>
421
<param name="body">A dBodyID</param>
422
<param name="x">A dReal</param>
423
<param name="y">A dReal</param>
424
<param name="z">A dReal</param>
425
</member>
426
<member name="M:Tao.Ode.Ode.dBodySetRotation(System.IntPtr,System.Single[])">
427
<summary>
428
Set the rotation of the body.
429
430
After setting a group of bodies, the outcome of the simulation is undefined if the new configuration
431
is inconsistent with the joints/constraints that are present.
432
</summary>
433
<param name="body">the body to set</param>
434
<param name="R">An array of 12 elements containing the new 3x4 rotation matrix</param>
435
</member>
436
<member name="M:Tao.Ode.Ode.dBodySetRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3)">
437
<summary>
438
Set the rotation of the body.
439
440
After setting a group of bodies, the outcome of the simulation is undefined if the new configuration
441
is inconsistent with the joints/constraints that are present.
442
</summary>
443
<remarks>
444
For some reason the dMatrix3 does not marshall correctly, so this function
445
maintains compatibility with the ODE api by converting the supplied dMatrix3 to
446
and array and passing that to ODE.
447
</remarks>
448
<param name="body">the body to set</param>
449
<param name="R">A dMatrix3 containing the new rotation matrix</param>
450
</member>
451
<member name="M:Tao.Ode.Ode.dBodySetQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion@)">
452
<summary>
453
Set the orientation on of the body.
454
455
Orientation is represented by a quaternion (qs,qx,qy,qz)
456
457
After setting a group of bodies, the outcome of the simulation is undefined if the new configuration
458
is inconsistent with the joints/constraints that are present.
459
</summary>
460
<param name="body">A dBodyID</param>
461
<param name="q">A dQuaternion</param>
462
</member>
463
<member name="M:Tao.Ode.Ode.dBodySetLinearVel(System.IntPtr,System.Single,System.Single,System.Single)">
464
<summary>
465
Set the linear velocity of the body.
466
467
After setting a group of bodies, the outcome of the simulation is undefined if the new configuration
468
is inconsistent with the joints/constraints that are present.
469
</summary>
470
<param name="body">A dBodyID</param>
471
<param name="x">A dReal</param>
472
<param name="y">A dReal</param>
473
<param name="z">A dReal</param>
474
</member>
475
<member name="M:Tao.Ode.Ode.dBodySetAngularVel(System.IntPtr,System.Single,System.Single,System.Single)">
476
<summary>
477
Set the angular velocity of the body.
478
479
After setting a group of bodies, the outcome of the simulation is undefined if the new configuration
480
is inconsistent with the joints/constraints that are present.
481
</summary>
482
<param name="body">A dBodyID</param>
483
<param name="x">A dReal</param>
484
<param name="y">A dReal</param>
485
<param name="z">A dReal</param>
486
</member>
487
<member name="M:Tao.Ode.Ode.dBodyGetPosition(System.IntPtr)">
488
<summary>
489
Get the position of the body
490
491
The vector is valid until any changes are made to the rigid body system structure.
492
</summary>
493
<returns>A dVector3</returns>
494
<param name="body">A dBodyID</param>
495
</member>
496
<member name="M:Tao.Ode.Ode.dBodyGetRotation(System.IntPtr)">
497
<summary>
498
Get the rotation of the body.
499
500
The returned value is a 4x3 rotation matrix.
501
The matrix is valid until any changes are made to the rigid body system structure.
502
</summary>
503
<returns>A dMatrix3</returns>
504
<param name="body">A dBodyID</param>
505
</member>
506
<member name="M:Tao.Ode.Ode.dBodyGetQuaternion(System.IntPtr)">
507
<summary>
508
Get the orientation of a body.
509
510
Orientation is represented by a quaternion (qs,qx,qy,qz)
511
</summary>
512
<returns>A dQuaternion</returns>
513
<param name="body">A dBodyID</param>
514
</member>
515
<member name="M:Tao.Ode.Ode.dBodyGetLinearVel(System.IntPtr)">
516
<summary>
517
Get the linear velocity of a body
518
519
The vector is valid until any changes are made to the rigid body system structure.
520
</summary>
521
<returns>A dVector3</returns>
522
<param name="body">A dBodyID</param>
523
</member>
524
<member name="M:Tao.Ode.Ode.dBodyGetAngularVel(System.IntPtr)">
525
<summary>
526
Get the angular velocity of a body
527
528
The vector is valid until any changes are made to the rigid body system structure.
529
</summary>
530
<returns>A dVector3</returns>
531
<param name="body">A dBodyID</param>
532
</member>
533
<member name="M:Tao.Ode.Ode.dBodySetMass(System.IntPtr,Tao.Ode.Ode.dMass@)">
534
<summary>
535
Set the mass of the body (see the mass functions)
536
</summary>
537
<param name="body">A dBodyID</param>
538
<param name="mass">A dMass</param>
539
</member>
540
<member name="M:Tao.Ode.Ode.dBodyGetMass(System.IntPtr,Tao.Ode.Ode.dMass@)">
541
<summary>
542
Get the mass of the body (see the mass functions)
543
</summary>
544
<param name="body">A dBodyID</param>
545
<param name="mass">A dMass</param>
546
</member>
547
<member name="M:Tao.Ode.Ode.dBodyAddForce(System.IntPtr,System.Single,System.Single,System.Single)">
548
<summary>
549
Add force to a body using absolute coordinates.
550
</summary>
551
<remarks>
552
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
553
554
Force is applied at body's center of mass
555
</remarks>
556
<param name="body">A dBodyID</param>
557
<param name="fx">A dReal</param>
558
<param name="fy">A dReal</param>
559
<param name="fz">A dReal</param>
560
</member>
561
<member name="M:Tao.Ode.Ode.dBodyAddTorque(System.IntPtr,System.Single,System.Single,System.Single)">
562
<summary>
563
Add torque to a body using absolute coordinates.
564
</summary>
565
<remarks>
566
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
567
568
Force is applied at body's center of mass
569
</remarks>
570
<param name="body">A dBodyID</param>
571
<param name="fx">A dReal</param>
572
<param name="fy">A dReal</param>
573
<param name="fz">A dReal</param>
574
</member>
575
<member name="M:Tao.Ode.Ode.dBodyAddRelForce(System.IntPtr,System.Single,System.Single,System.Single)">
576
<summary>
577
Add force to a body using relative coordinates.
578
579
This function takes a force vector that is relative to the body's own frame of reference.
580
</summary>
581
<remarks>
582
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
583
584
Force is applied at body's center of mass
585
</remarks>
586
<param name="body">A dBodyID</param>
587
<param name="fx">A dReal</param>
588
<param name="fy">A dReal</param>
589
<param name="fz">A dReal</param>
590
</member>
591
<member name="M:Tao.Ode.Ode.dBodyAddRelTorque(System.IntPtr,System.Single,System.Single,System.Single)">
592
<summary>
593
Add torque to a body using relative coordinates.
594
595
This function takes a force vector that is relative to the body's own frame of reference.
596
</summary>
597
<remarks>
598
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
599
600
Force is applied at body's center of mass
601
</remarks>
602
<param name="body">A dBodyID</param>
603
<param name="fx">A dReal</param>
604
<param name="fy">A dReal</param>
605
<param name="fz">A dReal</param>
606
</member>
607
<member name="M:Tao.Ode.Ode.dBodyAddForceAtPos(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
608
<summary>
609
Add force to a body using absolute coordinates at specified absolute position.
610
611
The supplied position vector specifies the point at which the force is supplied in global coordinates.
612
</summary>
613
<remarks>
614
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
615
616
Force is applied at specified point.
617
</remarks>
618
<param name="body">A dBodyID</param>
619
<param name="fx">A dReal</param>
620
<param name="fy">A dReal</param>
621
<param name="fz">A dReal</param>
622
<param name="px">A dReal</param>
623
<param name="py">A dReal</param>
624
<param name="pz">A dReal</param>
625
</member>
626
<member name="M:Tao.Ode.Ode.dBodyAddForceAtRelPos(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
627
<summary>
628
Add force to a body using absolute coordinates at specified relative position.
629
630
The supplied position vector specifies the point at which the force is supplied in body-relative coordinates.
631
</summary>
632
<remarks>
633
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
634
635
Force is applied at specified point.
636
</remarks>
637
<param name="body">A dBodyID</param>
638
<param name="fx">A dReal</param>
639
<param name="fy">A dReal</param>
640
<param name="fz">A dReal</param>
641
<param name="px">A dReal</param>
642
<param name="py">A dReal</param>
643
<param name="pz">A dReal</param>
644
</member>
645
<member name="M:Tao.Ode.Ode.dBodyAddRelForceAtPos(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
646
<summary>
647
Add force to a body using body-relative coordinates at specified absolute position.
648
649
The supplied position vector specifies the point at which the force is supplied in global coordinates.
650
</summary>
651
<remarks>
652
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
653
654
Force is applied at specified point.
655
</remarks>
656
<param name="body">A dBodyID</param>
657
<param name="fx">A dReal</param>
658
<param name="fy">A dReal</param>
659
<param name="fz">A dReal</param>
660
<param name="px">A dReal</param>
661
<param name="py">A dReal</param>
662
<param name="pz">A dReal</param>
663
</member>
664
<member name="M:Tao.Ode.Ode.dBodyAddRelForceAtRelPos(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
665
<summary>
666
Add force to a body using body-relative coordinates at specified relative position.
667
668
The supplied position vector specifies the point at which the force is supplied in body-relative coordinates.
669
</summary>
670
<remarks>
671
Forces are accumulated on to each body, and the accumulators are zeroed after each time step.
672
673
Force is applied at specified point.
674
</remarks>
675
<param name="body">A dBodyID</param>
676
<param name="fx">A dReal</param>
677
<param name="fy">A dReal</param>
678
<param name="fz">A dReal</param>
679
<param name="px">A dReal</param>
680
<param name="py">A dReal</param>
681
<param name="pz">A dReal</param>
682
</member>
683
<member name="M:Tao.Ode.Ode.dBodyGetForce(System.IntPtr)">
684
<summary>
685
Return the current accumulated force on the body.
686
</summary>
687
<remarks>
688
In ODE, the returned values are pointers to internal data structures, so the vectors are only valid until any
689
changes are made to the rigid body system.
690
</remarks>
691
<returns>A dVector3</returns>
692
<param name="body">A dBodyID</param>
693
</member>
694
<member name="M:Tao.Ode.Ode.dBodyGetTorque(System.IntPtr)">
695
<summary>
696
Return the current accumulated torque on the body.
697
</summary>
698
<remarks>
699
In ODE, the returned values are pointers to internal data structures, so the vectors are only valid until any
700
changes are made to the rigid body system.
701
</remarks>
702
<returns>A dVector3</returns>
703
<param name="body">A dBodyID</param>
704
</member>
705
<member name="M:Tao.Ode.Ode.dBodySetForce(System.IntPtr,System.Single,System.Single,System.Single)">
706
<summary>
707
Set the body force accumulation vector.
708
This is mostly useful to zero the force and torque for deactivated bodies before they are reactivated,
709
in the case where the force-adding functions were called on them while they were deactivated.
710
</summary>
711
<param name="b">A dBodyID</param>
712
<param name="x">A dReal</param>
713
<param name="y">A dReal</param>
714
<param name="z">A dReal</param>
715
</member>
716
<member name="M:Tao.Ode.Ode.dBodySetTorque(System.IntPtr,System.Single,System.Single,System.Single)">
717
<summary>
718
Set the body torque accumulation vector.
719
This is mostly useful to zero the force and torque for deactivated bodies before they are reactivated,
720
in the case where the force-adding functions were called on them while they were deactivated.
721
</summary>
722
<param name="b">A dBodyID</param>
723
<param name="x">A dReal</param>
724
<param name="y">A dReal</param>
725
<param name="z">A dReal</param>
726
</member>
727
<member name="M:Tao.Ode.Ode.dBodyGetRelPointPos(System.IntPtr,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
728
<summary>
729
Take a point on a body (px,py,pz) and return that point's position in body-relative coordinates (in result).
730
</summary>
731
<param name="body">A dBodyID</param>
732
<param name="px">A dReal</param>
733
<param name="py">A dReal</param>
734
<param name="pz">A dReal</param>
735
<param name="result">A dVector3</param>
736
</member>
737
<member name="M:Tao.Ode.Ode.dBodyGetRelPointVel(System.IntPtr,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
738
<summary>
739
Take a point on a body (px,py,pz) and return that point's velocity in body-relative coordinates (in result).
740
</summary>
741
<param name="body">A dBodyID</param>
742
<param name="px">A dReal</param>
743
<param name="py">A dReal</param>
744
<param name="pz">A dReal</param>
745
<param name="result">A dVector3</param>
746
</member>
747
<member name="M:Tao.Ode.Ode.dBodyGetPointVel(System.IntPtr,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
748
<summary>
749
Take a point on a body (px,py,pz) and return that point's position in absolute coordinates (in result).
750
</summary>
751
<param name="body">A dBodyID</param>
752
<param name="px">A dReal</param>
753
<param name="py">A dReal</param>
754
<param name="pz">A dReal</param>
755
<param name="result">A dVector3</param>
756
</member>
757
<member name="M:Tao.Ode.Ode.dBodyGetPosRelPoint(System.IntPtr,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
758
<summary>
759
This is the inverse of dBodyGetRelPointPos.
760
It takes a point in global coordinates (x,y,z) and returns the point's position in body-relative
761
coordinates (result).
762
</summary>
763
<param name="body">A dBodyID</param>
764
<param name="px">A dReal</param>
765
<param name="py">A dReal</param>
766
<param name="pz">A dReal</param>
767
<param name="result">A dVector3</param>
768
</member>
769
<member name="M:Tao.Ode.Ode.dBodyVectorToWorld(System.IntPtr,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
770
<summary>
771
Given a vector expressed in the body coordinate system (x,y,z), rotate it to the world coordinate system (result).
772
</summary>
773
<param name="body">A dBodyID</param>
774
<param name="px">A dReal</param>
775
<param name="py">A dReal</param>
776
<param name="pz">A dReal</param>
777
<param name="result">A dVector3</param>
778
</member>
779
<member name="M:Tao.Ode.Ode.dBodyVectorFromWorld(System.IntPtr,System.Single,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
780
<summary>
781
Given a vector expressed in the world coordinate system (x,y,z), rotate it to the body coordinate system (result).
782
</summary>
783
<param name="body">A dBodyID</param>
784
<param name="px">A dReal</param>
785
<param name="py">A dReal</param>
786
<param name="pz">A dReal</param>
787
<param name="result">A dVector3</param>
788
</member>
789
<member name="M:Tao.Ode.Ode.dBodySetData(System.IntPtr,System.IntPtr)">
790
<summary>
791
Set the body's user-data pointer.
792
793
</summary>
794
<param name="body">A dBodyID</param>
795
<param name="data">An IntPtr</param>
796
</member>
797
<member name="M:Tao.Ode.Ode.dBodyGetData(System.IntPtr)">
798
<summary>
799
Get the body's user-data pointer.
800
</summary>
801
<returns>An IntPtr</returns>
802
<param name="body">A dBodyID</param>
803
</member>
804
<member name="M:Tao.Ode.Ode.dBodySetFiniteRotationMode(System.IntPtr,System.Int32)">
805
<summary>
806
This function controls the way a body's orientation is updated at each time step. The mode argument can be:
807
808
- 0: An ``infinitesimal'' orientation update is used. This is fast to compute, but it can occasionally
809
cause inaccuracies for bodies that are rotating at high speed, especially when those bodies are
810
joined to other bodies.
811
This is the default for every new body that is created.
812
813
- 1: A ``finite'' orientation update is used. This is more costly to compute, but will be more
814
accurate for high speed rotations. Note however that high speed rotations can result in many
815
types of error in a simulation, and this mode will only fix one of those sources of error.
816
</summary>
817
<param name="body">A dBodyID</param>
818
<param name="mode">An int</param>
819
</member>
820
<member name="M:Tao.Ode.Ode.dBodyGetFiniteRotationMode(System.IntPtr)">
821
<summary>
822
Return the current finite rotation mode of a body (0 or 1).
823
</summary>
824
<returns>An int</returns>
825
<param name="body">A dBodyID</param>
826
</member>
827
<member name="M:Tao.Ode.Ode.dBodySetFiniteRotationAxis(System.IntPtr,System.Single,System.Single,System.Single)">
828
<summary>
829
This sets the finite rotation axis for a body.
830
This axis only has meaning when the finite rotation mode is set (see dBodySetFiniteRotationMode).
831
832
If this axis is zero (0,0,0), full finite rotations are performed on the body.
833
834
If this axis is nonzero, the body is rotated by performing a partial finite rotation along the axis direction
835
followed by an infinitesimal rotation along an orthogonal direction.
836
837
This can be useful to alleviate certain sources of error caused by quickly spinning bodies. For example, if a
838
car wheel is rotating at high speed you can call this function with the wheel's hinge axis as the argument to
839
try and improve its behavior.
840
</summary>
841
<param name="body">A dBodyID</param>
842
<param name="x">A dReal</param>
843
<param name="y">A dReal</param>
844
<param name="z">A dReal</param>
845
</member>
846
<member name="M:Tao.Ode.Ode.dBodyGetFiniteRotationAxis(System.IntPtr,Tao.Ode.Ode.dVector3@)">
847
<summary>
848
Return the current finite rotation axis of a body.
849
</summary>
850
<param name="body">A dBodyID</param>
851
<param name="result">A dVector3</param>
852
</member>
853
<member name="M:Tao.Ode.Ode.dBodyGetNumJoints(System.IntPtr)">
854
<summary>
855
Return the number of joints that are attached to this body.
856
</summary>
857
<returns>An int</returns>
858
<param name="b">A dBodyID</param>
859
</member>
860
<member name="M:Tao.Ode.Ode.dBodyGetJoint(System.IntPtr,System.Int32)">
861
<summary>
862
Return a joint attached to this body, given by index.
863
864
Valid indexes are 0 to n-1 where n is the value returned by dBodyGetNumJoints.
865
</summary>
866
<returns>A dJointID</returns>
867
<param name="body">A dBodyID</param>
868
<param name="index">An int</param>
869
</member>
870
<member name="M:Tao.Ode.Ode.dBodySetGravityMode(System.IntPtr,System.Int32)">
871
<summary>
872
Set whether the body is influenced by the world's gravity or not.
873
874
If mode is nonzero it is, if mode is zero, it isn't.
875
876
Newly created bodies are always influenced by the world's gravity.
877
</summary>
878
<param name="b">A dBodyID</param>
879
<param name="mode">An int</param>
880
</member>
881
<member name="M:Tao.Ode.Ode.dBodyGetGravityMode(System.IntPtr)">
882
<summary>
883
Get whether the body is influenced by the world's gravity or not.
884
885
If mode is nonzero it is, if mode is zero, it isn't.
886
</summary>
887
<returns>An int</returns>
888
<param name="b">A dBodyID</param>
889
</member>
890
<member name="M:Tao.Ode.Ode.dBodyEnable(System.IntPtr)">
891
<summary>
892
Manually enable a body.
893
Note that a disabled body that is connected through a joint to an enabled body
894
will be automatically re-enabled at the next simulation step.
895
</summary>
896
<param name="body">A dBodyID</param>
897
</member>
898
<member name="M:Tao.Ode.Ode.dBodyDisable(System.IntPtr)">
899
<summary>
900
Manually disable a body.
901
Note that a disabled body that is connected through a joint to an enabled body
902
will be automatically re-enabled at the next simulation step.
903
</summary>
904
<param name="body">A dBodyID</param>
905
</member>
906
<member name="M:Tao.Ode.Ode.dBodyIsEnabled(System.IntPtr)">
907
<summary>
908
Method dBodyIsEnabled
909
Return 1 if a body is currently enabled or 0 if it is disabled.
910
</summary>
911
<returns>An int</returns>
912
<param name="body">A dBodyID</param>
913
</member>
914
<member name="M:Tao.Ode.Ode.dBodySetAutoDisableFlag(System.IntPtr,System.Int32)">
915
<summary>
916
Method dBodySetAutoDisableFlag
917
Set the auto-disable flag of a body.
918
919
If the do_auto_disable is nonzero the body will be automatically disabled when it has been idle for long enough.
920
</summary>
921
<param name="body">A dBodyID</param>
922
<param name="do_auto_disable">An int</param>
923
</member>
924
<member name="M:Tao.Ode.Ode.dBodyGetAutoDisableFlag(System.IntPtr)">
925
<summary>
926
Method dBodyGetAutoDisableFlag
927
Get the auto-disable flag of a body.
928
929
If the do_auto_disable is nonzero the body will be automatically disabled when it has been idle for long enough.
930
</summary>
931
<returns>An int</returns>
932
<param name="body">A dBodyID</param>
933
</member>
934
<member name="M:Tao.Ode.Ode.dBodySetAutoDisableLinearThreshold(System.IntPtr,System.Single)">
935
<summary>
936
Method dBodySetAutoDisableLinearThreshold
937
Set a body's linear velocity threshold for automatic disabling.
938
939
The body's linear velocity magnitude must be less than this threshold for
940
it to be considered idle.
941
942
Set the threshold to dInfinity to prevent the linear velocity from being considered.
943
</summary>
944
<param name="body">A dBodyID</param>
945
<param name="linear_threshold">A dReal</param>
946
</member>
947
<member name="M:Tao.Ode.Ode.dBodyGetAutoDisableLinearThreshold(System.IntPtr)">
948
<summary>
949
Method dBodyGetAutoDisableLinearThreshold
950
Get a body's linear velocity threshold for automatic disabling.
951
952
The body's linear velocity magnitude must be less than this threshold for
953
it to be considered idle.
954
955
Set the threshold to dInfinity to prevent the linear velocity from being considered.
956
</summary>
957
<returns>A dReal</returns>
958
<param name="body">A dBodyID</param>
959
</member>
960
<member name="M:Tao.Ode.Ode.dBodySetAutoDisableAngularThreshold(System.IntPtr,System.Single)">
961
<summary>
962
Method dBodySetAutoDisableAngularThreshold
963
Set a body's angular velocity threshold for automatic disabling.
964
965
The body's linear angular magnitude must be less than this threshold for
966
it to be considered idle.
967
968
Set the threshold to dInfinity to prevent the angular velocity from being considered.
969
</summary>
970
<param name="body">A dBodyID</param>
971
<param name="angular_threshold">A dReal</param>
972
</member>
973
<member name="M:Tao.Ode.Ode.dBodyGetAutoDisableAngularThreshold(System.IntPtr)">
974
<summary>
975
Method dBodyGetAutoDisableAngularThreshold
976
Get a body's angular velocity threshold for automatic disabling.
977
978
The body's linear angular magnitude must be less than this threshold for
979
it to be considered idle.
980
981
Set the threshold to dInfinity to prevent the angular velocity from being considered.
982
</summary>
983
<returns>A dReal</returns>
984
<param name="body">A dBodyID</param>
985
</member>
986
<member name="M:Tao.Ode.Ode.dBodySetAutoDisableSteps(System.IntPtr,System.Int32)">
987
<summary>
988
Method dBodySetAutoDisableSteps
989
Set the number of simulation steps that a body must be idle before
990
it is automatically disabled.
991
992
Set this to zero to disable consideration of the number of steps.
993
</summary>
994
<param name="body">A dBodyID</param>
995
<param name="steps">An int</param>
996
</member>
997
<member name="M:Tao.Ode.Ode.dBodyGetAutoDisableSteps(System.IntPtr)">
998
<summary>
999
Method dBodyGetAutoDisableSteps
1000
Get the number of simulation steps that a body must be idle before
1001
it is automatically disabled.
1002
1003
If zero, consideration of the number of steps is disabled.
1004
</summary>
1005
<returns>An int</returns>
1006
<param name="body">A dBodyID</param>
1007
</member>
1008
<member name="M:Tao.Ode.Ode.dBodySetAutoDisableTime(System.IntPtr,System.Single)">
1009
<summary>
1010
Method dBodySetAutoDisableTime
1011
Set the amount of simulation time that a body must be idle before
1012
it is automatically disabled.
1013
1014
Set this to zero to disable consideration of the amount of simulation time.
1015
</summary>
1016
<param name="body">A dBodyID</param>
1017
<param name="time">A dReal</param>
1018
</member>
1019
<member name="M:Tao.Ode.Ode.dBodyGetAutoDisableTime(System.IntPtr)">
1020
<summary>
1021
Method dBodyGetAutoDisableTime
1022
Get the amount of simulation time that a body must be idle before
1023
it is automatically disabled.
1024
1025
If zero, consideration of the amount of simulation time is disabled.
1026
</summary>
1027
<returns>A dReal</returns>
1028
<param name="body">A dBodyID</param>
1029
</member>
1030
<member name="M:Tao.Ode.Ode.dBodySetAutoDisableDefaults(System.IntPtr)">
1031
<summary>
1032
Method dBodySetAutoDisableDefaults
1033
Set the auto-disable parameters of the body to the default parameters
1034
that have been set on the world.
1035
</summary>
1036
<param name="body">A dBodyID</param>
1037
</member>
1038
<member name="M:Tao.Ode.Ode.dJointCreateBall(System.IntPtr,System.IntPtr)">
1039
<summary>
1040
Create a new ball joint.
1041
1042
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1043
because it does not connect to any bodies.
1044
1045
The joint group ID is 0 to allocate the joint normally.
1046
If it is nonzero the joint is allocated in the given joint group.
1047
</summary>
1048
<returns>A dJointID</returns>
1049
<param name="world">A dWorldID</param>
1050
<param name="group">A dJointGroupID</param>
1051
</member>
1052
<member name="M:Tao.Ode.Ode.dJointCreateHinge(System.IntPtr,System.IntPtr)">
1053
<summary>
1054
Create a new hinge joint.
1055
1056
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1057
because it does not connect to any bodies.
1058
1059
The joint group ID is 0 to allocate the joint normally.
1060
If it is nonzero the joint is allocated in the given joint group.
1061
</summary>
1062
<returns>A dJointID</returns>
1063
<param name="world">A dWorldID</param>
1064
<param name="group">A dJointGroupID</param>
1065
</member>
1066
<member name="M:Tao.Ode.Ode.dJointCreateSlider(System.IntPtr,System.IntPtr)">
1067
<summary>
1068
Create a new slider joint.
1069
1070
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1071
because it does not connect to any bodies.
1072
1073
The joint group ID is 0 to allocate the joint normally.
1074
If it is nonzero the joint is allocated in the given joint group.
1075
</summary>
1076
<returns>A dJointID</returns>
1077
<param name="world">A dWorldID</param>
1078
<param name="group">A dJointGroupID</param>
1079
</member>
1080
<member name="M:Tao.Ode.Ode.dJointCreateContact(System.IntPtr,System.IntPtr,Tao.Ode.Ode.dContact@)">
1081
<summary>
1082
Create a new contact joint.
1083
1084
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1085
because it does not connect to any bodies.
1086
1087
The joint group ID is 0 to allocate the joint normally.
1088
If it is nonzero the joint is allocated in the given joint group.
1089
1090
The contact joint will be initialized with the given dContact structure.
1091
</summary>
1092
<returns>A dJointID</returns>
1093
<param name="world">A dWorldID</param>
1094
<param name="group">A dJointGroupID</param>
1095
<param name="contact"></param>
1096
</member>
1097
<member name="M:Tao.Ode.Ode.dJointCreateHinge2(System.IntPtr,System.IntPtr)">
1098
<summary>
1099
Create a new hinge-2 joint.
1100
1101
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1102
because it does not connect to any bodies.
1103
1104
The joint group ID is 0 to allocate the joint normally.
1105
If it is nonzero the joint is allocated in the given joint group.
1106
</summary>
1107
<returns>A dJointID</returns>
1108
<param name="world">A dWorldID</param>
1109
<param name="group">A dJointGroupID</param>
1110
</member>
1111
<member name="M:Tao.Ode.Ode.dJointCreateUniversal(System.IntPtr,System.IntPtr)">
1112
<summary>
1113
Create a new universal joint.
1114
1115
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1116
because it does not connect to any bodies.
1117
1118
The joint group ID is 0 to allocate the joint normally.
1119
If it is nonzero the joint is allocated in the given joint group.
1120
</summary>
1121
<returns>A dJointID</returns>
1122
<param name="world">A dWorldID</param>
1123
<param name="group">A dJointGroupID</param>
1124
</member>
1125
<member name="M:Tao.Ode.Ode.dJointCreateFixed(System.IntPtr,System.IntPtr)">
1126
<summary>
1127
Create a new fixed joint.
1128
1129
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1130
because it does not connect to any bodies.
1131
1132
The joint group ID is 0 to allocate the joint normally.
1133
If it is nonzero the joint is allocated in the given joint group.
1134
</summary>
1135
<returns>A dJointID</returns>
1136
<param name="world">A dWorldID</param>
1137
<param name="group">A dJointGroupID</param>
1138
</member>
1139
<member name="M:Tao.Ode.Ode.dJointCreateNull(System.IntPtr,System.IntPtr)">
1140
<summary>
1141
Create a new "null" joint.
1142
1143
There's no discussion of this in the docs or sourcecode.
1144
The only mention is the following entry in the ODE Changelog:
1145
1146
10/11/01 russ
1147
1148
* joints can now return m=0 to be "inactive". added a "null" joint
1149
to test this.
1150
1151
This suggests a null joint is mainly useful for testing and should probably
1152
be ignored by users of the bindings.
1153
</summary>
1154
<returns>A dJointID</returns>
1155
<param name="world">A dWorldID</param>
1156
<param name="group">A dJointGroupID</param>
1157
</member>
1158
<member name="M:Tao.Ode.Ode.dJointCreateAMotor(System.IntPtr,System.IntPtr)">
1159
<summary>
1160
Create a new angular motor joint.
1161
1162
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1163
because it does not connect to any bodies.
1164
1165
The joint group ID is 0 to allocate the joint normally.
1166
If it is nonzero the joint is allocated in the given joint group.
1167
</summary>
1168
<returns>A dJointID</returns>
1169
<param name="world">A dWorldID</param>
1170
<param name="group">A dJointGroupID</param>
1171
</member>
1172
<member name="M:Tao.Ode.Ode.dJointCreateLMotor(System.IntPtr,System.IntPtr)">
1173
<summary>
1174
Create a new L-motor joint.
1175
1176
The joint is initially in "limbo" (i.e. it has no effect on the simulation)
1177
because it does not connect to any bodies.
1178
1179
The joint group ID is 0 to allocate the joint normally.
1180
If it is nonzero the joint is allocated in the given joint group.
1181
</summary>
1182
<returns>A dJointID</returns>
1183
<param name="world">A dWorldID</param>
1184
<param name="group">A dJointGroupID</param>
1185
</member>
1186
<member name="M:Tao.Ode.Ode.dJointDestroy(System.IntPtr)">
1187
<summary>
1188
Destroy a joint, disconnecting it from its attached bodies and removing it from the world.
1189
However, if the joint is a member of a group then this function has no effect - to destroy
1190
that joint the group must be emptied or destroyed.
1191
</summary>
1192
<param name="joint">A dJointID</param>
1193
</member>
1194
<member name="M:Tao.Ode.Ode.dJointGroupCreate(System.Int32)">
1195
<summary>
1196
Create a joint group.
1197
1198
NOTE: The max_size argument is no longer used and should be set to 0.
1199
It is kept for backwards compatibility.
1200
</summary>
1201
<returns>A dJointGroupID</returns>
1202
<param name="max_size">An int</param>
1203
</member>
1204
<member name="M:Tao.Ode.Ode.dJointGroupDestroy(System.IntPtr)">
1205
<summary>
1206
Destroy a joint group. All joints in the joint group will be destroyed.
1207
</summary>
1208
<param name="group">A dJointGroupID</param>
1209
</member>
1210
<member name="M:Tao.Ode.Ode.dJointGroupEmpty(System.IntPtr)">
1211
<summary>
1212
Empty a joint group.
1213
All joints in the joint group will be destroyed, but the joint group itself will not be destroyed.
1214
</summary>
1215
<param name="group">A dJointGroupID</param>
1216
</member>
1217
<member name="M:Tao.Ode.Ode.dJointAttach(System.IntPtr,System.IntPtr,System.IntPtr)">
1218
<summary>
1219
Attach the joint to some new bodies.
1220
1221
If the joint is already attached, it will be detached from the old bodies first.
1222
To attach this joint to only one body, set body1 or body2 to zero - a zero body
1223
refers to the static environment.
1224
Setting both bodies to zero puts the joint into "limbo", i.e. it will have no
1225
effect on the simulation.
1226
Some joints, like hinge-2 need to be attached to two bodies to work.
1227
</summary>
1228
<param name="joint">A dJointID</param>
1229
<param name="body1">A dBodyID</param>
1230
<param name="body2">A dBodyID</param>
1231
</member>
1232
<member name="M:Tao.Ode.Ode.dJointSetData(System.IntPtr,System.IntPtr)">
1233
<summary>
1234
Set the joint's user-data pointer.
1235
</summary>
1236
<param name="joint">A dJointID</param>
1237
<param name="data">An IntPtr</param>
1238
</member>
1239
<member name="M:Tao.Ode.Ode.dJointGetData(System.IntPtr)">
1240
<summary>
1241
Get the joint's user-data pointer.
1242
</summary>
1243
<returns>An IntPtr</returns>
1244
<param name="joint">A dJointID</param>
1245
</member>
1246
<member name="M:Tao.Ode.Ode.dJointGetType(System.IntPtr)">
1247
<summary>
1248
Get the joint's type.
1249
1250
The available joint types are:
1251
dJointTypeBall: A ball-and-socket joint.
1252
dJointTypeHinge: A hinge joint.
1253
dJointTypeSlider: A slider joint.
1254
dJointTypeContact: A contact joint.
1255
dJointTypeUniversal: A universal joint.
1256
dJointTypeHinge2: A hinge-2 joint.
1257
dJointTypeFixed: A fixed joint.
1258
dJointTypeAMotor: An angular motor joint.
1259
dJointTypeLMotor: An L-motor joint.
1260
</summary>
1261
<returns>An int</returns>
1262
<param name="joint">A dJointID</param>
1263
</member>
1264
<member name="M:Tao.Ode.Ode.dJointGetBody(System.IntPtr,System.Int32)">
1265
<summary>
1266
Return the bodies that this joint connects.
1267
1268
If index is 0 the ``first'' body will be returned,
1269
corresponding to the body1 argument of dJointAttach.
1270
If index is 1 the ``second'' body will be returned,
1271
corresponding to the body2 argument of dJointAttach.
1272
1273
If one of these returned body IDs is zero, the joint
1274
connects the other body to the static environment.
1275
1276
If both body IDs are zero, the joint is in ``limbo'' and has no effect on the simulation.
1277
</summary>
1278
<returns>A dBodyID</returns>
1279
<param name="joint">A dJointID</param>
1280
<param name="index">An int</param>
1281
</member>
1282
<member name="M:Tao.Ode.Ode.dJointSetFeedback(System.IntPtr,Tao.Ode.Ode.dJointFeedback@)">
1283
<summary>
1284
Pass a dJointFeedback structure to the joint to collect information about
1285
the forces applied by each joint.
1286
1287
Notes from the ODE docs:
1288
During the world time step, the forces that are applied by each joint are computed.
1289
These forces are added directly to the joined bodies, and the user normally has no
1290
way of telling which joint contributed how much force.
1291
If this information is desired then the user can allocate a dJointFeedback structure
1292
and pass its pointer to the dJointSetFeedback() function.
1293
1294
The feedback information structure is defined as follows (NOTE: C# version listed here):
1295
public struct dJointFeedback {
1296
public dVector3 f1; /* force that joint applies to body 1 */
1297
public dVector3 t1; /* torque that joint applies to body 1 */
1298
public dVector3 f2; /* force that joint applies to body 2 */
1299
public dVector3 t2; /* torque that joint applies to body 2 */
1300
};
1301
During the time step any feedback structures that are attached to joints will be
1302
filled in with the joint's force and torque information.
1303
1304
The dJointGetFeedback() function returns the current feedback structure pointer,
1305
or 0 if none is used (this is the default).
1306
1307
dJointSetFeedback() can be passed 0 to disable feedback for that joint.
1308
1309
TODO: Will passing 0 work? Seems as if something else needs to be passed here
1310
1311
Now for some API design notes. It might seem strange to require that users perform the
1312
allocation of these structures. Why not just store the data statically in each joint?
1313
The reason is that not all users will use the feedback information, and even when it
1314
is used not all joints will need it. It will waste memory to store it statically,
1315
especially as this structure could grow to store a lot of extra information in the future.
1316
Why not have ODE allocate the structure itself, at the user's request? The reason is
1317
that contact joints (which are created and destroyed every time step) would require a
1318
lot of time to be spent in memory allocation if feedback is required. Letting the user
1319
do the allocation means that a better allocation strategy can be provided, e.g simply
1320
allocating them out of a fixed array.
1321
1322
The alternative to this API is to have a joint-force callback. This would work of course,
1323
but it has a few problems. First, callbacks tend to pollute APIs and sometimes require
1324
the user to go through unnatural contortions to get the data to the right place.
1325
Second, this would expose ODE to being changed in the middle of a step (which would have
1326
bad consequences), and there would have to be some kind of guard against this or a debugging
1327
check for it - which would complicate things.
1328
</summary>
1329
<param name="joint">A dJointID</param>
1330
<param name="feedback">A dJointFeedback</param>
1331
</member>
1332
<member name="M:Tao.Ode.Ode.dJointGetFeedback(System.IntPtr)">
1333
<summary>
1334
Get the jointfeedback structure from the joint to get information about
1335
the forces applied by each joint.
1336
1337
The feedback information structure is defined as follows (NOTE: C# version listed here):
1338
public struct dJointFeedback {
1339
public dVector3 f1; /* force that joint applies to body 1 */
1340
public dVector3 t1; /* torque that joint applies to body 1 */
1341
public dVector3 f2; /* force that joint applies to body 2 */
1342
public dVector3 t2; /* torque that joint applies to body 2 */
1343
};
1344
1345
The dJointGetFeedback() function returns the current feedback structure pointer,
1346
or 0 if none is used (this is the default).
1347
TODO: Will passing 0 work or does something special have to be done?
1348
</summary>
1349
<returns>A dJointFeedback</returns>
1350
<param name="body">A dBodyID</param>
1351
</member>
1352
<member name="M:Tao.Ode.Ode.dConnectingJoint(System.IntPtr,System.IntPtr)">
1353
<summary>
1354
Undocumented in ODE.
1355
1356
Seems to return the first joint connecting the two specified bodies
1357
</summary>
1358
<param name="body1">the first body to query</param>
1359
<param name="body2">the second body to query</param>
1360
<returns>the id of the first joint found connecting the bodies</returns>
1361
</member>
1362
<member name="M:Tao.Ode.Ode.dConnectingJointList(System.IntPtr,System.IntPtr,System.IntPtr[]@)">
1363
<summary>
1364
Undocumented in ODE.
1365
1366
Seems to return a list of the joints connecting the two specified bodies
1367
</summary>
1368
<param name="body1">the first body to query</param>
1369
<param name="body2">the second body to query</param>
1370
<param name="connectingJoints">An array of dJointID listing the joints connecting the specified bodies</param>
1371
<returns>an int specifying the number of connecting joints found</returns>
1372
</member>
1373
<member name="M:Tao.Ode.Ode.dAreConnected(System.IntPtr,System.IntPtr)">
1374
<summary>
1375
Test if the two specified bodies are connected by a joint.
1376
1377
Return 1 if yes, otherwise return 0
1378
</summary>
1379
<returns>An int</returns>
1380
<param name="body1">A dBodyID</param>
1381
<param name="body2">A dBodyID</param>
1382
</member>
1383
<member name="M:Tao.Ode.Ode.dAreConnectedExcluding(System.IntPtr,System.IntPtr,System.Int32)">
1384
<summary>
1385
Return 1 if the two bodies are connected together by a joint that does not
1386
have type joint_type, otherwise return 0.
1387
joint_type is a dJointTypeXXX constant.
1388
This is useful for deciding whether to add contact joints between two bodies:
1389
if they are already connected by non-contact joints then it may not be
1390
appropriate to add contacts, however it is okay to add more contact between
1391
bodies that already have contacts.
1392
</summary>
1393
<returns>An int</returns>
1394
<param name="body1">A dBodyID</param>
1395
<param name="body2">A dBodyID</param>
1396
<param name="joint_type">An int</param>
1397
</member>
1398
<member name="M:Tao.Ode.Ode.dJointSetBallAnchor(System.IntPtr,System.Single,System.Single,System.Single)">
1399
<summary>
1400
Method dJointSetBallAnchor
1401
Set the joint anchor point.
1402
The joint will try to keep this point on each body together.
1403
The input is specified in world coordinates.
1404
</summary>
1405
<param name="joint">A dJointID</param>
1406
<param name="x">A dReal</param>
1407
<param name="y">A dReal</param>
1408
<param name="z">A dReal</param>
1409
</member>
1410
<member name="M:Tao.Ode.Ode.dJointSetBallAnchor2(System.IntPtr,System.Single,System.Single,System.Single)">
1411
<summary>
1412
Method dJointSetBallAnchor2
1413
Set the joint anchor point.
1414
The joint will try to keep this point on each body together.
1415
The input is specified in world coordinates.
1416
</summary>
1417
<param name="joint">A dJointID</param>
1418
<param name="x">A dReal</param>
1419
<param name="y">A dReal</param>
1420
<param name="z">A dReal</param>
1421
</member>
1422
<member name="M:Tao.Ode.Ode.dJointGetBallAnchor(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1423
<summary>
1424
Method dJointGetBallAnchor
1425
Get the joint anchor point on body 1, in world coordinates.
1426
If the joint is perfectly satisfied, this will be the same as the point on body 2.
1427
</summary>
1428
<param name="joint">A dJointID</param>
1429
<param name="result">A dVector3</param>
1430
</member>
1431
<member name="M:Tao.Ode.Ode.dJointGetBallAnchor2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1432
<summary>
1433
Method dJointGetBallAnchor2
1434
Get the joint anchor point on body 2, in world coordinates.
1435
You can think of a ball and socket joint as trying to keep the
1436
result of dJointGetBallAnchor() and dJointGetBallAnchor2() the same.
1437
If the joint is perfectly satisfied, this function will return the
1438
same value as dJointGetBallAnchor to within roundoff errors.
1439
dJointGetBallAnchor2 can be used, along with dJointGetBallAnchor,
1440
to see how far the joint has come apart.
1441
</summary>
1442
<param name="joint">A dJointID</param>
1443
<param name="result">A dVector3</param>
1444
</member>
1445
<member name="M:Tao.Ode.Ode.dJointSetHingeAnchor(System.IntPtr,System.Single,System.Single,System.Single)">
1446
<summary>
1447
Set hinge anchor parameters
1448
</summary>
1449
<param name="joint">A dJointID</param>
1450
<param name="x">A dReal</param>
1451
<param name="y">A dReal</param>
1452
<param name="z">A dReal</param>
1453
</member>
1454
<member name="M:Tao.Ode.Ode.dJointSetHingeAnchorDelta(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
1455
<summary>
1456
Set hinge anchor parameters
1457
</summary>
1458
<param name="joint">A dJointID</param>
1459
<param name="x">A dReal</param>
1460
<param name="y">A dReal</param>
1461
<param name="z">A dReal</param>
1462
<param name="ax">A dReal</param>
1463
<param name="ay">A dReal</param>
1464
<param name="az">A dReal</param>
1465
</member>
1466
<member name="M:Tao.Ode.Ode.dJointSetHingeAxis(System.IntPtr,System.Single,System.Single,System.Single)">
1467
<summary>
1468
Set hinge axis parameters
1469
</summary>
1470
<param name="joint">A dJointID</param>
1471
<param name="x">A dReal</param>
1472
<param name="y">A dReal</param>
1473
<param name="z">A dReal</param>
1474
</member>
1475
<member name="M:Tao.Ode.Ode.dJointGetHingeAnchor(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1476
<summary>
1477
Get the joint anchor point, in world coordinates.
1478
This returns the point on body 1.
1479
If the joint is perfectly satisfied, this will be the same as the point on body 2.
1480
</summary>
1481
<param name="joint">A dJointID</param>
1482
<param name="result">A dVector3</param>
1483
</member>
1484
<member name="M:Tao.Ode.Ode.dJointGetHingeAnchor2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1485
<summary>
1486
Get the joint anchor point, in world coordinates.
1487
This returns the point on body 2.
1488
If the joint is perfectly satisfied, this will return the same value as dJointGetHingeAnchor.
1489
If not, this value will be slightly different.
1490
This can be used, for example, to see how far the joint has come apart.
1491
</summary>
1492
<param name="joint">A dJointID</param>
1493
<param name="result">A dVector3</param>
1494
</member>
1495
<member name="M:Tao.Ode.Ode.dJointGetHingeAxis(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1496
<summary>
1497
Get the hinge axis parameter for the joint.
1498
</summary>
1499
<param name="joint">A dJointID</param>
1500
<param name="result">A dVector3</param>
1501
</member>
1502
<member name="M:Tao.Ode.Ode.dJointGetHingeAngle(System.IntPtr)">
1503
<summary>
1504
Get the hinge angle of the joint.
1505
The angle is measured between the two bodies, or between the body
1506
and the static environment.
1507
The angle will be between -pi..pi.
1508
When the hinge anchor or axis is set, the current position of the
1509
attached bodies is examined and that position will be the zero angle.
1510
</summary>
1511
<returns>A dReal</returns>
1512
<param name="joint">A dJointID</param>
1513
</member>
1514
<member name="M:Tao.Ode.Ode.dJointGetHingeAngleRate(System.IntPtr)">
1515
<summary>
1516
Get the time derivative of the hinge angle of the joint
1517
</summary>
1518
<returns>A dReal</returns>
1519
<param name="joint">A dJointID</param>
1520
</member>
1521
<member name="M:Tao.Ode.Ode.dJointSetHingeParam(System.IntPtr,Tao.Ode.Ode.dJointParams,System.Single)">
1522
<summary>
1523
Set limit/motor parameters for a hinge joint
1524
</summary>
1525
<param name="joint">A dJointID</param>
1526
<param name="parameter">An int</param>
1527
<param name="value">A dReal</param>
1528
</member>
1529
<member name="M:Tao.Ode.Ode.dJointGetHingeParam(System.IntPtr,Tao.Ode.Ode.dJointParams)">
1530
<summary>
1531
Get limit/motor parameters for a hinge joint
1532
</summary>
1533
<returns>A dReal</returns>
1534
<param name="joint">A dJointID</param>
1535
<param name="parameter">An int</param>
1536
</member>
1537
<member name="M:Tao.Ode.Ode.dJointAddHingeTorque(System.IntPtr,System.Single)">
1538
<summary>
1539
Applies the torque about the hinge axis.
1540
1541
That is, it applies a torque with magnitude torque, in the direction of
1542
the hinge axis, to body 1, and with the same magnitude but in opposite
1543
direction to body 2.
1544
</summary>
1545
<remarks>
1546
This function is just a wrapper for dBodyAddTorque
1547
</remarks>
1548
<param name="joint">A dJointID</param>
1549
<param name="torque">A dReal</param>
1550
</member>
1551
<member name="M:Tao.Ode.Ode.dJointSetSliderAxis(System.IntPtr,System.Single,System.Single,System.Single)">
1552
<summary>
1553
Set the slider axis parameter.
1554
</summary>
1555
<param name="joint">A dJointID</param>
1556
<param name="x">A dReal</param>
1557
<param name="y">A dReal</param>
1558
<param name="z">A dReal</param>
1559
</member>
1560
<member name="M:Tao.Ode.Ode.dJointSetSliderAxisDelta(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
1561
<summary>
1562
Set the slider axis delta.
1563
</summary>
1564
<param name="joint">A dJointID</param>
1565
<param name="x">A dReal</param>
1566
<param name="y">A dReal</param>
1567
<param name="z">A dReal</param>
1568
<param name="ax">A dReal</param>
1569
<param name="ay">A dReal</param>
1570
<param name="az">A dReal</param>
1571
</member>
1572
<member name="M:Tao.Ode.Ode.dJointGetSliderAxis(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1573
<summary>
1574
Get the slider axis parameter
1575
</summary>
1576
<param name="joint">A dJointID</param>
1577
<param name="result">A dVector3</param>
1578
</member>
1579
<member name="M:Tao.Ode.Ode.dJointGetSliderPosition(System.IntPtr)">
1580
<summary>
1581
Get the slider linear position (i.e. the slider's ``extension'')
1582
1583
When the axis is set, the current position of the attached bodies
1584
is examined and that position will be the zero position.
1585
</summary>
1586
<returns>A dReal</returns>
1587
<param name="joint">A dJointID</param>
1588
</member>
1589
<member name="M:Tao.Ode.Ode.dJointGetSliderPositionRate(System.IntPtr)">
1590
<summary>
1591
Get the time derivative of the slider linear position.
1592
</summary>
1593
<returns>A dReal</returns>
1594
<param name="joint">A dJointID</param>
1595
</member>
1596
<member name="M:Tao.Ode.Ode.dJointSetSliderParam(System.IntPtr,Tao.Ode.Ode.dJointParams,System.Single)">
1597
<summary>
1598
Set limit/motor parameters for a slider joint
1599
1600
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
1601
</summary>
1602
<param name="joint">A dJointID</param>
1603
<param name="parameter">An int</param>
1604
<param name="value">A dReal</param>
1605
</member>
1606
<member name="M:Tao.Ode.Ode.dJointGetSliderParam(System.IntPtr,Tao.Ode.Ode.dJointParams)">
1607
<summary>
1608
Get limit/motor parameters for a slider joint
1609
1610
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
1611
</summary>
1612
<returns>A dReal</returns>
1613
<param name="joint">A dJointID</param>
1614
<param name="parameter">An int</param>
1615
</member>
1616
<member name="M:Tao.Ode.Ode.dJointAddSliderForce(System.IntPtr,System.Single)">
1617
<summary>
1618
Applies the given force in the slider's direction.
1619
That is, it applies a force with magnitude force, in the direction
1620
slider's axis, to body1, and with the same magnitude but opposite
1621
direction to body2.
1622
</summary>
1623
<remarks>
1624
This function is just a wrapper for dBodyAddForce.
1625
</remarks>
1626
<param name="joint">A dJointID</param>
1627
<param name="force">A dReal</param>
1628
</member>
1629
<member name="M:Tao.Ode.Ode.dJointSetHinge2Anchor(System.IntPtr,System.Single,System.Single,System.Single)">
1630
<summary>
1631
Set hinge-2 anchor parameters
1632
</summary>
1633
<param name="joint">A dJointID</param>
1634
<param name="x">A dReal</param>
1635
<param name="y">A dReal</param>
1636
<param name="z">A dReal</param>
1637
</member>
1638
<member name="M:Tao.Ode.Ode.dJointSetHinge2Axis1(System.IntPtr,System.Single,System.Single,System.Single)">
1639
<summary>
1640
Set hinge-2 axis 1 parameters
1641
1642
Axis 1 and axis 2 must not lie on the same line
1643
</summary>
1644
<param name="joint">A dJointID</param>
1645
<param name="x">A dReal</param>
1646
<param name="y">A dReal</param>
1647
<param name="z">A dReal</param>
1648
</member>
1649
<member name="M:Tao.Ode.Ode.dJointSetHinge2Axis2(System.IntPtr,System.Single,System.Single,System.Single)">
1650
<summary>
1651
Set hinge-2 axis 2 parameters
1652
1653
Axis 1 and axis 2 must not lie on the same line
1654
</summary>
1655
<param name="joint">A dJointID</param>
1656
<param name="x">A dReal</param>
1657
<param name="y">A dReal</param>
1658
<param name="z">A dReal</param>
1659
</member>
1660
<member name="M:Tao.Ode.Ode.dJointGetHinge2Anchor(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1661
<summary>
1662
Get the joint anchor point, in world coordinates.
1663
This returns the point on body 1.
1664
If the joint is perfectly satisfied, this will be the same as the point on body 2.
1665
</summary>
1666
<param name="joint">A dJointID</param>
1667
<param name="result">A dVector3</param>
1668
</member>
1669
<member name="M:Tao.Ode.Ode.dJointGetHinge2Anchor2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1670
<summary>
1671
Get the joint anchor point, in world coordinates.
1672
This returns the point on body 2.
1673
If the joint is perfectly satisfied, this will return the same value as dJointGetHinge2Anchor.
1674
If not, this value will be slightly different.
1675
This can be used, for example, to see how far the joint has come apart.
1676
</summary>
1677
<param name="joint">A dJointID</param>
1678
<param name="result">A dVector3</param>
1679
</member>
1680
<member name="M:Tao.Ode.Ode.dJointGetHinge2Axis1(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1681
<summary>
1682
Get hinge-2 axis 1 parameters.
1683
</summary>
1684
<param name="joint">A dJointID</param>
1685
<param name="result">A dVector3</param>
1686
</member>
1687
<member name="M:Tao.Ode.Ode.dJointGetHinge2Axis2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1688
<summary>
1689
Get hinge-2 axis 2 parameters.
1690
</summary>
1691
<param name="joint">A dJointID</param>
1692
<param name="result">A dVector3</param>
1693
</member>
1694
<member name="M:Tao.Ode.Ode.dJointGetHinge2Angle1(System.IntPtr)">
1695
<summary>
1696
Get the hinge-2 angles (around axis 1 and axis 2)
1697
1698
When the anchor or axis is set, the current position of the attached bodies
1699
is examined and that position will be the zero angle.
1700
</summary>
1701
<returns>A dReal</returns>
1702
<param name="joint">A dJointID</param>
1703
</member>
1704
<member name="M:Tao.Ode.Ode.dJointGetHinge2Angle1Rate(System.IntPtr)">
1705
<summary>
1706
Get the time derivative of hinge-2 angle 1
1707
</summary>
1708
<returns>A dReal</returns>
1709
<param name="joint">A dJointID</param>
1710
</member>
1711
<member name="M:Tao.Ode.Ode.dJointGetHinge2Angle2Rate(System.IntPtr)">
1712
<summary>
1713
Get the time derivative of hinge-2 angle 2
1714
</summary>
1715
<returns>A dReal</returns>
1716
<param name="joint">A dJointID</param>
1717
</member>
1718
<member name="M:Tao.Ode.Ode.dJointSetHinge2Param(System.IntPtr,Tao.Ode.Ode.dJointParams,System.Single)">
1719
<summary>
1720
Set limit/motor parameters for a hinge-2 joint
1721
1722
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
1723
</summary>
1724
<param name="joint">A dJointID</param>
1725
<param name="parameter">An int</param>
1726
<param name="value">A dReal</param>
1727
</member>
1728
<member name="M:Tao.Ode.Ode.dJointGetHinge2Param(System.IntPtr,Tao.Ode.Ode.dJointParams)">
1729
<summary>
1730
Get limit/motor parameters for a hinge-2 joint
1731
1732
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
1733
</summary>
1734
<returns>A dReal</returns>
1735
<param name="joint">A dJointID</param>
1736
<param name="parameter">An int</param>
1737
</member>
1738
<member name="M:Tao.Ode.Ode.dJointAddHinge2Torques(System.IntPtr,System.Single,System.Single)">
1739
<summary>
1740
Applies torque1 about the hinge2's axis 1, and torque2 about the hinge2's axis 2.
1741
This function is just a wrapper for dBodyAddTorque.
1742
</summary>
1743
<param name="joint">A dJointID</param>
1744
<param name="torque1">A dReal</param>
1745
<param name="torque2">A dReal</param>
1746
</member>
1747
<member name="M:Tao.Ode.Ode.dJointSetUniversalAnchor(System.IntPtr,System.Single,System.Single,System.Single)">
1748
<summary>
1749
Set universal joint anchor parameters.
1750
</summary>
1751
<param name="joint">A dJointID</param>
1752
<param name="x">A dReal</param>
1753
<param name="y">A dReal</param>
1754
<param name="z">A dReal</param>
1755
</member>
1756
<member name="M:Tao.Ode.Ode.dJointSetUniversalAxis1(System.IntPtr,System.Single,System.Single,System.Single)">
1757
<summary>
1758
Set universal joint axis 1 parameters
1759
1760
Axis 1 and axis 2 should be perpendicular to each other.
1761
</summary>
1762
<param name="joint">A dJointID</param>
1763
<param name="x">A dReal</param>
1764
<param name="y">A dReal</param>
1765
<param name="z">A dReal</param>
1766
</member>
1767
<member name="M:Tao.Ode.Ode.dJointSetUniversalAxis2(System.IntPtr,System.Single,System.Single,System.Single)">
1768
<summary>
1769
Set universal joint axis 2 parameters
1770
1771
Axis 1 and axis 2 should be perpendicular to each other.
1772
</summary>
1773
<param name="joint">A dJointID</param>
1774
<param name="x">A dReal</param>
1775
<param name="y">A dReal</param>
1776
<param name="z">A dReal</param>
1777
</member>
1778
<member name="M:Tao.Ode.Ode.dJointGetUniversalAnchor(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1779
<summary>
1780
Get the joint anchor point, in world coordinates.
1781
This returns the point on body 1.
1782
If the joint is perfectly satisfied, this will be the same as the point on body 2.
1783
</summary>
1784
<param name="joint">A dJointID</param>
1785
<param name="result">A dVector3</param>
1786
</member>
1787
<member name="M:Tao.Ode.Ode.dJointGetUniversalAnchor2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1788
<summary>
1789
Get the joint anchor point, in world coordinates.
1790
This returns the point on body 2.
1791
You can think of the ball and socket part of a universal joint as trying
1792
to keep the result of dJointGetBallAnchor() and dJointGetBallAnchor2() the same.
1793
If the joint is perfectly satisfied, this function will return the same value as
1794
dJointGetUniversalAnchor to within roundoff errors.
1795
dJointGetUniversalAnchor2 can be used, along with dJointGetUniversalAnchor, to
1796
see how far the joint has come apart.
1797
</summary>
1798
<param name="joint">A dJointID</param>
1799
<param name="result">A dVector3</param>
1800
</member>
1801
<member name="M:Tao.Ode.Ode.dJointGetUniversalAxis1(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1802
<summary>
1803
Get parameters for universal joint axis 1
1804
</summary>
1805
<param name="joint">A dJointID</param>
1806
<param name="result">A dVector3</param>
1807
</member>
1808
<member name="M:Tao.Ode.Ode.dJointGetUniversalAxis2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
1809
<summary>
1810
Get parameters for universal joint axis 2
1811
</summary>
1812
<param name="joint">A dJointID</param>
1813
<param name="result">A dVector3</param>
1814
</member>
1815
<member name="M:Tao.Ode.Ode.dJointSetUniversalParam(System.IntPtr,Tao.Ode.Ode.dJointParams,System.Single)">
1816
<summary>
1817
Set limit/motor parameters for a universal joint
1818
1819
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
1820
</summary>
1821
<param name="joint">A dJointID</param>
1822
<param name="parameter">An int</param>
1823
<param name="value">A dReal</param>
1824
</member>
1825
<member name="M:Tao.Ode.Ode.dJointGetUniversalParam(System.IntPtr,Tao.Ode.Ode.dJointParams)">
1826
<summary>
1827
Get limit/motor parameters for a universal joint
1828
1829
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
1830
</summary>
1831
<returns>A dReal</returns>
1832
<param name="joint">A dJointID</param>
1833
<param name="parameter">An int</param>
1834
</member>
1835
<member name="M:Tao.Ode.Ode.dJointAddUniversalTorques(System.IntPtr,System.Single,System.Single)">
1836
<summary>
1837
Applies torque1 about the universal's axis 1, and torque2 about the universal's axis 2.
1838
</summary>
1839
<remarks>
1840
This function is just a wrapper for dBodyAddTorque.
1841
</remarks>
1842
<param name="joint">A dJointID</param>
1843
<param name="torque1">A dReal</param>
1844
<param name="torque2">A dReal</param>
1845
</member>
1846
<member name="M:Tao.Ode.Ode.dJointGetUniversalAngle1(System.IntPtr)">
1847
<summary>
1848
1849
</summary>
1850
<param name="joint"></param>
1851
<returns></returns>
1852
</member>
1853
<member name="M:Tao.Ode.Ode.dJointGetUniversalAngle2(System.IntPtr)">
1854
<summary>
1855
1856
</summary>
1857
<param name="joint"></param>
1858
<returns></returns>
1859
</member>
1860
<member name="M:Tao.Ode.Ode.dJointGetUniversalAngle1Rate(System.IntPtr)">
1861
<summary>
1862
1863
</summary>
1864
<param name="joint"></param>
1865
<returns></returns>
1866
</member>
1867
<member name="M:Tao.Ode.Ode.dJointGetUniversalAngle2Rate(System.IntPtr)">
1868
<summary>
1869
1870
</summary>
1871
<param name="joint"></param>
1872
<returns></returns>
1873
</member>
1874
<member name="M:Tao.Ode.Ode.dJointSetFixed(System.IntPtr)">
1875
<summary>
1876
Call this on the fixed joint after it has been attached to remember the current desired
1877
relative offset and desired relative rotation between the bodies.
1878
</summary>
1879
<remarks>
1880
The fixed joint maintains a fixed relative position and orientation between two bodies,
1881
or between a body and the static environment.
1882
Using this joint is almost never a good idea in practice, except when debugging.
1883
If you need two bodies to be glued together it is better to represent that as a single body.
1884
</remarks>
1885
<param name="joint">A dJointID</param>
1886
</member>
1887
<member name="M:Tao.Ode.Ode.dJointSetAMotorMode(System.IntPtr,System.Int32)">
1888
<summary>
1889
Set the angular motor mode.
1890
The mode parameter must be one of the following constants:
1891
dAMotorUser: The AMotor axes and joint angle settings are entirely controlled by the user.
1892
This is the default mode.
1893
dAMotorEuler: Euler angles are automatically computed.
1894
The axis a1 is also automatically computed.
1895
The AMotor axes must be set correctly when in this mode, as described below.
1896
When this mode is initially set the current relative orientations of the
1897
bodies will correspond to all euler angles at zero.
1898
</summary>
1899
<param name="joint">A dJointID</param>
1900
<param name="mode">An int</param>
1901
</member>
1902
<member name="M:Tao.Ode.Ode.dJointGetAMotorMode(System.IntPtr)">
1903
<summary>
1904
Get the angular motor mode.
1905
The mode parameter will be one of the following constants:
1906
dAMotorUser: The AMotor axes and joint angle settings are entirely controlled by the user.
1907
This is the default mode.
1908
dAMotorEuler: Euler angles are automatically computed.
1909
The axis a1 is also automatically computed.
1910
The AMotor axes must be set correctly when in this mode, as described below.
1911
When this mode is initially set the current relative orientations of the
1912
bodies will correspond to all euler angles at zero.
1913
</summary>
1914
<returns>An int</returns>
1915
<param name="joint">A dJointID</param>
1916
</member>
1917
<member name="M:Tao.Ode.Ode.dJointSetAMotorNumAxes(System.IntPtr,System.Int32)">
1918
<summary>
1919
Set the number of angular axes that will be controlled by the AMotor.
1920
The argument num can range from 0 (which effectively deactivates the joint) to 3.
1921
This is automatically set to 3 in dAMotorEuler mode.
1922
</summary>
1923
<param name="joint">A dJointID</param>
1924
<param name="num">An int</param>
1925
</member>
1926
<member name="M:Tao.Ode.Ode.dJointGetAMotorNumAxes(System.IntPtr)">
1927
<summary>
1928
Get the number of angular axes controlled by the AMotor.
1929
The number of axes can range from 0 (which effectively deactivates the joint) to 3.
1930
This is automatically set to 3 in dAMotorEuler mode.
1931
</summary>
1932
<returns>An int</returns>
1933
<param name="joint">A dJointID</param>
1934
</member>
1935
<member name="M:Tao.Ode.Ode.dJointSetAMotorAxis(System.IntPtr,System.Int32,System.Int32,System.Single,System.Single,System.Single)">
1936
<summary>
1937
Set the AMotor axes.
1938
The anum argument selects the axis to change (0,1 or 2).
1939
Each axis can have one of three ``relative orientation'' modes, selected by rel:
1940
* 0: The axis is anchored to the global frame.
1941
* 1: The axis is anchored to the first body.
1942
* 2: The axis is anchored to the second body.
1943
1944
The axis vector (x,y,z) is always specified in global coordinates regardless of the setting of rel.
1945
1946
For dAMotorEuler mode:
1947
* Only axes 0 and 2 need to be set. Axis 1 will be determined automatically at each time step.
1948
* Axes 0 and 2 must be perpendicular to each other.
1949
* Axis 0 must be anchored to the first body, axis 2 must be anchored to the second body.
1950
</summary>
1951
<param name="joint">A dJointID</param>
1952
<param name="anum">An int</param>
1953
<param name="rel">An int</param>
1954
<param name="x">A dReal</param>
1955
<param name="y">A dReal</param>
1956
<param name="z">A dReal</param>
1957
</member>
1958
<member name="M:Tao.Ode.Ode.dJointGetAMotorAxis(System.IntPtr,System.Int32,Tao.Ode.Ode.dVector3@)">
1959
<summary>
1960
Get the specified AMotor axis.
1961
The anum argument selects the axis to get (0,1 or 2).
1962
</summary>
1963
<param name="joint">A dJointID</param>
1964
<param name="anum">An int</param>
1965
<param name="result">A dVector3</param>
1966
</member>
1967
<member name="M:Tao.Ode.Ode.dJointGetAMotorAxisRel(System.IntPtr,System.Int32)">
1968
<summary>
1969
Get the relative orientation mode for the specified axis
1970
The anum argument selects the axis to get (0,1 or 2).
1971
The return value will represent one of three ``relative orientation'' modes:
1972
* 0: The axis is anchored to the global frame.
1973
* 1: The axis is anchored to the first body.
1974
* 2: The axis is anchored to the second body.
1975
</summary>
1976
<returns>An int</returns>
1977
<param name="joint">A dJointID</param>
1978
<param name="anum">An int</param>
1979
</member>
1980
<member name="M:Tao.Ode.Ode.dJointSetAMotorAngle(System.IntPtr,System.Int32,System.Single)">
1981
<summary>
1982
Tell the AMotor what the current angle is along axis anum.
1983
This function should only be called in dAMotorUser mode, because in this mode
1984
the AMotor has no other way of knowing the joint angles.
1985
The angle information is needed if stops have been set along the axis,
1986
but it is not needed for axis motors.
1987
</summary>
1988
<param name="joint">A dJointID</param>
1989
<param name="anum">An int</param>
1990
<param name="angle">A dReal</param>
1991
</member>
1992
<member name="M:Tao.Ode.Ode.dJointGetAMotorAngle(System.IntPtr,System.Int32)">
1993
<summary>
1994
Return the current angle for axis anum.
1995
In dAMotorUser mode this is simply the value that was set with dJointSetAMotorAngle.
1996
In dAMotorEuler mode this is the corresponding euler angle.
1997
</summary>
1998
<returns>A dReal</returns>
1999
<param name="joint">A dJointID</param>
2000
<param name="anum">An int</param>
2001
</member>
2002
<member name="M:Tao.Ode.Ode.dJointGetAMotorAngleRate(System.IntPtr,System.Int32)">
2003
<summary>
2004
Return the current angle rate for axis anum.
2005
In dAMotorUser mode this is always zero, as not enough information is available.
2006
In dAMotorEuler mode this is the corresponding euler angle rate.
2007
</summary>
2008
<returns>A dReal</returns>
2009
<param name="joint">A dJointID</param>
2010
<param name="anum">An int</param>
2011
</member>
2012
<member name="M:Tao.Ode.Ode.dJointSetAMotorParam(System.IntPtr,Tao.Ode.Ode.dJointParams,System.Single)">
2013
<summary>
2014
Set limit/motor parameters for a an angular motor joint
2015
2016
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
2017
</summary>
2018
<param name="joint">A dJointID</param>
2019
<param name="parameter">An int</param>
2020
<param name="value">A dReal</param>
2021
</member>
2022
<member name="M:Tao.Ode.Ode.dJointGetAMotorParam(System.IntPtr,Tao.Ode.Ode.dJointParams)">
2023
<summary>
2024
Get limit/motor parameters for a an angular motor joint
2025
2026
See http://ode.org/ode-latest-userguide.html#sec_7_5_1 for details
2027
</summary>
2028
<returns>A dReal</returns>
2029
<param name="joint">A dJointID</param>
2030
<param name="parameter">An int</param>
2031
</member>
2032
<member name="M:Tao.Ode.Ode.dJointAddAMotorTorques(System.IntPtr,System.Single,System.Single,System.Single)">
2033
<summary>
2034
Applies torque0 about the AMotor's axis 0,
2035
torque1 about the AMotor's axis 1,
2036
and torque2 about the AMotor's axis 2.
2037
If the motor has fewer than three axes, the higher torques are ignored.
2038
</summary>
2039
<remarks>
2040
This function is just a wrapper for dBodyAddTorque.
2041
</remarks>
2042
<param name="joint">A dJointID</param>
2043
<param name="torque1">A dReal</param>
2044
<param name="torque2">A dReal</param>
2045
<param name="torque3">A dReal</param>
2046
</member>
2047
<member name="M:Tao.Ode.Ode.dJointSetLMotorAxis(System.IntPtr,System.Int32,System.Int32,System.Single,System.Single,System.Single)">
2048
<summary>
2049
2050
</summary>
2051
<param name="j"></param>
2052
<param name="anum"></param>
2053
<param name="rel"></param>
2054
<param name="x"></param>
2055
<param name="y"></param>
2056
<param name="z"></param>
2057
</member>
2058
<member name="M:Tao.Ode.Ode.dJointSetLMotorNumAxes(System.IntPtr,System.Int32)">
2059
<summary>
2060
2061
</summary>
2062
<param name="j"></param>
2063
<param name="num"></param>
2064
</member>
2065
<member name="M:Tao.Ode.Ode.dJointSetLMotorParam(System.IntPtr,System.Int32,System.Single)">
2066
<summary>
2067
2068
</summary>
2069
<param name="j"></param>
2070
<param name="parameter"></param>
2071
<param name="value"></param>
2072
</member>
2073
<member name="M:Tao.Ode.Ode.JointSetPlane2DAngleParam(System.IntPtr,System.Int32,System.Single)">
2074
<summary>
2075
2076
</summary>
2077
<param name="j"></param>
2078
<param name="parameter"></param>
2079
<param name="value"></param>
2080
</member>
2081
<member name="M:Tao.Ode.Ode.dJointSetPlane2DXParam(System.IntPtr,System.Int32,System.Single)">
2082
<summary>
2083
2084
</summary>
2085
<param name="j"></param>
2086
<param name="parameter"></param>
2087
<param name="value"></param>
2088
</member>
2089
<member name="M:Tao.Ode.Ode.dJointSetPlane2DYParam(System.IntPtr,System.Int32,System.Single)">
2090
<summary>
2091
2092
</summary>
2093
<param name="j"></param>
2094
<param name="parameter"></param>
2095
<param name="value"></param>
2096
</member>
2097
<member name="M:Tao.Ode.Ode.dJointSetPRAnchor(System.IntPtr,System.Single,System.Single,System.Single)">
2098
<summary>
2099
2100
</summary>
2101
<param name="j"></param>
2102
<param name="x"></param>
2103
<param name="y"></param>
2104
<param name="z"></param>
2105
</member>
2106
<member name="M:Tao.Ode.Ode.dJointSetPRAxis1(System.IntPtr,System.Single,System.Single,System.Single)">
2107
<summary>
2108
2109
</summary>
2110
<param name="j"></param>
2111
<param name="x"></param>
2112
<param name="y"></param>
2113
<param name="z"></param>
2114
</member>
2115
<member name="M:Tao.Ode.Ode.dJointSetPRAxis2(System.IntPtr,System.Single,System.Single,System.Single)">
2116
<summary>
2117
2118
</summary>
2119
<param name="j"></param>
2120
<param name="x"></param>
2121
<param name="y"></param>
2122
<param name="z"></param>
2123
</member>
2124
<member name="M:Tao.Ode.Ode.dJointSetPRParam(System.IntPtr,System.Int32,System.Single)">
2125
<summary>
2126
2127
</summary>
2128
<param name="j"></param>
2129
<param name="parameter"></param>
2130
<param name="value"></param>
2131
</member>
2132
<member name="M:Tao.Ode.Ode.dJointGetLMotorAxis(System.IntPtr,System.Int32,Tao.Ode.Ode.dVector3@)">
2133
<summary>
2134
2135
</summary>
2136
<param name="j"></param>
2137
<param name="anum"></param>
2138
<param name="result"></param>
2139
</member>
2140
<member name="M:Tao.Ode.Ode.dJointGetLMotorNumAxes(System.IntPtr)">
2141
<summary>
2142
2143
</summary>
2144
<param name="j"></param>
2145
<returns></returns>
2146
</member>
2147
<member name="M:Tao.Ode.Ode.dJointGetLMotorParam(System.IntPtr,System.Int32)">
2148
<summary>
2149
2150
</summary>
2151
<param name="j"></param>
2152
<param name="parameter"></param>
2153
<returns></returns>
2154
</member>
2155
<member name="M:Tao.Ode.Ode.dJointGetPRAnchor(System.IntPtr,Tao.Ode.Ode.dVector3@)">
2156
<summary>
2157
2158
</summary>
2159
<param name="j"></param>
2160
<param name="result"></param>
2161
</member>
2162
<member name="M:Tao.Ode.Ode.dJointGetPRAxis1(System.IntPtr,Tao.Ode.Ode.dVector3@)">
2163
<summary>
2164
2165
</summary>
2166
<param name="j"></param>
2167
<param name="result"></param>
2168
</member>
2169
<member name="M:Tao.Ode.Ode.dJointGetPRAxis2(System.IntPtr,Tao.Ode.Ode.dVector3@)">
2170
<summary>
2171
2172
</summary>
2173
<param name="j"></param>
2174
<param name="result"></param>
2175
</member>
2176
<member name="M:Tao.Ode.Ode.dJointGetPRParam(System.IntPtr,System.Int32)">
2177
<summary>
2178
2179
</summary>
2180
<param name="j"></param>
2181
<param name="parameter"></param>
2182
<returns></returns>
2183
</member>
2184
<member name="M:Tao.Ode.Ode.dJointGetPRPosition(System.IntPtr)">
2185
<summary>
2186
2187
</summary>
2188
<param name="j"></param>
2189
<returns></returns>
2190
</member>
2191
<member name="M:Tao.Ode.Ode.dJointGetUniversalAngles(System.IntPtr,System.Single@,System.Single@)">
2192
<summary>
2193
2194
</summary>
2195
<param name="j"></param>
2196
<param name="angle1"></param>
2197
<param name="angle2"></param>
2198
</member>
2199
<member name="M:Tao.Ode.Ode.dJointGetPRPositionRate(System.IntPtr)">
2200
<summary>
2201
2202
</summary>
2203
<param name="j"></param>
2204
<returns></returns>
2205
</member>
2206
<member name="M:Tao.Ode.Ode.dMassSetZero(Tao.Ode.Ode.dMass@)">
2207
<summary>
2208
Set all the mass parameters to zero
2209
</summary>
2210
<param name="mass">A reference to a dMass</param>
2211
</member>
2212
<member name="M:Tao.Ode.Ode.dMassSetParameters(Tao.Ode.Ode.dMass@,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
2213
<summary>
2214
Set the mass parameters to the given values.
2215
</summary>
2216
<remarks>
2217
The inertia matrix looks like this:
2218
[ I11 I12 I13 ]
2219
[ I12 I22 I23 ]
2220
[ I13 I23 I33 ]
2221
</remarks>
2222
<param name="mass">A reference to a dMass</param>
2223
<param name="themass">the mass of the body</param>
2224
<param name="cgx">the x coordinate for the center of gravity position in the body frame</param>
2225
<param name="cgy">the y coordinate for the center of gravity position in the body frame</param>
2226
<param name="cgz">the z coordinate for the center of gravity position in the body frame</param>
2227
<param name="I11">An element of the inertia matrix</param>
2228
<param name="I22">An element of the inertia matrix</param>
2229
<param name="I33">An element of the inertia matrix</param>
2230
<param name="I12">An element of the inertia matrix</param>
2231
<param name="I13">An element of the inertia matrix</param>
2232
<param name="I23">An element of the inertia matrix</param>
2233
</member>
2234
<member name="M:Tao.Ode.Ode.dMassSetSphere(Tao.Ode.Ode.dMass@,System.Single,System.Single)">
2235
<summary>
2236
Set the mass parameters to represent a sphere of the given radius and density, with
2237
the center of mass at (0,0,0) relative to the body.
2238
</summary>
2239
<param name="mass">the mass to set</param>
2240
<param name="density">the density of the sphere</param>
2241
<param name="radius">the radius of the sphere</param>
2242
</member>
2243
<member name="M:Tao.Ode.Ode.dMassSetSphereTotal(Tao.Ode.Ode.dMass@,System.Single,System.Single)">
2244
<summary>
2245
Set the mass parameters to represent a sphere of the given total mass and radius, with
2246
the center of mass at (0,0,0) relative to the body.
2247
</summary>
2248
<param name="mass">the mass to set</param>
2249
<param name="total_mass">the total mass of the sphere</param>
2250
<param name="radius">the radius of the sphere</param>
2251
</member>
2252
<member name="M:Tao.Ode.Ode.dMassSetCapsule(Tao.Ode.Ode.dMass@,System.Single,System.Int32,System.Single,System.Single)">
2253
<summary>
2254
Set the mass parameters to represent a capsule of the given parameters and density, with
2255
the center of mass at (0,0,0) relative to the body.
2256
</summary>
2257
<remarks>
2258
The cylinder's long axis is oriented along the body's x, y or z axis according to the value of direction (1=x, 2=y, 3=z).
2259
</remarks>
2260
<param name="mass">the mass to set</param>
2261
<param name="density">The density of the capsule</param>
2262
<param name="direction">The orientation of the cylinder's long axis (1=x, 2=y, 3=z)</param>
2263
<param name="radius">The radius of the cylinder (and the spherical cap)</param>
2264
<param name="length">The length of the cylinder (not counting the spherical cap)</param>
2265
</member>
2266
<member name="M:Tao.Ode.Ode.dMassSetCapsuleTotal(Tao.Ode.Ode.dMass@,System.Single,System.Int32,System.Single,System.Single)">
2267
<summary>
2268
Set the mass parameters to represent a capsule of the given parameters and total mass, with
2269
the center of mass at (0,0,0) relative to the body.
2270
</summary>
2271
<remarks>
2272
The capsule's long axis is oriented along the body's x, y or z axis according to the value of direction (1=x, 2=y, 3=z).
2273
</remarks>
2274
<param name="mass">the mass to set</param>
2275
<param name="total_mass">The total mass of the capsule</param>
2276
<param name="direction">The orientation of the capsule's long axis (1=x, 2=y, 3=z)</param>
2277
<param name="radius">The radius of the capsule (and the spherical cap)</param>
2278
<param name="length">The length of the capsule (not counting the spherical cap)</param>
2279
</member>
2280
<member name="M:Tao.Ode.Ode.dMassSetCylinder(Tao.Ode.Ode.dMass@,System.Single,System.Int32,System.Single,System.Single)">
2281
<summary>
2282
Set the mass parameters to represent a flat-ended cylinder of the given parameters and density, with
2283
the center of mass at (0,0,0) relative to the body.
2284
</summary>
2285
<remarks>
2286
The cylinder's long axis is oriented along the body's x, y or z axis according to the value of direction (1=x, 2=y, 3=z).
2287
</remarks>
2288
<param name="mass">the mass to set</param>
2289
<param name="density">the density of the cylinder</param>
2290
<param name="direction">the orientation of the cylinder</param>
2291
<param name="radius">The radius of the cylinder</param>
2292
<param name="length">The length of the cylinder</param>
2293
</member>
2294
<member name="M:Tao.Ode.Ode.dMassSetCylinderTotal(Tao.Ode.Ode.dMass@,System.Single,System.Int32,System.Single,System.Single)">
2295
<summary>
2296
Set the mass parameters to represent a flat-ended cylinder of the given parameters and total mass, with
2297
the center of mass at (0,0,0) relative to the body.
2298
</summary>
2299
<remarks>
2300
The cylinder's long axis is oriented along the body's x, y or z axis according to the value of direction (1=x, 2=y, 3=z).
2301
</remarks>
2302
<param name="mass">the mass to set</param>
2303
<param name="total_mass">the total mass of the cylinder</param>
2304
<param name="direction">the orientation of the cylinder</param>
2305
<param name="radius">The radius of the cylinder</param>
2306
<param name="length">The length of the cylinder</param>
2307
</member>
2308
<member name="M:Tao.Ode.Ode.dMassSetBox(Tao.Ode.Ode.dMass@,System.Single,System.Single,System.Single,System.Single)">
2309
<summary>
2310
Set the mass parameters to represent a box of the given dimensions and density, with
2311
the center of mass at (0,0,0) relative to the body.
2312
</summary>
2313
<param name="mass">the mass to set</param>
2314
<param name="density">The density of the box</param>
2315
<param name="lx">The side length of the box along the x axis</param>
2316
<param name="ly">The side length of the box along the y axis</param>
2317
<param name="lz">The side length of the box along the z axis</param>
2318
</member>
2319
<member name="M:Tao.Ode.Ode.dMassSetBoxTotal(Tao.Ode.Ode.dMass@,System.Single,System.Single,System.Single,System.Single)">
2320
<summary>
2321
Set the mass parameters to represent a box of the given dimensions and total mass, with
2322
the center of mass at (0,0,0) relative to the body.
2323
</summary>
2324
<param name="mass">the mass to set</param>
2325
<param name="total_mass">The total mass of the box</param>
2326
<param name="lx">The side length of the box along the x axis</param>
2327
<param name="ly">The side length of the box along the y axis</param>
2328
<param name="lz">The side length of the box along the z axis</param>
2329
</member>
2330
<member name="M:Tao.Ode.Ode.dMassAdjust(Tao.Ode.Ode.dMass@,System.Single)">
2331
<summary>
2332
Given mass parameters for some object, adjust them so the total mass is now newmass
2333
</summary>
2334
<remarks>
2335
This is useful when using the "mass set" functions to set the mass parameters for
2336
certain objects - they take the object density, not the total mass.
2337
</remarks>
2338
<param name="mass">the mass parameters to adjust</param>
2339
<param name="newmass">the new total mass</param>
2340
</member>
2341
<member name="M:Tao.Ode.Ode.dMassTranslate(Tao.Ode.Ode.dMass@,System.Single,System.Single,System.Single)">
2342
<summary>
2343
Given mass parameters for some object, adjust them to represent the object displaced
2344
by (x,y,z) relative to the body frame.
2345
</summary>
2346
<param name="mass">the mass parameters to translate</param>
2347
<param name="x">The displacement along the x axis</param>
2348
<param name="y">The displacement along the y axis</param>
2349
<param name="z">The displacement along the z axis</param>
2350
</member>
2351
<member name="M:Tao.Ode.Ode.dMassRotate(Tao.Ode.Ode.dMass@,System.Single[])">
2352
<summary>
2353
Given mass parameters for some object, adjust them to represent the object rotated by R relative to the body frame.
2354
</summary>
2355
<param name="mass">the mass to rotate</param>
2356
<param name="R">An array of 12 elements containing a 3x4 rotation matrix</param>
2357
</member>
2358
<member name="M:Tao.Ode.Ode.dMassRotate(Tao.Ode.Ode.dMass@,Tao.Ode.Ode.dMatrix3)">
2359
<summary>
2360
Given mass parameters for some object, adjust them to represent the object rotated by R relative to the body frame.
2361
</summary>
2362
<param name="mass">A dMass</param>
2363
<param name="R">A dMatrix3</param>
2364
</member>
2365
<member name="M:Tao.Ode.Ode.dMassAdd(Tao.Ode.Ode.dMass@,Tao.Ode.Ode.dMass)">
2366
<summary>
2367
Add the mass b to the mass a.
2368
</summary>
2369
<remarks>
2370
mass a is modified to represent the combined mass
2371
</remarks>
2372
<param name="a">id of mass a</param>
2373
<param name="b">id of mass b</param>
2374
</member>
2375
<member name="M:Tao.Ode.Ode.dMassSetTrimesh(Tao.Ode.Ode.dMass@,System.Single,System.IntPtr)">
2376
<summary>
2377
2378
</summary>
2379
<param name="mass"></param>
2380
<param name="density"></param>
2381
<param name="g"></param>
2382
</member>
2383
<member name="M:Tao.Ode.Ode.dGeomDestroy(System.IntPtr)">
2384
<summary>
2385
Destroy a geom, removing it from any space it is in first.
2386
This one function destroys a geom of any type, but to create a geom you
2387
must call a creation function for that type.
2388
When a space is destroyed, if its cleanup mode is 1 (the default) then
2389
all the geoms in that space are automatically destroyed as well.
2390
</summary>
2391
<param name="geom">A dGeomID</param>
2392
</member>
2393
<member name="M:Tao.Ode.Ode.dGeomSetData(System.IntPtr,System.IntPtr)">
2394
<summary>
2395
Set the user-defined data pointer stored in the geom.
2396
2397
WARNING: It is unclear from the ODE source and the documentation what the nature of
2398
user-data is.
2399
This function is here for the sake of completeness because it is part of ODE's public API, but
2400
has NOT been tested in any way.
2401
2402
Use at own risk.
2403
</summary>
2404
<param name="geom">A dGeomID</param>
2405
<param name="data">An IntPtr</param>
2406
</member>
2407
<member name="M:Tao.Ode.Ode.dGeomGetData(System.IntPtr)">
2408
<summary>
2409
Get the user-defined data pointer stored in the geom.
2410
2411
WARNING: It is unclear from the ODE source and the documentation what the nature of
2412
user-data is.
2413
This function is here for the sake of completeness because it is part of ODE's public API, but
2414
has NOT been tested in any way.
2415
2416
Use at own risk.
2417
</summary>
2418
<returns>A void*</returns>
2419
<param name="geom">A dGeomID</param>
2420
</member>
2421
<member name="M:Tao.Ode.Ode.dGeomSetBody(System.IntPtr,System.IntPtr)">
2422
<summary>
2423
Set the body associated with a placeable geom.
2424
2425
Setting a body on a geom automatically combines the position vector and
2426
rotation matrix of the body and geom, so that setting the position or
2427
orientation of one will set the value for both objects.
2428
Setting a body ID of zero gives the geom its own position and rotation,
2429
independent from any body.
2430
If the geom was previously connected to a body then its new independent
2431
position/rotation is set to the current position/rotation of the body.
2432
2433
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2434
</summary>
2435
<param name="geom">A dGeomID</param>
2436
<param name="body">A dBodyID</param>
2437
</member>
2438
<member name="M:Tao.Ode.Ode.dGeomGetBody(System.IntPtr)">
2439
<summary>
2440
Get the body associated with a placeable geom.
2441
</summary>
2442
<returns>A dBodyID</returns>
2443
<param name="geom">A dGeomID</param>
2444
</member>
2445
<member name="M:Tao.Ode.Ode.dGeomSetPosition(System.IntPtr,System.Single,System.Single,System.Single)">
2446
<summary>
2447
Set the position vector of a placeable geom.
2448
2449
This function is analogous to dBodySetPosition.
2450
2451
If the geom is attached to a body, the body's position will also be changed.
2452
2453
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2454
</summary>
2455
<param name="geom">dGeomID of the geom to set</param>
2456
<param name="x">the new X coordinate</param>
2457
<param name="y">the new Y coordinate</param>
2458
<param name="z">the new Z coordinate</param>
2459
</member>
2460
<member name="M:Tao.Ode.Ode.dGeomSetRotation(System.IntPtr,System.Single[])">
2461
<summary>
2462
Set the rotation matrix of a placeable geom.
2463
2464
This function is analogous to dBodySetRotation.
2465
2466
If the geom is attached to a body, the body's rotation will also be changed.
2467
2468
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2469
</summary>
2470
<param name="geom">the geom to set</param>
2471
<param name="R">An array of 12 elements containing the new 3x4 rotation matrix</param>
2472
</member>
2473
<member name="M:Tao.Ode.Ode.dGeomSetRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3)">
2474
<summary>
2475
Set the rotation matrix of a placeable geom.
2476
2477
This function is analogous to dBodySetRotation.
2478
2479
If the geom is attached to a body, the body's rotation will also be changed.
2480
2481
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2482
</summary>
2483
<param name="geom">the geom to set</param>
2484
<param name="R">dMatrix3 containing the new rotation matrix</param>
2485
</member>
2486
<member name="M:Tao.Ode.Ode.dGeomSetQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion)">
2487
<summary>
2488
Set the rotation of a placeable geom.
2489
2490
This function is analogous to dBodySetQuaternion.
2491
2492
If the geom is attached to a body, the body's rotation will also be changed.
2493
2494
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2495
</summary>
2496
<param name="geom">the geom to set</param>
2497
<param name="q">the new rotation</param>
2498
</member>
2499
<member name="M:Tao.Ode.Ode.dGeomSetQuaternion(System.IntPtr,System.Single@)">
2500
<summary>
2501
2502
</summary>
2503
<param name="geom"></param>
2504
<param name="w"></param>
2505
</member>
2506
<member name="M:Tao.Ode.Ode.dGeomGetPosition_(System.IntPtr)">
2507
<summary>
2508
2509
</summary>
2510
<param name="geom"></param>
2511
<returns></returns>
2512
</member>
2513
<member name="M:Tao.Ode.Ode.dGeomGetPosition(System.IntPtr)">
2514
<summary>
2515
Return the geom's position vector.
2516
2517
In native ODE, the returned values are pointers to internal data
2518
structures, so the vectors are valid until any changes are made to the
2519
geom.
2520
2521
If the geom is attached to a body, the body's position vector will be
2522
returned, i.e. the result will be identical to calling dBodyGetPosition
2523
2524
dGeomGetQuaternion copies the geom's quaternion into the space provided.
2525
If the geom is attached to a body, the body's quaternion will be returned,
2526
i.e. the resulting quaternion will be the same as the result of calling dBodyGetQuaternion.
2527
2528
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2529
</summary>
2530
<returns>the geom's position vector</returns>
2531
<param name="geom">the geom to query</param>
2532
</member>
2533
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildByte(System.IntPtr,System.Byte[],System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2534
<summary>
2535
2536
</summary>
2537
<param name="d"></param>
2538
<param name="pHeightData"></param>
2539
<param name="bCopyHeightData"></param>
2540
<param name="width"></param>
2541
<param name="depth"></param>
2542
<param name="widthSamples"></param>
2543
<param name="depthSamples"></param>
2544
<param name="scale"></param>
2545
<param name="offset"></param>
2546
<param name="thickness"></param>
2547
<param name="bWrap"></param>
2548
</member>
2549
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildByte(System.IntPtr,System.IntPtr,System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2550
<summary>
2551
2552
</summary>
2553
<param name="d"></param>
2554
<param name="pHeightData"></param>
2555
<param name="bCopyHeightData"></param>
2556
<param name="width"></param>
2557
<param name="depth"></param>
2558
<param name="widthSamples"></param>
2559
<param name="depthSamples"></param>
2560
<param name="scale"></param>
2561
<param name="offset"></param>
2562
<param name="thickness"></param>
2563
<param name="bWrap"></param>
2564
</member>
2565
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildCallback(System.IntPtr,System.IntPtr,Tao.Ode.Ode.dHeightfieldGetHeight,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2566
<summary>
2567
2568
</summary>
2569
<param name="d"></param>
2570
<param name="pUserData"></param>
2571
<param name="pCallback"></param>
2572
<param name="width"></param>
2573
<param name="depth"></param>
2574
<param name="widthSamples"></param>
2575
<param name="depthSamples"></param>
2576
<param name="scale"></param>
2577
<param name="offset"></param>
2578
<param name="thickness"></param>
2579
<param name="bWrap"></param>
2580
</member>
2581
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildShort(System.IntPtr,System.UInt16[],System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2582
<summary>
2583
2584
</summary>
2585
<param name="d"></param>
2586
<param name="pHeightData"></param>
2587
<param name="bCopyHeightData"></param>
2588
<param name="width"></param>
2589
<param name="depth"></param>
2590
<param name="widthSamples"></param>
2591
<param name="depthSamples"></param>
2592
<param name="scale"></param>
2593
<param name="offset"></param>
2594
<param name="thickness"></param>
2595
<param name="bWrap"></param>
2596
</member>
2597
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildShort(System.IntPtr,System.Int16[],System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2598
<summary>
2599
2600
</summary>
2601
<param name="d"></param>
2602
<param name="pHeightData"></param>
2603
<param name="bCopyHeightData"></param>
2604
<param name="width"></param>
2605
<param name="depth"></param>
2606
<param name="widthSamples"></param>
2607
<param name="depthSamples"></param>
2608
<param name="scale"></param>
2609
<param name="offset"></param>
2610
<param name="thickness"></param>
2611
<param name="bWrap"></param>
2612
</member>
2613
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildShort(System.IntPtr,System.IntPtr,System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2614
<summary>
2615
2616
</summary>
2617
<param name="d"></param>
2618
<param name="pHeightData"></param>
2619
<param name="bCopyHeightData"></param>
2620
<param name="width"></param>
2621
<param name="depth"></param>
2622
<param name="widthSamples"></param>
2623
<param name="depthSamples"></param>
2624
<param name="scale"></param>
2625
<param name="offset"></param>
2626
<param name="thickness"></param>
2627
<param name="bWrap"></param>
2628
</member>
2629
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildSingle(System.IntPtr,System.Single[],System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2630
<summary>
2631
2632
</summary>
2633
<param name="d"></param>
2634
<param name="pHeightData"></param>
2635
<param name="bCopyHeightData"></param>
2636
<param name="width"></param>
2637
<param name="depth"></param>
2638
<param name="widthSamples"></param>
2639
<param name="depthSamples"></param>
2640
<param name="scale"></param>
2641
<param name="offset"></param>
2642
<param name="thickness"></param>
2643
<param name="bWrap"></param>
2644
</member>
2645
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildSingle(System.IntPtr,System.IntPtr,System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2646
<summary>
2647
2648
</summary>
2649
<param name="d"></param>
2650
<param name="pHeightData"></param>
2651
<param name="bCopyHeightData"></param>
2652
<param name="width"></param>
2653
<param name="depth"></param>
2654
<param name="widthSamples"></param>
2655
<param name="depthSamples"></param>
2656
<param name="scale"></param>
2657
<param name="offset"></param>
2658
<param name="thickness"></param>
2659
<param name="bWrap"></param>
2660
</member>
2661
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildDouble(System.IntPtr,System.Double[],System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2662
<summary>
2663
2664
</summary>
2665
<param name="d"></param>
2666
<param name="pHeightData"></param>
2667
<param name="bCopyHeightData"></param>
2668
<param name="width"></param>
2669
<param name="depth"></param>
2670
<param name="widthSamples"></param>
2671
<param name="depthSamples"></param>
2672
<param name="scale"></param>
2673
<param name="offset"></param>
2674
<param name="thickness"></param>
2675
<param name="bWrap"></param>
2676
</member>
2677
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataBuildDouble(System.IntPtr,System.IntPtr,System.Int32,System.Single,System.Single,System.Int32,System.Int32,System.Single,System.Single,System.Single,System.Int32)">
2678
<summary>
2679
2680
</summary>
2681
<param name="d"></param>
2682
<param name="pHeightData"></param>
2683
<param name="bCopyHeightData"></param>
2684
<param name="width"></param>
2685
<param name="depth"></param>
2686
<param name="widthSamples"></param>
2687
<param name="depthSamples"></param>
2688
<param name="scale"></param>
2689
<param name="offset"></param>
2690
<param name="thickness"></param>
2691
<param name="bWrap"></param>
2692
</member>
2693
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataCreate">
2694
<summary>
2695
2696
</summary>
2697
<returns></returns>
2698
</member>
2699
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataDestroy(System.IntPtr)">
2700
<summary>
2701
2702
</summary>
2703
<param name="d"></param>
2704
</member>
2705
<member name="M:Tao.Ode.Ode.dGeomHeightfieldDataSetBounds(System.IntPtr,System.Single,System.Single)">
2706
<summary>
2707
2708
</summary>
2709
<param name="d"></param>
2710
<param name="minHeight"></param>
2711
<param name="maxHeight"></param>
2712
</member>
2713
<member name="M:Tao.Ode.Ode.dGeomHeightfieldGetHeightfieldData(System.IntPtr)">
2714
<summary>
2715
2716
</summary>
2717
<param name="g"></param>
2718
<returns></returns>
2719
</member>
2720
<member name="M:Tao.Ode.Ode.dGeomHeightfieldSetHeightfieldData(System.IntPtr,System.IntPtr)">
2721
<summary>
2722
2723
</summary>
2724
<param name="g"></param>
2725
<param name="d"></param>
2726
</member>
2727
<member name="M:Tao.Ode.Ode.dGeomGetRotation_(System.IntPtr)">
2728
<summary>
2729
2730
</summary>
2731
<param name="geom"></param>
2732
<returns></returns>
2733
</member>
2734
<member name="M:Tao.Ode.Ode.dGeomGetRotation(System.IntPtr)">
2735
<summary>
2736
Get the rotation matrix of a placeable geom.
2737
2738
In native ODE, the returned values are pointers to internal data
2739
structures, so the matrices are valid until any changes are made to the
2740
geom.
2741
2742
If the geom is attached to a body, the body's rotation matrix will be
2743
returned, i.e. the result will be identical to calling dBodyGetRotation.
2744
2745
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2746
</summary>
2747
<returns>the geom's rotation matrix</returns>
2748
<param name="geom">the geom to query</param>
2749
</member>
2750
<member name="M:Tao.Ode.Ode.dGeomGetQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion@)">
2751
<summary>
2752
Get the rotation quaternion of a placeable geom.
2753
2754
dGeomGetQuaternion copies the geom's quaternion into the structure provided.
2755
2756
If the geom is attached to a body, the body's quaternion will be returned,
2757
i.e. the resulting quaternion will be the same as the result of calling dBodyGetQuaternion.
2758
2759
Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE.
2760
</summary>
2761
<param name="geom">the geom to query</param>
2762
<param name="result">a copy of the rotation quaternion.</param>
2763
</member>
2764
<member name="M:Tao.Ode.Ode.dGeomGetAABB(System.IntPtr,Tao.Ode.Ode.Aabb@)">
2765
<summary>
2766
Return in aabb an axis aligned bounding box that surrounds the given geom.
2767
2768
The aabb array has elements (minx, maxx, miny, maxy, minz, maxz).
2769
2770
If the geom is a space, a bounding box that surrounds all contained geoms is returned.
2771
2772
This function may return a pre-computed cached bounding box, if it can
2773
determine that the geom has not moved since the last time the bounding box was computed.
2774
</summary>
2775
<param name="geom">the geom to query</param>
2776
<param name="aabb">the returned bounding box</param>
2777
</member>
2778
<member name="M:Tao.Ode.Ode.dGeomGetAABB(System.IntPtr,System.Single@)">
2779
<summary>
2780
2781
</summary>
2782
<param name="geom"></param>
2783
<param name="minX"></param>
2784
</member>
2785
<member name="M:Tao.Ode.Ode.dGeomIsSpace(System.IntPtr)">
2786
<summary>
2787
Determine if a geom is a space.
2788
</summary>
2789
<returns>An int, non-zero if the given geom is a space, zero otherwise.</returns>
2790
<param name="geom">The geom to query</param>
2791
</member>
2792
<member name="M:Tao.Ode.Ode.dGeomGetSpace(System.IntPtr)">
2793
<summary>
2794
Query for the space containing the specified geom.
2795
</summary>
2796
<returns>The space containing the geom, or NULL if the geom is not contained by a space.</returns>
2797
<param name="geom">the geom to query</param>
2798
</member>
2799
<member name="M:Tao.Ode.Ode.dGeomGetClass(System.IntPtr)">
2800
<summary>
2801
Given a geom, this returns its class number. The standard class numbers are:
2802
dSphereClass Sphere
2803
dBoxClass Box
2804
dCylinderClass Regular flat-ended cylinder
2805
dCapsuleClass Capped cylinder
2806
dPlaneClass Infinite plane (non-placeable)
2807
dRayClass Ray
2808
dConvexClass Convex class
2809
dGeomTransformClass Geometry transform
2810
dTriMeshClass Triangle mesh
2811
dSimpleSpaceClass Simple space
2812
dHashSpaceClass Hash table based space
2813
dQuadTreeSpaceClass Quad-tree based space
2814
dFirstUserClass First user class
2815
dLastUserClass Last user class
2816
2817
User defined classes will return their own numbers.
2818
</summary>
2819
<returns>The geom class ID.</returns>
2820
<param name="geom">the geom to query</param>
2821
</member>
2822
<member name="M:Tao.Ode.Ode.dGeomSetCategoryBits(System.IntPtr,System.UInt64)">
2823
<summary>
2824
Set the "category" bitfield for the given geom.
2825
This bitfield is used by spaces to govern which geoms will interact
2826
with each other.
2827
2828
The bitfield is guaranteed to be at least 32 bits wide.
2829
2830
The default category and collide values for newly created geoms have all bits set.
2831
2832
Note this is NOT CLS-compliant (due to the use of ulong to hold the 32-bit bitfield)
2833
TODO: Implement a CLS-compliant work-around or justify why not
2834
</summary>
2835
<param name="geom">the geom to set</param>
2836
<param name="bits">the new bitfield value</param>
2837
</member>
2838
<member name="M:Tao.Ode.Ode.dGeomSetCollideBits(System.IntPtr,System.UInt64)">
2839
<summary>
2840
Set the "collide" bitfield for the given geom.
2841
2842
This bitfield is used by spaces to govern which geoms will interact
2843
with each other.
2844
2845
The bitfield is guaranteed to be at least 32 bits wide.
2846
2847
The default category and collide values for newly created geoms have all bits set.
2848
2849
Note this is NOT CLS-compliant (due to the use of ulong to hold the 32-bit bitfield)
2850
TODO: Implement a CLS-compliant work-around or justify why not
2851
</summary>
2852
<param name="geom">the geom to set</param>
2853
<param name="bits">the new bitfield value</param>
2854
</member>
2855
<member name="M:Tao.Ode.Ode.dGeomGetCategoryBits(System.IntPtr)">
2856
<summary>
2857
Get the "category" bitfield for the given geom.
2858
This bitfield is used by spaces to govern which geoms will interact
2859
with each other.
2860
2861
The bitfield is guaranteed to be at least 32 bits wide.
2862
2863
The default category and collide values for newly created geoms have all bits set.
2864
2865
Note this is NOT CLS-compliant (due to the use of ulong to hold the 32-bit bitfield)
2866
TODO: Implement a CLS-compliant work-around or justify why not
2867
</summary>
2868
<returns>the current bitfield value</returns>
2869
<param name="geom">the geom to query</param>
2870
</member>
2871
<member name="M:Tao.Ode.Ode.dGeomGetCollideBits(System.IntPtr)">
2872
<summary>
2873
Get the "collide" bitfield for the given geom.
2874
This bitfield is used by spaces to govern which geoms will interact
2875
with each other.
2876
2877
The bitfield is guaranteed to be at least 32 bits wide.
2878
2879
The default category and collide values for newly created geoms have all bits set.
2880
2881
Note this is NOT CLS-compliant (due to the use of ulong to hold the 32-bit bitfield)
2882
TODO: Implement a CLS-compliant work-around or justify why not
2883
</summary>
2884
<returns>the current bitfield</returns>
2885
<param name="geom">the geom to query</param>
2886
</member>
2887
<member name="M:Tao.Ode.Ode.dGeomEnable(System.IntPtr)">
2888
<summary>
2889
Enable a geom.
2890
2891
Disabled geoms are completely ignored by dSpaceCollide and dSpaceCollide2,
2892
although they can still be members of a space.
2893
2894
New geoms are created in the enabled state.
2895
</summary>
2896
<param name="geom">the geom to enable</param>
2897
</member>
2898
<member name="M:Tao.Ode.Ode.dGeomDisable(System.IntPtr)">
2899
<summary>
2900
Disable a geom.
2901
2902
Disabled geoms are completely ignored by dSpaceCollide and dSpaceCollide2,
2903
although they can still be members of a space.
2904
2905
New geoms are created in the enabled state.
2906
</summary>
2907
<param name="geom">the geom to disable</param>
2908
</member>
2909
<member name="M:Tao.Ode.Ode.dGeomIsEnabled(System.IntPtr)">
2910
<summary>
2911
Check if a geom is enabled.
2912
2913
New geoms are created in the enabled state.
2914
</summary>
2915
<returns>Returns non-zero if a geom is enabled, zero otherwise.</returns>
2916
<param name="geom">the geom to query</param>
2917
</member>
2918
<member name="M:Tao.Ode.Ode.dGeomSetOffsetPosition(System.IntPtr,System.Single,System.Single,System.Single)">
2919
<summary>
2920
Geom Offset Overview
2921
Geom offsets allow geom objects to be offset from a body's position.
2922
This is useful for cases where an object has an offset centre of mass,
2923
or is made up out of several geoms each with their own local position.
2924
Native support for geom offsets means that the geomTransform container is now obselete.
2925
2926
The real advantage over geomTransform is that there is a much easier interface for
2927
setting, getting, and modifying a geom's offset from its body.
2928
The elimination of geomTransform simplifies callbacks which no longer have to
2929
special case that geom class type.
2930
In terms of performance, the new code has a negligible performance difference
2931
and a memory improvement compared to using a geomTransform.
2932
2933
Geom Offset and Bodies
2934
An offset only makes sense for geoms which are connected to bodies.
2935
It is an error to attempt to set an offset for a geom which is not connected to a body.
2936
When a geom is disconnected from a body, any offset will be automatically eliminated.
2937
Thus, the possible states a geom can be in are:
2938
* Geom
2939
* Geom on body
2940
* Geom on body, with an offset
2941
To create an offset, just call one of the geomSetOffset functions.
2942
The offset will be automatically created if it does not yet exist.
2943
Geom offsets are normally set by specifying the offset in local coordinates.
2944
An extra set of functions are provided to allow an offset to be determined by
2945
providing world coordinates and subtracting them from the current body position.
2946
These second set of functions, geomSetOffsetWorldPosition(),etc, allow the user to
2947
essentially say "keep the body where it is, and move its geom to this position in the world".
2948
Set the local offset position of a geom from its body.
2949
2950
After this call, the geom will be at a new position determined from the
2951
body's position and the offset.
2952
The geom must be attached to a body.
2953
If the geom did not have an offset, it is automatically created.
2954
</summary>
2955
<param name="geom">the geom to set</param>
2956
<param name="x">the new X coordinate</param>
2957
<param name="y">the new Y coordinate</param>
2958
<param name="z">the new Z coordinate</param>
2959
</member>
2960
<member name="M:Tao.Ode.Ode.dGeomSetOffsetRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3)">
2961
<summary>
2962
Set the local offset rotation matrix of a geom from its body.
2963
2964
Sets the geom's rotational offset in local coordinates.
2965
After this call, the geom will be at a new position determined from the
2966
body's position and the offset.
2967
The geom must be attached to a body.
2968
If the geom did not have an offset, it is automatically created.
2969
</summary>
2970
<param name="geom">the geom to set.</param>
2971
<param name="R">the new rotation matrix.</param>
2972
</member>
2973
<member name="M:Tao.Ode.Ode.dGeomSetOffsetQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion)">
2974
<summary>
2975
Set the local offset rotation of a geom from its body.
2976
2977
Sets the geom's rotational offset in local coordinates.
2978
After this call, the geom will be at a new position determined from the
2979
body's position and the offset.
2980
The geom must be attached to a body.
2981
If the geom did not have an offset, it is automatically created.
2982
</summary>
2983
<param name="geom">the geom to set.</param>
2984
<param name="Q">the new rotation.</param>
2985
</member>
2986
<member name="M:Tao.Ode.Ode.dGeomSetOffsetQuaternion(System.IntPtr,System.Single@)">
2987
<summary>
2988
2989
</summary>
2990
<param name="geom"></param>
2991
<param name="X"></param>
2992
</member>
2993
<member name="M:Tao.Ode.Ode.dGeomSetOffsetWorldPosition(System.IntPtr,System.Single,System.Single,System.Single)">
2994
<summary>
2995
Set the offset position of a geom from its body.
2996
2997
Sets the geom's positional offset to move it to the new world
2998
coordinates.
2999
After this call, the geom will be at the world position passed in,
3000
and the offset will be the difference from the current body position.
3001
The geom must be attached to a body.
3002
If the geom did not have an offset, it is automatically created.
3003
</summary>
3004
<param name="geom">the geom to set.</param>
3005
<param name="x">the new X coordinate.</param>
3006
<param name="y">the new Y coordinate.</param>
3007
<param name="z">the new Z coordinate.</param>
3008
</member>
3009
<member name="M:Tao.Ode.Ode.dGeomSetOffsetWorldRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3)">
3010
<summary>
3011
Set the offset rotation of a geom from its body.
3012
3013
Sets the geom's rotational offset to orient it to the new world
3014
rotation matrix.
3015
After this call, the geom will be at the world orientation passed in,
3016
and the offset will be the difference from the current body orientation.
3017
The geom must be attached to a body.
3018
If the geom did not have an offset, it is automatically created.
3019
</summary>
3020
<param name="geom">the geom to set.</param>>
3021
<param name="R">the new rotation matrix.</param>>
3022
</member>
3023
<member name="M:Tao.Ode.Ode.dGeomSetOffsetWorldRotation(System.IntPtr,System.Single@)">
3024
<summary>
3025
3026
</summary>
3027
<param name="geom"></param>
3028
<param name="M00"></param>
3029
</member>
3030
<member name="M:Tao.Ode.Ode.dGeomSetOffsetWorldQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion)">
3031
<summary>
3032
Set the offset rotation of a geom from its body.
3033
3034
Sets the geom's rotational offset to orient it to the new world
3035
rotation matrix.
3036
After this call, the geom will be at the world orientation passed in,
3037
and the offset will be the difference from the current body orientation.
3038
The geom must be attached to a body.
3039
If the geom did not have an offset, it is automatically created.
3040
</summary>
3041
<param name="geom">the geom to set.</param>
3042
<param name="Q">the new rotation.</param>
3043
</member>
3044
<member name="M:Tao.Ode.Ode.dGeomSetOffsetWorldQuaternion(System.IntPtr,System.Single@)">
3045
<summary>
3046
3047
</summary>
3048
<param name="geom"></param>
3049
<param name="X"></param>
3050
</member>
3051
<member name="M:Tao.Ode.Ode.dGeomClearOffset(System.IntPtr)">
3052
<summary>
3053
Clear any offset from the geom.
3054
3055
If the geom has an offset, it is eliminated and the geom is
3056
repositioned at the body's position. If the geom has no offset,
3057
this function does nothing.
3058
This is more efficient than calling dGeomSetOffsetPosition(zero)
3059
and dGeomSetOffsetRotation(identiy), because this function actually
3060
eliminates the offset, rather than leaving it as the identity transform.
3061
</summary>
3062
<param name="geom">the geom to have its offset destroyed.</param>
3063
</member>
3064
<member name="M:Tao.Ode.Ode.dGeomIsOffset(System.IntPtr)">
3065
<summary>
3066
Check to see whether the geom has an offset.
3067
3068
This function will return non-zero if the offset has been created.
3069
Note that there is a difference between a geom with no offset,
3070
and a geom with an offset that is the identity transform.
3071
In the latter case, although the observed behaviour is identical,
3072
there is a unnecessary computation involved because the geom will
3073
be applying the transform whenever it needs to recalculate its world
3074
position.
3075
</summary>
3076
<param name="geom">the geom to query.</param>
3077
<returns>Non-zero if the geom has an offset, zero otherwise.</returns>
3078
</member>
3079
<member name="M:Tao.Ode.Ode.dGeomGetOffsetPosition(System.IntPtr)">
3080
<summary>
3081
Get the offset position vector of a geom.
3082
3083
Returns the positional offset of the geom in local coordinates.
3084
If the geom has no offset, this function returns the zero vector.
3085
</summary>
3086
<param name="geom">the geom to query.</param>
3087
<returns>A pointer to the geom's offset vector.</returns>
3088
<remarks>
3089
The returned value is a pointer to the geom's internal
3090
data structure. It is valid until any changes are made
3091
to the geom.
3092
</remarks>
3093
</member>
3094
<member name="M:Tao.Ode.Ode.dGeomGetOffsetRotation(System.IntPtr)">
3095
<summary>
3096
Get the offset rotation matrix of a geom.
3097
3098
Returns the rotational offset of the geom as a matrix.
3099
If the geom has no offset, this function returns ????
3100
FIXME - ODE docs incorrect.
3101
</summary>
3102
<param name="geom">the geom to query</param>
3103
<returns>A pointer to the geom's offset rotation matrix.</returns>
3104
<remarks>
3105
The returned value is a pointer to the geom's internal
3106
data structure. It is valid until any changes are made
3107
to the geom.
3108
</remarks>
3109
</member>
3110
<member name="M:Tao.Ode.Ode.dGeomGetOffsetQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion@)">
3111
<summary>
3112
Get the offset rotation quaternion of a geom.
3113
3114
Returns the rotation offset of the geom as a quaternion.
3115
If the geom has no offset, the identity quaternion is returned.
3116
</summary>
3117
<param name="geom">the geom to query</param>
3118
<param name="result">a copy of the rotation quaternion</param>
3119
</member>
3120
<member name="M:Tao.Ode.Ode.dCollide(System.IntPtr,System.IntPtr,System.Int32,Tao.Ode.Ode.dContactGeom[],System.Int32)">
3121
<summary>
3122
Given two geoms o1 and o2 that potentially intersect, generate contact
3123
information for them.
3124
3125
Internally, this just calls the correct class-specific collision functions
3126
for o1 and o2.
3127
3128
"flags" specifies how contacts should be generated if the geoms touch. The
3129
lower 16 bits of flags is an integer that specifies the maximum number
3130
of contact points to generate. Note that if this number is zero, this
3131
function just pretends that it is one - in other words you can not ask
3132
for zero contacts. All other bits in flags must be zero.
3133
In the future the other bits may be used to select from different contact
3134
generation strategies.
3135
3136
"contacts" points to an array of dContactGeom structures. The array must
3137
be able to hold at least the maximum number of contacts. These
3138
dContactGeom structures may be embedded within larger structures in the
3139
array - the skip parameter is the byte offset from one dContactGeom to
3140
the next in the array. If skip is sizeof(dContactGeom) then contact
3141
points to a normal (C-style) array. It is an error for skip to be smaller
3142
than sizeof(dContactGeom).
3143
3144
If the geoms intersect, this function returns the number of contact points
3145
generated (and updates the contact array), otherwise it returns 0 (and the
3146
contact array is not touched).
3147
3148
If a space is passed as o1 or o2 then this function will collide all
3149
objects contained in o1 with all objects contained in o2, and return
3150
the resulting contact points. This method for colliding spaces with
3151
geoms (or spaces with spaces) provides no user control over the
3152
individual collisions. To get that control, use dSpaceCollide or
3153
dSpaceCollide2 instead.
3154
3155
If o1 and o2 are the same geom then this function will do nothing and
3156
return 0. Technically speaking an object intersects with itself, but
3157
it is not useful to find contact points in this case.
3158
3159
This function does not care if o1 and o2 are in the same space or not
3160
(or indeed if they are in any space at all).
3161
</summary>
3162
<returns>An int</returns>
3163
<param name="o1">A dGeomID</param>
3164
<param name="o2">A dGeomID</param>
3165
<param name="flags">An int</param>
3166
<param name="contacts">A dContactGeom[]</param>
3167
<param name="skip">An int</param>
3168
</member>
3169
<member name="M:Tao.Ode.Ode.dSpaceCollide(System.IntPtr,System.IntPtr,Tao.Ode.Ode.dNearCallback)">
3170
<summary>
3171
This determines which pairs of geoms in a space may potentially intersect,
3172
and calls the callback function with each candidate pair.
3173
3174
The callback function is of type dNearCallback, which is defined as:
3175
typedef void dNearCallback (void *data, dGeomID o1, dGeomID o2);
3176
3177
The data argument is passed from dSpaceCollide directly to the callback
3178
function. Its meaning is user defined.
3179
The o1 and o2 arguments are the geoms that may be near each other.
3180
The callback function can call dCollide on o1 and o2 to generate contact
3181
points between each pair. Then these contact points may be added to the
3182
simulation as contact joints. The user's callback function can of course
3183
chose not to call dCollide for any pair, e.g. if the user decides that
3184
those pairs should not interact.
3185
3186
Other spaces that are contained within the colliding space are not treated
3187
specially, i.e. they are not recursed into. The callback function may be
3188
passed these contained spaces as one or both geom arguments.
3189
3190
dSpaceCollide() is guaranteed to pass all intersecting geom pairs to the
3191
callback function, but it may also make mistakes and pass non-intersecting
3192
pairs. The number of mistaken calls depends on the internal algorithms
3193
used by the space. Thus you should not expect that dCollide will return
3194
contacts for every pair passed to the callback.
3195
</summary>
3196
<param name="space">A dSpaceID</param>
3197
<param name="data">An IntPtr</param>
3198
<param name="callback">A dNearCallback</param>
3199
</member>
3200
<member name="M:Tao.Ode.Ode.dSpaceCollide2(System.IntPtr,System.IntPtr,System.IntPtr,Tao.Ode.Ode.dNearCallback)">
3201
<summary>
3202
This function is similar to dSpaceCollide, except that it is passed two
3203
geoms (or spaces) as arguments. It calls the callback for all
3204
potentially intersecting pairs that contain one geom from o1 and one geom
3205
from o2.
3206
3207
The exact behavior depends on the types of o1 and o2:
3208
If one argument is a non-space geom and the other is a space, the
3209
callback is called with all potential intersections between the geom and
3210
the objects in the space.
3211
If both o1 and o2 are spaces then this calls the callback for all potentially
3212
intersecting pairs that contain one geom from o1 and one geom from o2. The
3213
algorithm that is used depends on what kinds of spaces are being collided.
3214
If no optimized algorithm can be selected then this function will resort
3215
to one of the following two strategies:
3216
1. All the geoms in o1 are tested one-by-one against o2.
3217
2. All the geoms in o2 are tested one-by-one against o1.
3218
The strategy used may depend on a number of rules, but in general the
3219
space with less objects has its geoms examined one-by-one.
3220
- If both arguments are the same space, this is equivalent to calling
3221
dSpaceCollide on that space.
3222
- If both arguments are non-space geoms, this simply calls the callback
3223
once with these arguments.
3224
3225
If this function is given a space and an geom X in that same space, this
3226
case is not treated specially. In this case the callback will always be
3227
called with the pair (X,X), because an objects always intersects with
3228
itself. The user may either test for this case and ignore it, or just
3229
pass the pair (X,X) to dCollide (which will be guaranteed to return 0).
3230
</summary>
3231
<param name="o1">A dGeomID</param>
3232
<param name="o2">A dGeomID</param>
3233
<param name="data">An IntPtr</param>
3234
<param name="callback">A dNearCallback</param>
3235
</member>
3236
<member name="M:Tao.Ode.Ode.dCreateSphere(System.IntPtr,System.Single)">
3237
<summary>
3238
Create a sphere geom of the given radius, and return its ID. If space is
3239
nonzero, insert it into that space. The point of reference for a sphere
3240
is its center.
3241
</summary>
3242
<returns>A dGeomID</returns>
3243
<param name="space">A dSpaceID</param>
3244
<param name="radius">A dReal</param>
3245
</member>
3246
<member name="M:Tao.Ode.Ode.dGeomSphereSetRadius(System.IntPtr,System.Single)">
3247
<summary>
3248
Set the radius of the given sphere.
3249
</summary>
3250
<param name="sphere">A dGeomID</param>
3251
<param name="radius">A dReal</param>
3252
</member>
3253
<member name="M:Tao.Ode.Ode.dGeomSphereGetRadius(System.IntPtr)">
3254
<summary>
3255
Return the radius of the given sphere.
3256
</summary>
3257
<returns>A dReal</returns>
3258
<param name="sphere">A dGeomID</param>
3259
</member>
3260
<member name="M:Tao.Ode.Ode.dGeomSpherePointDepth(System.IntPtr,System.Single,System.Single,System.Single)">
3261
<summary>
3262
Return the depth of the point (x,y,z) in the given sphere.
3263
3264
Points inside the geom will have positive depth, points outside it will
3265
have negative depth, and points on the surface will have zero depth.
3266
</summary>
3267
<returns>A dReal</returns>
3268
<param name="sphere">A dGeomID</param>
3269
<param name="x">A dReal</param>
3270
<param name="y">A dReal</param>
3271
<param name="z">A dReal</param>
3272
</member>
3273
<member name="M:Tao.Ode.Ode.dGeomSetConvex(System.IntPtr,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32[])">
3274
<summary>
3275
3276
</summary>
3277
<param name="geom"></param>
3278
<param name="planes"></param>
3279
<param name="planeCount"></param>
3280
<param name="points"></param>
3281
<param name="pointCount"></param>
3282
<param name="polygons"></param>
3283
<returns></returns>
3284
</member>
3285
<member name="M:Tao.Ode.Ode.dCreateConvex(System.IntPtr,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32[])">
3286
<summary>
3287
3288
</summary>
3289
<param name="space"></param>
3290
<param name="planes"></param>
3291
<param name="planeCount"></param>
3292
<param name="points"></param>
3293
<param name="pointCount"></param>
3294
<param name="polygons"></param>
3295
<returns></returns>
3296
</member>
3297
<member name="M:Tao.Ode.Ode.dCreateBox(System.IntPtr,System.Single,System.Single,System.Single)">
3298
<summary>
3299
Create a box geom of the given x/y/z side lengths (lx,ly,lz), and return
3300
its ID.
3301
3302
If space is nonzero, insert it into that space. The point of reference
3303
for a box is its center.
3304
</summary>
3305
<returns>A dGeomID</returns>
3306
<param name="space">the space the box should be inserted to</param>
3307
<param name="lx">length of the x side</param>
3308
<param name="ly">length of the y side</param>
3309
<param name="lz">length of the z side</param>
3310
</member>
3311
<member name="M:Tao.Ode.Ode.dGeomBoxSetLengths(System.IntPtr,System.Single,System.Single,System.Single)">
3312
<summary>
3313
Set the side lengths of the given box.
3314
</summary>
3315
<param name="box">the box to be set</param>
3316
<param name="lx">length of the x side</param>
3317
<param name="ly">length of the y side</param>
3318
<param name="lz">length of the z side</param>
3319
</member>
3320
<member name="M:Tao.Ode.Ode.dGeomBoxGetLengths(System.IntPtr,Tao.Ode.Ode.dVector3@)">
3321
<summary>
3322
Return in result the side lengths of the given box.
3323
</summary>
3324
<param name="box">the box to query</param>
3325
<param name="result">vector3 containing the side lengths</param>
3326
</member>
3327
<member name="M:Tao.Ode.Ode.dGeomBoxGetLengths(System.IntPtr,System.Single@)">
3328
<summary>
3329
3330
</summary>
3331
<param name="geom"></param>
3332
<param name="x"></param>
3333
</member>
3334
<member name="M:Tao.Ode.Ode.dGeomCopyOffsetPosition(System.IntPtr,Tao.Ode.Ode.dVector3@)">
3335
<summary>
3336
3337
</summary>
3338
<param name="geom"></param>
3339
<param name="pos"></param>
3340
<returns></returns>
3341
</member>
3342
<member name="M:Tao.Ode.Ode.dGeomCopyOffsetPosition(System.IntPtr,System.Single@)">
3343
<summary>
3344
3345
</summary>
3346
<param name="geom"></param>
3347
<param name="X"></param>
3348
<returns></returns>
3349
</member>
3350
<member name="M:Tao.Ode.Ode.dGeomCopyOffsetRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3@)">
3351
<summary>
3352
3353
</summary>
3354
<param name="geom"></param>
3355
<param name="R"></param>
3356
<returns></returns>
3357
</member>
3358
<member name="M:Tao.Ode.Ode.dGeomCopyOffsetRotation(System.IntPtr,System.Single@)">
3359
<summary>
3360
3361
</summary>
3362
<param name="geom"></param>
3363
<param name="M00"></param>
3364
<returns></returns>
3365
</member>
3366
<member name="M:Tao.Ode.Ode.dGeomCopyPosition(System.IntPtr,Tao.Ode.Ode.dVector3@)">
3367
<summary>
3368
3369
</summary>
3370
<param name="geom"></param>
3371
<param name="pos"></param>
3372
</member>
3373
<member name="M:Tao.Ode.Ode.dGeomCopyPosition(System.IntPtr,System.Single@)">
3374
<summary>
3375
3376
</summary>
3377
<param name="geom"></param>
3378
<param name="X"></param>
3379
</member>
3380
<member name="M:Tao.Ode.Ode.dGeomCopyRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3@)">
3381
<summary>
3382
3383
</summary>
3384
<param name="geom"></param>
3385
<param name="R"></param>
3386
</member>
3387
<member name="M:Tao.Ode.Ode.dGeomCopyRotation(System.IntPtr,System.Single@)">
3388
<summary>
3389
3390
</summary>
3391
<param name="geom"></param>
3392
<param name="M00"></param>
3393
</member>
3394
<member name="M:Tao.Ode.Ode.dGeomBoxPointDepth(System.IntPtr,System.Single,System.Single,System.Single)">
3395
<summary>
3396
Return the depth of the point (x,y,z) in the given box.
3397
3398
Points inside the geom will have positive depth, points outside it will
3399
have negative depth, and points on the surface will have zero depth.
3400
</summary>
3401
<returns>the depth of the point</returns>
3402
<param name="box">the box to query</param>
3403
<param name="x">the x-coordinate of the point</param>
3404
<param name="y">the y-coordinate of the point</param>
3405
<param name="z">the z-coordinate of the point</param>
3406
</member>
3407
<member name="M:Tao.Ode.Ode.dCreatePlane(System.IntPtr,System.Single,System.Single,System.Single,System.Single)">
3408
<summary>
3409
Create a plane geom of the given parameters, and return its ID.
3410
3411
If space is nonzero, insert it into that space. The plane equation is
3412
a*x+b*y+c*z = d
3413
3414
The plane's normal vector is (a,b,c), and it must have length 1.
3415
3416
Planes are non-placeable geoms. This means that, unlike placeable geoms,
3417
planes do not have an assigned position and rotation. This means that
3418
the parameters (a,b,c,d) are always in global coordinates. In other words
3419
it is assumed that the plane is always part of the static environment and
3420
not tied to any movable object.
3421
</summary>
3422
<returns>the plane</returns>
3423
<param name="space">the space to insert the plane into</param>
3424
<param name="a">the a parameter of the plane</param>
3425
<param name="b">the b parameter of the plane</param>
3426
<param name="c">the c parameter of the plane</param>
3427
<param name="d">the d parameter of the plane</param>
3428
</member>
3429
<member name="M:Tao.Ode.Ode.dGeomPlaneSetParams(System.IntPtr,System.Single,System.Single,System.Single,System.Single)">
3430
<summary>
3431
Set the parameters of the given plane.
3432
</summary>
3433
<param name="plane">the plane to set</param>
3434
<param name="a">the a parameter to set</param>
3435
<param name="b">the b parameter to set</param>
3436
<param name="c">the c parameter to set</param>
3437
<param name="d">the d parameter to set</param>
3438
</member>
3439
<member name="M:Tao.Ode.Ode.dGeomPlaneGetParams(System.IntPtr,Tao.Ode.Ode.dVector4@)">
3440
<summary>
3441
Return in result the parameters of the given plane.
3442
</summary>
3443
<param name="plane">the plane to query</param>
3444
<param name="result">A dVector4 containing the plane's parameters</param>
3445
</member>
3446
<member name="M:Tao.Ode.Ode.dGeomPlanePointDepth(System.IntPtr,System.Single,System.Single,System.Single)">
3447
<summary>
3448
Return the depth of the point (x,y,z) in the given plane.
3449
3450
Points inside the geom will have positive depth, points outside it will
3451
have negative depth, and points on the surface will have zero depth.
3452
</summary>
3453
<returns>the depth of the point as a dReal</returns>
3454
<param name="plane">the plane to query</param>
3455
<param name="x">the x coordinate of the point</param>
3456
<param name="y">the y coordinate of the point</param>
3457
<param name="z">the z coordinate of the point</param>
3458
</member>
3459
<member name="M:Tao.Ode.Ode.dCreateCapsule(System.IntPtr,System.Single,System.Single)">
3460
<summary>
3461
Create a capsule geom of the given parameters, and return its ID.
3462
If space is nonzero, insert it into that space.
3463
3464
A capsule is like a normal cylinder except it has half-sphere
3465
caps at its ends. This feature makes the internal collision detection
3466
code particularly fast and accurate. The cylinder's length, not counting
3467
the caps, is given by length. The cylinder is aligned along the geom's
3468
local Z axis. The radius of the caps, and of the cylinder itself, is
3469
given by radius.
3470
</summary>
3471
<returns>the capsule</returns>
3472
<param name="space">the space to add the capsule to</param>
3473
<param name="radius">the radius of the capsule</param>
3474
<param name="length">the length of the capsule</param>
3475
</member>
3476
<member name="M:Tao.Ode.Ode.dGeomCapsuleSetParams(System.IntPtr,System.Single,System.Single)">
3477
<summary>
3478
Set the parameters of the given capsule.
3479
</summary>
3480
<param name="capsule">the capsule to manipulate</param>
3481
<param name="radius">the new radius</param>
3482
<param name="length">the new length</param>
3483
</member>
3484
<member name="M:Tao.Ode.Ode.dGeomCapsuleGetParams(System.IntPtr,System.Single@,System.Single@)">
3485
<summary>
3486
Return in radius and length the parameters of the given capsule.
3487
</summary>
3488
<param name="capsule">the capsule to query</param>
3489
<param name="radius">a reference to the dReal variable to hold the returned radius</param>
3490
<param name="length">a reference to the dReal variable to hold the returned length</param>
3491
</member>
3492
<member name="M:Tao.Ode.Ode.dGeomCapsulePointDepth(System.IntPtr,System.Single,System.Single,System.Single)">
3493
<summary>
3494
Return the depth of the point (x,y,z) in the given capsule.
3495
3496
Points inside the geom will have positive depth, points outside it will
3497
have negative depth, and points on the surface will have zero depth.
3498
</summary>
3499
<returns>the depth of the point</returns>
3500
<param name="capsule">the capsule to query</param>
3501
<param name="x">the x coordinate of the point</param>
3502
<param name="y">the y coordinate of the point</param>
3503
<param name="z">the z coordinate of the point</param>
3504
</member>
3505
<member name="M:Tao.Ode.Ode.dCreateCylinder(System.IntPtr,System.Single,System.Single)">
3506
<summary>
3507
Create a (flat-ended) cylinder geom of the given parameters, and return its ID.
3508
If space is nonzero, insert it into that space.
3509
3510
The cylinder's length is given by length. The cylinder is aligned along the geom's
3511
local Z axis.
3512
The radius of the cylinder is given by radius.
3513
</summary>
3514
<returns>the cylinder id</returns>
3515
<param name="space">the space to add the cylinder to</param>
3516
<param name="radius">the radius of the cylinder</param>
3517
<param name="length">the length of the cylinder</param>
3518
</member>
3519
<member name="M:Tao.Ode.Ode.dGeomCylinderSetParams(System.IntPtr,System.Single,System.Single)">
3520
<summary>
3521
Set the parameters of the given cylinder.
3522
</summary>
3523
<param name="cylinder">the cylinder to manipulate</param>
3524
<param name="radius">the new radius</param>
3525
<param name="length">the new length</param>
3526
</member>
3527
<member name="M:Tao.Ode.Ode.dGeomCylinderGetParams(System.IntPtr,System.Single@,System.Single@)">
3528
<summary>
3529
Return in radius and length the parameters of the given cylinder.
3530
</summary>
3531
<param name="cylinder">the cylinder to query</param>
3532
<param name="radius">a reference to the dReal variable to hold the returned radius</param>
3533
<param name="length">a reference to the dReal variable to hold the returned length</param>
3534
</member>
3535
<member name="M:Tao.Ode.Ode.dCreateRay(System.IntPtr,System.Single)">
3536
<summary>
3537
Create a ray geom of the given length, and return its ID.
3538
3539
If space is nonzero, insert it into that space.
3540
</summary>
3541
<remarks>
3542
A ray is different from all the other geom classes in that it does not
3543
represent a solid object. It is an infinitely thin line that starts from
3544
the geom's position and extends in the direction of the geom's local Z-axis.
3545
3546
Calling dCollide between a ray and another geom will result in at most one
3547
contact point. Rays have their own conventions for the contact information
3548
in the dContactGeom structure (thus it is not useful to create contact
3549
joints from this information):
3550
3551
pos - This is the point at which the ray intersects the surface of the
3552
other geom, regardless of whether the ray starts from inside or
3553
outside the geom.
3554
normal - This is the surface normal of the other geom at the contact point.
3555
if dCollide is passed the ray as its first geom then the normal
3556
will be oriented correctly for ray reflection from that surface
3557
(otherwise it will have the opposite sign).
3558
depth - This is the distance from the start of the ray to the contact point.
3559
3560
Rays are useful for things like visibility testing, determining the path of
3561
projectiles or light rays, and for object placement.
3562
</remarks>
3563
<returns>the id of the new ray</returns>
3564
<param name="space">the space to add the ray to</param>
3565
<param name="length">the length of the ray</param>
3566
</member>
3567
<member name="M:Tao.Ode.Ode.dGeomRaySetLength(System.IntPtr,System.Single)">
3568
<summary>
3569
Set the length of the given ray.
3570
</summary>
3571
<param name="ray">the ray to change</param>
3572
<param name="length">the new length of the ray</param>
3573
</member>
3574
<member name="M:Tao.Ode.Ode.dGeomRayGetLength(System.IntPtr)">
3575
<summary>
3576
Get the length of the given ray.
3577
</summary>
3578
<returns>the length of the ray</returns>
3579
<param name="ray">the ray to query</param>
3580
</member>
3581
<member name="M:Tao.Ode.Ode.dGeomRaySet(System.IntPtr,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
3582
<summary>
3583
Set the starting position (px,py,pz) and direction (dx,dy,dz) of the given ray.
3584
The ray's rotation matrix will be adjusted so that the local Z-axis is aligned
3585
with the direction.
3586
3587
Note that this does not adjust the ray's length.
3588
</summary>
3589
<param name="ray">the ray to set</param>
3590
<param name="px">x-coordinate of the starting position</param>
3591
<param name="py">y-coordinate of the starting position</param>
3592
<param name="pz">z-coordinate of the starting position</param>
3593
<param name="dx">x-coordinate of the direction</param>
3594
<param name="dy">y-coordinate of the direction</param>
3595
<param name="dz">z-coordinate of the direction</param>
3596
</member>
3597
<member name="M:Tao.Ode.Ode.dGeomRayGet(System.IntPtr,Tao.Ode.Ode.dVector3@,Tao.Ode.Ode.dVector3@)">
3598
<summary>
3599
Get the starting position (start) and direction (dir) of the ray.
3600
The returned direction will be a unit length vector.
3601
</summary>
3602
<param name="ray">the ray to query</param>
3603
<param name="start">dVector3 containing the returned start position</param>
3604
<param name="dir">dVector3 containing the returned direction</param>
3605
</member>
3606
<member name="M:Tao.Ode.Ode.dGeomRayGet(System.IntPtr,System.Single@,System.Single@)">
3607
<summary>
3608
3609
</summary>
3610
<param name="ray"></param>
3611
<param name="startX"></param>
3612
<param name="dirX"></param>
3613
</member>
3614
<member name="M:Tao.Ode.Ode.dGeomRaySetParams(System.IntPtr,System.Int32,System.Int32)">
3615
<summary>
3616
Set ray flags that influence ray collision detection.
3617
3618
These flags are currently only noticed by the trimesh collider, because they can make a major difference there.
3619
</summary>
3620
<param name="g">the ray to set</param>
3621
<param name="FirstContact">An int representing first contact - undocumented in ODE</param>
3622
<param name="BackfaceCull">An int representing backface cull - undocumented in ODE</param>
3623
</member>
3624
<member name="M:Tao.Ode.Ode.dGeomRayGetParams(System.IntPtr,System.Int32@,System.Int32@)">
3625
<summary>
3626
Get ray flags that influence ray collision detection.
3627
</summary>
3628
<param name="g">the ray to query</param>
3629
<param name="FirstContact">An int representing first contact - undocumented in ODE</param>
3630
<param name="BackfaceCull">An int representing backface cull - undocumented in ODE</param>
3631
</member>
3632
<member name="M:Tao.Ode.Ode.dGeomRayGetParams(System.IntPtr,System.Int32[],System.Int32[])">
3633
<summary>
3634
Get ray flags that influence ray collision detection.
3635
TODO: Document me - Not documented in ODE
3636
</summary>
3637
<param name="g">the ray to query</param>
3638
<param name="FirstContact">An int[]</param>
3639
<param name="BackfaceCull">An int[]</param>
3640
</member>
3641
<member name="M:Tao.Ode.Ode.dGeomRaySetClosestHit(System.IntPtr,System.Int32)">
3642
<summary>
3643
Set the closest hit parameter for a ray
3644
TODO: Document me - not documented in ODE
3645
</summary>
3646
<param name="g">the ray to set</param>
3647
<param name="closestHit">An int representing closest hit - not documented in ODE</param>
3648
</member>
3649
<member name="M:Tao.Ode.Ode.dGeomRayGetClosestHit(System.IntPtr)">
3650
<summary>
3651
Get the closest hit parameter for a ray
3652
TODO: Document me - not documented in ODE
3653
</summary>
3654
<returns>An int representing the closest hit parameter</returns>
3655
<param name="g">the ray to query</param>
3656
</member>
3657
<member name="M:Tao.Ode.Ode.dCreateGeomTransform(System.IntPtr)">
3658
<summary>
3659
Create a new geometry transform object, and return its ID.
3660
NOTE: The new Geometry offset API is favored over transforms.
3661
3662
If space is nonzero, insert it into that space.
3663
On creation the encapsulated geometry is set to 0.
3664
</summary>
3665
<remarks>
3666
A geometry transform `T' is a geom that encapsulates another geom `E',
3667
allowing E to be positioned and rotated arbitrarily with respect to
3668
its point of reference.
3669
Most placeable geoms (like the sphere and box) have their point of
3670
reference corresponding to their center of mass, allowing them to be
3671
easily connected to dynamics objects. Transform objects give you more
3672
flexibility - for example, you can offset the center of a sphere, or
3673
rotate a cylinder so that its axis is something other than the default.
3674
T mimics the object E that it encapsulates: T is inserted into a space
3675
and attached to a body as though it was E. E itself must not be inserted
3676
into a space or attached to a body. E's position and rotation are set to
3677
constant values that say how it is transformed relative to T. If E's
3678
position and rotation are left at their default values, T will behave
3679
exactly like E would have if you had used it directly.
3680
</remarks>
3681
<returns>A dGeomID</returns>
3682
<param name="space">A dSpaceID</param>
3683
</member>
3684
<member name="M:Tao.Ode.Ode.dGeomTransformSetGeom(System.IntPtr,System.IntPtr)">
3685
<summary>
3686
Set the geom that the geometry transform g encapsulates. The object obj
3687
must not be inserted into any space, and must not be associated with any body.
3688
3689
If g has its clean-up mode turned on, and it already encapsulates an object,
3690
the old object will be destroyed before it is replaced with the new one.
3691
</summary>
3692
<param name="g">A dGeomID</param>
3693
<param name="obj">A dGeomID</param>
3694
</member>
3695
<member name="M:Tao.Ode.Ode.dGeomTransformGetGeom(System.IntPtr)">
3696
<summary>
3697
Get the geom that the geometry transform g encapsulates.
3698
</summary>
3699
<returns>A dGeomID</returns>
3700
<param name="g">A dGeomID</param>
3701
</member>
3702
<member name="M:Tao.Ode.Ode.dGeomTransformSetCleanup(System.IntPtr,System.Int32)">
3703
<summary>
3704
Set the clean-up mode of geometry transform g.
3705
3706
If the clean-up mode is 1, then the encapsulated object will be destroyed
3707
when the geometry transform is destroyed.
3708
If the clean-up mode is 0 this does not happen.
3709
3710
The default clean-up mode is 0.
3711
</summary>
3712
<param name="g">A dGeomID</param>
3713
<param name="mode">An int</param>
3714
</member>
3715
<member name="M:Tao.Ode.Ode.dGeomTransformGetCleanup(System.IntPtr)">
3716
<summary>
3717
Get the clean-up mode of geometry transform g.
3718
3719
If the clean-up mode is 1, then the encapsulated object will be destroyed
3720
when the geometry transform is destroyed.
3721
If the clean-up mode is 0 this does not happen.
3722
3723
The default clean-up mode is 0.
3724
</summary>
3725
<returns>An int</returns>
3726
<param name="g">A dGeomID</param>
3727
</member>
3728
<member name="M:Tao.Ode.Ode.dGeomTransformSetInfo(System.IntPtr,System.Int32)">
3729
<summary>
3730
Set and get the "information" mode of geometry transform g.
3731
3732
The mode can be 0 or 1. The default mode is 0.
3733
With mode 0, when a transform object is collided with another object
3734
(using dCollide (tx_geom,other_geom,...)), the g1 field of the
3735
dContactGeom structure is set to the geom that is encapsulated by the
3736
transform object. This value of g1 allows the caller to interrogate the
3737
type of the geom that is transformed, but it does not allow the caller
3738
to determine the position in global coordinates or the associated body,
3739
as both of these properties are used differently for encapsulated geoms.
3740
With mode 1, the g1 field of the dContactGeom structure is set to the
3741
transform object itself. This makes the object appear just like any other
3742
kind of geom, as dGeomGetBody will return the attached body, and
3743
dGeomGetPosition will return the global position.
3744
To get the actual type of the encapsulated geom in this case,
3745
dGeomTransformGetGeom must be used.
3746
</summary>
3747
<param name="g">A dGeomID</param>
3748
<param name="mode">An int</param>
3749
</member>
3750
<member name="M:Tao.Ode.Ode.dGeomTransformGetInfo(System.IntPtr)">
3751
<summary>
3752
Set and get the "information" mode of geometry transform g.
3753
3754
The mode can be 0 or 1. The default mode is 0.
3755
</summary>
3756
<returns>An int</returns>
3757
<param name="g">A dGeomID</param>
3758
</member>
3759
<member name="M:Tao.Ode.Ode.dCreateGeomClass(Tao.Ode.Ode.dGeomClass)">
3760
<summary>
3761
Create a custom (user) geom class and register with ODE.
3762
Note ODE limits the number of custom geom classes that can be generated.
3763
3764
NOTE also that this is untested and may need modification/clarification before
3765
being considered stable.
3766
</summary>
3767
<param name="customclass">the custom class object</param>
3768
<returns>a class number for the new custom geom class</returns>
3769
</member>
3770
<member name="M:Tao.Ode.Ode.dGeomGetClassData(System.IntPtr)">
3771
<summary>Return a class data for a custom user defined geom</summary>
3772
<param name="geom"></param>
3773
</member>
3774
<member name="M:Tao.Ode.Ode.dCreateGeom(System.Int32)">
3775
<summary>
3776
Create an instance of a custom user-defined geom class.
3777
</summary>
3778
<param name="classnum">the class number of the custom geom, generated by dCreateGeomClass</param>
3779
<returns>the id (handle) of the new geom instance</returns>
3780
</member>
3781
<member name="M:Tao.Ode.Ode.dClosestLineSegmentPoints(Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3@,Tao.Ode.Ode.dVector3@)">
3782
<summary>
3783
Given two line segments A and B with endpoints a1-a2 and b1-b2, return
3784
the points on A and B that are closest to each other (in cp1 and cp2).
3785
3786
In the case of parallel lines where there are multiple solutions, a
3787
solution involving the endpoint of at least one line will be returned.
3788
This will work correctly for zero length lines, e.g. if a1==a2 and/or b1==b2.
3789
</summary>
3790
<param name="a1">A dVector3 containing endpoint 1 of line segment A</param>
3791
<param name="a2">A dVector3 containing endpoint 2 of line segment A</param>
3792
<param name="b1">A dVector3 containing endpoint 1 of line segment B</param>
3793
<param name="b2">A dVector3 containing endpoint 2 of line segment B</param>
3794
<param name="cp1">A dVector3 returning the closest point on A</param>
3795
<param name="cp2">A dVector3 returning the closest point on B</param>
3796
</member>
3797
<member name="M:Tao.Ode.Ode.dBoxTouchesBox(Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dMatrix3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dMatrix3,Tao.Ode.Ode.dVector3)">
3798
<summary>
3799
Given boxes (p1,R1,side1) and (p2,R2,side2), return 1 if they intersect
3800
or 0 if not. p is the center of the box, R is the rotation matrix for
3801
the box, and side is a vector of x/y/z side lengths.
3802
</summary>
3803
<returns>1 if the boxes intersect, 0 if they do not</returns>
3804
<param name="_p1">A dVector3 containing the center coordinates for box 1</param>
3805
<param name="R1">A dMatrix3 containing the rotation matrix for box 1</param>
3806
<param name="side1">A dVector3 containing the side lengths (x/y/z) for box 1</param>
3807
<param name="_p2">A dVector3 containing the center coordinates for box 2</param>
3808
<param name="R2">A dMatrix3 containing the rotation matrix for box 2</param>
3809
<param name="side2">A dVector3 containing the side lengths (x/y/z) for box 2</param>
3810
</member>
3811
<member name="M:Tao.Ode.Ode.dBoxBox(Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dMatrix3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dMatrix3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3@,System.Single@,System.Int32@,System.Int32,Tao.Ode.Ode.dContactGeom[]@,System.Int32)">
3812
<summary>
3813
given two boxes (p1,R1,side1) and (p2,R2,side2), collide them together and
3814
generate contact points. this returns 0 if there is no contact otherwise
3815
it returns the number of contacts generated.
3816
`normal' returns the contact normal.
3817
`depth' returns the maximum penetration depth along that normal.
3818
`return_code' returns a number indicating the type of contact that was
3819
detected:
3820
1,2,3 = box 2 intersects with a face of box 1
3821
4,5,6 = box 1 intersects with a face of box 2
3822
7..15 = edge-edge contact
3823
`maxc' is the maximum number of contacts allowed to be generated, i.e.
3824
the size of the `contact' array.
3825
`contact' and `skip' are the contact array information provided to the
3826
collision functions.
3827
3828
this function only fills in the position and depth fields.
3829
</summary>
3830
TODO: Needs testing.
3831
<param name="p1">A dVector3 containing the center coordinates for box 1</param>
3832
<param name="R1">A dMatrix3 containing the rotation matrix for box 1</param>
3833
<param name="side1">A dVector3 containing the side lengths (x/y/z) for box 1</param>
3834
<param name="p2">A dVector3 containing the center coordinates for box 2</param>
3835
<param name="R2">A dMatrix3 containing the rotation matrix for box 2</param>
3836
<param name="side2">A dVector3 containing the side lengths (x/y/z) for box 1</param>
3837
<param name="normal">returns the value of the contact normal</param>
3838
<param name="depth">returns the maximum penetration along the contact normal</param>
3839
<param name="return_code">returns the type of contact detected</param>
3840
<param name="maxc">specifies the maximum number of contacts allowed (should match size of contact array)</param>
3841
<param name="contact">an array of ContactGeoms returning the contact information</param>
3842
<param name="skip">contact array information provided to collision functions. Size of contact geom?</param>
3843
<returns>the number of contacts generated</returns>
3844
</member>
3845
<member name="M:Tao.Ode.Ode.dInfiniteAABB(System.IntPtr,Tao.Ode.Ode.Aabb@)">
3846
<summary>
3847
This function can be used as the AABB-getting function in a geometry class,
3848
if you don't want to compute tight bounds for the AABB.
3849
It returns +/- infinity in each direction.
3850
</summary>
3851
<param name="geom">the geom</param>
3852
<param name="aabb">the returned Aabb with all positions set to +/- infinity</param>
3853
</member>
3854
<member name="M:Tao.Ode.Ode.dCloseODE">
3855
<summary>
3856
This deallocates some extra memory used by ODE that can not be deallocated using the normal destroy functions,
3857
e.g. dWorldDestroy.
3858
You can use this function at the end of your application to prevent memory leak checkers from complaining about ODE.
3859
</summary>
3860
</member>
3861
<member name="M:Tao.Ode.Ode.dSimpleSpaceCreate(System.IntPtr)">
3862
<summary>
3863
Create a simple space.
3864
3865
If space is nonzero, insert the new space into that space.
3866
</summary>
3867
<returns>A dSpaceID</returns>
3868
<param name="space">A dSpaceID</param>
3869
</member>
3870
<member name="M:Tao.Ode.Ode.dHashSpaceCreate(System.IntPtr)">
3871
<summary>
3872
Create a multi-resolution hash table space.
3873
3874
If space is nonzero, insert the new space into that space.
3875
</summary>
3876
<returns>A dSpaceID</returns>
3877
<param name="space">A dSpaceID</param>
3878
</member>
3879
<member name="M:Tao.Ode.Ode.dQuadTreeSpaceCreate(System.IntPtr,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,System.Int32)">
3880
<summary>
3881
Creates a quadtree space.
3882
If space is nonzero, insert the new space into that space.
3883
3884
Center and Extents define the size of the root block.
3885
Depth sets the depth of the tree - the number of blocks that are created is 4^Depth
3886
</summary>
3887
<returns>A dSpaceID</returns>
3888
<param name="space">handle of space to replace</param>
3889
<param name="Center">center of root block</param>
3890
<param name="Extents">extents of root block</param>
3891
<param name="Depth">depth of tree</param>
3892
</member>
3893
<member name="M:Tao.Ode.Ode.dQuadTreeSpaceCreate(System.IntPtr,System.Single@,System.Single@,System.Int32)">
3894
<summary>
3895
3896
</summary>
3897
<param name="space"></param>
3898
<param name="centerX"></param>
3899
<param name="extentsX"></param>
3900
<param name="depth"></param>
3901
<returns></returns>
3902
</member>
3903
<member name="M:Tao.Ode.Ode.dSpaceDestroy(System.IntPtr)">
3904
<summary>
3905
This destroys a space.
3906
It functions exactly like dGeomDestroy except that it takes a dSpaceID argument.
3907
When a space is destroyed, if its cleanup mode is 1 (the default) then all the
3908
geoms in that space are automatically destroyed as well.
3909
</summary>
3910
<param name="space">the space to destroy</param>
3911
</member>
3912
<member name="M:Tao.Ode.Ode.dHashSpaceSetLevels(System.IntPtr,System.Int32,System.Int32)">
3913
<summary>
3914
Sets some parameters for a multi-resolution hash table space.
3915
3916
The smallest and largest cell sizes used in the hash table will be
3917
2^minlevel and 2^maxlevel respectively.
3918
3919
minlevel must be less than or equal to maxlevel.
3920
</summary>
3921
<param name="space">the space to modify</param>
3922
<param name="minlevel">minimum level (determines smallest cell size).</param>
3923
<param name="maxlevel">maximum level (determines largest cell size)</param>
3924
</member>
3925
<member name="M:Tao.Ode.Ode.dHashSpaceGetLevels(System.IntPtr,System.Int32@,System.Int32@)">
3926
<summary>
3927
Get some parameters for a multi-resolution hash table space.
3928
3929
The smallest and largest cell sizes used in the hash table will be
3930
2^minlevel and 2^maxlevel respectively.
3931
3932
minlevel must be less than or equal to maxlevel.
3933
3934
The minimum and maximum levels are returned through pointers.
3935
If a pointer is zero then it is ignored and no argument is returned.
3936
</summary>
3937
<param name="space">the space to query</param>
3938
<param name="minlevel">returns current minlevel</param>
3939
<param name="maxlevel">returns current maxlevel</param>
3940
</member>
3941
<member name="M:Tao.Ode.Ode.dSpaceSetCleanup(System.IntPtr,System.Int32)">
3942
<summary>
3943
Set the clean-up mode of the space.
3944
3945
If the clean-up mode is 1, then the contained geoms will be destroyed
3946
when the space is destroyed.
3947
If the clean-up mode is 0 this does not happen.
3948
3949
The default clean-up mode for new spaces is 1.
3950
</summary>
3951
<param name="space">the space to set</param>
3952
<param name="mode">the cleanup mode</param>
3953
</member>
3954
<member name="M:Tao.Ode.Ode.dSpaceGetCleanup(System.IntPtr)">
3955
<summary>
3956
Get the clean-up mode of the space.
3957
</summary>
3958
<returns>the current cleanup mode for the space</returns>
3959
<param name="space">the space to query</param>
3960
</member>
3961
<member name="M:Tao.Ode.Ode.dSpaceAdd(System.IntPtr,System.IntPtr)">
3962
<summary>
3963
Add a geom to a space.
3964
3965
This does nothing if the geom is already in the space.
3966
3967
This function can be called automatically if a space argument is given to
3968
a geom creation function.
3969
</summary>
3970
<param name="space">the space to add the geom to</param>
3971
<param name="geom">the geom to be added</param>
3972
</member>
3973
<member name="M:Tao.Ode.Ode.dSpaceRemove(System.IntPtr,System.IntPtr)">
3974
<summary>
3975
Remove a geom from a space.
3976
3977
This does nothing if the geom is not actually in the space.
3978
3979
This function is called automatically by dGeomDestroy if the geom is in a space.
3980
</summary>
3981
<param name="space">the space containing the geom</param>
3982
<param name="geom">the geom to be removed</param>
3983
</member>
3984
<member name="M:Tao.Ode.Ode.dSpaceQuery(System.IntPtr,System.IntPtr)">
3985
<summary>
3986
Return 1 if the given geom is in the given space, or return 0 if it is not.
3987
</summary>
3988
<returns>An int</returns>
3989
<param name="space">the space to query</param>
3990
<param name="geom">the geom to query</param>
3991
</member>
3992
<member name="M:Tao.Ode.Ode.dSpaceClean(System.IntPtr)">
3993
<summary>
3994
Cleans the space
3995
</summary>
3996
<param name="space">the space to clean</param>
3997
</member>
3998
<member name="M:Tao.Ode.Ode.dSpaceGetNumGeoms(System.IntPtr)">
3999
<summary>
4000
Return the number of geoms contained within a space.
4001
</summary>
4002
<returns>the number of geoms in the space</returns>
4003
<param name="space">the space to query</param>
4004
</member>
4005
<member name="M:Tao.Ode.Ode.dSpaceGetGeom(System.IntPtr,System.Int32)">
4006
<summary>
4007
Return the i'th geom contained within the space.
4008
4009
i must range from 0 to dSpaceGetNumGeoms()-1.
4010
4011
If any change is made to the space (including adding and deleting geoms)
4012
then no guarantee can be made about how the index number of any
4013
particular geom will change. Thus no space changes should be made while
4014
enumerating the geoms.
4015
This function is guaranteed to be fastest when the geoms are accessed in
4016
the order 0,1,2,etc. Other non-sequential orders may result in slower
4017
access, depending on the internal implementation.
4018
</summary>
4019
<returns>a handle to the geom</returns>
4020
<param name="space">the space to query</param>
4021
<param name="i">the index number of the geom to get</param>
4022
</member>
4023
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataCreate">
4024
<summary>
4025
Create a dTriMeshData object which is used to store mesh data.
4026
</summary>
4027
<returns>the id of the new trimesh data object</returns>
4028
</member>
4029
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataDestroy(System.IntPtr)">
4030
<summary>
4031
Destroy a dTriMeshData object.
4032
</summary>
4033
<param name="g">the id of the trimesh data object to destroy</param>
4034
</member>
4035
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataSet(System.IntPtr,System.Int32,System.IntPtr@)">
4036
<summary>
4037
In order to efficiently resolve collisions, dCollideTTL needs the
4038
positions of the colliding trimeshes in the previous timestep. This is
4039
used to calculate an estimated velocity of each colliding triangle, which
4040
is used to find the direction of impact, contact normals, etc. This
4041
requires the user to update these variables at every timestep. This update
4042
is performed outside of ODE, so it is not included in ODE itself.
4043
The code to do this looks something like this:
4044
const double *DoubleArrayPtr =
4045
Bodies[BodyIndex].TransformationMatrix->GetArray();
4046
dGeomTriMeshDataSet( TriMeshData,
4047
TRIMESH_LAST_TRANSFORMATION,
4048
(void *) DoubleArrayPtr );
4049
4050
The transformation matrix is the standard 4x4 homogeneous transform matrix,
4051
and the "DoubleArray" is the standard flattened array of the 16 matrix values.
4052
</summary>
4053
<param name="g">the trimesh dataset handle</param>
4054
<param name="data_id">data id, like TRIMESH_LAST_TRANSFORMATION</param>
4055
<param name="data">a reference to the "DoubleArray"</param>
4056
</member>
4057
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataUpdate(System.IntPtr)">
4058
<summary>
4059
4060
</summary>
4061
<param name="g"></param>
4062
</member>
4063
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetData(System.IntPtr)">
4064
<summary>
4065
4066
</summary>
4067
<param name="g"></param>
4068
<returns></returns>
4069
</member>
4070
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetLastTransformUnsafe(System.IntPtr)">
4071
<summary>
4072
4073
</summary>
4074
<param name="geom"></param>
4075
<returns></returns>
4076
</member>
4077
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetLastTransform(System.IntPtr)">
4078
<summary>
4079
4080
</summary>
4081
<param name="geom"></param>
4082
<returns></returns>
4083
</member>
4084
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildSingle(System.IntPtr,Tao.Ode.Ode.dVector3[],System.Int32,System.Int32,System.Int32[],System.Int32,System.Int32)">
4085
<summary>
4086
Build Trimesh data with single precision used in vertex data.
4087
</summary>
4088
<remarks>
4089
Applies to all the dGeomTriMeshDataBuild single and double versions.
4090
4091
(From http://ode.org/ode-latest-userguide.html#sec_10_7_6)
4092
4093
Used for filling a dTriMeshData object with data.
4094
4095
No data is copied here, so the pointers passed into this function must
4096
remain valid.
4097
This is how the strided data works:
4098
struct StridedVertex {
4099
dVector3 Vertex; // 4th component can be left out, reducing memory usage
4100
// Userdata
4101
};
4102
int VertexStride = sizeof (StridedVertex);
4103
4104
struct StridedTri {
4105
int Indices[3];
4106
// Userdata
4107
};
4108
int TriStride = sizeof (StridedTri);
4109
4110
The Normals argument is optional: the normals of the faces of each
4111
trimesh object. For example,
4112
dTriMeshDataID TriMeshData;
4113
TriMeshData = dGeomTriMeshGetTriMeshDataID (
4114
Bodies[BodyIndex].GeomID);
4115
4116
// as long as dReal == floats
4117
dGeomTriMeshDataBuildSingle (TriMeshData,
4118
// Vertices
4119
Bodies[BodyIndex].VertexPositions,
4120
3*sizeof(dReal), (int) numVertices,
4121
// Faces
4122
Bodies[BodyIndex].TriangleIndices,
4123
(int) NumTriangles, 3*sizeof(unsigned int),
4124
// Normals
4125
Bodies[BodyIndex].FaceNormals);
4126
4127
This pre-calculation saves some time during evaluation of the contacts,
4128
but isn't necessary. If you don't want to calculate the face normals
4129
before construction (or if you have enormous trimeshes and know that
4130
only very few faces will be touching and want to save time), just pass
4131
a "NULL" for the Normals argument, and dCollideTTL will take care of the
4132
normal calculations itself.
4133
</remarks>
4134
<param name="g">A dTriMeshDataID</param>
4135
<param name="Vertices">A dVector3[]</param>
4136
<param name="VertexStride">An int</param>
4137
<param name="VertexCount">An int</param>
4138
<param name="Indices">An int[]</param>
4139
<param name="IndexCount">An int</param>
4140
<param name="TriStride">An int</param>
4141
</member>
4142
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildSingle1(System.IntPtr,Tao.Ode.Ode.dVector3[],System.Int32,System.Int32,System.Int32[],System.Int32,System.Int32,Tao.Ode.Ode.dVector3[])">
4143
<summary>
4144
Build Trimesh data with single precision used in vertex data.
4145
This function takes a normals array which is used as a trimesh-trimesh
4146
optimization.
4147
</summary>
4148
<param name="g">A dTriMeshDataID</param>
4149
<param name="Vertices">A dVector3[]</param>
4150
<param name="VertexStride">An int</param>
4151
<param name="VertexCount">An int</param>
4152
<param name="Indices">An int[]</param>
4153
<param name="IndexCount">An int</param>
4154
<param name="TriStride">An int</param>
4155
<param name="Normals">A dVector3[]</param>
4156
</member>
4157
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildDouble(System.IntPtr,Tao.Ode.Ode.dVector3,System.Int32,System.Int32,System.Int32[],System.Int32,System.Int32)">
4158
<summary>
4159
Build Trimesh data with double precision used in vertex data.
4160
</summary>
4161
<param name="g">A dTriMeshDataID</param>
4162
<param name="Vertices">A dVector3</param>
4163
<param name="VertexStride">An int</param>
4164
<param name="VertexCount">An int</param>
4165
<param name="Indices">An int[]</param>
4166
<param name="IndexCount">An int</param>
4167
<param name="TriStride">An int</param>
4168
</member>
4169
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildDouble1(System.IntPtr,Tao.Ode.Ode.dVector3[],System.Int32,System.Int32,System.Int32[],System.Int32,System.Int32,Tao.Ode.Ode.dVector3[])">
4170
<summary>
4171
Build Trimesh data with double precision used in vertex data.
4172
This function takes a normals array which is used as a trimesh-trimesh
4173
optimization.
4174
</summary>
4175
<param name="g">A dTriMeshDataID</param>
4176
<param name="Vertices">A dVector3[]</param>
4177
<param name="VertexStride">An int</param>
4178
<param name="VertexCount">An int</param>
4179
<param name="Indices">An int[]</param>
4180
<param name="IndexCount">An int</param>
4181
<param name="TriStride">An int</param>
4182
<param name="Normals">A dVector3[]</param>
4183
</member>
4184
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildDouble(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.IntPtr,System.Int32,System.Int32,System.IntPtr)">
4185
<summary>
4186
4187
</summary>
4188
<param name="g"></param>
4189
<param name="vertices"></param>
4190
<param name="vertexStride"></param>
4191
<param name="vertexCount"></param>
4192
<param name="indices"></param>
4193
<param name="indexCount"></param>
4194
<param name="triStride"></param>
4195
<param name="normals"></param>
4196
</member>
4197
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildDouble(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.IntPtr,System.Int32,System.Int32)">
4198
<summary>
4199
4200
</summary>
4201
<param name="g"></param>
4202
<param name="vertices"></param>
4203
<param name="vertexStride"></param>
4204
<param name="vertexCount"></param>
4205
<param name="indices"></param>
4206
<param name="indexCount"></param>
4207
<param name="triStride"></param>
4208
</member>
4209
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildSimple(System.IntPtr,Tao.Ode.Ode.dVector3[],System.Int32,System.Int32[],System.Int32)">
4210
<summary>
4211
Simple trimesh build function provided for convenience.
4212
4213
Uses single/double precision vertices and normals depending on the
4214
current value of the dReal alias.
4215
The precision to use depends on which version of the ODE library is being
4216
used - single or double precision. Depends on whether dSINGLE or dDOUBLE is
4217
defined during ODE compilation.
4218
</summary>
4219
<param name="g">A dTriMeshDataID</param>
4220
<param name="Vertices">A dVector3[]</param>
4221
<param name="VertexCount">An int</param>
4222
<param name="Indices">An int[]</param>
4223
<param name="IndexCount">An int</param>
4224
</member>
4225
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildSingle(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.IntPtr,System.Int32,System.Int32)">
4226
<summary>
4227
4228
</summary>
4229
<param name="g"></param>
4230
<param name="vertices"></param>
4231
<param name="vertexStride"></param>
4232
<param name="vertexCount"></param>
4233
<param name="indices"></param>
4234
<param name="indexCount"></param>
4235
<param name="triStride"></param>
4236
</member>
4237
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildSimple1(System.IntPtr,Tao.Ode.Ode.dVector3[],System.Int32,System.Int32[],System.Int32,Tao.Ode.Ode.dVector3[])">
4238
<summary>
4239
Simple trimesh build function provided for convenience.
4240
This version takes a normals array to use for trimesh-trimesh optimization.
4241
4242
Uses single/double precision vertices and normals depending on the
4243
current value of the dReal alias.
4244
The precision to use depends on which version of the ODE library is being
4245
used - single or double precision. Depends on whether dSINGLE or dDOUBLE is
4246
defined during ODE compilation.
4247
</summary>
4248
<param name="g">A dTriMeshDataID</param>
4249
<param name="Vertices">A dVector3[]</param>
4250
<param name="VertexCount">An int</param>
4251
<param name="Indices">An int[]</param>
4252
<param name="IndexCount">An int</param>
4253
<param name="Normals">A dVector3[]</param>
4254
</member>
4255
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataBuildSingle1(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.IntPtr,System.Int32,System.Int32,System.IntPtr)">
4256
<summary>
4257
4258
</summary>
4259
<param name="g"></param>
4260
<param name="vertices"></param>
4261
<param name="vertexStride"></param>
4262
<param name="vertexCount"></param>
4263
<param name="indices"></param>
4264
<param name="indexCount"></param>
4265
<param name="triStride"></param>
4266
<param name="normals"></param>
4267
</member>
4268
<member name="M:Tao.Ode.Ode.dGeomTriMeshSetCallback(System.IntPtr,Tao.Ode.Ode.dTriCallback)">
4269
<summary>
4270
Set per triangle callback for specified trimesh.
4271
</summary>
4272
<param name="g">A dGeomID</param>
4273
<param name="Callback">A dTriCallback</param>
4274
</member>
4275
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetCallback(System.IntPtr)">
4276
<summary>
4277
Get per triangle callback for specified trimesh.
4278
</summary>
4279
<returns>A dTriCallback</returns>
4280
<param name="g">A dGeomID</param>
4281
</member>
4282
<member name="M:Tao.Ode.Ode.dGeomTriMeshSetArrayCallback(System.IntPtr,Tao.Ode.Ode.dTriArrayCallback)">
4283
<summary>
4284
Set per object callback for specified trimesh.
4285
</summary>
4286
<param name="g">A dGeomID</param>
4287
<param name="ArrayCallback">A dTriArrayCallback</param>
4288
</member>
4289
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetArrayCallback(System.IntPtr)">
4290
<summary>
4291
Get per object callback for specified trimesh
4292
</summary>
4293
<returns>A dTriArrayCallback</returns>
4294
<param name="g">A dGeomID</param>
4295
</member>
4296
<member name="M:Tao.Ode.Ode.dGeomTriMeshSetRayCallback(System.IntPtr,Tao.Ode.Ode.dTriRayCallback)">
4297
<summary>
4298
Set ray callback for specified trimesh.
4299
</summary>
4300
<param name="g">A dGeomID</param>
4301
<param name="Callback">A dTriRayCallback</param>
4302
</member>
4303
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetRayCallback(System.IntPtr)">
4304
<summary>
4305
Get ray callback for specified trimesh.
4306
</summary>
4307
<returns>A dTriRayCallback</returns>
4308
<param name="g">A dGeomID</param>
4309
</member>
4310
<member name="M:Tao.Ode.Ode.dCreateTriMesh(System.IntPtr,System.IntPtr,Tao.Ode.Ode.dTriCallback,Tao.Ode.Ode.dTriArrayCallback,Tao.Ode.Ode.dTriRayCallback)">
4311
<summary>
4312
Trimesh class constructor.
4313
4314
The Data member defines the vertex data the newly created triangle mesh will use.
4315
4316
Callbacks are optional.
4317
</summary>
4318
<returns>A dGeomID</returns>
4319
<param name="space">A dSpaceID</param>
4320
<param name="Data">A dTriMeshDataID</param>
4321
<param name="Callback">A dTriCallback</param>
4322
<param name="ArrayCallback">A dTriArrayCallback</param>
4323
<param name="RayCallback">A dTriRayCallback</param>
4324
</member>
4325
<member name="M:Tao.Ode.Ode.dGeomTriMeshSetData(System.IntPtr,System.IntPtr)">
4326
<summary>
4327
Replaces the current vertex data.
4328
</summary>
4329
<param name="g">A dGeomID</param>
4330
<param name="Data">A dTriMeshDataID</param>
4331
</member>
4332
<member name="M:Tao.Ode.Ode.dGeomTriMeshEnableTC(System.IntPtr,System.Int32,System.Int32)">
4333
<summary>
4334
Enable/disable the use of temporal coherence during tri-mesh collision checks.
4335
Temporal coherence can be enabled/disabled per tri-mesh instance/geom class pair,
4336
currently it works for spheres and boxes. The default for spheres and boxes is 'false'.
4337
The 'enable' param should be 1 for true, 0 for false.
4338
Temporal coherence is optional because allowing it can cause subtle efficiency problems
4339
in situations where a tri-mesh may collide with many different geoms during its lifespan.
4340
If you enable temporal coherence on a tri-mesh then these problems can be eased by
4341
intermittently calling dGeomTriMeshClearTCCache for it.
4342
</summary>
4343
<param name="g">A dGeomID</param>
4344
<param name="geomClass">An int</param>
4345
<param name="enable">An int</param>
4346
</member>
4347
<member name="M:Tao.Ode.Ode.dGeomTriMeshIsTCEnabled(System.IntPtr,System.Int32)">
4348
<summary>
4349
Checks whether the use of temporal coherence during tri-mesh collision checks is enabled.
4350
4351
Returns 1 if enabled, 0 if not enabled.
4352
</summary>
4353
<returns>An int</returns>
4354
<param name="g">A dGeomID</param>
4355
<param name="geomClass">An int</param>
4356
</member>
4357
<member name="M:Tao.Ode.Ode.dGeomTriMeshClearTCCache(System.IntPtr)">
4358
<summary>
4359
Clears the internal temporal coherence caches. When a geom has its
4360
collision checked with a trimesh once, data is stored inside the trimesh.
4361
With large worlds with lots of seperate objects this list could get huge.
4362
</summary>
4363
<param name="g">A dGeomID</param>
4364
</member>
4365
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataGet(System.IntPtr,System.Int32)">
4366
<summary>
4367
4368
</summary>
4369
<param name="g"></param>
4370
<param name="data_id"></param>
4371
<returns></returns>
4372
</member>
4373
<member name="M:Tao.Ode.Ode.dGeomTriMeshDataPreprocess(System.IntPtr)">
4374
<summary>
4375
4376
</summary>
4377
<param name="g"></param>
4378
</member>
4379
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetTriMeshDataID(System.IntPtr)">
4380
<summary>
4381
Returns the TriMeshDataID for the specified geom.
4382
</summary>
4383
<returns>A dTriMeshDataID</returns>
4384
<param name="g">A dGeomID</param>
4385
</member>
4386
<member name="M:Tao.Ode.Ode.dGeomTriMeshSetLastTransform(System.IntPtr,Tao.Ode.Ode.dMatrix4@)">
4387
<summary>
4388
4389
</summary>
4390
<param name="d"></param>
4391
<param name="last_trans"></param>
4392
</member>
4393
<member name="M:Tao.Ode.Ode.dGeomTriMeshSetLastTransform(System.IntPtr,System.Single@)">
4394
<summary>
4395
4396
</summary>
4397
<param name="d"></param>
4398
<param name="M00"></param>
4399
</member>
4400
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetTriangle(System.IntPtr,System.Int32,Tao.Ode.Ode.dVector3@,Tao.Ode.Ode.dVector3@,Tao.Ode.Ode.dVector3@)">
4401
<summary>
4402
Retrieves a triangle in object space. The v0, v1 and v2 arguments are optional.
4403
</summary>
4404
<param name="g">A dGeomID</param>
4405
<param name="Index">An int</param>
4406
<param name="v0">A dVector3</param>
4407
<param name="v1">A dVector3</param>
4408
<param name="v2">A dVector3</param>
4409
</member>
4410
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetPoint(System.IntPtr,System.Int32,System.Single,System.Single,Tao.Ode.Ode.dVector3@)">
4411
<summary>
4412
Retrieves a position on the requested triangle and the given
4413
barycentric coordinates
4414
</summary>
4415
<param name="g">A dGeomID</param>
4416
<param name="Index">An int</param>
4417
<param name="u">A dReal</param>
4418
<param name="v">A dReal</param>
4419
<param name="Out">A dVector3</param>
4420
</member>
4421
<member name="M:Tao.Ode.Ode.dGeomTriMeshGetTriangleCount(System.IntPtr)">
4422
<summary>
4423
4424
</summary>
4425
<param name="d"></param>
4426
<returns></returns>
4427
</member>
4428
<member name="M:Tao.Ode.Ode.dRSetIdentity(Tao.Ode.Ode.dMatrix3@)">
4429
<summary>
4430
Set R to the identity matrix (i.e. no rotation).
4431
</summary>
4432
<param name="R">A dMatrix3</param>
4433
</member>
4434
<member name="M:Tao.Ode.Ode.dRFromAxisAndAngle(Tao.Ode.Ode.dMatrix3@,System.Single,System.Single,System.Single,System.Single)">
4435
<summary>
4436
Compute the rotation matrix R as a rotation of angle radians along the axis (ax,ay,az).
4437
</summary>
4438
<param name="R">A dMatrix3</param>
4439
<param name="ax">A dReal</param>
4440
<param name="ay">A dReal</param>
4441
<param name="az">A dReal</param>
4442
<param name="angle">A dReal</param>
4443
</member>
4444
<member name="M:Tao.Ode.Ode.dRFromEulerAngles(Tao.Ode.Ode.dMatrix3@,System.Single,System.Single,System.Single)">
4445
<summary>
4446
Compute the rotation matrix R from the three Euler rotation angles.
4447
</summary>
4448
<param name="R">A dMatrix3</param>
4449
<param name="phi">A dReal</param>
4450
<param name="theta">A dReal</param>
4451
<param name="psi">A dReal</param>
4452
</member>
4453
<member name="M:Tao.Ode.Ode.dRFrom2Axes(Tao.Ode.Ode.dMatrix3@,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
4454
<summary>
4455
Compute the rotation matrix R from the two vectors `a' (ax,ay,az) and `b' (bx,by,bz). `a' and `b' are the desired x and y axes of the rotated coordinate system. If necessary, `a' and `b' will be made unit length, and `b' will be projected so that it is perpendicular to `a'. The desired z axis is the cross product of `a' and `b'.
4456
</summary>
4457
<param name="R">A dMatrix3</param>
4458
<param name="ax">A dReal</param>
4459
<param name="ay">A dReal</param>
4460
<param name="az">A dReal</param>
4461
<param name="bx">A dReal</param>
4462
<param name="by">A dReal</param>
4463
<param name="bz">A dReal</param>
4464
</member>
4465
<member name="M:Tao.Ode.Ode.dRFromZAxis(System.Single[],System.Single,System.Single,System.Single)">
4466
<summary>
4467
TODO: Document Me
4468
</summary>
4469
<param name="R"></param>
4470
<param name="ax"></param>
4471
<param name="ay"></param>
4472
<param name="az"></param>
4473
</member>
4474
<member name="M:Tao.Ode.Ode.dRFromZAxis(Tao.Ode.Ode.dMatrix3,System.Single,System.Single,System.Single)">
4475
<summary>
4476
ODE API compatability function due to dMatrix3 marshalling errors
4477
</summary>
4478
<param name="R"></param>
4479
<param name="ax"></param>
4480
<param name="ay"></param>
4481
<param name="az"></param>
4482
</member>
4483
<member name="M:Tao.Ode.Ode.dQSetIdentity(Tao.Ode.Ode.dQuaternion@)">
4484
<summary>
4485
Set q to the identity rotation (i.e. no rotation).
4486
</summary>
4487
<param name="q">A dQuaternion</param>
4488
</member>
4489
<member name="M:Tao.Ode.Ode.dQFromAxisAndAngle(Tao.Ode.Ode.dQuaternion@,System.Single,System.Single,System.Single,System.Single)">
4490
<summary>
4491
Compute q as a rotation of angle radians along the axis (ax,ay,az).
4492
</summary>
4493
<param name="q">A dQuaternion</param>
4494
<param name="ax">A dReal</param>
4495
<param name="ay">A dReal</param>
4496
<param name="az">A dReal</param>
4497
<param name="angle">A dReal</param>
4498
</member>
4499
<member name="M:Tao.Ode.Ode.dQMultiply0(Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@)">
4500
<summary>
4501
Set qa = qb*qc. This is that same as qa = rotation qc followed by rotation qb. The 0/1/2 versions are analogous to the multiply functions, i.e. 1 uses the inverse of qb, and 2 uses the inverse of qc. Option 3 uses the inverse of both.
4502
</summary>
4503
<param name="qa">A dQuaternion</param>
4504
<param name="qb">A returning dQuaternion</param>
4505
<param name="qc">A returning dQuaternion</param>
4506
</member>
4507
<member name="M:Tao.Ode.Ode.dQMultiply1(Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@)">
4508
<summary>
4509
Set qa = qb*qc. This is that same as qa = rotation qc followed by rotation qb. The 0/1/2 versions are analogous to the multiply functions, i.e. 1 uses the inverse of qb, and 2 uses the inverse of qc. Option 3 uses the inverse of both.
4510
</summary>
4511
<param name="qa">A dQuaternion</param>
4512
<param name="qb">A returning dQuaternion</param>
4513
<param name="qc">A returning dQuaternion</param>
4514
</member>
4515
<member name="M:Tao.Ode.Ode.dQMultiply2(Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@)">
4516
<summary>
4517
Set qa = qb*qc. This is that same as qa = rotation qc followed by rotation qb. The 0/1/2 versions are analogous to the multiply functions, i.e. 1 uses the inverse of qb, and 2 uses the inverse of qc. Option 3 uses the inverse of both.
4518
</summary>
4519
<param name="qa">A dQuaternion</param>
4520
<param name="qb">A returning dQuaternion</param>
4521
<param name="qc">A returning dQuaternion</param>
4522
</member>
4523
<member name="M:Tao.Ode.Ode.dQMultiply3(Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dQuaternion@)">
4524
<summary>
4525
Set qa = qb*qc. This is that same as qa = rotation qc followed by rotation qb. The 0/1/2 versions are analogous to the multiply functions, i.e. 1 uses the inverse of qb, and 2 uses the inverse of qc. Option 3 uses the inverse of both.
4526
</summary>
4527
<param name="qa">A dQuaternion</param>
4528
<param name="qb">A returning dQuaternion</param>
4529
<param name="qc">A returning dQuaternion</param>
4530
</member>
4531
<member name="M:Tao.Ode.Ode.dQtoR(Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dMatrix3@)">
4532
<summary>
4533
Convert quaternion q to rotation matrix R.
4534
</summary>
4535
<param name="q">A dQuaternion</param>
4536
<param name="R">A dMatrix3</param>
4537
</member>
4538
<member name="M:Tao.Ode.Ode.dRtoQ(Tao.Ode.Ode.dMatrix3@,Tao.Ode.Ode.dQuaternion@)">
4539
<summary>
4540
Convert rotation matrix R to quaternion q.
4541
</summary>
4542
<param name="R">A dMatrix3</param>
4543
<param name="q">A dQuaternion</param>
4544
</member>
4545
<member name="M:Tao.Ode.Ode.dWtoDQ(Tao.Ode.Ode.dVector3@,Tao.Ode.Ode.dQuaternion@,Tao.Ode.Ode.dVector4@)">
4546
<summary>
4547
Given an existing orientation q and an angular velocity vector w, return in dq the resulting dq/dt.
4548
</summary>
4549
<param name="w">A dVector3</param>
4550
<param name="q">A dQuaternion</param>
4551
<param name="dq">A dVector4</param>
4552
</member>
4553
<member name="M:Tao.Ode.Ode.dBodyCopyPosition(System.IntPtr,Tao.Ode.Ode.dVector3@)">
4554
<summary>
4555
4556
</summary>
4557
<param name="body"></param>
4558
<param name="pos"></param>
4559
</member>
4560
<member name="M:Tao.Ode.Ode.dBodyCopyPosition(System.IntPtr,System.Single@)">
4561
<summary>
4562
4563
</summary>
4564
<param name="body"></param>
4565
<param name="X"></param>
4566
</member>
4567
<member name="M:Tao.Ode.Ode.dBodyCopyQuaternion(System.IntPtr,Tao.Ode.Ode.dQuaternion@)">
4568
<summary>
4569
4570
</summary>
4571
<param name="body"></param>
4572
<param name="quat"></param>
4573
</member>
4574
<member name="M:Tao.Ode.Ode.dBodyCopyQuaternion(System.IntPtr,System.Single@)">
4575
<summary>
4576
4577
</summary>
4578
<param name="body"></param>
4579
<param name="X"></param>
4580
</member>
4581
<member name="M:Tao.Ode.Ode.dBodyCopyRotation(System.IntPtr,Tao.Ode.Ode.dMatrix3@)">
4582
<summary>
4583
4584
</summary>
4585
<param name="body"></param>
4586
<param name="R"></param>
4587
</member>
4588
<member name="M:Tao.Ode.Ode.dBodyCopyRotation(System.IntPtr,System.Single@)">
4589
<summary>
4590
4591
</summary>
4592
<param name="body"></param>
4593
<param name="M00"></param>
4594
</member>
4595
<member name="M:Tao.Ode.Ode.dCreateHeightfield(System.IntPtr,System.IntPtr,System.Int32)">
4596
<summary>
4597
4598
</summary>
4599
<param name="space"></param>
4600
<param name="data"></param>
4601
<param name="bPlaceable"></param>
4602
<returns></returns>
4603
</member>
4604
<member name="M:Tao.Ode.Ode.dSetZero(System.Single@,System.Int32)">
4605
<summary>
4606
4607
</summary>
4608
<param name="a"></param>
4609
<param name="n"></param>
4610
</member>
4611
<member name="M:Tao.Ode.Ode.dSetValue(System.Single@,System.Int32)">
4612
<summary>
4613
4614
</summary>
4615
<param name="a"></param>
4616
<param name="n"></param>
4617
</member>
4618
<member name="M:Tao.Ode.Ode.dDot(System.Single@,System.Single@,System.Int32)">
4619
<summary>
4620
4621
</summary>
4622
<param name="X0"></param>
4623
<param name="X1"></param>
4624
<param name="n"></param>
4625
<returns></returns>
4626
</member>
4627
<member name="M:Tao.Ode.Ode.dJointCreatePlane2D(System.IntPtr,System.IntPtr)">
4628
<summary>
4629
4630
</summary>
4631
<param name="world"></param>
4632
<param name="group"></param>
4633
<returns></returns>
4634
</member>
4635
<member name="M:Tao.Ode.Ode.dJointCreatePR(System.IntPtr,System.IntPtr)">
4636
<summary>
4637
4638
</summary>
4639
<param name="world"></param>
4640
<param name="group"></param>
4641
<returns></returns>
4642
</member>
4643
<member name="M:Tao.Ode.Ode.dJointAddPRTorque(System.IntPtr,System.Single)">
4644
<summary>
4645
4646
</summary>
4647
<param name="joint"></param>
4648
<param name="torque"></param>
4649
</member>
4650
<member name="M:Tao.Ode.Ode.dFactorCholesky(System.Single@,System.Int32)">
4651
<summary>
4652
4653
</summary>
4654
<param name="A00"></param>
4655
<param name="n"></param>
4656
<returns></returns>
4657
</member>
4658
<member name="M:Tao.Ode.Ode.dSolveCholesky(System.Single@,System.Single@,System.Int32)">
4659
<summary>
4660
4661
</summary>
4662
<param name="L"></param>
4663
<param name="b"></param>
4664
<param name="n"></param>
4665
</member>
4666
<member name="M:Tao.Ode.Ode.dInvertPDMatrix(System.Single@,System.Single@,System.Int32)">
4667
<summary>
4668
4669
</summary>
4670
<param name="A"></param>
4671
<param name="Ainv"></param>
4672
<param name="n"></param>
4673
<returns></returns>
4674
</member>
4675
<member name="M:Tao.Ode.Ode.dIsPositiveDefinite(System.Single@,System.Int32)">
4676
<summary>
4677
4678
</summary>
4679
<param name="A"></param>
4680
<param name="n"></param>
4681
<returns></returns>
4682
</member>
4683
<member name="M:Tao.Ode.Ode.dFactorLDLT(System.Single@,System.Single@,System.Int32,System.Int32)">
4684
<summary>
4685
4686
</summary>
4687
<param name="A"></param>
4688
<param name="d"></param>
4689
<param name="n"></param>
4690
<param name="nskip"></param>
4691
</member>
4692
<member name="M:Tao.Ode.Ode.dSolveL1T(System.Single@,System.Single@,System.Int32,System.Int32)">
4693
<summary>
4694
4695
</summary>
4696
<param name="L"></param>
4697
<param name="b"></param>
4698
<param name="n"></param>
4699
<param name="nskip"></param>
4700
</member>
4701
<member name="M:Tao.Ode.Ode.dVectorScale(System.Single@,System.Single@,System.Int32)">
4702
<summary>
4703
4704
</summary>
4705
<param name="a"></param>
4706
<param name="d"></param>
4707
<param name="n"></param>
4708
</member>
4709
<member name="M:Tao.Ode.Ode.dLDLTAddTL(System.Single@,System.Single@,System.Single@,System.Int32,System.Int32)">
4710
<summary>
4711
4712
</summary>
4713
<param name="L"></param>
4714
<param name="d"></param>
4715
<param name="a"></param>
4716
<param name="n"></param>
4717
<param name="nskip"></param>
4718
</member>
4719
<member name="M:Tao.Ode.Ode.dRandReal">
4720
<summary>
4721
4722
</summary>
4723
<returns></returns>
4724
</member>
4725
<member name="T:Tao.Ode.Ode.dError">
4726
<summary>
4727
4728
</summary>
4729
</member>
4730
<member name="F:Tao.Ode.Ode.dError.d_ERR_UNKNOWN">
4731
<summary>
4732
4733
</summary>
4734
</member>
4735
<member name="F:Tao.Ode.Ode.dError.d_ERR_IASSERT">
4736
<summary>
4737
4738
</summary>
4739
</member>
4740
<member name="F:Tao.Ode.Ode.dError.d_ERR_UASSERT">
4741
<summary>
4742
4743
</summary>
4744
</member>
4745
<member name="F:Tao.Ode.Ode.dError.d_ERR_LCP">
4746
<summary>
4747
4748
</summary>
4749
</member>
4750
<member name="T:Tao.Ode.Ode.dJointTypes">
4751
<summary>
4752
4753
</summary>
4754
</member>
4755
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeNone">
4756
<summary>
4757
4758
</summary>
4759
</member>
4760
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeBall">
4761
<summary>
4762
4763
</summary>
4764
</member>
4765
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeHinge">
4766
<summary>
4767
4768
</summary>
4769
</member>
4770
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeSlider">
4771
<summary>
4772
4773
</summary>
4774
</member>
4775
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeContact">
4776
<summary>
4777
4778
</summary>
4779
</member>
4780
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeUniversal">
4781
<summary>
4782
4783
</summary>
4784
</member>
4785
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeHinge2">
4786
<summary>
4787
4788
</summary>
4789
</member>
4790
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeFixed">
4791
<summary>
4792
4793
</summary>
4794
</member>
4795
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeNull">
4796
<summary>
4797
4798
</summary>
4799
</member>
4800
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeAMotor">
4801
<summary>
4802
4803
</summary>
4804
</member>
4805
<member name="F:Tao.Ode.Ode.dJointTypes.dJointTypeLMotor">
4806
<summary>
4807
4808
</summary>
4809
</member>
4810
<member name="T:Tao.Ode.Ode.dJointParams">
4811
<summary>
4812
Definition of Joint limit and motor parameter names
4813
If a particular parameter is not implemented by a given joint, setting it will have no effect.
4814
4815
These parameter names can be optionally followed by a digit (2 or 3) to indicate the second or third set of parameters, e.g. for the second axis in a hinge-2 joint, or the third axis in an AMotor joint. A constant dParamGroup is also defined such that: dParamXi = dParamX + dParamGroup * (i-1)
4816
</summary>
4817
<remarks>
4818
Implemented via a macro in Ode's common.h
4819
Translated into actual constants here following inspection of common.h
4820
A change in the Ode macro could require these values to be updated
4821
</remarks>
4822
</member>
4823
<member name="F:Tao.Ode.Ode.dJointParams.dParamLoStop">
4824
<summary>
4825
Low stop angle or position. Setting this to -dInfinity (the default value) turns off the low stop. For rotational joints, this stop must be greater than - pi to be effective.
4826
</summary>
4827
</member>
4828
<member name="F:Tao.Ode.Ode.dJointParams.dParamHiStop">
4829
<summary>
4830
High stop angle or position. Setting this to dInfinity (the default value) turns off the high stop. For rotational joints, this stop must be less than pi to be effective. If the high stop is less than the low stop then both stops will be ineffective.
4831
</summary>
4832
</member>
4833
<member name="F:Tao.Ode.Ode.dJointParams.dParamVel">
4834
<summary>
4835
Desired motor velocity (this will be an angular or linear velocity).
4836
</summary>
4837
</member>
4838
<member name="F:Tao.Ode.Ode.dJointParams.dParamFMax">
4839
<summary>
4840
The maximum force or torque that the motor will use to achieve the desired velocity. This must always be greater than or equal to zero. Setting this to zero (the default value) turns off the motor.
4841
</summary>
4842
</member>
4843
<member name="F:Tao.Ode.Ode.dJointParams.dParamFudgeFactor">
4844
<summary>
4845
The current joint stop/motor implementation has a small problem: when the joint is at one stop and the motor is set to move it away from the stop, too much force may be applied for one time step, causing a ``jumping'' motion. This fudge factor is used to scale this excess force. It should have a value between zero and one (the default value). If the jumping motion is too visible in a joint, the value can be reduced. Making this value too small can prevent the motor from being able to move the joint away from a stop.
4846
</summary>
4847
</member>
4848
<member name="F:Tao.Ode.Ode.dJointParams.dParamBounce">
4849
<summary>
4850
The bouncyness of the stops. This is a restitution parameter in the range 0..1. 0 means the stops are not bouncy at all, 1 means maximum bouncyness.
4851
</summary>
4852
</member>
4853
<member name="F:Tao.Ode.Ode.dJointParams.dParamCFM">
4854
<summary>
4855
The constraint force mixing (CFM) value used when not at a stop.
4856
</summary>
4857
</member>
4858
<member name="F:Tao.Ode.Ode.dJointParams.dParamStopERP">
4859
<summary>
4860
The error reduction parameter (ERP) used by the stops.
4861
</summary>
4862
</member>
4863
<member name="F:Tao.Ode.Ode.dJointParams.dParamStopCFM">
4864
<summary>
4865
The constraint force mixing (CFM) value used by the stops. Together with the ERP value this can be used to get spongy or soft stops. Note that this is intended for unpowered joints, it does not really work as expected when a powered joint reaches its limit.
4866
</summary>
4867
</member>
4868
<member name="F:Tao.Ode.Ode.dJointParams.dParamSuspensionERP">
4869
<summary>
4870
Suspension error reduction parameter (ERP). Currently this is only implemented on the hinge-2 joint.
4871
</summary>
4872
</member>
4873
<member name="F:Tao.Ode.Ode.dJointParams.dParamSuspensionCFM">
4874
<summary>
4875
Suspension constraint force mixing (CFM) value. Currently this is only implemented on the hinge-2 joint.
4876
</summary>
4877
</member>
4878
<member name="F:Tao.Ode.Ode.dJointParams.dParamLoStop2">
4879
<summary>
4880
4881
</summary>
4882
</member>
4883
<member name="F:Tao.Ode.Ode.dJointParams.dParamHiStop2">
4884
<summary>
4885
4886
</summary>
4887
</member>
4888
<member name="F:Tao.Ode.Ode.dJointParams.dParamVel2">
4889
<summary>
4890
4891
</summary>
4892
</member>
4893
<member name="F:Tao.Ode.Ode.dJointParams.dParamFMax2">
4894
<summary>
4895
4896
</summary>
4897
</member>
4898
<member name="F:Tao.Ode.Ode.dJointParams.dParamFudgeFactor2">
4899
<summary>
4900
4901
</summary>
4902
</member>
4903
<member name="F:Tao.Ode.Ode.dJointParams.dParamBounce2">
4904
<summary>
4905
4906
</summary>
4907
</member>
4908
<member name="F:Tao.Ode.Ode.dJointParams.dParamCFM2">
4909
<summary>
4910
4911
</summary>
4912
</member>
4913
<member name="F:Tao.Ode.Ode.dJointParams.dParamStopERP2">
4914
<summary>
4915
4916
</summary>
4917
</member>
4918
<member name="F:Tao.Ode.Ode.dJointParams.dParamStopCFM2">
4919
<summary>
4920
4921
</summary>
4922
</member>
4923
<member name="F:Tao.Ode.Ode.dJointParams.dParamSuspensionERP2">
4924
<summary>
4925
4926
</summary>
4927
</member>
4928
<member name="F:Tao.Ode.Ode.dJointParams.dParamSuspensionCFM2">
4929
<summary>
4930
4931
</summary>
4932
</member>
4933
<member name="F:Tao.Ode.Ode.dJointParams.dParamLoStop3">
4934
<summary>
4935
4936
</summary>
4937
</member>
4938
<member name="F:Tao.Ode.Ode.dJointParams.dParamHiStop3">
4939
<summary>
4940
4941
</summary>
4942
</member>
4943
<member name="F:Tao.Ode.Ode.dJointParams.dParamVel3">
4944
<summary>
4945
4946
</summary>
4947
</member>
4948
<member name="F:Tao.Ode.Ode.dJointParams.dParamFMax3">
4949
<summary>
4950
4951
</summary>
4952
</member>
4953
<member name="F:Tao.Ode.Ode.dJointParams.dParamFudgeFactor3">
4954
<summary>
4955
4956
</summary>
4957
</member>
4958
<member name="F:Tao.Ode.Ode.dJointParams.dParamBounce3">
4959
<summary>
4960
4961
</summary>
4962
</member>
4963
<member name="F:Tao.Ode.Ode.dJointParams.dParamCFM3">
4964
<summary>
4965
4966
</summary>
4967
</member>
4968
<member name="F:Tao.Ode.Ode.dJointParams.dParamStopERP3">
4969
<summary>
4970
4971
</summary>
4972
</member>
4973
<member name="F:Tao.Ode.Ode.dJointParams.dParamStopCFM3">
4974
<summary>
4975
4976
</summary>
4977
</member>
4978
<member name="F:Tao.Ode.Ode.dJointParams.dParamSuspensionERP3">
4979
<summary>
4980
4981
</summary>
4982
</member>
4983
<member name="F:Tao.Ode.Ode.dJointParams.dParamSuspensionCFM3">
4984
<summary>
4985
4986
</summary>
4987
</member>
4988
<member name="T:Tao.Ode.Ode.dAMotorMode">
4989
<summary>
4990
4991
</summary>
4992
</member>
4993
<member name="F:Tao.Ode.Ode.dAMotorMode.dAMotorUser">
4994
<summary>
4995
4996
</summary>
4997
</member>
4998
<member name="F:Tao.Ode.Ode.dAMotorMode.dAMotorEuler">
4999
<summary>
5000
5001
</summary>
5002
</member>
5003
<member name="T:Tao.Ode.Ode.dClassNumbers">
5004
<summary>
5005
class numbers - each geometry object needs a unique number
5006
</summary>
5007
</member>
5008
<member name="F:Tao.Ode.Ode.dClassNumbers.dSphereClass">
5009
<summary>
5010
5011
</summary>
5012
</member>
5013
<member name="F:Tao.Ode.Ode.dClassNumbers.dBoxClass">
5014
<summary>
5015
5016
</summary>
5017
</member>
5018
<member name="F:Tao.Ode.Ode.dClassNumbers.dCapsuleClass">
5019
<summary>
5020
5021
</summary>
5022
</member>
5023
<member name="F:Tao.Ode.Ode.dClassNumbers.dCylinderClass">
5024
<summary>
5025
5026
</summary>
5027
</member>
5028
<member name="F:Tao.Ode.Ode.dClassNumbers.dPlaneClass">
5029
<summary>
5030
5031
</summary>
5032
</member>
5033
<member name="F:Tao.Ode.Ode.dClassNumbers.dRayClass">
5034
<summary>
5035
5036
</summary>
5037
</member>
5038
<member name="F:Tao.Ode.Ode.dClassNumbers.dConvexClass">
5039
<summary>
5040
5041
</summary>
5042
</member>
5043
<member name="F:Tao.Ode.Ode.dClassNumbers.dGeomTransformClass">
5044
<summary>
5045
5046
</summary>
5047
</member>
5048
<member name="F:Tao.Ode.Ode.dClassNumbers.dTriMeshClass">
5049
<summary>
5050
5051
</summary>
5052
</member>
5053
<member name="F:Tao.Ode.Ode.dClassNumbers.dFirstSpaceClass">
5054
<summary>
5055
5056
</summary>
5057
</member>
5058
<member name="F:Tao.Ode.Ode.dClassNumbers.dSimpleSpaceClass">
5059
<summary>
5060
5061
</summary>
5062
</member>
5063
<member name="F:Tao.Ode.Ode.dClassNumbers.dHashSpaceClass">
5064
<summary>
5065
5066
</summary>
5067
</member>
5068
<member name="F:Tao.Ode.Ode.dClassNumbers.dQuadTreeSpaceClass">
5069
<summary>
5070
5071
</summary>
5072
</member>
5073
<member name="F:Tao.Ode.Ode.dClassNumbers.dLastSpaceClass">
5074
<summary>
5075
5076
</summary>
5077
</member>
5078
<member name="F:Tao.Ode.Ode.dClassNumbers.dFirstUserClass">
5079
<summary>
5080
5081
</summary>
5082
</member>
5083
<member name="F:Tao.Ode.Ode.dClassNumbers.dLastUserClass">
5084
<summary>
5085
5086
</summary>
5087
</member>
5088
<member name="F:Tao.Ode.Ode.dClassNumbers.dGeomNumClasses">
5089
<summary>
5090
5091
</summary>
5092
</member>
5093
<member name="T:Tao.Ode.Ode.dBodyFlags">
5094
<summary>
5095
some body flags
5096
ODE source location: objects.h Ln 37
5097
</summary>
5098
</member>
5099
<member name="F:Tao.Ode.Ode.dBodyFlags.dxBodyFlagFiniteRotation">
5100
<summary>
5101
use finite rotations
5102
</summary>
5103
</member>
5104
<member name="F:Tao.Ode.Ode.dBodyFlags.dxBodyFlagFiniteRotationAxis">
5105
<summary>
5106
use finite rotations only along axis
5107
</summary>
5108
</member>
5109
<member name="F:Tao.Ode.Ode.dBodyFlags.dxBodyDisabled">
5110
<summary>
5111
body is disabled
5112
</summary>
5113
</member>
5114
<member name="F:Tao.Ode.Ode.dBodyFlags.dxBodyNoGravity">
5115
<summary>
5116
body is not influenced by gravity
5117
</summary>
5118
</member>
5119
<member name="F:Tao.Ode.Ode.dBodyFlags.dxBodyAutoDisable">
5120
<summary>
5121
enable auto-disable on body
5122
</summary>
5123
</member>
5124
<member name="T:Tao.Ode.Ode.dContactFlags">
5125
<summary>
5126
5127
</summary>
5128
</member>
5129
<member name="F:Tao.Ode.Ode.dContactFlags.dContactMu2">
5130
<summary>
5131
5132
</summary>
5133
</member>
5134
<member name="F:Tao.Ode.Ode.dContactFlags.dContactFDir1">
5135
<summary>
5136
5137
</summary>
5138
</member>
5139
<member name="F:Tao.Ode.Ode.dContactFlags.dContactBounce">
5140
<summary>
5141
5142
</summary>
5143
</member>
5144
<member name="F:Tao.Ode.Ode.dContactFlags.dContactSoftERP">
5145
<summary>
5146
5147
</summary>
5148
</member>
5149
<member name="F:Tao.Ode.Ode.dContactFlags.dContactSoftCFM">
5150
<summary>
5151
5152
</summary>
5153
</member>
5154
<member name="F:Tao.Ode.Ode.dContactFlags.dContactMotion1">
5155
<summary>
5156
5157
</summary>
5158
</member>
5159
<member name="F:Tao.Ode.Ode.dContactFlags.dContactMotion2">
5160
<summary>
5161
5162
</summary>
5163
</member>
5164
<member name="F:Tao.Ode.Ode.dContactFlags.dContactSlip1">
5165
<summary>
5166
5167
</summary>
5168
</member>
5169
<member name="F:Tao.Ode.Ode.dContactFlags.dContactSlip2">
5170
<summary>
5171
5172
</summary>
5173
</member>
5174
<member name="F:Tao.Ode.Ode.dContactFlags.dContactApprox0">
5175
<summary>
5176
5177
</summary>
5178
</member>
5179
<member name="F:Tao.Ode.Ode.dContactFlags.dContactApprox1_1">
5180
<summary>
5181
5182
</summary>
5183
</member>
5184
<member name="F:Tao.Ode.Ode.dContactFlags.dContactApprox1_2">
5185
<summary>
5186
5187
</summary>
5188
</member>
5189
<member name="F:Tao.Ode.Ode.dContactFlags.dContactApprox1">
5190
<summary>
5191
5192
</summary>
5193
</member>
5194
<member name="T:Tao.Ode.Ode.GeometryClass">
5195
<summary>
5196
5197
</summary>
5198
</member>
5199
<member name="F:Tao.Ode.Ode.GeometryClass.dSphereClass">
5200
<summary>
5201
5202
</summary>
5203
</member>
5204
<member name="F:Tao.Ode.Ode.GeometryClass.dBoxClass">
5205
<summary>
5206
5207
</summary>
5208
</member>
5209
<member name="F:Tao.Ode.Ode.GeometryClass.dCapsuleClass">
5210
<summary>
5211
5212
</summary>
5213
</member>
5214
<member name="F:Tao.Ode.Ode.GeometryClass.dCylinderClass">
5215
<summary>
5216
5217
</summary>
5218
</member>
5219
<member name="F:Tao.Ode.Ode.GeometryClass.dPlaneClass">
5220
<summary>
5221
5222
</summary>
5223
</member>
5224
<member name="F:Tao.Ode.Ode.GeometryClass.dRayClass">
5225
<summary>
5226
5227
</summary>
5228
</member>
5229
<member name="F:Tao.Ode.Ode.GeometryClass.dConvexClass">
5230
<summary>
5231
5232
</summary>
5233
</member>
5234
<member name="F:Tao.Ode.Ode.GeometryClass.dGeomTransformClass">
5235
<summary>
5236
5237
</summary>
5238
</member>
5239
<member name="F:Tao.Ode.Ode.GeometryClass.dTriMeshClass">
5240
<summary>
5241
5242
</summary>
5243
</member>
5244
<member name="F:Tao.Ode.Ode.GeometryClass.dHeightfieldClass">
5245
<summary>
5246
5247
</summary>
5248
</member>
5249
<member name="F:Tao.Ode.Ode.GeometryClass.dFirstSpaceClass">
5250
<summary>
5251
5252
</summary>
5253
</member>
5254
<member name="F:Tao.Ode.Ode.GeometryClass.dSimpleSpaceClass">
5255
<summary>
5256
5257
</summary>
5258
</member>
5259
<member name="F:Tao.Ode.Ode.GeometryClass.dHashSpaceClass">
5260
<summary>
5261
5262
</summary>
5263
</member>
5264
<member name="F:Tao.Ode.Ode.GeometryClass.dQuadTreeSpaceClass">
5265
<summary>
5266
5267
</summary>
5268
</member>
5269
<member name="F:Tao.Ode.Ode.GeometryClass.dLastSpaceClass">
5270
<summary>
5271
5272
</summary>
5273
</member>
5274
<member name="F:Tao.Ode.Ode.GeometryClass.dFirstUserClass">
5275
<summary>
5276
5277
</summary>
5278
</member>
5279
<member name="F:Tao.Ode.Ode.GeometryClass.dLastUserClass">
5280
<summary>
5281
5282
</summary>
5283
</member>
5284
<member name="F:Tao.Ode.Ode.GeometryClass.dGeomNumClasses">
5285
<summary>
5286
5287
</summary>
5288
</member>
5289
<member name="F:Tao.Ode.Ode.GeometryClass.dMaxUserClasses">
5290
<summary>
5291
5292
</summary>
5293
</member>
5294
<member name="T:Tao.Ode.Ode.dMass">
5295
<summary>
5296
Describes the mass parameters of a rigid body
5297
</summary>
5298
<remarks>
5299
mass - the total mass of the rigid body
5300
c - center of gravity position in body frame (x,y,z)
5301
I - 3x3 inertia tensor in body frame, about POR
5302
</remarks>
5303
</member>
5304
<member name="M:Tao.Ode.Ode.dMass.#ctor(System.Single,Tao.Ode.Ode.dVector4,Tao.Ode.Ode.dMatrix3)">
5305
<summary>
5306
5307
</summary>
5308
<param name="_mass"></param>
5309
<param name="_c"></param>
5310
<param name="_I"></param>
5311
</member>
5312
<member name="F:Tao.Ode.Ode.dMass.mass">
5313
<summary>
5314
5315
</summary>
5316
</member>
5317
<member name="F:Tao.Ode.Ode.dMass.c">
5318
<summary>
5319
5320
</summary>
5321
</member>
5322
<member name="F:Tao.Ode.Ode.dMass.I">
5323
<summary>
5324
5325
</summary>
5326
</member>
5327
<member name="T:Tao.Ode.Ode.dContactGeom">
5328
<summary>
5329
Contact info set by collision functions
5330
</summary>
5331
</member>
5332
<member name="F:Tao.Ode.Ode.dContactGeom.pos">
5333
<summary>
5334
The contact position in global coordinates.
5335
</summary>
5336
</member>
5337
<member name="F:Tao.Ode.Ode.dContactGeom.normal">
5338
<summary>
5339
A unit length vector that is, generally speaking, perpendicular to the contact surface.
5340
</summary>
5341
</member>
5342
<member name="F:Tao.Ode.Ode.dContactGeom.depth">
5343
<summary>
5344
The depth to which the two bodies inter-penetrate each other.
5345
If the depth is zero then the two bodies have a grazing contact,
5346
i.e. they "only just" touch. However, this is rare - the simulation is
5347
not perfectly accurate and will often step the bodies too far so that
5348
the depth is nonzero.
5349
</summary>
5350
</member>
5351
<member name="F:Tao.Ode.Ode.dContactGeom.g1">
5352
<summary>
5353
The geometry objects that collided.
5354
</summary>
5355
</member>
5356
<member name="F:Tao.Ode.Ode.dContactGeom.g2">
5357
<summary>
5358
The geometry objects that collided.
5359
</summary>
5360
</member>
5361
<member name="F:Tao.Ode.Ode.dContactGeom.side1">
5362
<summary>
5363
(to be documented) - verbatim from the ODE source.
5364
</summary>
5365
</member>
5366
<member name="F:Tao.Ode.Ode.dContactGeom.side2">
5367
<summary>
5368
(to be documented) - verbatim from the ODE source.
5369
</summary>
5370
</member>
5371
<member name="T:Tao.Ode.Ode.dSurfaceParameters">
5372
<summary>
5373
Defines the properties of the colliding surfaces
5374
</summary>
5375
</member>
5376
<member name="M:Tao.Ode.Ode.dSurfaceParameters.#ctor(System.Int32,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
5377
<summary>
5378
5379
</summary>
5380
</member>
5381
<member name="F:Tao.Ode.Ode.dSurfaceParameters.mode">
5382
<summary>
5383
Contact flags. This must always be set. This is a combination of one or more of the following flags:
5384
5385
dContactMu2 If not set, use mu for both friction directions.
5386
If set, use mu for friction direction 1, use mu2 for friction direction 2.
5387
dContactFDir1 If set, take fdir1 as friction direction 1, otherwise automatically compute
5388
friction direction 1 to be perpendicular to the contact normal (in which
5389
case its resulting orientation is unpredictable).
5390
dContactBounce If set, the contact surface is bouncy, in other words the bodies will
5391
bounce off each other. The exact amount of bouncyness is controlled by
5392
the bounce parameter.
5393
dContactSoftERP If set, the error reduction parameter of the contact normal can be set
5394
with the soft_erp parameter. This is useful to make surfaces soft.
5395
dContactSoftCFM If set, the constraint force mixing parameter of the contact normal
5396
can be set with the soft_cfm parameter. This is useful to make surfaces soft.
5397
dContactMotion1 If set, the contact surface is assumed to be moving independently of the
5398
motion of the bodies. This is kind of like a conveyor belt running over
5399
the surface. When this flag is set, motion1 defines the surface velocity
5400
in friction direction 1.
5401
dContactMotion2 The same thing as above, but for friction direction 2.
5402
dContactSlip1 Force-dependent-slip (FDS) in friction direction 1.
5403
dContactSlip2 Force-dependent-slip (FDS) in friction direction 2.
5404
dContactApprox0 TODO: Document me
5405
dContactApprox1_1 Use the friction pyramid approximation for friction direction 1. If this is
5406
not specified then the constant-force-limit approximation is used (and mu is
5407
a force limit).
5408
dContactApprox1_2 Use the friction pyramid approximation for friction direction 2. If this is
5409
not specified then the constant-force-limit approximation is used (and mu is
5410
a force limit).
5411
dContactApprox1 Equivalent to both dContactApprox1_1 and dContactApprox1_2.
5412
</summary>
5413
</member>
5414
<member name="F:Tao.Ode.Ode.dSurfaceParameters.mu">
5415
<summary>
5416
Coulomb friction coefficient.
5417
This must be in the range 0 to dInfinity.
5418
0 results in a frictionless contact, and dInfinity results in a contact that never slips.
5419
Note that frictionless contacts are less time consuming to compute than ones with friction,
5420
and infinite friction contacts can be cheaper than contacts with finite friction.
5421
5422
This must always be set.
5423
</summary>
5424
</member>
5425
<member name="F:Tao.Ode.Ode.dSurfaceParameters.mu2">
5426
<summary>
5427
Optional Coulomb friction coefficient for friction direction 2 (0..dInfinity).
5428
5429
This is only set if the corresponding flag is set in mode.
5430
</summary>
5431
</member>
5432
<member name="F:Tao.Ode.Ode.dSurfaceParameters.bounce">
5433
<summary>
5434
Restitution parameter (0..1).
5435
0 means the surfaces are not bouncy at all, 1 is maximum bouncyness.
5436
5437
This is only set if the corresponding flag is set in mode.
5438
</summary>
5439
</member>
5440
<member name="F:Tao.Ode.Ode.dSurfaceParameters.bounce_vel">
5441
<summary>
5442
Restitution parameter (0..1).
5443
0 means the surfaces are not bouncy at all, 1 is maximum bouncyness.
5444
5445
This is only set if the corresponding flag is set in mode.
5446
</summary>
5447
</member>
5448
<member name="F:Tao.Ode.Ode.dSurfaceParameters.soft_erp">
5449
<summary>
5450
Contact normal ``softness'' parameter.
5451
5452
This is only set if the corresponding flag is set in mode.
5453
</summary>
5454
</member>
5455
<member name="F:Tao.Ode.Ode.dSurfaceParameters.soft_cfm">
5456
<summary>
5457
Contact normal ``softness'' parameter.
5458
5459
This is only set if the corresponding flag is set in mode.
5460
</summary>
5461
</member>
5462
<member name="F:Tao.Ode.Ode.dSurfaceParameters.motion1">
5463
<summary>
5464
Surface velocity in friction directions 1 (in m/s).
5465
5466
Only set if the corresponding flags are set in mode.
5467
</summary>
5468
</member>
5469
<member name="F:Tao.Ode.Ode.dSurfaceParameters.motion2">
5470
<summary>
5471
Surface velocity in friction directions 1 (in m/s).
5472
5473
Only set if the corresponding flags are set in mode.
5474
</summary>
5475
</member>
5476
<member name="F:Tao.Ode.Ode.dSurfaceParameters.slip1">
5477
<summary>
5478
The coefficients of force-dependent-slip (FDS) for friction directions 1 and 2.
5479
5480
These are only set if the corresponding flags are set in mode.
5481
5482
FDS is an effect that causes the contacting surfaces to side past each other with a
5483
velocity that is proportional to the force that is being applied tangentially to that surface.
5484
5485
Consider a contact point where the coefficient of friction mu is infinite. Normally, if a
5486
force f is applied to the two contacting surfaces, to try and get them to slide past each
5487
other, they will not move. However, if the FDS coefficient is set to a positive value k
5488
then the surfaces will slide past each other, building up to a steady velocity of k*f
5489
relative to each other.
5490
5491
Note that this is quite different from normal frictional effects: the force does not
5492
cause a constant acceleration of the surfaces relative to each other - it causes a
5493
brief acceleration to achieve the steady velocity.
5494
5495
This is useful for modeling some situations, in particular tires. For example consider
5496
a car at rest on a road. Pushing the car in its direction of travel will cause it to
5497
start moving (i.e. the tires will start rolling). Pushing the car in the perpendicular
5498
direction will have no effect, as the tires do not roll in that direction. However - if
5499
the car is moving at a velocity v, applying a force f in the perpendicular direction will
5500
cause the tires to slip on the road with a velocity proportional to f*v (Yes, this really
5501
happens).
5502
5503
To model this in ODE set the tire-road contact parameters as follows: set friction direction 1
5504
in the direction that the tire is rolling in, and set the FDS slip coefficient in friction
5505
direction 2 to k*v, where v is the tire rolling velocity and k is a tire parameter that you can
5506
choose based on experimentation.
5507
5508
Note that FDS is quite separate from the sticking/slipping effects of Coulomb friction - both
5509
modes can be used together at a single contact point.
5510
</summary>
5511
</member>
5512
<member name="F:Tao.Ode.Ode.dSurfaceParameters.slip2">
5513
<summary>
5514
The coefficients of force-dependent-slip (FDS) for friction directions 1 and 2.
5515
5516
These are only set if the corresponding flags are set in mode.
5517
5518
FDS is an effect that causes the contacting surfaces to side past each other with a
5519
velocity that is proportional to the force that is being applied tangentially to that surface.
5520
5521
Consider a contact point where the coefficient of friction mu is infinite. Normally, if a
5522
force f is applied to the two contacting surfaces, to try and get them to slide past each
5523
other, they will not move. However, if the FDS coefficient is set to a positive value k
5524
then the surfaces will slide past each other, building up to a steady velocity of k*f
5525
relative to each other.
5526
5527
Note that this is quite different from normal frictional effects: the force does not
5528
cause a constant acceleration of the surfaces relative to each other - it causes a
5529
brief acceleration to achieve the steady velocity.
5530
5531
This is useful for modeling some situations, in particular tires. For example consider
5532
a car at rest on a road. Pushing the car in its direction of travel will cause it to
5533
start moving (i.e. the tires will start rolling). Pushing the car in the perpendicular
5534
direction will have no effect, as the tires do not roll in that direction. However - if
5535
the car is moving at a velocity v, applying a force f in the perpendicular direction will
5536
cause the tires to slip on the road with a velocity proportional to f*v (Yes, this really
5537
happens).
5538
5539
To model this in ODE set the tire-road contact parameters as follows: set friction direction 1
5540
in the direction that the tire is rolling in, and set the FDS slip coefficient in friction
5541
direction 2 to k*v, where v is the tire rolling velocity and k is a tire parameter that you can
5542
choose based on experimentation.
5543
5544
Note that FDS is quite separate from the sticking/slipping effects of Coulomb friction - both
5545
modes can be used together at a single contact point.
5546
</summary>
5547
</member>
5548
<member name="T:Tao.Ode.Ode.dContact">
5549
<summary>
5550
Contact structure used by contact joint
5551
</summary>
5552
</member>
5553
<member name="M:Tao.Ode.Ode.dContact.#ctor(Tao.Ode.Ode.dSurfaceParameters,Tao.Ode.Ode.dContactGeom,Tao.Ode.Ode.dVector3)">
5554
<summary>
5555
5556
</summary>
5557
<param name="_surface"></param>
5558
<param name="_geom"></param>
5559
<param name="_fdir1"></param>
5560
</member>
5561
<member name="F:Tao.Ode.Ode.dContact.surface">
5562
<summary>
5563
5564
</summary>
5565
</member>
5566
<member name="F:Tao.Ode.Ode.dContact.geom">
5567
<summary>
5568
5569
</summary>
5570
</member>
5571
<member name="F:Tao.Ode.Ode.dContact.fdir1">
5572
<summary>
5573
5574
</summary>
5575
</member>
5576
<member name="T:Tao.Ode.Ode.dVector3">
5577
<summary>
5578
5579
</summary>
5580
</member>
5581
<member name="M:Tao.Ode.Ode.dVector3.#ctor(System.Single,System.Single,System.Single)">
5582
<summary>
5583
5584
</summary>
5585
<param name="x"></param>
5586
<param name="y"></param>
5587
<param name="z"></param>
5588
</member>
5589
<member name="F:Tao.Ode.Ode.dVector3.X">
5590
<summary>
5591
5592
</summary>
5593
</member>
5594
<member name="F:Tao.Ode.Ode.dVector3.Y">
5595
<summary>
5596
5597
</summary>
5598
</member>
5599
<member name="F:Tao.Ode.Ode.dVector3.Z">
5600
<summary>
5601
5602
</summary>
5603
</member>
5604
<member name="F:Tao.Ode.Ode.dVector3.SIMD_PADDING">
5605
<summary>
5606
In ODE's common.h: typedef dReal dVector3[4];
5607
5608
From ODE mailing list:
5609
dVector3 is a dReal[4] to allow for future SIMD extension (the dMatrix3 is
5610
similarily defined).
5611
5612
However, there may already be a speed difference by defining it as a
5613
dReal[4]; the reason is that properly alligned memory data can be accessed
5614
more efficiently by the CPU. You should go to great lengths to ensure that
5615
every instance of dVector3 in your projects are atleast 4-byte aligned
5616
(virtually default), 16-byte alignments are better still and usually need to
5617
be enforced.
5618
5619
This ensures that memory access (read/write) can be performed just a little
5620
bit faster.
5621
5622
For example:
5623
You'll notice that if you used dReal[3] for an array of dVector3, then not
5624
every vector would fall onto a 16-byte boundary (provided that the first
5625
vector was properly alligned). Whereas it is guaranteed with dReal[4]
5626
(provided that the first vector was properly alligned).
5627
</summary>
5628
</member>
5629
<member name="M:Tao.Ode.Ode.dVector3.ToArray">
5630
<summary>
5631
5632
</summary>
5633
<returns></returns>
5634
</member>
5635
<member name="P:Tao.Ode.Ode.dVector3.Item(System.Int32)">
5636
<summary>
5637
Indexer to support use of array syntax as found in ODE examples
5638
X = 0, Y = 1, Z = 2
5639
</summary>
5640
</member>
5641
<member name="T:Tao.Ode.Ode.dVector4">
5642
<summary>
5643
5644
</summary>
5645
</member>
5646
<member name="M:Tao.Ode.Ode.dVector4.#ctor(System.Single,System.Single,System.Single,System.Single)">
5647
<summary>
5648
5649
</summary>
5650
<param name="x"></param>
5651
<param name="y"></param>
5652
<param name="z"></param>
5653
<param name="w"></param>
5654
</member>
5655
<member name="F:Tao.Ode.Ode.dVector4.X">
5656
<summary>
5657
5658
</summary>
5659
</member>
5660
<member name="F:Tao.Ode.Ode.dVector4.Y">
5661
<summary>
5662
5663
</summary>
5664
</member>
5665
<member name="F:Tao.Ode.Ode.dVector4.Z">
5666
<summary>
5667
5668
</summary>
5669
</member>
5670
<member name="F:Tao.Ode.Ode.dVector4.W">
5671
<summary>
5672
5673
</summary>
5674
</member>
5675
<member name="M:Tao.Ode.Ode.dVector4.ToArray">
5676
<summary>
5677
5678
</summary>
5679
<returns></returns>
5680
</member>
5681
<member name="P:Tao.Ode.Ode.dVector4.Item(System.Int32)">
5682
<summary>
5683
Indexer to support use of array syntax as found in ODE examples
5684
X = 0, Y = 1, Z = 2, W = 3
5685
</summary>
5686
</member>
5687
<member name="T:Tao.Ode.Ode.dQuaternion">
5688
<summary>
5689
5690
</summary>
5691
</member>
5692
<member name="M:Tao.Ode.Ode.dQuaternion.#ctor(System.Single,System.Single,System.Single,System.Single)">
5693
<summary>
5694
5695
</summary>
5696
<param name="x"></param>
5697
<param name="y"></param>
5698
<param name="z"></param>
5699
<param name="w"></param>
5700
</member>
5701
<member name="F:Tao.Ode.Ode.dQuaternion.W">
5702
<summary>
5703
5704
</summary>
5705
</member>
5706
<member name="F:Tao.Ode.Ode.dQuaternion.X">
5707
<summary>
5708
5709
</summary>
5710
</member>
5711
<member name="F:Tao.Ode.Ode.dQuaternion.Y">
5712
<summary>
5713
5714
</summary>
5715
</member>
5716
<member name="F:Tao.Ode.Ode.dQuaternion.Z">
5717
<summary>
5718
5719
</summary>
5720
</member>
5721
<member name="M:Tao.Ode.Ode.dQuaternion.ToArray">
5722
<summary>
5723
5724
</summary>
5725
<returns></returns>
5726
</member>
5727
<member name="P:Tao.Ode.Ode.dQuaternion.Item(System.Int32)">
5728
<summary>
5729
Indexer to support use of array syntax as found in ODE examples
5730
X = 0, Y = 1, Z = 2, W = 3
5731
</summary>
5732
</member>
5733
<member name="T:Tao.Ode.Ode.Aabb">
5734
<summary>
5735
5736
</summary>
5737
</member>
5738
<member name="M:Tao.Ode.Ode.Aabb.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
5739
<summary>
5740
5741
</summary>
5742
<param name="_minx"></param>
5743
<param name="_maxx"></param>
5744
<param name="_miny"></param>
5745
<param name="_maxy"></param>
5746
<param name="_minz"></param>
5747
<param name="_maxz"></param>
5748
</member>
5749
<member name="F:Tao.Ode.Ode.Aabb.minx">
5750
<summary>
5751
5752
</summary>
5753
</member>
5754
<member name="F:Tao.Ode.Ode.Aabb.maxx">
5755
<summary>
5756
5757
</summary>
5758
</member>
5759
<member name="F:Tao.Ode.Ode.Aabb.miny">
5760
<summary>
5761
5762
</summary>
5763
</member>
5764
<member name="F:Tao.Ode.Ode.Aabb.maxy">
5765
<summary>
5766
5767
</summary>
5768
</member>
5769
<member name="F:Tao.Ode.Ode.Aabb.minz">
5770
<summary>
5771
5772
</summary>
5773
</member>
5774
<member name="F:Tao.Ode.Ode.Aabb.maxz">
5775
<summary>
5776
5777
</summary>
5778
</member>
5779
<member name="T:Tao.Ode.Ode.dMatrix3">
5780
<summary>
5781
5782
</summary>
5783
</member>
5784
<member name="M:Tao.Ode.Ode.dMatrix3.#ctor(System.Single[])">
5785
<summary>
5786
5787
</summary>
5788
<param name="values"></param>
5789
</member>
5790
<member name="F:Tao.Ode.Ode.dMatrix3.M00">
5791
<summary>
5792
5793
</summary>
5794
</member>
5795
<member name="F:Tao.Ode.Ode.dMatrix3.M01">
5796
<summary>
5797
5798
</summary>
5799
</member>
5800
<member name="F:Tao.Ode.Ode.dMatrix3.M02">
5801
<summary>
5802
5803
</summary>
5804
</member>
5805
<member name="F:Tao.Ode.Ode.dMatrix3.M03">
5806
<summary>
5807
5808
</summary>
5809
</member>
5810
<member name="F:Tao.Ode.Ode.dMatrix3.M10">
5811
<summary>
5812
5813
</summary>
5814
</member>
5815
<member name="F:Tao.Ode.Ode.dMatrix3.M11">
5816
<summary>
5817
5818
</summary>
5819
</member>
5820
<member name="F:Tao.Ode.Ode.dMatrix3.M12">
5821
<summary>
5822
5823
</summary>
5824
</member>
5825
<member name="F:Tao.Ode.Ode.dMatrix3.M13">
5826
<summary>
5827
5828
</summary>
5829
</member>
5830
<member name="F:Tao.Ode.Ode.dMatrix3.M20">
5831
<summary>
5832
5833
</summary>
5834
</member>
5835
<member name="F:Tao.Ode.Ode.dMatrix3.M21">
5836
<summary>
5837
5838
</summary>
5839
</member>
5840
<member name="F:Tao.Ode.Ode.dMatrix3.M22">
5841
<summary>
5842
5843
</summary>
5844
</member>
5845
<member name="F:Tao.Ode.Ode.dMatrix3.M23">
5846
<summary>
5847
5848
</summary>
5849
</member>
5850
<member name="M:Tao.Ode.Ode.dMatrix3.ToArray">
5851
<summary>
5852
5853
</summary>
5854
<returns></returns>
5855
</member>
5856
<member name="P:Tao.Ode.Ode.dMatrix3.Item(System.Int32)">
5857
<summary>
5858
5859
</summary>
5860
<param name="index"></param>
5861
<returns></returns>
5862
</member>
5863
<member name="P:Tao.Ode.Ode.dMatrix3.Item(System.Int32,System.Int32)">
5864
<summary>
5865
5866
</summary>
5867
<param name="x"></param>
5868
<param name="y"></param>
5869
<returns></returns>
5870
</member>
5871
<member name="T:Tao.Ode.Ode.dMatrix4">
5872
<summary>
5873
5874
</summary>
5875
</member>
5876
<member name="M:Tao.Ode.Ode.dMatrix4.#ctor(System.Single[])">
5877
<summary>
5878
5879
</summary>
5880
<param name="values"></param>
5881
</member>
5882
<member name="F:Tao.Ode.Ode.dMatrix4.M00">
5883
<summary>
5884
5885
</summary>
5886
</member>
5887
<member name="F:Tao.Ode.Ode.dMatrix4.M01">
5888
<summary>
5889
5890
</summary>
5891
</member>
5892
<member name="F:Tao.Ode.Ode.dMatrix4.M02">
5893
<summary>
5894
5895
</summary>
5896
</member>
5897
<member name="F:Tao.Ode.Ode.dMatrix4.M03">
5898
<summary>
5899
5900
</summary>
5901
</member>
5902
<member name="F:Tao.Ode.Ode.dMatrix4.M10">
5903
<summary>
5904
5905
</summary>
5906
</member>
5907
<member name="F:Tao.Ode.Ode.dMatrix4.M11">
5908
<summary>
5909
5910
</summary>
5911
</member>
5912
<member name="F:Tao.Ode.Ode.dMatrix4.M12">
5913
<summary>
5914
5915
</summary>
5916
</member>
5917
<member name="F:Tao.Ode.Ode.dMatrix4.M13">
5918
<summary>
5919
5920
</summary>
5921
</member>
5922
<member name="F:Tao.Ode.Ode.dMatrix4.M20">
5923
<summary>
5924
5925
</summary>
5926
</member>
5927
<member name="F:Tao.Ode.Ode.dMatrix4.M21">
5928
<summary>
5929
5930
</summary>
5931
</member>
5932
<member name="F:Tao.Ode.Ode.dMatrix4.M22">
5933
<summary>
5934
5935
</summary>
5936
</member>
5937
<member name="F:Tao.Ode.Ode.dMatrix4.M23">
5938
<summary>
5939
5940
</summary>
5941
</member>
5942
<member name="F:Tao.Ode.Ode.dMatrix4.M30">
5943
<summary>
5944
5945
</summary>
5946
</member>
5947
<member name="F:Tao.Ode.Ode.dMatrix4.M31">
5948
<summary>
5949
5950
</summary>
5951
</member>
5952
<member name="F:Tao.Ode.Ode.dMatrix4.M32">
5953
<summary>
5954
5955
</summary>
5956
</member>
5957
<member name="F:Tao.Ode.Ode.dMatrix4.M33">
5958
<summary>
5959
5960
</summary>
5961
</member>
5962
<member name="M:Tao.Ode.Ode.dMatrix4.ToArray">
5963
<summary>
5964
5965
</summary>
5966
<returns></returns>
5967
</member>
5968
<member name="P:Tao.Ode.Ode.dMatrix4.Item(System.Int32)">
5969
<summary>
5970
5971
</summary>
5972
<param name="index"></param>
5973
<returns></returns>
5974
</member>
5975
<member name="P:Tao.Ode.Ode.dMatrix4.Item(System.Int32,System.Int32)">
5976
<summary>
5977
5978
</summary>
5979
<param name="x"></param>
5980
<param name="y"></param>
5981
<returns></returns>
5982
</member>
5983
<member name="T:Tao.Ode.Ode.dJointFeedback">
5984
<summary>
5985
During the world time step, the forces that are applied by each joint are computed.
5986
These forces are added directly to the joined bodies, and the user normally has no
5987
way of telling which joint contributed how much force.
5988
5989
If this information is desired then the user can allocate a dJointFeedback structure
5990
and pass its pointer to the dJointSetFeedback() function.
5991
5992
The feedback information structure is defined as follows:
5993
5994
typedef struct dJointFeedback {
5995
dVector3 f1; // force that joint applies to body 1
5996
dVector3 t1; // torque that joint applies to body 1
5997
dVector3 f2; // force that joint applies to body 2
5998
dVector3 t2; // torque that joint applies to body 2
5999
} dJointFeedback;
6000
6001
During the time step any feedback structures that are attached to joints will be filled in with the
6002
joint's force and torque information. The dJointGetFeedback() function returns the current feedback
6003
structure pointer, or 0 if none is used (this is the default). dJointSetFeedback() can be passed 0
6004
to disable feedback for that joint.
6005
6006
Now for some API design notes. It might seem strange to require that users perform the allocation
6007
of these structures. Why not just store the data statically in each joint? The reason is that not
6008
all users will use the feedback information, and even when it is used not all joints will need it.
6009
It will waste memory to store it statically, especially as this structure could grow to store a
6010
lot of extra information in the future.
6011
6012
Why not have ODE allocate the structure itself, at the user's request? The reason is that contact
6013
joints (which are created and destroyed every time step) would require a lot of time to be spent
6014
in memory allocation if feedback is required. Letting the user do the allocation means that a
6015
better allocation strategy can be provided, e.g simply allocating them out of a fixed array.
6016
6017
The alternative to this API is to have a joint-force callback. This would work of course, but
6018
it has a few problems. First, callbacks tend to pollute APIs and sometimes require the user
6019
to go through unnatural contortions to get the data to the right place. Second, this would
6020
expose ODE to being changed in the middle of a step (which would have bad consequences), and
6021
there would have to be some kind of guard against this or a debugging check for it - which
6022
would complicate things.
6023
</summary>
6024
</member>
6025
<member name="M:Tao.Ode.Ode.dJointFeedback.#ctor(Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3,Tao.Ode.Ode.dVector3)">
6026
<summary>
6027
6028
</summary>
6029
</member>
6030
<member name="F:Tao.Ode.Ode.dJointFeedback.f1">
6031
<summary>Force applied to body 1</summary>
6032
</member>
6033
<member name="F:Tao.Ode.Ode.dJointFeedback.t1">
6034
<summary>Torque applied to body 1</summary>
6035
</member>
6036
<member name="F:Tao.Ode.Ode.dJointFeedback.f2">
6037
<summary>Force applied to body 2</summary>
6038
</member>
6039
<member name="F:Tao.Ode.Ode.dJointFeedback.t2">
6040
<summary>Torque applied to body 2</summary>
6041
</member>
6042
<member name="T:Tao.Ode.Ode.dNearCallback">
6043
<summary>
6044
Callback function for dSpaceCollide and dSpaceCollide2
6045
</summary>
6046
</member>
6047
<member name="T:Tao.Ode.Ode.TriMeshNumbers">
6048
<summary>
6049
6050
</summary>
6051
</member>
6052
<member name="F:Tao.Ode.Ode.TriMeshNumbers.TRIMESH_FACE_NORMALS">
6053
<summary>
6054
6055
</summary>
6056
</member>
6057
<member name="F:Tao.Ode.Ode.TriMeshNumbers.TRIMESH_LAST_TRANSFORMATION">
6058
<summary>
6059
6060
</summary>
6061
</member>
6062
<member name="T:Tao.Ode.Ode.dTriCallback">
6063
<summary>
6064
Per triangle callback.
6065
Allows user to state if a collision with a particular triangle is wanted
6066
If the return value is zero no contact will be generated.
6067
</summary>
6068
</member>
6069
<member name="T:Tao.Ode.Ode.dTriArrayCallback">
6070
<summary>
6071
Per object callback.
6072
Allows user to get the list of all intersecting triangles in one shot.
6073
</summary>
6074
</member>
6075
<member name="T:Tao.Ode.Ode.dTriRayCallback">
6076
<summary>
6077
Ray callback.
6078
Allows the user to determine if a ray collides with a triangle based on
6079
the barycentric coordinates of an intersection. The user can for example
6080
sample a bitmap to determine if a collision should occur.
6081
</summary>
6082
</member>
6083
<member name="T:Tao.Ode.Ode.dAABBTestFn">
6084
<summary>
6085
6086
</summary>
6087
<param name="o1"></param>
6088
<param name="o2"></param>
6089
<param name="aabb"></param>
6090
<returns></returns>
6091
</member>
6092
<member name="T:Tao.Ode.Ode.dColliderFn">
6093
<summary>
6094
6095
</summary>
6096
<param name="o1"></param>
6097
<param name="o2"></param>
6098
<param name="flags"></param>
6099
<param name="contact"></param>
6100
<param name="skip"></param>
6101
<returns></returns>
6102
</member>
6103
<member name="T:Tao.Ode.Ode.dGetAABBFn">
6104
<summary>
6105
6106
</summary>
6107
<param name="geom"></param>
6108
<param name="aabb"></param>
6109
</member>
6110
<member name="T:Tao.Ode.Ode.dGetColliderFnFn">
6111
<summary>
6112
6113
</summary>
6114
<param name="num"></param>
6115
<returns></returns>
6116
</member>
6117
<member name="T:Tao.Ode.Ode.dGeomDtorFn">
6118
<summary>
6119
6120
</summary>
6121
<param name="o"></param>
6122
</member>
6123
<member name="T:Tao.Ode.Ode.dHeightfieldGetHeight">
6124
<summary>
6125
6126
</summary>
6127
<param name="p_user_data"></param>
6128
<param name="x"></param>
6129
<param name="z"></param>
6130
<returns></returns>
6131
</member>
6132
<member name="T:Tao.Ode.Ode.dGeomClass">
6133
<summary>
6134
6135
</summary>
6136
</member>
6137
<member name="F:Tao.Ode.Ode.dGeomClass.bytes">
6138
<summary>
6139
6140
</summary>
6141
</member>
6142
<member name="F:Tao.Ode.Ode.dGeomClass.collider">
6143
<summary>
6144
6145
</summary>
6146
</member>
6147
<member name="F:Tao.Ode.Ode.dGeomClass.aabb">
6148
<summary>
6149
6150
</summary>
6151
</member>
6152
<member name="F:Tao.Ode.Ode.dGeomClass.aabb_test">
6153
<summary>
6154
6155
</summary>
6156
</member>
6157
<member name="F:Tao.Ode.Ode.dGeomClass.dtor">
6158
<summary>
6159
6160
</summary>
6161
</member>
6162
</members>
6163
</doc>
6164
6165