aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs
diff options
context:
space:
mode:
authorUbitUmarov2012-02-08 15:24:10 +0000
committerUbitUmarov2012-02-08 15:24:10 +0000
commit815f3af1d7b3bf16e81dd3a03e0c69c8e49f2f91 (patch)
tree84a2cd2a6c76c23923388d629b54eab4b49b4cf7 /OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs
parentPush more NPC stuff into threads (diff)
downloadopensim-SC_OLD-815f3af1d7b3bf16e81dd3a03e0c69c8e49f2f91.zip
opensim-SC_OLD-815f3af1d7b3bf16e81dd3a03e0c69c8e49f2f91.tar.gz
opensim-SC_OLD-815f3af1d7b3bf16e81dd3a03e0c69c8e49f2f91.tar.bz2
opensim-SC_OLD-815f3af1d7b3bf16e81dd3a03e0c69c8e49f2f91.tar.xz
UbitODE plugin initial commit
Diffstat (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs')
-rw-r--r--OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs1903
1 files changed, 1903 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs
new file mode 100644
index 0000000..c0c7ff3
--- /dev/null
+++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeApi.cs
@@ -0,0 +1,1903 @@
1/*
2 * based on:
3 * Ode.NET - .NET bindings for ODE
4 * Jason Perkins (starkos@industriousone.com)
5 * Licensed under the New BSD
6 * Part of the OpenDynamicsEngine
7Open Dynamics Engine
8Copyright (c) 2001-2007, Russell L. Smith.
9All rights reserved.
10
11Redistribution and use in source and binary forms, with or without
12modification, are permitted provided that the following conditions
13are met:
14
15Redistributions of source code must retain the above copyright notice,
16this list of conditions and the following disclaimer.
17
18Redistributions in binary form must reproduce the above copyright notice,
19this list of conditions and the following disclaimer in the documentation
20and/or other materials provided with the distribution.
21
22Neither the names of ODE's copyright owner nor the names of its
23contributors may be used to endorse or promote products derived from
24this software without specific prior written permission.
25
26THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
29FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
32TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 * changes by opensim team;
39 * changes by Aurora team http://www.aurora-sim.org/
40
41 * Revision/fixs by Ubit Umarov
42 */
43
44using System;
45using System.Runtime.InteropServices;
46using System.Security;
47
48namespace OdeAPI
49{
50//#if dDOUBLE
51// don't see much use in double precision with time steps of 20ms and 10 iterations used on opensim
52// at least we save same memory and memory access time, FPU performance on intel usually is similar
53// using dReal = System.Double;
54//#else
55 using dReal = System.Single;
56//#endif
57
58 public static class d
59 {
60 public static dReal Infinity = dReal.MaxValue;
61 public static int NTotalBodies = 0;
62
63 #region Flags and Enumerations
64
65 [Flags]
66 public enum AllocateODEDataFlags : uint
67 {
68 BasicData = 0,
69 CollisionData = 0x00000001,
70 All = ~0u
71 }
72
73 [Flags]
74 public enum IniteODEFlags : uint
75 {
76 dInitFlagManualThreadCleanup = 0x00000001
77 }
78
79 [Flags]
80 public enum ContactFlags : int
81 {
82 Mu2 = 0x001,
83 FDir1 = 0x002,
84 Bounce = 0x004,
85 SoftERP = 0x008,
86 SoftCFM = 0x010,
87 Motion1 = 0x020,
88 Motion2 = 0x040,
89 MotionN = 0x080,
90 Slip1 = 0x100,
91 Slip2 = 0x200,
92 Approx0 = 0x0000,
93 Approx1_1 = 0x1000,
94 Approx1_2 = 0x2000,
95 Approx1 = 0x3000
96 }
97
98 public enum GeomClassID : int
99 {
100 SphereClass,
101 BoxClass,
102 CapsuleClass,
103 CylinderClass,
104 PlaneClass,
105 RayClass,
106 ConvexClass,
107 GeomTransformClass,
108 TriMeshClass,
109 HeightfieldClass,
110 FirstSpaceClass,
111 SimpleSpaceClass = FirstSpaceClass,
112 HashSpaceClass,
113 QuadTreeSpaceClass,
114 LastSpaceClass = QuadTreeSpaceClass,
115 FirstUserClass,
116 LastUserClass = FirstUserClass + MaxUserClasses - 1,
117 NumClasses,
118 MaxUserClasses = 4
119 }
120
121 public enum JointType : int
122 {
123 None,
124 Ball,
125 Hinge,
126 Slider,
127 Contact,
128 Universal,
129 Hinge2,
130 Fixed,
131 Null,
132 AMotor,
133 LMotor,
134 Plane2D
135 }
136
137 public enum JointParam : int
138 {
139 LoStop,
140 HiStop,
141 Vel,
142 FMax,
143 FudgeFactor,
144 Bounce,
145 CFM,
146 StopERP,
147 StopCFM,
148 SuspensionERP,
149 SuspensionCFM,
150 LoStop2 = 256,
151 HiStop2,
152 Vel2,
153 FMax2,
154 FudgeFactor2,
155 Bounce2,
156 CFM2,
157 StopERP2,
158 StopCFM2,
159 SuspensionERP2,
160 SuspensionCFM2,
161 LoStop3 = 512,
162 HiStop3,
163 Vel3,
164 FMax3,
165 FudgeFactor3,
166 Bounce3,
167 CFM3,
168 StopERP3,
169 StopCFM3,
170 SuspensionERP3,
171 SuspensionCFM3
172 }
173
174 public enum dSweepAndPruneAxis : int
175 {
176 XYZ = ((0)|(1<<2)|(2<<4)),
177 XZY = ((0)|(2<<2)|(1<<4)),
178 YXZ = ((1)|(0<<2)|(2<<4)),
179 YZX = ((1)|(2<<2)|(0<<4)),
180 ZXY = ((2)|(0<<2)|(1<<4)),
181 ZYX = ((2)|(1<<2)|(0<<4))
182 }
183
184 #endregion
185
186 #region Callbacks
187
188 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
189 public delegate int AABBTestFn(IntPtr o1, IntPtr o2, ref AABB aabb);
190
191 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
192 public delegate int ColliderFn(IntPtr o1, IntPtr o2, int flags, out ContactGeom contact, int skip);
193
194 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
195 public delegate void GetAABBFn(IntPtr geom, out AABB aabb);
196
197 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
198 public delegate ColliderFn GetColliderFnFn(int num);
199
200 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
201 public delegate void GeomDtorFn(IntPtr o);
202
203 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
204 public delegate dReal HeightfieldGetHeight(IntPtr p_user_data, int x, int z);
205
206 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
207 public delegate void NearCallback(IntPtr data, IntPtr geom1, IntPtr geom2);
208
209 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
210 public delegate int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex);
211
212 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
213 public delegate int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount);
214
215 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
216 public delegate int TriRayCallback(IntPtr trimesh, IntPtr ray, int triangleIndex, dReal u, dReal v);
217
218 #endregion
219
220 #region Structs
221
222 [StructLayout(LayoutKind.Sequential)]
223 public struct AABB
224 {
225 public dReal MinX, MaxX;
226 public dReal MinY, MaxY;
227 public dReal MinZ, MaxZ;
228 }
229
230
231 [StructLayout(LayoutKind.Sequential)]
232 public struct Contact
233 {
234 public SurfaceParameters surface;
235 public ContactGeom geom;
236 public Vector3 fdir1;
237 public static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(Contact));
238 }
239
240
241 [StructLayout(LayoutKind.Sequential)]
242 public struct ContactGeom
243 {
244
245 public Vector3 pos;
246 public Vector3 normal;
247 public dReal depth;
248 public IntPtr g1;
249 public IntPtr g2;
250 public int side1;
251 public int side2;
252 public static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(ContactGeom));
253 }
254
255 [StructLayout(LayoutKind.Sequential)]
256 public struct GeomClass
257 {
258 public int bytes;
259 public GetColliderFnFn collider;
260 public GetAABBFn aabb;
261 public AABBTestFn aabb_test;
262 public GeomDtorFn dtor;
263 }
264
265
266 [StructLayout(LayoutKind.Sequential)]
267 public struct JointFeedback
268 {
269 public Vector3 f1;
270 public Vector3 t1;
271 public Vector3 f2;
272 public Vector3 t2;
273 }
274
275
276 [StructLayout(LayoutKind.Sequential)]
277 public struct Mass
278 {
279 public dReal mass;
280 public Vector4 c;
281 public Matrix3 I;
282 }
283
284
285 [StructLayout(LayoutKind.Sequential)]
286 public struct Matrix3
287 {
288 public Matrix3(dReal m00, dReal m10, dReal m20, dReal m01, dReal m11, dReal m21, dReal m02, dReal m12, dReal m22)
289 {
290 M00 = m00; M10 = m10; M20 = m20; _m30 = 0.0f;
291 M01 = m01; M11 = m11; M21 = m21; _m31 = 0.0f;
292 M02 = m02; M12 = m12; M22 = m22; _m32 = 0.0f;
293 }
294 public dReal M00, M10, M20;
295 private dReal _m30;
296 public dReal M01, M11, M21;
297 private dReal _m31;
298 public dReal M02, M12, M22;
299 private dReal _m32;
300 }
301
302 [StructLayout(LayoutKind.Sequential)]
303 public struct Matrix4
304 {
305 public Matrix4(dReal m00, dReal m10, dReal m20, dReal m30,
306 dReal m01, dReal m11, dReal m21, dReal m31,
307 dReal m02, dReal m12, dReal m22, dReal m32,
308 dReal m03, dReal m13, dReal m23, dReal m33)
309 {
310 M00 = m00; M10 = m10; M20 = m20; M30 = m30;
311 M01 = m01; M11 = m11; M21 = m21; M31 = m31;
312 M02 = m02; M12 = m12; M22 = m22; M32 = m32;
313 M03 = m03; M13 = m13; M23 = m23; M33 = m33;
314 }
315 public dReal M00, M10, M20, M30;
316 public dReal M01, M11, M21, M31;
317 public dReal M02, M12, M22, M32;
318 public dReal M03, M13, M23, M33;
319 }
320
321 [StructLayout(LayoutKind.Sequential)]
322 public struct Quaternion
323 {
324 public dReal W, X, Y, Z;
325 }
326
327
328 [StructLayout(LayoutKind.Sequential)]
329 public struct SurfaceParameters
330 {
331 public ContactFlags mode;
332 public dReal mu;
333 public dReal mu2;
334 public dReal bounce;
335 public dReal bounce_vel;
336 public dReal soft_erp;
337 public dReal soft_cfm;
338 public dReal motion1;
339 public dReal motion2;
340 public dReal motionN;
341 public dReal slip1;
342 public dReal slip2;
343 }
344
345
346 [StructLayout(LayoutKind.Sequential)]
347 public struct Vector3
348 {
349 public Vector3(dReal x, dReal y, dReal z)
350 {
351 X = x; Y = y; Z = z; _w = 0.0f;
352 }
353 public dReal X, Y, Z;
354 private dReal _w;
355 }
356
357
358 [StructLayout(LayoutKind.Sequential)]
359 public struct Vector4
360 {
361 public Vector4(dReal x, dReal y, dReal z, dReal w)
362 {
363 X = x; Y = y; Z = z; W = w;
364 }
365 public dReal X, Y, Z, W;
366 }
367
368 #endregion
369
370 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAllocateODEDataForThread"), SuppressUnmanagedCodeSecurity]
371 public static extern int AllocateODEDataForThread(uint ODEInitFlags);
372
373 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnected"), SuppressUnmanagedCodeSecurity]
374 public static extern bool AreConnected(IntPtr b1, IntPtr b2);
375
376 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnectedExcluding"), SuppressUnmanagedCodeSecurity]
377 public static extern bool AreConnectedExcluding(IntPtr b1, IntPtr b2, JointType joint_type);
378
379 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForce"), SuppressUnmanagedCodeSecurity]
380 public static extern void BodyAddForce(IntPtr body, dReal fx, dReal fy, dReal fz);
381
382 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtPos"), SuppressUnmanagedCodeSecurity]
383 public static extern void BodyAddForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
384
385 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtRelPos"), SuppressUnmanagedCodeSecurity]
386 public static extern void BodyAddForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
387
388 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForce"), SuppressUnmanagedCodeSecurity]
389 public static extern void BodyAddRelForce(IntPtr body, dReal fx, dReal fy, dReal fz);
390
391 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtPos"), SuppressUnmanagedCodeSecurity]
392 public static extern void BodyAddRelForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
393
394 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtRelPos"), SuppressUnmanagedCodeSecurity]
395 public static extern void BodyAddRelForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
396
397 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelTorque"), SuppressUnmanagedCodeSecurity]
398 public static extern void BodyAddRelTorque(IntPtr body, dReal fx, dReal fy, dReal fz);
399
400 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddTorque"), SuppressUnmanagedCodeSecurity]
401 public static extern void BodyAddTorque(IntPtr body, dReal fx, dReal fy, dReal fz);
402
403 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity]
404 public static extern void BodyCopyPosition(IntPtr body, out Vector3 pos);
405
406 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity]
407 public static extern void BodyCopyPosition(IntPtr body, out dReal X);
408
409 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity]
410 public static extern void BodyCopyQuaternion(IntPtr body, out Quaternion quat);
411
412 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity]
413 public static extern void BodyCopyQuaternion(IntPtr body, out dReal X);
414
415 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity]
416 public static extern void BodyCopyRotation(IntPtr body, out Matrix3 R);
417
418 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity]
419 public static extern void BodyCopyRotation(IntPtr body, out dReal M00);
420
421 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCreate"), SuppressUnmanagedCodeSecurity]
422 public static extern IntPtr BodyiCreate(IntPtr world);
423 public static IntPtr BodyCreate(IntPtr world)
424 {
425 NTotalBodies++;
426 return BodyiCreate(world);
427 }
428
429 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDestroy"), SuppressUnmanagedCodeSecurity]
430 public static extern void BodyiDestroy(IntPtr body);
431 public static void BodyDestroy(IntPtr body)
432 {
433 NTotalBodies--;
434 BodyiDestroy(body);
435 }
436
437 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDisable"), SuppressUnmanagedCodeSecurity]
438 public static extern void BodyDisable(IntPtr body);
439
440 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyEnable"), SuppressUnmanagedCodeSecurity]
441 public static extern void BodyEnable(IntPtr body);
442
443 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity]
444 public static extern dReal BodyGetAutoDisableAngularThreshold(IntPtr body);
445
446 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity]
447 public static extern bool BodyGetAutoDisableFlag(IntPtr body);
448
449 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity]
450 public static extern void BodyGetAutoDisableDefaults(IntPtr body);
451
452 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity]
453 public static extern dReal BodyGetAutoDisableLinearThreshold(IntPtr body);
454
455 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity]
456 public static extern int BodyGetAutoDisableSteps(IntPtr body);
457
458 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableTime"), SuppressUnmanagedCodeSecurity]
459 public static extern dReal BodyGetAutoDisableTime(IntPtr body);
460
461 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularVel"), SuppressUnmanagedCodeSecurity]
462 public extern unsafe static Vector3* BodyGetAngularVelUnsafe(IntPtr body);
463 public static Vector3 BodyGetAngularVel(IntPtr body)
464 {
465 unsafe { return *(BodyGetAngularVelUnsafe(body)); }
466 }
467
468 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetData"), SuppressUnmanagedCodeSecurity]
469 public static extern IntPtr BodyGetData(IntPtr body);
470
471 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationMode"), SuppressUnmanagedCodeSecurity]
472 public static extern int BodyGetFiniteRotationMode(IntPtr body);
473
474 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity]
475 public static extern void BodyGetFiniteRotationAxis(IntPtr body, out Vector3 result);
476
477 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetForce"), SuppressUnmanagedCodeSecurity]
478 public extern unsafe static Vector3* BodyGetForceUnsafe(IntPtr body);
479 public static Vector3 BodyGetForce(IntPtr body)
480 {
481 unsafe { return *(BodyGetForceUnsafe(body)); }
482 }
483
484 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGravityMode"), SuppressUnmanagedCodeSecurity]
485 public static extern bool BodyGetGravityMode(IntPtr body);
486
487 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGyroscopicMode"), SuppressUnmanagedCodeSecurity]
488 public static extern int BodyGetGyroscopicMode(IntPtr body);
489
490 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetJoint"), SuppressUnmanagedCodeSecurity]
491 public static extern IntPtr BodyGetJoint(IntPtr body, int index);
492
493 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearVel"), SuppressUnmanagedCodeSecurity]
494 public extern unsafe static Vector3* BodyGetLinearVelUnsafe(IntPtr body);
495 public static Vector3 BodyGetLinearVel(IntPtr body)
496 {
497 unsafe { return *(BodyGetLinearVelUnsafe(body)); }
498 }
499
500 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetMass"), SuppressUnmanagedCodeSecurity]
501 public static extern void BodyGetMass(IntPtr body, out Mass mass);
502
503 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNumJoints"), SuppressUnmanagedCodeSecurity]
504 public static extern int BodyGetNumJoints(IntPtr body);
505
506 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPointVel"), SuppressUnmanagedCodeSecurity]
507 public static extern void BodyGetPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result);
508
509 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosition"), SuppressUnmanagedCodeSecurity]
510 public extern unsafe static Vector3* BodyGetPositionUnsafe(IntPtr body);
511 public static Vector3 BodyGetPosition(IntPtr body)
512 {
513 unsafe { return *(BodyGetPositionUnsafe(body)); }
514 }
515
516 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosRelPoint"), SuppressUnmanagedCodeSecurity]
517 public static extern void BodyGetPosRelPoint(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result);
518
519 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetQuaternion"), SuppressUnmanagedCodeSecurity]
520 public extern unsafe static Quaternion* BodyGetQuaternionUnsafe(IntPtr body);
521 public static Quaternion BodyGetQuaternion(IntPtr body)
522 {
523 unsafe { return *(BodyGetQuaternionUnsafe(body)); }
524 }
525
526 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointPos"), SuppressUnmanagedCodeSecurity]
527 public static extern void BodyGetRelPointPos(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result);
528
529 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointVel"), SuppressUnmanagedCodeSecurity]
530 public static extern void BodyGetRelPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result);
531
532 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRotation"), SuppressUnmanagedCodeSecurity]
533 public extern unsafe static Matrix3* BodyGetRotationUnsafe(IntPtr body);
534 public static Matrix3 BodyGetRotation(IntPtr body)
535 {
536 unsafe { return *(BodyGetRotationUnsafe(body)); }
537 }
538
539 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetTorque"), SuppressUnmanagedCodeSecurity]
540 public extern unsafe static Vector3* BodyGetTorqueUnsafe(IntPtr body);
541 public static Vector3 BodyGetTorque(IntPtr body)
542 {
543 unsafe { return *(BodyGetTorqueUnsafe(body)); }
544 }
545
546 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetWorld"), SuppressUnmanagedCodeSecurity]
547 public static extern IntPtr BodyGetWorld(IntPtr body);
548
549 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFirstGeom"), SuppressUnmanagedCodeSecurity]
550 public static extern IntPtr BodyGetFirstGeom(IntPtr body);
551
552 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNextGeom"), SuppressUnmanagedCodeSecurity]
553 public static extern IntPtr dBodyGetNextGeom(IntPtr Geom);
554
555
556 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyIsEnabled"), SuppressUnmanagedCodeSecurity]
557 public static extern bool BodyIsEnabled(IntPtr body);
558
559 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularVel"), SuppressUnmanagedCodeSecurity]
560 public static extern void BodySetAngularVel(IntPtr body, dReal x, dReal y, dReal z);
561
562 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity]
563 public static extern void BodySetAutoDisableAngularThreshold(IntPtr body, dReal angular_threshold);
564
565 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity]
566 public static extern void BodySetAutoDisableDefaults(IntPtr body);
567
568 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableFlag"), SuppressUnmanagedCodeSecurity]
569 public static extern void BodySetAutoDisableFlag(IntPtr body, bool do_auto_disable);
570
571 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity]
572 public static extern void BodySetAutoDisableLinearThreshold(IntPtr body, dReal linear_threshold);
573
574 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableSteps"), SuppressUnmanagedCodeSecurity]
575 public static extern void BodySetAutoDisableSteps(IntPtr body, int steps);
576
577 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableTime"), SuppressUnmanagedCodeSecurity]
578 public static extern void BodySetAutoDisableTime(IntPtr body, dReal time);
579
580 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetData"), SuppressUnmanagedCodeSecurity]
581 public static extern void BodySetData(IntPtr body, IntPtr data);
582
583 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationMode"), SuppressUnmanagedCodeSecurity]
584 public static extern void BodySetFiniteRotationMode(IntPtr body, int mode);
585
586 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity]
587 public static extern void BodySetFiniteRotationAxis(IntPtr body, dReal x, dReal y, dReal z);
588
589 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDamping"), SuppressUnmanagedCodeSecurity]
590 public static extern void BodySetLinearDamping(IntPtr body, dReal scale);
591
592 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity]
593 public static extern void BodySetAngularDamping(IntPtr body, dReal scale);
594
595 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDamping"), SuppressUnmanagedCodeSecurity]
596 public static extern dReal BodyGetLinearDamping(IntPtr body);
597
598 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDamping"), SuppressUnmanagedCodeSecurity]
599 public static extern dReal BodyGetAngularDamping(IntPtr body);
600
601 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity]
602 public static extern void BodySetDamping(IntPtr body, dReal linear_scale, dReal angular_scale);
603
604 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity]
605 public static extern void BodySetAngularDampingThreshold(IntPtr body, dReal threshold);
606
607 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity]
608 public static extern void BodySetLinearDampingThreshold(IntPtr body, dReal threshold);
609
610 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity]
611 public static extern dReal BodyGetLinearDampingThreshold(IntPtr body);
612
613 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity]
614 public static extern dReal BodyGetAngularDampingThreshold(IntPtr body);
615
616 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetForce"), SuppressUnmanagedCodeSecurity]
617 public static extern void BodySetForce(IntPtr body, dReal x, dReal y, dReal z);
618
619 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGravityMode"), SuppressUnmanagedCodeSecurity]
620 public static extern void BodySetGravityMode(IntPtr body, bool mode);
621
622 /// <summary>
623 /// Sets the Gyroscopic term status on the body specified.
624 /// </summary>
625 /// <param name="body">Pointer to body</param>
626 /// <param name="enabled">NonZero enabled, Zero disabled</param>
627 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGyroscopicMode"), SuppressUnmanagedCodeSecurity]
628 public static extern void dBodySetGyroscopicMode(IntPtr body, int enabled);
629
630 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearVel"), SuppressUnmanagedCodeSecurity]
631 public static extern void BodySetLinearVel(IntPtr body, dReal x, dReal y, dReal z);
632
633 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetMass"), SuppressUnmanagedCodeSecurity]
634 public static extern void BodySetMass(IntPtr body, ref Mass mass);
635
636 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetPosition"), SuppressUnmanagedCodeSecurity]
637 public static extern void BodySetPosition(IntPtr body, dReal x, dReal y, dReal z);
638
639 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity]
640 public static extern void BodySetQuaternion(IntPtr body, ref Quaternion q);
641
642 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity]
643 public static extern void BodySetQuaternion(IntPtr body, ref dReal w);
644
645 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity]
646 public static extern void BodySetRotation(IntPtr body, ref Matrix3 R);
647
648 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity]
649 public static extern void BodySetRotation(IntPtr body, ref dReal M00);
650
651 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetTorque"), SuppressUnmanagedCodeSecurity]
652 public static extern void BodySetTorque(IntPtr body, dReal x, dReal y, dReal z);
653
654 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorFromWorld"), SuppressUnmanagedCodeSecurity]
655 public static extern void BodyVectorFromWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result);
656
657 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorToWorld"), SuppressUnmanagedCodeSecurity]
658 public static extern void BodyVectorToWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result);
659
660 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxBox"), SuppressUnmanagedCodeSecurity]
661 public static extern void BoxBox(ref Vector3 p1, ref Matrix3 R1,
662 ref Vector3 side1, ref Vector3 p2,
663 ref Matrix3 R2, ref Vector3 side2,
664 ref Vector3 normal, out dReal depth, out int return_code,
665 int maxc, out ContactGeom contact, int skip);
666
667 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxTouchesBox"), SuppressUnmanagedCodeSecurity]
668 public static extern void BoxTouchesBox(ref Vector3 _p1, ref Matrix3 R1,
669 ref Vector3 side1, ref Vector3 _p2,
670 ref Matrix3 R2, ref Vector3 side2);
671
672 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCleanupODEAllDataForThread"), SuppressUnmanagedCodeSecurity]
673 public static extern void CleanupODEAllDataForThread();
674
675 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dClosestLineSegmentPoints"), SuppressUnmanagedCodeSecurity]
676 public static extern void ClosestLineSegmentPoints(ref Vector3 a1, ref Vector3 a2,
677 ref Vector3 b1, ref Vector3 b2,
678 ref Vector3 cp1, ref Vector3 cp2);
679
680 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCloseODE"), SuppressUnmanagedCodeSecurity]
681 public static extern void CloseODE();
682
683 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity]
684 public static extern int Collide(IntPtr o1, IntPtr o2, int flags, [In, Out] ContactGeom[] contact, int skip);
685 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity]
686 public static extern int CollidePtr(IntPtr o1, IntPtr o2, int flags, IntPtr contactgeomarray, int skip);
687
688 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dConnectingJoint"), SuppressUnmanagedCodeSecurity]
689 public static extern IntPtr ConnectingJoint(IntPtr j1, IntPtr j2);
690
691 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateBox"), SuppressUnmanagedCodeSecurity]
692 public static extern IntPtr CreateBox(IntPtr space, dReal lx, dReal ly, dReal lz);
693
694 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCapsule"), SuppressUnmanagedCodeSecurity]
695 public static extern IntPtr CreateCapsule(IntPtr space, dReal radius, dReal length);
696
697 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateConvex"), SuppressUnmanagedCodeSecurity]
698 public static extern IntPtr CreateConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons);
699
700 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCylinder"), SuppressUnmanagedCodeSecurity]
701 public static extern IntPtr CreateCylinder(IntPtr space, dReal radius, dReal length);
702
703 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateHeightfield"), SuppressUnmanagedCodeSecurity]
704 public static extern IntPtr CreateHeightfield(IntPtr space, IntPtr data, int bPlaceable);
705
706 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeom"), SuppressUnmanagedCodeSecurity]
707 public static extern IntPtr CreateGeom(int classnum);
708
709 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomClass"), SuppressUnmanagedCodeSecurity]
710 public static extern int CreateGeomClass(ref GeomClass classptr);
711
712 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomTransform"), SuppressUnmanagedCodeSecurity]
713 public static extern IntPtr CreateGeomTransform(IntPtr space);
714
715 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreatePlane"), SuppressUnmanagedCodeSecurity]
716 public static extern IntPtr CreatePlane(IntPtr space, dReal a, dReal b, dReal c, dReal d);
717
718 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateRay"), SuppressUnmanagedCodeSecurity]
719 public static extern IntPtr CreateRay(IntPtr space, dReal length);
720
721 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateSphere"), SuppressUnmanagedCodeSecurity]
722 public static extern IntPtr CreateSphere(IntPtr space, dReal radius);
723
724 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateTriMesh"), SuppressUnmanagedCodeSecurity]
725 public static extern IntPtr CreateTriMesh(IntPtr space, IntPtr data,
726 TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback);
727
728 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDot"), SuppressUnmanagedCodeSecurity]
729 public static extern dReal Dot(ref dReal X0, ref dReal X1, int n);
730
731 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDQfromW"), SuppressUnmanagedCodeSecurity]
732 public static extern void DQfromW(dReal[] dq, ref Vector3 w, ref Quaternion q);
733
734 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorCholesky"), SuppressUnmanagedCodeSecurity]
735 public static extern int FactorCholesky(ref dReal A00, int n);
736
737 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorLDLT"), SuppressUnmanagedCodeSecurity]
738 public static extern void FactorLDLT(ref dReal A, out dReal d, int n, int nskip);
739
740 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity]
741 public static extern void GeomBoxGetLengths(IntPtr geom, out Vector3 len);
742
743 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity]
744 public static extern void GeomBoxGetLengths(IntPtr geom, out dReal x);
745
746 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxPointDepth"), SuppressUnmanagedCodeSecurity]
747 public static extern dReal GeomBoxPointDepth(IntPtr geom, dReal x, dReal y, dReal z);
748
749 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxSetLengths"), SuppressUnmanagedCodeSecurity]
750 public static extern void GeomBoxSetLengths(IntPtr geom, dReal x, dReal y, dReal z);
751
752 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleGetParams"), SuppressUnmanagedCodeSecurity]
753 public static extern void GeomCapsuleGetParams(IntPtr geom, out dReal radius, out dReal length);
754
755 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsulePointDepth"), SuppressUnmanagedCodeSecurity]
756 public static extern dReal GeomCapsulePointDepth(IntPtr geom, dReal x, dReal y, dReal z);
757
758 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleSetParams"), SuppressUnmanagedCodeSecurity]
759 public static extern void GeomCapsuleSetParams(IntPtr geom, dReal radius, dReal length);
760
761 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomClearOffset"), SuppressUnmanagedCodeSecurity]
762 public static extern void GeomClearOffset(IntPtr geom);
763
764 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity]
765 public static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref Vector3 pos);
766
767 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity]
768 public static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref dReal X);
769
770 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity]
771 public static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref Quaternion Q);
772
773 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity]
774 public static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref dReal X);
775
776 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity]
777 public static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref Matrix3 R);
778
779 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity]
780 public static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref dReal M00);
781
782 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity]
783 public static extern void GeomCopyPosition(IntPtr geom, out Vector3 pos);
784
785 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity]
786 public static extern void GeomCopyPosition(IntPtr geom, out dReal X);
787
788 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity]
789 public static extern void GeomCopyRotation(IntPtr geom, out Matrix3 R);
790
791 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity]
792 public static extern void GeomCopyRotation(IntPtr geom, out dReal M00);
793
794 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderGetParams"), SuppressUnmanagedCodeSecurity]
795 public static extern void GeomCylinderGetParams(IntPtr geom, out dReal radius, out dReal length);
796
797 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderSetParams"), SuppressUnmanagedCodeSecurity]
798 public static extern void GeomCylinderSetParams(IntPtr geom, dReal radius, dReal length);
799
800 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDestroy"), SuppressUnmanagedCodeSecurity]
801 public static extern void GeomDestroy(IntPtr geom);
802
803 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDisable"), SuppressUnmanagedCodeSecurity]
804 public static extern void GeomDisable(IntPtr geom);
805
806 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomEnable"), SuppressUnmanagedCodeSecurity]
807 public static extern void GeomEnable(IntPtr geom);
808
809 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity]
810 public static extern void GeomGetAABB(IntPtr geom, out AABB aabb);
811
812 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity]
813 public static extern void GeomGetAABB(IntPtr geom, out dReal minX);
814
815 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetBody"), SuppressUnmanagedCodeSecurity]
816 public static extern IntPtr GeomGetBody(IntPtr geom);
817
818 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCategoryBits"), SuppressUnmanagedCodeSecurity]
819 public static extern int GeomGetCategoryBits(IntPtr geom);
820
821 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClassData"), SuppressUnmanagedCodeSecurity]
822 public static extern IntPtr GeomGetClassData(IntPtr geom);
823
824 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCollideBits"), SuppressUnmanagedCodeSecurity]
825 public static extern int GeomGetCollideBits(IntPtr geom);
826
827 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClass"), SuppressUnmanagedCodeSecurity]
828 public static extern GeomClassID GeomGetClass(IntPtr geom);
829
830 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetData"), SuppressUnmanagedCodeSecurity]
831 public static extern IntPtr GeomGetData(IntPtr geom);
832
833 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetPosition"), SuppressUnmanagedCodeSecurity]
834 public extern unsafe static Vector3* GeomGetOffsetPositionUnsafe(IntPtr geom);
835 public static Vector3 GeomGetOffsetPosition(IntPtr geom)
836 {
837 unsafe { return *(GeomGetOffsetPositionUnsafe(geom)); }
838 }
839
840 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetRotation"), SuppressUnmanagedCodeSecurity]
841 public extern unsafe static Matrix3* GeomGetOffsetRotationUnsafe(IntPtr geom);
842 public static Matrix3 GeomGetOffsetRotation(IntPtr geom)
843 {
844 unsafe { return *(GeomGetOffsetRotationUnsafe(geom)); }
845 }
846
847 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetPosition"), SuppressUnmanagedCodeSecurity]
848 public extern unsafe static Vector3* GeomGetPositionUnsafe(IntPtr geom);
849 public static Vector3 GeomGetPosition(IntPtr geom)
850 {
851 unsafe { return *(GeomGetPositionUnsafe(geom)); }
852 }
853
854 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity]
855 public static extern void GeomCopyQuaternion(IntPtr geom, out Quaternion q);
856
857 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity]
858 public static extern void GeomCopyQuaternion(IntPtr geom, out dReal X);
859
860 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetRotation"), SuppressUnmanagedCodeSecurity]
861 public extern unsafe static Matrix3* GeomGetRotationUnsafe(IntPtr geom);
862 public static Matrix3 GeomGetRotation(IntPtr geom)
863 {
864 unsafe { return *(GeomGetRotationUnsafe(geom)); }
865 }
866
867 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetSpace"), SuppressUnmanagedCodeSecurity]
868 public static extern IntPtr GeomGetSpace(IntPtr geom);
869
870 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity]
871 public static extern void GeomHeightfieldDataBuildByte(IntPtr d, byte[] pHeightData, int bCopyHeightData,
872 dReal width, dReal depth, int widthSamples, int depthSamples,
873 dReal scale, dReal offset, dReal thickness, int bWrap);
874
875 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity]
876 public static extern void GeomHeightfieldDataBuildByte(IntPtr d, IntPtr pHeightData, int bCopyHeightData,
877 dReal width, dReal depth, int widthSamples, int depthSamples,
878 dReal scale, dReal offset, dReal thickness, int bWrap);
879
880 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildCallback"), SuppressUnmanagedCodeSecurity]
881 public static extern void GeomHeightfieldDataBuildCallback(IntPtr d, IntPtr pUserData, HeightfieldGetHeight pCallback,
882 dReal width, dReal depth, int widthSamples, int depthSamples,
883 dReal scale, dReal offset, dReal thickness, int bWrap);
884
885 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity]
886 public static extern void GeomHeightfieldDataBuildShort(IntPtr d, ushort[] pHeightData, int bCopyHeightData,
887 dReal width, dReal depth, int widthSamples, int depthSamples,
888 dReal scale, dReal offset, dReal thickness, int bWrap);
889
890 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity]
891 public static extern void GeomHeightfieldDataBuildShort(IntPtr d, short[] pHeightData, int bCopyHeightData,
892 dReal width, dReal depth, int widthSamples, int depthSamples,
893 dReal scale, dReal offset, dReal thickness, int bWrap);
894
895 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity]
896 public static extern void GeomHeightfieldDataBuildShort(IntPtr d, IntPtr pHeightData, int bCopyHeightData,
897 dReal width, dReal depth, int widthSamples, int depthSamples,
898 dReal scale, dReal offset, dReal thickness, int bWrap);
899
900 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity]
901 public static extern void GeomHeightfieldDataBuildSingle(IntPtr d, float[] pHeightData, int bCopyHeightData,
902 dReal width, dReal depth, int widthSamples, int depthSamples,
903 dReal scale, dReal offset, dReal thickness, int bWrap);
904
905 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity]
906 public static extern void GeomHeightfieldDataBuildSingle(IntPtr d, IntPtr pHeightData, int bCopyHeightData,
907 dReal width, dReal depth, int widthSamples, int depthSamples,
908 dReal scale, dReal offset, dReal thickness, int bWrap);
909
910 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity]
911 public static extern void GeomHeightfieldDataBuildDouble(IntPtr d, double[] pHeightData, int bCopyHeightData,
912 dReal width, dReal depth, int widthSamples, int depthSamples,
913 dReal scale, dReal offset, dReal thickness, int bWrap);
914
915 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity]
916 public static extern void GeomHeightfieldDataBuildDouble(IntPtr d, IntPtr pHeightData, int bCopyHeightData,
917 dReal width, dReal depth, int widthSamples, int depthSamples,
918 dReal scale, dReal offset, dReal thickness, int bWrap);
919
920 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataCreate"), SuppressUnmanagedCodeSecurity]
921 public static extern IntPtr GeomHeightfieldDataCreate();
922
923 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataDestroy"), SuppressUnmanagedCodeSecurity]
924 public static extern void GeomHeightfieldDataDestroy(IntPtr d);
925
926 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataSetBounds"), SuppressUnmanagedCodeSecurity]
927 public static extern void GeomHeightfieldDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight);
928
929 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldGetHeightfieldData"), SuppressUnmanagedCodeSecurity]
930 public static extern IntPtr GeomHeightfieldGetHeightfieldData(IntPtr g);
931
932 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldSetHeightfieldData"), SuppressUnmanagedCodeSecurity]
933 public static extern void GeomHeightfieldSetHeightfieldData(IntPtr g, IntPtr d);
934
935 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsEnabled"), SuppressUnmanagedCodeSecurity]
936 public static extern bool GeomIsEnabled(IntPtr geom);
937
938 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsOffset"), SuppressUnmanagedCodeSecurity]
939 public static extern bool GeomIsOffset(IntPtr geom);
940
941 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsSpace"), SuppressUnmanagedCodeSecurity]
942 public static extern bool GeomIsSpace(IntPtr geom);
943
944 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity]
945 public static extern void GeomPlaneGetParams(IntPtr geom, ref Vector4 result);
946
947 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity]
948 public static extern void GeomPlaneGetParams(IntPtr geom, ref dReal A);
949
950 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlanePointDepth"), SuppressUnmanagedCodeSecurity]
951 public static extern dReal GeomPlanePointDepth(IntPtr geom, dReal x, dReal y, dReal z);
952
953 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneSetParams"), SuppressUnmanagedCodeSecurity]
954 public static extern void GeomPlaneSetParams(IntPtr plane, dReal a, dReal b, dReal c, dReal d);
955
956 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity]
957 public static extern void GeomRayGet(IntPtr ray, ref Vector3 start, ref Vector3 dir);
958
959 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity]
960 public static extern void GeomRayGet(IntPtr ray, ref dReal startX, ref dReal dirX);
961
962 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetClosestHit"), SuppressUnmanagedCodeSecurity]
963 public static extern int GeomRayGetClosestHit(IntPtr ray);
964
965 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetLength"), SuppressUnmanagedCodeSecurity]
966 public static extern dReal GeomRayGetLength(IntPtr ray);
967
968 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetParams"), SuppressUnmanagedCodeSecurity]
969 public static extern dReal GeomRayGetParams(IntPtr g, out int firstContact, out int backfaceCull);
970
971 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySet"), SuppressUnmanagedCodeSecurity]
972 public static extern void GeomRaySet(IntPtr ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz);
973
974 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetClosestHit"), SuppressUnmanagedCodeSecurity]
975 public static extern void GeomRaySetClosestHit(IntPtr ray, int closestHit);
976
977 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetLength"), SuppressUnmanagedCodeSecurity]
978 public static extern void GeomRaySetLength(IntPtr ray, dReal length);
979
980 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetParams"), SuppressUnmanagedCodeSecurity]
981 public static extern void GeomRaySetParams(IntPtr ray, int firstContact, int backfaceCull);
982
983 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetBody"), SuppressUnmanagedCodeSecurity]
984 public static extern void GeomSetBody(IntPtr geom, IntPtr body);
985
986 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCategoryBits"), SuppressUnmanagedCodeSecurity]
987 public static extern void GeomSetCategoryBits(IntPtr geom, int bits);
988
989 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCollideBits"), SuppressUnmanagedCodeSecurity]
990 public static extern void GeomSetCollideBits(IntPtr geom, int bits);
991
992 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetConvex"), SuppressUnmanagedCodeSecurity]
993 public static extern IntPtr GeomSetConvex(IntPtr geom, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons);
994
995 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetData"), SuppressUnmanagedCodeSecurity]
996 public static extern void GeomSetData(IntPtr geom, IntPtr data);
997
998 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetPosition"), SuppressUnmanagedCodeSecurity]
999 public static extern void GeomSetOffsetPosition(IntPtr geom, dReal x, dReal y, dReal z);
1000
1001 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity]
1002 public static extern void GeomSetOffsetQuaternion(IntPtr geom, ref Quaternion Q);
1003
1004 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity]
1005 public static extern void GeomSetOffsetQuaternion(IntPtr geom, ref dReal X);
1006
1007 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity]
1008 public static extern void GeomSetOffsetRotation(IntPtr geom, ref Matrix3 R);
1009
1010 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity]
1011 public static extern void GeomSetOffsetRotation(IntPtr geom, ref dReal M00);
1012
1013 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldPosition"), SuppressUnmanagedCodeSecurity]
1014 public static extern void GeomSetOffsetWorldPosition(IntPtr geom, dReal x, dReal y, dReal z);
1015
1016 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity]
1017 public static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref Quaternion Q);
1018
1019 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity]
1020 public static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref dReal X);
1021
1022 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity]
1023 public static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref Matrix3 R);
1024
1025 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity]
1026 public static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref dReal M00);
1027
1028 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetPosition"), SuppressUnmanagedCodeSecurity]
1029 public static extern void GeomSetPosition(IntPtr geom, dReal x, dReal y, dReal z);
1030
1031 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity]
1032 public static extern void GeomSetQuaternion(IntPtr geom, ref Quaternion quat);
1033
1034 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity]
1035 public static extern void GeomSetQuaternion(IntPtr geom, ref dReal w);
1036
1037 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity]
1038 public static extern void GeomSetRotation(IntPtr geom, ref Matrix3 R);
1039
1040 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity]
1041 public static extern void GeomSetRotation(IntPtr geom, ref dReal M00);
1042
1043 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereGetRadius"), SuppressUnmanagedCodeSecurity]
1044 public static extern dReal GeomSphereGetRadius(IntPtr geom);
1045
1046 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSpherePointDepth"), SuppressUnmanagedCodeSecurity]
1047 public static extern dReal GeomSpherePointDepth(IntPtr geom, dReal x, dReal y, dReal z);
1048
1049 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereSetRadius"), SuppressUnmanagedCodeSecurity]
1050 public static extern void GeomSphereSetRadius(IntPtr geom, dReal radius);
1051
1052 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetCleanup"), SuppressUnmanagedCodeSecurity]
1053 public static extern int GeomTransformGetCleanup(IntPtr geom);
1054
1055 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetGeom"), SuppressUnmanagedCodeSecurity]
1056 public static extern IntPtr GeomTransformGetGeom(IntPtr geom);
1057
1058 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetInfo"), SuppressUnmanagedCodeSecurity]
1059 public static extern int GeomTransformGetInfo(IntPtr geom);
1060
1061 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetCleanup"), SuppressUnmanagedCodeSecurity]
1062 public static extern void GeomTransformSetCleanup(IntPtr geom, int mode);
1063
1064 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetGeom"), SuppressUnmanagedCodeSecurity]
1065 public static extern void GeomTransformSetGeom(IntPtr geom, IntPtr obj);
1066
1067 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetInfo"), SuppressUnmanagedCodeSecurity]
1068 public static extern void GeomTransformSetInfo(IntPtr geom, int info);
1069
1070 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity]
1071 public static extern void GeomTriMeshDataBuildDouble(IntPtr d,
1072 double[] vertices, int vertexStride, int vertexCount,
1073 int[] indices, int indexCount, int triStride);
1074
1075 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity]
1076 public static extern void GeomTriMeshDataBuildDouble(IntPtr d,
1077 IntPtr vertices, int vertexStride, int vertexCount,
1078 IntPtr indices, int indexCount, int triStride);
1079
1080 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity]
1081 public static extern void GeomTriMeshDataBuildDouble1(IntPtr d,
1082 double[] vertices, int vertexStride, int vertexCount,
1083 int[] indices, int indexCount, int triStride,
1084 double[] normals);
1085
1086 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity]
1087 public static extern void GeomTriMeshDataBuildDouble(IntPtr d,
1088 IntPtr vertices, int vertexStride, int vertexCount,
1089 IntPtr indices, int indexCount, int triStride,
1090 IntPtr normals);
1091
1092 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity]
1093 public static extern void GeomTriMeshDataBuildSingle(IntPtr d,
1094 dReal[] vertices, int vertexStride, int vertexCount,
1095 int[] indices, int indexCount, int triStride);
1096
1097 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity]
1098 public static extern void GeomTriMeshDataBuildSingle(IntPtr d,
1099 IntPtr vertices, int vertexStride, int vertexCount,
1100 IntPtr indices, int indexCount, int triStride);
1101
1102 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity]
1103 public static extern void GeomTriMeshDataBuildSingle1(IntPtr d,
1104 dReal[] vertices, int vertexStride, int vertexCount,
1105 int[] indices, int indexCount, int triStride,
1106 dReal[] normals);
1107
1108 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity]
1109 public static extern void GeomTriMeshDataBuildSingle1(IntPtr d,
1110 IntPtr vertices, int vertexStride, int vertexCount,
1111 IntPtr indices, int indexCount, int triStride,
1112 IntPtr normals);
1113
1114 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity]
1115 public static extern void GeomTriMeshDataBuildSimple(IntPtr d,
1116 float[] vertices, int vertexStride, int vertexCount,
1117 int[] indices, int indexCount, int triStride);
1118
1119 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity]
1120 public static extern void GeomTriMeshDataBuildSimple(IntPtr d,
1121 IntPtr vertices, int vertexStride, int vertexCount,
1122 IntPtr indices, int indexCount, int triStride);
1123
1124 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity]
1125 public static extern void GeomTriMeshDataBuildSimple1(IntPtr d,
1126 float[] vertices, int vertexStride, int vertexCount,
1127 int[] indices, int indexCount, int triStride,
1128 float[] normals);
1129
1130 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity]
1131 public static extern void GeomTriMeshDataBuildSimple1(IntPtr d,
1132 IntPtr vertices, int vertexStride, int vertexCount,
1133 IntPtr indices, int indexCount, int triStride,
1134 IntPtr normals);
1135
1136 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshClearTCCache"), SuppressUnmanagedCodeSecurity]
1137 public static extern void GeomTriMeshClearTCCache(IntPtr g);
1138
1139 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataCreate"), SuppressUnmanagedCodeSecurity]
1140 public static extern IntPtr GeomTriMeshDataCreate();
1141
1142 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataDestroy"), SuppressUnmanagedCodeSecurity]
1143 public static extern void GeomTriMeshDataDestroy(IntPtr d);
1144
1145 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataGet"), SuppressUnmanagedCodeSecurity]
1146 public static extern IntPtr GeomTriMeshDataGet(IntPtr d, int data_id);
1147
1148 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataPreprocess"), SuppressUnmanagedCodeSecurity]
1149 public static extern void GeomTriMeshDataPreprocess(IntPtr d);
1150
1151 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataSet"), SuppressUnmanagedCodeSecurity]
1152 public static extern void GeomTriMeshDataSet(IntPtr d, int data_id, IntPtr in_data);
1153
1154 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataUpdate"), SuppressUnmanagedCodeSecurity]
1155 public static extern void GeomTriMeshDataUpdate(IntPtr d);
1156
1157 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshEnableTC"), SuppressUnmanagedCodeSecurity]
1158 public static extern void GeomTriMeshEnableTC(IntPtr g, int geomClass, bool enable);
1159
1160 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetArrayCallback"), SuppressUnmanagedCodeSecurity]
1161 public static extern TriArrayCallback GeomTriMeshGetArrayCallback(IntPtr g);
1162
1163 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetCallback"), SuppressUnmanagedCodeSecurity]
1164 public static extern TriCallback GeomTriMeshGetCallback(IntPtr g);
1165
1166 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetData"), SuppressUnmanagedCodeSecurity]
1167 public static extern IntPtr GeomTriMeshGetData(IntPtr g);
1168
1169 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetLastTransform"), SuppressUnmanagedCodeSecurity]
1170 public extern unsafe static Matrix4* GeomTriMeshGetLastTransformUnsafe(IntPtr geom);
1171 public static Matrix4 GeomTriMeshGetLastTransform(IntPtr geom)
1172 {
1173 unsafe { return *(GeomTriMeshGetLastTransformUnsafe(geom)); }
1174 }
1175
1176 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetPoint"), SuppressUnmanagedCodeSecurity]
1177 public extern static void GeomTriMeshGetPoint(IntPtr g, int index, dReal u, dReal v, ref Vector3 outVec);
1178
1179 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetRayCallback"), SuppressUnmanagedCodeSecurity]
1180 public static extern TriRayCallback GeomTriMeshGetRayCallback(IntPtr g);
1181
1182 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangle"), SuppressUnmanagedCodeSecurity]
1183 public extern static void GeomTriMeshGetTriangle(IntPtr g, int index, ref Vector3 v0, ref Vector3 v1, ref Vector3 v2);
1184
1185 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangleCount"), SuppressUnmanagedCodeSecurity]
1186 public extern static int GeomTriMeshGetTriangleCount(IntPtr g);
1187
1188 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriMeshDataID"), SuppressUnmanagedCodeSecurity]
1189 public static extern IntPtr GeomTriMeshGetTriMeshDataID(IntPtr g);
1190
1191 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshIsTCEnabled"), SuppressUnmanagedCodeSecurity]
1192 public static extern bool GeomTriMeshIsTCEnabled(IntPtr g, int geomClass);
1193
1194 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetArrayCallback"), SuppressUnmanagedCodeSecurity]
1195 public static extern void GeomTriMeshSetArrayCallback(IntPtr g, TriArrayCallback arrayCallback);
1196
1197 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetCallback"), SuppressUnmanagedCodeSecurity]
1198 public static extern void GeomTriMeshSetCallback(IntPtr g, TriCallback callback);
1199
1200 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetData"), SuppressUnmanagedCodeSecurity]
1201 public static extern void GeomTriMeshSetData(IntPtr g, IntPtr data);
1202
1203 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity]
1204 public static extern void GeomTriMeshSetLastTransform(IntPtr g, ref Matrix4 last_trans);
1205
1206 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity]
1207 public static extern void GeomTriMeshSetLastTransform(IntPtr g, ref dReal M00);
1208
1209 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetRayCallback"), SuppressUnmanagedCodeSecurity]
1210 public static extern void GeomTriMeshSetRayCallback(IntPtr g, TriRayCallback callback);
1211
1212 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGetConfiguration"), SuppressUnmanagedCodeSecurity]
1213 public static extern string GetConfiguration(string str);
1214
1215 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceCreate"), SuppressUnmanagedCodeSecurity]
1216 public static extern IntPtr HashSpaceCreate(IntPtr space);
1217
1218 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceGetLevels"), SuppressUnmanagedCodeSecurity]
1219 public static extern void HashSpaceGetLevels(IntPtr space, out int minlevel, out int maxlevel);
1220
1221 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceSetLevels"), SuppressUnmanagedCodeSecurity]
1222 public static extern void HashSpaceSetLevels(IntPtr space, int minlevel, int maxlevel);
1223
1224 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInfiniteAABB"), SuppressUnmanagedCodeSecurity]
1225 public static extern void InfiniteAABB(IntPtr geom, out AABB aabb);
1226
1227 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE"), SuppressUnmanagedCodeSecurity]
1228 public static extern void InitODE();
1229
1230 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE2"), SuppressUnmanagedCodeSecurity]
1231 public static extern int InitODE2(uint ODEInitFlags);
1232
1233 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dIsPositiveDefinite"), SuppressUnmanagedCodeSecurity]
1234 public static extern int IsPositiveDefinite(ref dReal A, int n);
1235
1236 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInvertPDMatrix"), SuppressUnmanagedCodeSecurity]
1237 public static extern int InvertPDMatrix(ref dReal A, out dReal Ainv, int n);
1238
1239 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddAMotorTorques"), SuppressUnmanagedCodeSecurity]
1240 public static extern void JointAddAMotorTorques(IntPtr joint, dReal torque1, dReal torque2, dReal torque3);
1241
1242 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHingeTorque"), SuppressUnmanagedCodeSecurity]
1243 public static extern void JointAddHingeTorque(IntPtr joint, dReal torque);
1244
1245 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHinge2Torque"), SuppressUnmanagedCodeSecurity]
1246 public static extern void JointAddHinge2Torques(IntPtr joint, dReal torque1, dReal torque2);
1247
1248 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddPRTorque"), SuppressUnmanagedCodeSecurity]
1249 public static extern void JointAddPRTorque(IntPtr joint, dReal torque);
1250
1251 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddUniversalTorque"), SuppressUnmanagedCodeSecurity]
1252 public static extern void JointAddUniversalTorques(IntPtr joint, dReal torque1, dReal torque2);
1253
1254 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddSliderForce"), SuppressUnmanagedCodeSecurity]
1255 public static extern void JointAddSliderForce(IntPtr joint, dReal force);
1256
1257 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAttach"), SuppressUnmanagedCodeSecurity]
1258 public static extern void JointAttach(IntPtr joint, IntPtr body1, IntPtr body2);
1259
1260 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateAMotor"), SuppressUnmanagedCodeSecurity]
1261 public static extern IntPtr JointCreateAMotor(IntPtr world, IntPtr group);
1262
1263 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateBall"), SuppressUnmanagedCodeSecurity]
1264 public static extern IntPtr JointCreateBall(IntPtr world, IntPtr group);
1265
1266 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity]
1267 public static extern IntPtr JointCreateContact(IntPtr world, IntPtr group, ref Contact contact);
1268 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity]
1269 public static extern IntPtr JointCreateContactPtr(IntPtr world, IntPtr group, IntPtr contact);
1270
1271 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateFixed"), SuppressUnmanagedCodeSecurity]
1272 public static extern IntPtr JointCreateFixed(IntPtr world, IntPtr group);
1273
1274 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge"), SuppressUnmanagedCodeSecurity]
1275 public static extern IntPtr JointCreateHinge(IntPtr world, IntPtr group);
1276
1277 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge2"), SuppressUnmanagedCodeSecurity]
1278 public static extern IntPtr JointCreateHinge2(IntPtr world, IntPtr group);
1279
1280 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateLMotor"), SuppressUnmanagedCodeSecurity]
1281 public static extern IntPtr JointCreateLMotor(IntPtr world, IntPtr group);
1282
1283 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateNull"), SuppressUnmanagedCodeSecurity]
1284 public static extern IntPtr JointCreateNull(IntPtr world, IntPtr group);
1285
1286 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePR"), SuppressUnmanagedCodeSecurity]
1287 public static extern IntPtr JointCreatePR(IntPtr world, IntPtr group);
1288
1289 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePlane2D"), SuppressUnmanagedCodeSecurity]
1290 public static extern IntPtr JointCreatePlane2D(IntPtr world, IntPtr group);
1291
1292 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateSlider"), SuppressUnmanagedCodeSecurity]
1293 public static extern IntPtr JointCreateSlider(IntPtr world, IntPtr group);
1294
1295 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateUniversal"), SuppressUnmanagedCodeSecurity]
1296 public static extern IntPtr JointCreateUniversal(IntPtr world, IntPtr group);
1297
1298 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointDestroy"), SuppressUnmanagedCodeSecurity]
1299 public static extern void JointDestroy(IntPtr j);
1300
1301 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngle"), SuppressUnmanagedCodeSecurity]
1302 public static extern dReal JointGetAMotorAngle(IntPtr j, int anum);
1303
1304 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngleRate"), SuppressUnmanagedCodeSecurity]
1305 public static extern dReal JointGetAMotorAngleRate(IntPtr j, int anum);
1306
1307 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxis"), SuppressUnmanagedCodeSecurity]
1308 public static extern void JointGetAMotorAxis(IntPtr j, int anum, out Vector3 result);
1309
1310 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxisRel"), SuppressUnmanagedCodeSecurity]
1311 public static extern int JointGetAMotorAxisRel(IntPtr j, int anum);
1312
1313 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorMode"), SuppressUnmanagedCodeSecurity]
1314 public static extern int JointGetAMotorMode(IntPtr j);
1315
1316 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorNumAxes"), SuppressUnmanagedCodeSecurity]
1317 public static extern int JointGetAMotorNumAxes(IntPtr j);
1318
1319 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorParam"), SuppressUnmanagedCodeSecurity]
1320 public static extern dReal JointGetAMotorParam(IntPtr j, int parameter);
1321
1322 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor"), SuppressUnmanagedCodeSecurity]
1323 public static extern void JointGetBallAnchor(IntPtr j, out Vector3 result);
1324
1325 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor2"), SuppressUnmanagedCodeSecurity]
1326 public static extern void JointGetBallAnchor2(IntPtr j, out Vector3 result);
1327
1328 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBody"), SuppressUnmanagedCodeSecurity]
1329 public static extern IntPtr JointGetBody(IntPtr j);
1330
1331 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetData"), SuppressUnmanagedCodeSecurity]
1332 public static extern IntPtr JointGetData(IntPtr j);
1333
1334 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetFeedback"), SuppressUnmanagedCodeSecurity]
1335 public extern unsafe static JointFeedback* JointGetFeedbackUnsafe(IntPtr j);
1336 public static JointFeedback JointGetFeedback(IntPtr j)
1337 {
1338 unsafe { return *(JointGetFeedbackUnsafe(j)); }
1339 }
1340
1341 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor"), SuppressUnmanagedCodeSecurity]
1342 public static extern void JointGetHingeAnchor(IntPtr j, out Vector3 result);
1343
1344 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngle"), SuppressUnmanagedCodeSecurity]
1345 public static extern dReal JointGetHingeAngle(IntPtr j);
1346
1347 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngleRate"), SuppressUnmanagedCodeSecurity]
1348 public static extern dReal JointGetHingeAngleRate(IntPtr j);
1349
1350 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAxis"), SuppressUnmanagedCodeSecurity]
1351 public static extern void JointGetHingeAxis(IntPtr j, out Vector3 result);
1352
1353 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeParam"), SuppressUnmanagedCodeSecurity]
1354 public static extern dReal JointGetHingeParam(IntPtr j, int parameter);
1355
1356 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1"), SuppressUnmanagedCodeSecurity]
1357 public static extern dReal JointGetHinge2Angle1(IntPtr j);
1358
1359 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1Rate"), SuppressUnmanagedCodeSecurity]
1360 public static extern dReal JointGetHinge2Angle1Rate(IntPtr j);
1361
1362 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle2Rate"), SuppressUnmanagedCodeSecurity]
1363 public static extern dReal JointGetHinge2Angle2Rate(IntPtr j);
1364
1365 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor2"), SuppressUnmanagedCodeSecurity]
1366 public static extern void JointGetHingeAnchor2(IntPtr j, out Vector3 result);
1367
1368 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor"), SuppressUnmanagedCodeSecurity]
1369 public static extern void JointGetHinge2Anchor(IntPtr j, out Vector3 result);
1370
1371 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor2"), SuppressUnmanagedCodeSecurity]
1372 public static extern void JointGetHinge2Anchor2(IntPtr j, out Vector3 result);
1373
1374 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis1"), SuppressUnmanagedCodeSecurity]
1375 public static extern void JointGetHinge2Axis1(IntPtr j, out Vector3 result);
1376
1377 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis2"), SuppressUnmanagedCodeSecurity]
1378 public static extern void JointGetHinge2Axis2(IntPtr j, out Vector3 result);
1379
1380 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Param"), SuppressUnmanagedCodeSecurity]
1381 public static extern dReal JointGetHinge2Param(IntPtr j, int parameter);
1382
1383 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorAxis"), SuppressUnmanagedCodeSecurity]
1384 public static extern void JointGetLMotorAxis(IntPtr j, int anum, out Vector3 result);
1385
1386 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorNumAxes"), SuppressUnmanagedCodeSecurity]
1387 public static extern int JointGetLMotorNumAxes(IntPtr j);
1388
1389 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorParam"), SuppressUnmanagedCodeSecurity]
1390 public static extern dReal JointGetLMotorParam(IntPtr j, int parameter);
1391
1392 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAnchor"), SuppressUnmanagedCodeSecurity]
1393 public static extern void JointGetPRAnchor(IntPtr j, out Vector3 result);
1394
1395 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis1"), SuppressUnmanagedCodeSecurity]
1396 public static extern void JointGetPRAxis1(IntPtr j, out Vector3 result);
1397
1398 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis2"), SuppressUnmanagedCodeSecurity]
1399 public static extern void JointGetPRAxis2(IntPtr j, out Vector3 result);
1400
1401 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRParam"), SuppressUnmanagedCodeSecurity]
1402 public static extern dReal JointGetPRParam(IntPtr j, int parameter);
1403
1404 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPosition"), SuppressUnmanagedCodeSecurity]
1405 public static extern dReal JointGetPRPosition(IntPtr j);
1406
1407 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPositionRate"), SuppressUnmanagedCodeSecurity]
1408 public static extern dReal JointGetPRPositionRate(IntPtr j);
1409
1410 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderAxis"), SuppressUnmanagedCodeSecurity]
1411 public static extern void JointGetSliderAxis(IntPtr j, out Vector3 result);
1412
1413 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderParam"), SuppressUnmanagedCodeSecurity]
1414 public static extern dReal JointGetSliderParam(IntPtr j, int parameter);
1415
1416 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPosition"), SuppressUnmanagedCodeSecurity]
1417 public static extern dReal JointGetSliderPosition(IntPtr j);
1418
1419 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPositionRate"), SuppressUnmanagedCodeSecurity]
1420 public static extern dReal JointGetSliderPositionRate(IntPtr j);
1421
1422 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetType"), SuppressUnmanagedCodeSecurity]
1423 public static extern JointType JointGetType(IntPtr j);
1424
1425 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor"), SuppressUnmanagedCodeSecurity]
1426 public static extern void JointGetUniversalAnchor(IntPtr j, out Vector3 result);
1427
1428 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor2"), SuppressUnmanagedCodeSecurity]
1429 public static extern void JointGetUniversalAnchor2(IntPtr j, out Vector3 result);
1430
1431 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1"), SuppressUnmanagedCodeSecurity]
1432 public static extern dReal JointGetUniversalAngle1(IntPtr j);
1433
1434 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1Rate"), SuppressUnmanagedCodeSecurity]
1435 public static extern dReal JointGetUniversalAngle1Rate(IntPtr j);
1436
1437 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2"), SuppressUnmanagedCodeSecurity]
1438 public static extern dReal JointGetUniversalAngle2(IntPtr j);
1439
1440 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2Rate"), SuppressUnmanagedCodeSecurity]
1441 public static extern dReal JointGetUniversalAngle2Rate(IntPtr j);
1442
1443 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngles"), SuppressUnmanagedCodeSecurity]
1444 public static extern void JointGetUniversalAngles(IntPtr j, out dReal angle1, out dReal angle2);
1445
1446 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis1"), SuppressUnmanagedCodeSecurity]
1447 public static extern void JointGetUniversalAxis1(IntPtr j, out Vector3 result);
1448
1449 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis2"), SuppressUnmanagedCodeSecurity]
1450 public static extern void JointGetUniversalAxis2(IntPtr j, out Vector3 result);
1451
1452 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalParam"), SuppressUnmanagedCodeSecurity]
1453 public static extern dReal JointGetUniversalParam(IntPtr j, int parameter);
1454
1455 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupCreate"), SuppressUnmanagedCodeSecurity]
1456 public static extern IntPtr JointGroupCreate(int max_size);
1457
1458 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupDestroy"), SuppressUnmanagedCodeSecurity]
1459 public static extern void JointGroupDestroy(IntPtr group);
1460
1461 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupEmpty"), SuppressUnmanagedCodeSecurity]
1462 public static extern void JointGroupEmpty(IntPtr group);
1463
1464 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAngle"), SuppressUnmanagedCodeSecurity]
1465 public static extern void JointSetAMotorAngle(IntPtr j, int anum, dReal angle);
1466
1467 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAxis"), SuppressUnmanagedCodeSecurity]
1468 public static extern void JointSetAMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z);
1469
1470 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorMode"), SuppressUnmanagedCodeSecurity]
1471 public static extern void JointSetAMotorMode(IntPtr j, int mode);
1472
1473 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorNumAxes"), SuppressUnmanagedCodeSecurity]
1474 public static extern void JointSetAMotorNumAxes(IntPtr group, int num);
1475
1476 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorParam"), SuppressUnmanagedCodeSecurity]
1477 public static extern void JointSetAMotorParam(IntPtr group, int parameter, dReal value);
1478
1479 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor"), SuppressUnmanagedCodeSecurity]
1480 public static extern void JointSetBallAnchor(IntPtr j, dReal x, dReal y, dReal z);
1481
1482 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor2"), SuppressUnmanagedCodeSecurity]
1483 public static extern void JointSetBallAnchor2(IntPtr j, dReal x, dReal y, dReal z);
1484
1485 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetData"), SuppressUnmanagedCodeSecurity]
1486 public static extern void JointSetData(IntPtr j, IntPtr data);
1487
1488 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFeedback"), SuppressUnmanagedCodeSecurity]
1489 public static extern void JointSetFeedback(IntPtr j, out JointFeedback feedback);
1490
1491 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFixed"), SuppressUnmanagedCodeSecurity]
1492 public static extern void JointSetFixed(IntPtr j);
1493
1494 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchor"), SuppressUnmanagedCodeSecurity]
1495 public static extern void JointSetHingeAnchor(IntPtr j, dReal x, dReal y, dReal z);
1496
1497 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchorDelta"), SuppressUnmanagedCodeSecurity]
1498 public static extern void JointSetHingeAnchorDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
1499
1500 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAxis"), SuppressUnmanagedCodeSecurity]
1501 public static extern void JointSetHingeAxis(IntPtr j, dReal x, dReal y, dReal z);
1502
1503 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeParam"), SuppressUnmanagedCodeSecurity]
1504 public static extern void JointSetHingeParam(IntPtr j, int parameter, dReal value);
1505
1506 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Anchor"), SuppressUnmanagedCodeSecurity]
1507 public static extern void JointSetHinge2Anchor(IntPtr j, dReal x, dReal y, dReal z);
1508
1509 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis1"), SuppressUnmanagedCodeSecurity]
1510 public static extern void JointSetHinge2Axis1(IntPtr j, dReal x, dReal y, dReal z);
1511
1512 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis2"), SuppressUnmanagedCodeSecurity]
1513 public static extern void JointSetHinge2Axis2(IntPtr j, dReal x, dReal y, dReal z);
1514
1515 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Param"), SuppressUnmanagedCodeSecurity]
1516 public static extern void JointSetHinge2Param(IntPtr j, int parameter, dReal value);
1517
1518 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorAxis"), SuppressUnmanagedCodeSecurity]
1519 public static extern void JointSetLMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z);
1520
1521 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorNumAxes"), SuppressUnmanagedCodeSecurity]
1522 public static extern void JointSetLMotorNumAxes(IntPtr j, int num);
1523
1524 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorParam"), SuppressUnmanagedCodeSecurity]
1525 public static extern void JointSetLMotorParam(IntPtr j, int parameter, dReal value);
1526
1527 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DAngleParam"), SuppressUnmanagedCodeSecurity]
1528 public static extern void JointSetPlane2DAngleParam(IntPtr j, int parameter, dReal value);
1529
1530 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DXParam"), SuppressUnmanagedCodeSecurity]
1531 public static extern void JointSetPlane2DXParam(IntPtr j, int parameter, dReal value);
1532
1533 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DYParam"), SuppressUnmanagedCodeSecurity]
1534 public static extern void JointSetPlane2DYParam(IntPtr j, int parameter, dReal value);
1535
1536 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAnchor"), SuppressUnmanagedCodeSecurity]
1537 public static extern void JointSetPRAnchor(IntPtr j, dReal x, dReal y, dReal z);
1538
1539 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis1"), SuppressUnmanagedCodeSecurity]
1540 public static extern void JointSetPRAxis1(IntPtr j, dReal x, dReal y, dReal z);
1541
1542 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis2"), SuppressUnmanagedCodeSecurity]
1543 public static extern void JointSetPRAxis2(IntPtr j, dReal x, dReal y, dReal z);
1544
1545 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRParam"), SuppressUnmanagedCodeSecurity]
1546 public static extern void JointSetPRParam(IntPtr j, int parameter, dReal value);
1547
1548 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxis"), SuppressUnmanagedCodeSecurity]
1549 public static extern void JointSetSliderAxis(IntPtr j, dReal x, dReal y, dReal z);
1550
1551 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxisDelta"), SuppressUnmanagedCodeSecurity]
1552 public static extern void JointSetSliderAxisDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
1553
1554 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderParam"), SuppressUnmanagedCodeSecurity]
1555 public static extern void JointSetSliderParam(IntPtr j, int parameter, dReal value);
1556
1557 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAnchor"), SuppressUnmanagedCodeSecurity]
1558 public static extern void JointSetUniversalAnchor(IntPtr j, dReal x, dReal y, dReal z);
1559
1560 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis1"), SuppressUnmanagedCodeSecurity]
1561 public static extern void JointSetUniversalAxis1(IntPtr j, dReal x, dReal y, dReal z);
1562
1563 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis2"), SuppressUnmanagedCodeSecurity]
1564 public static extern void JointSetUniversalAxis2(IntPtr j, dReal x, dReal y, dReal z);
1565
1566 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalParam"), SuppressUnmanagedCodeSecurity]
1567 public static extern void JointSetUniversalParam(IntPtr j, int parameter, dReal value);
1568
1569 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dLDLTAddTL"), SuppressUnmanagedCodeSecurity]
1570 public static extern void LDLTAddTL(ref dReal L, ref dReal d, ref dReal a, int n, int nskip);
1571
1572 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdd"), SuppressUnmanagedCodeSecurity]
1573 public static extern void MassAdd(ref Mass a, ref Mass b);
1574
1575 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdjust"), SuppressUnmanagedCodeSecurity]
1576 public static extern void MassAdjust(ref Mass m, dReal newmass);
1577
1578 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassCheck"), SuppressUnmanagedCodeSecurity]
1579 public static extern bool MassCheck(ref Mass m);
1580
1581 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity]
1582 public static extern void MassRotate(ref Mass mass, ref Matrix3 R);
1583
1584 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity]
1585 public static extern void MassRotate(ref Mass mass, ref dReal M00);
1586
1587 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBox"), SuppressUnmanagedCodeSecurity]
1588 public static extern void MassSetBox(out Mass mass, dReal density, dReal lx, dReal ly, dReal lz);
1589
1590 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBoxTotal"), SuppressUnmanagedCodeSecurity]
1591 public static extern void MassSetBoxTotal(out Mass mass, dReal total_mass, dReal lx, dReal ly, dReal lz);
1592
1593 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsule"), SuppressUnmanagedCodeSecurity]
1594 public static extern void MassSetCapsule(out Mass mass, dReal density, int direction, dReal radius, dReal length);
1595
1596 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsuleTotal"), SuppressUnmanagedCodeSecurity]
1597 public static extern void MassSetCapsuleTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length);
1598
1599 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinder"), SuppressUnmanagedCodeSecurity]
1600 public static extern void MassSetCylinder(out Mass mass, dReal density, int direction, dReal radius, dReal length);
1601
1602 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinderTotal"), SuppressUnmanagedCodeSecurity]
1603 public static extern void MassSetCylinderTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length);
1604
1605 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetParameters"), SuppressUnmanagedCodeSecurity]
1606 public static extern void MassSetParameters(out Mass mass, dReal themass,
1607 dReal cgx, dReal cgy, dReal cgz,
1608 dReal i11, dReal i22, dReal i33,
1609 dReal i12, dReal i13, dReal i23);
1610
1611 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphere"), SuppressUnmanagedCodeSecurity]
1612 public static extern void MassSetSphere(out Mass mass, dReal density, dReal radius);
1613
1614 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphereTotal"), SuppressUnmanagedCodeSecurity]
1615 public static extern void dMassSetSphereTotal(out Mass mass, dReal total_mass, dReal radius);
1616
1617 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetTrimesh"), SuppressUnmanagedCodeSecurity]
1618 public static extern void MassSetTrimesh(out Mass mass, dReal density, IntPtr g);
1619
1620 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetZero"), SuppressUnmanagedCodeSecurity]
1621 public static extern void MassSetZero(out Mass mass);
1622
1623 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassTranslate"), SuppressUnmanagedCodeSecurity]
1624 public static extern void MassTranslate(ref Mass mass, dReal x, dReal y, dReal z);
1625
1626 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity]
1627 public static extern void Multiply0(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r);
1628
1629 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity]
1630 private static extern void MultiplyiM3V3(out Vector3 vout, ref Matrix3 matrix, ref Vector3 vect,int p, int q, int r);
1631 public static void MultiplyM3V3(out Vector3 outvector, ref Matrix3 matrix, ref Vector3 invector)
1632 {
1633 MultiplyiM3V3(out outvector, ref matrix, ref invector, 3, 3, 1);
1634 }
1635
1636 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply1"), SuppressUnmanagedCodeSecurity]
1637 public static extern void Multiply1(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r);
1638
1639 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply2"), SuppressUnmanagedCodeSecurity]
1640 public static extern void Multiply2(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r);
1641
1642 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQFromAxisAndAngle"), SuppressUnmanagedCodeSecurity]
1643 public static extern void QFromAxisAndAngle(out Quaternion q, dReal ax, dReal ay, dReal az, dReal angle);
1644
1645 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQfromR"), SuppressUnmanagedCodeSecurity]
1646 public static extern void QfromR(out Quaternion q, ref Matrix3 R);
1647
1648 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply0"), SuppressUnmanagedCodeSecurity]
1649 public static extern void QMultiply0(out Quaternion qa, ref Quaternion qb, ref Quaternion qc);
1650
1651 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply1"), SuppressUnmanagedCodeSecurity]
1652 public static extern void QMultiply1(out Quaternion qa, ref Quaternion qb, ref Quaternion qc);
1653
1654 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply2"), SuppressUnmanagedCodeSecurity]
1655 public static extern void QMultiply2(out Quaternion qa, ref Quaternion qb, ref Quaternion qc);
1656
1657 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply3"), SuppressUnmanagedCodeSecurity]
1658 public static extern void QMultiply3(out Quaternion qa, ref Quaternion qb, ref Quaternion qc);
1659
1660 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQSetIdentity"), SuppressUnmanagedCodeSecurity]
1661 public static extern void QSetIdentity(out Quaternion q);
1662
1663 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity]
1664 public static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref Vector3 center, ref Vector3 extents, int depth);
1665
1666 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity]
1667 public static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref dReal centerX, ref dReal extentsX, int depth);
1668
1669 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRandReal"), SuppressUnmanagedCodeSecurity]
1670 public static extern dReal RandReal();
1671
1672 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFrom2Axes"), SuppressUnmanagedCodeSecurity]
1673 public static extern void RFrom2Axes(out Matrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz);
1674
1675 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromAxisAndAngle"), SuppressUnmanagedCodeSecurity]
1676 public static extern void RFromAxisAndAngle(out Matrix3 R, dReal x, dReal y, dReal z, dReal angle);
1677
1678 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromEulerAngles"), SuppressUnmanagedCodeSecurity]
1679 public static extern void RFromEulerAngles(out Matrix3 R, dReal phi, dReal theta, dReal psi);
1680
1681 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRfromQ"), SuppressUnmanagedCodeSecurity]
1682 public static extern void RfromQ(out Matrix3 R, ref Quaternion q);
1683
1684 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromZAxis"), SuppressUnmanagedCodeSecurity]
1685 public static extern void RFromZAxis(out Matrix3 R, dReal ax, dReal ay, dReal az);
1686
1687 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRSetIdentity"), SuppressUnmanagedCodeSecurity]
1688 public static extern void RSetIdentity(out Matrix3 R);
1689
1690 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetValue"), SuppressUnmanagedCodeSecurity]
1691 public static extern void SetValue(out dReal a, int n);
1692
1693 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetZero"), SuppressUnmanagedCodeSecurity]
1694 public static extern void SetZero(out dReal a, int n);
1695
1696 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSimpleSpaceCreate"), SuppressUnmanagedCodeSecurity]
1697 public static extern IntPtr SimpleSpaceCreate(IntPtr space);
1698
1699 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveCholesky"), SuppressUnmanagedCodeSecurity]
1700 public static extern void SolveCholesky(ref dReal L, out dReal b, int n);
1701
1702 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1"), SuppressUnmanagedCodeSecurity]
1703 public static extern void SolveL1(ref dReal L, out dReal b, int n, int nskip);
1704
1705 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1T"), SuppressUnmanagedCodeSecurity]
1706 public static extern void SolveL1T(ref dReal L, out dReal b, int n, int nskip);
1707
1708 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveLDLT"), SuppressUnmanagedCodeSecurity]
1709 public static extern void SolveLDLT(ref dReal L, ref dReal d, out dReal b, int n, int nskip);
1710
1711 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceAdd"), SuppressUnmanagedCodeSecurity]
1712 public static extern void SpaceAdd(IntPtr space, IntPtr geom);
1713
1714 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceLockQuery"), SuppressUnmanagedCodeSecurity]
1715 public static extern bool SpaceLockQuery(IntPtr space);
1716
1717 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceClean"), SuppressUnmanagedCodeSecurity]
1718 public static extern void SpaceClean(IntPtr space);
1719
1720 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide"), SuppressUnmanagedCodeSecurity]
1721 public static extern void SpaceCollide(IntPtr space, IntPtr data, NearCallback callback);
1722
1723 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide2"), SuppressUnmanagedCodeSecurity]
1724 public static extern void SpaceCollide2(IntPtr space1, IntPtr space2, IntPtr data, NearCallback callback);
1725
1726 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceDestroy"), SuppressUnmanagedCodeSecurity]
1727 public static extern void SpaceDestroy(IntPtr space);
1728
1729 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetCleanup"), SuppressUnmanagedCodeSecurity]
1730 public static extern bool SpaceGetCleanup(IntPtr space);
1731
1732 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetNumGeoms"), SuppressUnmanagedCodeSecurity]
1733 public static extern int SpaceGetNumGeoms(IntPtr space);
1734
1735 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetGeom"), SuppressUnmanagedCodeSecurity]
1736 public static extern IntPtr SpaceGetGeom(IntPtr space, int i);
1737
1738 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetSublevel"), SuppressUnmanagedCodeSecurity]
1739 public static extern int SpaceGetSublevel(IntPtr space);
1740
1741 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceQuery"), SuppressUnmanagedCodeSecurity]
1742 public static extern bool SpaceQuery(IntPtr space, IntPtr geom);
1743
1744 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceRemove"), SuppressUnmanagedCodeSecurity]
1745 public static extern void SpaceRemove(IntPtr space, IntPtr geom);
1746
1747 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetCleanup"), SuppressUnmanagedCodeSecurity]
1748 public static extern void SpaceSetCleanup(IntPtr space, bool mode);
1749
1750 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetSublevel"), SuppressUnmanagedCodeSecurity]
1751 public static extern void SpaceSetSublevel(IntPtr space, int sublevel);
1752
1753 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSweepAndPruneSpaceCreate"), SuppressUnmanagedCodeSecurity]
1754 public static extern IntPtr SweepAndPruneSpaceCreate(IntPtr space, int AxisOrder);
1755
1756 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dVectorScale"), SuppressUnmanagedCodeSecurity]
1757 public static extern void VectorScale(out dReal a, ref dReal d, int n);
1758
1759 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldCreate"), SuppressUnmanagedCodeSecurity]
1760 public static extern IntPtr WorldCreate();
1761
1762 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldDestroy"), SuppressUnmanagedCodeSecurity]
1763 public static extern void WorldDestroy(IntPtr world);
1764
1765 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity]
1766 public static extern int WorldGetAutoDisableAverageSamplesCount(IntPtr world);
1767
1768 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity]
1769 public static extern dReal WorldGetAutoDisableAngularThreshold(IntPtr world);
1770
1771 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity]
1772 public static extern bool WorldGetAutoDisableFlag(IntPtr world);
1773
1774 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity]
1775 public static extern dReal WorldGetAutoDisableLinearThreshold(IntPtr world);
1776
1777 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity]
1778 public static extern int WorldGetAutoDisableSteps(IntPtr world);
1779
1780 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableTime"), SuppressUnmanagedCodeSecurity]
1781 public static extern dReal WorldGetAutoDisableTime(IntPtr world);
1782
1783 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity]
1784 public static extern int WorldGetAutoEnableDepthSF1(IntPtr world);
1785
1786 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetCFM"), SuppressUnmanagedCodeSecurity]
1787 public static extern dReal WorldGetCFM(IntPtr world);
1788
1789 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetERP"), SuppressUnmanagedCodeSecurity]
1790 public static extern dReal WorldGetERP(IntPtr world);
1791
1792 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity]
1793 public static extern void WorldGetGravity(IntPtr world, out Vector3 gravity);
1794
1795 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity]
1796 public static extern void WorldGetGravity(IntPtr world, out dReal X);
1797
1798 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity]
1799 public static extern dReal WorldGetContactMaxCorrectingVel(IntPtr world);
1800
1801 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity]
1802 public static extern dReal WorldGetContactSurfaceLayer(IntPtr world);
1803
1804 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDamping"), SuppressUnmanagedCodeSecurity]
1805 public static extern dReal WorldGetAngularDamping(IntPtr world);
1806
1807 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity]
1808 public static extern dReal WorldGetAngularDampingThreshold(IntPtr world);
1809
1810 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDamping"), SuppressUnmanagedCodeSecurity]
1811 public static extern dReal WorldGetLinearDamping(IntPtr world);
1812
1813 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity]
1814 public static extern dReal WorldGetLinearDampingThreshold(IntPtr world);
1815
1816 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity]
1817 public static extern int WorldGetQuickStepNumIterations(IntPtr world);
1818
1819 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepW"), SuppressUnmanagedCodeSecurity]
1820 public static extern dReal WorldGetQuickStepW(IntPtr world);
1821
1822 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity]
1823 public static extern dReal WorldGetMaxAngularSpeed(IntPtr world);
1824
1825 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity]
1826 public static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out Vector3 force);
1827
1828 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity]
1829 public static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out dReal forceX);
1830
1831 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldQuickStep"), SuppressUnmanagedCodeSecurity]
1832 public static extern void WorldQuickStep(IntPtr world, dReal stepsize);
1833
1834 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDamping"), SuppressUnmanagedCodeSecurity]
1835 public static extern void WorldSetAngularDamping(IntPtr world, dReal scale);
1836
1837 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity]
1838 public static extern void WorldSetAngularDampingThreshold(IntPtr world, dReal threshold);
1839
1840 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity]
1841 public static extern void WorldSetAutoDisableAngularThreshold(IntPtr world, dReal angular_threshold);
1842
1843 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity]
1844 public static extern void WorldSetAutoDisableAverageSamplesCount(IntPtr world, int average_samples_count);
1845
1846 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableFlag"), SuppressUnmanagedCodeSecurity]
1847 public static extern void WorldSetAutoDisableFlag(IntPtr world, bool do_auto_disable);
1848
1849 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity]
1850 public static extern void WorldSetAutoDisableLinearThreshold(IntPtr world, dReal linear_threshold);
1851
1852 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableSteps"), SuppressUnmanagedCodeSecurity]
1853 public static extern void WorldSetAutoDisableSteps(IntPtr world, int steps);
1854
1855 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableTime"), SuppressUnmanagedCodeSecurity]
1856 public static extern void WorldSetAutoDisableTime(IntPtr world, dReal time);
1857
1858 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity]
1859 public static extern void WorldSetAutoEnableDepthSF1(IntPtr world, int autoEnableDepth);
1860
1861 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetCFM"), SuppressUnmanagedCodeSecurity]
1862 public static extern void WorldSetCFM(IntPtr world, dReal cfm);
1863
1864 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity]
1865 public static extern void WorldSetContactMaxCorrectingVel(IntPtr world, dReal vel);
1866
1867 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity]
1868 public static extern void WorldSetContactSurfaceLayer(IntPtr world, dReal depth);
1869
1870 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetDamping"), SuppressUnmanagedCodeSecurity]
1871 public static extern void WorldSetDamping(IntPtr world, dReal linear_scale, dReal angular_scale);
1872
1873 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetERP"), SuppressUnmanagedCodeSecurity]
1874 public static extern void WorldSetERP(IntPtr world, dReal erp);
1875
1876 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetGravity"), SuppressUnmanagedCodeSecurity]
1877 public static extern void WorldSetGravity(IntPtr world, dReal x, dReal y, dReal z);
1878
1879 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDamping"), SuppressUnmanagedCodeSecurity]
1880 public static extern void WorldSetLinearDamping(IntPtr world, dReal scale);
1881
1882 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity]
1883 public static extern void WorldSetLinearDampingThreshold(IntPtr world, dReal threshold);
1884
1885 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity]
1886 public static extern void WorldSetQuickStepNumIterations(IntPtr world, int num);
1887
1888 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepW"), SuppressUnmanagedCodeSecurity]
1889 public static extern void WorldSetQuickStepW(IntPtr world, dReal over_relaxation);
1890
1891 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity]
1892 public static extern void WorldSetMaxAngularSpeed(IntPtr world, dReal max_speed);
1893
1894 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStep"), SuppressUnmanagedCodeSecurity]
1895 public static extern void WorldStep(IntPtr world, dReal stepsize);
1896
1897 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStepFast1"), SuppressUnmanagedCodeSecurity]
1898 public static extern void WorldStepFast1(IntPtr world, dReal stepsize, int maxiterations);
1899
1900 [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldExportDIF"), SuppressUnmanagedCodeSecurity]
1901 public static extern void WorldExportDIF(IntPtr world, string filename, bool append, string prefix);
1902 }
1903}