diff options
Diffstat (limited to '')
20 files changed, 2813 insertions, 2776 deletions
diff --git a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs index 2a1ae45..5ce1515 100644 --- a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs +++ b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs | |||
@@ -163,7 +163,7 @@ namespace OpenSim.Region.PhysicsModule.BasicPhysics | |||
163 | { | 163 | { |
164 | // Console.WriteLine("Simulating"); | 164 | // Console.WriteLine("Simulating"); |
165 | 165 | ||
166 | float fps = 0; | 166 | float fps = 1.0f / timeStep; |
167 | for (int i = 0; i < _actors.Count; ++i) | 167 | for (int i = 0; i < _actors.Count; ++i) |
168 | { | 168 | { |
169 | BasicActor actor = _actors[i]; | 169 | BasicActor actor = _actors[i]; |
@@ -226,7 +226,7 @@ namespace OpenSim.Region.PhysicsModule.BasicPhysics | |||
226 | actor.Velocity = actorVelocity; | 226 | actor.Velocity = actorVelocity; |
227 | } | 227 | } |
228 | 228 | ||
229 | return 1.0f; | 229 | return fps; |
230 | } | 230 | } |
231 | 231 | ||
232 | public override void GetResults() | 232 | public override void GetResults() |
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs b/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs index d182c34..2ca7dbc 100644 --- a/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs +++ b/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs | |||
@@ -92,6 +92,7 @@ public sealed class BSCharacter : BSPhysObject | |||
92 | Density = BSParam.AvatarDensity; | 92 | Density = BSParam.AvatarDensity; |
93 | _isPhysical = true; | 93 | _isPhysical = true; |
94 | 94 | ||
95 | _footOffset = footOffset; | ||
95 | // Adjustments for zero X and Y made in Size() | 96 | // Adjustments for zero X and Y made in Size() |
96 | // This also computes avatar scale, volume, and mass | 97 | // This also computes avatar scale, volume, and mass |
97 | SetAvatarSize(size, footOffset, true /* initializing */); | 98 | SetAvatarSize(size, footOffset, true /* initializing */); |
diff --git a/OpenSim/Region/PhysicsModules/BulletS/Tests/Raycast.cs b/OpenSim/Region/PhysicsModules/BulletS/Tests/Raycast.cs index bfa95c1..a6f587e 100755 --- a/OpenSim/Region/PhysicsModules/BulletS/Tests/Raycast.cs +++ b/OpenSim/Region/PhysicsModules/BulletS/Tests/Raycast.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Region.PhysicsModule.BulletS.Tests | |||
51 | BSScene _physicsScene { get; set; } | 51 | BSScene _physicsScene { get; set; } |
52 | BSPrim _targetSphere { get; set; } | 52 | BSPrim _targetSphere { get; set; } |
53 | Vector3 _targetSpherePosition { get; set; } | 53 | Vector3 _targetSpherePosition { get; set; } |
54 | float _simulationTimeStep = 0.089f; | 54 | // float _simulationTimeStep = 0.089f; |
55 | 55 | ||
56 | uint _targetLocalID = 123; | 56 | uint _targetLocalID = 123; |
57 | 57 | ||
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODEApi.cs b/OpenSim/Region/PhysicsModules/Ode/ODEApi.cs index c851b12..cc3077e 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODEApi.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODEApi.cs | |||
@@ -55,18 +55,18 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
55 | using dReal = System.Single; | 55 | using dReal = System.Single; |
56 | //#endif | 56 | //#endif |
57 | 57 | ||
58 | public static class d | 58 | internal static class SafeNativeMethods |
59 | { | 59 | { |
60 | public static dReal Infinity = dReal.MaxValue; | 60 | internal static dReal Infinity = dReal.MaxValue; |
61 | public static int NTotalBodies = 0; | 61 | internal static int NTotalBodies = 0; |
62 | public static int NTotalGeoms = 0; | 62 | internal static int NTotalGeoms = 0; |
63 | 63 | ||
64 | public const uint CONTACTS_UNIMPORTANT = 0x80000000; | 64 | internal const uint CONTACTS_UNIMPORTANT = 0x80000000; |
65 | 65 | ||
66 | #region Flags and Enumerations | 66 | #region Flags and Enumerations |
67 | 67 | ||
68 | [Flags] | 68 | [Flags] |
69 | public enum AllocateODEDataFlags : uint | 69 | internal enum AllocateODEDataFlags : uint |
70 | { | 70 | { |
71 | BasicData = 0, | 71 | BasicData = 0, |
72 | CollisionData = 0x00000001, | 72 | CollisionData = 0x00000001, |
@@ -74,13 +74,13 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
74 | } | 74 | } |
75 | 75 | ||
76 | [Flags] | 76 | [Flags] |
77 | public enum IniteODEFlags : uint | 77 | internal enum IniteODEFlags : uint |
78 | { | 78 | { |
79 | dInitFlagManualThreadCleanup = 0x00000001 | 79 | dInitFlagManualThreadCleanup = 0x00000001 |
80 | } | 80 | } |
81 | 81 | ||
82 | [Flags] | 82 | [Flags] |
83 | public enum ContactFlags : int | 83 | internal enum ContactFlags : int |
84 | { | 84 | { |
85 | Mu2 = 0x001, | 85 | Mu2 = 0x001, |
86 | FDir1 = 0x002, | 86 | FDir1 = 0x002, |
@@ -98,7 +98,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
98 | Approx1 = 0x3000 | 98 | Approx1 = 0x3000 |
99 | } | 99 | } |
100 | 100 | ||
101 | public enum GeomClassID : int | 101 | internal enum GeomClassID : int |
102 | { | 102 | { |
103 | SphereClass, | 103 | SphereClass, |
104 | BoxClass, | 104 | BoxClass, |
@@ -122,7 +122,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
122 | MaxUserClasses = 5 | 122 | MaxUserClasses = 5 |
123 | } | 123 | } |
124 | 124 | ||
125 | public enum JointType : int | 125 | internal enum JointType : int |
126 | { | 126 | { |
127 | None, | 127 | None, |
128 | Ball, | 128 | Ball, |
@@ -138,7 +138,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
138 | Plane2D | 138 | Plane2D |
139 | } | 139 | } |
140 | 140 | ||
141 | public enum JointParam : int | 141 | internal enum JointParam : int |
142 | { | 142 | { |
143 | LoStop, | 143 | LoStop, |
144 | HiStop, | 144 | HiStop, |
@@ -175,7 +175,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
175 | SuspensionCFM3 | 175 | SuspensionCFM3 |
176 | } | 176 | } |
177 | 177 | ||
178 | public enum dSweepAndPruneAxis : int | 178 | internal enum dSweepAndPruneAxis : int |
179 | { | 179 | { |
180 | XYZ = ((0)|(1<<2)|(2<<4)), | 180 | XYZ = ((0)|(1<<2)|(2<<4)), |
181 | XZY = ((0)|(2<<2)|(1<<4)), | 181 | XZY = ((0)|(2<<2)|(1<<4)), |
@@ -190,126 +190,126 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
190 | #region Callbacks | 190 | #region Callbacks |
191 | 191 | ||
192 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 192 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
193 | public delegate int AABBTestFn(IntPtr o1, IntPtr o2, ref AABB aabb); | 193 | internal delegate int AABBTestFn(IntPtr o1, IntPtr o2, ref AABB aabb); |
194 | 194 | ||
195 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 195 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
196 | public delegate int ColliderFn(IntPtr o1, IntPtr o2, int flags, out ContactGeom contact, int skip); | 196 | internal delegate int ColliderFn(IntPtr o1, IntPtr o2, int flags, out ContactGeom contact, int skip); |
197 | 197 | ||
198 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 198 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
199 | public delegate void GetAABBFn(IntPtr geom, out AABB aabb); | 199 | internal delegate void GetAABBFn(IntPtr geom, out AABB aabb); |
200 | 200 | ||
201 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 201 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
202 | public delegate ColliderFn GetColliderFnFn(int num); | 202 | internal delegate ColliderFn GetColliderFnFn(int num); |
203 | 203 | ||
204 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 204 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
205 | public delegate void GeomDtorFn(IntPtr o); | 205 | internal delegate void GeomDtorFn(IntPtr o); |
206 | 206 | ||
207 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 207 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
208 | public delegate dReal HeightfieldGetHeight(IntPtr p_user_data, int x, int z); | 208 | internal delegate dReal HeightfieldGetHeight(IntPtr p_user_data, int x, int z); |
209 | 209 | ||
210 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 210 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
211 | public delegate dReal OSTerrainGetHeight(IntPtr p_user_data, int x, int z); | 211 | internal delegate dReal OSTerrainGetHeight(IntPtr p_user_data, int x, int z); |
212 | 212 | ||
213 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 213 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
214 | public delegate void NearCallback(IntPtr data, IntPtr geom1, IntPtr geom2); | 214 | internal delegate void NearCallback(IntPtr data, IntPtr geom1, IntPtr geom2); |
215 | 215 | ||
216 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 216 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
217 | public delegate int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex); | 217 | internal delegate int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex); |
218 | 218 | ||
219 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 219 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
220 | public delegate int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount); | 220 | internal delegate int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount); |
221 | 221 | ||
222 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 222 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
223 | public delegate int TriRayCallback(IntPtr trimesh, IntPtr ray, int triangleIndex, dReal u, dReal v); | 223 | internal delegate int TriRayCallback(IntPtr trimesh, IntPtr ray, int triangleIndex, dReal u, dReal v); |
224 | 224 | ||
225 | #endregion | 225 | #endregion |
226 | 226 | ||
227 | #region Structs | 227 | #region Structs |
228 | 228 | ||
229 | [StructLayout(LayoutKind.Sequential)] | 229 | [StructLayout(LayoutKind.Sequential)] |
230 | public struct AABB | 230 | internal struct AABB |
231 | { | 231 | { |
232 | public dReal MinX, MaxX; | 232 | internal dReal MinX, MaxX; |
233 | public dReal MinY, MaxY; | 233 | internal dReal MinY, MaxY; |
234 | public dReal MinZ, MaxZ; | 234 | internal dReal MinZ, MaxZ; |
235 | } | 235 | } |
236 | 236 | ||
237 | 237 | ||
238 | [StructLayout(LayoutKind.Sequential)] | 238 | [StructLayout(LayoutKind.Sequential)] |
239 | public struct Contact | 239 | internal struct Contact |
240 | { | 240 | { |
241 | public SurfaceParameters surface; | 241 | internal SurfaceParameters surface; |
242 | public ContactGeom geom; | 242 | internal ContactGeom geom; |
243 | public Vector3 fdir1; | 243 | internal Vector3 fdir1; |
244 | public static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(Contact)); | 244 | internal static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(Contact)); |
245 | } | 245 | } |
246 | 246 | ||
247 | 247 | ||
248 | [StructLayout(LayoutKind.Sequential)] | 248 | [StructLayout(LayoutKind.Sequential)] |
249 | public struct ContactGeom | 249 | internal struct ContactGeom |
250 | { | 250 | { |
251 | 251 | ||
252 | public Vector3 pos; | 252 | internal Vector3 pos; |
253 | public Vector3 normal; | 253 | internal Vector3 normal; |
254 | public dReal depth; | 254 | internal dReal depth; |
255 | public IntPtr g1; | 255 | internal IntPtr g1; |
256 | public IntPtr g2; | 256 | internal IntPtr g2; |
257 | public int side1; | 257 | internal int side1; |
258 | public int side2; | 258 | internal int side2; |
259 | public static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(ContactGeom)); | 259 | internal static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(ContactGeom)); |
260 | } | 260 | } |
261 | 261 | ||
262 | [StructLayout(LayoutKind.Sequential)] | 262 | [StructLayout(LayoutKind.Sequential)] |
263 | public struct GeomClass | 263 | internal struct GeomClass |
264 | { | 264 | { |
265 | public int bytes; | 265 | internal int bytes; |
266 | public GetColliderFnFn collider; | 266 | internal GetColliderFnFn collider; |
267 | public GetAABBFn aabb; | 267 | internal GetAABBFn aabb; |
268 | public AABBTestFn aabb_test; | 268 | internal AABBTestFn aabb_test; |
269 | public GeomDtorFn dtor; | 269 | internal GeomDtorFn dtor; |
270 | } | 270 | } |
271 | 271 | ||
272 | 272 | ||
273 | [StructLayout(LayoutKind.Sequential)] | 273 | [StructLayout(LayoutKind.Sequential)] |
274 | public struct JointFeedback | 274 | internal struct JointFeedback |
275 | { | 275 | { |
276 | public Vector3 f1; | 276 | internal Vector3 f1; |
277 | public Vector3 t1; | 277 | internal Vector3 t1; |
278 | public Vector3 f2; | 278 | internal Vector3 f2; |
279 | public Vector3 t2; | 279 | internal Vector3 t2; |
280 | } | 280 | } |
281 | 281 | ||
282 | 282 | ||
283 | [StructLayout(LayoutKind.Sequential)] | 283 | [StructLayout(LayoutKind.Sequential)] |
284 | public struct Mass | 284 | internal struct Mass |
285 | { | 285 | { |
286 | public dReal mass; | 286 | internal dReal mass; |
287 | public Vector4 c; | 287 | internal Vector4 c; |
288 | public Matrix3 I; | 288 | internal Matrix3 I; |
289 | } | 289 | } |
290 | 290 | ||
291 | 291 | ||
292 | [StructLayout(LayoutKind.Sequential)] | 292 | [StructLayout(LayoutKind.Sequential)] |
293 | public struct Matrix3 | 293 | internal struct Matrix3 |
294 | { | 294 | { |
295 | public Matrix3(dReal m00, dReal m10, dReal m20, dReal m01, dReal m11, dReal m21, dReal m02, dReal m12, dReal m22) | 295 | internal Matrix3(dReal m00, dReal m10, dReal m20, dReal m01, dReal m11, dReal m21, dReal m02, dReal m12, dReal m22) |
296 | { | 296 | { |
297 | M00 = m00; M10 = m10; M20 = m20; _m30 = 0.0f; | 297 | M00 = m00; M10 = m10; M20 = m20; _m30 = 0.0f; |
298 | M01 = m01; M11 = m11; M21 = m21; _m31 = 0.0f; | 298 | M01 = m01; M11 = m11; M21 = m21; _m31 = 0.0f; |
299 | M02 = m02; M12 = m12; M22 = m22; _m32 = 0.0f; | 299 | M02 = m02; M12 = m12; M22 = m22; _m32 = 0.0f; |
300 | } | 300 | } |
301 | public dReal M00, M10, M20; | 301 | internal dReal M00, M10, M20; |
302 | private dReal _m30; | 302 | private dReal _m30; |
303 | public dReal M01, M11, M21; | 303 | internal dReal M01, M11, M21; |
304 | private dReal _m31; | 304 | private dReal _m31; |
305 | public dReal M02, M12, M22; | 305 | internal dReal M02, M12, M22; |
306 | private dReal _m32; | 306 | private dReal _m32; |
307 | } | 307 | } |
308 | 308 | ||
309 | [StructLayout(LayoutKind.Sequential)] | 309 | [StructLayout(LayoutKind.Sequential)] |
310 | public struct Matrix4 | 310 | internal struct Matrix4 |
311 | { | 311 | { |
312 | public Matrix4(dReal m00, dReal m10, dReal m20, dReal m30, | 312 | internal Matrix4(dReal m00, dReal m10, dReal m20, dReal m30, |
313 | dReal m01, dReal m11, dReal m21, dReal m31, | 313 | dReal m01, dReal m11, dReal m21, dReal m31, |
314 | dReal m02, dReal m12, dReal m22, dReal m32, | 314 | dReal m02, dReal m12, dReal m22, dReal m32, |
315 | dReal m03, dReal m13, dReal m23, dReal m33) | 315 | dReal m03, dReal m13, dReal m23, dReal m33) |
@@ -319,312 +319,312 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
319 | M02 = m02; M12 = m12; M22 = m22; M32 = m32; | 319 | M02 = m02; M12 = m12; M22 = m22; M32 = m32; |
320 | M03 = m03; M13 = m13; M23 = m23; M33 = m33; | 320 | M03 = m03; M13 = m13; M23 = m23; M33 = m33; |
321 | } | 321 | } |
322 | public dReal M00, M10, M20, M30; | 322 | internal dReal M00, M10, M20, M30; |
323 | public dReal M01, M11, M21, M31; | 323 | internal dReal M01, M11, M21, M31; |
324 | public dReal M02, M12, M22, M32; | 324 | internal dReal M02, M12, M22, M32; |
325 | public dReal M03, M13, M23, M33; | 325 | internal dReal M03, M13, M23, M33; |
326 | } | 326 | } |
327 | 327 | ||
328 | [StructLayout(LayoutKind.Sequential)] | 328 | [StructLayout(LayoutKind.Sequential)] |
329 | public struct Quaternion | 329 | internal struct Quaternion |
330 | { | 330 | { |
331 | public dReal W, X, Y, Z; | 331 | internal dReal W, X, Y, Z; |
332 | } | 332 | } |
333 | 333 | ||
334 | 334 | ||
335 | [StructLayout(LayoutKind.Sequential)] | 335 | [StructLayout(LayoutKind.Sequential)] |
336 | public struct SurfaceParameters | 336 | internal struct SurfaceParameters |
337 | { | 337 | { |
338 | public ContactFlags mode; | 338 | internal ContactFlags mode; |
339 | public dReal mu; | 339 | internal dReal mu; |
340 | public dReal mu2; | 340 | internal dReal mu2; |
341 | public dReal bounce; | 341 | internal dReal bounce; |
342 | public dReal bounce_vel; | 342 | internal dReal bounce_vel; |
343 | public dReal soft_erp; | 343 | internal dReal soft_erp; |
344 | public dReal soft_cfm; | 344 | internal dReal soft_cfm; |
345 | public dReal motion1; | 345 | internal dReal motion1; |
346 | public dReal motion2; | 346 | internal dReal motion2; |
347 | public dReal motionN; | 347 | internal dReal motionN; |
348 | public dReal slip1; | 348 | internal dReal slip1; |
349 | public dReal slip2; | 349 | internal dReal slip2; |
350 | } | 350 | } |
351 | 351 | ||
352 | 352 | ||
353 | [StructLayout(LayoutKind.Sequential)] | 353 | [StructLayout(LayoutKind.Sequential)] |
354 | public struct Vector3 | 354 | internal struct Vector3 |
355 | { | 355 | { |
356 | public Vector3(dReal x, dReal y, dReal z) | 356 | internal Vector3(dReal x, dReal y, dReal z) |
357 | { | 357 | { |
358 | X = x; Y = y; Z = z; _w = 0.0f; | 358 | X = x; Y = y; Z = z; _w = 0.0f; |
359 | } | 359 | } |
360 | public dReal X, Y, Z; | 360 | internal dReal X, Y, Z; |
361 | private dReal _w; | 361 | private dReal _w; |
362 | } | 362 | } |
363 | 363 | ||
364 | 364 | ||
365 | [StructLayout(LayoutKind.Sequential)] | 365 | [StructLayout(LayoutKind.Sequential)] |
366 | public struct Vector4 | 366 | internal struct Vector4 |
367 | { | 367 | { |
368 | public Vector4(dReal x, dReal y, dReal z, dReal w) | 368 | internal Vector4(dReal x, dReal y, dReal z, dReal w) |
369 | { | 369 | { |
370 | X = x; Y = y; Z = z; W = w; | 370 | X = x; Y = y; Z = z; W = w; |
371 | } | 371 | } |
372 | public dReal X, Y, Z, W; | 372 | internal dReal X, Y, Z, W; |
373 | } | 373 | } |
374 | 374 | ||
375 | #endregion | 375 | #endregion |
376 | 376 | ||
377 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAllocateODEDataForThread"), SuppressUnmanagedCodeSecurity] | 377 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAllocateODEDataForThread"), SuppressUnmanagedCodeSecurity] |
378 | public static extern int AllocateODEDataForThread(uint ODEInitFlags); | 378 | internal static extern int AllocateODEDataForThread(uint ODEInitFlags); |
379 | 379 | ||
380 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnected"), SuppressUnmanagedCodeSecurity] | 380 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnected"), SuppressUnmanagedCodeSecurity] |
381 | public static extern bool AreConnected(IntPtr b1, IntPtr b2); | 381 | internal static extern bool AreConnected(IntPtr b1, IntPtr b2); |
382 | 382 | ||
383 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnectedExcluding"), SuppressUnmanagedCodeSecurity] | 383 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnectedExcluding"), SuppressUnmanagedCodeSecurity] |
384 | public static extern bool AreConnectedExcluding(IntPtr b1, IntPtr b2, JointType joint_type); | 384 | internal static extern bool AreConnectedExcluding(IntPtr b1, IntPtr b2, JointType joint_type); |
385 | 385 | ||
386 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForce"), SuppressUnmanagedCodeSecurity] | 386 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForce"), SuppressUnmanagedCodeSecurity] |
387 | public static extern void BodyAddForce(IntPtr body, dReal fx, dReal fy, dReal fz); | 387 | internal static extern void BodyAddForce(IntPtr body, dReal fx, dReal fy, dReal fz); |
388 | 388 | ||
389 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtPos"), SuppressUnmanagedCodeSecurity] | 389 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtPos"), SuppressUnmanagedCodeSecurity] |
390 | public static extern void BodyAddForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 390 | internal static extern void BodyAddForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
391 | 391 | ||
392 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtRelPos"), SuppressUnmanagedCodeSecurity] | 392 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtRelPos"), SuppressUnmanagedCodeSecurity] |
393 | public static extern void BodyAddForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 393 | internal static extern void BodyAddForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
394 | 394 | ||
395 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForce"), SuppressUnmanagedCodeSecurity] | 395 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForce"), SuppressUnmanagedCodeSecurity] |
396 | public static extern void BodyAddRelForce(IntPtr body, dReal fx, dReal fy, dReal fz); | 396 | internal static extern void BodyAddRelForce(IntPtr body, dReal fx, dReal fy, dReal fz); |
397 | 397 | ||
398 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtPos"), SuppressUnmanagedCodeSecurity] | 398 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtPos"), SuppressUnmanagedCodeSecurity] |
399 | public static extern void BodyAddRelForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 399 | internal static extern void BodyAddRelForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
400 | 400 | ||
401 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtRelPos"), SuppressUnmanagedCodeSecurity] | 401 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtRelPos"), SuppressUnmanagedCodeSecurity] |
402 | public static extern void BodyAddRelForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 402 | internal static extern void BodyAddRelForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
403 | 403 | ||
404 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelTorque"), SuppressUnmanagedCodeSecurity] | 404 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelTorque"), SuppressUnmanagedCodeSecurity] |
405 | public static extern void BodyAddRelTorque(IntPtr body, dReal fx, dReal fy, dReal fz); | 405 | internal static extern void BodyAddRelTorque(IntPtr body, dReal fx, dReal fy, dReal fz); |
406 | 406 | ||
407 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddTorque"), SuppressUnmanagedCodeSecurity] | 407 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddTorque"), SuppressUnmanagedCodeSecurity] |
408 | public static extern void BodyAddTorque(IntPtr body, dReal fx, dReal fy, dReal fz); | 408 | internal static extern void BodyAddTorque(IntPtr body, dReal fx, dReal fy, dReal fz); |
409 | 409 | ||
410 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] | 410 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] |
411 | public static extern void BodyCopyPosition(IntPtr body, out Vector3 pos); | 411 | internal static extern void BodyCopyPosition(IntPtr body, out Vector3 pos); |
412 | 412 | ||
413 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] | 413 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] |
414 | public static extern void BodyCopyPosition(IntPtr body, out dReal X); | 414 | internal static extern void BodyCopyPosition(IntPtr body, out dReal X); |
415 | 415 | ||
416 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] | 416 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] |
417 | public static extern void BodyCopyQuaternion(IntPtr body, out Quaternion quat); | 417 | internal static extern void BodyCopyQuaternion(IntPtr body, out Quaternion quat); |
418 | 418 | ||
419 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] | 419 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] |
420 | public static extern void BodyCopyQuaternion(IntPtr body, out dReal X); | 420 | internal static extern void BodyCopyQuaternion(IntPtr body, out dReal X); |
421 | 421 | ||
422 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] | 422 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] |
423 | public static extern void BodyCopyRotation(IntPtr body, out Matrix3 R); | 423 | internal static extern void BodyCopyRotation(IntPtr body, out Matrix3 R); |
424 | 424 | ||
425 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] | 425 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] |
426 | public static extern void BodyCopyRotation(IntPtr body, out dReal M00); | 426 | internal static extern void BodyCopyRotation(IntPtr body, out dReal M00); |
427 | 427 | ||
428 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCreate"), SuppressUnmanagedCodeSecurity] | 428 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCreate"), SuppressUnmanagedCodeSecurity] |
429 | public static extern IntPtr BodyiCreate(IntPtr world); | 429 | internal static extern IntPtr BodyiCreate(IntPtr world); |
430 | public static IntPtr BodyCreate(IntPtr world) | 430 | internal static IntPtr BodyCreate(IntPtr world) |
431 | { | 431 | { |
432 | NTotalBodies++; | 432 | NTotalBodies++; |
433 | return BodyiCreate(world); | 433 | return BodyiCreate(world); |
434 | } | 434 | } |
435 | 435 | ||
436 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDestroy"), SuppressUnmanagedCodeSecurity] | 436 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDestroy"), SuppressUnmanagedCodeSecurity] |
437 | public static extern void BodyiDestroy(IntPtr body); | 437 | internal static extern void BodyiDestroy(IntPtr body); |
438 | public static void BodyDestroy(IntPtr body) | 438 | internal static void BodyDestroy(IntPtr body) |
439 | { | 439 | { |
440 | NTotalBodies--; | 440 | NTotalBodies--; |
441 | BodyiDestroy(body); | 441 | BodyiDestroy(body); |
442 | } | 442 | } |
443 | 443 | ||
444 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDisable"), SuppressUnmanagedCodeSecurity] | 444 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDisable"), SuppressUnmanagedCodeSecurity] |
445 | public static extern void BodyDisable(IntPtr body); | 445 | internal static extern void BodyDisable(IntPtr body); |
446 | 446 | ||
447 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyEnable"), SuppressUnmanagedCodeSecurity] | 447 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyEnable"), SuppressUnmanagedCodeSecurity] |
448 | public static extern void BodyEnable(IntPtr body); | 448 | internal static extern void BodyEnable(IntPtr body); |
449 | 449 | ||
450 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 450 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
451 | public static extern dReal BodyGetAutoDisableAngularThreshold(IntPtr body); | 451 | internal static extern dReal BodyGetAutoDisableAngularThreshold(IntPtr body); |
452 | 452 | ||
453 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 453 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
454 | public static extern bool BodyGetAutoDisableFlag(IntPtr body); | 454 | internal static extern bool BodyGetAutoDisableFlag(IntPtr body); |
455 | 455 | ||
456 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] | 456 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] |
457 | public static extern void BodyGetAutoDisableDefaults(IntPtr body); | 457 | internal static extern void BodyGetAutoDisableDefaults(IntPtr body); |
458 | 458 | ||
459 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 459 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
460 | public static extern dReal BodyGetAutoDisableLinearThreshold(IntPtr body); | 460 | internal static extern dReal BodyGetAutoDisableLinearThreshold(IntPtr body); |
461 | 461 | ||
462 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 462 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
463 | public static extern int BodyGetAutoDisableSteps(IntPtr body); | 463 | internal static extern int BodyGetAutoDisableSteps(IntPtr body); |
464 | 464 | ||
465 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 465 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
466 | public static extern dReal BodyGetAutoDisableTime(IntPtr body); | 466 | internal static extern dReal BodyGetAutoDisableTime(IntPtr body); |
467 | 467 | ||
468 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularVel"), SuppressUnmanagedCodeSecurity] | 468 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularVel"), SuppressUnmanagedCodeSecurity] |
469 | public extern unsafe static Vector3* BodyGetAngularVelUnsafe(IntPtr body); | 469 | internal extern unsafe static Vector3* BodyGetAngularVelUnsafe(IntPtr body); |
470 | public static Vector3 BodyGetAngularVel(IntPtr body) | 470 | internal static Vector3 BodyGetAngularVel(IntPtr body) |
471 | { | 471 | { |
472 | unsafe { return *(BodyGetAngularVelUnsafe(body)); } | 472 | unsafe { return *(BodyGetAngularVelUnsafe(body)); } |
473 | } | 473 | } |
474 | 474 | ||
475 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetData"), SuppressUnmanagedCodeSecurity] | 475 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetData"), SuppressUnmanagedCodeSecurity] |
476 | public static extern IntPtr BodyGetData(IntPtr body); | 476 | internal static extern IntPtr BodyGetData(IntPtr body); |
477 | 477 | ||
478 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] | 478 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] |
479 | public static extern int BodyGetFiniteRotationMode(IntPtr body); | 479 | internal static extern int BodyGetFiniteRotationMode(IntPtr body); |
480 | 480 | ||
481 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] | 481 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] |
482 | public static extern void BodyGetFiniteRotationAxis(IntPtr body, out Vector3 result); | 482 | internal static extern void BodyGetFiniteRotationAxis(IntPtr body, out Vector3 result); |
483 | 483 | ||
484 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetForce"), SuppressUnmanagedCodeSecurity] | 484 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetForce"), SuppressUnmanagedCodeSecurity] |
485 | public extern unsafe static Vector3* BodyGetForceUnsafe(IntPtr body); | 485 | internal extern unsafe static Vector3* BodyGetForceUnsafe(IntPtr body); |
486 | public static Vector3 BodyGetForce(IntPtr body) | 486 | internal static Vector3 BodyGetForce(IntPtr body) |
487 | { | 487 | { |
488 | unsafe { return *(BodyGetForceUnsafe(body)); } | 488 | unsafe { return *(BodyGetForceUnsafe(body)); } |
489 | } | 489 | } |
490 | 490 | ||
491 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGravityMode"), SuppressUnmanagedCodeSecurity] | 491 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGravityMode"), SuppressUnmanagedCodeSecurity] |
492 | public static extern bool BodyGetGravityMode(IntPtr body); | 492 | internal static extern bool BodyGetGravityMode(IntPtr body); |
493 | 493 | ||
494 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGyroscopicMode"), SuppressUnmanagedCodeSecurity] | 494 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGyroscopicMode"), SuppressUnmanagedCodeSecurity] |
495 | public static extern int BodyGetGyroscopicMode(IntPtr body); | 495 | internal static extern int BodyGetGyroscopicMode(IntPtr body); |
496 | 496 | ||
497 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetJoint"), SuppressUnmanagedCodeSecurity] | 497 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetJoint"), SuppressUnmanagedCodeSecurity] |
498 | public static extern IntPtr BodyGetJoint(IntPtr body, int index); | 498 | internal static extern IntPtr BodyGetJoint(IntPtr body, int index); |
499 | 499 | ||
500 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearVel"), SuppressUnmanagedCodeSecurity] | 500 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearVel"), SuppressUnmanagedCodeSecurity] |
501 | public extern unsafe static Vector3* BodyGetLinearVelUnsafe(IntPtr body); | 501 | internal extern unsafe static Vector3* BodyGetLinearVelUnsafe(IntPtr body); |
502 | public static Vector3 BodyGetLinearVel(IntPtr body) | 502 | internal static Vector3 BodyGetLinearVel(IntPtr body) |
503 | { | 503 | { |
504 | unsafe { return *(BodyGetLinearVelUnsafe(body)); } | 504 | unsafe { return *(BodyGetLinearVelUnsafe(body)); } |
505 | } | 505 | } |
506 | 506 | ||
507 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetMass"), SuppressUnmanagedCodeSecurity] | 507 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetMass"), SuppressUnmanagedCodeSecurity] |
508 | public static extern void BodyGetMass(IntPtr body, out Mass mass); | 508 | internal static extern void BodyGetMass(IntPtr body, out Mass mass); |
509 | 509 | ||
510 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNumJoints"), SuppressUnmanagedCodeSecurity] | 510 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNumJoints"), SuppressUnmanagedCodeSecurity] |
511 | public static extern int BodyGetNumJoints(IntPtr body); | 511 | internal static extern int BodyGetNumJoints(IntPtr body); |
512 | 512 | ||
513 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPointVel"), SuppressUnmanagedCodeSecurity] | 513 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPointVel"), SuppressUnmanagedCodeSecurity] |
514 | public static extern void BodyGetPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 514 | internal static extern void BodyGetPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
515 | 515 | ||
516 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosition"), SuppressUnmanagedCodeSecurity] | 516 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosition"), SuppressUnmanagedCodeSecurity] |
517 | public extern unsafe static Vector3* BodyGetPositionUnsafe(IntPtr body); | 517 | internal extern unsafe static Vector3* BodyGetPositionUnsafe(IntPtr body); |
518 | public static Vector3 BodyGetPosition(IntPtr body) | 518 | internal static Vector3 BodyGetPosition(IntPtr body) |
519 | { | 519 | { |
520 | unsafe { return *(BodyGetPositionUnsafe(body)); } | 520 | unsafe { return *(BodyGetPositionUnsafe(body)); } |
521 | } | 521 | } |
522 | 522 | ||
523 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosRelPoint"), SuppressUnmanagedCodeSecurity] | 523 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosRelPoint"), SuppressUnmanagedCodeSecurity] |
524 | public static extern void BodyGetPosRelPoint(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 524 | internal static extern void BodyGetPosRelPoint(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
525 | 525 | ||
526 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetQuaternion"), SuppressUnmanagedCodeSecurity] | 526 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetQuaternion"), SuppressUnmanagedCodeSecurity] |
527 | public extern unsafe static Quaternion* BodyGetQuaternionUnsafe(IntPtr body); | 527 | internal extern unsafe static Quaternion* BodyGetQuaternionUnsafe(IntPtr body); |
528 | public static Quaternion BodyGetQuaternion(IntPtr body) | 528 | internal static Quaternion BodyGetQuaternion(IntPtr body) |
529 | { | 529 | { |
530 | unsafe { return *(BodyGetQuaternionUnsafe(body)); } | 530 | unsafe { return *(BodyGetQuaternionUnsafe(body)); } |
531 | } | 531 | } |
532 | 532 | ||
533 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointPos"), SuppressUnmanagedCodeSecurity] | 533 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointPos"), SuppressUnmanagedCodeSecurity] |
534 | public static extern void BodyGetRelPointPos(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 534 | internal static extern void BodyGetRelPointPos(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
535 | 535 | ||
536 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointVel"), SuppressUnmanagedCodeSecurity] | 536 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointVel"), SuppressUnmanagedCodeSecurity] |
537 | public static extern void BodyGetRelPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 537 | internal static extern void BodyGetRelPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
538 | 538 | ||
539 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRotation"), SuppressUnmanagedCodeSecurity] | 539 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRotation"), SuppressUnmanagedCodeSecurity] |
540 | public extern unsafe static Matrix3* BodyGetRotationUnsafe(IntPtr body); | 540 | internal extern unsafe static Matrix3* BodyGetRotationUnsafe(IntPtr body); |
541 | public static Matrix3 BodyGetRotation(IntPtr body) | 541 | internal static Matrix3 BodyGetRotation(IntPtr body) |
542 | { | 542 | { |
543 | unsafe { return *(BodyGetRotationUnsafe(body)); } | 543 | unsafe { return *(BodyGetRotationUnsafe(body)); } |
544 | } | 544 | } |
545 | 545 | ||
546 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetTorque"), SuppressUnmanagedCodeSecurity] | 546 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetTorque"), SuppressUnmanagedCodeSecurity] |
547 | public extern unsafe static Vector3* BodyGetTorqueUnsafe(IntPtr body); | 547 | internal extern unsafe static Vector3* BodyGetTorqueUnsafe(IntPtr body); |
548 | public static Vector3 BodyGetTorque(IntPtr body) | 548 | internal static Vector3 BodyGetTorque(IntPtr body) |
549 | { | 549 | { |
550 | unsafe { return *(BodyGetTorqueUnsafe(body)); } | 550 | unsafe { return *(BodyGetTorqueUnsafe(body)); } |
551 | } | 551 | } |
552 | 552 | ||
553 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetWorld"), SuppressUnmanagedCodeSecurity] | 553 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetWorld"), SuppressUnmanagedCodeSecurity] |
554 | public static extern IntPtr BodyGetWorld(IntPtr body); | 554 | internal static extern IntPtr BodyGetWorld(IntPtr body); |
555 | 555 | ||
556 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFirstGeom"), SuppressUnmanagedCodeSecurity] | 556 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFirstGeom"), SuppressUnmanagedCodeSecurity] |
557 | public static extern IntPtr BodyGetFirstGeom(IntPtr body); | 557 | internal static extern IntPtr BodyGetFirstGeom(IntPtr body); |
558 | 558 | ||
559 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNextGeom"), SuppressUnmanagedCodeSecurity] | 559 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNextGeom"), SuppressUnmanagedCodeSecurity] |
560 | public static extern IntPtr dBodyGetNextGeom(IntPtr Geom); | 560 | internal static extern IntPtr dBodyGetNextGeom(IntPtr Geom); |
561 | 561 | ||
562 | 562 | ||
563 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyIsEnabled"), SuppressUnmanagedCodeSecurity] | 563 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyIsEnabled"), SuppressUnmanagedCodeSecurity] |
564 | public static extern bool BodyIsEnabled(IntPtr body); | 564 | internal static extern bool BodyIsEnabled(IntPtr body); |
565 | 565 | ||
566 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularVel"), SuppressUnmanagedCodeSecurity] | 566 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularVel"), SuppressUnmanagedCodeSecurity] |
567 | public static extern void BodySetAngularVel(IntPtr body, dReal x, dReal y, dReal z); | 567 | internal static extern void BodySetAngularVel(IntPtr body, dReal x, dReal y, dReal z); |
568 | 568 | ||
569 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 569 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
570 | public static extern void BodySetAutoDisableAngularThreshold(IntPtr body, dReal angular_threshold); | 570 | internal static extern void BodySetAutoDisableAngularThreshold(IntPtr body, dReal angular_threshold); |
571 | 571 | ||
572 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] | 572 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] |
573 | public static extern void BodySetAutoDisableDefaults(IntPtr body); | 573 | internal static extern void BodySetAutoDisableDefaults(IntPtr body); |
574 | 574 | ||
575 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 575 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
576 | public static extern void BodySetAutoDisableFlag(IntPtr body, bool do_auto_disable); | 576 | internal static extern void BodySetAutoDisableFlag(IntPtr body, bool do_auto_disable); |
577 | 577 | ||
578 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 578 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
579 | public static extern void BodySetAutoDisableLinearThreshold(IntPtr body, dReal linear_threshold); | 579 | internal static extern void BodySetAutoDisableLinearThreshold(IntPtr body, dReal linear_threshold); |
580 | 580 | ||
581 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 581 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
582 | public static extern void BodySetAutoDisableSteps(IntPtr body, int steps); | 582 | internal static extern void BodySetAutoDisableSteps(IntPtr body, int steps); |
583 | 583 | ||
584 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 584 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
585 | public static extern void BodySetAutoDisableTime(IntPtr body, dReal time); | 585 | internal static extern void BodySetAutoDisableTime(IntPtr body, dReal time); |
586 | 586 | ||
587 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetData"), SuppressUnmanagedCodeSecurity] | 587 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetData"), SuppressUnmanagedCodeSecurity] |
588 | public static extern void BodySetData(IntPtr body, IntPtr data); | 588 | internal static extern void BodySetData(IntPtr body, IntPtr data); |
589 | 589 | ||
590 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] | 590 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] |
591 | public static extern void BodySetFiniteRotationMode(IntPtr body, int mode); | 591 | internal static extern void BodySetFiniteRotationMode(IntPtr body, int mode); |
592 | 592 | ||
593 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] | 593 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] |
594 | public static extern void BodySetFiniteRotationAxis(IntPtr body, dReal x, dReal y, dReal z); | 594 | internal static extern void BodySetFiniteRotationAxis(IntPtr body, dReal x, dReal y, dReal z); |
595 | 595 | ||
596 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDamping"), SuppressUnmanagedCodeSecurity] | 596 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDamping"), SuppressUnmanagedCodeSecurity] |
597 | public static extern void BodySetLinearDamping(IntPtr body, dReal scale); | 597 | internal static extern void BodySetLinearDamping(IntPtr body, dReal scale); |
598 | 598 | ||
599 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] | 599 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] |
600 | public static extern void BodySetAngularDamping(IntPtr body, dReal scale); | 600 | internal static extern void BodySetAngularDamping(IntPtr body, dReal scale); |
601 | 601 | ||
602 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDamping"), SuppressUnmanagedCodeSecurity] | 602 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDamping"), SuppressUnmanagedCodeSecurity] |
603 | public static extern dReal BodyGetLinearDamping(IntPtr body); | 603 | internal static extern dReal BodyGetLinearDamping(IntPtr body); |
604 | 604 | ||
605 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDamping"), SuppressUnmanagedCodeSecurity] | 605 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDamping"), SuppressUnmanagedCodeSecurity] |
606 | public static extern dReal BodyGetAngularDamping(IntPtr body); | 606 | internal static extern dReal BodyGetAngularDamping(IntPtr body); |
607 | 607 | ||
608 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] | 608 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] |
609 | public static extern void BodySetDamping(IntPtr body, dReal linear_scale, dReal angular_scale); | 609 | internal static extern void BodySetDamping(IntPtr body, dReal linear_scale, dReal angular_scale); |
610 | 610 | ||
611 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 611 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
612 | public static extern void BodySetAngularDampingThreshold(IntPtr body, dReal threshold); | 612 | internal static extern void BodySetAngularDampingThreshold(IntPtr body, dReal threshold); |
613 | 613 | ||
614 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 614 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
615 | public static extern void BodySetLinearDampingThreshold(IntPtr body, dReal threshold); | 615 | internal static extern void BodySetLinearDampingThreshold(IntPtr body, dReal threshold); |
616 | 616 | ||
617 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 617 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
618 | public static extern dReal BodyGetLinearDampingThreshold(IntPtr body); | 618 | internal static extern dReal BodyGetLinearDampingThreshold(IntPtr body); |
619 | 619 | ||
620 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 620 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
621 | public static extern dReal BodyGetAngularDampingThreshold(IntPtr body); | 621 | internal static extern dReal BodyGetAngularDampingThreshold(IntPtr body); |
622 | 622 | ||
623 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetForce"), SuppressUnmanagedCodeSecurity] | 623 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetForce"), SuppressUnmanagedCodeSecurity] |
624 | public static extern void BodySetForce(IntPtr body, dReal x, dReal y, dReal z); | 624 | internal static extern void BodySetForce(IntPtr body, dReal x, dReal y, dReal z); |
625 | 625 | ||
626 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGravityMode"), SuppressUnmanagedCodeSecurity] | 626 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGravityMode"), SuppressUnmanagedCodeSecurity] |
627 | public static extern void BodySetGravityMode(IntPtr body, bool mode); | 627 | internal static extern void BodySetGravityMode(IntPtr body, bool mode); |
628 | 628 | ||
629 | /// <summary> | 629 | /// <summary> |
630 | /// Sets the Gyroscopic term status on the body specified. | 630 | /// Sets the Gyroscopic term status on the body specified. |
@@ -632,112 +632,112 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
632 | /// <param name="body">Pointer to body</param> | 632 | /// <param name="body">Pointer to body</param> |
633 | /// <param name="enabled">NonZero enabled, Zero disabled</param> | 633 | /// <param name="enabled">NonZero enabled, Zero disabled</param> |
634 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGyroscopicMode"), SuppressUnmanagedCodeSecurity] | 634 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGyroscopicMode"), SuppressUnmanagedCodeSecurity] |
635 | public static extern void dBodySetGyroscopicMode(IntPtr body, int enabled); | 635 | internal static extern void dBodySetGyroscopicMode(IntPtr body, int enabled); |
636 | 636 | ||
637 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearVel"), SuppressUnmanagedCodeSecurity] | 637 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearVel"), SuppressUnmanagedCodeSecurity] |
638 | public static extern void BodySetLinearVel(IntPtr body, dReal x, dReal y, dReal z); | 638 | internal static extern void BodySetLinearVel(IntPtr body, dReal x, dReal y, dReal z); |
639 | 639 | ||
640 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetMass"), SuppressUnmanagedCodeSecurity] | 640 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetMass"), SuppressUnmanagedCodeSecurity] |
641 | public static extern void BodySetMass(IntPtr body, ref Mass mass); | 641 | internal static extern void BodySetMass(IntPtr body, ref Mass mass); |
642 | 642 | ||
643 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetPosition"), SuppressUnmanagedCodeSecurity] | 643 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetPosition"), SuppressUnmanagedCodeSecurity] |
644 | public static extern void BodySetPosition(IntPtr body, dReal x, dReal y, dReal z); | 644 | internal static extern void BodySetPosition(IntPtr body, dReal x, dReal y, dReal z); |
645 | 645 | ||
646 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] | 646 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] |
647 | public static extern void BodySetQuaternion(IntPtr body, ref Quaternion q); | 647 | internal static extern void BodySetQuaternion(IntPtr body, ref Quaternion q); |
648 | 648 | ||
649 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] | 649 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] |
650 | public static extern void BodySetQuaternion(IntPtr body, ref dReal w); | 650 | internal static extern void BodySetQuaternion(IntPtr body, ref dReal w); |
651 | 651 | ||
652 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] | 652 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] |
653 | public static extern void BodySetRotation(IntPtr body, ref Matrix3 R); | 653 | internal static extern void BodySetRotation(IntPtr body, ref Matrix3 R); |
654 | 654 | ||
655 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] | 655 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] |
656 | public static extern void BodySetRotation(IntPtr body, ref dReal M00); | 656 | internal static extern void BodySetRotation(IntPtr body, ref dReal M00); |
657 | 657 | ||
658 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetTorque"), SuppressUnmanagedCodeSecurity] | 658 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetTorque"), SuppressUnmanagedCodeSecurity] |
659 | public static extern void BodySetTorque(IntPtr body, dReal x, dReal y, dReal z); | 659 | internal static extern void BodySetTorque(IntPtr body, dReal x, dReal y, dReal z); |
660 | 660 | ||
661 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorFromWorld"), SuppressUnmanagedCodeSecurity] | 661 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorFromWorld"), SuppressUnmanagedCodeSecurity] |
662 | public static extern void BodyVectorFromWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 662 | internal static extern void BodyVectorFromWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
663 | 663 | ||
664 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorToWorld"), SuppressUnmanagedCodeSecurity] | 664 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorToWorld"), SuppressUnmanagedCodeSecurity] |
665 | public static extern void BodyVectorToWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 665 | internal static extern void BodyVectorToWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
666 | 666 | ||
667 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxBox"), SuppressUnmanagedCodeSecurity] | 667 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxBox"), SuppressUnmanagedCodeSecurity] |
668 | public static extern void BoxBox(ref Vector3 p1, ref Matrix3 R1, | 668 | internal static extern void BoxBox(ref Vector3 p1, ref Matrix3 R1, |
669 | ref Vector3 side1, ref Vector3 p2, | 669 | ref Vector3 side1, ref Vector3 p2, |
670 | ref Matrix3 R2, ref Vector3 side2, | 670 | ref Matrix3 R2, ref Vector3 side2, |
671 | ref Vector3 normal, out dReal depth, out int return_code, | 671 | ref Vector3 normal, out dReal depth, out int return_code, |
672 | int maxc, out ContactGeom contact, int skip); | 672 | int maxc, out ContactGeom contact, int skip); |
673 | 673 | ||
674 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxTouchesBox"), SuppressUnmanagedCodeSecurity] | 674 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxTouchesBox"), SuppressUnmanagedCodeSecurity] |
675 | public static extern void BoxTouchesBox(ref Vector3 _p1, ref Matrix3 R1, | 675 | internal static extern void BoxTouchesBox(ref Vector3 _p1, ref Matrix3 R1, |
676 | ref Vector3 side1, ref Vector3 _p2, | 676 | ref Vector3 side1, ref Vector3 _p2, |
677 | ref Matrix3 R2, ref Vector3 side2); | 677 | ref Matrix3 R2, ref Vector3 side2); |
678 | 678 | ||
679 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCleanupODEAllDataForThread"), SuppressUnmanagedCodeSecurity] | 679 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCleanupODEAllDataForThread"), SuppressUnmanagedCodeSecurity] |
680 | public static extern void CleanupODEAllDataForThread(); | 680 | internal static extern void CleanupODEAllDataForThread(); |
681 | 681 | ||
682 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dClosestLineSegmentPoints"), SuppressUnmanagedCodeSecurity] | 682 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dClosestLineSegmentPoints"), SuppressUnmanagedCodeSecurity] |
683 | public static extern void ClosestLineSegmentPoints(ref Vector3 a1, ref Vector3 a2, | 683 | internal static extern void ClosestLineSegmentPoints(ref Vector3 a1, ref Vector3 a2, |
684 | ref Vector3 b1, ref Vector3 b2, | 684 | ref Vector3 b1, ref Vector3 b2, |
685 | ref Vector3 cp1, ref Vector3 cp2); | 685 | ref Vector3 cp1, ref Vector3 cp2); |
686 | 686 | ||
687 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCloseODE"), SuppressUnmanagedCodeSecurity] | 687 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCloseODE"), SuppressUnmanagedCodeSecurity] |
688 | public static extern void CloseODE(); | 688 | internal static extern void CloseODE(); |
689 | 689 | ||
690 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] | 690 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] |
691 | public static extern int Collide(IntPtr o1, IntPtr o2, int flags, [In, Out] ContactGeom[] contact, int skip); | 691 | internal static extern int Collide(IntPtr o1, IntPtr o2, int flags, [In, Out] ContactGeom[] contact, int skip); |
692 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] | 692 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] |
693 | public static extern int CollidePtr(IntPtr o1, IntPtr o2, int flags, IntPtr contactgeomarray, int skip); | 693 | internal static extern int CollidePtr(IntPtr o1, IntPtr o2, int flags, IntPtr contactgeomarray, int skip); |
694 | 694 | ||
695 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dConnectingJoint"), SuppressUnmanagedCodeSecurity] | 695 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dConnectingJoint"), SuppressUnmanagedCodeSecurity] |
696 | public static extern IntPtr ConnectingJoint(IntPtr j1, IntPtr j2); | 696 | internal static extern IntPtr ConnectingJoint(IntPtr j1, IntPtr j2); |
697 | 697 | ||
698 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateBox"), SuppressUnmanagedCodeSecurity] | 698 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateBox"), SuppressUnmanagedCodeSecurity] |
699 | public static extern IntPtr CreateiBox(IntPtr space, dReal lx, dReal ly, dReal lz); | 699 | internal static extern IntPtr CreateiBox(IntPtr space, dReal lx, dReal ly, dReal lz); |
700 | public static IntPtr CreateBox(IntPtr space, dReal lx, dReal ly, dReal lz) | 700 | internal static IntPtr CreateBox(IntPtr space, dReal lx, dReal ly, dReal lz) |
701 | { | 701 | { |
702 | NTotalGeoms++; | 702 | NTotalGeoms++; |
703 | return CreateiBox(space, lx, ly, lz); | 703 | return CreateiBox(space, lx, ly, lz); |
704 | } | 704 | } |
705 | 705 | ||
706 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCapsule"), SuppressUnmanagedCodeSecurity] | 706 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCapsule"), SuppressUnmanagedCodeSecurity] |
707 | public static extern IntPtr CreateiCapsule(IntPtr space, dReal radius, dReal length); | 707 | internal static extern IntPtr CreateiCapsule(IntPtr space, dReal radius, dReal length); |
708 | public static IntPtr CreateCapsule(IntPtr space, dReal radius, dReal length) | 708 | internal static IntPtr CreateCapsule(IntPtr space, dReal radius, dReal length) |
709 | { | 709 | { |
710 | NTotalGeoms++; | 710 | NTotalGeoms++; |
711 | return CreateiCapsule(space, radius, length); | 711 | return CreateiCapsule(space, radius, length); |
712 | } | 712 | } |
713 | 713 | ||
714 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateConvex"), SuppressUnmanagedCodeSecurity] | 714 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateConvex"), SuppressUnmanagedCodeSecurity] |
715 | public static extern IntPtr CreateiConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); | 715 | internal static extern IntPtr CreateiConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); |
716 | public static IntPtr CreateConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons) | 716 | internal static IntPtr CreateConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons) |
717 | { | 717 | { |
718 | NTotalGeoms++; | 718 | NTotalGeoms++; |
719 | return CreateiConvex(space, planes, planeCount, points, pointCount, polygons); | 719 | return CreateiConvex(space, planes, planeCount, points, pointCount, polygons); |
720 | } | 720 | } |
721 | 721 | ||
722 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCylinder"), SuppressUnmanagedCodeSecurity] | 722 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCylinder"), SuppressUnmanagedCodeSecurity] |
723 | public static extern IntPtr CreateiCylinder(IntPtr space, dReal radius, dReal length); | 723 | internal static extern IntPtr CreateiCylinder(IntPtr space, dReal radius, dReal length); |
724 | public static IntPtr CreateCylinder(IntPtr space, dReal radius, dReal length) | 724 | internal static IntPtr CreateCylinder(IntPtr space, dReal radius, dReal length) |
725 | { | 725 | { |
726 | NTotalGeoms++; | 726 | NTotalGeoms++; |
727 | return CreateiCylinder(space, radius, length); | 727 | return CreateiCylinder(space, radius, length); |
728 | } | 728 | } |
729 | 729 | ||
730 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateHeightfield"), SuppressUnmanagedCodeSecurity] | 730 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateHeightfield"), SuppressUnmanagedCodeSecurity] |
731 | public static extern IntPtr CreateiHeightfield(IntPtr space, IntPtr data, int bPlaceable); | 731 | internal static extern IntPtr CreateiHeightfield(IntPtr space, IntPtr data, int bPlaceable); |
732 | public static IntPtr CreateHeightfield(IntPtr space, IntPtr data, int bPlaceable) | 732 | internal static IntPtr CreateHeightfield(IntPtr space, IntPtr data, int bPlaceable) |
733 | { | 733 | { |
734 | NTotalGeoms++; | 734 | NTotalGeoms++; |
735 | return CreateiHeightfield(space, data, bPlaceable); | 735 | return CreateiHeightfield(space, data, bPlaceable); |
736 | } | 736 | } |
737 | 737 | ||
738 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateOSTerrain"), SuppressUnmanagedCodeSecurity] | 738 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateOSTerrain"), SuppressUnmanagedCodeSecurity] |
739 | public static extern IntPtr CreateiOSTerrain(IntPtr space, IntPtr data, int bPlaceable); | 739 | internal static extern IntPtr CreateiOSTerrain(IntPtr space, IntPtr data, int bPlaceable); |
740 | public static IntPtr CreateOSTerrain(IntPtr space, IntPtr data, int bPlaceable) | 740 | internal static IntPtr CreateOSTerrain(IntPtr space, IntPtr data, int bPlaceable) |
741 | { | 741 | { |
742 | NTotalGeoms++; | 742 | NTotalGeoms++; |
743 | return CreateiOSTerrain(space, data, bPlaceable); | 743 | return CreateiOSTerrain(space, data, bPlaceable); |
@@ -748,127 +748,127 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
748 | 748 | ||
749 | 749 | ||
750 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeom"), SuppressUnmanagedCodeSecurity] | 750 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeom"), SuppressUnmanagedCodeSecurity] |
751 | public static extern IntPtr CreateiGeom(int classnum); | 751 | internal static extern IntPtr CreateiGeom(int classnum); |
752 | public static IntPtr CreateGeom(int classnum) | 752 | internal static IntPtr CreateGeom(int classnum) |
753 | { | 753 | { |
754 | NTotalGeoms++; | 754 | NTotalGeoms++; |
755 | return CreateiGeom(classnum); | 755 | return CreateiGeom(classnum); |
756 | } | 756 | } |
757 | 757 | ||
758 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomClass"), SuppressUnmanagedCodeSecurity] | 758 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomClass"), SuppressUnmanagedCodeSecurity] |
759 | public static extern int CreateGeomClass(ref GeomClass classptr); | 759 | internal static extern int CreateGeomClass(ref GeomClass classptr); |
760 | 760 | ||
761 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomTransform"), SuppressUnmanagedCodeSecurity] | 761 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomTransform"), SuppressUnmanagedCodeSecurity] |
762 | public static extern IntPtr CreateGeomTransform(IntPtr space); | 762 | internal static extern IntPtr CreateGeomTransform(IntPtr space); |
763 | 763 | ||
764 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreatePlane"), SuppressUnmanagedCodeSecurity] | 764 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreatePlane"), SuppressUnmanagedCodeSecurity] |
765 | public static extern IntPtr CreateiPlane(IntPtr space, dReal a, dReal b, dReal c, dReal d); | 765 | internal static extern IntPtr CreateiPlane(IntPtr space, dReal a, dReal b, dReal c, dReal d); |
766 | public static IntPtr CreatePlane(IntPtr space, dReal a, dReal b, dReal c, dReal d) | 766 | internal static IntPtr CreatePlane(IntPtr space, dReal a, dReal b, dReal c, dReal d) |
767 | { | 767 | { |
768 | NTotalGeoms++; | 768 | NTotalGeoms++; |
769 | return CreateiPlane(space, a, b, c, d); | 769 | return CreateiPlane(space, a, b, c, d); |
770 | } | 770 | } |
771 | 771 | ||
772 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateRay"), SuppressUnmanagedCodeSecurity] | 772 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateRay"), SuppressUnmanagedCodeSecurity] |
773 | public static extern IntPtr CreateiRay(IntPtr space, dReal length); | 773 | internal static extern IntPtr CreateiRay(IntPtr space, dReal length); |
774 | public static IntPtr CreateRay(IntPtr space, dReal length) | 774 | internal static IntPtr CreateRay(IntPtr space, dReal length) |
775 | { | 775 | { |
776 | NTotalGeoms++; | 776 | NTotalGeoms++; |
777 | return CreateiRay(space, length); | 777 | return CreateiRay(space, length); |
778 | } | 778 | } |
779 | 779 | ||
780 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateSphere"), SuppressUnmanagedCodeSecurity] | 780 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateSphere"), SuppressUnmanagedCodeSecurity] |
781 | public static extern IntPtr CreateiSphere(IntPtr space, dReal radius); | 781 | internal static extern IntPtr CreateiSphere(IntPtr space, dReal radius); |
782 | public static IntPtr CreateSphere(IntPtr space, dReal radius) | 782 | internal static IntPtr CreateSphere(IntPtr space, dReal radius) |
783 | { | 783 | { |
784 | NTotalGeoms++; | 784 | NTotalGeoms++; |
785 | return CreateiSphere(space, radius); | 785 | return CreateiSphere(space, radius); |
786 | } | 786 | } |
787 | 787 | ||
788 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateTriMesh"), SuppressUnmanagedCodeSecurity] | 788 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateTriMesh"), SuppressUnmanagedCodeSecurity] |
789 | public static extern IntPtr CreateiTriMesh(IntPtr space, IntPtr data, | 789 | internal static extern IntPtr CreateiTriMesh(IntPtr space, IntPtr data, |
790 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback); | 790 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback); |
791 | public static IntPtr CreateTriMesh(IntPtr space, IntPtr data, | 791 | internal static IntPtr CreateTriMesh(IntPtr space, IntPtr data, |
792 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback) | 792 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback) |
793 | { | 793 | { |
794 | NTotalGeoms++; | 794 | NTotalGeoms++; |
795 | return CreateiTriMesh(space, data, callback, arrayCallback, rayCallback); | 795 | return CreateiTriMesh(space, data, callback, arrayCallback, rayCallback); |
796 | } | 796 | } |
797 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDot"), SuppressUnmanagedCodeSecurity] | 797 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDot"), SuppressUnmanagedCodeSecurity] |
798 | public static extern dReal Dot(ref dReal X0, ref dReal X1, int n); | 798 | internal static extern dReal Dot(ref dReal X0, ref dReal X1, int n); |
799 | 799 | ||
800 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDQfromW"), SuppressUnmanagedCodeSecurity] | 800 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDQfromW"), SuppressUnmanagedCodeSecurity] |
801 | public static extern void DQfromW(dReal[] dq, ref Vector3 w, ref Quaternion q); | 801 | internal static extern void DQfromW(dReal[] dq, ref Vector3 w, ref Quaternion q); |
802 | 802 | ||
803 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorCholesky"), SuppressUnmanagedCodeSecurity] | 803 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorCholesky"), SuppressUnmanagedCodeSecurity] |
804 | public static extern int FactorCholesky(ref dReal A00, int n); | 804 | internal static extern int FactorCholesky(ref dReal A00, int n); |
805 | 805 | ||
806 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorLDLT"), SuppressUnmanagedCodeSecurity] | 806 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorLDLT"), SuppressUnmanagedCodeSecurity] |
807 | public static extern void FactorLDLT(ref dReal A, out dReal d, int n, int nskip); | 807 | internal static extern void FactorLDLT(ref dReal A, out dReal d, int n, int nskip); |
808 | 808 | ||
809 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] | 809 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] |
810 | public static extern void GeomBoxGetLengths(IntPtr geom, out Vector3 len); | 810 | internal static extern void GeomBoxGetLengths(IntPtr geom, out Vector3 len); |
811 | 811 | ||
812 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] | 812 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] |
813 | public static extern void GeomBoxGetLengths(IntPtr geom, out dReal x); | 813 | internal static extern void GeomBoxGetLengths(IntPtr geom, out dReal x); |
814 | 814 | ||
815 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxPointDepth"), SuppressUnmanagedCodeSecurity] | 815 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxPointDepth"), SuppressUnmanagedCodeSecurity] |
816 | public static extern dReal GeomBoxPointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 816 | internal static extern dReal GeomBoxPointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
817 | 817 | ||
818 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxSetLengths"), SuppressUnmanagedCodeSecurity] | 818 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxSetLengths"), SuppressUnmanagedCodeSecurity] |
819 | public static extern void GeomBoxSetLengths(IntPtr geom, dReal x, dReal y, dReal z); | 819 | internal static extern void GeomBoxSetLengths(IntPtr geom, dReal x, dReal y, dReal z); |
820 | 820 | ||
821 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleGetParams"), SuppressUnmanagedCodeSecurity] | 821 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleGetParams"), SuppressUnmanagedCodeSecurity] |
822 | public static extern void GeomCapsuleGetParams(IntPtr geom, out dReal radius, out dReal length); | 822 | internal static extern void GeomCapsuleGetParams(IntPtr geom, out dReal radius, out dReal length); |
823 | 823 | ||
824 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsulePointDepth"), SuppressUnmanagedCodeSecurity] | 824 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsulePointDepth"), SuppressUnmanagedCodeSecurity] |
825 | public static extern dReal GeomCapsulePointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 825 | internal static extern dReal GeomCapsulePointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
826 | 826 | ||
827 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleSetParams"), SuppressUnmanagedCodeSecurity] | 827 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleSetParams"), SuppressUnmanagedCodeSecurity] |
828 | public static extern void GeomCapsuleSetParams(IntPtr geom, dReal radius, dReal length); | 828 | internal static extern void GeomCapsuleSetParams(IntPtr geom, dReal radius, dReal length); |
829 | 829 | ||
830 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomClearOffset"), SuppressUnmanagedCodeSecurity] | 830 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomClearOffset"), SuppressUnmanagedCodeSecurity] |
831 | public static extern void GeomClearOffset(IntPtr geom); | 831 | internal static extern void GeomClearOffset(IntPtr geom); |
832 | 832 | ||
833 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] | 833 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] |
834 | public static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref Vector3 pos); | 834 | internal static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref Vector3 pos); |
835 | 835 | ||
836 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] | 836 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] |
837 | public static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref dReal X); | 837 | internal static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref dReal X); |
838 | 838 | ||
839 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 839 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
840 | public static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref Quaternion Q); | 840 | internal static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref Quaternion Q); |
841 | 841 | ||
842 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 842 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
843 | public static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref dReal X); | 843 | internal static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref dReal X); |
844 | 844 | ||
845 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] | 845 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] |
846 | public static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref Matrix3 R); | 846 | internal static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref Matrix3 R); |
847 | 847 | ||
848 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] | 848 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] |
849 | public static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref dReal M00); | 849 | internal static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref dReal M00); |
850 | 850 | ||
851 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] | 851 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] |
852 | public static extern void GeomCopyPosition(IntPtr geom, out Vector3 pos); | 852 | internal static extern void GeomCopyPosition(IntPtr geom, out Vector3 pos); |
853 | 853 | ||
854 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] | 854 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] |
855 | public static extern void GeomCopyPosition(IntPtr geom, out dReal X); | 855 | internal static extern void GeomCopyPosition(IntPtr geom, out dReal X); |
856 | 856 | ||
857 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] | 857 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] |
858 | public static extern void GeomCopyRotation(IntPtr geom, out Matrix3 R); | 858 | internal static extern void GeomCopyRotation(IntPtr geom, out Matrix3 R); |
859 | 859 | ||
860 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] | 860 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] |
861 | public static extern void GeomCopyRotation(IntPtr geom, out dReal M00); | 861 | internal static extern void GeomCopyRotation(IntPtr geom, out dReal M00); |
862 | 862 | ||
863 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderGetParams"), SuppressUnmanagedCodeSecurity] | 863 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderGetParams"), SuppressUnmanagedCodeSecurity] |
864 | public static extern void GeomCylinderGetParams(IntPtr geom, out dReal radius, out dReal length); | 864 | internal static extern void GeomCylinderGetParams(IntPtr geom, out dReal radius, out dReal length); |
865 | 865 | ||
866 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderSetParams"), SuppressUnmanagedCodeSecurity] | 866 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderSetParams"), SuppressUnmanagedCodeSecurity] |
867 | public static extern void GeomCylinderSetParams(IntPtr geom, dReal radius, dReal length); | 867 | internal static extern void GeomCylinderSetParams(IntPtr geom, dReal radius, dReal length); |
868 | 868 | ||
869 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDestroy"), SuppressUnmanagedCodeSecurity] | 869 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDestroy"), SuppressUnmanagedCodeSecurity] |
870 | public static extern void GeomiDestroy(IntPtr geom); | 870 | internal static extern void GeomiDestroy(IntPtr geom); |
871 | public static void GeomDestroy(IntPtr geom) | 871 | internal static void GeomDestroy(IntPtr geom) |
872 | { | 872 | { |
873 | NTotalGeoms--; | 873 | NTotalGeoms--; |
874 | GeomiDestroy(geom); | 874 | GeomiDestroy(geom); |
@@ -876,64 +876,64 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
876 | 876 | ||
877 | 877 | ||
878 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDisable"), SuppressUnmanagedCodeSecurity] | 878 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDisable"), SuppressUnmanagedCodeSecurity] |
879 | public static extern void GeomDisable(IntPtr geom); | 879 | internal static extern void GeomDisable(IntPtr geom); |
880 | 880 | ||
881 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomEnable"), SuppressUnmanagedCodeSecurity] | 881 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomEnable"), SuppressUnmanagedCodeSecurity] |
882 | public static extern void GeomEnable(IntPtr geom); | 882 | internal static extern void GeomEnable(IntPtr geom); |
883 | 883 | ||
884 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] | 884 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] |
885 | public static extern void GeomGetAABB(IntPtr geom, out AABB aabb); | 885 | internal static extern void GeomGetAABB(IntPtr geom, out AABB aabb); |
886 | 886 | ||
887 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] | 887 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] |
888 | public static extern void GeomGetAABB(IntPtr geom, out dReal minX); | 888 | internal static extern void GeomGetAABB(IntPtr geom, out dReal minX); |
889 | 889 | ||
890 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetBody"), SuppressUnmanagedCodeSecurity] | 890 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetBody"), SuppressUnmanagedCodeSecurity] |
891 | public static extern IntPtr GeomGetBody(IntPtr geom); | 891 | internal static extern IntPtr GeomGetBody(IntPtr geom); |
892 | 892 | ||
893 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCategoryBits"), SuppressUnmanagedCodeSecurity] | 893 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCategoryBits"), SuppressUnmanagedCodeSecurity] |
894 | public static extern uint GeomGetCategoryBits(IntPtr geom); | 894 | internal static extern uint GeomGetCategoryBits(IntPtr geom); |
895 | 895 | ||
896 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClassData"), SuppressUnmanagedCodeSecurity] | 896 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClassData"), SuppressUnmanagedCodeSecurity] |
897 | public static extern IntPtr GeomGetClassData(IntPtr geom); | 897 | internal static extern IntPtr GeomGetClassData(IntPtr geom); |
898 | 898 | ||
899 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCollideBits"), SuppressUnmanagedCodeSecurity] | 899 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCollideBits"), SuppressUnmanagedCodeSecurity] |
900 | public static extern uint GeomGetCollideBits(IntPtr geom); | 900 | internal static extern uint GeomGetCollideBits(IntPtr geom); |
901 | 901 | ||
902 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClass"), SuppressUnmanagedCodeSecurity] | 902 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClass"), SuppressUnmanagedCodeSecurity] |
903 | public static extern GeomClassID GeomGetClass(IntPtr geom); | 903 | internal static extern GeomClassID GeomGetClass(IntPtr geom); |
904 | 904 | ||
905 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetData"), SuppressUnmanagedCodeSecurity] | 905 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetData"), SuppressUnmanagedCodeSecurity] |
906 | public static extern IntPtr GeomGetData(IntPtr geom); | 906 | internal static extern IntPtr GeomGetData(IntPtr geom); |
907 | 907 | ||
908 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetPosition"), SuppressUnmanagedCodeSecurity] | 908 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetPosition"), SuppressUnmanagedCodeSecurity] |
909 | public extern unsafe static Vector3* GeomGetOffsetPositionUnsafe(IntPtr geom); | 909 | internal extern unsafe static Vector3* GeomGetOffsetPositionUnsafe(IntPtr geom); |
910 | public static Vector3 GeomGetOffsetPosition(IntPtr geom) | 910 | internal static Vector3 GeomGetOffsetPosition(IntPtr geom) |
911 | { | 911 | { |
912 | unsafe { return *(GeomGetOffsetPositionUnsafe(geom)); } | 912 | unsafe { return *(GeomGetOffsetPositionUnsafe(geom)); } |
913 | } | 913 | } |
914 | 914 | ||
915 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetRotation"), SuppressUnmanagedCodeSecurity] | 915 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetRotation"), SuppressUnmanagedCodeSecurity] |
916 | public extern unsafe static Matrix3* GeomGetOffsetRotationUnsafe(IntPtr geom); | 916 | internal extern unsafe static Matrix3* GeomGetOffsetRotationUnsafe(IntPtr geom); |
917 | public static Matrix3 GeomGetOffsetRotation(IntPtr geom) | 917 | internal static Matrix3 GeomGetOffsetRotation(IntPtr geom) |
918 | { | 918 | { |
919 | unsafe { return *(GeomGetOffsetRotationUnsafe(geom)); } | 919 | unsafe { return *(GeomGetOffsetRotationUnsafe(geom)); } |
920 | } | 920 | } |
921 | 921 | ||
922 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetPosition"), SuppressUnmanagedCodeSecurity] | 922 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetPosition"), SuppressUnmanagedCodeSecurity] |
923 | public extern unsafe static Vector3* GeomGetPositionUnsafe(IntPtr geom); | 923 | internal extern unsafe static Vector3* GeomGetPositionUnsafe(IntPtr geom); |
924 | public static Vector3 GeomGetPosition(IntPtr geom) | 924 | internal static Vector3 GeomGetPosition(IntPtr geom) |
925 | { | 925 | { |
926 | unsafe { return *(GeomGetPositionUnsafe(geom)); } | 926 | unsafe { return *(GeomGetPositionUnsafe(geom)); } |
927 | } | 927 | } |
928 | public static OMV.Vector3 GeomGetPositionOMV(IntPtr geom) | 928 | internal static OMV.Vector3 GeomGetPositionOMV(IntPtr geom) |
929 | { | 929 | { |
930 | Vector3 vtmp = GeomGetPosition(geom); | 930 | Vector3 vtmp = GeomGetPosition(geom); |
931 | return new OMV.Vector3(vtmp.X, vtmp.Y, vtmp.Z); | 931 | return new OMV.Vector3(vtmp.X, vtmp.Y, vtmp.Z); |
932 | } | 932 | } |
933 | 933 | ||
934 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] | 934 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] |
935 | public static extern void GeomCopyQuaternion(IntPtr geom, out Quaternion q); | 935 | internal static extern void GeomCopyQuaternion(IntPtr geom, out Quaternion q); |
936 | public static OMV.Quaternion GeomGetQuaternionOMV(IntPtr geom) | 936 | internal static OMV.Quaternion GeomGetQuaternionOMV(IntPtr geom) |
937 | { | 937 | { |
938 | Quaternion qtmp; | 938 | Quaternion qtmp; |
939 | GeomCopyQuaternion(geom, out qtmp); | 939 | GeomCopyQuaternion(geom, out qtmp); |
@@ -941,393 +941,393 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
941 | } | 941 | } |
942 | 942 | ||
943 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] | 943 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] |
944 | public static extern void GeomCopyQuaternion(IntPtr geom, out dReal X); | 944 | internal static extern void GeomCopyQuaternion(IntPtr geom, out dReal X); |
945 | 945 | ||
946 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetRotation"), SuppressUnmanagedCodeSecurity] | 946 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetRotation"), SuppressUnmanagedCodeSecurity] |
947 | public extern unsafe static Matrix3* GeomGetRotationUnsafe(IntPtr geom); | 947 | internal extern unsafe static Matrix3* GeomGetRotationUnsafe(IntPtr geom); |
948 | public static Matrix3 GeomGetRotation(IntPtr geom) | 948 | internal static Matrix3 GeomGetRotation(IntPtr geom) |
949 | { | 949 | { |
950 | unsafe { return *(GeomGetRotationUnsafe(geom)); } | 950 | unsafe { return *(GeomGetRotationUnsafe(geom)); } |
951 | } | 951 | } |
952 | 952 | ||
953 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetSpace"), SuppressUnmanagedCodeSecurity] | 953 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetSpace"), SuppressUnmanagedCodeSecurity] |
954 | public static extern IntPtr GeomGetSpace(IntPtr geom); | 954 | internal static extern IntPtr GeomGetSpace(IntPtr geom); |
955 | 955 | ||
956 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] | 956 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] |
957 | public static extern void GeomHeightfieldDataBuildByte(IntPtr d, byte[] pHeightData, int bCopyHeightData, | 957 | internal static extern void GeomHeightfieldDataBuildByte(IntPtr d, byte[] pHeightData, int bCopyHeightData, |
958 | dReal width, dReal depth, int widthSamples, int depthSamples, | 958 | dReal width, dReal depth, int widthSamples, int depthSamples, |
959 | dReal scale, dReal offset, dReal thickness, int bWrap); | 959 | dReal scale, dReal offset, dReal thickness, int bWrap); |
960 | 960 | ||
961 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] | 961 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] |
962 | public static extern void GeomHeightfieldDataBuildByte(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 962 | internal static extern void GeomHeightfieldDataBuildByte(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
963 | dReal width, dReal depth, int widthSamples, int depthSamples, | 963 | dReal width, dReal depth, int widthSamples, int depthSamples, |
964 | dReal scale, dReal offset, dReal thickness, int bWrap); | 964 | dReal scale, dReal offset, dReal thickness, int bWrap); |
965 | 965 | ||
966 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildCallback"), SuppressUnmanagedCodeSecurity] | 966 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildCallback"), SuppressUnmanagedCodeSecurity] |
967 | public static extern void GeomHeightfieldDataBuildCallback(IntPtr d, IntPtr pUserData, HeightfieldGetHeight pCallback, | 967 | internal static extern void GeomHeightfieldDataBuildCallback(IntPtr d, IntPtr pUserData, HeightfieldGetHeight pCallback, |
968 | dReal width, dReal depth, int widthSamples, int depthSamples, | 968 | dReal width, dReal depth, int widthSamples, int depthSamples, |
969 | dReal scale, dReal offset, dReal thickness, int bWrap); | 969 | dReal scale, dReal offset, dReal thickness, int bWrap); |
970 | 970 | ||
971 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] | 971 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] |
972 | public static extern void GeomHeightfieldDataBuildShort(IntPtr d, ushort[] pHeightData, int bCopyHeightData, | 972 | internal static extern void GeomHeightfieldDataBuildShort(IntPtr d, ushort[] pHeightData, int bCopyHeightData, |
973 | dReal width, dReal depth, int widthSamples, int depthSamples, | 973 | dReal width, dReal depth, int widthSamples, int depthSamples, |
974 | dReal scale, dReal offset, dReal thickness, int bWrap); | 974 | dReal scale, dReal offset, dReal thickness, int bWrap); |
975 | 975 | ||
976 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] | 976 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] |
977 | public static extern void GeomHeightfieldDataBuildShort(IntPtr d, short[] pHeightData, int bCopyHeightData, | 977 | internal static extern void GeomHeightfieldDataBuildShort(IntPtr d, short[] pHeightData, int bCopyHeightData, |
978 | dReal width, dReal depth, int widthSamples, int depthSamples, | 978 | dReal width, dReal depth, int widthSamples, int depthSamples, |
979 | dReal scale, dReal offset, dReal thickness, int bWrap); | 979 | dReal scale, dReal offset, dReal thickness, int bWrap); |
980 | 980 | ||
981 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] | 981 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] |
982 | public static extern void GeomHeightfieldDataBuildShort(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 982 | internal static extern void GeomHeightfieldDataBuildShort(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
983 | dReal width, dReal depth, int widthSamples, int depthSamples, | 983 | dReal width, dReal depth, int widthSamples, int depthSamples, |
984 | dReal scale, dReal offset, dReal thickness, int bWrap); | 984 | dReal scale, dReal offset, dReal thickness, int bWrap); |
985 | 985 | ||
986 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 986 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
987 | public static extern void GeomHeightfieldDataBuildSingle(IntPtr d, float[] pHeightData, int bCopyHeightData, | 987 | internal static extern void GeomHeightfieldDataBuildSingle(IntPtr d, float[] pHeightData, int bCopyHeightData, |
988 | dReal width, dReal depth, int widthSamples, int depthSamples, | 988 | dReal width, dReal depth, int widthSamples, int depthSamples, |
989 | dReal scale, dReal offset, dReal thickness, int bWrap); | 989 | dReal scale, dReal offset, dReal thickness, int bWrap); |
990 | 990 | ||
991 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 991 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
992 | public static extern void GeomHeightfieldDataBuildSingle(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 992 | internal static extern void GeomHeightfieldDataBuildSingle(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
993 | dReal width, dReal depth, int widthSamples, int depthSamples, | 993 | dReal width, dReal depth, int widthSamples, int depthSamples, |
994 | dReal scale, dReal offset, dReal thickness, int bWrap); | 994 | dReal scale, dReal offset, dReal thickness, int bWrap); |
995 | 995 | ||
996 | 996 | ||
997 | 997 | ||
998 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 998 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
999 | public static extern void GeomHeightfieldDataBuildDouble(IntPtr d, double[] pHeightData, int bCopyHeightData, | 999 | internal static extern void GeomHeightfieldDataBuildDouble(IntPtr d, double[] pHeightData, int bCopyHeightData, |
1000 | dReal width, dReal depth, int widthSamples, int depthSamples, | 1000 | dReal width, dReal depth, int widthSamples, int depthSamples, |
1001 | dReal scale, dReal offset, dReal thickness, int bWrap); | 1001 | dReal scale, dReal offset, dReal thickness, int bWrap); |
1002 | 1002 | ||
1003 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 1003 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
1004 | public static extern void GeomHeightfieldDataBuildDouble(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 1004 | internal static extern void GeomHeightfieldDataBuildDouble(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
1005 | dReal width, dReal depth, int widthSamples, int depthSamples, | 1005 | dReal width, dReal depth, int widthSamples, int depthSamples, |
1006 | dReal scale, dReal offset, dReal thickness, int bWrap); | 1006 | dReal scale, dReal offset, dReal thickness, int bWrap); |
1007 | 1007 | ||
1008 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataCreate"), SuppressUnmanagedCodeSecurity] | 1008 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataCreate"), SuppressUnmanagedCodeSecurity] |
1009 | public static extern IntPtr GeomHeightfieldDataCreate(); | 1009 | internal static extern IntPtr GeomHeightfieldDataCreate(); |
1010 | 1010 | ||
1011 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataDestroy"), SuppressUnmanagedCodeSecurity] | 1011 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataDestroy"), SuppressUnmanagedCodeSecurity] |
1012 | public static extern void GeomHeightfieldDataDestroy(IntPtr d); | 1012 | internal static extern void GeomHeightfieldDataDestroy(IntPtr d); |
1013 | 1013 | ||
1014 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataSetBounds"), SuppressUnmanagedCodeSecurity] | 1014 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataSetBounds"), SuppressUnmanagedCodeSecurity] |
1015 | public static extern void GeomHeightfieldDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); | 1015 | internal static extern void GeomHeightfieldDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); |
1016 | 1016 | ||
1017 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldGetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1017 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldGetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1018 | public static extern IntPtr GeomHeightfieldGetHeightfieldData(IntPtr g); | 1018 | internal static extern IntPtr GeomHeightfieldGetHeightfieldData(IntPtr g); |
1019 | 1019 | ||
1020 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldSetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1020 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldSetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1021 | public static extern void GeomHeightfieldSetHeightfieldData(IntPtr g, IntPtr d); | 1021 | internal static extern void GeomHeightfieldSetHeightfieldData(IntPtr g, IntPtr d); |
1022 | 1022 | ||
1023 | 1023 | ||
1024 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomUbitTerrainDataBuild"), SuppressUnmanagedCodeSecurity] | 1024 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomUbitTerrainDataBuild"), SuppressUnmanagedCodeSecurity] |
1025 | public static extern void GeomOSTerrainDataBuild(IntPtr d, float[] pHeightData, int bCopyHeightData, | 1025 | internal static extern void GeomOSTerrainDataBuild(IntPtr d, float[] pHeightData, int bCopyHeightData, |
1026 | dReal sampleSize, int widthSamples, int depthSamples, | 1026 | dReal sampleSize, int widthSamples, int depthSamples, |
1027 | dReal offset, dReal thickness, int bWrap); | 1027 | dReal offset, dReal thickness, int bWrap); |
1028 | 1028 | ||
1029 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataBuild"), SuppressUnmanagedCodeSecurity] | 1029 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataBuild"), SuppressUnmanagedCodeSecurity] |
1030 | public static extern void GeomOSTerrainDataBuild(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 1030 | internal static extern void GeomOSTerrainDataBuild(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
1031 | dReal sampleSize, int widthSamples, int depthSamples, | 1031 | dReal sampleSize, int widthSamples, int depthSamples, |
1032 | dReal thickness, int bWrap); | 1032 | dReal thickness, int bWrap); |
1033 | 1033 | ||
1034 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataCreate"), SuppressUnmanagedCodeSecurity] | 1034 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataCreate"), SuppressUnmanagedCodeSecurity] |
1035 | public static extern IntPtr GeomOSTerrainDataCreate(); | 1035 | internal static extern IntPtr GeomOSTerrainDataCreate(); |
1036 | 1036 | ||
1037 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataDestroy"), SuppressUnmanagedCodeSecurity] | 1037 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataDestroy"), SuppressUnmanagedCodeSecurity] |
1038 | public static extern void GeomOSTerrainDataDestroy(IntPtr d); | 1038 | internal static extern void GeomOSTerrainDataDestroy(IntPtr d); |
1039 | 1039 | ||
1040 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataSetBounds"), SuppressUnmanagedCodeSecurity] | 1040 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataSetBounds"), SuppressUnmanagedCodeSecurity] |
1041 | public static extern void GeomOSTerrainDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); | 1041 | internal static extern void GeomOSTerrainDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); |
1042 | 1042 | ||
1043 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainGetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1043 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainGetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1044 | public static extern IntPtr GeomOSTerrainGetHeightfieldData(IntPtr g); | 1044 | internal static extern IntPtr GeomOSTerrainGetHeightfieldData(IntPtr g); |
1045 | 1045 | ||
1046 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainSetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1046 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainSetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1047 | public static extern void GeomOSTerrainSetHeightfieldData(IntPtr g, IntPtr d); | 1047 | internal static extern void GeomOSTerrainSetHeightfieldData(IntPtr g, IntPtr d); |
1048 | 1048 | ||
1049 | 1049 | ||
1050 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsEnabled"), SuppressUnmanagedCodeSecurity] | 1050 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsEnabled"), SuppressUnmanagedCodeSecurity] |
1051 | public static extern bool GeomIsEnabled(IntPtr geom); | 1051 | internal static extern bool GeomIsEnabled(IntPtr geom); |
1052 | 1052 | ||
1053 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsOffset"), SuppressUnmanagedCodeSecurity] | 1053 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsOffset"), SuppressUnmanagedCodeSecurity] |
1054 | public static extern bool GeomIsOffset(IntPtr geom); | 1054 | internal static extern bool GeomIsOffset(IntPtr geom); |
1055 | 1055 | ||
1056 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsSpace"), SuppressUnmanagedCodeSecurity] | 1056 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsSpace"), SuppressUnmanagedCodeSecurity] |
1057 | public static extern bool GeomIsSpace(IntPtr geom); | 1057 | internal static extern bool GeomIsSpace(IntPtr geom); |
1058 | 1058 | ||
1059 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] | 1059 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] |
1060 | public static extern void GeomPlaneGetParams(IntPtr geom, ref Vector4 result); | 1060 | internal static extern void GeomPlaneGetParams(IntPtr geom, ref Vector4 result); |
1061 | 1061 | ||
1062 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] | 1062 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] |
1063 | public static extern void GeomPlaneGetParams(IntPtr geom, ref dReal A); | 1063 | internal static extern void GeomPlaneGetParams(IntPtr geom, ref dReal A); |
1064 | 1064 | ||
1065 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlanePointDepth"), SuppressUnmanagedCodeSecurity] | 1065 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlanePointDepth"), SuppressUnmanagedCodeSecurity] |
1066 | public static extern dReal GeomPlanePointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 1066 | internal static extern dReal GeomPlanePointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
1067 | 1067 | ||
1068 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneSetParams"), SuppressUnmanagedCodeSecurity] | 1068 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneSetParams"), SuppressUnmanagedCodeSecurity] |
1069 | public static extern void GeomPlaneSetParams(IntPtr plane, dReal a, dReal b, dReal c, dReal d); | 1069 | internal static extern void GeomPlaneSetParams(IntPtr plane, dReal a, dReal b, dReal c, dReal d); |
1070 | 1070 | ||
1071 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] | 1071 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] |
1072 | public static extern void GeomRayGet(IntPtr ray, ref Vector3 start, ref Vector3 dir); | 1072 | internal static extern void GeomRayGet(IntPtr ray, ref Vector3 start, ref Vector3 dir); |
1073 | 1073 | ||
1074 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] | 1074 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] |
1075 | public static extern void GeomRayGet(IntPtr ray, ref dReal startX, ref dReal dirX); | 1075 | internal static extern void GeomRayGet(IntPtr ray, ref dReal startX, ref dReal dirX); |
1076 | 1076 | ||
1077 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetClosestHit"), SuppressUnmanagedCodeSecurity] | 1077 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetClosestHit"), SuppressUnmanagedCodeSecurity] |
1078 | public static extern int GeomRayGetClosestHit(IntPtr ray); | 1078 | internal static extern int GeomRayGetClosestHit(IntPtr ray); |
1079 | 1079 | ||
1080 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetLength"), SuppressUnmanagedCodeSecurity] | 1080 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetLength"), SuppressUnmanagedCodeSecurity] |
1081 | public static extern dReal GeomRayGetLength(IntPtr ray); | 1081 | internal static extern dReal GeomRayGetLength(IntPtr ray); |
1082 | 1082 | ||
1083 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetParams"), SuppressUnmanagedCodeSecurity] | 1083 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetParams"), SuppressUnmanagedCodeSecurity] |
1084 | public static extern dReal GeomRayGetParams(IntPtr g, out int firstContact, out int backfaceCull); | 1084 | internal static extern dReal GeomRayGetParams(IntPtr g, out int firstContact, out int backfaceCull); |
1085 | 1085 | ||
1086 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySet"), SuppressUnmanagedCodeSecurity] | 1086 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySet"), SuppressUnmanagedCodeSecurity] |
1087 | public static extern void GeomRaySet(IntPtr ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz); | 1087 | internal static extern void GeomRaySet(IntPtr ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz); |
1088 | 1088 | ||
1089 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetClosestHit"), SuppressUnmanagedCodeSecurity] | 1089 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetClosestHit"), SuppressUnmanagedCodeSecurity] |
1090 | public static extern void GeomRaySetClosestHit(IntPtr ray, int closestHit); | 1090 | internal static extern void GeomRaySetClosestHit(IntPtr ray, int closestHit); |
1091 | 1091 | ||
1092 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetLength"), SuppressUnmanagedCodeSecurity] | 1092 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetLength"), SuppressUnmanagedCodeSecurity] |
1093 | public static extern void GeomRaySetLength(IntPtr ray, dReal length); | 1093 | internal static extern void GeomRaySetLength(IntPtr ray, dReal length); |
1094 | 1094 | ||
1095 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetParams"), SuppressUnmanagedCodeSecurity] | 1095 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetParams"), SuppressUnmanagedCodeSecurity] |
1096 | public static extern void GeomRaySetParams(IntPtr ray, int firstContact, int backfaceCull); | 1096 | internal static extern void GeomRaySetParams(IntPtr ray, int firstContact, int backfaceCull); |
1097 | 1097 | ||
1098 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetBody"), SuppressUnmanagedCodeSecurity] | 1098 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetBody"), SuppressUnmanagedCodeSecurity] |
1099 | public static extern void GeomSetBody(IntPtr geom, IntPtr body); | 1099 | internal static extern void GeomSetBody(IntPtr geom, IntPtr body); |
1100 | 1100 | ||
1101 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCategoryBits"), SuppressUnmanagedCodeSecurity] | 1101 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCategoryBits"), SuppressUnmanagedCodeSecurity] |
1102 | public static extern void GeomSetCategoryBits(IntPtr geom, uint bits); | 1102 | internal static extern void GeomSetCategoryBits(IntPtr geom, uint bits); |
1103 | 1103 | ||
1104 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCollideBits"), SuppressUnmanagedCodeSecurity] | 1104 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCollideBits"), SuppressUnmanagedCodeSecurity] |
1105 | public static extern void GeomSetCollideBits(IntPtr geom, uint bits); | 1105 | internal static extern void GeomSetCollideBits(IntPtr geom, uint bits); |
1106 | 1106 | ||
1107 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetConvex"), SuppressUnmanagedCodeSecurity] | 1107 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetConvex"), SuppressUnmanagedCodeSecurity] |
1108 | public static extern IntPtr GeomSetConvex(IntPtr geom, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); | 1108 | internal static extern IntPtr GeomSetConvex(IntPtr geom, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); |
1109 | 1109 | ||
1110 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetData"), SuppressUnmanagedCodeSecurity] | 1110 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetData"), SuppressUnmanagedCodeSecurity] |
1111 | public static extern void GeomSetData(IntPtr geom, IntPtr data); | 1111 | internal static extern void GeomSetData(IntPtr geom, IntPtr data); |
1112 | 1112 | ||
1113 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetPosition"), SuppressUnmanagedCodeSecurity] | 1113 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetPosition"), SuppressUnmanagedCodeSecurity] |
1114 | public static extern void GeomSetOffsetPosition(IntPtr geom, dReal x, dReal y, dReal z); | 1114 | internal static extern void GeomSetOffsetPosition(IntPtr geom, dReal x, dReal y, dReal z); |
1115 | 1115 | ||
1116 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 1116 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
1117 | public static extern void GeomSetOffsetQuaternion(IntPtr geom, ref Quaternion Q); | 1117 | internal static extern void GeomSetOffsetQuaternion(IntPtr geom, ref Quaternion Q); |
1118 | 1118 | ||
1119 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 1119 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
1120 | public static extern void GeomSetOffsetQuaternion(IntPtr geom, ref dReal X); | 1120 | internal static extern void GeomSetOffsetQuaternion(IntPtr geom, ref dReal X); |
1121 | 1121 | ||
1122 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] | 1122 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] |
1123 | public static extern void GeomSetOffsetRotation(IntPtr geom, ref Matrix3 R); | 1123 | internal static extern void GeomSetOffsetRotation(IntPtr geom, ref Matrix3 R); |
1124 | 1124 | ||
1125 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] | 1125 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] |
1126 | public static extern void GeomSetOffsetRotation(IntPtr geom, ref dReal M00); | 1126 | internal static extern void GeomSetOffsetRotation(IntPtr geom, ref dReal M00); |
1127 | 1127 | ||
1128 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldPosition"), SuppressUnmanagedCodeSecurity] | 1128 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldPosition"), SuppressUnmanagedCodeSecurity] |
1129 | public static extern void GeomSetOffsetWorldPosition(IntPtr geom, dReal x, dReal y, dReal z); | 1129 | internal static extern void GeomSetOffsetWorldPosition(IntPtr geom, dReal x, dReal y, dReal z); |
1130 | 1130 | ||
1131 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] | 1131 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] |
1132 | public static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref Quaternion Q); | 1132 | internal static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref Quaternion Q); |
1133 | 1133 | ||
1134 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] | 1134 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] |
1135 | public static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref dReal X); | 1135 | internal static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref dReal X); |
1136 | 1136 | ||
1137 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] | 1137 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] |
1138 | public static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref Matrix3 R); | 1138 | internal static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref Matrix3 R); |
1139 | 1139 | ||
1140 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] | 1140 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] |
1141 | public static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref dReal M00); | 1141 | internal static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref dReal M00); |
1142 | 1142 | ||
1143 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetPosition"), SuppressUnmanagedCodeSecurity] | 1143 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetPosition"), SuppressUnmanagedCodeSecurity] |
1144 | public static extern void GeomSetPosition(IntPtr geom, dReal x, dReal y, dReal z); | 1144 | internal static extern void GeomSetPosition(IntPtr geom, dReal x, dReal y, dReal z); |
1145 | 1145 | ||
1146 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] | 1146 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] |
1147 | public static extern void GeomSetQuaternion(IntPtr geom, ref Quaternion quat); | 1147 | internal static extern void GeomSetQuaternion(IntPtr geom, ref Quaternion quat); |
1148 | 1148 | ||
1149 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] | 1149 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] |
1150 | public static extern void GeomSetQuaternion(IntPtr geom, ref dReal w); | 1150 | internal static extern void GeomSetQuaternion(IntPtr geom, ref dReal w); |
1151 | 1151 | ||
1152 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] | 1152 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] |
1153 | public static extern void GeomSetRotation(IntPtr geom, ref Matrix3 R); | 1153 | internal static extern void GeomSetRotation(IntPtr geom, ref Matrix3 R); |
1154 | 1154 | ||
1155 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] | 1155 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] |
1156 | public static extern void GeomSetRotation(IntPtr geom, ref dReal M00); | 1156 | internal static extern void GeomSetRotation(IntPtr geom, ref dReal M00); |
1157 | 1157 | ||
1158 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereGetRadius"), SuppressUnmanagedCodeSecurity] | 1158 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereGetRadius"), SuppressUnmanagedCodeSecurity] |
1159 | public static extern dReal GeomSphereGetRadius(IntPtr geom); | 1159 | internal static extern dReal GeomSphereGetRadius(IntPtr geom); |
1160 | 1160 | ||
1161 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSpherePointDepth"), SuppressUnmanagedCodeSecurity] | 1161 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSpherePointDepth"), SuppressUnmanagedCodeSecurity] |
1162 | public static extern dReal GeomSpherePointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 1162 | internal static extern dReal GeomSpherePointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
1163 | 1163 | ||
1164 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereSetRadius"), SuppressUnmanagedCodeSecurity] | 1164 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereSetRadius"), SuppressUnmanagedCodeSecurity] |
1165 | public static extern void GeomSphereSetRadius(IntPtr geom, dReal radius); | 1165 | internal static extern void GeomSphereSetRadius(IntPtr geom, dReal radius); |
1166 | 1166 | ||
1167 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetCleanup"), SuppressUnmanagedCodeSecurity] | 1167 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetCleanup"), SuppressUnmanagedCodeSecurity] |
1168 | public static extern int GeomTransformGetCleanup(IntPtr geom); | 1168 | internal static extern int GeomTransformGetCleanup(IntPtr geom); |
1169 | 1169 | ||
1170 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetGeom"), SuppressUnmanagedCodeSecurity] | 1170 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetGeom"), SuppressUnmanagedCodeSecurity] |
1171 | public static extern IntPtr GeomTransformGetGeom(IntPtr geom); | 1171 | internal static extern IntPtr GeomTransformGetGeom(IntPtr geom); |
1172 | 1172 | ||
1173 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetInfo"), SuppressUnmanagedCodeSecurity] | 1173 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetInfo"), SuppressUnmanagedCodeSecurity] |
1174 | public static extern int GeomTransformGetInfo(IntPtr geom); | 1174 | internal static extern int GeomTransformGetInfo(IntPtr geom); |
1175 | 1175 | ||
1176 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetCleanup"), SuppressUnmanagedCodeSecurity] | 1176 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetCleanup"), SuppressUnmanagedCodeSecurity] |
1177 | public static extern void GeomTransformSetCleanup(IntPtr geom, int mode); | 1177 | internal static extern void GeomTransformSetCleanup(IntPtr geom, int mode); |
1178 | 1178 | ||
1179 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetGeom"), SuppressUnmanagedCodeSecurity] | 1179 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetGeom"), SuppressUnmanagedCodeSecurity] |
1180 | public static extern void GeomTransformSetGeom(IntPtr geom, IntPtr obj); | 1180 | internal static extern void GeomTransformSetGeom(IntPtr geom, IntPtr obj); |
1181 | 1181 | ||
1182 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetInfo"), SuppressUnmanagedCodeSecurity] | 1182 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetInfo"), SuppressUnmanagedCodeSecurity] |
1183 | public static extern void GeomTransformSetInfo(IntPtr geom, int info); | 1183 | internal static extern void GeomTransformSetInfo(IntPtr geom, int info); |
1184 | 1184 | ||
1185 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 1185 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
1186 | public static extern void GeomTriMeshDataBuildDouble(IntPtr d, | 1186 | internal static extern void GeomTriMeshDataBuildDouble(IntPtr d, |
1187 | double[] vertices, int vertexStride, int vertexCount, | 1187 | double[] vertices, int vertexStride, int vertexCount, |
1188 | int[] indices, int indexCount, int triStride); | 1188 | int[] indices, int indexCount, int triStride); |
1189 | 1189 | ||
1190 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 1190 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
1191 | public static extern void GeomTriMeshDataBuildDouble(IntPtr d, | 1191 | internal static extern void GeomTriMeshDataBuildDouble(IntPtr d, |
1192 | IntPtr vertices, int vertexStride, int vertexCount, | 1192 | IntPtr vertices, int vertexStride, int vertexCount, |
1193 | IntPtr indices, int indexCount, int triStride); | 1193 | IntPtr indices, int indexCount, int triStride); |
1194 | 1194 | ||
1195 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] | 1195 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] |
1196 | public static extern void GeomTriMeshDataBuildDouble1(IntPtr d, | 1196 | internal static extern void GeomTriMeshDataBuildDouble1(IntPtr d, |
1197 | double[] vertices, int vertexStride, int vertexCount, | 1197 | double[] vertices, int vertexStride, int vertexCount, |
1198 | int[] indices, int indexCount, int triStride, | 1198 | int[] indices, int indexCount, int triStride, |
1199 | double[] normals); | 1199 | double[] normals); |
1200 | 1200 | ||
1201 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] | 1201 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] |
1202 | public static extern void GeomTriMeshDataBuildDouble(IntPtr d, | 1202 | internal static extern void GeomTriMeshDataBuildDouble(IntPtr d, |
1203 | IntPtr vertices, int vertexStride, int vertexCount, | 1203 | IntPtr vertices, int vertexStride, int vertexCount, |
1204 | IntPtr indices, int indexCount, int triStride, | 1204 | IntPtr indices, int indexCount, int triStride, |
1205 | IntPtr normals); | 1205 | IntPtr normals); |
1206 | 1206 | ||
1207 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] | 1207 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] |
1208 | public static extern void GeomTriMeshDataBuildSingle(IntPtr d, | 1208 | internal static extern void GeomTriMeshDataBuildSingle(IntPtr d, |
1209 | dReal[] vertices, int vertexStride, int vertexCount, | 1209 | dReal[] vertices, int vertexStride, int vertexCount, |
1210 | int[] indices, int indexCount, int triStride); | 1210 | int[] indices, int indexCount, int triStride); |
1211 | 1211 | ||
1212 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] | 1212 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] |
1213 | public static extern void GeomTriMeshDataBuildSingle(IntPtr d, | 1213 | internal static extern void GeomTriMeshDataBuildSingle(IntPtr d, |
1214 | IntPtr vertices, int vertexStride, int vertexCount, | 1214 | IntPtr vertices, int vertexStride, int vertexCount, |
1215 | IntPtr indices, int indexCount, int triStride); | 1215 | IntPtr indices, int indexCount, int triStride); |
1216 | 1216 | ||
1217 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] | 1217 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] |
1218 | public static extern void GeomTriMeshDataBuildSingle1(IntPtr d, | 1218 | internal static extern void GeomTriMeshDataBuildSingle1(IntPtr d, |
1219 | dReal[] vertices, int vertexStride, int vertexCount, | 1219 | dReal[] vertices, int vertexStride, int vertexCount, |
1220 | int[] indices, int indexCount, int triStride, | 1220 | int[] indices, int indexCount, int triStride, |
1221 | dReal[] normals); | 1221 | dReal[] normals); |
1222 | 1222 | ||
1223 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] | 1223 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] |
1224 | public static extern void GeomTriMeshDataBuildSingle1(IntPtr d, | 1224 | internal static extern void GeomTriMeshDataBuildSingle1(IntPtr d, |
1225 | IntPtr vertices, int vertexStride, int vertexCount, | 1225 | IntPtr vertices, int vertexStride, int vertexCount, |
1226 | IntPtr indices, int indexCount, int triStride, | 1226 | IntPtr indices, int indexCount, int triStride, |
1227 | IntPtr normals); | 1227 | IntPtr normals); |
1228 | 1228 | ||
1229 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 1229 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
1230 | public static extern void GeomTriMeshDataBuildSimple(IntPtr d, | 1230 | internal static extern void GeomTriMeshDataBuildSimple(IntPtr d, |
1231 | float[] vertices, int vertexStride, int vertexCount, | 1231 | float[] vertices, int vertexStride, int vertexCount, |
1232 | int[] indices, int indexCount, int triStride); | 1232 | int[] indices, int indexCount, int triStride); |
1233 | 1233 | ||
1234 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 1234 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
1235 | public static extern void GeomTriMeshDataBuildSimple(IntPtr d, | 1235 | internal static extern void GeomTriMeshDataBuildSimple(IntPtr d, |
1236 | IntPtr vertices, int vertexStride, int vertexCount, | 1236 | IntPtr vertices, int vertexStride, int vertexCount, |
1237 | IntPtr indices, int indexCount, int triStride); | 1237 | IntPtr indices, int indexCount, int triStride); |
1238 | 1238 | ||
1239 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] | 1239 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] |
1240 | public static extern void GeomTriMeshDataBuildSimple1(IntPtr d, | 1240 | internal static extern void GeomTriMeshDataBuildSimple1(IntPtr d, |
1241 | float[] vertices, int vertexStride, int vertexCount, | 1241 | float[] vertices, int vertexStride, int vertexCount, |
1242 | int[] indices, int indexCount, int triStride, | 1242 | int[] indices, int indexCount, int triStride, |
1243 | float[] normals); | 1243 | float[] normals); |
1244 | 1244 | ||
1245 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] | 1245 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] |
1246 | public static extern void GeomTriMeshDataBuildSimple1(IntPtr d, | 1246 | internal static extern void GeomTriMeshDataBuildSimple1(IntPtr d, |
1247 | IntPtr vertices, int vertexStride, int vertexCount, | 1247 | IntPtr vertices, int vertexStride, int vertexCount, |
1248 | IntPtr indices, int indexCount, int triStride, | 1248 | IntPtr indices, int indexCount, int triStride, |
1249 | IntPtr normals); | 1249 | IntPtr normals); |
1250 | 1250 | ||
1251 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshClearTCCache"), SuppressUnmanagedCodeSecurity] | 1251 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshClearTCCache"), SuppressUnmanagedCodeSecurity] |
1252 | public static extern void GeomTriMeshClearTCCache(IntPtr g); | 1252 | internal static extern void GeomTriMeshClearTCCache(IntPtr g); |
1253 | 1253 | ||
1254 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataCreate"), SuppressUnmanagedCodeSecurity] | 1254 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataCreate"), SuppressUnmanagedCodeSecurity] |
1255 | public static extern IntPtr GeomTriMeshDataCreate(); | 1255 | internal static extern IntPtr GeomTriMeshDataCreate(); |
1256 | 1256 | ||
1257 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataDestroy"), SuppressUnmanagedCodeSecurity] | 1257 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataDestroy"), SuppressUnmanagedCodeSecurity] |
1258 | public static extern void GeomTriMeshDataDestroy(IntPtr d); | 1258 | internal static extern void GeomTriMeshDataDestroy(IntPtr d); |
1259 | 1259 | ||
1260 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataGet"), SuppressUnmanagedCodeSecurity] | 1260 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataGet"), SuppressUnmanagedCodeSecurity] |
1261 | public static extern IntPtr GeomTriMeshDataGet(IntPtr d, int data_id); | 1261 | internal static extern IntPtr GeomTriMeshDataGet(IntPtr d, int data_id); |
1262 | 1262 | ||
1263 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataPreprocess"), SuppressUnmanagedCodeSecurity] | 1263 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataPreprocess"), SuppressUnmanagedCodeSecurity] |
1264 | public static extern void GeomTriMeshDataPreprocess(IntPtr d); | 1264 | internal static extern void GeomTriMeshDataPreprocess(IntPtr d); |
1265 | 1265 | ||
1266 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataSet"), SuppressUnmanagedCodeSecurity] | 1266 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataSet"), SuppressUnmanagedCodeSecurity] |
1267 | public static extern void GeomTriMeshDataSet(IntPtr d, int data_id, IntPtr in_data); | 1267 | internal static extern void GeomTriMeshDataSet(IntPtr d, int data_id, IntPtr in_data); |
1268 | 1268 | ||
1269 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataUpdate"), SuppressUnmanagedCodeSecurity] | 1269 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataUpdate"), SuppressUnmanagedCodeSecurity] |
1270 | public static extern void GeomTriMeshDataUpdate(IntPtr d); | 1270 | internal static extern void GeomTriMeshDataUpdate(IntPtr d); |
1271 | 1271 | ||
1272 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshEnableTC"), SuppressUnmanagedCodeSecurity] | 1272 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshEnableTC"), SuppressUnmanagedCodeSecurity] |
1273 | public static extern void GeomTriMeshEnableTC(IntPtr g, int geomClass, bool enable); | 1273 | internal static extern void GeomTriMeshEnableTC(IntPtr g, int geomClass, bool enable); |
1274 | 1274 | ||
1275 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetArrayCallback"), SuppressUnmanagedCodeSecurity] | 1275 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetArrayCallback"), SuppressUnmanagedCodeSecurity] |
1276 | public static extern TriArrayCallback GeomTriMeshGetArrayCallback(IntPtr g); | 1276 | internal static extern TriArrayCallback GeomTriMeshGetArrayCallback(IntPtr g); |
1277 | 1277 | ||
1278 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetCallback"), SuppressUnmanagedCodeSecurity] | 1278 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetCallback"), SuppressUnmanagedCodeSecurity] |
1279 | public static extern TriCallback GeomTriMeshGetCallback(IntPtr g); | 1279 | internal static extern TriCallback GeomTriMeshGetCallback(IntPtr g); |
1280 | 1280 | ||
1281 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetData"), SuppressUnmanagedCodeSecurity] | 1281 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetData"), SuppressUnmanagedCodeSecurity] |
1282 | public static extern IntPtr GeomTriMeshGetData(IntPtr g); | 1282 | internal static extern IntPtr GeomTriMeshGetData(IntPtr g); |
1283 | 1283 | ||
1284 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetLastTransform"), SuppressUnmanagedCodeSecurity] | 1284 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetLastTransform"), SuppressUnmanagedCodeSecurity] |
1285 | public extern unsafe static Matrix4* GeomTriMeshGetLastTransformUnsafe(IntPtr geom); | 1285 | internal extern unsafe static Matrix4* GeomTriMeshGetLastTransformUnsafe(IntPtr geom); |
1286 | public static Matrix4 GeomTriMeshGetLastTransform(IntPtr geom) | 1286 | internal static Matrix4 GeomTriMeshGetLastTransform(IntPtr geom) |
1287 | { | 1287 | { |
1288 | unsafe { return *(GeomTriMeshGetLastTransformUnsafe(geom)); } | 1288 | unsafe { return *(GeomTriMeshGetLastTransformUnsafe(geom)); } |
1289 | } | 1289 | } |
1290 | 1290 | ||
1291 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetPoint"), SuppressUnmanagedCodeSecurity] | 1291 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetPoint"), SuppressUnmanagedCodeSecurity] |
1292 | public extern static void GeomTriMeshGetPoint(IntPtr g, int index, dReal u, dReal v, ref Vector3 outVec); | 1292 | internal extern static void GeomTriMeshGetPoint(IntPtr g, int index, dReal u, dReal v, ref Vector3 outVec); |
1293 | 1293 | ||
1294 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetRayCallback"), SuppressUnmanagedCodeSecurity] | 1294 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetRayCallback"), SuppressUnmanagedCodeSecurity] |
1295 | public static extern TriRayCallback GeomTriMeshGetRayCallback(IntPtr g); | 1295 | internal static extern TriRayCallback GeomTriMeshGetRayCallback(IntPtr g); |
1296 | 1296 | ||
1297 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangle"), SuppressUnmanagedCodeSecurity] | 1297 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangle"), SuppressUnmanagedCodeSecurity] |
1298 | public extern static void GeomTriMeshGetTriangle(IntPtr g, int index, ref Vector3 v0, ref Vector3 v1, ref Vector3 v2); | 1298 | internal extern static void GeomTriMeshGetTriangle(IntPtr g, int index, ref Vector3 v0, ref Vector3 v1, ref Vector3 v2); |
1299 | 1299 | ||
1300 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangleCount"), SuppressUnmanagedCodeSecurity] | 1300 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangleCount"), SuppressUnmanagedCodeSecurity] |
1301 | public extern static int GeomTriMeshGetTriangleCount(IntPtr g); | 1301 | internal extern static int GeomTriMeshGetTriangleCount(IntPtr g); |
1302 | 1302 | ||
1303 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriMeshDataID"), SuppressUnmanagedCodeSecurity] | 1303 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriMeshDataID"), SuppressUnmanagedCodeSecurity] |
1304 | public static extern IntPtr GeomTriMeshGetTriMeshDataID(IntPtr g); | 1304 | internal static extern IntPtr GeomTriMeshGetTriMeshDataID(IntPtr g); |
1305 | 1305 | ||
1306 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshIsTCEnabled"), SuppressUnmanagedCodeSecurity] | 1306 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshIsTCEnabled"), SuppressUnmanagedCodeSecurity] |
1307 | public static extern bool GeomTriMeshIsTCEnabled(IntPtr g, int geomClass); | 1307 | internal static extern bool GeomTriMeshIsTCEnabled(IntPtr g, int geomClass); |
1308 | 1308 | ||
1309 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetArrayCallback"), SuppressUnmanagedCodeSecurity] | 1309 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetArrayCallback"), SuppressUnmanagedCodeSecurity] |
1310 | public static extern void GeomTriMeshSetArrayCallback(IntPtr g, TriArrayCallback arrayCallback); | 1310 | internal static extern void GeomTriMeshSetArrayCallback(IntPtr g, TriArrayCallback arrayCallback); |
1311 | 1311 | ||
1312 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetCallback"), SuppressUnmanagedCodeSecurity] | 1312 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetCallback"), SuppressUnmanagedCodeSecurity] |
1313 | public static extern void GeomTriMeshSetCallback(IntPtr g, TriCallback callback); | 1313 | internal static extern void GeomTriMeshSetCallback(IntPtr g, TriCallback callback); |
1314 | 1314 | ||
1315 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetData"), SuppressUnmanagedCodeSecurity] | 1315 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetData"), SuppressUnmanagedCodeSecurity] |
1316 | public static extern void GeomTriMeshSetData(IntPtr g, IntPtr data); | 1316 | internal static extern void GeomTriMeshSetData(IntPtr g, IntPtr data); |
1317 | 1317 | ||
1318 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] | 1318 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] |
1319 | public static extern void GeomTriMeshSetLastTransform(IntPtr g, ref Matrix4 last_trans); | 1319 | internal static extern void GeomTriMeshSetLastTransform(IntPtr g, ref Matrix4 last_trans); |
1320 | 1320 | ||
1321 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] | 1321 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] |
1322 | public static extern void GeomTriMeshSetLastTransform(IntPtr g, ref dReal M00); | 1322 | internal static extern void GeomTriMeshSetLastTransform(IntPtr g, ref dReal M00); |
1323 | 1323 | ||
1324 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetRayCallback"), SuppressUnmanagedCodeSecurity] | 1324 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetRayCallback"), SuppressUnmanagedCodeSecurity] |
1325 | public static extern void GeomTriMeshSetRayCallback(IntPtr g, TriRayCallback callback); | 1325 | internal static extern void GeomTriMeshSetRayCallback(IntPtr g, TriRayCallback callback); |
1326 | 1326 | ||
1327 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGetConfiguration"), SuppressUnmanagedCodeSecurity] | 1327 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGetConfiguration"), SuppressUnmanagedCodeSecurity] |
1328 | public static extern IntPtr iGetConfiguration(); | 1328 | internal static extern IntPtr iGetConfiguration(); |
1329 | 1329 | ||
1330 | public static string GetConfiguration() | 1330 | internal static string GetConfiguration() |
1331 | { | 1331 | { |
1332 | IntPtr ptr = iGetConfiguration(); | 1332 | IntPtr ptr = iGetConfiguration(); |
1333 | string s = Marshal.PtrToStringAnsi(ptr); | 1333 | string s = Marshal.PtrToStringAnsi(ptr); |
@@ -1335,691 +1335,691 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1335 | } | 1335 | } |
1336 | 1336 | ||
1337 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1337 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1338 | public static extern IntPtr HashSpaceCreate(IntPtr space); | 1338 | internal static extern IntPtr HashSpaceCreate(IntPtr space); |
1339 | 1339 | ||
1340 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceGetLevels"), SuppressUnmanagedCodeSecurity] | 1340 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceGetLevels"), SuppressUnmanagedCodeSecurity] |
1341 | public static extern void HashSpaceGetLevels(IntPtr space, out int minlevel, out int maxlevel); | 1341 | internal static extern void HashSpaceGetLevels(IntPtr space, out int minlevel, out int maxlevel); |
1342 | 1342 | ||
1343 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceSetLevels"), SuppressUnmanagedCodeSecurity] | 1343 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceSetLevels"), SuppressUnmanagedCodeSecurity] |
1344 | public static extern void HashSpaceSetLevels(IntPtr space, int minlevel, int maxlevel); | 1344 | internal static extern void HashSpaceSetLevels(IntPtr space, int minlevel, int maxlevel); |
1345 | 1345 | ||
1346 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInfiniteAABB"), SuppressUnmanagedCodeSecurity] | 1346 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInfiniteAABB"), SuppressUnmanagedCodeSecurity] |
1347 | public static extern void InfiniteAABB(IntPtr geom, out AABB aabb); | 1347 | internal static extern void InfiniteAABB(IntPtr geom, out AABB aabb); |
1348 | 1348 | ||
1349 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE"), SuppressUnmanagedCodeSecurity] | 1349 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE"), SuppressUnmanagedCodeSecurity] |
1350 | public static extern void InitODE(); | 1350 | internal static extern void InitODE(); |
1351 | 1351 | ||
1352 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE2"), SuppressUnmanagedCodeSecurity] | 1352 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE2"), SuppressUnmanagedCodeSecurity] |
1353 | public static extern int InitODE2(uint ODEInitFlags); | 1353 | internal static extern int InitODE2(uint ODEInitFlags); |
1354 | 1354 | ||
1355 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dIsPositiveDefinite"), SuppressUnmanagedCodeSecurity] | 1355 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dIsPositiveDefinite"), SuppressUnmanagedCodeSecurity] |
1356 | public static extern int IsPositiveDefinite(ref dReal A, int n); | 1356 | internal static extern int IsPositiveDefinite(ref dReal A, int n); |
1357 | 1357 | ||
1358 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInvertPDMatrix"), SuppressUnmanagedCodeSecurity] | 1358 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInvertPDMatrix"), SuppressUnmanagedCodeSecurity] |
1359 | public static extern int InvertPDMatrix(ref dReal A, out dReal Ainv, int n); | 1359 | internal static extern int InvertPDMatrix(ref dReal A, out dReal Ainv, int n); |
1360 | 1360 | ||
1361 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddAMotorTorques"), SuppressUnmanagedCodeSecurity] | 1361 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddAMotorTorques"), SuppressUnmanagedCodeSecurity] |
1362 | public static extern void JointAddAMotorTorques(IntPtr joint, dReal torque1, dReal torque2, dReal torque3); | 1362 | internal static extern void JointAddAMotorTorques(IntPtr joint, dReal torque1, dReal torque2, dReal torque3); |
1363 | 1363 | ||
1364 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHingeTorque"), SuppressUnmanagedCodeSecurity] | 1364 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHingeTorque"), SuppressUnmanagedCodeSecurity] |
1365 | public static extern void JointAddHingeTorque(IntPtr joint, dReal torque); | 1365 | internal static extern void JointAddHingeTorque(IntPtr joint, dReal torque); |
1366 | 1366 | ||
1367 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHinge2Torque"), SuppressUnmanagedCodeSecurity] | 1367 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHinge2Torque"), SuppressUnmanagedCodeSecurity] |
1368 | public static extern void JointAddHinge2Torques(IntPtr joint, dReal torque1, dReal torque2); | 1368 | internal static extern void JointAddHinge2Torques(IntPtr joint, dReal torque1, dReal torque2); |
1369 | 1369 | ||
1370 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddPRTorque"), SuppressUnmanagedCodeSecurity] | 1370 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddPRTorque"), SuppressUnmanagedCodeSecurity] |
1371 | public static extern void JointAddPRTorque(IntPtr joint, dReal torque); | 1371 | internal static extern void JointAddPRTorque(IntPtr joint, dReal torque); |
1372 | 1372 | ||
1373 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddUniversalTorque"), SuppressUnmanagedCodeSecurity] | 1373 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddUniversalTorque"), SuppressUnmanagedCodeSecurity] |
1374 | public static extern void JointAddUniversalTorques(IntPtr joint, dReal torque1, dReal torque2); | 1374 | internal static extern void JointAddUniversalTorques(IntPtr joint, dReal torque1, dReal torque2); |
1375 | 1375 | ||
1376 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddSliderForce"), SuppressUnmanagedCodeSecurity] | 1376 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddSliderForce"), SuppressUnmanagedCodeSecurity] |
1377 | public static extern void JointAddSliderForce(IntPtr joint, dReal force); | 1377 | internal static extern void JointAddSliderForce(IntPtr joint, dReal force); |
1378 | 1378 | ||
1379 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAttach"), SuppressUnmanagedCodeSecurity] | 1379 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAttach"), SuppressUnmanagedCodeSecurity] |
1380 | public static extern void JointAttach(IntPtr joint, IntPtr body1, IntPtr body2); | 1380 | internal static extern void JointAttach(IntPtr joint, IntPtr body1, IntPtr body2); |
1381 | 1381 | ||
1382 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateAMotor"), SuppressUnmanagedCodeSecurity] | 1382 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateAMotor"), SuppressUnmanagedCodeSecurity] |
1383 | public static extern IntPtr JointCreateAMotor(IntPtr world, IntPtr group); | 1383 | internal static extern IntPtr JointCreateAMotor(IntPtr world, IntPtr group); |
1384 | 1384 | ||
1385 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateBall"), SuppressUnmanagedCodeSecurity] | 1385 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateBall"), SuppressUnmanagedCodeSecurity] |
1386 | public static extern IntPtr JointCreateBall(IntPtr world, IntPtr group); | 1386 | internal static extern IntPtr JointCreateBall(IntPtr world, IntPtr group); |
1387 | 1387 | ||
1388 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] | 1388 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] |
1389 | public static extern IntPtr JointCreateContact(IntPtr world, IntPtr group, ref Contact contact); | 1389 | internal static extern IntPtr JointCreateContact(IntPtr world, IntPtr group, ref Contact contact); |
1390 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] | 1390 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] |
1391 | public static extern IntPtr JointCreateContactPtr(IntPtr world, IntPtr group, IntPtr contact); | 1391 | internal static extern IntPtr JointCreateContactPtr(IntPtr world, IntPtr group, IntPtr contact); |
1392 | 1392 | ||
1393 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateFixed"), SuppressUnmanagedCodeSecurity] | 1393 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateFixed"), SuppressUnmanagedCodeSecurity] |
1394 | public static extern IntPtr JointCreateFixed(IntPtr world, IntPtr group); | 1394 | internal static extern IntPtr JointCreateFixed(IntPtr world, IntPtr group); |
1395 | 1395 | ||
1396 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge"), SuppressUnmanagedCodeSecurity] | 1396 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge"), SuppressUnmanagedCodeSecurity] |
1397 | public static extern IntPtr JointCreateHinge(IntPtr world, IntPtr group); | 1397 | internal static extern IntPtr JointCreateHinge(IntPtr world, IntPtr group); |
1398 | 1398 | ||
1399 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge2"), SuppressUnmanagedCodeSecurity] | 1399 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge2"), SuppressUnmanagedCodeSecurity] |
1400 | public static extern IntPtr JointCreateHinge2(IntPtr world, IntPtr group); | 1400 | internal static extern IntPtr JointCreateHinge2(IntPtr world, IntPtr group); |
1401 | 1401 | ||
1402 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateLMotor"), SuppressUnmanagedCodeSecurity] | 1402 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateLMotor"), SuppressUnmanagedCodeSecurity] |
1403 | public static extern IntPtr JointCreateLMotor(IntPtr world, IntPtr group); | 1403 | internal static extern IntPtr JointCreateLMotor(IntPtr world, IntPtr group); |
1404 | 1404 | ||
1405 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateNull"), SuppressUnmanagedCodeSecurity] | 1405 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateNull"), SuppressUnmanagedCodeSecurity] |
1406 | public static extern IntPtr JointCreateNull(IntPtr world, IntPtr group); | 1406 | internal static extern IntPtr JointCreateNull(IntPtr world, IntPtr group); |
1407 | 1407 | ||
1408 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePR"), SuppressUnmanagedCodeSecurity] | 1408 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePR"), SuppressUnmanagedCodeSecurity] |
1409 | public static extern IntPtr JointCreatePR(IntPtr world, IntPtr group); | 1409 | internal static extern IntPtr JointCreatePR(IntPtr world, IntPtr group); |
1410 | 1410 | ||
1411 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePlane2D"), SuppressUnmanagedCodeSecurity] | 1411 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePlane2D"), SuppressUnmanagedCodeSecurity] |
1412 | public static extern IntPtr JointCreatePlane2D(IntPtr world, IntPtr group); | 1412 | internal static extern IntPtr JointCreatePlane2D(IntPtr world, IntPtr group); |
1413 | 1413 | ||
1414 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateSlider"), SuppressUnmanagedCodeSecurity] | 1414 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateSlider"), SuppressUnmanagedCodeSecurity] |
1415 | public static extern IntPtr JointCreateSlider(IntPtr world, IntPtr group); | 1415 | internal static extern IntPtr JointCreateSlider(IntPtr world, IntPtr group); |
1416 | 1416 | ||
1417 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateUniversal"), SuppressUnmanagedCodeSecurity] | 1417 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateUniversal"), SuppressUnmanagedCodeSecurity] |
1418 | public static extern IntPtr JointCreateUniversal(IntPtr world, IntPtr group); | 1418 | internal static extern IntPtr JointCreateUniversal(IntPtr world, IntPtr group); |
1419 | 1419 | ||
1420 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointDestroy"), SuppressUnmanagedCodeSecurity] | 1420 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointDestroy"), SuppressUnmanagedCodeSecurity] |
1421 | public static extern void JointDestroy(IntPtr j); | 1421 | internal static extern void JointDestroy(IntPtr j); |
1422 | 1422 | ||
1423 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngle"), SuppressUnmanagedCodeSecurity] | 1423 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngle"), SuppressUnmanagedCodeSecurity] |
1424 | public static extern dReal JointGetAMotorAngle(IntPtr j, int anum); | 1424 | internal static extern dReal JointGetAMotorAngle(IntPtr j, int anum); |
1425 | 1425 | ||
1426 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngleRate"), SuppressUnmanagedCodeSecurity] | 1426 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngleRate"), SuppressUnmanagedCodeSecurity] |
1427 | public static extern dReal JointGetAMotorAngleRate(IntPtr j, int anum); | 1427 | internal static extern dReal JointGetAMotorAngleRate(IntPtr j, int anum); |
1428 | 1428 | ||
1429 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxis"), SuppressUnmanagedCodeSecurity] | 1429 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxis"), SuppressUnmanagedCodeSecurity] |
1430 | public static extern void JointGetAMotorAxis(IntPtr j, int anum, out Vector3 result); | 1430 | internal static extern void JointGetAMotorAxis(IntPtr j, int anum, out Vector3 result); |
1431 | 1431 | ||
1432 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxisRel"), SuppressUnmanagedCodeSecurity] | 1432 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxisRel"), SuppressUnmanagedCodeSecurity] |
1433 | public static extern int JointGetAMotorAxisRel(IntPtr j, int anum); | 1433 | internal static extern int JointGetAMotorAxisRel(IntPtr j, int anum); |
1434 | 1434 | ||
1435 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorMode"), SuppressUnmanagedCodeSecurity] | 1435 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorMode"), SuppressUnmanagedCodeSecurity] |
1436 | public static extern int JointGetAMotorMode(IntPtr j); | 1436 | internal static extern int JointGetAMotorMode(IntPtr j); |
1437 | 1437 | ||
1438 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1438 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1439 | public static extern int JointGetAMotorNumAxes(IntPtr j); | 1439 | internal static extern int JointGetAMotorNumAxes(IntPtr j); |
1440 | 1440 | ||
1441 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorParam"), SuppressUnmanagedCodeSecurity] | 1441 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorParam"), SuppressUnmanagedCodeSecurity] |
1442 | public static extern dReal JointGetAMotorParam(IntPtr j, int parameter); | 1442 | internal static extern dReal JointGetAMotorParam(IntPtr j, int parameter); |
1443 | 1443 | ||
1444 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor"), SuppressUnmanagedCodeSecurity] | 1444 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor"), SuppressUnmanagedCodeSecurity] |
1445 | public static extern void JointGetBallAnchor(IntPtr j, out Vector3 result); | 1445 | internal static extern void JointGetBallAnchor(IntPtr j, out Vector3 result); |
1446 | 1446 | ||
1447 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor2"), SuppressUnmanagedCodeSecurity] | 1447 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor2"), SuppressUnmanagedCodeSecurity] |
1448 | public static extern void JointGetBallAnchor2(IntPtr j, out Vector3 result); | 1448 | internal static extern void JointGetBallAnchor2(IntPtr j, out Vector3 result); |
1449 | 1449 | ||
1450 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBody"), SuppressUnmanagedCodeSecurity] | 1450 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBody"), SuppressUnmanagedCodeSecurity] |
1451 | public static extern IntPtr JointGetBody(IntPtr j); | 1451 | internal static extern IntPtr JointGetBody(IntPtr j); |
1452 | 1452 | ||
1453 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetData"), SuppressUnmanagedCodeSecurity] | 1453 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetData"), SuppressUnmanagedCodeSecurity] |
1454 | public static extern IntPtr JointGetData(IntPtr j); | 1454 | internal static extern IntPtr JointGetData(IntPtr j); |
1455 | 1455 | ||
1456 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetFeedback"), SuppressUnmanagedCodeSecurity] | 1456 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetFeedback"), SuppressUnmanagedCodeSecurity] |
1457 | public extern unsafe static JointFeedback* JointGetFeedbackUnsafe(IntPtr j); | 1457 | internal extern unsafe static JointFeedback* JointGetFeedbackUnsafe(IntPtr j); |
1458 | public static JointFeedback JointGetFeedback(IntPtr j) | 1458 | internal static JointFeedback JointGetFeedback(IntPtr j) |
1459 | { | 1459 | { |
1460 | unsafe { return *(JointGetFeedbackUnsafe(j)); } | 1460 | unsafe { return *(JointGetFeedbackUnsafe(j)); } |
1461 | } | 1461 | } |
1462 | 1462 | ||
1463 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor"), SuppressUnmanagedCodeSecurity] | 1463 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor"), SuppressUnmanagedCodeSecurity] |
1464 | public static extern void JointGetHingeAnchor(IntPtr j, out Vector3 result); | 1464 | internal static extern void JointGetHingeAnchor(IntPtr j, out Vector3 result); |
1465 | 1465 | ||
1466 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngle"), SuppressUnmanagedCodeSecurity] | 1466 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngle"), SuppressUnmanagedCodeSecurity] |
1467 | public static extern dReal JointGetHingeAngle(IntPtr j); | 1467 | internal static extern dReal JointGetHingeAngle(IntPtr j); |
1468 | 1468 | ||
1469 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngleRate"), SuppressUnmanagedCodeSecurity] | 1469 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngleRate"), SuppressUnmanagedCodeSecurity] |
1470 | public static extern dReal JointGetHingeAngleRate(IntPtr j); | 1470 | internal static extern dReal JointGetHingeAngleRate(IntPtr j); |
1471 | 1471 | ||
1472 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAxis"), SuppressUnmanagedCodeSecurity] | 1472 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAxis"), SuppressUnmanagedCodeSecurity] |
1473 | public static extern void JointGetHingeAxis(IntPtr j, out Vector3 result); | 1473 | internal static extern void JointGetHingeAxis(IntPtr j, out Vector3 result); |
1474 | 1474 | ||
1475 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeParam"), SuppressUnmanagedCodeSecurity] | 1475 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeParam"), SuppressUnmanagedCodeSecurity] |
1476 | public static extern dReal JointGetHingeParam(IntPtr j, int parameter); | 1476 | internal static extern dReal JointGetHingeParam(IntPtr j, int parameter); |
1477 | 1477 | ||
1478 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1"), SuppressUnmanagedCodeSecurity] | 1478 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1"), SuppressUnmanagedCodeSecurity] |
1479 | public static extern dReal JointGetHinge2Angle1(IntPtr j); | 1479 | internal static extern dReal JointGetHinge2Angle1(IntPtr j); |
1480 | 1480 | ||
1481 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1Rate"), SuppressUnmanagedCodeSecurity] | 1481 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1Rate"), SuppressUnmanagedCodeSecurity] |
1482 | public static extern dReal JointGetHinge2Angle1Rate(IntPtr j); | 1482 | internal static extern dReal JointGetHinge2Angle1Rate(IntPtr j); |
1483 | 1483 | ||
1484 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle2Rate"), SuppressUnmanagedCodeSecurity] | 1484 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle2Rate"), SuppressUnmanagedCodeSecurity] |
1485 | public static extern dReal JointGetHinge2Angle2Rate(IntPtr j); | 1485 | internal static extern dReal JointGetHinge2Angle2Rate(IntPtr j); |
1486 | 1486 | ||
1487 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor2"), SuppressUnmanagedCodeSecurity] | 1487 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor2"), SuppressUnmanagedCodeSecurity] |
1488 | public static extern void JointGetHingeAnchor2(IntPtr j, out Vector3 result); | 1488 | internal static extern void JointGetHingeAnchor2(IntPtr j, out Vector3 result); |
1489 | 1489 | ||
1490 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor"), SuppressUnmanagedCodeSecurity] | 1490 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor"), SuppressUnmanagedCodeSecurity] |
1491 | public static extern void JointGetHinge2Anchor(IntPtr j, out Vector3 result); | 1491 | internal static extern void JointGetHinge2Anchor(IntPtr j, out Vector3 result); |
1492 | 1492 | ||
1493 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor2"), SuppressUnmanagedCodeSecurity] | 1493 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor2"), SuppressUnmanagedCodeSecurity] |
1494 | public static extern void JointGetHinge2Anchor2(IntPtr j, out Vector3 result); | 1494 | internal static extern void JointGetHinge2Anchor2(IntPtr j, out Vector3 result); |
1495 | 1495 | ||
1496 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis1"), SuppressUnmanagedCodeSecurity] | 1496 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis1"), SuppressUnmanagedCodeSecurity] |
1497 | public static extern void JointGetHinge2Axis1(IntPtr j, out Vector3 result); | 1497 | internal static extern void JointGetHinge2Axis1(IntPtr j, out Vector3 result); |
1498 | 1498 | ||
1499 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis2"), SuppressUnmanagedCodeSecurity] | 1499 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis2"), SuppressUnmanagedCodeSecurity] |
1500 | public static extern void JointGetHinge2Axis2(IntPtr j, out Vector3 result); | 1500 | internal static extern void JointGetHinge2Axis2(IntPtr j, out Vector3 result); |
1501 | 1501 | ||
1502 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Param"), SuppressUnmanagedCodeSecurity] | 1502 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Param"), SuppressUnmanagedCodeSecurity] |
1503 | public static extern dReal JointGetHinge2Param(IntPtr j, int parameter); | 1503 | internal static extern dReal JointGetHinge2Param(IntPtr j, int parameter); |
1504 | 1504 | ||
1505 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorAxis"), SuppressUnmanagedCodeSecurity] | 1505 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorAxis"), SuppressUnmanagedCodeSecurity] |
1506 | public static extern void JointGetLMotorAxis(IntPtr j, int anum, out Vector3 result); | 1506 | internal static extern void JointGetLMotorAxis(IntPtr j, int anum, out Vector3 result); |
1507 | 1507 | ||
1508 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1508 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1509 | public static extern int JointGetLMotorNumAxes(IntPtr j); | 1509 | internal static extern int JointGetLMotorNumAxes(IntPtr j); |
1510 | 1510 | ||
1511 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorParam"), SuppressUnmanagedCodeSecurity] | 1511 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorParam"), SuppressUnmanagedCodeSecurity] |
1512 | public static extern dReal JointGetLMotorParam(IntPtr j, int parameter); | 1512 | internal static extern dReal JointGetLMotorParam(IntPtr j, int parameter); |
1513 | 1513 | ||
1514 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAnchor"), SuppressUnmanagedCodeSecurity] | 1514 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAnchor"), SuppressUnmanagedCodeSecurity] |
1515 | public static extern void JointGetPRAnchor(IntPtr j, out Vector3 result); | 1515 | internal static extern void JointGetPRAnchor(IntPtr j, out Vector3 result); |
1516 | 1516 | ||
1517 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis1"), SuppressUnmanagedCodeSecurity] | 1517 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis1"), SuppressUnmanagedCodeSecurity] |
1518 | public static extern void JointGetPRAxis1(IntPtr j, out Vector3 result); | 1518 | internal static extern void JointGetPRAxis1(IntPtr j, out Vector3 result); |
1519 | 1519 | ||
1520 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis2"), SuppressUnmanagedCodeSecurity] | 1520 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis2"), SuppressUnmanagedCodeSecurity] |
1521 | public static extern void JointGetPRAxis2(IntPtr j, out Vector3 result); | 1521 | internal static extern void JointGetPRAxis2(IntPtr j, out Vector3 result); |
1522 | 1522 | ||
1523 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRParam"), SuppressUnmanagedCodeSecurity] | 1523 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRParam"), SuppressUnmanagedCodeSecurity] |
1524 | public static extern dReal JointGetPRParam(IntPtr j, int parameter); | 1524 | internal static extern dReal JointGetPRParam(IntPtr j, int parameter); |
1525 | 1525 | ||
1526 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPosition"), SuppressUnmanagedCodeSecurity] | 1526 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPosition"), SuppressUnmanagedCodeSecurity] |
1527 | public static extern dReal JointGetPRPosition(IntPtr j); | 1527 | internal static extern dReal JointGetPRPosition(IntPtr j); |
1528 | 1528 | ||
1529 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPositionRate"), SuppressUnmanagedCodeSecurity] | 1529 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPositionRate"), SuppressUnmanagedCodeSecurity] |
1530 | public static extern dReal JointGetPRPositionRate(IntPtr j); | 1530 | internal static extern dReal JointGetPRPositionRate(IntPtr j); |
1531 | 1531 | ||
1532 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderAxis"), SuppressUnmanagedCodeSecurity] | 1532 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderAxis"), SuppressUnmanagedCodeSecurity] |
1533 | public static extern void JointGetSliderAxis(IntPtr j, out Vector3 result); | 1533 | internal static extern void JointGetSliderAxis(IntPtr j, out Vector3 result); |
1534 | 1534 | ||
1535 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderParam"), SuppressUnmanagedCodeSecurity] | 1535 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderParam"), SuppressUnmanagedCodeSecurity] |
1536 | public static extern dReal JointGetSliderParam(IntPtr j, int parameter); | 1536 | internal static extern dReal JointGetSliderParam(IntPtr j, int parameter); |
1537 | 1537 | ||
1538 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPosition"), SuppressUnmanagedCodeSecurity] | 1538 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPosition"), SuppressUnmanagedCodeSecurity] |
1539 | public static extern dReal JointGetSliderPosition(IntPtr j); | 1539 | internal static extern dReal JointGetSliderPosition(IntPtr j); |
1540 | 1540 | ||
1541 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPositionRate"), SuppressUnmanagedCodeSecurity] | 1541 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPositionRate"), SuppressUnmanagedCodeSecurity] |
1542 | public static extern dReal JointGetSliderPositionRate(IntPtr j); | 1542 | internal static extern dReal JointGetSliderPositionRate(IntPtr j); |
1543 | 1543 | ||
1544 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetType"), SuppressUnmanagedCodeSecurity] | 1544 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetType"), SuppressUnmanagedCodeSecurity] |
1545 | public static extern JointType JointGetType(IntPtr j); | 1545 | internal static extern JointType JointGetType(IntPtr j); |
1546 | 1546 | ||
1547 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor"), SuppressUnmanagedCodeSecurity] | 1547 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor"), SuppressUnmanagedCodeSecurity] |
1548 | public static extern void JointGetUniversalAnchor(IntPtr j, out Vector3 result); | 1548 | internal static extern void JointGetUniversalAnchor(IntPtr j, out Vector3 result); |
1549 | 1549 | ||
1550 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor2"), SuppressUnmanagedCodeSecurity] | 1550 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor2"), SuppressUnmanagedCodeSecurity] |
1551 | public static extern void JointGetUniversalAnchor2(IntPtr j, out Vector3 result); | 1551 | internal static extern void JointGetUniversalAnchor2(IntPtr j, out Vector3 result); |
1552 | 1552 | ||
1553 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1"), SuppressUnmanagedCodeSecurity] | 1553 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1"), SuppressUnmanagedCodeSecurity] |
1554 | public static extern dReal JointGetUniversalAngle1(IntPtr j); | 1554 | internal static extern dReal JointGetUniversalAngle1(IntPtr j); |
1555 | 1555 | ||
1556 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1Rate"), SuppressUnmanagedCodeSecurity] | 1556 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1Rate"), SuppressUnmanagedCodeSecurity] |
1557 | public static extern dReal JointGetUniversalAngle1Rate(IntPtr j); | 1557 | internal static extern dReal JointGetUniversalAngle1Rate(IntPtr j); |
1558 | 1558 | ||
1559 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2"), SuppressUnmanagedCodeSecurity] | 1559 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2"), SuppressUnmanagedCodeSecurity] |
1560 | public static extern dReal JointGetUniversalAngle2(IntPtr j); | 1560 | internal static extern dReal JointGetUniversalAngle2(IntPtr j); |
1561 | 1561 | ||
1562 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2Rate"), SuppressUnmanagedCodeSecurity] | 1562 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2Rate"), SuppressUnmanagedCodeSecurity] |
1563 | public static extern dReal JointGetUniversalAngle2Rate(IntPtr j); | 1563 | internal static extern dReal JointGetUniversalAngle2Rate(IntPtr j); |
1564 | 1564 | ||
1565 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngles"), SuppressUnmanagedCodeSecurity] | 1565 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngles"), SuppressUnmanagedCodeSecurity] |
1566 | public static extern void JointGetUniversalAngles(IntPtr j, out dReal angle1, out dReal angle2); | 1566 | internal static extern void JointGetUniversalAngles(IntPtr j, out dReal angle1, out dReal angle2); |
1567 | 1567 | ||
1568 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis1"), SuppressUnmanagedCodeSecurity] | 1568 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis1"), SuppressUnmanagedCodeSecurity] |
1569 | public static extern void JointGetUniversalAxis1(IntPtr j, out Vector3 result); | 1569 | internal static extern void JointGetUniversalAxis1(IntPtr j, out Vector3 result); |
1570 | 1570 | ||
1571 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis2"), SuppressUnmanagedCodeSecurity] | 1571 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis2"), SuppressUnmanagedCodeSecurity] |
1572 | public static extern void JointGetUniversalAxis2(IntPtr j, out Vector3 result); | 1572 | internal static extern void JointGetUniversalAxis2(IntPtr j, out Vector3 result); |
1573 | 1573 | ||
1574 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalParam"), SuppressUnmanagedCodeSecurity] | 1574 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalParam"), SuppressUnmanagedCodeSecurity] |
1575 | public static extern dReal JointGetUniversalParam(IntPtr j, int parameter); | 1575 | internal static extern dReal JointGetUniversalParam(IntPtr j, int parameter); |
1576 | 1576 | ||
1577 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupCreate"), SuppressUnmanagedCodeSecurity] | 1577 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupCreate"), SuppressUnmanagedCodeSecurity] |
1578 | public static extern IntPtr JointGroupCreate(int max_size); | 1578 | internal static extern IntPtr JointGroupCreate(int max_size); |
1579 | 1579 | ||
1580 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupDestroy"), SuppressUnmanagedCodeSecurity] | 1580 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupDestroy"), SuppressUnmanagedCodeSecurity] |
1581 | public static extern void JointGroupDestroy(IntPtr group); | 1581 | internal static extern void JointGroupDestroy(IntPtr group); |
1582 | 1582 | ||
1583 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupEmpty"), SuppressUnmanagedCodeSecurity] | 1583 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupEmpty"), SuppressUnmanagedCodeSecurity] |
1584 | public static extern void JointGroupEmpty(IntPtr group); | 1584 | internal static extern void JointGroupEmpty(IntPtr group); |
1585 | 1585 | ||
1586 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAngle"), SuppressUnmanagedCodeSecurity] | 1586 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAngle"), SuppressUnmanagedCodeSecurity] |
1587 | public static extern void JointSetAMotorAngle(IntPtr j, int anum, dReal angle); | 1587 | internal static extern void JointSetAMotorAngle(IntPtr j, int anum, dReal angle); |
1588 | 1588 | ||
1589 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAxis"), SuppressUnmanagedCodeSecurity] | 1589 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAxis"), SuppressUnmanagedCodeSecurity] |
1590 | public static extern void JointSetAMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); | 1590 | internal static extern void JointSetAMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); |
1591 | 1591 | ||
1592 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorMode"), SuppressUnmanagedCodeSecurity] | 1592 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorMode"), SuppressUnmanagedCodeSecurity] |
1593 | public static extern void JointSetAMotorMode(IntPtr j, int mode); | 1593 | internal static extern void JointSetAMotorMode(IntPtr j, int mode); |
1594 | 1594 | ||
1595 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1595 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1596 | public static extern void JointSetAMotorNumAxes(IntPtr group, int num); | 1596 | internal static extern void JointSetAMotorNumAxes(IntPtr group, int num); |
1597 | 1597 | ||
1598 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorParam"), SuppressUnmanagedCodeSecurity] | 1598 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorParam"), SuppressUnmanagedCodeSecurity] |
1599 | public static extern void JointSetAMotorParam(IntPtr group, int parameter, dReal value); | 1599 | internal static extern void JointSetAMotorParam(IntPtr group, int parameter, dReal value); |
1600 | 1600 | ||
1601 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor"), SuppressUnmanagedCodeSecurity] | 1601 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor"), SuppressUnmanagedCodeSecurity] |
1602 | public static extern void JointSetBallAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1602 | internal static extern void JointSetBallAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1603 | 1603 | ||
1604 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor2"), SuppressUnmanagedCodeSecurity] | 1604 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor2"), SuppressUnmanagedCodeSecurity] |
1605 | public static extern void JointSetBallAnchor2(IntPtr j, dReal x, dReal y, dReal z); | 1605 | internal static extern void JointSetBallAnchor2(IntPtr j, dReal x, dReal y, dReal z); |
1606 | 1606 | ||
1607 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetData"), SuppressUnmanagedCodeSecurity] | 1607 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetData"), SuppressUnmanagedCodeSecurity] |
1608 | public static extern void JointSetData(IntPtr j, IntPtr data); | 1608 | internal static extern void JointSetData(IntPtr j, IntPtr data); |
1609 | 1609 | ||
1610 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFeedback"), SuppressUnmanagedCodeSecurity] | 1610 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFeedback"), SuppressUnmanagedCodeSecurity] |
1611 | public static extern void JointSetFeedback(IntPtr j, out JointFeedback feedback); | 1611 | internal static extern void JointSetFeedback(IntPtr j, out JointFeedback feedback); |
1612 | 1612 | ||
1613 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFixed"), SuppressUnmanagedCodeSecurity] | 1613 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFixed"), SuppressUnmanagedCodeSecurity] |
1614 | public static extern void JointSetFixed(IntPtr j); | 1614 | internal static extern void JointSetFixed(IntPtr j); |
1615 | 1615 | ||
1616 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchor"), SuppressUnmanagedCodeSecurity] | 1616 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchor"), SuppressUnmanagedCodeSecurity] |
1617 | public static extern void JointSetHingeAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1617 | internal static extern void JointSetHingeAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1618 | 1618 | ||
1619 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchorDelta"), SuppressUnmanagedCodeSecurity] | 1619 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchorDelta"), SuppressUnmanagedCodeSecurity] |
1620 | public static extern void JointSetHingeAnchorDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); | 1620 | internal static extern void JointSetHingeAnchorDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); |
1621 | 1621 | ||
1622 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAxis"), SuppressUnmanagedCodeSecurity] | 1622 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAxis"), SuppressUnmanagedCodeSecurity] |
1623 | public static extern void JointSetHingeAxis(IntPtr j, dReal x, dReal y, dReal z); | 1623 | internal static extern void JointSetHingeAxis(IntPtr j, dReal x, dReal y, dReal z); |
1624 | 1624 | ||
1625 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeParam"), SuppressUnmanagedCodeSecurity] | 1625 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeParam"), SuppressUnmanagedCodeSecurity] |
1626 | public static extern void JointSetHingeParam(IntPtr j, int parameter, dReal value); | 1626 | internal static extern void JointSetHingeParam(IntPtr j, int parameter, dReal value); |
1627 | 1627 | ||
1628 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Anchor"), SuppressUnmanagedCodeSecurity] | 1628 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Anchor"), SuppressUnmanagedCodeSecurity] |
1629 | public static extern void JointSetHinge2Anchor(IntPtr j, dReal x, dReal y, dReal z); | 1629 | internal static extern void JointSetHinge2Anchor(IntPtr j, dReal x, dReal y, dReal z); |
1630 | 1630 | ||
1631 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis1"), SuppressUnmanagedCodeSecurity] | 1631 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis1"), SuppressUnmanagedCodeSecurity] |
1632 | public static extern void JointSetHinge2Axis1(IntPtr j, dReal x, dReal y, dReal z); | 1632 | internal static extern void JointSetHinge2Axis1(IntPtr j, dReal x, dReal y, dReal z); |
1633 | 1633 | ||
1634 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis2"), SuppressUnmanagedCodeSecurity] | 1634 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis2"), SuppressUnmanagedCodeSecurity] |
1635 | public static extern void JointSetHinge2Axis2(IntPtr j, dReal x, dReal y, dReal z); | 1635 | internal static extern void JointSetHinge2Axis2(IntPtr j, dReal x, dReal y, dReal z); |
1636 | 1636 | ||
1637 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Param"), SuppressUnmanagedCodeSecurity] | 1637 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Param"), SuppressUnmanagedCodeSecurity] |
1638 | public static extern void JointSetHinge2Param(IntPtr j, int parameter, dReal value); | 1638 | internal static extern void JointSetHinge2Param(IntPtr j, int parameter, dReal value); |
1639 | 1639 | ||
1640 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorAxis"), SuppressUnmanagedCodeSecurity] | 1640 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorAxis"), SuppressUnmanagedCodeSecurity] |
1641 | public static extern void JointSetLMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); | 1641 | internal static extern void JointSetLMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); |
1642 | 1642 | ||
1643 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1643 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1644 | public static extern void JointSetLMotorNumAxes(IntPtr j, int num); | 1644 | internal static extern void JointSetLMotorNumAxes(IntPtr j, int num); |
1645 | 1645 | ||
1646 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorParam"), SuppressUnmanagedCodeSecurity] | 1646 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorParam"), SuppressUnmanagedCodeSecurity] |
1647 | public static extern void JointSetLMotorParam(IntPtr j, int parameter, dReal value); | 1647 | internal static extern void JointSetLMotorParam(IntPtr j, int parameter, dReal value); |
1648 | 1648 | ||
1649 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DAngleParam"), SuppressUnmanagedCodeSecurity] | 1649 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DAngleParam"), SuppressUnmanagedCodeSecurity] |
1650 | public static extern void JointSetPlane2DAngleParam(IntPtr j, int parameter, dReal value); | 1650 | internal static extern void JointSetPlane2DAngleParam(IntPtr j, int parameter, dReal value); |
1651 | 1651 | ||
1652 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DXParam"), SuppressUnmanagedCodeSecurity] | 1652 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DXParam"), SuppressUnmanagedCodeSecurity] |
1653 | public static extern void JointSetPlane2DXParam(IntPtr j, int parameter, dReal value); | 1653 | internal static extern void JointSetPlane2DXParam(IntPtr j, int parameter, dReal value); |
1654 | 1654 | ||
1655 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DYParam"), SuppressUnmanagedCodeSecurity] | 1655 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DYParam"), SuppressUnmanagedCodeSecurity] |
1656 | public static extern void JointSetPlane2DYParam(IntPtr j, int parameter, dReal value); | 1656 | internal static extern void JointSetPlane2DYParam(IntPtr j, int parameter, dReal value); |
1657 | 1657 | ||
1658 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAnchor"), SuppressUnmanagedCodeSecurity] | 1658 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAnchor"), SuppressUnmanagedCodeSecurity] |
1659 | public static extern void JointSetPRAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1659 | internal static extern void JointSetPRAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1660 | 1660 | ||
1661 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis1"), SuppressUnmanagedCodeSecurity] | 1661 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis1"), SuppressUnmanagedCodeSecurity] |
1662 | public static extern void JointSetPRAxis1(IntPtr j, dReal x, dReal y, dReal z); | 1662 | internal static extern void JointSetPRAxis1(IntPtr j, dReal x, dReal y, dReal z); |
1663 | 1663 | ||
1664 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis2"), SuppressUnmanagedCodeSecurity] | 1664 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis2"), SuppressUnmanagedCodeSecurity] |
1665 | public static extern void JointSetPRAxis2(IntPtr j, dReal x, dReal y, dReal z); | 1665 | internal static extern void JointSetPRAxis2(IntPtr j, dReal x, dReal y, dReal z); |
1666 | 1666 | ||
1667 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRParam"), SuppressUnmanagedCodeSecurity] | 1667 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRParam"), SuppressUnmanagedCodeSecurity] |
1668 | public static extern void JointSetPRParam(IntPtr j, int parameter, dReal value); | 1668 | internal static extern void JointSetPRParam(IntPtr j, int parameter, dReal value); |
1669 | 1669 | ||
1670 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxis"), SuppressUnmanagedCodeSecurity] | 1670 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxis"), SuppressUnmanagedCodeSecurity] |
1671 | public static extern void JointSetSliderAxis(IntPtr j, dReal x, dReal y, dReal z); | 1671 | internal static extern void JointSetSliderAxis(IntPtr j, dReal x, dReal y, dReal z); |
1672 | 1672 | ||
1673 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxisDelta"), SuppressUnmanagedCodeSecurity] | 1673 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxisDelta"), SuppressUnmanagedCodeSecurity] |
1674 | public static extern void JointSetSliderAxisDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); | 1674 | internal static extern void JointSetSliderAxisDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); |
1675 | 1675 | ||
1676 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderParam"), SuppressUnmanagedCodeSecurity] | 1676 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderParam"), SuppressUnmanagedCodeSecurity] |
1677 | public static extern void JointSetSliderParam(IntPtr j, int parameter, dReal value); | 1677 | internal static extern void JointSetSliderParam(IntPtr j, int parameter, dReal value); |
1678 | 1678 | ||
1679 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAnchor"), SuppressUnmanagedCodeSecurity] | 1679 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAnchor"), SuppressUnmanagedCodeSecurity] |
1680 | public static extern void JointSetUniversalAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1680 | internal static extern void JointSetUniversalAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1681 | 1681 | ||
1682 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis1"), SuppressUnmanagedCodeSecurity] | 1682 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis1"), SuppressUnmanagedCodeSecurity] |
1683 | public static extern void JointSetUniversalAxis1(IntPtr j, dReal x, dReal y, dReal z); | 1683 | internal static extern void JointSetUniversalAxis1(IntPtr j, dReal x, dReal y, dReal z); |
1684 | 1684 | ||
1685 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis2"), SuppressUnmanagedCodeSecurity] | 1685 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis2"), SuppressUnmanagedCodeSecurity] |
1686 | public static extern void JointSetUniversalAxis2(IntPtr j, dReal x, dReal y, dReal z); | 1686 | internal static extern void JointSetUniversalAxis2(IntPtr j, dReal x, dReal y, dReal z); |
1687 | 1687 | ||
1688 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalParam"), SuppressUnmanagedCodeSecurity] | 1688 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalParam"), SuppressUnmanagedCodeSecurity] |
1689 | public static extern void JointSetUniversalParam(IntPtr j, int parameter, dReal value); | 1689 | internal static extern void JointSetUniversalParam(IntPtr j, int parameter, dReal value); |
1690 | 1690 | ||
1691 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dLDLTAddTL"), SuppressUnmanagedCodeSecurity] | 1691 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dLDLTAddTL"), SuppressUnmanagedCodeSecurity] |
1692 | public static extern void LDLTAddTL(ref dReal L, ref dReal d, ref dReal a, int n, int nskip); | 1692 | internal static extern void LDLTAddTL(ref dReal L, ref dReal d, ref dReal a, int n, int nskip); |
1693 | 1693 | ||
1694 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdd"), SuppressUnmanagedCodeSecurity] | 1694 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdd"), SuppressUnmanagedCodeSecurity] |
1695 | public static extern void MassAdd(ref Mass a, ref Mass b); | 1695 | internal static extern void MassAdd(ref Mass a, ref Mass b); |
1696 | 1696 | ||
1697 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdjust"), SuppressUnmanagedCodeSecurity] | 1697 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdjust"), SuppressUnmanagedCodeSecurity] |
1698 | public static extern void MassAdjust(ref Mass m, dReal newmass); | 1698 | internal static extern void MassAdjust(ref Mass m, dReal newmass); |
1699 | 1699 | ||
1700 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassCheck"), SuppressUnmanagedCodeSecurity] | 1700 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassCheck"), SuppressUnmanagedCodeSecurity] |
1701 | public static extern bool MassCheck(ref Mass m); | 1701 | internal static extern bool MassCheck(ref Mass m); |
1702 | 1702 | ||
1703 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] | 1703 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] |
1704 | public static extern void MassRotate(ref Mass mass, ref Matrix3 R); | 1704 | internal static extern void MassRotate(ref Mass mass, ref Matrix3 R); |
1705 | 1705 | ||
1706 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] | 1706 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] |
1707 | public static extern void MassRotate(ref Mass mass, ref dReal M00); | 1707 | internal static extern void MassRotate(ref Mass mass, ref dReal M00); |
1708 | 1708 | ||
1709 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBox"), SuppressUnmanagedCodeSecurity] | 1709 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBox"), SuppressUnmanagedCodeSecurity] |
1710 | public static extern void MassSetBox(out Mass mass, dReal density, dReal lx, dReal ly, dReal lz); | 1710 | internal static extern void MassSetBox(out Mass mass, dReal density, dReal lx, dReal ly, dReal lz); |
1711 | 1711 | ||
1712 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBoxTotal"), SuppressUnmanagedCodeSecurity] | 1712 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBoxTotal"), SuppressUnmanagedCodeSecurity] |
1713 | public static extern void MassSetBoxTotal(out Mass mass, dReal total_mass, dReal lx, dReal ly, dReal lz); | 1713 | internal static extern void MassSetBoxTotal(out Mass mass, dReal total_mass, dReal lx, dReal ly, dReal lz); |
1714 | 1714 | ||
1715 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsule"), SuppressUnmanagedCodeSecurity] | 1715 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsule"), SuppressUnmanagedCodeSecurity] |
1716 | public static extern void MassSetCapsule(out Mass mass, dReal density, int direction, dReal radius, dReal length); | 1716 | internal static extern void MassSetCapsule(out Mass mass, dReal density, int direction, dReal radius, dReal length); |
1717 | 1717 | ||
1718 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsuleTotal"), SuppressUnmanagedCodeSecurity] | 1718 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsuleTotal"), SuppressUnmanagedCodeSecurity] |
1719 | public static extern void MassSetCapsuleTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); | 1719 | internal static extern void MassSetCapsuleTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); |
1720 | 1720 | ||
1721 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinder"), SuppressUnmanagedCodeSecurity] | 1721 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinder"), SuppressUnmanagedCodeSecurity] |
1722 | public static extern void MassSetCylinder(out Mass mass, dReal density, int direction, dReal radius, dReal length); | 1722 | internal static extern void MassSetCylinder(out Mass mass, dReal density, int direction, dReal radius, dReal length); |
1723 | 1723 | ||
1724 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinderTotal"), SuppressUnmanagedCodeSecurity] | 1724 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinderTotal"), SuppressUnmanagedCodeSecurity] |
1725 | public static extern void MassSetCylinderTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); | 1725 | internal static extern void MassSetCylinderTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); |
1726 | 1726 | ||
1727 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetParameters"), SuppressUnmanagedCodeSecurity] | 1727 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetParameters"), SuppressUnmanagedCodeSecurity] |
1728 | public static extern void MassSetParameters(out Mass mass, dReal themass, | 1728 | internal static extern void MassSetParameters(out Mass mass, dReal themass, |
1729 | dReal cgx, dReal cgy, dReal cgz, | 1729 | dReal cgx, dReal cgy, dReal cgz, |
1730 | dReal i11, dReal i22, dReal i33, | 1730 | dReal i11, dReal i22, dReal i33, |
1731 | dReal i12, dReal i13, dReal i23); | 1731 | dReal i12, dReal i13, dReal i23); |
1732 | 1732 | ||
1733 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphere"), SuppressUnmanagedCodeSecurity] | 1733 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphere"), SuppressUnmanagedCodeSecurity] |
1734 | public static extern void MassSetSphere(out Mass mass, dReal density, dReal radius); | 1734 | internal static extern void MassSetSphere(out Mass mass, dReal density, dReal radius); |
1735 | 1735 | ||
1736 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphereTotal"), SuppressUnmanagedCodeSecurity] | 1736 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphereTotal"), SuppressUnmanagedCodeSecurity] |
1737 | public static extern void dMassSetSphereTotal(out Mass mass, dReal total_mass, dReal radius); | 1737 | internal static extern void dMassSetSphereTotal(out Mass mass, dReal total_mass, dReal radius); |
1738 | 1738 | ||
1739 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetTrimesh"), SuppressUnmanagedCodeSecurity] | 1739 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetTrimesh"), SuppressUnmanagedCodeSecurity] |
1740 | public static extern void MassSetTrimesh(out Mass mass, dReal density, IntPtr g); | 1740 | internal static extern void MassSetTrimesh(out Mass mass, dReal density, IntPtr g); |
1741 | 1741 | ||
1742 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetZero"), SuppressUnmanagedCodeSecurity] | 1742 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetZero"), SuppressUnmanagedCodeSecurity] |
1743 | public static extern void MassSetZero(out Mass mass); | 1743 | internal static extern void MassSetZero(out Mass mass); |
1744 | 1744 | ||
1745 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassTranslate"), SuppressUnmanagedCodeSecurity] | 1745 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassTranslate"), SuppressUnmanagedCodeSecurity] |
1746 | public static extern void MassTranslate(ref Mass mass, dReal x, dReal y, dReal z); | 1746 | internal static extern void MassTranslate(ref Mass mass, dReal x, dReal y, dReal z); |
1747 | 1747 | ||
1748 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] | 1748 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] |
1749 | public static extern void Multiply0(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); | 1749 | internal static extern void Multiply0(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); |
1750 | 1750 | ||
1751 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] | 1751 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] |
1752 | private static extern void MultiplyiM3V3(out Vector3 vout, ref Matrix3 matrix, ref Vector3 vect,int p, int q, int r); | 1752 | private static extern void MultiplyiM3V3(out Vector3 vout, ref Matrix3 matrix, ref Vector3 vect,int p, int q, int r); |
1753 | public static void MultiplyM3V3(out Vector3 outvector, ref Matrix3 matrix, ref Vector3 invector) | 1753 | internal static void MultiplyM3V3(out Vector3 outvector, ref Matrix3 matrix, ref Vector3 invector) |
1754 | { | 1754 | { |
1755 | MultiplyiM3V3(out outvector, ref matrix, ref invector, 3, 3, 1); | 1755 | MultiplyiM3V3(out outvector, ref matrix, ref invector, 3, 3, 1); |
1756 | } | 1756 | } |
1757 | 1757 | ||
1758 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply1"), SuppressUnmanagedCodeSecurity] | 1758 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply1"), SuppressUnmanagedCodeSecurity] |
1759 | public static extern void Multiply1(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); | 1759 | internal static extern void Multiply1(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); |
1760 | 1760 | ||
1761 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply2"), SuppressUnmanagedCodeSecurity] | 1761 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply2"), SuppressUnmanagedCodeSecurity] |
1762 | public static extern void Multiply2(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); | 1762 | internal static extern void Multiply2(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); |
1763 | 1763 | ||
1764 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] | 1764 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] |
1765 | public static extern void QFromAxisAndAngle(out Quaternion q, dReal ax, dReal ay, dReal az, dReal angle); | 1765 | internal static extern void QFromAxisAndAngle(out Quaternion q, dReal ax, dReal ay, dReal az, dReal angle); |
1766 | 1766 | ||
1767 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQfromR"), SuppressUnmanagedCodeSecurity] | 1767 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQfromR"), SuppressUnmanagedCodeSecurity] |
1768 | public static extern void QfromR(out Quaternion q, ref Matrix3 R); | 1768 | internal static extern void QfromR(out Quaternion q, ref Matrix3 R); |
1769 | 1769 | ||
1770 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply0"), SuppressUnmanagedCodeSecurity] | 1770 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply0"), SuppressUnmanagedCodeSecurity] |
1771 | public static extern void QMultiply0(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1771 | internal static extern void QMultiply0(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1772 | 1772 | ||
1773 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply1"), SuppressUnmanagedCodeSecurity] | 1773 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply1"), SuppressUnmanagedCodeSecurity] |
1774 | public static extern void QMultiply1(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1774 | internal static extern void QMultiply1(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1775 | 1775 | ||
1776 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply2"), SuppressUnmanagedCodeSecurity] | 1776 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply2"), SuppressUnmanagedCodeSecurity] |
1777 | public static extern void QMultiply2(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1777 | internal static extern void QMultiply2(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1778 | 1778 | ||
1779 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply3"), SuppressUnmanagedCodeSecurity] | 1779 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply3"), SuppressUnmanagedCodeSecurity] |
1780 | public static extern void QMultiply3(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1780 | internal static extern void QMultiply3(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1781 | 1781 | ||
1782 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQSetIdentity"), SuppressUnmanagedCodeSecurity] | 1782 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQSetIdentity"), SuppressUnmanagedCodeSecurity] |
1783 | public static extern void QSetIdentity(out Quaternion q); | 1783 | internal static extern void QSetIdentity(out Quaternion q); |
1784 | 1784 | ||
1785 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1785 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1786 | public static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref Vector3 center, ref Vector3 extents, int depth); | 1786 | internal static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref Vector3 center, ref Vector3 extents, int depth); |
1787 | 1787 | ||
1788 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1788 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1789 | public static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref dReal centerX, ref dReal extentsX, int depth); | 1789 | internal static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref dReal centerX, ref dReal extentsX, int depth); |
1790 | 1790 | ||
1791 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRandReal"), SuppressUnmanagedCodeSecurity] | 1791 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRandReal"), SuppressUnmanagedCodeSecurity] |
1792 | public static extern dReal RandReal(); | 1792 | internal static extern dReal RandReal(); |
1793 | 1793 | ||
1794 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFrom2Axes"), SuppressUnmanagedCodeSecurity] | 1794 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFrom2Axes"), SuppressUnmanagedCodeSecurity] |
1795 | public static extern void RFrom2Axes(out Matrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz); | 1795 | internal static extern void RFrom2Axes(out Matrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz); |
1796 | 1796 | ||
1797 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] | 1797 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] |
1798 | public static extern void RFromAxisAndAngle(out Matrix3 R, dReal x, dReal y, dReal z, dReal angle); | 1798 | internal static extern void RFromAxisAndAngle(out Matrix3 R, dReal x, dReal y, dReal z, dReal angle); |
1799 | 1799 | ||
1800 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromEulerAngles"), SuppressUnmanagedCodeSecurity] | 1800 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromEulerAngles"), SuppressUnmanagedCodeSecurity] |
1801 | public static extern void RFromEulerAngles(out Matrix3 R, dReal phi, dReal theta, dReal psi); | 1801 | internal static extern void RFromEulerAngles(out Matrix3 R, dReal phi, dReal theta, dReal psi); |
1802 | 1802 | ||
1803 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRfromQ"), SuppressUnmanagedCodeSecurity] | 1803 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRfromQ"), SuppressUnmanagedCodeSecurity] |
1804 | public static extern void RfromQ(out Matrix3 R, ref Quaternion q); | 1804 | internal static extern void RfromQ(out Matrix3 R, ref Quaternion q); |
1805 | 1805 | ||
1806 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromZAxis"), SuppressUnmanagedCodeSecurity] | 1806 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromZAxis"), SuppressUnmanagedCodeSecurity] |
1807 | public static extern void RFromZAxis(out Matrix3 R, dReal ax, dReal ay, dReal az); | 1807 | internal static extern void RFromZAxis(out Matrix3 R, dReal ax, dReal ay, dReal az); |
1808 | 1808 | ||
1809 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRSetIdentity"), SuppressUnmanagedCodeSecurity] | 1809 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRSetIdentity"), SuppressUnmanagedCodeSecurity] |
1810 | public static extern void RSetIdentity(out Matrix3 R); | 1810 | internal static extern void RSetIdentity(out Matrix3 R); |
1811 | 1811 | ||
1812 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetValue"), SuppressUnmanagedCodeSecurity] | 1812 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetValue"), SuppressUnmanagedCodeSecurity] |
1813 | public static extern void SetValue(out dReal a, int n); | 1813 | internal static extern void SetValue(out dReal a, int n); |
1814 | 1814 | ||
1815 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetZero"), SuppressUnmanagedCodeSecurity] | 1815 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetZero"), SuppressUnmanagedCodeSecurity] |
1816 | public static extern void SetZero(out dReal a, int n); | 1816 | internal static extern void SetZero(out dReal a, int n); |
1817 | 1817 | ||
1818 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSimpleSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1818 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSimpleSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1819 | public static extern IntPtr SimpleSpaceCreate(IntPtr space); | 1819 | internal static extern IntPtr SimpleSpaceCreate(IntPtr space); |
1820 | 1820 | ||
1821 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveCholesky"), SuppressUnmanagedCodeSecurity] | 1821 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveCholesky"), SuppressUnmanagedCodeSecurity] |
1822 | public static extern void SolveCholesky(ref dReal L, out dReal b, int n); | 1822 | internal static extern void SolveCholesky(ref dReal L, out dReal b, int n); |
1823 | 1823 | ||
1824 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1"), SuppressUnmanagedCodeSecurity] | 1824 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1"), SuppressUnmanagedCodeSecurity] |
1825 | public static extern void SolveL1(ref dReal L, out dReal b, int n, int nskip); | 1825 | internal static extern void SolveL1(ref dReal L, out dReal b, int n, int nskip); |
1826 | 1826 | ||
1827 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1T"), SuppressUnmanagedCodeSecurity] | 1827 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1T"), SuppressUnmanagedCodeSecurity] |
1828 | public static extern void SolveL1T(ref dReal L, out dReal b, int n, int nskip); | 1828 | internal static extern void SolveL1T(ref dReal L, out dReal b, int n, int nskip); |
1829 | 1829 | ||
1830 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveLDLT"), SuppressUnmanagedCodeSecurity] | 1830 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveLDLT"), SuppressUnmanagedCodeSecurity] |
1831 | public static extern void SolveLDLT(ref dReal L, ref dReal d, out dReal b, int n, int nskip); | 1831 | internal static extern void SolveLDLT(ref dReal L, ref dReal d, out dReal b, int n, int nskip); |
1832 | 1832 | ||
1833 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceAdd"), SuppressUnmanagedCodeSecurity] | 1833 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceAdd"), SuppressUnmanagedCodeSecurity] |
1834 | public static extern void SpaceAdd(IntPtr space, IntPtr geom); | 1834 | internal static extern void SpaceAdd(IntPtr space, IntPtr geom); |
1835 | 1835 | ||
1836 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceLockQuery"), SuppressUnmanagedCodeSecurity] | 1836 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceLockQuery"), SuppressUnmanagedCodeSecurity] |
1837 | public static extern bool SpaceLockQuery(IntPtr space); | 1837 | internal static extern bool SpaceLockQuery(IntPtr space); |
1838 | 1838 | ||
1839 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceClean"), SuppressUnmanagedCodeSecurity] | 1839 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceClean"), SuppressUnmanagedCodeSecurity] |
1840 | public static extern void SpaceClean(IntPtr space); | 1840 | internal static extern void SpaceClean(IntPtr space); |
1841 | 1841 | ||
1842 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide"), SuppressUnmanagedCodeSecurity] | 1842 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide"), SuppressUnmanagedCodeSecurity] |
1843 | public static extern void SpaceCollide(IntPtr space, IntPtr data, NearCallback callback); | 1843 | internal static extern void SpaceCollide(IntPtr space, IntPtr data, NearCallback callback); |
1844 | 1844 | ||
1845 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide2"), SuppressUnmanagedCodeSecurity] | 1845 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide2"), SuppressUnmanagedCodeSecurity] |
1846 | public static extern void SpaceCollide2(IntPtr space1, IntPtr space2, IntPtr data, NearCallback callback); | 1846 | internal static extern void SpaceCollide2(IntPtr space1, IntPtr space2, IntPtr data, NearCallback callback); |
1847 | 1847 | ||
1848 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceDestroy"), SuppressUnmanagedCodeSecurity] | 1848 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceDestroy"), SuppressUnmanagedCodeSecurity] |
1849 | public static extern void SpaceDestroy(IntPtr space); | 1849 | internal static extern void SpaceDestroy(IntPtr space); |
1850 | 1850 | ||
1851 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetCleanup"), SuppressUnmanagedCodeSecurity] | 1851 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetCleanup"), SuppressUnmanagedCodeSecurity] |
1852 | public static extern bool SpaceGetCleanup(IntPtr space); | 1852 | internal static extern bool SpaceGetCleanup(IntPtr space); |
1853 | 1853 | ||
1854 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetNumGeoms"), SuppressUnmanagedCodeSecurity] | 1854 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetNumGeoms"), SuppressUnmanagedCodeSecurity] |
1855 | public static extern int SpaceGetNumGeoms(IntPtr space); | 1855 | internal static extern int SpaceGetNumGeoms(IntPtr space); |
1856 | 1856 | ||
1857 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetGeom"), SuppressUnmanagedCodeSecurity] | 1857 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetGeom"), SuppressUnmanagedCodeSecurity] |
1858 | public static extern IntPtr SpaceGetGeom(IntPtr space, int i); | 1858 | internal static extern IntPtr SpaceGetGeom(IntPtr space, int i); |
1859 | 1859 | ||
1860 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetSublevel"), SuppressUnmanagedCodeSecurity] | 1860 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetSublevel"), SuppressUnmanagedCodeSecurity] |
1861 | public static extern int SpaceGetSublevel(IntPtr space); | 1861 | internal static extern int SpaceGetSublevel(IntPtr space); |
1862 | 1862 | ||
1863 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceQuery"), SuppressUnmanagedCodeSecurity] | 1863 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceQuery"), SuppressUnmanagedCodeSecurity] |
1864 | public static extern bool SpaceQuery(IntPtr space, IntPtr geom); | 1864 | internal static extern bool SpaceQuery(IntPtr space, IntPtr geom); |
1865 | 1865 | ||
1866 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceRemove"), SuppressUnmanagedCodeSecurity] | 1866 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceRemove"), SuppressUnmanagedCodeSecurity] |
1867 | public static extern void SpaceRemove(IntPtr space, IntPtr geom); | 1867 | internal static extern void SpaceRemove(IntPtr space, IntPtr geom); |
1868 | 1868 | ||
1869 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetCleanup"), SuppressUnmanagedCodeSecurity] | 1869 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetCleanup"), SuppressUnmanagedCodeSecurity] |
1870 | public static extern void SpaceSetCleanup(IntPtr space, bool mode); | 1870 | internal static extern void SpaceSetCleanup(IntPtr space, bool mode); |
1871 | 1871 | ||
1872 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetSublevel"), SuppressUnmanagedCodeSecurity] | 1872 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetSublevel"), SuppressUnmanagedCodeSecurity] |
1873 | public static extern void SpaceSetSublevel(IntPtr space, int sublevel); | 1873 | internal static extern void SpaceSetSublevel(IntPtr space, int sublevel); |
1874 | 1874 | ||
1875 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSweepAndPruneSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1875 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSweepAndPruneSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1876 | public static extern IntPtr SweepAndPruneSpaceCreate(IntPtr space, int AxisOrder); | 1876 | internal static extern IntPtr SweepAndPruneSpaceCreate(IntPtr space, int AxisOrder); |
1877 | 1877 | ||
1878 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dVectorScale"), SuppressUnmanagedCodeSecurity] | 1878 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dVectorScale"), SuppressUnmanagedCodeSecurity] |
1879 | public static extern void VectorScale(out dReal a, ref dReal d, int n); | 1879 | internal static extern void VectorScale(out dReal a, ref dReal d, int n); |
1880 | 1880 | ||
1881 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldCreate"), SuppressUnmanagedCodeSecurity] | 1881 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldCreate"), SuppressUnmanagedCodeSecurity] |
1882 | public static extern IntPtr WorldCreate(); | 1882 | internal static extern IntPtr WorldCreate(); |
1883 | 1883 | ||
1884 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldDestroy"), SuppressUnmanagedCodeSecurity] | 1884 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldDestroy"), SuppressUnmanagedCodeSecurity] |
1885 | public static extern void WorldDestroy(IntPtr world); | 1885 | internal static extern void WorldDestroy(IntPtr world); |
1886 | 1886 | ||
1887 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] | 1887 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] |
1888 | public static extern int WorldGetAutoDisableAverageSamplesCount(IntPtr world); | 1888 | internal static extern int WorldGetAutoDisableAverageSamplesCount(IntPtr world); |
1889 | 1889 | ||
1890 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 1890 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
1891 | public static extern dReal WorldGetAutoDisableAngularThreshold(IntPtr world); | 1891 | internal static extern dReal WorldGetAutoDisableAngularThreshold(IntPtr world); |
1892 | 1892 | ||
1893 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 1893 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
1894 | public static extern bool WorldGetAutoDisableFlag(IntPtr world); | 1894 | internal static extern bool WorldGetAutoDisableFlag(IntPtr world); |
1895 | 1895 | ||
1896 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 1896 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
1897 | public static extern dReal WorldGetAutoDisableLinearThreshold(IntPtr world); | 1897 | internal static extern dReal WorldGetAutoDisableLinearThreshold(IntPtr world); |
1898 | 1898 | ||
1899 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 1899 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
1900 | public static extern int WorldGetAutoDisableSteps(IntPtr world); | 1900 | internal static extern int WorldGetAutoDisableSteps(IntPtr world); |
1901 | 1901 | ||
1902 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 1902 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
1903 | public static extern dReal WorldGetAutoDisableTime(IntPtr world); | 1903 | internal static extern dReal WorldGetAutoDisableTime(IntPtr world); |
1904 | 1904 | ||
1905 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] | 1905 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] |
1906 | public static extern int WorldGetAutoEnableDepthSF1(IntPtr world); | 1906 | internal static extern int WorldGetAutoEnableDepthSF1(IntPtr world); |
1907 | 1907 | ||
1908 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetCFM"), SuppressUnmanagedCodeSecurity] | 1908 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetCFM"), SuppressUnmanagedCodeSecurity] |
1909 | public static extern dReal WorldGetCFM(IntPtr world); | 1909 | internal static extern dReal WorldGetCFM(IntPtr world); |
1910 | 1910 | ||
1911 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetERP"), SuppressUnmanagedCodeSecurity] | 1911 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetERP"), SuppressUnmanagedCodeSecurity] |
1912 | public static extern dReal WorldGetERP(IntPtr world); | 1912 | internal static extern dReal WorldGetERP(IntPtr world); |
1913 | 1913 | ||
1914 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] | 1914 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] |
1915 | public static extern void WorldGetGravity(IntPtr world, out Vector3 gravity); | 1915 | internal static extern void WorldGetGravity(IntPtr world, out Vector3 gravity); |
1916 | 1916 | ||
1917 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] | 1917 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] |
1918 | public static extern void WorldGetGravity(IntPtr world, out dReal X); | 1918 | internal static extern void WorldGetGravity(IntPtr world, out dReal X); |
1919 | 1919 | ||
1920 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] | 1920 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] |
1921 | public static extern dReal WorldGetContactMaxCorrectingVel(IntPtr world); | 1921 | internal static extern dReal WorldGetContactMaxCorrectingVel(IntPtr world); |
1922 | 1922 | ||
1923 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] | 1923 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] |
1924 | public static extern dReal WorldGetContactSurfaceLayer(IntPtr world); | 1924 | internal static extern dReal WorldGetContactSurfaceLayer(IntPtr world); |
1925 | 1925 | ||
1926 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDamping"), SuppressUnmanagedCodeSecurity] | 1926 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDamping"), SuppressUnmanagedCodeSecurity] |
1927 | public static extern dReal WorldGetAngularDamping(IntPtr world); | 1927 | internal static extern dReal WorldGetAngularDamping(IntPtr world); |
1928 | 1928 | ||
1929 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 1929 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
1930 | public static extern dReal WorldGetAngularDampingThreshold(IntPtr world); | 1930 | internal static extern dReal WorldGetAngularDampingThreshold(IntPtr world); |
1931 | 1931 | ||
1932 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDamping"), SuppressUnmanagedCodeSecurity] | 1932 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDamping"), SuppressUnmanagedCodeSecurity] |
1933 | public static extern dReal WorldGetLinearDamping(IntPtr world); | 1933 | internal static extern dReal WorldGetLinearDamping(IntPtr world); |
1934 | 1934 | ||
1935 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 1935 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
1936 | public static extern dReal WorldGetLinearDampingThreshold(IntPtr world); | 1936 | internal static extern dReal WorldGetLinearDampingThreshold(IntPtr world); |
1937 | 1937 | ||
1938 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] | 1938 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] |
1939 | public static extern int WorldGetQuickStepNumIterations(IntPtr world); | 1939 | internal static extern int WorldGetQuickStepNumIterations(IntPtr world); |
1940 | 1940 | ||
1941 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepW"), SuppressUnmanagedCodeSecurity] | 1941 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepW"), SuppressUnmanagedCodeSecurity] |
1942 | public static extern dReal WorldGetQuickStepW(IntPtr world); | 1942 | internal static extern dReal WorldGetQuickStepW(IntPtr world); |
1943 | 1943 | ||
1944 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] | 1944 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] |
1945 | public static extern dReal WorldGetMaxAngularSpeed(IntPtr world); | 1945 | internal static extern dReal WorldGetMaxAngularSpeed(IntPtr world); |
1946 | 1946 | ||
1947 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] | 1947 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] |
1948 | public static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out Vector3 force); | 1948 | internal static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out Vector3 force); |
1949 | 1949 | ||
1950 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] | 1950 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] |
1951 | public static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out dReal forceX); | 1951 | internal static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out dReal forceX); |
1952 | 1952 | ||
1953 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldQuickStep"), SuppressUnmanagedCodeSecurity] | 1953 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldQuickStep"), SuppressUnmanagedCodeSecurity] |
1954 | public static extern void WorldQuickStep(IntPtr world, dReal stepsize); | 1954 | internal static extern void WorldQuickStep(IntPtr world, dReal stepsize); |
1955 | 1955 | ||
1956 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDamping"), SuppressUnmanagedCodeSecurity] | 1956 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDamping"), SuppressUnmanagedCodeSecurity] |
1957 | public static extern void WorldSetAngularDamping(IntPtr world, dReal scale); | 1957 | internal static extern void WorldSetAngularDamping(IntPtr world, dReal scale); |
1958 | 1958 | ||
1959 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 1959 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
1960 | public static extern void WorldSetAngularDampingThreshold(IntPtr world, dReal threshold); | 1960 | internal static extern void WorldSetAngularDampingThreshold(IntPtr world, dReal threshold); |
1961 | 1961 | ||
1962 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 1962 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
1963 | public static extern void WorldSetAutoDisableAngularThreshold(IntPtr world, dReal angular_threshold); | 1963 | internal static extern void WorldSetAutoDisableAngularThreshold(IntPtr world, dReal angular_threshold); |
1964 | 1964 | ||
1965 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] | 1965 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] |
1966 | public static extern void WorldSetAutoDisableAverageSamplesCount(IntPtr world, int average_samples_count); | 1966 | internal static extern void WorldSetAutoDisableAverageSamplesCount(IntPtr world, int average_samples_count); |
1967 | 1967 | ||
1968 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 1968 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
1969 | public static extern void WorldSetAutoDisableFlag(IntPtr world, bool do_auto_disable); | 1969 | internal static extern void WorldSetAutoDisableFlag(IntPtr world, bool do_auto_disable); |
1970 | 1970 | ||
1971 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 1971 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
1972 | public static extern void WorldSetAutoDisableLinearThreshold(IntPtr world, dReal linear_threshold); | 1972 | internal static extern void WorldSetAutoDisableLinearThreshold(IntPtr world, dReal linear_threshold); |
1973 | 1973 | ||
1974 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 1974 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
1975 | public static extern void WorldSetAutoDisableSteps(IntPtr world, int steps); | 1975 | internal static extern void WorldSetAutoDisableSteps(IntPtr world, int steps); |
1976 | 1976 | ||
1977 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 1977 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
1978 | public static extern void WorldSetAutoDisableTime(IntPtr world, dReal time); | 1978 | internal static extern void WorldSetAutoDisableTime(IntPtr world, dReal time); |
1979 | 1979 | ||
1980 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] | 1980 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] |
1981 | public static extern void WorldSetAutoEnableDepthSF1(IntPtr world, int autoEnableDepth); | 1981 | internal static extern void WorldSetAutoEnableDepthSF1(IntPtr world, int autoEnableDepth); |
1982 | 1982 | ||
1983 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetCFM"), SuppressUnmanagedCodeSecurity] | 1983 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetCFM"), SuppressUnmanagedCodeSecurity] |
1984 | public static extern void WorldSetCFM(IntPtr world, dReal cfm); | 1984 | internal static extern void WorldSetCFM(IntPtr world, dReal cfm); |
1985 | 1985 | ||
1986 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] | 1986 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] |
1987 | public static extern void WorldSetContactMaxCorrectingVel(IntPtr world, dReal vel); | 1987 | internal static extern void WorldSetContactMaxCorrectingVel(IntPtr world, dReal vel); |
1988 | 1988 | ||
1989 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] | 1989 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] |
1990 | public static extern void WorldSetContactSurfaceLayer(IntPtr world, dReal depth); | 1990 | internal static extern void WorldSetContactSurfaceLayer(IntPtr world, dReal depth); |
1991 | 1991 | ||
1992 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetDamping"), SuppressUnmanagedCodeSecurity] | 1992 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetDamping"), SuppressUnmanagedCodeSecurity] |
1993 | public static extern void WorldSetDamping(IntPtr world, dReal linear_scale, dReal angular_scale); | 1993 | internal static extern void WorldSetDamping(IntPtr world, dReal linear_scale, dReal angular_scale); |
1994 | 1994 | ||
1995 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetERP"), SuppressUnmanagedCodeSecurity] | 1995 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetERP"), SuppressUnmanagedCodeSecurity] |
1996 | public static extern void WorldSetERP(IntPtr world, dReal erp); | 1996 | internal static extern void WorldSetERP(IntPtr world, dReal erp); |
1997 | 1997 | ||
1998 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetGravity"), SuppressUnmanagedCodeSecurity] | 1998 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetGravity"), SuppressUnmanagedCodeSecurity] |
1999 | public static extern void WorldSetGravity(IntPtr world, dReal x, dReal y, dReal z); | 1999 | internal static extern void WorldSetGravity(IntPtr world, dReal x, dReal y, dReal z); |
2000 | 2000 | ||
2001 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDamping"), SuppressUnmanagedCodeSecurity] | 2001 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDamping"), SuppressUnmanagedCodeSecurity] |
2002 | public static extern void WorldSetLinearDamping(IntPtr world, dReal scale); | 2002 | internal static extern void WorldSetLinearDamping(IntPtr world, dReal scale); |
2003 | 2003 | ||
2004 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 2004 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
2005 | public static extern void WorldSetLinearDampingThreshold(IntPtr world, dReal threshold); | 2005 | internal static extern void WorldSetLinearDampingThreshold(IntPtr world, dReal threshold); |
2006 | 2006 | ||
2007 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] | 2007 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] |
2008 | public static extern void WorldSetQuickStepNumIterations(IntPtr world, int num); | 2008 | internal static extern void WorldSetQuickStepNumIterations(IntPtr world, int num); |
2009 | 2009 | ||
2010 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepW"), SuppressUnmanagedCodeSecurity] | 2010 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepW"), SuppressUnmanagedCodeSecurity] |
2011 | public static extern void WorldSetQuickStepW(IntPtr world, dReal over_relaxation); | 2011 | internal static extern void WorldSetQuickStepW(IntPtr world, dReal over_relaxation); |
2012 | 2012 | ||
2013 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] | 2013 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] |
2014 | public static extern void WorldSetMaxAngularSpeed(IntPtr world, dReal max_speed); | 2014 | internal static extern void WorldSetMaxAngularSpeed(IntPtr world, dReal max_speed); |
2015 | 2015 | ||
2016 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStep"), SuppressUnmanagedCodeSecurity] | 2016 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStep"), SuppressUnmanagedCodeSecurity] |
2017 | public static extern void WorldStep(IntPtr world, dReal stepsize); | 2017 | internal static extern void WorldStep(IntPtr world, dReal stepsize); |
2018 | 2018 | ||
2019 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStepFast1"), SuppressUnmanagedCodeSecurity] | 2019 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStepFast1"), SuppressUnmanagedCodeSecurity] |
2020 | public static extern void WorldStepFast1(IntPtr world, dReal stepsize, int maxiterations); | 2020 | internal static extern void WorldStepFast1(IntPtr world, dReal stepsize, int maxiterations); |
2021 | 2021 | ||
2022 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldExportDIF"), SuppressUnmanagedCodeSecurity] | 2022 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldExportDIF"), SuppressUnmanagedCodeSecurity] |
2023 | public static extern void WorldExportDIF(IntPtr world, string filename, bool append, string prefix); | 2023 | internal static extern void WorldExportDIF(IntPtr world, string filename, bool append, string prefix); |
2024 | } | 2024 | } |
2025 | } | 2025 | } |
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs b/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs index 98bfd1c..441aa22 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODECharacter.cs | |||
@@ -68,7 +68,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
68 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 68 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
69 | 69 | ||
70 | private Vector3 _position; | 70 | private Vector3 _position; |
71 | private d.Vector3 _zeroPosition; | 71 | private SafeNativeMethods.Vector3 _zeroPosition; |
72 | private bool _zeroFlag = false; | 72 | private bool _zeroFlag = false; |
73 | private bool m_lastUpdateSent = false; | 73 | private bool m_lastUpdateSent = false; |
74 | private Vector3 _velocity; | 74 | private Vector3 _velocity; |
@@ -151,7 +151,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
151 | internal IntPtr Shell { get; private set; } | 151 | internal IntPtr Shell { get; private set; } |
152 | 152 | ||
153 | private IntPtr Amotor = IntPtr.Zero; | 153 | private IntPtr Amotor = IntPtr.Zero; |
154 | private d.Mass ShellMass; | 154 | private SafeNativeMethods.Mass ShellMass; |
155 | 155 | ||
156 | private int m_eventsubscription = 0; | 156 | private int m_eventsubscription = 0; |
157 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); | 157 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); |
@@ -569,12 +569,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
569 | float yTiltComponent = -movementVector.Y * m_tiltMagnitudeWhenProjectedOnXYPlane; | 569 | float yTiltComponent = -movementVector.Y * m_tiltMagnitudeWhenProjectedOnXYPlane; |
570 | 570 | ||
571 | //m_log.Debug("[ODE CHARACTER]: changing avatar tilt"); | 571 | //m_log.Debug("[ODE CHARACTER]: changing avatar tilt"); |
572 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, xTiltComponent); | 572 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LowStop, xTiltComponent); |
573 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, xTiltComponent); // must be same as lowstop, else a different, spurious tilt is introduced | 573 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop, xTiltComponent); // must be same as lowstop, else a different, spurious tilt is introduced |
574 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, yTiltComponent); | 574 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, yTiltComponent); |
575 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, yTiltComponent); // same as lowstop | 575 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, yTiltComponent); // same as lowstop |
576 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, 0f); | 576 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, 0f); |
577 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0f); // same as lowstop | 577 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0f); // same as lowstop |
578 | } | 578 | } |
579 | 579 | ||
580 | /// <summary> | 580 | /// <summary> |
@@ -805,11 +805,11 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
805 | 805 | ||
806 | if (m_pidControllerActive == false) | 806 | if (m_pidControllerActive == false) |
807 | { | 807 | { |
808 | _zeroPosition = d.BodyGetPosition(Body); | 808 | _zeroPosition = SafeNativeMethods.BodyGetPosition(Body); |
809 | } | 809 | } |
810 | //PidStatus = true; | 810 | //PidStatus = true; |
811 | 811 | ||
812 | d.Vector3 localpos = d.BodyGetPosition(Body); | 812 | SafeNativeMethods.Vector3 localpos = SafeNativeMethods.BodyGetPosition(Body); |
813 | Vector3 localPos = new Vector3(localpos.X, localpos.Y, localpos.Z); | 813 | Vector3 localPos = new Vector3(localpos.X, localpos.Y, localpos.Z); |
814 | 814 | ||
815 | if (!localPos.IsFinite()) | 815 | if (!localPos.IsFinite()) |
@@ -824,7 +824,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
824 | } | 824 | } |
825 | 825 | ||
826 | Vector3 vec = Vector3.Zero; | 826 | Vector3 vec = Vector3.Zero; |
827 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 827 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
828 | 828 | ||
829 | // m_log.DebugFormat( | 829 | // m_log.DebugFormat( |
830 | // "[ODE CHARACTER]: Current velocity in Move() is <{0},{1},{2}>, target {3} for {4}", | 830 | // "[ODE CHARACTER]: Current velocity in Move() is <{0},{1},{2}>, target {3} for {4}", |
@@ -848,7 +848,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
848 | if (!_zeroFlag) | 848 | if (!_zeroFlag) |
849 | { | 849 | { |
850 | _zeroFlag = true; | 850 | _zeroFlag = true; |
851 | _zeroPosition = d.BodyGetPosition(Body); | 851 | _zeroPosition = SafeNativeMethods.BodyGetPosition(Body); |
852 | } | 852 | } |
853 | 853 | ||
854 | if (m_pidControllerActive) | 854 | if (m_pidControllerActive) |
@@ -858,7 +858,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
858 | // Avatar to Avatar collisions | 858 | // Avatar to Avatar collisions |
859 | // Prim to avatar collisions | 859 | // Prim to avatar collisions |
860 | 860 | ||
861 | d.Vector3 pos = d.BodyGetPosition(Body); | 861 | SafeNativeMethods.Vector3 pos = SafeNativeMethods.BodyGetPosition(Body); |
862 | vec.X = (_target_velocity.X - vel.X) * (PID_D) + (_zeroPosition.X - pos.X) * (PID_P * 2); | 862 | vec.X = (_target_velocity.X - vel.X) * (PID_D) + (_zeroPosition.X - pos.X) * (PID_P * 2); |
863 | vec.Y = (_target_velocity.Y - vel.Y) * (PID_D) + (_zeroPosition.Y - pos.Y)* (PID_P * 2); | 863 | vec.Y = (_target_velocity.Y - vel.Y) * (PID_D) + (_zeroPosition.Y - pos.Y)* (PID_P * 2); |
864 | if (flying) | 864 | if (flying) |
@@ -906,7 +906,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
906 | { | 906 | { |
907 | // We're colliding with something and we're not flying but we're moving | 907 | // We're colliding with something and we're not flying but we're moving |
908 | // This means we're walking or running. | 908 | // This means we're walking or running. |
909 | d.Vector3 pos = d.BodyGetPosition(Body); | 909 | SafeNativeMethods.Vector3 pos = SafeNativeMethods.BodyGetPosition(Body); |
910 | vec.Z = (_target_velocity.Z - vel.Z) * PID_D + (_zeroPosition.Z - pos.Z) * PID_P; | 910 | vec.Z = (_target_velocity.Z - vel.Z) * PID_D + (_zeroPosition.Z - pos.Z) * PID_P; |
911 | vec.X = ((_target_velocity.X - vel.X) / 1.2f) * PID_D; | 911 | vec.X = ((_target_velocity.X - vel.X) / 1.2f) * PID_D; |
912 | vec.Y = ((_target_velocity.Y - vel.Y) / 1.2f) * PID_D; | 912 | vec.Y = ((_target_velocity.Y - vel.Y) / 1.2f) * PID_D; |
@@ -940,7 +940,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
940 | if (vec.IsFinite()) | 940 | if (vec.IsFinite()) |
941 | { | 941 | { |
942 | // Apply the total force acting on this avatar | 942 | // Apply the total force acting on this avatar |
943 | d.BodyAddForce(Body, vec.X, vec.Y, vec.Z); | 943 | SafeNativeMethods.BodyAddForce(Body, vec.X, vec.Y, vec.Z); |
944 | 944 | ||
945 | if (!_zeroFlag) | 945 | if (!_zeroFlag) |
946 | AlignAvatarTiltWithCurrentDirectionOfMovement(vec); | 946 | AlignAvatarTiltWithCurrentDirectionOfMovement(vec); |
@@ -956,7 +956,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
956 | return; | 956 | return; |
957 | } | 957 | } |
958 | 958 | ||
959 | d.Vector3 newVel = d.BodyGetLinearVel(Body); | 959 | SafeNativeMethods.Vector3 newVel = SafeNativeMethods.BodyGetLinearVel(Body); |
960 | if (newVel.X >= 256 || newVel.X <= 256 || newVel.Y >= 256 || newVel.Y <= 256 || newVel.Z >= 256 || newVel.Z <= 256) | 960 | if (newVel.X >= 256 || newVel.X <= 256 || newVel.Y >= 256 || newVel.Y <= 256 || newVel.Z >= 256 || newVel.Z <= 256) |
961 | { | 961 | { |
962 | // m_log.DebugFormat( | 962 | // m_log.DebugFormat( |
@@ -972,7 +972,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
972 | else | 972 | else |
973 | newVel.Z = Util.Clamp<float>(newVel.Z, -255f, 255f); | 973 | newVel.Z = Util.Clamp<float>(newVel.Z, -255f, 255f); |
974 | 974 | ||
975 | d.BodySetLinearVel(Body, newVel.X, newVel.Y, newVel.Z); | 975 | SafeNativeMethods.BodySetLinearVel(Body, newVel.X, newVel.Y, newVel.Z); |
976 | } | 976 | } |
977 | } | 977 | } |
978 | 978 | ||
@@ -985,16 +985,16 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
985 | internal void UpdatePositionAndVelocity(List<OdeCharacter> defects) | 985 | internal void UpdatePositionAndVelocity(List<OdeCharacter> defects) |
986 | { | 986 | { |
987 | // no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit! | 987 | // no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit! |
988 | d.Vector3 newPos; | 988 | SafeNativeMethods.Vector3 newPos; |
989 | try | 989 | try |
990 | { | 990 | { |
991 | newPos = d.BodyGetPosition(Body); | 991 | newPos = SafeNativeMethods.BodyGetPosition(Body); |
992 | } | 992 | } |
993 | catch (NullReferenceException) | 993 | catch (NullReferenceException) |
994 | { | 994 | { |
995 | bad = true; | 995 | bad = true; |
996 | defects.Add(this); | 996 | defects.Add(this); |
997 | newPos = new d.Vector3(_position.X, _position.Y, _position.Z); | 997 | newPos = new SafeNativeMethods.Vector3(_position.X, _position.Y, _position.Z); |
998 | base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem! | 998 | base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem! |
999 | m_log.WarnFormat("[ODE CHARACTER]: Avatar Null reference for Avatar {0}, physical actor {1}", Name, m_uuid); | 999 | m_log.WarnFormat("[ODE CHARACTER]: Avatar Null reference for Avatar {0}, physical actor {1}", Name, m_uuid); |
1000 | 1000 | ||
@@ -1031,11 +1031,11 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1031 | else | 1031 | else |
1032 | { | 1032 | { |
1033 | m_lastUpdateSent = false; | 1033 | m_lastUpdateSent = false; |
1034 | d.Vector3 newVelocity; | 1034 | SafeNativeMethods.Vector3 newVelocity; |
1035 | 1035 | ||
1036 | try | 1036 | try |
1037 | { | 1037 | { |
1038 | newVelocity = d.BodyGetLinearVel(Body); | 1038 | newVelocity = SafeNativeMethods.BodyGetLinearVel(Body); |
1039 | } | 1039 | } |
1040 | catch (NullReferenceException) | 1040 | catch (NullReferenceException) |
1041 | { | 1041 | { |
@@ -1102,14 +1102,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1102 | } | 1102 | } |
1103 | 1103 | ||
1104 | // lock (OdeScene.UniversalColliderSyncObject) | 1104 | // lock (OdeScene.UniversalColliderSyncObject) |
1105 | Shell = d.CreateCapsule(_parent_scene.space, CAPSULE_RADIUS, CAPSULE_LENGTH); | 1105 | Shell = SafeNativeMethods.CreateCapsule(_parent_scene.space, CAPSULE_RADIUS, CAPSULE_LENGTH); |
1106 | 1106 | ||
1107 | d.GeomSetCategoryBits(Shell, (uint)m_collisionCategories); | 1107 | SafeNativeMethods.GeomSetCategoryBits(Shell, (uint)m_collisionCategories); |
1108 | d.GeomSetCollideBits(Shell, (uint)m_collisionFlags); | 1108 | SafeNativeMethods.GeomSetCollideBits(Shell, (uint)m_collisionFlags); |
1109 | 1109 | ||
1110 | d.MassSetCapsuleTotal(out ShellMass, m_mass, 2, CAPSULE_RADIUS, CAPSULE_LENGTH); | 1110 | SafeNativeMethods.MassSetCapsuleTotal(out ShellMass, m_mass, 2, CAPSULE_RADIUS, CAPSULE_LENGTH); |
1111 | Body = d.BodyCreate(_parent_scene.world); | 1111 | Body = SafeNativeMethods.BodyCreate(_parent_scene.world); |
1112 | d.BodySetPosition(Body, npositionX, npositionY, npositionZ); | 1112 | SafeNativeMethods.BodySetPosition(Body, npositionX, npositionY, npositionZ); |
1113 | 1113 | ||
1114 | _position.X = npositionX; | 1114 | _position.X = npositionX; |
1115 | _position.Y = npositionY; | 1115 | _position.Y = npositionY; |
@@ -1117,45 +1117,45 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1117 | 1117 | ||
1118 | m_taintPosition = _position; | 1118 | m_taintPosition = _position; |
1119 | 1119 | ||
1120 | d.BodySetMass(Body, ref ShellMass); | 1120 | SafeNativeMethods.BodySetMass(Body, ref ShellMass); |
1121 | d.Matrix3 m_caprot; | 1121 | SafeNativeMethods.Matrix3 m_caprot; |
1122 | // 90 Stand up on the cap of the capped cyllinder | 1122 | // 90 Stand up on the cap of the capped cyllinder |
1123 | if (_parent_scene.IsAvCapsuleTilted) | 1123 | if (_parent_scene.IsAvCapsuleTilted) |
1124 | { | 1124 | { |
1125 | d.RFromAxisAndAngle(out m_caprot, 1, 0, 1, (float)(Math.PI / 2)); | 1125 | SafeNativeMethods.RFromAxisAndAngle(out m_caprot, 1, 0, 1, (float)(Math.PI / 2)); |
1126 | } | 1126 | } |
1127 | else | 1127 | else |
1128 | { | 1128 | { |
1129 | d.RFromAxisAndAngle(out m_caprot, 0, 0, 1, (float)(Math.PI / 2)); | 1129 | SafeNativeMethods.RFromAxisAndAngle(out m_caprot, 0, 0, 1, (float)(Math.PI / 2)); |
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | d.GeomSetRotation(Shell, ref m_caprot); | 1132 | SafeNativeMethods.GeomSetRotation(Shell, ref m_caprot); |
1133 | d.BodySetRotation(Body, ref m_caprot); | 1133 | SafeNativeMethods.BodySetRotation(Body, ref m_caprot); |
1134 | 1134 | ||
1135 | d.GeomSetBody(Shell, Body); | 1135 | SafeNativeMethods.GeomSetBody(Shell, Body); |
1136 | 1136 | ||
1137 | // The purpose of the AMotor here is to keep the avatar's physical | 1137 | // The purpose of the AMotor here is to keep the avatar's physical |
1138 | // surrogate from rotating while moving | 1138 | // surrogate from rotating while moving |
1139 | Amotor = d.JointCreateAMotor(_parent_scene.world, IntPtr.Zero); | 1139 | Amotor = SafeNativeMethods.JointCreateAMotor(_parent_scene.world, IntPtr.Zero); |
1140 | d.JointAttach(Amotor, Body, IntPtr.Zero); | 1140 | SafeNativeMethods.JointAttach(Amotor, Body, IntPtr.Zero); |
1141 | d.JointSetAMotorMode(Amotor, dAMotorEuler); | 1141 | SafeNativeMethods.JointSetAMotorMode(Amotor, dAMotorEuler); |
1142 | d.JointSetAMotorNumAxes(Amotor, 3); | 1142 | SafeNativeMethods.JointSetAMotorNumAxes(Amotor, 3); |
1143 | d.JointSetAMotorAxis(Amotor, 0, 0, 1, 0, 0); | 1143 | SafeNativeMethods.JointSetAMotorAxis(Amotor, 0, 0, 1, 0, 0); |
1144 | d.JointSetAMotorAxis(Amotor, 1, 0, 0, 1, 0); | 1144 | SafeNativeMethods.JointSetAMotorAxis(Amotor, 1, 0, 0, 1, 0); |
1145 | d.JointSetAMotorAxis(Amotor, 2, 0, 0, 0, 1); | 1145 | SafeNativeMethods.JointSetAMotorAxis(Amotor, 2, 0, 0, 0, 1); |
1146 | d.JointSetAMotorAngle(Amotor, 0, 0); | 1146 | SafeNativeMethods.JointSetAMotorAngle(Amotor, 0, 0); |
1147 | d.JointSetAMotorAngle(Amotor, 1, 0); | 1147 | SafeNativeMethods.JointSetAMotorAngle(Amotor, 1, 0); |
1148 | d.JointSetAMotorAngle(Amotor, 2, 0); | 1148 | SafeNativeMethods.JointSetAMotorAngle(Amotor, 2, 0); |
1149 | 1149 | ||
1150 | // These lowstops and high stops are effectively (no wiggle room) | 1150 | // These lowstops and high stops are effectively (no wiggle room) |
1151 | if (_parent_scene.IsAvCapsuleTilted) | 1151 | if (_parent_scene.IsAvCapsuleTilted) |
1152 | { | 1152 | { |
1153 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, -0.000000000001f); | 1153 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LowStop, -0.000000000001f); |
1154 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0.000000000001f); | 1154 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0.000000000001f); |
1155 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, -0.000000000001f); | 1155 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, -0.000000000001f); |
1156 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0.000000000001f); | 1156 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0.000000000001f); |
1157 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0.000000000001f); | 1157 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0.000000000001f); |
1158 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0.000000000001f); | 1158 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0.000000000001f); |
1159 | } | 1159 | } |
1160 | else | 1160 | else |
1161 | { | 1161 | { |
@@ -1167,18 +1167,18 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1167 | // to be comprehended in their entirety. | 1167 | // to be comprehended in their entirety. |
1168 | #endregion | 1168 | #endregion |
1169 | AlignAvatarTiltWithCurrentDirectionOfMovement(Vector3.Zero); | 1169 | AlignAvatarTiltWithCurrentDirectionOfMovement(Vector3.Zero); |
1170 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, 0.08f); | 1170 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LowStop, 0.08f); |
1171 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0f); | 1171 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -0f); |
1172 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, 0.08f); | 1172 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, 0.08f); |
1173 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0.08f); // must be same as lowstop, else a different, spurious tilt is introduced | 1173 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 0.08f); // must be same as lowstop, else a different, spurious tilt is introduced |
1174 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0f); // same as lowstop | 1174 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 0f); // same as lowstop |
1175 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0.08f); // same as lowstop | 1175 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 0.08f); // same as lowstop |
1176 | } | 1176 | } |
1177 | 1177 | ||
1178 | // Fudge factor is 1f by default, we're setting it to 0. We don't want it to Fudge or the | 1178 | // Fudge factor is 1f by default, we're setting it to 0. We don't want it to Fudge or the |
1179 | // capped cyllinder will fall over | 1179 | // capped cyllinder will fall over |
1180 | d.JointSetAMotorParam(Amotor, (int)dParam.FudgeFactor, 0f); | 1180 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.FudgeFactor, 0f); |
1181 | d.JointSetAMotorParam(Amotor, (int)dParam.FMax, tensor); | 1181 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)dParam.FMax, tensor); |
1182 | 1182 | ||
1183 | //d.Matrix3 bodyrotation = d.BodyGetRotation(Body); | 1183 | //d.Matrix3 bodyrotation = d.BodyGetRotation(Body); |
1184 | //d.QfromR( | 1184 | //d.QfromR( |
@@ -1217,7 +1217,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1217 | if (Amotor != IntPtr.Zero) | 1217 | if (Amotor != IntPtr.Zero) |
1218 | { | 1218 | { |
1219 | // Kill the Amotor | 1219 | // Kill the Amotor |
1220 | d.JointDestroy(Amotor); | 1220 | SafeNativeMethods.JointDestroy(Amotor); |
1221 | Amotor = IntPtr.Zero; | 1221 | Amotor = IntPtr.Zero; |
1222 | } | 1222 | } |
1223 | 1223 | ||
@@ -1227,14 +1227,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1227 | if (Body != IntPtr.Zero) | 1227 | if (Body != IntPtr.Zero) |
1228 | { | 1228 | { |
1229 | //kill the body | 1229 | //kill the body |
1230 | d.BodyDestroy(Body); | 1230 | SafeNativeMethods.BodyDestroy(Body); |
1231 | Body = IntPtr.Zero; | 1231 | Body = IntPtr.Zero; |
1232 | } | 1232 | } |
1233 | 1233 | ||
1234 | if (Shell != IntPtr.Zero) | 1234 | if (Shell != IntPtr.Zero) |
1235 | { | 1235 | { |
1236 | // lock (OdeScene.UniversalColliderSyncObject) | 1236 | // lock (OdeScene.UniversalColliderSyncObject) |
1237 | d.GeomDestroy(Shell); | 1237 | SafeNativeMethods.GeomDestroy(Shell); |
1238 | 1238 | ||
1239 | _parent_scene.geom_name_map.Remove(Shell); | 1239 | _parent_scene.geom_name_map.Remove(Shell); |
1240 | _parent_scene.actor_name_map.Remove(Shell); | 1240 | _parent_scene.actor_name_map.Remove(Shell); |
@@ -1325,7 +1325,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1325 | { | 1325 | { |
1326 | if (Body != IntPtr.Zero) | 1326 | if (Body != IntPtr.Zero) |
1327 | { | 1327 | { |
1328 | d.BodySetPosition(Body, m_taintPosition.X, m_taintPosition.Y, m_taintPosition.Z); | 1328 | SafeNativeMethods.BodySetPosition(Body, m_taintPosition.X, m_taintPosition.Y, m_taintPosition.Z); |
1329 | _position = m_taintPosition; | 1329 | _position = m_taintPosition; |
1330 | } | 1330 | } |
1331 | } | 1331 | } |
@@ -1337,7 +1337,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1337 | // FIXME: This is not a good solution since it's subject to a race condition if a force is another | 1337 | // FIXME: This is not a good solution since it's subject to a race condition if a force is another |
1338 | // thread sets a new force while we're in this loop (since it could be obliterated by | 1338 | // thread sets a new force while we're in this loop (since it could be obliterated by |
1339 | // m_taintForce = Vector3.Zero. Need to lock ProcessTaints() when we set a new tainted force. | 1339 | // m_taintForce = Vector3.Zero. Need to lock ProcessTaints() when we set a new tainted force. |
1340 | d.BodyAddForce(Body, m_taintForce.X, m_taintForce.Y, m_taintForce.Z); | 1340 | SafeNativeMethods.BodyAddForce(Body, m_taintForce.X, m_taintForce.Y, m_taintForce.Z); |
1341 | } | 1341 | } |
1342 | 1342 | ||
1343 | m_taintForce = Vector3.Zero; | 1343 | m_taintForce = Vector3.Zero; |
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODEDynamics.cs b/OpenSim/Region/PhysicsModules/Ode/ODEDynamics.cs index 7e95d7f..39aea59 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODEDynamics.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODEDynamics.cs | |||
@@ -93,7 +93,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
93 | private float m_linearMotorDecayTimescale = 0; | 93 | private float m_linearMotorDecayTimescale = 0; |
94 | private float m_linearMotorTimescale = 0; | 94 | private float m_linearMotorTimescale = 0; |
95 | private Vector3 m_lastLinearVelocityVector = Vector3.Zero; | 95 | private Vector3 m_lastLinearVelocityVector = Vector3.Zero; |
96 | private d.Vector3 m_lastPositionVector = new d.Vector3(); | 96 | private SafeNativeMethods.Vector3 m_lastPositionVector = new SafeNativeMethods.Vector3(); |
97 | // private bool m_LinearMotorSetLastFrame = false; | 97 | // private bool m_LinearMotorSetLastFrame = false; |
98 | // private Vector3 m_linearMotorOffset = Vector3.Zero; | 98 | // private Vector3 m_linearMotorOffset = Vector3.Zero; |
99 | 99 | ||
@@ -611,7 +611,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
611 | { | 611 | { |
612 | m_lastLinearVelocityVector = Vector3.Zero; | 612 | m_lastLinearVelocityVector = Vector3.Zero; |
613 | m_lastAngularVelocity = Vector3.Zero; | 613 | m_lastAngularVelocity = Vector3.Zero; |
614 | m_lastPositionVector = d.BodyGetPosition(Body); | 614 | m_lastPositionVector = SafeNativeMethods.BodyGetPosition(Body); |
615 | } | 615 | } |
616 | 616 | ||
617 | internal void Step(float pTimestep, OdeScene pParentScene) | 617 | internal void Step(float pTimestep, OdeScene pParentScene) |
@@ -631,8 +631,8 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
631 | { | 631 | { |
632 | if (!m_linearMotorDirection.ApproxEquals(Vector3.Zero, 0.01f)) // requested m_linearMotorDirection is significant | 632 | if (!m_linearMotorDirection.ApproxEquals(Vector3.Zero, 0.01f)) // requested m_linearMotorDirection is significant |
633 | { | 633 | { |
634 | if (!d.BodyIsEnabled(Body)) | 634 | if (!SafeNativeMethods.BodyIsEnabled(Body)) |
635 | d.BodyEnable(Body); | 635 | SafeNativeMethods.BodyEnable(Body); |
636 | 636 | ||
637 | // add drive to body | 637 | // add drive to body |
638 | Vector3 addAmount = m_linearMotorDirection/(m_linearMotorTimescale/pTimestep); | 638 | Vector3 addAmount = m_linearMotorDirection/(m_linearMotorTimescale/pTimestep); |
@@ -662,7 +662,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
662 | 662 | ||
663 | // convert requested object velocity to world-referenced vector | 663 | // convert requested object velocity to world-referenced vector |
664 | m_dir = m_lastLinearVelocityVector; | 664 | m_dir = m_lastLinearVelocityVector; |
665 | d.Quaternion rot = d.BodyGetQuaternion(Body); | 665 | SafeNativeMethods.Quaternion rot = SafeNativeMethods.BodyGetQuaternion(Body); |
666 | Quaternion rotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); // rotq = rotation of object | 666 | Quaternion rotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); // rotq = rotation of object |
667 | m_dir *= rotq; // apply obj rotation to velocity vector | 667 | m_dir *= rotq; // apply obj rotation to velocity vector |
668 | 668 | ||
@@ -673,15 +673,15 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
673 | Vector3 grav = Vector3.Zero; | 673 | Vector3 grav = Vector3.Zero; |
674 | // There is some gravity, make a gravity force vector | 674 | // There is some gravity, make a gravity force vector |
675 | // that is applied after object velocity. | 675 | // that is applied after object velocity. |
676 | d.Mass objMass; | 676 | SafeNativeMethods.Mass objMass; |
677 | d.BodyGetMass(Body, out objMass); | 677 | SafeNativeMethods.BodyGetMass(Body, out objMass); |
678 | // m_VehicleBuoyancy: -1=2g; 0=1g; 1=0g; | 678 | // m_VehicleBuoyancy: -1=2g; 0=1g; 1=0g; |
679 | grav.Z = _pParentScene.gravityz * objMass.mass * (1f - m_VehicleBuoyancy); | 679 | grav.Z = _pParentScene.gravityz * objMass.mass * (1f - m_VehicleBuoyancy); |
680 | // Preserve the current Z velocity | 680 | // Preserve the current Z velocity |
681 | d.Vector3 vel_now = d.BodyGetLinearVel(Body); | 681 | SafeNativeMethods.Vector3 vel_now = SafeNativeMethods.BodyGetLinearVel(Body); |
682 | m_dir.Z = vel_now.Z; // Preserve the accumulated falling velocity | 682 | m_dir.Z = vel_now.Z; // Preserve the accumulated falling velocity |
683 | 683 | ||
684 | d.Vector3 pos = d.BodyGetPosition(Body); | 684 | SafeNativeMethods.Vector3 pos = SafeNativeMethods.BodyGetPosition(Body); |
685 | // Vector3 accel = new Vector3(-(m_dir.X - m_lastLinearVelocityVector.X / 0.1f), -(m_dir.Y - m_lastLinearVelocityVector.Y / 0.1f), m_dir.Z - m_lastLinearVelocityVector.Z / 0.1f); | 685 | // Vector3 accel = new Vector3(-(m_dir.X - m_lastLinearVelocityVector.X / 0.1f), -(m_dir.Y - m_lastLinearVelocityVector.Y / 0.1f), m_dir.Z - m_lastLinearVelocityVector.Z / 0.1f); |
686 | Vector3 posChange = new Vector3(); | 686 | Vector3 posChange = new Vector3(); |
687 | posChange.X = pos.X - m_lastPositionVector.X; | 687 | posChange.X = pos.X - m_lastPositionVector.X; |
@@ -693,33 +693,33 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
693 | if (pos.X >= (m_BlockingEndPoint.X - (float)1)) | 693 | if (pos.X >= (m_BlockingEndPoint.X - (float)1)) |
694 | { | 694 | { |
695 | pos.X -= posChange.X + 1; | 695 | pos.X -= posChange.X + 1; |
696 | d.BodySetPosition(Body, pos.X, pos.Y, pos.Z); | 696 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, pos.Z); |
697 | } | 697 | } |
698 | if (pos.Y >= (m_BlockingEndPoint.Y - (float)1)) | 698 | if (pos.Y >= (m_BlockingEndPoint.Y - (float)1)) |
699 | { | 699 | { |
700 | pos.Y -= posChange.Y + 1; | 700 | pos.Y -= posChange.Y + 1; |
701 | d.BodySetPosition(Body, pos.X, pos.Y, pos.Z); | 701 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, pos.Z); |
702 | } | 702 | } |
703 | if (pos.Z >= (m_BlockingEndPoint.Z - (float)1)) | 703 | if (pos.Z >= (m_BlockingEndPoint.Z - (float)1)) |
704 | { | 704 | { |
705 | pos.Z -= posChange.Z + 1; | 705 | pos.Z -= posChange.Z + 1; |
706 | d.BodySetPosition(Body, pos.X, pos.Y, pos.Z); | 706 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, pos.Z); |
707 | } | 707 | } |
708 | if (pos.X <= 0) | 708 | if (pos.X <= 0) |
709 | { | 709 | { |
710 | pos.X += posChange.X + 1; | 710 | pos.X += posChange.X + 1; |
711 | d.BodySetPosition(Body, pos.X, pos.Y, pos.Z); | 711 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, pos.Z); |
712 | } | 712 | } |
713 | if (pos.Y <= 0) | 713 | if (pos.Y <= 0) |
714 | { | 714 | { |
715 | pos.Y += posChange.Y + 1; | 715 | pos.Y += posChange.Y + 1; |
716 | d.BodySetPosition(Body, pos.X, pos.Y, pos.Z); | 716 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, pos.Z); |
717 | } | 717 | } |
718 | } | 718 | } |
719 | if (pos.Z < _pParentScene.GetTerrainHeightAtXY(pos.X, pos.Y)) | 719 | if (pos.Z < _pParentScene.GetTerrainHeightAtXY(pos.X, pos.Y)) |
720 | { | 720 | { |
721 | pos.Z = _pParentScene.GetTerrainHeightAtXY(pos.X, pos.Y) + 2; | 721 | pos.Z = _pParentScene.GetTerrainHeightAtXY(pos.X, pos.Y) + 2; |
722 | d.BodySetPosition(Body, pos.X, pos.Y, pos.Z); | 722 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, pos.Z); |
723 | } | 723 | } |
724 | 724 | ||
725 | // Check if hovering | 725 | // Check if hovering |
@@ -748,7 +748,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
748 | { | 748 | { |
749 | if ((pos.Z - m_VhoverTargetHeight) > .2 || (pos.Z - m_VhoverTargetHeight) < -.2) | 749 | if ((pos.Z - m_VhoverTargetHeight) > .2 || (pos.Z - m_VhoverTargetHeight) < -.2) |
750 | { | 750 | { |
751 | d.BodySetPosition(Body, pos.X, pos.Y, m_VhoverTargetHeight); | 751 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, m_VhoverTargetHeight); |
752 | } | 752 | } |
753 | } | 753 | } |
754 | else | 754 | else |
@@ -815,12 +815,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
815 | m_dir.Z = 0; | 815 | m_dir.Z = 0; |
816 | } | 816 | } |
817 | 817 | ||
818 | m_lastPositionVector = d.BodyGetPosition(Body); | 818 | m_lastPositionVector = SafeNativeMethods.BodyGetPosition(Body); |
819 | 819 | ||
820 | // Apply velocity | 820 | // Apply velocity |
821 | d.BodySetLinearVel(Body, m_dir.X, m_dir.Y, m_dir.Z); | 821 | SafeNativeMethods.BodySetLinearVel(Body, m_dir.X, m_dir.Y, m_dir.Z); |
822 | // apply gravity force | 822 | // apply gravity force |
823 | d.BodyAddForce(Body, grav.X, grav.Y, grav.Z); | 823 | SafeNativeMethods.BodyAddForce(Body, grav.X, grav.Y, grav.Z); |
824 | 824 | ||
825 | 825 | ||
826 | // apply friction | 826 | // apply friction |
@@ -841,7 +841,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
841 | */ | 841 | */ |
842 | 842 | ||
843 | // Get what the body is doing, this includes 'external' influences | 843 | // Get what the body is doing, this includes 'external' influences |
844 | d.Vector3 angularVelocity = d.BodyGetAngularVel(Body); | 844 | SafeNativeMethods.Vector3 angularVelocity = SafeNativeMethods.BodyGetAngularVel(Body); |
845 | // Vector3 angularVelocity = Vector3.Zero; | 845 | // Vector3 angularVelocity = Vector3.Zero; |
846 | 846 | ||
847 | if (m_angularMotorApply > 0) | 847 | if (m_angularMotorApply > 0) |
@@ -874,7 +874,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
874 | { | 874 | { |
875 | float VAservo = 0.2f / (m_verticalAttractionTimescale * pTimestep); | 875 | float VAservo = 0.2f / (m_verticalAttractionTimescale * pTimestep); |
876 | // get present body rotation | 876 | // get present body rotation |
877 | d.Quaternion rot = d.BodyGetQuaternion(Body); | 877 | SafeNativeMethods.Quaternion rot = SafeNativeMethods.BodyGetQuaternion(Body); |
878 | Quaternion rotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); | 878 | Quaternion rotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); |
879 | // make a vector pointing up | 879 | // make a vector pointing up |
880 | Vector3 verterr = Vector3.Zero; | 880 | Vector3 verterr = Vector3.Zero; |
@@ -923,7 +923,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
923 | 923 | ||
924 | if (!m_lastAngularVelocity.ApproxEquals(Vector3.Zero, 0.01f)) | 924 | if (!m_lastAngularVelocity.ApproxEquals(Vector3.Zero, 0.01f)) |
925 | { | 925 | { |
926 | if (!d.BodyIsEnabled (Body)) d.BodyEnable (Body); | 926 | if (!SafeNativeMethods.BodyIsEnabled (Body)) SafeNativeMethods.BodyEnable (Body); |
927 | } | 927 | } |
928 | else | 928 | else |
929 | { | 929 | { |
@@ -935,14 +935,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
935 | m_lastAngularVelocity -= m_lastAngularVelocity * decayamount; | 935 | m_lastAngularVelocity -= m_lastAngularVelocity * decayamount; |
936 | 936 | ||
937 | // Apply to the body | 937 | // Apply to the body |
938 | d.BodySetAngularVel (Body, m_lastAngularVelocity.X, m_lastAngularVelocity.Y, m_lastAngularVelocity.Z); | 938 | SafeNativeMethods.BodySetAngularVel (Body, m_lastAngularVelocity.X, m_lastAngularVelocity.Y, m_lastAngularVelocity.Z); |
939 | 939 | ||
940 | } //end MoveAngular | 940 | } //end MoveAngular |
941 | internal void LimitRotation(float timestep) | 941 | internal void LimitRotation(float timestep) |
942 | { | 942 | { |
943 | d.Quaternion rot = d.BodyGetQuaternion(Body); | 943 | SafeNativeMethods.Quaternion rot = SafeNativeMethods.BodyGetQuaternion(Body); |
944 | Quaternion rotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); // rotq = rotation of object | 944 | Quaternion rotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); // rotq = rotation of object |
945 | d.Quaternion m_rot = new d.Quaternion(); | 945 | SafeNativeMethods.Quaternion m_rot = new SafeNativeMethods.Quaternion(); |
946 | bool changed = false; | 946 | bool changed = false; |
947 | m_rot.X = rotq.X; | 947 | m_rot.X = rotq.X; |
948 | m_rot.Y = rotq.Y; | 948 | m_rot.Y = rotq.Y; |
@@ -975,7 +975,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
975 | changed = true; | 975 | changed = true; |
976 | } | 976 | } |
977 | if (changed) | 977 | if (changed) |
978 | d.BodySetQuaternion(Body, ref m_rot); | 978 | SafeNativeMethods.BodySetQuaternion(Body, ref m_rot); |
979 | } | 979 | } |
980 | } | 980 | } |
981 | } | 981 | } |
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODEModule.cs b/OpenSim/Region/PhysicsModules/Ode/ODEModule.cs index 22fc84d..2cf7baa 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODEModule.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODEModule.cs | |||
@@ -63,7 +63,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
63 | 63 | ||
64 | // Initializing ODE only when a scene is created allows alternative ODE plugins to co-habit (according to | 64 | // Initializing ODE only when a scene is created allows alternative ODE plugins to co-habit (according to |
65 | // http://opensimulator.org/mantis/view.php?id=2750). | 65 | // http://opensimulator.org/mantis/view.php?id=2750). |
66 | d.InitODE(); | 66 | SafeNativeMethods.InitODE(); |
67 | 67 | ||
68 | m_scene = new OdeScene(scene, m_config, Name, Version); | 68 | m_scene = new OdeScene(scene, m_config, Name, Version); |
69 | } | 69 | } |
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs b/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs index 8934330..b1c3b7c 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs | |||
@@ -212,7 +212,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
212 | 212 | ||
213 | public IntPtr Body = IntPtr.Zero; | 213 | public IntPtr Body = IntPtr.Zero; |
214 | private Vector3 _target_velocity; | 214 | private Vector3 _target_velocity; |
215 | private d.Mass pMass; | 215 | private SafeNativeMethods.Mass pMass; |
216 | 216 | ||
217 | private int m_eventsubscription; | 217 | private int m_eventsubscription; |
218 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); | 218 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); |
@@ -356,13 +356,13 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
356 | 356 | ||
357 | if (m_assetFailed) | 357 | if (m_assetFailed) |
358 | { | 358 | { |
359 | d.GeomSetCategoryBits(prim_geom, 0); | 359 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
360 | d.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); | 360 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); |
361 | } | 361 | } |
362 | else | 362 | else |
363 | { | 363 | { |
364 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 364 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
365 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 365 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
366 | } | 366 | } |
367 | 367 | ||
368 | _parent_scene.geom_name_map[prim_geom] = Name; | 368 | _parent_scene.geom_name_map[prim_geom] = Name; |
@@ -386,7 +386,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
386 | { | 386 | { |
387 | if (IsPhysical && Body != IntPtr.Zero) | 387 | if (IsPhysical && Body != IntPtr.Zero) |
388 | { | 388 | { |
389 | d.BodyEnable(Body); | 389 | SafeNativeMethods.BodyEnable(Body); |
390 | if (m_vehicle.Type != Vehicle.TYPE_NONE) | 390 | if (m_vehicle.Type != Vehicle.TYPE_NONE) |
391 | m_vehicle.Enable(Body, _parent_scene); | 391 | m_vehicle.Enable(Body, _parent_scene); |
392 | } | 392 | } |
@@ -401,7 +401,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
401 | 401 | ||
402 | if (IsPhysical && Body != IntPtr.Zero) | 402 | if (IsPhysical && Body != IntPtr.Zero) |
403 | { | 403 | { |
404 | d.BodyDisable(Body); | 404 | SafeNativeMethods.BodyDisable(Body); |
405 | } | 405 | } |
406 | } | 406 | } |
407 | 407 | ||
@@ -415,22 +415,22 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
415 | if (!childPrim) | 415 | if (!childPrim) |
416 | { | 416 | { |
417 | // Sets the geom to a body | 417 | // Sets the geom to a body |
418 | Body = d.BodyCreate(_parent_scene.world); | 418 | Body = SafeNativeMethods.BodyCreate(_parent_scene.world); |
419 | 419 | ||
420 | setMass(); | 420 | setMass(); |
421 | d.BodySetPosition(Body, _position.X, _position.Y, _position.Z); | 421 | SafeNativeMethods.BodySetPosition(Body, _position.X, _position.Y, _position.Z); |
422 | d.Quaternion myrot = new d.Quaternion(); | 422 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
423 | myrot.X = _orientation.X; | 423 | myrot.X = _orientation.X; |
424 | myrot.Y = _orientation.Y; | 424 | myrot.Y = _orientation.Y; |
425 | myrot.Z = _orientation.Z; | 425 | myrot.Z = _orientation.Z; |
426 | myrot.W = _orientation.W; | 426 | myrot.W = _orientation.W; |
427 | d.BodySetQuaternion(Body, ref myrot); | 427 | SafeNativeMethods.BodySetQuaternion(Body, ref myrot); |
428 | d.GeomSetBody(prim_geom, Body); | 428 | SafeNativeMethods.GeomSetBody(prim_geom, Body); |
429 | 429 | ||
430 | if (m_assetFailed) | 430 | if (m_assetFailed) |
431 | { | 431 | { |
432 | d.GeomSetCategoryBits(prim_geom, 0); | 432 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
433 | d.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); | 433 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); |
434 | } | 434 | } |
435 | else | 435 | else |
436 | { | 436 | { |
@@ -438,14 +438,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
438 | m_collisionFlags |= (CollisionCategories.Land | CollisionCategories.Wind); | 438 | m_collisionFlags |= (CollisionCategories.Land | CollisionCategories.Wind); |
439 | } | 439 | } |
440 | 440 | ||
441 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 441 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
442 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 442 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
443 | 443 | ||
444 | d.BodySetAutoDisableFlag(Body, true); | 444 | SafeNativeMethods.BodySetAutoDisableFlag(Body, true); |
445 | d.BodySetAutoDisableSteps(Body, body_autodisable_frames); | 445 | SafeNativeMethods.BodySetAutoDisableSteps(Body, body_autodisable_frames); |
446 | 446 | ||
447 | // disconnect from world gravity so we can apply buoyancy | 447 | // disconnect from world gravity so we can apply buoyancy |
448 | d.BodySetGravityMode (Body, false); | 448 | SafeNativeMethods.BodySetGravityMode (Body, false); |
449 | 449 | ||
450 | m_interpenetrationcount = 0; | 450 | m_interpenetrationcount = 0; |
451 | m_collisionscore = 0; | 451 | m_collisionscore = 0; |
@@ -787,8 +787,8 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
787 | 787 | ||
788 | //m_log.Info("[PHYSICS]: New Mass: " + newmass.ToString()); | 788 | //m_log.Info("[PHYSICS]: New Mass: " + newmass.ToString()); |
789 | 789 | ||
790 | d.MassSetBoxTotal(out pMass, newmass, _size.X, _size.Y, _size.Z); | 790 | SafeNativeMethods.MassSetBoxTotal(out pMass, newmass, _size.X, _size.Y, _size.Z); |
791 | d.BodySetMass(Body, ref pMass); | 791 | SafeNativeMethods.BodySetMass(Body, ref pMass); |
792 | } | 792 | } |
793 | } | 793 | } |
794 | 794 | ||
@@ -796,7 +796,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
796 | { | 796 | { |
797 | if (Body != (IntPtr)0) | 797 | if (Body != (IntPtr)0) |
798 | { | 798 | { |
799 | d.BodySetAngularVel(Body, x, y, z); | 799 | SafeNativeMethods.BodySetAngularVel(Body, x, y, z); |
800 | } | 800 | } |
801 | } | 801 | } |
802 | 802 | ||
@@ -818,16 +818,16 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
818 | 818 | ||
819 | if (m_assetFailed) | 819 | if (m_assetFailed) |
820 | { | 820 | { |
821 | d.GeomSetCategoryBits(prim_geom, 0); | 821 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
822 | d.GeomSetCollideBits(prim_geom, 0); | 822 | SafeNativeMethods.GeomSetCollideBits(prim_geom, 0); |
823 | } | 823 | } |
824 | else | 824 | else |
825 | { | 825 | { |
826 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 826 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
827 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 827 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
828 | } | 828 | } |
829 | 829 | ||
830 | d.BodyDestroy(Body); | 830 | SafeNativeMethods.BodyDestroy(Body); |
831 | lock (childrenPrim) | 831 | lock (childrenPrim) |
832 | { | 832 | { |
833 | if (childrenPrim.Count > 0) | 833 | if (childrenPrim.Count > 0) |
@@ -851,14 +851,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
851 | 851 | ||
852 | if (m_assetFailed) | 852 | if (m_assetFailed) |
853 | { | 853 | { |
854 | d.GeomSetCategoryBits(prim_geom, 0); | 854 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
855 | d.GeomSetCollideBits(prim_geom, 0); | 855 | SafeNativeMethods.GeomSetCollideBits(prim_geom, 0); |
856 | } | 856 | } |
857 | else | 857 | else |
858 | { | 858 | { |
859 | 859 | ||
860 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 860 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
861 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 861 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
862 | } | 862 | } |
863 | 863 | ||
864 | Body = IntPtr.Zero; | 864 | Body = IntPtr.Zero; |
@@ -915,10 +915,10 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
915 | } | 915 | } |
916 | else | 916 | else |
917 | { | 917 | { |
918 | _triMeshData = d.GeomTriMeshDataCreate(); | 918 | _triMeshData = SafeNativeMethods.GeomTriMeshDataCreate(); |
919 | 919 | ||
920 | d.GeomTriMeshDataBuildSimple(_triMeshData, vertices, vertexStride, vertexCount, indices, indexCount, triStride); | 920 | SafeNativeMethods.GeomTriMeshDataBuildSimple(_triMeshData, vertices, vertexStride, vertexCount, indices, indexCount, triStride); |
921 | d.GeomTriMeshDataPreprocess(_triMeshData); | 921 | SafeNativeMethods.GeomTriMeshDataPreprocess(_triMeshData); |
922 | m_MeshToTriMeshMap[mesh] = _triMeshData; | 922 | m_MeshToTriMeshMap[mesh] = _triMeshData; |
923 | } | 923 | } |
924 | } | 924 | } |
@@ -926,7 +926,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
926 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); | 926 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); |
927 | try | 927 | try |
928 | { | 928 | { |
929 | SetGeom(d.CreateTriMesh(m_targetSpace, _triMeshData, null, null, null)); | 929 | SetGeom(SafeNativeMethods.CreateTriMesh(m_targetSpace, _triMeshData, null, null, null)); |
930 | } | 930 | } |
931 | catch (AccessViolationException) | 931 | catch (AccessViolationException) |
932 | { | 932 | { |
@@ -1032,7 +1032,7 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1032 | { | 1032 | { |
1033 | if (Amotor != IntPtr.Zero) | 1033 | if (Amotor != IntPtr.Zero) |
1034 | { | 1034 | { |
1035 | d.JointDestroy(Amotor); | 1035 | SafeNativeMethods.JointDestroy(Amotor); |
1036 | Amotor = IntPtr.Zero; | 1036 | Amotor = IntPtr.Zero; |
1037 | } | 1037 | } |
1038 | } | 1038 | } |
@@ -1107,7 +1107,7 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1107 | 1107 | ||
1108 | if (Body == IntPtr.Zero) | 1108 | if (Body == IntPtr.Zero) |
1109 | { | 1109 | { |
1110 | Body = d.BodyCreate(_parent_scene.world); | 1110 | Body = SafeNativeMethods.BodyCreate(_parent_scene.world); |
1111 | setMass(); | 1111 | setMass(); |
1112 | } | 1112 | } |
1113 | 1113 | ||
@@ -1123,21 +1123,21 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1123 | 1123 | ||
1124 | foreach (OdePrim prm in childrenPrim) | 1124 | foreach (OdePrim prm in childrenPrim) |
1125 | { | 1125 | { |
1126 | d.Mass m2; | 1126 | SafeNativeMethods.Mass m2; |
1127 | d.MassSetZero(out m2); | 1127 | SafeNativeMethods.MassSetZero(out m2); |
1128 | d.MassSetBoxTotal(out m2, prm.CalculateMass(), prm._size.X, prm._size.Y, prm._size.Z); | 1128 | SafeNativeMethods.MassSetBoxTotal(out m2, prm.CalculateMass(), prm._size.X, prm._size.Y, prm._size.Z); |
1129 | 1129 | ||
1130 | d.Quaternion quat = new d.Quaternion(); | 1130 | SafeNativeMethods.Quaternion quat = new SafeNativeMethods.Quaternion(); |
1131 | quat.W = prm._orientation.W; | 1131 | quat.W = prm._orientation.W; |
1132 | quat.X = prm._orientation.X; | 1132 | quat.X = prm._orientation.X; |
1133 | quat.Y = prm._orientation.Y; | 1133 | quat.Y = prm._orientation.Y; |
1134 | quat.Z = prm._orientation.Z; | 1134 | quat.Z = prm._orientation.Z; |
1135 | 1135 | ||
1136 | d.Matrix3 mat = new d.Matrix3(); | 1136 | SafeNativeMethods.Matrix3 mat = new SafeNativeMethods.Matrix3(); |
1137 | d.RfromQ(out mat, ref quat); | 1137 | SafeNativeMethods.RfromQ(out mat, ref quat); |
1138 | d.MassRotate(ref m2, ref mat); | 1138 | SafeNativeMethods.MassRotate(ref m2, ref mat); |
1139 | d.MassTranslate(ref m2, Position.X - prm.Position.X, Position.Y - prm.Position.Y, Position.Z - prm.Position.Z); | 1139 | SafeNativeMethods.MassTranslate(ref m2, Position.X - prm.Position.X, Position.Y - prm.Position.Y, Position.Z - prm.Position.Z); |
1140 | d.MassAdd(ref pMass, ref m2); | 1140 | SafeNativeMethods.MassAdd(ref pMass, ref m2); |
1141 | } | 1141 | } |
1142 | 1142 | ||
1143 | foreach (OdePrim prm in childrenPrim) | 1143 | foreach (OdePrim prm in childrenPrim) |
@@ -1148,36 +1148,36 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1148 | //Console.WriteLine(" GeomSetCategoryBits 1: " + prm.prim_geom + " - " + (int)prm.m_collisionCategories + " for " + Name); | 1148 | //Console.WriteLine(" GeomSetCategoryBits 1: " + prm.prim_geom + " - " + (int)prm.m_collisionCategories + " for " + Name); |
1149 | if (prm.m_assetFailed) | 1149 | if (prm.m_assetFailed) |
1150 | { | 1150 | { |
1151 | d.GeomSetCategoryBits(prm.prim_geom, 0); | 1151 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, 0); |
1152 | d.GeomSetCollideBits(prm.prim_geom, (uint)prm.BadMeshAssetCollideBits); | 1152 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, (uint)prm.BadMeshAssetCollideBits); |
1153 | } | 1153 | } |
1154 | else | 1154 | else |
1155 | { | 1155 | { |
1156 | d.GeomSetCategoryBits(prm.prim_geom, (uint)prm.m_collisionCategories); | 1156 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, (uint)prm.m_collisionCategories); |
1157 | d.GeomSetCollideBits(prm.prim_geom, (uint)prm.m_collisionFlags); | 1157 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, (uint)prm.m_collisionFlags); |
1158 | } | 1158 | } |
1159 | 1159 | ||
1160 | d.Quaternion quat = new d.Quaternion(); | 1160 | SafeNativeMethods.Quaternion quat = new SafeNativeMethods.Quaternion(); |
1161 | quat.W = prm._orientation.W; | 1161 | quat.W = prm._orientation.W; |
1162 | quat.X = prm._orientation.X; | 1162 | quat.X = prm._orientation.X; |
1163 | quat.Y = prm._orientation.Y; | 1163 | quat.Y = prm._orientation.Y; |
1164 | quat.Z = prm._orientation.Z; | 1164 | quat.Z = prm._orientation.Z; |
1165 | 1165 | ||
1166 | d.Matrix3 mat = new d.Matrix3(); | 1166 | SafeNativeMethods.Matrix3 mat = new SafeNativeMethods.Matrix3(); |
1167 | d.RfromQ(out mat, ref quat); | 1167 | SafeNativeMethods.RfromQ(out mat, ref quat); |
1168 | if (Body != IntPtr.Zero) | 1168 | if (Body != IntPtr.Zero) |
1169 | { | 1169 | { |
1170 | d.GeomSetBody(prm.prim_geom, Body); | 1170 | SafeNativeMethods.GeomSetBody(prm.prim_geom, Body); |
1171 | prm.childPrim = true; | 1171 | prm.childPrim = true; |
1172 | d.GeomSetOffsetWorldPosition(prm.prim_geom, prm.Position.X , prm.Position.Y, prm.Position.Z); | 1172 | SafeNativeMethods.GeomSetOffsetWorldPosition(prm.prim_geom, prm.Position.X , prm.Position.Y, prm.Position.Z); |
1173 | //d.GeomSetOffsetPosition(prim.prim_geom, | 1173 | //d.GeomSetOffsetPosition(prim.prim_geom, |
1174 | // (Position.X - prm.Position.X) - pMass.c.X, | 1174 | // (Position.X - prm.Position.X) - pMass.c.X, |
1175 | // (Position.Y - prm.Position.Y) - pMass.c.Y, | 1175 | // (Position.Y - prm.Position.Y) - pMass.c.Y, |
1176 | // (Position.Z - prm.Position.Z) - pMass.c.Z); | 1176 | // (Position.Z - prm.Position.Z) - pMass.c.Z); |
1177 | d.GeomSetOffsetWorldRotation(prm.prim_geom, ref mat); | 1177 | SafeNativeMethods.GeomSetOffsetWorldRotation(prm.prim_geom, ref mat); |
1178 | //d.GeomSetOffsetRotation(prm.prim_geom, ref mat); | 1178 | //d.GeomSetOffsetRotation(prm.prim_geom, ref mat); |
1179 | d.MassTranslate(ref pMass, -pMass.c.X, -pMass.c.Y, -pMass.c.Z); | 1179 | SafeNativeMethods.MassTranslate(ref pMass, -pMass.c.X, -pMass.c.Y, -pMass.c.Z); |
1180 | d.BodySetMass(Body, ref pMass); | 1180 | SafeNativeMethods.BodySetMass(Body, ref pMass); |
1181 | } | 1181 | } |
1182 | else | 1182 | else |
1183 | { | 1183 | { |
@@ -1197,37 +1197,37 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1197 | 1197 | ||
1198 | if (m_assetFailed) | 1198 | if (m_assetFailed) |
1199 | { | 1199 | { |
1200 | d.GeomSetCategoryBits(prim_geom, 0); | 1200 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
1201 | d.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); | 1201 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); |
1202 | } | 1202 | } |
1203 | else | 1203 | else |
1204 | { | 1204 | { |
1205 | //Console.WriteLine("GeomSetCategoryBits 2: " + prim_geom + " - " + (int)m_collisionCategories + " for " + Name); | 1205 | //Console.WriteLine("GeomSetCategoryBits 2: " + prim_geom + " - " + (int)m_collisionCategories + " for " + Name); |
1206 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 1206 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
1207 | //Console.WriteLine(" Post GeomSetCategoryBits 2"); | 1207 | //Console.WriteLine(" Post GeomSetCategoryBits 2"); |
1208 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 1208 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
1209 | } | 1209 | } |
1210 | 1210 | ||
1211 | d.Quaternion quat2 = new d.Quaternion(); | 1211 | SafeNativeMethods.Quaternion quat2 = new SafeNativeMethods.Quaternion(); |
1212 | quat2.W = _orientation.W; | 1212 | quat2.W = _orientation.W; |
1213 | quat2.X = _orientation.X; | 1213 | quat2.X = _orientation.X; |
1214 | quat2.Y = _orientation.Y; | 1214 | quat2.Y = _orientation.Y; |
1215 | quat2.Z = _orientation.Z; | 1215 | quat2.Z = _orientation.Z; |
1216 | 1216 | ||
1217 | d.Matrix3 mat2 = new d.Matrix3(); | 1217 | SafeNativeMethods.Matrix3 mat2 = new SafeNativeMethods.Matrix3(); |
1218 | d.RfromQ(out mat2, ref quat2); | 1218 | SafeNativeMethods.RfromQ(out mat2, ref quat2); |
1219 | d.GeomSetBody(prim_geom, Body); | 1219 | SafeNativeMethods.GeomSetBody(prim_geom, Body); |
1220 | d.GeomSetOffsetWorldPosition(prim_geom, Position.X - pMass.c.X, Position.Y - pMass.c.Y, Position.Z - pMass.c.Z); | 1220 | SafeNativeMethods.GeomSetOffsetWorldPosition(prim_geom, Position.X - pMass.c.X, Position.Y - pMass.c.Y, Position.Z - pMass.c.Z); |
1221 | //d.GeomSetOffsetPosition(prim.prim_geom, | 1221 | //d.GeomSetOffsetPosition(prim.prim_geom, |
1222 | // (Position.X - prm.Position.X) - pMass.c.X, | 1222 | // (Position.X - prm.Position.X) - pMass.c.X, |
1223 | // (Position.Y - prm.Position.Y) - pMass.c.Y, | 1223 | // (Position.Y - prm.Position.Y) - pMass.c.Y, |
1224 | // (Position.Z - prm.Position.Z) - pMass.c.Z); | 1224 | // (Position.Z - prm.Position.Z) - pMass.c.Z); |
1225 | //d.GeomSetOffsetRotation(prim_geom, ref mat2); | 1225 | //d.GeomSetOffsetRotation(prim_geom, ref mat2); |
1226 | d.MassTranslate(ref pMass, -pMass.c.X, -pMass.c.Y, -pMass.c.Z); | 1226 | SafeNativeMethods.MassTranslate(ref pMass, -pMass.c.X, -pMass.c.Y, -pMass.c.Z); |
1227 | d.BodySetMass(Body, ref pMass); | 1227 | SafeNativeMethods.BodySetMass(Body, ref pMass); |
1228 | 1228 | ||
1229 | d.BodySetAutoDisableFlag(Body, true); | 1229 | SafeNativeMethods.BodySetAutoDisableFlag(Body, true); |
1230 | d.BodySetAutoDisableSteps(Body, body_autodisable_frames); | 1230 | SafeNativeMethods.BodySetAutoDisableSteps(Body, body_autodisable_frames); |
1231 | 1231 | ||
1232 | m_interpenetrationcount = 0; | 1232 | m_interpenetrationcount = 0; |
1233 | m_collisionscore = 0; | 1233 | m_collisionscore = 0; |
@@ -1240,7 +1240,7 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1240 | createAMotor(m_angularlock); | 1240 | createAMotor(m_angularlock); |
1241 | } | 1241 | } |
1242 | 1242 | ||
1243 | d.BodySetPosition(Body, Position.X, Position.Y, Position.Z); | 1243 | SafeNativeMethods.BodySetPosition(Body, Position.X, Position.Y, Position.Z); |
1244 | 1244 | ||
1245 | if (m_vehicle.Type != Vehicle.TYPE_NONE) | 1245 | if (m_vehicle.Type != Vehicle.TYPE_NONE) |
1246 | m_vehicle.Enable(Body, _parent_scene); | 1246 | m_vehicle.Enable(Body, _parent_scene); |
@@ -1370,13 +1370,13 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1370 | 1370 | ||
1371 | if (m_assetFailed) | 1371 | if (m_assetFailed) |
1372 | { | 1372 | { |
1373 | d.GeomSetCategoryBits(prim_geom, 0); | 1373 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
1374 | d.GeomSetCollideBits(prim_geom, 0); | 1374 | SafeNativeMethods.GeomSetCollideBits(prim_geom, 0); |
1375 | } | 1375 | } |
1376 | else | 1376 | else |
1377 | { | 1377 | { |
1378 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 1378 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
1379 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 1379 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
1380 | } | 1380 | } |
1381 | 1381 | ||
1382 | if (IsPhysical) | 1382 | if (IsPhysical) |
@@ -1400,21 +1400,21 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1400 | 1400 | ||
1401 | if (m_assetFailed) | 1401 | if (m_assetFailed) |
1402 | { | 1402 | { |
1403 | d.GeomSetCategoryBits(prim_geom, 0); | 1403 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
1404 | d.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); | 1404 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); |
1405 | } | 1405 | } |
1406 | else | 1406 | else |
1407 | { | 1407 | { |
1408 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 1408 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
1409 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 1409 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
1410 | } | 1410 | } |
1411 | 1411 | ||
1412 | if (IsPhysical) | 1412 | if (IsPhysical) |
1413 | { | 1413 | { |
1414 | if (Body != IntPtr.Zero) | 1414 | if (Body != IntPtr.Zero) |
1415 | { | 1415 | { |
1416 | d.BodySetLinearVel(Body, 0f, 0f, 0f); | 1416 | SafeNativeMethods.BodySetLinearVel(Body, 0f, 0f, 0f); |
1417 | d.BodySetForce(Body, 0, 0, 0); | 1417 | SafeNativeMethods.BodySetForce(Body, 0, 0, 0); |
1418 | enableBodySoft(); | 1418 | enableBodySoft(); |
1419 | } | 1419 | } |
1420 | } | 1420 | } |
@@ -1463,7 +1463,7 @@ Console.WriteLine("CreateGeom:"); | |||
1463 | try | 1463 | try |
1464 | { | 1464 | { |
1465 | //Console.WriteLine(" CreateGeom 1"); | 1465 | //Console.WriteLine(" CreateGeom 1"); |
1466 | SetGeom(d.CreateSphere(m_targetSpace, _size.X / 2)); | 1466 | SetGeom(SafeNativeMethods.CreateSphere(m_targetSpace, _size.X / 2)); |
1467 | m_expectedCollisionContacts = 3; | 1467 | m_expectedCollisionContacts = 3; |
1468 | } | 1468 | } |
1469 | catch (AccessViolationException) | 1469 | catch (AccessViolationException) |
@@ -1478,7 +1478,7 @@ Console.WriteLine("CreateGeom:"); | |||
1478 | try | 1478 | try |
1479 | { | 1479 | { |
1480 | //Console.WriteLine(" CreateGeom 2"); | 1480 | //Console.WriteLine(" CreateGeom 2"); |
1481 | SetGeom(d.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z)); | 1481 | SetGeom(SafeNativeMethods.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z)); |
1482 | m_expectedCollisionContacts = 4; | 1482 | m_expectedCollisionContacts = 4; |
1483 | } | 1483 | } |
1484 | catch (AccessViolationException) | 1484 | catch (AccessViolationException) |
@@ -1494,7 +1494,7 @@ Console.WriteLine("CreateGeom:"); | |||
1494 | try | 1494 | try |
1495 | { | 1495 | { |
1496 | //Console.WriteLine(" CreateGeom 3"); | 1496 | //Console.WriteLine(" CreateGeom 3"); |
1497 | SetGeom(d.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z)); | 1497 | SetGeom(SafeNativeMethods.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z)); |
1498 | m_expectedCollisionContacts = 4; | 1498 | m_expectedCollisionContacts = 4; |
1499 | } | 1499 | } |
1500 | catch (AccessViolationException) | 1500 | catch (AccessViolationException) |
@@ -1510,7 +1510,7 @@ Console.WriteLine("CreateGeom:"); | |||
1510 | try | 1510 | try |
1511 | { | 1511 | { |
1512 | //Console.WriteLine(" CreateGeom 4"); | 1512 | //Console.WriteLine(" CreateGeom 4"); |
1513 | SetGeom(d.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z)); | 1513 | SetGeom(SafeNativeMethods.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z)); |
1514 | m_expectedCollisionContacts = 4; | 1514 | m_expectedCollisionContacts = 4; |
1515 | } | 1515 | } |
1516 | catch (AccessViolationException) | 1516 | catch (AccessViolationException) |
@@ -1536,7 +1536,7 @@ Console.WriteLine("CreateGeom:"); | |||
1536 | { | 1536 | { |
1537 | _parent_scene.geom_name_map.Remove(prim_geom); | 1537 | _parent_scene.geom_name_map.Remove(prim_geom); |
1538 | _parent_scene.actor_name_map.Remove(prim_geom); | 1538 | _parent_scene.actor_name_map.Remove(prim_geom); |
1539 | d.GeomDestroy(prim_geom); | 1539 | SafeNativeMethods.GeomDestroy(prim_geom); |
1540 | m_expectedCollisionContacts = 0; | 1540 | m_expectedCollisionContacts = 0; |
1541 | prim_geom = IntPtr.Zero; | 1541 | prim_geom = IntPtr.Zero; |
1542 | } | 1542 | } |
@@ -1593,13 +1593,13 @@ Console.WriteLine("changeadd 1"); | |||
1593 | #endif | 1593 | #endif |
1594 | CreateGeom(m_targetSpace, mesh); | 1594 | CreateGeom(m_targetSpace, mesh); |
1595 | 1595 | ||
1596 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 1596 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
1597 | d.Quaternion myrot = new d.Quaternion(); | 1597 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
1598 | myrot.X = _orientation.X; | 1598 | myrot.X = _orientation.X; |
1599 | myrot.Y = _orientation.Y; | 1599 | myrot.Y = _orientation.Y; |
1600 | myrot.Z = _orientation.Z; | 1600 | myrot.Z = _orientation.Z; |
1601 | myrot.W = _orientation.W; | 1601 | myrot.W = _orientation.W; |
1602 | d.GeomSetQuaternion(prim_geom, ref myrot); | 1602 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
1603 | 1603 | ||
1604 | if (IsPhysical && Body == IntPtr.Zero) | 1604 | if (IsPhysical && Body == IntPtr.Zero) |
1605 | enableBody(); | 1605 | enableBody(); |
@@ -1627,14 +1627,14 @@ Console.WriteLine("changeadd 1"); | |||
1627 | { | 1627 | { |
1628 | if (m_linkJoint != IntPtr.Zero) | 1628 | if (m_linkJoint != IntPtr.Zero) |
1629 | { | 1629 | { |
1630 | d.JointDestroy(m_linkJoint); | 1630 | SafeNativeMethods.JointDestroy(m_linkJoint); |
1631 | m_linkJoint = IntPtr.Zero; | 1631 | m_linkJoint = IntPtr.Zero; |
1632 | } | 1632 | } |
1633 | } | 1633 | } |
1634 | 1634 | ||
1635 | if (Body != IntPtr.Zero) | 1635 | if (Body != IntPtr.Zero) |
1636 | { | 1636 | { |
1637 | d.BodySetPosition(Body, _position.X, _position.Y, _position.Z); | 1637 | SafeNativeMethods.BodySetPosition(Body, _position.X, _position.Y, _position.Z); |
1638 | 1638 | ||
1639 | if (_parent != null) | 1639 | if (_parent != null) |
1640 | { | 1640 | { |
@@ -1643,12 +1643,12 @@ Console.WriteLine("changeadd 1"); | |||
1643 | { | 1643 | { |
1644 | // KF: Fixed Joints were removed? Anyway - this Console.WriteLine does not show up, so routine is not used?? | 1644 | // KF: Fixed Joints were removed? Anyway - this Console.WriteLine does not show up, so routine is not used?? |
1645 | Console.WriteLine(" JointCreateFixed"); | 1645 | Console.WriteLine(" JointCreateFixed"); |
1646 | m_linkJoint = d.JointCreateFixed(_parent_scene.world, _linkJointGroup); | 1646 | m_linkJoint = SafeNativeMethods.JointCreateFixed(_parent_scene.world, _linkJointGroup); |
1647 | d.JointAttach(m_linkJoint, Body, odParent.Body); | 1647 | SafeNativeMethods.JointAttach(m_linkJoint, Body, odParent.Body); |
1648 | d.JointSetFixed(m_linkJoint); | 1648 | SafeNativeMethods.JointSetFixed(m_linkJoint); |
1649 | } | 1649 | } |
1650 | } | 1650 | } |
1651 | d.BodyEnable(Body); | 1651 | SafeNativeMethods.BodyEnable(Body); |
1652 | if (m_vehicle.Type != Vehicle.TYPE_NONE) | 1652 | if (m_vehicle.Type != Vehicle.TYPE_NONE) |
1653 | { | 1653 | { |
1654 | m_vehicle.Enable(Body, _parent_scene); | 1654 | m_vehicle.Enable(Body, _parent_scene); |
@@ -1674,10 +1674,10 @@ Console.WriteLine(" JointCreateFixed"); | |||
1674 | 1674 | ||
1675 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); | 1675 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); |
1676 | 1676 | ||
1677 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 1677 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
1678 | 1678 | ||
1679 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); | 1679 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); |
1680 | d.SpaceAdd(m_targetSpace, prim_geom); | 1680 | SafeNativeMethods.SpaceAdd(m_targetSpace, prim_geom); |
1681 | 1681 | ||
1682 | changeSelectedStatus(); | 1682 | changeSelectedStatus(); |
1683 | 1683 | ||
@@ -1704,7 +1704,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1704 | else | 1704 | else |
1705 | { | 1705 | { |
1706 | //Console.WriteLine("Move " + Name); | 1706 | //Console.WriteLine("Move " + Name); |
1707 | if (!d.BodyIsEnabled (Body)) d.BodyEnable (Body); // KF add 161009 | 1707 | if (!SafeNativeMethods.BodyIsEnabled (Body)) SafeNativeMethods.BodyEnable (Body); // KF add 161009 |
1708 | 1708 | ||
1709 | float m_mass = CalculateMass(); | 1709 | float m_mass = CalculateMass(); |
1710 | 1710 | ||
@@ -1746,9 +1746,9 @@ Console.WriteLine(" JointCreateFixed"); | |||
1746 | //PidStatus = true; | 1746 | //PidStatus = true; |
1747 | 1747 | ||
1748 | // PhysicsVector vec = new PhysicsVector(); | 1748 | // PhysicsVector vec = new PhysicsVector(); |
1749 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 1749 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
1750 | 1750 | ||
1751 | d.Vector3 pos = d.BodyGetPosition(Body); | 1751 | SafeNativeMethods.Vector3 pos = SafeNativeMethods.BodyGetPosition(Body); |
1752 | _target_velocity = | 1752 | _target_velocity = |
1753 | new Vector3( | 1753 | new Vector3( |
1754 | (m_PIDTarget.X - pos.X) * ((PID_G - m_PIDTau) * timestep), | 1754 | (m_PIDTarget.X - pos.X) * ((PID_G - m_PIDTau) * timestep), |
@@ -1770,9 +1770,9 @@ Console.WriteLine(" JointCreateFixed"); | |||
1770 | //fx = (_target_velocity.X - vel.X) * (PID_D) + (_zeroPosition.X - pos.X) * (PID_P * 2); | 1770 | //fx = (_target_velocity.X - vel.X) * (PID_D) + (_zeroPosition.X - pos.X) * (PID_P * 2); |
1771 | //fy = (_target_velocity.Y - vel.Y) * (PID_D) + (_zeroPosition.Y - pos.Y) * (PID_P * 2); | 1771 | //fy = (_target_velocity.Y - vel.Y) * (PID_D) + (_zeroPosition.Y - pos.Y) * (PID_P * 2); |
1772 | //fz = fz + (_target_velocity.Z - vel.Z) * (PID_D) + (_zeroPosition.Z - pos.Z) * PID_P; | 1772 | //fz = fz + (_target_velocity.Z - vel.Z) * (PID_D) + (_zeroPosition.Z - pos.Z) * PID_P; |
1773 | d.BodySetPosition(Body, m_PIDTarget.X, m_PIDTarget.Y, m_PIDTarget.Z); | 1773 | SafeNativeMethods.BodySetPosition(Body, m_PIDTarget.X, m_PIDTarget.Y, m_PIDTarget.Z); |
1774 | d.BodySetLinearVel(Body, 0, 0, 0); | 1774 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); |
1775 | d.BodyAddForce(Body, 0, 0, fz); | 1775 | SafeNativeMethods.BodyAddForce(Body, 0, 0, fz); |
1776 | return; | 1776 | return; |
1777 | } | 1777 | } |
1778 | else | 1778 | else |
@@ -1813,8 +1813,8 @@ Console.WriteLine(" JointCreateFixed"); | |||
1813 | } | 1813 | } |
1814 | 1814 | ||
1815 | // Where are we, and where are we headed? | 1815 | // Where are we, and where are we headed? |
1816 | d.Vector3 pos = d.BodyGetPosition(Body); | 1816 | SafeNativeMethods.Vector3 pos = SafeNativeMethods.BodyGetPosition(Body); |
1817 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 1817 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
1818 | 1818 | ||
1819 | // Non-Vehicles have a limited set of Hover options. | 1819 | // Non-Vehicles have a limited set of Hover options. |
1820 | // determine what our target height really is based on HoverType | 1820 | // determine what our target height really is based on HoverType |
@@ -1856,9 +1856,9 @@ Console.WriteLine(" JointCreateFixed"); | |||
1856 | // Avatar to Avatar collisions | 1856 | // Avatar to Avatar collisions |
1857 | // Prim to avatar collisions | 1857 | // Prim to avatar collisions |
1858 | 1858 | ||
1859 | d.BodySetPosition(Body, pos.X, pos.Y, m_targetHoverHeight); | 1859 | SafeNativeMethods.BodySetPosition(Body, pos.X, pos.Y, m_targetHoverHeight); |
1860 | d.BodySetLinearVel(Body, vel.X, vel.Y, 0); | 1860 | SafeNativeMethods.BodySetLinearVel(Body, vel.X, vel.Y, 0); |
1861 | d.BodyAddForce(Body, 0, 0, fz); | 1861 | SafeNativeMethods.BodyAddForce(Body, 0, 0, fz); |
1862 | return; | 1862 | return; |
1863 | } | 1863 | } |
1864 | else | 1864 | else |
@@ -1884,13 +1884,13 @@ Console.WriteLine(" JointCreateFixed"); | |||
1884 | //m_taintdisable = true; | 1884 | //m_taintdisable = true; |
1885 | //base.RaiseOutOfBounds(Position); | 1885 | //base.RaiseOutOfBounds(Position); |
1886 | //d.BodySetLinearVel(Body, fx, fy, 0f); | 1886 | //d.BodySetLinearVel(Body, fx, fy, 0f); |
1887 | if (!d.BodyIsEnabled(Body)) | 1887 | if (!SafeNativeMethods.BodyIsEnabled(Body)) |
1888 | { | 1888 | { |
1889 | // A physical body at rest on a surface will auto-disable after a while, | 1889 | // A physical body at rest on a surface will auto-disable after a while, |
1890 | // this appears to re-enable it incase the surface it is upon vanishes, | 1890 | // this appears to re-enable it incase the surface it is upon vanishes, |
1891 | // and the body should fall again. | 1891 | // and the body should fall again. |
1892 | d.BodySetLinearVel(Body, 0f, 0f, 0f); | 1892 | SafeNativeMethods.BodySetLinearVel(Body, 0f, 0f, 0f); |
1893 | d.BodySetForce(Body, 0, 0, 0); | 1893 | SafeNativeMethods.BodySetForce(Body, 0, 0, 0); |
1894 | enableBodySoft(); | 1894 | enableBodySoft(); |
1895 | } | 1895 | } |
1896 | 1896 | ||
@@ -1906,7 +1906,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1906 | fy = nmax; | 1906 | fy = nmax; |
1907 | if (fy < nmin) | 1907 | if (fy < nmin) |
1908 | fy = nmin; | 1908 | fy = nmin; |
1909 | d.BodyAddForce(Body, fx, fy, fz); | 1909 | SafeNativeMethods.BodyAddForce(Body, fx, fy, fz); |
1910 | //Console.WriteLine("AddForce " + fx + "," + fy + "," + fz); | 1910 | //Console.WriteLine("AddForce " + fx + "," + fy + "," + fz); |
1911 | } | 1911 | } |
1912 | } | 1912 | } |
@@ -1922,7 +1922,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1922 | 1922 | ||
1923 | private void rotate() | 1923 | private void rotate() |
1924 | { | 1924 | { |
1925 | d.Quaternion myrot = new d.Quaternion(); | 1925 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
1926 | myrot.X = _orientation.X; | 1926 | myrot.X = _orientation.X; |
1927 | myrot.Y = _orientation.Y; | 1927 | myrot.Y = _orientation.Y; |
1928 | myrot.Z = _orientation.Z; | 1928 | myrot.Z = _orientation.Z; |
@@ -1930,7 +1930,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1930 | if (Body != IntPtr.Zero) | 1930 | if (Body != IntPtr.Zero) |
1931 | { | 1931 | { |
1932 | // KF: If this is a root prim do BodySet | 1932 | // KF: If this is a root prim do BodySet |
1933 | d.BodySetQuaternion(Body, ref myrot); | 1933 | SafeNativeMethods.BodySetQuaternion(Body, ref myrot); |
1934 | if (IsPhysical) | 1934 | if (IsPhysical) |
1935 | { | 1935 | { |
1936 | // create or remove locks | 1936 | // create or remove locks |
@@ -1940,7 +1940,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1940 | else | 1940 | else |
1941 | { | 1941 | { |
1942 | // daughter prim, do Geom set | 1942 | // daughter prim, do Geom set |
1943 | d.GeomSetQuaternion(prim_geom, ref myrot); | 1943 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
1944 | } | 1944 | } |
1945 | 1945 | ||
1946 | resetCollisionAccounting(); | 1946 | resetCollisionAccounting(); |
@@ -1962,7 +1962,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1962 | m_disabled = true; | 1962 | m_disabled = true; |
1963 | if (Body != IntPtr.Zero) | 1963 | if (Body != IntPtr.Zero) |
1964 | { | 1964 | { |
1965 | d.BodyDisable(Body); | 1965 | SafeNativeMethods.BodyDisable(Body); |
1966 | Body = IntPtr.Zero; | 1966 | Body = IntPtr.Zero; |
1967 | } | 1967 | } |
1968 | 1968 | ||
@@ -2051,10 +2051,10 @@ Console.WriteLine(" JointCreateFixed"); | |||
2051 | } | 2051 | } |
2052 | } | 2052 | } |
2053 | 2053 | ||
2054 | if (d.SpaceQuery(m_targetSpace, prim_geom)) | 2054 | if (SafeNativeMethods.SpaceQuery(m_targetSpace, prim_geom)) |
2055 | { | 2055 | { |
2056 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); | 2056 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); |
2057 | d.SpaceRemove(m_targetSpace, prim_geom); | 2057 | SafeNativeMethods.SpaceRemove(m_targetSpace, prim_geom); |
2058 | } | 2058 | } |
2059 | 2059 | ||
2060 | RemoveGeom(); | 2060 | RemoveGeom(); |
@@ -2084,13 +2084,13 @@ Console.WriteLine(" JointCreateFixed"); | |||
2084 | } | 2084 | } |
2085 | 2085 | ||
2086 | CreateGeom(m_targetSpace, mesh); | 2086 | CreateGeom(m_targetSpace, mesh); |
2087 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 2087 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
2088 | d.Quaternion myrot = new d.Quaternion(); | 2088 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
2089 | myrot.X = _orientation.X; | 2089 | myrot.X = _orientation.X; |
2090 | myrot.Y = _orientation.Y; | 2090 | myrot.Y = _orientation.Y; |
2091 | myrot.Z = _orientation.Z; | 2091 | myrot.Z = _orientation.Z; |
2092 | myrot.W = _orientation.W; | 2092 | myrot.W = _orientation.W; |
2093 | d.GeomSetQuaternion(prim_geom, ref myrot); | 2093 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
2094 | 2094 | ||
2095 | //d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); | 2095 | //d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); |
2096 | if (IsPhysical && Body == IntPtr.Zero && !childPrim) | 2096 | if (IsPhysical && Body == IntPtr.Zero && !childPrim) |
@@ -2098,7 +2098,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2098 | // Re creates body on size. | 2098 | // Re creates body on size. |
2099 | // EnableBody also does setMass() | 2099 | // EnableBody also does setMass() |
2100 | enableBody(); | 2100 | enableBody(); |
2101 | d.BodyEnable(Body); | 2101 | SafeNativeMethods.BodyEnable(Body); |
2102 | } | 2102 | } |
2103 | 2103 | ||
2104 | changeSelectedStatus(); | 2104 | changeSelectedStatus(); |
@@ -2133,10 +2133,10 @@ Console.WriteLine(" JointCreateFixed"); | |||
2133 | } | 2133 | } |
2134 | 2134 | ||
2135 | if (m_assetFailed) | 2135 | if (m_assetFailed) |
2136 | d.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); | 2136 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)BadMeshAssetCollideBits); |
2137 | else | 2137 | else |
2138 | 2138 | ||
2139 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 2139 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
2140 | } | 2140 | } |
2141 | /// <summary> | 2141 | /// <summary> |
2142 | /// Change prim in response to a shape taint. | 2142 | /// Change prim in response to a shape taint. |
@@ -2190,14 +2190,14 @@ Console.WriteLine(" JointCreateFixed"); | |||
2190 | } | 2190 | } |
2191 | 2191 | ||
2192 | CreateGeom(m_targetSpace, mesh); | 2192 | CreateGeom(m_targetSpace, mesh); |
2193 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 2193 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
2194 | d.Quaternion myrot = new d.Quaternion(); | 2194 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
2195 | //myrot.W = _orientation.w; | 2195 | //myrot.W = _orientation.w; |
2196 | myrot.W = _orientation.W; | 2196 | myrot.W = _orientation.W; |
2197 | myrot.X = _orientation.X; | 2197 | myrot.X = _orientation.X; |
2198 | myrot.Y = _orientation.Y; | 2198 | myrot.Y = _orientation.Y; |
2199 | myrot.Z = _orientation.Z; | 2199 | myrot.Z = _orientation.Z; |
2200 | d.GeomSetQuaternion(prim_geom, ref myrot); | 2200 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
2201 | 2201 | ||
2202 | //d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); | 2202 | //d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); |
2203 | if (IsPhysical && Body == IntPtr.Zero) | 2203 | if (IsPhysical && Body == IntPtr.Zero) |
@@ -2207,7 +2207,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2207 | enableBody(); | 2207 | enableBody(); |
2208 | if (Body != IntPtr.Zero) | 2208 | if (Body != IntPtr.Zero) |
2209 | { | 2209 | { |
2210 | d.BodyEnable(Body); | 2210 | SafeNativeMethods.BodyEnable(Body); |
2211 | } | 2211 | } |
2212 | } | 2212 | } |
2213 | 2213 | ||
@@ -2264,8 +2264,8 @@ Console.WriteLine(" JointCreateFixed"); | |||
2264 | m_taintforce = false; | 2264 | m_taintforce = false; |
2265 | return; | 2265 | return; |
2266 | } | 2266 | } |
2267 | d.BodyEnable(Body); | 2267 | SafeNativeMethods.BodyEnable(Body); |
2268 | d.BodyAddForce(Body, iforce.X, iforce.Y, iforce.Z); | 2268 | SafeNativeMethods.BodyAddForce(Body, iforce.X, iforce.Y, iforce.Z); |
2269 | } | 2269 | } |
2270 | m_forcelist.Clear(); | 2270 | m_forcelist.Clear(); |
2271 | } | 2271 | } |
@@ -2286,7 +2286,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2286 | { | 2286 | { |
2287 | if (IsPhysical && Body != IntPtr.Zero) | 2287 | if (IsPhysical && Body != IntPtr.Zero) |
2288 | { | 2288 | { |
2289 | d.BodySetTorque(Body, m_taintTorque.X, m_taintTorque.Y, m_taintTorque.Z); | 2289 | SafeNativeMethods.BodySetTorque(Body, m_taintTorque.X, m_taintTorque.Y, m_taintTorque.Z); |
2290 | } | 2290 | } |
2291 | } | 2291 | } |
2292 | 2292 | ||
@@ -2310,8 +2310,8 @@ Console.WriteLine(" JointCreateFixed"); | |||
2310 | { | 2310 | { |
2311 | iforce = iforce + (m_angularforcelist[i] * 100); | 2311 | iforce = iforce + (m_angularforcelist[i] * 100); |
2312 | } | 2312 | } |
2313 | d.BodyEnable(Body); | 2313 | SafeNativeMethods.BodyEnable(Body); |
2314 | d.BodyAddTorque(Body, iforce.X, iforce.Y, iforce.Z); | 2314 | SafeNativeMethods.BodyAddTorque(Body, iforce.X, iforce.Y, iforce.Z); |
2315 | 2315 | ||
2316 | } | 2316 | } |
2317 | m_angularforcelist.Clear(); | 2317 | m_angularforcelist.Clear(); |
@@ -2339,7 +2339,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2339 | { | 2339 | { |
2340 | if (Body != IntPtr.Zero) | 2340 | if (Body != IntPtr.Zero) |
2341 | { | 2341 | { |
2342 | d.BodySetLinearVel(Body, m_taintVelocity.X, m_taintVelocity.Y, m_taintVelocity.Z); | 2342 | SafeNativeMethods.BodySetLinearVel(Body, m_taintVelocity.X, m_taintVelocity.Y, m_taintVelocity.Z); |
2343 | } | 2343 | } |
2344 | } | 2344 | } |
2345 | 2345 | ||
@@ -2665,7 +2665,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2665 | } | 2665 | } |
2666 | */ | 2666 | */ |
2667 | 2667 | ||
2668 | d.AllocateODEDataForThread(0U); | 2668 | SafeNativeMethods.AllocateODEDataForThread(0U); |
2669 | 2669 | ||
2670 | _position.X = Util.Clip(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f); | 2670 | _position.X = Util.Clip(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f); |
2671 | _position.Y = Util.Clip(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f); | 2671 | _position.Y = Util.Clip(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f); |
@@ -2680,8 +2680,8 @@ Console.WriteLine(" JointCreateFixed"); | |||
2680 | 2680 | ||
2681 | if (Body != IntPtr.Zero) | 2681 | if (Body != IntPtr.Zero) |
2682 | { | 2682 | { |
2683 | d.BodySetLinearVel(Body, 0, 0, 0); // stop it | 2683 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); // stop it |
2684 | d.BodySetPosition(Body, _position.X, _position.Y, _position.Z); | 2684 | SafeNativeMethods.BodySetPosition(Body, _position.X, _position.Y, _position.Z); |
2685 | } | 2685 | } |
2686 | 2686 | ||
2687 | if(m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) | 2687 | if(m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) |
@@ -2728,11 +2728,11 @@ Console.WriteLine(" JointCreateFixed"); | |||
2728 | float m_minvelocity = 0; | 2728 | float m_minvelocity = 0; |
2729 | if (Body != IntPtr.Zero) // FIXME -> or if it is a joint | 2729 | if (Body != IntPtr.Zero) // FIXME -> or if it is a joint |
2730 | { | 2730 | { |
2731 | d.Vector3 vec = d.BodyGetPosition(Body); | 2731 | SafeNativeMethods.Vector3 vec = SafeNativeMethods.BodyGetPosition(Body); |
2732 | d.Quaternion ori = d.BodyGetQuaternion(Body); | 2732 | SafeNativeMethods.Quaternion ori = SafeNativeMethods.BodyGetQuaternion(Body); |
2733 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 2733 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
2734 | d.Vector3 rotvel = d.BodyGetAngularVel(Body); | 2734 | SafeNativeMethods.Vector3 rotvel = SafeNativeMethods.BodyGetAngularVel(Body); |
2735 | d.Vector3 torque = d.BodyGetTorque(Body); | 2735 | SafeNativeMethods.Vector3 torque = SafeNativeMethods.BodyGetTorque(Body); |
2736 | _torque = new Vector3(torque.X, torque.Y, torque.Z); | 2736 | _torque = new Vector3(torque.X, torque.Y, torque.Z); |
2737 | Vector3 l_position = Vector3.Zero; | 2737 | Vector3 l_position = Vector3.Zero; |
2738 | Quaternion l_orientation = Quaternion.Identity; | 2738 | Quaternion l_orientation = Quaternion.Identity; |
@@ -2812,11 +2812,11 @@ Console.WriteLine(" JointCreateFixed"); | |||
2812 | else | 2812 | else |
2813 | Util.Clamp(l_position.Y, _parent_scene.WorldExtents.Y + 0.1f, _parent_scene.WorldExtents.Y + 2f); | 2813 | Util.Clamp(l_position.Y, _parent_scene.WorldExtents.Y + 0.1f, _parent_scene.WorldExtents.Y + 2f); |
2814 | 2814 | ||
2815 | d.BodySetPosition(Body, l_position.X, l_position.Y, l_position.Z); | 2815 | SafeNativeMethods.BodySetPosition(Body, l_position.X, l_position.Y, l_position.Z); |
2816 | 2816 | ||
2817 | // stop it | 2817 | // stop it |
2818 | d.BodySetAngularVel(Body, 0, 0, 0); | 2818 | SafeNativeMethods.BodySetAngularVel(Body, 0, 0, 0); |
2819 | d.BodySetLinearVel(Body, 0, 0, 0); | 2819 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); |
2820 | disableBodySoft(); | 2820 | disableBodySoft(); |
2821 | 2821 | ||
2822 | _position = l_position; | 2822 | _position = l_position; |
@@ -3009,7 +3009,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
3009 | 3009 | ||
3010 | if (Amotor != IntPtr.Zero) | 3010 | if (Amotor != IntPtr.Zero) |
3011 | { | 3011 | { |
3012 | d.JointDestroy(Amotor); | 3012 | SafeNativeMethods.JointDestroy(Amotor); |
3013 | Amotor = IntPtr.Zero; | 3013 | Amotor = IntPtr.Zero; |
3014 | } | 3014 | } |
3015 | 3015 | ||
@@ -3039,19 +3039,19 @@ Console.WriteLine(" JointCreateFixed"); | |||
3039 | if(axisnum == 0) | 3039 | if(axisnum == 0) |
3040 | return; | 3040 | return; |
3041 | // stop it | 3041 | // stop it |
3042 | d.BodySetTorque(Body, 0, 0, 0); | 3042 | SafeNativeMethods.BodySetTorque(Body, 0, 0, 0); |
3043 | d.BodySetAngularVel(Body, 0, 0, 0); | 3043 | SafeNativeMethods.BodySetAngularVel(Body, 0, 0, 0); |
3044 | 3044 | ||
3045 | Amotor = d.JointCreateAMotor(_parent_scene.world, IntPtr.Zero); | 3045 | Amotor = SafeNativeMethods.JointCreateAMotor(_parent_scene.world, IntPtr.Zero); |
3046 | d.JointAttach(Amotor, Body, IntPtr.Zero); | 3046 | SafeNativeMethods.JointAttach(Amotor, Body, IntPtr.Zero); |
3047 | 3047 | ||
3048 | d.JointSetAMotorMode(Amotor, 0); | 3048 | SafeNativeMethods.JointSetAMotorMode(Amotor, 0); |
3049 | 3049 | ||
3050 | d.JointSetAMotorNumAxes(Amotor, axisnum); | 3050 | SafeNativeMethods.JointSetAMotorNumAxes(Amotor, axisnum); |
3051 | 3051 | ||
3052 | // get current orientation to lock | 3052 | // get current orientation to lock |
3053 | 3053 | ||
3054 | d.Quaternion dcur = d.BodyGetQuaternion(Body); | 3054 | SafeNativeMethods.Quaternion dcur = SafeNativeMethods.BodyGetQuaternion(Body); |
3055 | Quaternion curr; // crap convertion between identical things | 3055 | Quaternion curr; // crap convertion between identical things |
3056 | curr.X = dcur.X; | 3056 | curr.X = dcur.X; |
3057 | curr.Y = dcur.Y; | 3057 | curr.Y = dcur.Y; |
@@ -3064,17 +3064,17 @@ Console.WriteLine(" JointCreateFixed"); | |||
3064 | if (axisX) | 3064 | if (axisX) |
3065 | { | 3065 | { |
3066 | ax = (new Vector3(1, 0, 0)) * curr; // rotate world X to current local X | 3066 | ax = (new Vector3(1, 0, 0)) * curr; // rotate world X to current local X |
3067 | d.JointSetAMotorAxis(Amotor, 0, 0, ax.X, ax.Y, ax.Z); | 3067 | SafeNativeMethods.JointSetAMotorAxis(Amotor, 0, 0, ax.X, ax.Y, ax.Z); |
3068 | d.JointSetAMotorAngle(Amotor, 0, 0); | 3068 | SafeNativeMethods.JointSetAMotorAngle(Amotor, 0, 0); |
3069 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.LoStop, 0f); | 3069 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.LoStop, 0f); |
3070 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.HiStop, 0f); | 3070 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.HiStop, 0f); |
3071 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel, 0); | 3071 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.Vel, 0); |
3072 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.FudgeFactor, 0.0001f); | 3072 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.FudgeFactor, 0.0001f); |
3073 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Bounce, 0f); | 3073 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.Bounce, 0f); |
3074 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.CFM, 0f); | 3074 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.CFM, 0f); |
3075 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.FMax, 5e8f); | 3075 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.FMax, 5e8f); |
3076 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.StopCFM, 0f); | 3076 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.StopCFM, 0f); |
3077 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.StopERP, 0.8f); | 3077 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.StopERP, 0.8f); |
3078 | i++; | 3078 | i++; |
3079 | j = 256; // move to next axis set | 3079 | j = 256; // move to next axis set |
3080 | } | 3080 | } |
@@ -3082,17 +3082,17 @@ Console.WriteLine(" JointCreateFixed"); | |||
3082 | if (axisY) | 3082 | if (axisY) |
3083 | { | 3083 | { |
3084 | ax = (new Vector3(0, 1, 0)) * curr; | 3084 | ax = (new Vector3(0, 1, 0)) * curr; |
3085 | d.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); | 3085 | SafeNativeMethods.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); |
3086 | d.JointSetAMotorAngle(Amotor, i, 0); | 3086 | SafeNativeMethods.JointSetAMotorAngle(Amotor, i, 0); |
3087 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.LoStop, 0f); | 3087 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.LoStop, 0f); |
3088 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.HiStop, 0f); | 3088 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.HiStop, 0f); |
3089 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Vel, 0); | 3089 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Vel, 0); |
3090 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FudgeFactor, 0.0001f); | 3090 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FudgeFactor, 0.0001f); |
3091 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Bounce, 0f); | 3091 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Bounce, 0f); |
3092 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.CFM, 0f); | 3092 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.CFM, 0f); |
3093 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FMax, 5e8f); | 3093 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FMax, 5e8f); |
3094 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopCFM, 0f); | 3094 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopCFM, 0f); |
3095 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopERP, 0.8f); | 3095 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopERP, 0.8f); |
3096 | i++; | 3096 | i++; |
3097 | j += 256; | 3097 | j += 256; |
3098 | } | 3098 | } |
@@ -3100,17 +3100,17 @@ Console.WriteLine(" JointCreateFixed"); | |||
3100 | if (axisZ) | 3100 | if (axisZ) |
3101 | { | 3101 | { |
3102 | ax = (new Vector3(0, 0, 1)) * curr; | 3102 | ax = (new Vector3(0, 0, 1)) * curr; |
3103 | d.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); | 3103 | SafeNativeMethods.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); |
3104 | d.JointSetAMotorAngle(Amotor, i, 0); | 3104 | SafeNativeMethods.JointSetAMotorAngle(Amotor, i, 0); |
3105 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.LoStop, 0f); | 3105 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.LoStop, 0f); |
3106 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.HiStop, 0f); | 3106 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.HiStop, 0f); |
3107 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Vel, 0); | 3107 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Vel, 0); |
3108 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FudgeFactor, 0.0001f); | 3108 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FudgeFactor, 0.0001f); |
3109 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Bounce, 0f); | 3109 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Bounce, 0f); |
3110 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.CFM, 0f); | 3110 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.CFM, 0f); |
3111 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FMax, 5e8f); | 3111 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FMax, 5e8f); |
3112 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopCFM, 0f); | 3112 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopCFM, 0f); |
3113 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopERP, 0.8f); | 3113 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopERP, 0.8f); |
3114 | } | 3114 | } |
3115 | } | 3115 | } |
3116 | 3116 | ||
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODERayCastRequestManager.cs b/OpenSim/Region/PhysicsModules/Ode/ODERayCastRequestManager.cs index 78dd7de..c731c6c 100644 --- a/OpenSim/Region/PhysicsModules/Ode/ODERayCastRequestManager.cs +++ b/OpenSim/Region/PhysicsModules/Ode/ODERayCastRequestManager.cs | |||
@@ -61,12 +61,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
61 | /// <summary> | 61 | /// <summary> |
62 | /// ODE contact array to be filled by the collision testing | 62 | /// ODE contact array to be filled by the collision testing |
63 | /// </summary> | 63 | /// </summary> |
64 | d.ContactGeom[] contacts = new d.ContactGeom[5]; | 64 | SafeNativeMethods.ContactGeom[] contacts = new SafeNativeMethods.ContactGeom[5]; |
65 | 65 | ||
66 | /// <summary> | 66 | /// <summary> |
67 | /// ODE near callback delegate | 67 | /// ODE near callback delegate |
68 | /// </summary> | 68 | /// </summary> |
69 | private d.NearCallback nearCallback; | 69 | private SafeNativeMethods.NearCallback nearCallback; |
70 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 70 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
71 | private List<ContactResult> m_contactResults = new List<ContactResult>(); | 71 | private List<ContactResult> m_contactResults = new List<ContactResult>(); |
72 | 72 | ||
@@ -179,14 +179,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
179 | len = 100f; | 179 | len = 100f; |
180 | 180 | ||
181 | // Create the ray | 181 | // Create the ray |
182 | IntPtr ray = d.CreateRay(m_scene.space, len); | 182 | IntPtr ray = SafeNativeMethods.CreateRay(m_scene.space, len); |
183 | d.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z); | 183 | SafeNativeMethods.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z); |
184 | 184 | ||
185 | // Collide test | 185 | // Collide test |
186 | d.SpaceCollide2(m_scene.space, ray, IntPtr.Zero, nearCallback); | 186 | SafeNativeMethods.SpaceCollide2(m_scene.space, ray, IntPtr.Zero, nearCallback); |
187 | 187 | ||
188 | // Remove Ray | 188 | // Remove Ray |
189 | d.GeomDestroy(ray); | 189 | SafeNativeMethods.GeomDestroy(ray); |
190 | 190 | ||
191 | // Define default results | 191 | // Define default results |
192 | bool hitYN = false; | 192 | bool hitYN = false; |
@@ -230,14 +230,14 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
230 | len = 100f; | 230 | len = 100f; |
231 | 231 | ||
232 | // Create the ray | 232 | // Create the ray |
233 | IntPtr ray = d.CreateRay(m_scene.space, len); | 233 | IntPtr ray = SafeNativeMethods.CreateRay(m_scene.space, len); |
234 | d.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z); | 234 | SafeNativeMethods.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z); |
235 | 235 | ||
236 | // Collide test | 236 | // Collide test |
237 | d.SpaceCollide2(m_scene.space, ray, IntPtr.Zero, nearCallback); | 237 | SafeNativeMethods.SpaceCollide2(m_scene.space, ray, IntPtr.Zero, nearCallback); |
238 | 238 | ||
239 | // Remove Ray | 239 | // Remove Ray |
240 | d.GeomDestroy(ray); | 240 | SafeNativeMethods.GeomDestroy(ray); |
241 | 241 | ||
242 | // Find closest contact and object. | 242 | // Find closest contact and object. |
243 | lock (m_contactResults) | 243 | lock (m_contactResults) |
@@ -258,7 +258,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
258 | // return; | 258 | // return; |
259 | 259 | ||
260 | // Raytest against AABBs of spaces first, then dig into the spaces it hits for actual geoms. | 260 | // Raytest against AABBs of spaces first, then dig into the spaces it hits for actual geoms. |
261 | if (d.GeomIsSpace(g1) || d.GeomIsSpace(g2)) | 261 | if (SafeNativeMethods.GeomIsSpace(g1) || SafeNativeMethods.GeomIsSpace(g2)) |
262 | { | 262 | { |
263 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) | 263 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) |
264 | return; | 264 | return; |
@@ -269,7 +269,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
269 | // contact points in the space | 269 | // contact points in the space |
270 | try | 270 | try |
271 | { | 271 | { |
272 | d.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); | 272 | SafeNativeMethods.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); |
273 | } | 273 | } |
274 | catch (AccessViolationException) | 274 | catch (AccessViolationException) |
275 | { | 275 | { |
@@ -296,7 +296,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
296 | 296 | ||
297 | lock (contacts) | 297 | lock (contacts) |
298 | { | 298 | { |
299 | count = d.Collide(g1, g2, contacts.GetLength(0), contacts, d.ContactGeom.unmanagedSizeOf); | 299 | count = SafeNativeMethods.Collide(g1, g2, contacts.GetLength(0), contacts, SafeNativeMethods.ContactGeom.unmanagedSizeOf); |
300 | } | 300 | } |
301 | } | 301 | } |
302 | catch (SEHException) | 302 | catch (SEHException) |
diff --git a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs index d15568e..e760fa2 100644 --- a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs +++ b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs | |||
@@ -336,9 +336,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
336 | 336 | ||
337 | private bool m_filterCollisions = true; | 337 | private bool m_filterCollisions = true; |
338 | 338 | ||
339 | private d.NearCallback nearCallback; | 339 | private SafeNativeMethods.NearCallback nearCallback; |
340 | public d.TriCallback triCallback; | ||
341 | public d.TriArrayCallback triArrayCallback; | ||
342 | 340 | ||
343 | /// <summary> | 341 | /// <summary> |
344 | /// Avatars in the physics scene. | 342 | /// Avatars in the physics scene. |
@@ -368,7 +366,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
368 | /// <summary> | 366 | /// <summary> |
369 | /// Keep record of contacts in the physics loop so that we can remove duplicates. | 367 | /// Keep record of contacts in the physics loop so that we can remove duplicates. |
370 | /// </summary> | 368 | /// </summary> |
371 | private readonly List<d.ContactGeom> _perloopContact = new List<d.ContactGeom>(); | 369 | private readonly List<SafeNativeMethods.ContactGeom> _perloopContact = new List<SafeNativeMethods.ContactGeom>(); |
372 | 370 | ||
373 | /// <summary> | 371 | /// <summary> |
374 | /// A dictionary of actors that should receive collision events. | 372 | /// A dictionary of actors that should receive collision events. |
@@ -409,7 +407,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
409 | private bool m_NINJA_physics_joints_enabled = false; | 407 | private bool m_NINJA_physics_joints_enabled = false; |
410 | //private Dictionary<String, IntPtr> jointpart_name_map = new Dictionary<String,IntPtr>(); | 408 | //private Dictionary<String, IntPtr> jointpart_name_map = new Dictionary<String,IntPtr>(); |
411 | private readonly Dictionary<String, List<PhysicsJoint>> joints_connecting_actor = new Dictionary<String, List<PhysicsJoint>>(); | 409 | private readonly Dictionary<String, List<PhysicsJoint>> joints_connecting_actor = new Dictionary<String, List<PhysicsJoint>>(); |
412 | private d.ContactGeom[] contacts; | 410 | private SafeNativeMethods.ContactGeom[] contacts; |
413 | 411 | ||
414 | /// <summary> | 412 | /// <summary> |
415 | /// Lock only briefly. accessed by external code (to request new joints) and by OdeScene.Simulate() to move those joints into pending/active | 413 | /// Lock only briefly. accessed by external code (to request new joints) and by OdeScene.Simulate() to move those joints into pending/active |
@@ -437,12 +435,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
437 | private readonly DoubleDictionary<Vector3, IntPtr, IntPtr> RegionTerrain = new DoubleDictionary<Vector3, IntPtr, IntPtr>(); | 435 | private readonly DoubleDictionary<Vector3, IntPtr, IntPtr> RegionTerrain = new DoubleDictionary<Vector3, IntPtr, IntPtr>(); |
438 | private readonly Dictionary<IntPtr,float[]> TerrainHeightFieldHeights = new Dictionary<IntPtr, float[]>(); | 436 | private readonly Dictionary<IntPtr,float[]> TerrainHeightFieldHeights = new Dictionary<IntPtr, float[]>(); |
439 | 437 | ||
440 | private d.Contact contact; | 438 | private SafeNativeMethods.Contact contact; |
441 | private d.Contact TerrainContact; | 439 | private SafeNativeMethods.Contact TerrainContact; |
442 | private d.Contact AvatarMovementprimContact; | 440 | private SafeNativeMethods.Contact AvatarMovementprimContact; |
443 | private d.Contact AvatarMovementTerrainContact; | 441 | private SafeNativeMethods.Contact AvatarMovementTerrainContact; |
444 | private d.Contact WaterContact; | 442 | private SafeNativeMethods.Contact WaterContact; |
445 | private d.Contact[,] m_materialContacts; | 443 | private SafeNativeMethods.Contact[,] m_materialContacts; |
446 | 444 | ||
447 | private int m_physicsiterations = 10; | 445 | private int m_physicsiterations = 10; |
448 | private const float m_SkipFramesAtms = 0.40f; // Drop frames gracefully at a 400 ms lag | 446 | private const float m_SkipFramesAtms = 0.40f; // Drop frames gracefully at a 400 ms lag |
@@ -480,8 +478,8 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
480 | private bool avplanted = false; | 478 | private bool avplanted = false; |
481 | private bool av_av_collisions_off = false; | 479 | private bool av_av_collisions_off = false; |
482 | 480 | ||
483 | public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f); | 481 | internal SafeNativeMethods.Vector3 xyz = new SafeNativeMethods.Vector3(128.1640f, 128.3079f, 25.7600f); |
484 | public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f); | 482 | internal SafeNativeMethods.Vector3 hpr = new SafeNativeMethods.Vector3(125.5000f, -17.0000f, 0.0000f); |
485 | 483 | ||
486 | private volatile int m_global_contactcount = 0; | 484 | private volatile int m_global_contactcount = 0; |
487 | 485 | ||
@@ -544,12 +542,11 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
544 | m_rayCastManager = new ODERayCastRequestManager(this); | 542 | m_rayCastManager = new ODERayCastRequestManager(this); |
545 | 543 | ||
546 | // Create the world and the first space | 544 | // Create the world and the first space |
547 | world = d.WorldCreate(); | 545 | world = SafeNativeMethods.WorldCreate(); |
548 | space = d.HashSpaceCreate(IntPtr.Zero); | 546 | space = SafeNativeMethods.HashSpaceCreate(IntPtr.Zero); |
547 | contactgroup = SafeNativeMethods.JointGroupCreate(0); | ||
549 | 548 | ||
550 | contactgroup = d.JointGroupCreate(0); | 549 | SafeNativeMethods.WorldSetAutoDisableFlag(world, false); |
551 | |||
552 | d.WorldSetAutoDisableFlag(world, false); | ||
553 | } | 550 | } |
554 | 551 | ||
555 | // Initialize from configs | 552 | // Initialize from configs |
@@ -651,7 +648,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
651 | } | 648 | } |
652 | } | 649 | } |
653 | 650 | ||
654 | contacts = new d.ContactGeom[contactsPerCollision]; | 651 | contacts = new SafeNativeMethods.ContactGeom[contactsPerCollision]; |
655 | 652 | ||
656 | spacesPerMeterX = 1.0f / metersInSpace; | 653 | spacesPerMeterX = 1.0f / metersInSpace; |
657 | spacesPerMeterY = 1.0f / metersInSpace; | 654 | spacesPerMeterY = 1.0f / metersInSpace; |
@@ -680,7 +677,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
680 | // Centeral contact friction and bounce | 677 | // Centeral contact friction and bounce |
681 | // ckrinke 11/10/08 Enabling soft_erp but not soft_cfm until I figure out why | 678 | // ckrinke 11/10/08 Enabling soft_erp but not soft_cfm until I figure out why |
682 | // an avatar falls through in Z but not in X or Y when walking on a prim. | 679 | // an avatar falls through in Z but not in X or Y when walking on a prim. |
683 | contact.surface.mode |= d.ContactFlags.SoftERP; | 680 | contact.surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
684 | contact.surface.mu = nmAvatarObjectContactFriction; | 681 | contact.surface.mu = nmAvatarObjectContactFriction; |
685 | contact.surface.bounce = nmAvatarObjectContactBounce; | 682 | contact.surface.bounce = nmAvatarObjectContactBounce; |
686 | contact.surface.soft_cfm = 0.010f; | 683 | contact.surface.soft_cfm = 0.010f; |
@@ -689,12 +686,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
689 | // Terrain contact friction and Bounce | 686 | // Terrain contact friction and Bounce |
690 | // This is the *non* moving version. Use this when an avatar | 687 | // This is the *non* moving version. Use this when an avatar |
691 | // isn't moving to keep it in place better | 688 | // isn't moving to keep it in place better |
692 | TerrainContact.surface.mode |= d.ContactFlags.SoftERP; | 689 | TerrainContact.surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
693 | TerrainContact.surface.mu = nmTerrainContactFriction; | 690 | TerrainContact.surface.mu = nmTerrainContactFriction; |
694 | TerrainContact.surface.bounce = nmTerrainContactBounce; | 691 | TerrainContact.surface.bounce = nmTerrainContactBounce; |
695 | TerrainContact.surface.soft_erp = nmTerrainContactERP; | 692 | TerrainContact.surface.soft_erp = nmTerrainContactERP; |
696 | 693 | ||
697 | WaterContact.surface.mode |= (d.ContactFlags.SoftERP | d.ContactFlags.SoftCFM); | 694 | WaterContact.surface.mode |= (SafeNativeMethods.ContactFlags.SoftERP | SafeNativeMethods.ContactFlags.SoftCFM); |
698 | WaterContact.surface.mu = 0f; // No friction | 695 | WaterContact.surface.mu = 0f; // No friction |
699 | WaterContact.surface.bounce = 0.0f; // No bounce | 696 | WaterContact.surface.bounce = 0.0f; // No bounce |
700 | WaterContact.surface.soft_cfm = 0.010f; | 697 | WaterContact.surface.soft_cfm = 0.010f; |
@@ -709,7 +706,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
709 | 706 | ||
710 | // Terrain contact friction bounce and various error correcting calculations | 707 | // Terrain contact friction bounce and various error correcting calculations |
711 | // Use this when an avatar is in contact with the terrain and moving. | 708 | // Use this when an avatar is in contact with the terrain and moving. |
712 | AvatarMovementTerrainContact.surface.mode |= d.ContactFlags.SoftERP; | 709 | AvatarMovementTerrainContact.surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
713 | AvatarMovementTerrainContact.surface.mu = mTerrainContactFriction; | 710 | AvatarMovementTerrainContact.surface.mu = mTerrainContactFriction; |
714 | AvatarMovementTerrainContact.surface.bounce = mTerrainContactBounce; | 711 | AvatarMovementTerrainContact.surface.bounce = mTerrainContactBounce; |
715 | AvatarMovementTerrainContact.surface.soft_erp = mTerrainContactERP; | 712 | AvatarMovementTerrainContact.surface.soft_erp = mTerrainContactERP; |
@@ -731,38 +728,38 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
731 | Rubber = 6 | 728 | Rubber = 6 |
732 | */ | 729 | */ |
733 | 730 | ||
734 | m_materialContacts = new d.Contact[7,2]; | 731 | m_materialContacts = new SafeNativeMethods.Contact[7,2]; |
735 | 732 | ||
736 | m_materialContacts[(int)Material.Stone, 0] = new d.Contact(); | 733 | m_materialContacts[(int)Material.Stone, 0] = new SafeNativeMethods.Contact(); |
737 | m_materialContacts[(int)Material.Stone, 0].surface.mode |= d.ContactFlags.SoftERP; | 734 | m_materialContacts[(int)Material.Stone, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
738 | m_materialContacts[(int)Material.Stone, 0].surface.mu = nmAvatarObjectContactFriction; | 735 | m_materialContacts[(int)Material.Stone, 0].surface.mu = nmAvatarObjectContactFriction; |
739 | m_materialContacts[(int)Material.Stone, 0].surface.bounce = nmAvatarObjectContactBounce; | 736 | m_materialContacts[(int)Material.Stone, 0].surface.bounce = nmAvatarObjectContactBounce; |
740 | m_materialContacts[(int)Material.Stone, 0].surface.soft_cfm = 0.010f; | 737 | m_materialContacts[(int)Material.Stone, 0].surface.soft_cfm = 0.010f; |
741 | m_materialContacts[(int)Material.Stone, 0].surface.soft_erp = 0.010f; | 738 | m_materialContacts[(int)Material.Stone, 0].surface.soft_erp = 0.010f; |
742 | 739 | ||
743 | m_materialContacts[(int)Material.Stone, 1] = new d.Contact(); | 740 | m_materialContacts[(int)Material.Stone, 1] = new SafeNativeMethods.Contact(); |
744 | m_materialContacts[(int)Material.Stone, 1].surface.mode |= d.ContactFlags.SoftERP; | 741 | m_materialContacts[(int)Material.Stone, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
745 | m_materialContacts[(int)Material.Stone, 1].surface.mu = mAvatarObjectContactFriction; | 742 | m_materialContacts[(int)Material.Stone, 1].surface.mu = mAvatarObjectContactFriction; |
746 | m_materialContacts[(int)Material.Stone, 1].surface.bounce = mAvatarObjectContactBounce; | 743 | m_materialContacts[(int)Material.Stone, 1].surface.bounce = mAvatarObjectContactBounce; |
747 | m_materialContacts[(int)Material.Stone, 1].surface.soft_cfm = 0.010f; | 744 | m_materialContacts[(int)Material.Stone, 1].surface.soft_cfm = 0.010f; |
748 | m_materialContacts[(int)Material.Stone, 1].surface.soft_erp = 0.010f; | 745 | m_materialContacts[(int)Material.Stone, 1].surface.soft_erp = 0.010f; |
749 | 746 | ||
750 | m_materialContacts[(int)Material.Metal, 0] = new d.Contact(); | 747 | m_materialContacts[(int)Material.Metal, 0] = new SafeNativeMethods.Contact(); |
751 | m_materialContacts[(int)Material.Metal, 0].surface.mode |= d.ContactFlags.SoftERP; | 748 | m_materialContacts[(int)Material.Metal, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
752 | m_materialContacts[(int)Material.Metal, 0].surface.mu = nmAvatarObjectContactFriction; | 749 | m_materialContacts[(int)Material.Metal, 0].surface.mu = nmAvatarObjectContactFriction; |
753 | m_materialContacts[(int)Material.Metal, 0].surface.bounce = nmAvatarObjectContactBounce; | 750 | m_materialContacts[(int)Material.Metal, 0].surface.bounce = nmAvatarObjectContactBounce; |
754 | m_materialContacts[(int)Material.Metal, 0].surface.soft_cfm = 0.010f; | 751 | m_materialContacts[(int)Material.Metal, 0].surface.soft_cfm = 0.010f; |
755 | m_materialContacts[(int)Material.Metal, 0].surface.soft_erp = 0.010f; | 752 | m_materialContacts[(int)Material.Metal, 0].surface.soft_erp = 0.010f; |
756 | 753 | ||
757 | m_materialContacts[(int)Material.Metal, 1] = new d.Contact(); | 754 | m_materialContacts[(int)Material.Metal, 1] = new SafeNativeMethods.Contact(); |
758 | m_materialContacts[(int)Material.Metal, 1].surface.mode |= d.ContactFlags.SoftERP; | 755 | m_materialContacts[(int)Material.Metal, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
759 | m_materialContacts[(int)Material.Metal, 1].surface.mu = mAvatarObjectContactFriction; | 756 | m_materialContacts[(int)Material.Metal, 1].surface.mu = mAvatarObjectContactFriction; |
760 | m_materialContacts[(int)Material.Metal, 1].surface.bounce = mAvatarObjectContactBounce; | 757 | m_materialContacts[(int)Material.Metal, 1].surface.bounce = mAvatarObjectContactBounce; |
761 | m_materialContacts[(int)Material.Metal, 1].surface.soft_cfm = 0.010f; | 758 | m_materialContacts[(int)Material.Metal, 1].surface.soft_cfm = 0.010f; |
762 | m_materialContacts[(int)Material.Metal, 1].surface.soft_erp = 0.010f; | 759 | m_materialContacts[(int)Material.Metal, 1].surface.soft_erp = 0.010f; |
763 | 760 | ||
764 | m_materialContacts[(int)Material.Glass, 0] = new d.Contact(); | 761 | m_materialContacts[(int)Material.Glass, 0] = new SafeNativeMethods.Contact(); |
765 | m_materialContacts[(int)Material.Glass, 0].surface.mode |= d.ContactFlags.SoftERP; | 762 | m_materialContacts[(int)Material.Glass, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
766 | m_materialContacts[(int)Material.Glass, 0].surface.mu = 1f; | 763 | m_materialContacts[(int)Material.Glass, 0].surface.mu = 1f; |
767 | m_materialContacts[(int)Material.Glass, 0].surface.bounce = 0.5f; | 764 | m_materialContacts[(int)Material.Glass, 0].surface.bounce = 0.5f; |
768 | m_materialContacts[(int)Material.Glass, 0].surface.soft_cfm = 0.010f; | 765 | m_materialContacts[(int)Material.Glass, 0].surface.soft_cfm = 0.010f; |
@@ -775,83 +772,83 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
775 | private float mAvatarObjectContactFriction = 75f; | 772 | private float mAvatarObjectContactFriction = 75f; |
776 | private float mAvatarObjectContactBounce = 0.1f; | 773 | private float mAvatarObjectContactBounce = 0.1f; |
777 | */ | 774 | */ |
778 | m_materialContacts[(int)Material.Glass, 1] = new d.Contact(); | 775 | m_materialContacts[(int)Material.Glass, 1] = new SafeNativeMethods.Contact(); |
779 | m_materialContacts[(int)Material.Glass, 1].surface.mode |= d.ContactFlags.SoftERP; | 776 | m_materialContacts[(int)Material.Glass, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
780 | m_materialContacts[(int)Material.Glass, 1].surface.mu = 1f; | 777 | m_materialContacts[(int)Material.Glass, 1].surface.mu = 1f; |
781 | m_materialContacts[(int)Material.Glass, 1].surface.bounce = 0.5f; | 778 | m_materialContacts[(int)Material.Glass, 1].surface.bounce = 0.5f; |
782 | m_materialContacts[(int)Material.Glass, 1].surface.soft_cfm = 0.010f; | 779 | m_materialContacts[(int)Material.Glass, 1].surface.soft_cfm = 0.010f; |
783 | m_materialContacts[(int)Material.Glass, 1].surface.soft_erp = 0.010f; | 780 | m_materialContacts[(int)Material.Glass, 1].surface.soft_erp = 0.010f; |
784 | 781 | ||
785 | m_materialContacts[(int)Material.Wood, 0] = new d.Contact(); | 782 | m_materialContacts[(int)Material.Wood, 0] = new SafeNativeMethods.Contact(); |
786 | m_materialContacts[(int)Material.Wood, 0].surface.mode |= d.ContactFlags.SoftERP; | 783 | m_materialContacts[(int)Material.Wood, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
787 | m_materialContacts[(int)Material.Wood, 0].surface.mu = nmAvatarObjectContactFriction; | 784 | m_materialContacts[(int)Material.Wood, 0].surface.mu = nmAvatarObjectContactFriction; |
788 | m_materialContacts[(int)Material.Wood, 0].surface.bounce = nmAvatarObjectContactBounce; | 785 | m_materialContacts[(int)Material.Wood, 0].surface.bounce = nmAvatarObjectContactBounce; |
789 | m_materialContacts[(int)Material.Wood, 0].surface.soft_cfm = 0.010f; | 786 | m_materialContacts[(int)Material.Wood, 0].surface.soft_cfm = 0.010f; |
790 | m_materialContacts[(int)Material.Wood, 0].surface.soft_erp = 0.010f; | 787 | m_materialContacts[(int)Material.Wood, 0].surface.soft_erp = 0.010f; |
791 | 788 | ||
792 | m_materialContacts[(int)Material.Wood, 1] = new d.Contact(); | 789 | m_materialContacts[(int)Material.Wood, 1] = new SafeNativeMethods.Contact(); |
793 | m_materialContacts[(int)Material.Wood, 1].surface.mode |= d.ContactFlags.SoftERP; | 790 | m_materialContacts[(int)Material.Wood, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
794 | m_materialContacts[(int)Material.Wood, 1].surface.mu = mAvatarObjectContactFriction; | 791 | m_materialContacts[(int)Material.Wood, 1].surface.mu = mAvatarObjectContactFriction; |
795 | m_materialContacts[(int)Material.Wood, 1].surface.bounce = mAvatarObjectContactBounce; | 792 | m_materialContacts[(int)Material.Wood, 1].surface.bounce = mAvatarObjectContactBounce; |
796 | m_materialContacts[(int)Material.Wood, 1].surface.soft_cfm = 0.010f; | 793 | m_materialContacts[(int)Material.Wood, 1].surface.soft_cfm = 0.010f; |
797 | m_materialContacts[(int)Material.Wood, 1].surface.soft_erp = 0.010f; | 794 | m_materialContacts[(int)Material.Wood, 1].surface.soft_erp = 0.010f; |
798 | 795 | ||
799 | m_materialContacts[(int)Material.Flesh, 0] = new d.Contact(); | 796 | m_materialContacts[(int)Material.Flesh, 0] = new SafeNativeMethods.Contact(); |
800 | m_materialContacts[(int)Material.Flesh, 0].surface.mode |= d.ContactFlags.SoftERP; | 797 | m_materialContacts[(int)Material.Flesh, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
801 | m_materialContacts[(int)Material.Flesh, 0].surface.mu = nmAvatarObjectContactFriction; | 798 | m_materialContacts[(int)Material.Flesh, 0].surface.mu = nmAvatarObjectContactFriction; |
802 | m_materialContacts[(int)Material.Flesh, 0].surface.bounce = nmAvatarObjectContactBounce; | 799 | m_materialContacts[(int)Material.Flesh, 0].surface.bounce = nmAvatarObjectContactBounce; |
803 | m_materialContacts[(int)Material.Flesh, 0].surface.soft_cfm = 0.010f; | 800 | m_materialContacts[(int)Material.Flesh, 0].surface.soft_cfm = 0.010f; |
804 | m_materialContacts[(int)Material.Flesh, 0].surface.soft_erp = 0.010f; | 801 | m_materialContacts[(int)Material.Flesh, 0].surface.soft_erp = 0.010f; |
805 | 802 | ||
806 | m_materialContacts[(int)Material.Flesh, 1] = new d.Contact(); | 803 | m_materialContacts[(int)Material.Flesh, 1] = new SafeNativeMethods.Contact(); |
807 | m_materialContacts[(int)Material.Flesh, 1].surface.mode |= d.ContactFlags.SoftERP; | 804 | m_materialContacts[(int)Material.Flesh, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
808 | m_materialContacts[(int)Material.Flesh, 1].surface.mu = mAvatarObjectContactFriction; | 805 | m_materialContacts[(int)Material.Flesh, 1].surface.mu = mAvatarObjectContactFriction; |
809 | m_materialContacts[(int)Material.Flesh, 1].surface.bounce = mAvatarObjectContactBounce; | 806 | m_materialContacts[(int)Material.Flesh, 1].surface.bounce = mAvatarObjectContactBounce; |
810 | m_materialContacts[(int)Material.Flesh, 1].surface.soft_cfm = 0.010f; | 807 | m_materialContacts[(int)Material.Flesh, 1].surface.soft_cfm = 0.010f; |
811 | m_materialContacts[(int)Material.Flesh, 1].surface.soft_erp = 0.010f; | 808 | m_materialContacts[(int)Material.Flesh, 1].surface.soft_erp = 0.010f; |
812 | 809 | ||
813 | m_materialContacts[(int)Material.Plastic, 0] = new d.Contact(); | 810 | m_materialContacts[(int)Material.Plastic, 0] = new SafeNativeMethods.Contact(); |
814 | m_materialContacts[(int)Material.Plastic, 0].surface.mode |= d.ContactFlags.SoftERP; | 811 | m_materialContacts[(int)Material.Plastic, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
815 | m_materialContacts[(int)Material.Plastic, 0].surface.mu = nmAvatarObjectContactFriction; | 812 | m_materialContacts[(int)Material.Plastic, 0].surface.mu = nmAvatarObjectContactFriction; |
816 | m_materialContacts[(int)Material.Plastic, 0].surface.bounce = nmAvatarObjectContactBounce; | 813 | m_materialContacts[(int)Material.Plastic, 0].surface.bounce = nmAvatarObjectContactBounce; |
817 | m_materialContacts[(int)Material.Plastic, 0].surface.soft_cfm = 0.010f; | 814 | m_materialContacts[(int)Material.Plastic, 0].surface.soft_cfm = 0.010f; |
818 | m_materialContacts[(int)Material.Plastic, 0].surface.soft_erp = 0.010f; | 815 | m_materialContacts[(int)Material.Plastic, 0].surface.soft_erp = 0.010f; |
819 | 816 | ||
820 | m_materialContacts[(int)Material.Plastic, 1] = new d.Contact(); | 817 | m_materialContacts[(int)Material.Plastic, 1] = new SafeNativeMethods.Contact(); |
821 | m_materialContacts[(int)Material.Plastic, 1].surface.mode |= d.ContactFlags.SoftERP; | 818 | m_materialContacts[(int)Material.Plastic, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
822 | m_materialContacts[(int)Material.Plastic, 1].surface.mu = mAvatarObjectContactFriction; | 819 | m_materialContacts[(int)Material.Plastic, 1].surface.mu = mAvatarObjectContactFriction; |
823 | m_materialContacts[(int)Material.Plastic, 1].surface.bounce = mAvatarObjectContactBounce; | 820 | m_materialContacts[(int)Material.Plastic, 1].surface.bounce = mAvatarObjectContactBounce; |
824 | m_materialContacts[(int)Material.Plastic, 1].surface.soft_cfm = 0.010f; | 821 | m_materialContacts[(int)Material.Plastic, 1].surface.soft_cfm = 0.010f; |
825 | m_materialContacts[(int)Material.Plastic, 1].surface.soft_erp = 0.010f; | 822 | m_materialContacts[(int)Material.Plastic, 1].surface.soft_erp = 0.010f; |
826 | 823 | ||
827 | m_materialContacts[(int)Material.Rubber, 0] = new d.Contact(); | 824 | m_materialContacts[(int)Material.Rubber, 0] = new SafeNativeMethods.Contact(); |
828 | m_materialContacts[(int)Material.Rubber, 0].surface.mode |= d.ContactFlags.SoftERP; | 825 | m_materialContacts[(int)Material.Rubber, 0].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
829 | m_materialContacts[(int)Material.Rubber, 0].surface.mu = nmAvatarObjectContactFriction; | 826 | m_materialContacts[(int)Material.Rubber, 0].surface.mu = nmAvatarObjectContactFriction; |
830 | m_materialContacts[(int)Material.Rubber, 0].surface.bounce = nmAvatarObjectContactBounce; | 827 | m_materialContacts[(int)Material.Rubber, 0].surface.bounce = nmAvatarObjectContactBounce; |
831 | m_materialContacts[(int)Material.Rubber, 0].surface.soft_cfm = 0.010f; | 828 | m_materialContacts[(int)Material.Rubber, 0].surface.soft_cfm = 0.010f; |
832 | m_materialContacts[(int)Material.Rubber, 0].surface.soft_erp = 0.010f; | 829 | m_materialContacts[(int)Material.Rubber, 0].surface.soft_erp = 0.010f; |
833 | 830 | ||
834 | m_materialContacts[(int)Material.Rubber, 1] = new d.Contact(); | 831 | m_materialContacts[(int)Material.Rubber, 1] = new SafeNativeMethods.Contact(); |
835 | m_materialContacts[(int)Material.Rubber, 1].surface.mode |= d.ContactFlags.SoftERP; | 832 | m_materialContacts[(int)Material.Rubber, 1].surface.mode |= SafeNativeMethods.ContactFlags.SoftERP; |
836 | m_materialContacts[(int)Material.Rubber, 1].surface.mu = mAvatarObjectContactFriction; | 833 | m_materialContacts[(int)Material.Rubber, 1].surface.mu = mAvatarObjectContactFriction; |
837 | m_materialContacts[(int)Material.Rubber, 1].surface.bounce = mAvatarObjectContactBounce; | 834 | m_materialContacts[(int)Material.Rubber, 1].surface.bounce = mAvatarObjectContactBounce; |
838 | m_materialContacts[(int)Material.Rubber, 1].surface.soft_cfm = 0.010f; | 835 | m_materialContacts[(int)Material.Rubber, 1].surface.soft_cfm = 0.010f; |
839 | m_materialContacts[(int)Material.Rubber, 1].surface.soft_erp = 0.010f; | 836 | m_materialContacts[(int)Material.Rubber, 1].surface.soft_erp = 0.010f; |
840 | 837 | ||
841 | d.HashSpaceSetLevels(space, HashspaceLow, HashspaceHigh); | 838 | SafeNativeMethods.HashSpaceSetLevels(space, HashspaceLow, HashspaceHigh); |
842 | 839 | ||
843 | // Set the gravity,, don't disable things automatically (we set it explicitly on some things) | 840 | // Set the gravity,, don't disable things automatically (we set it explicitly on some things) |
844 | 841 | ||
845 | d.WorldSetGravity(world, gravityx, gravityy, gravityz); | 842 | SafeNativeMethods.WorldSetGravity(world, gravityx, gravityy, gravityz); |
846 | d.WorldSetContactSurfaceLayer(world, contactsurfacelayer); | 843 | SafeNativeMethods.WorldSetContactSurfaceLayer(world, contactsurfacelayer); |
847 | 844 | ||
848 | d.WorldSetLinearDamping(world, 256f); | 845 | SafeNativeMethods.WorldSetLinearDamping(world, 256f); |
849 | d.WorldSetAngularDamping(world, 256f); | 846 | SafeNativeMethods.WorldSetAngularDamping(world, 256f); |
850 | d.WorldSetAngularDampingThreshold(world, 256f); | 847 | SafeNativeMethods.WorldSetAngularDampingThreshold(world, 256f); |
851 | d.WorldSetLinearDampingThreshold(world, 256f); | 848 | SafeNativeMethods.WorldSetLinearDampingThreshold(world, 256f); |
852 | d.WorldSetMaxAngularSpeed(world, 256f); | 849 | SafeNativeMethods.WorldSetMaxAngularSpeed(world, 256f); |
853 | 850 | ||
854 | d.WorldSetQuickStepNumIterations(world, m_physicsiterations); | 851 | SafeNativeMethods.WorldSetQuickStepNumIterations(world, m_physicsiterations); |
855 | //d.WorldSetContactMaxCorrectingVel(world, 1000.0f); | 852 | //d.WorldSetContactMaxCorrectingVel(world, 1000.0f); |
856 | 853 | ||
857 | for (int i = 0; i < staticPrimspace.GetLength(0); i++) | 854 | for (int i = 0; i < staticPrimspace.GetLength(0); i++) |
@@ -877,7 +874,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
877 | /// <param name='contactsArray'></param> | 874 | /// <param name='contactsArray'></param> |
878 | /// <param name='contactGeomSize'></param> | 875 | /// <param name='contactGeomSize'></param> |
879 | private int CollideGeoms( | 876 | private int CollideGeoms( |
880 | IntPtr geom1, IntPtr geom2, int maxContacts, d.ContactGeom[] contactsArray, int contactGeomSize) | 877 | IntPtr geom1, IntPtr geom2, int maxContacts, SafeNativeMethods.ContactGeom[] contactsArray, int contactGeomSize) |
881 | { | 878 | { |
882 | int count; | 879 | int count; |
883 | 880 | ||
@@ -887,7 +884,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
887 | if (CollectStats) | 884 | if (CollectStats) |
888 | m_nativeCollisionStartTick = Util.EnvironmentTickCount(); | 885 | m_nativeCollisionStartTick = Util.EnvironmentTickCount(); |
889 | 886 | ||
890 | count = d.Collide(geom1, geom2, maxContacts, contactsArray, contactGeomSize); | 887 | count = SafeNativeMethods.Collide(geom1, geom2, maxContacts, contactsArray, contactGeomSize); |
891 | } | 888 | } |
892 | 889 | ||
893 | // We do this outside the lock so that any waiting threads aren't held up, though the effect is probably | 890 | // We do this outside the lock so that any waiting threads aren't held up, though the effect is probably |
@@ -913,7 +910,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
913 | m_nativeCollisionStartTick = Util.EnvironmentTickCount(); | 910 | m_nativeCollisionStartTick = Util.EnvironmentTickCount(); |
914 | } | 911 | } |
915 | 912 | ||
916 | d.SpaceCollide2(space1, space2, data, nearCallback); | 913 | SafeNativeMethods.SpaceCollide2(space1, space2, data, nearCallback); |
917 | 914 | ||
918 | if (CollectStats && m_inCollisionTiming) | 915 | if (CollectStats && m_inCollisionTiming) |
919 | { | 916 | { |
@@ -944,7 +941,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
944 | // Test if we're colliding a geom with a space. | 941 | // Test if we're colliding a geom with a space. |
945 | // If so we have to drill down into the space recursively | 942 | // If so we have to drill down into the space recursively |
946 | 943 | ||
947 | if (d.GeomIsSpace(g1) || d.GeomIsSpace(g2)) | 944 | if (SafeNativeMethods.GeomIsSpace(g1) || SafeNativeMethods.GeomIsSpace(g2)) |
948 | { | 945 | { |
949 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) | 946 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) |
950 | return; | 947 | return; |
@@ -973,8 +970,8 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
973 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) | 970 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) |
974 | return; | 971 | return; |
975 | 972 | ||
976 | IntPtr b1 = d.GeomGetBody(g1); | 973 | IntPtr b1 = SafeNativeMethods.GeomGetBody(g1); |
977 | IntPtr b2 = d.GeomGetBody(g2); | 974 | IntPtr b2 = SafeNativeMethods.GeomGetBody(g2); |
978 | 975 | ||
979 | // d.GeomClassID id = d.GeomGetClass(g1); | 976 | // d.GeomClassID id = d.GeomGetClass(g1); |
980 | 977 | ||
@@ -1001,10 +998,10 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1001 | if (g1 == g2) | 998 | if (g1 == g2) |
1002 | return; // Can't collide with yourself | 999 | return; // Can't collide with yourself |
1003 | 1000 | ||
1004 | if (b1 != IntPtr.Zero && b2 != IntPtr.Zero && d.AreConnectedExcluding(b1, b2, d.JointType.Contact)) | 1001 | if (b1 != IntPtr.Zero && b2 != IntPtr.Zero && SafeNativeMethods.AreConnectedExcluding(b1, b2, SafeNativeMethods.JointType.Contact)) |
1005 | return; | 1002 | return; |
1006 | 1003 | ||
1007 | count = CollideGeoms(g1, g2, contacts.Length, contacts, d.ContactGeom.unmanagedSizeOf); | 1004 | count = CollideGeoms(g1, g2, contacts.Length, contacts, SafeNativeMethods.ContactGeom.unmanagedSizeOf); |
1008 | 1005 | ||
1009 | // All code after this is only relevant if we have any collisions | 1006 | // All code after this is only relevant if we have any collisions |
1010 | if (count <= 0) | 1007 | if (count <= 0) |
@@ -1052,7 +1049,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1052 | 1049 | ||
1053 | for (int i = 0; i < count; i++) | 1050 | for (int i = 0; i < count; i++) |
1054 | { | 1051 | { |
1055 | d.ContactGeom curContact = contacts[i]; | 1052 | SafeNativeMethods.ContactGeom curContact = contacts[i]; |
1056 | 1053 | ||
1057 | if (curContact.depth > maxDepthContact.PenetrationDepth) | 1054 | if (curContact.depth > maxDepthContact.PenetrationDepth) |
1058 | { | 1055 | { |
@@ -1129,7 +1126,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1129 | curContact.depth = 0.00000003f; | 1126 | curContact.depth = 0.00000003f; |
1130 | p2.Velocity = p2.Velocity + new Vector3(0f, 0f, 0.5f); | 1127 | p2.Velocity = p2.Velocity + new Vector3(0f, 0f, 0.5f); |
1131 | curContact.pos = | 1128 | curContact.pos = |
1132 | new d.Vector3(curContact.pos.X + (p1.Size.X/2), | 1129 | new SafeNativeMethods.Vector3(curContact.pos.X + (p1.Size.X/2), |
1133 | curContact.pos.Y + (p1.Size.Y/2), | 1130 | curContact.pos.Y + (p1.Size.Y/2), |
1134 | curContact.pos.Z + (p1.Size.Z/2)); | 1131 | curContact.pos.Z + (p1.Size.Z/2)); |
1135 | character.SetPidStatus(true); | 1132 | character.SetPidStatus(true); |
@@ -1146,7 +1143,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1146 | curContact.depth = 0.00000003f; | 1143 | curContact.depth = 0.00000003f; |
1147 | p1.Velocity = p1.Velocity + new Vector3(0f, 0f, 0.5f); | 1144 | p1.Velocity = p1.Velocity + new Vector3(0f, 0f, 0.5f); |
1148 | curContact.pos = | 1145 | curContact.pos = |
1149 | new d.Vector3(curContact.pos.X + (p1.Size.X/2), | 1146 | new SafeNativeMethods.Vector3(curContact.pos.X + (p1.Size.X/2), |
1150 | curContact.pos.Y + (p1.Size.Y/2), | 1147 | curContact.pos.Y + (p1.Size.Y/2), |
1151 | curContact.pos.Z + (p1.Size.Z/2)); | 1148 | curContact.pos.Z + (p1.Size.Z/2)); |
1152 | character.SetPidStatus(true); | 1149 | character.SetPidStatus(true); |
@@ -1198,7 +1195,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1198 | 1195 | ||
1199 | if (m_global_contactcount < maxContactsbeforedeath) | 1196 | if (m_global_contactcount < maxContactsbeforedeath) |
1200 | { | 1197 | { |
1201 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementTerrainContact); | 1198 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref AvatarMovementTerrainContact); |
1202 | m_global_contactcount++; | 1199 | m_global_contactcount++; |
1203 | } | 1200 | } |
1204 | } | 1201 | } |
@@ -1212,7 +1209,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1212 | 1209 | ||
1213 | if (m_global_contactcount < maxContactsbeforedeath) | 1210 | if (m_global_contactcount < maxContactsbeforedeath) |
1214 | { | 1211 | { |
1215 | joint = d.JointCreateContact(world, contactgroup, ref TerrainContact); | 1212 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref TerrainContact); |
1216 | m_global_contactcount++; | 1213 | m_global_contactcount++; |
1217 | } | 1214 | } |
1218 | } | 1215 | } |
@@ -1247,7 +1244,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1247 | 1244 | ||
1248 | if (m_global_contactcount < maxContactsbeforedeath) | 1245 | if (m_global_contactcount < maxContactsbeforedeath) |
1249 | { | 1246 | { |
1250 | joint = d.JointCreateContact(world, contactgroup, ref m_materialContacts[material, movintYN]); | 1247 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref m_materialContacts[material, movintYN]); |
1251 | m_global_contactcount++; | 1248 | m_global_contactcount++; |
1252 | } | 1249 | } |
1253 | } | 1250 | } |
@@ -1273,7 +1270,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1273 | 1270 | ||
1274 | if (m_global_contactcount < maxContactsbeforedeath) | 1271 | if (m_global_contactcount < maxContactsbeforedeath) |
1275 | { | 1272 | { |
1276 | joint = d.JointCreateContact(world, contactgroup, ref m_materialContacts[material, movintYN]); | 1273 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref m_materialContacts[material, movintYN]); |
1277 | m_global_contactcount++; | 1274 | m_global_contactcount++; |
1278 | } | 1275 | } |
1279 | } | 1276 | } |
@@ -1307,7 +1304,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1307 | 1304 | ||
1308 | if (m_global_contactcount < maxContactsbeforedeath) | 1305 | if (m_global_contactcount < maxContactsbeforedeath) |
1309 | { | 1306 | { |
1310 | joint = d.JointCreateContact(world, contactgroup, ref WaterContact); | 1307 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref WaterContact); |
1311 | m_global_contactcount++; | 1308 | m_global_contactcount++; |
1312 | } | 1309 | } |
1313 | //m_log.Info("[PHYSICS]: Prim Water Contact" + contact.depth); | 1310 | //m_log.Info("[PHYSICS]: Prim Water Contact" + contact.depth); |
@@ -1324,7 +1321,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1324 | 1321 | ||
1325 | if (m_global_contactcount < maxContactsbeforedeath) | 1322 | if (m_global_contactcount < maxContactsbeforedeath) |
1326 | { | 1323 | { |
1327 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementprimContact); | 1324 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref AvatarMovementprimContact); |
1328 | m_global_contactcount++; | 1325 | m_global_contactcount++; |
1329 | } | 1326 | } |
1330 | } | 1327 | } |
@@ -1335,7 +1332,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1335 | 1332 | ||
1336 | if (m_global_contactcount < maxContactsbeforedeath) | 1333 | if (m_global_contactcount < maxContactsbeforedeath) |
1337 | { | 1334 | { |
1338 | joint = d.JointCreateContact(world, contactgroup, ref contact); | 1335 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref contact); |
1339 | m_global_contactcount++; | 1336 | m_global_contactcount++; |
1340 | } | 1337 | } |
1341 | } | 1338 | } |
@@ -1356,7 +1353,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1356 | 1353 | ||
1357 | if (m_global_contactcount < maxContactsbeforedeath) | 1354 | if (m_global_contactcount < maxContactsbeforedeath) |
1358 | { | 1355 | { |
1359 | joint = d.JointCreateContact(world, contactgroup, ref m_materialContacts[material, 0]); | 1356 | joint = SafeNativeMethods.JointCreateContact(world, contactgroup, ref m_materialContacts[material, 0]); |
1360 | m_global_contactcount++; | 1357 | m_global_contactcount++; |
1361 | } | 1358 | } |
1362 | } | 1359 | } |
@@ -1364,7 +1361,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1364 | 1361 | ||
1365 | if (m_global_contactcount < maxContactsbeforedeath && joint != IntPtr.Zero) // stack collide! | 1362 | if (m_global_contactcount < maxContactsbeforedeath && joint != IntPtr.Zero) // stack collide! |
1366 | { | 1363 | { |
1367 | d.JointAttach(joint, b1, b2); | 1364 | SafeNativeMethods.JointAttach(joint, b1, b2); |
1368 | m_global_contactcount++; | 1365 | m_global_contactcount++; |
1369 | } | 1366 | } |
1370 | } | 1367 | } |
@@ -1384,7 +1381,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1384 | } | 1381 | } |
1385 | } | 1382 | } |
1386 | 1383 | ||
1387 | private bool checkDupe(d.ContactGeom contactGeom, int atype) | 1384 | private bool checkDupe(SafeNativeMethods.ContactGeom contactGeom, int atype) |
1388 | { | 1385 | { |
1389 | if (!m_filterCollisions) | 1386 | if (!m_filterCollisions) |
1390 | return false; | 1387 | return false; |
@@ -1393,7 +1390,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1393 | 1390 | ||
1394 | ActorTypes at = (ActorTypes)atype; | 1391 | ActorTypes at = (ActorTypes)atype; |
1395 | 1392 | ||
1396 | foreach (d.ContactGeom contact in _perloopContact) | 1393 | foreach (SafeNativeMethods.ContactGeom contact in _perloopContact) |
1397 | { | 1394 | { |
1398 | //if ((contact.g1 == contactGeom.g1 && contact.g2 == contactGeom.g2)) | 1395 | //if ((contact.g1 == contactGeom.g1 && contact.g2 == contactGeom.g2)) |
1399 | //{ | 1396 | //{ |
@@ -1580,7 +1577,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1580 | List<OdePrim> removeprims = null; | 1577 | List<OdePrim> removeprims = null; |
1581 | foreach (OdePrim chr in _activeprims) | 1578 | foreach (OdePrim chr in _activeprims) |
1582 | { | 1579 | { |
1583 | if (chr.Body != IntPtr.Zero && d.BodyIsEnabled(chr.Body) && (!chr.m_disabled)) | 1580 | if (chr.Body != IntPtr.Zero && SafeNativeMethods.BodyIsEnabled(chr.Body) && (!chr.m_disabled)) |
1584 | { | 1581 | { |
1585 | try | 1582 | try |
1586 | { | 1583 | { |
@@ -1706,7 +1703,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1706 | 1703 | ||
1707 | public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 velocity, Vector3 size, bool isFlying) | 1704 | public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 velocity, Vector3 size, bool isFlying) |
1708 | { | 1705 | { |
1709 | d.AllocateODEDataForThread(0); | 1706 | SafeNativeMethods.AllocateODEDataForThread(0); |
1710 | 1707 | ||
1711 | OdeCharacter newAv | 1708 | OdeCharacter newAv |
1712 | = new OdeCharacter( | 1709 | = new OdeCharacter( |
@@ -1729,7 +1726,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1729 | 1726 | ||
1730 | lock (OdeLock) | 1727 | lock (OdeLock) |
1731 | { | 1728 | { |
1732 | d.AllocateODEDataForThread(0); | 1729 | SafeNativeMethods.AllocateODEDataForThread(0); |
1733 | 1730 | ||
1734 | ((OdeCharacter) actor).Destroy(); | 1731 | ((OdeCharacter) actor).Destroy(); |
1735 | } | 1732 | } |
@@ -1786,7 +1783,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1786 | OdePrim newPrim; | 1783 | OdePrim newPrim; |
1787 | lock (OdeLock) | 1784 | lock (OdeLock) |
1788 | { | 1785 | { |
1789 | d.AllocateODEDataForThread(0); | 1786 | SafeNativeMethods.AllocateODEDataForThread(0); |
1790 | newPrim = new OdePrim(name, this, pos, siz, rot, pbs, isphysical); | 1787 | newPrim = new OdePrim(name, this, pos, siz, rot, pbs, isphysical); |
1791 | 1788 | ||
1792 | lock (_prims) | 1789 | lock (_prims) |
@@ -1950,7 +1947,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
1950 | DoJointDeactivated(joint); | 1947 | DoJointDeactivated(joint); |
1951 | if (joint.jointID != IntPtr.Zero) | 1948 | if (joint.jointID != IntPtr.Zero) |
1952 | { | 1949 | { |
1953 | d.JointDestroy(joint.jointID); | 1950 | SafeNativeMethods.JointDestroy(joint.jointID); |
1954 | joint.jointID = IntPtr.Zero; | 1951 | joint.jointID = IntPtr.Zero; |
1955 | //DoJointErrorMessage(joint, "successfully destroyed joint " + jointName); | 1952 | //DoJointErrorMessage(joint, "successfully destroyed joint " + jointName); |
1956 | } | 1953 | } |
@@ -2115,7 +2112,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2115 | public override Vector3 GetJointAnchor(PhysicsJoint joint) | 2112 | public override Vector3 GetJointAnchor(PhysicsJoint joint) |
2116 | { | 2113 | { |
2117 | Debug.Assert(joint.IsInPhysicsEngine); | 2114 | Debug.Assert(joint.IsInPhysicsEngine); |
2118 | d.Vector3 pos = new d.Vector3(); | 2115 | SafeNativeMethods.Vector3 pos = new SafeNativeMethods.Vector3(); |
2119 | 2116 | ||
2120 | if (!(joint is OdePhysicsJoint)) | 2117 | if (!(joint is OdePhysicsJoint)) |
2121 | { | 2118 | { |
@@ -2127,10 +2124,10 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2127 | switch (odeJoint.Type) | 2124 | switch (odeJoint.Type) |
2128 | { | 2125 | { |
2129 | case PhysicsJointType.Ball: | 2126 | case PhysicsJointType.Ball: |
2130 | d.JointGetBallAnchor(odeJoint.jointID, out pos); | 2127 | SafeNativeMethods.JointGetBallAnchor(odeJoint.jointID, out pos); |
2131 | break; | 2128 | break; |
2132 | case PhysicsJointType.Hinge: | 2129 | case PhysicsJointType.Hinge: |
2133 | d.JointGetHingeAnchor(odeJoint.jointID, out pos); | 2130 | SafeNativeMethods.JointGetHingeAnchor(odeJoint.jointID, out pos); |
2134 | break; | 2131 | break; |
2135 | } | 2132 | } |
2136 | } | 2133 | } |
@@ -2151,7 +2148,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2151 | public override Vector3 GetJointAxis(PhysicsJoint joint) | 2148 | public override Vector3 GetJointAxis(PhysicsJoint joint) |
2152 | { | 2149 | { |
2153 | Debug.Assert(joint.IsInPhysicsEngine); | 2150 | Debug.Assert(joint.IsInPhysicsEngine); |
2154 | d.Vector3 axis = new d.Vector3(); | 2151 | SafeNativeMethods.Vector3 axis = new SafeNativeMethods.Vector3(); |
2155 | 2152 | ||
2156 | if (!(joint is OdePhysicsJoint)) | 2153 | if (!(joint is OdePhysicsJoint)) |
2157 | { | 2154 | { |
@@ -2166,7 +2163,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2166 | DoJointErrorMessage(joint, "warning - axis requested for ball joint: " + joint.ObjectNameInScene); | 2163 | DoJointErrorMessage(joint, "warning - axis requested for ball joint: " + joint.ObjectNameInScene); |
2167 | break; | 2164 | break; |
2168 | case PhysicsJointType.Hinge: | 2165 | case PhysicsJointType.Hinge: |
2169 | d.JointGetHingeAxis(odeJoint.jointID, out axis); | 2166 | SafeNativeMethods.JointGetHingeAxis(odeJoint.jointID, out axis); |
2170 | break; | 2167 | break; |
2171 | } | 2168 | } |
2172 | } | 2169 | } |
@@ -2299,12 +2296,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2299 | //{ | 2296 | //{ |
2300 | //int adfadf = 0; | 2297 | //int adfadf = 0; |
2301 | //} | 2298 | //} |
2302 | if (d.SpaceQuery(currentspace, geom) && currentspace != IntPtr.Zero) | 2299 | if (SafeNativeMethods.SpaceQuery(currentspace, geom) && currentspace != IntPtr.Zero) |
2303 | { | 2300 | { |
2304 | if (d.GeomIsSpace(currentspace)) | 2301 | if (SafeNativeMethods.GeomIsSpace(currentspace)) |
2305 | { | 2302 | { |
2306 | // waitForSpaceUnlock(currentspace); | 2303 | // waitForSpaceUnlock(currentspace); |
2307 | d.SpaceRemove(currentspace, geom); | 2304 | SafeNativeMethods.SpaceRemove(currentspace, geom); |
2308 | } | 2305 | } |
2309 | else | 2306 | else |
2310 | { | 2307 | { |
@@ -2314,13 +2311,13 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2314 | } | 2311 | } |
2315 | else | 2312 | else |
2316 | { | 2313 | { |
2317 | IntPtr sGeomIsIn = d.GeomGetSpace(geom); | 2314 | IntPtr sGeomIsIn = SafeNativeMethods.GeomGetSpace(geom); |
2318 | if (sGeomIsIn != IntPtr.Zero) | 2315 | if (sGeomIsIn != IntPtr.Zero) |
2319 | { | 2316 | { |
2320 | if (d.GeomIsSpace(currentspace)) | 2317 | if (SafeNativeMethods.GeomIsSpace(currentspace)) |
2321 | { | 2318 | { |
2322 | // waitForSpaceUnlock(sGeomIsIn); | 2319 | // waitForSpaceUnlock(sGeomIsIn); |
2323 | d.SpaceRemove(sGeomIsIn, geom); | 2320 | SafeNativeMethods.SpaceRemove(sGeomIsIn, geom); |
2324 | } | 2321 | } |
2325 | else | 2322 | else |
2326 | { | 2323 | { |
@@ -2331,13 +2328,13 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2331 | } | 2328 | } |
2332 | 2329 | ||
2333 | //If there are no more geometries in the sub-space, we don't need it in the main space anymore | 2330 | //If there are no more geometries in the sub-space, we don't need it in the main space anymore |
2334 | if (d.SpaceGetNumGeoms(currentspace) == 0) | 2331 | if (SafeNativeMethods.SpaceGetNumGeoms(currentspace) == 0) |
2335 | { | 2332 | { |
2336 | if (currentspace != IntPtr.Zero) | 2333 | if (currentspace != IntPtr.Zero) |
2337 | { | 2334 | { |
2338 | if (d.GeomIsSpace(currentspace)) | 2335 | if (SafeNativeMethods.GeomIsSpace(currentspace)) |
2339 | { | 2336 | { |
2340 | d.SpaceRemove(space, currentspace); | 2337 | SafeNativeMethods.SpaceRemove(space, currentspace); |
2341 | // free up memory used by the space. | 2338 | // free up memory used by the space. |
2342 | 2339 | ||
2343 | resetSpaceArrayItemToZero(currentspace); | 2340 | resetSpaceArrayItemToZero(currentspace); |
@@ -2355,12 +2352,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2355 | // this is a physical object that got disabled. ;.; | 2352 | // this is a physical object that got disabled. ;.; |
2356 | if (currentspace != IntPtr.Zero && geom != IntPtr.Zero) | 2353 | if (currentspace != IntPtr.Zero && geom != IntPtr.Zero) |
2357 | { | 2354 | { |
2358 | if (d.SpaceQuery(currentspace, geom)) | 2355 | if (SafeNativeMethods.SpaceQuery(currentspace, geom)) |
2359 | { | 2356 | { |
2360 | if (d.GeomIsSpace(currentspace)) | 2357 | if (SafeNativeMethods.GeomIsSpace(currentspace)) |
2361 | { | 2358 | { |
2362 | // waitForSpaceUnlock(currentspace); | 2359 | // waitForSpaceUnlock(currentspace); |
2363 | d.SpaceRemove(currentspace, geom); | 2360 | SafeNativeMethods.SpaceRemove(currentspace, geom); |
2364 | } | 2361 | } |
2365 | else | 2362 | else |
2366 | { | 2363 | { |
@@ -2370,13 +2367,13 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2370 | } | 2367 | } |
2371 | else | 2368 | else |
2372 | { | 2369 | { |
2373 | IntPtr sGeomIsIn = d.GeomGetSpace(geom); | 2370 | IntPtr sGeomIsIn = SafeNativeMethods.GeomGetSpace(geom); |
2374 | if (sGeomIsIn != IntPtr.Zero) | 2371 | if (sGeomIsIn != IntPtr.Zero) |
2375 | { | 2372 | { |
2376 | if (d.GeomIsSpace(sGeomIsIn)) | 2373 | if (SafeNativeMethods.GeomIsSpace(sGeomIsIn)) |
2377 | { | 2374 | { |
2378 | // waitForSpaceUnlock(sGeomIsIn); | 2375 | // waitForSpaceUnlock(sGeomIsIn); |
2379 | d.SpaceRemove(sGeomIsIn, geom); | 2376 | SafeNativeMethods.SpaceRemove(sGeomIsIn, geom); |
2380 | } | 2377 | } |
2381 | else | 2378 | else |
2382 | { | 2379 | { |
@@ -2397,7 +2394,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2397 | if (newspace == IntPtr.Zero) | 2394 | if (newspace == IntPtr.Zero) |
2398 | { | 2395 | { |
2399 | newspace = createprimspace(iprimspaceArrItem[0], iprimspaceArrItem[1]); | 2396 | newspace = createprimspace(iprimspaceArrItem[0], iprimspaceArrItem[1]); |
2400 | d.HashSpaceSetLevels(newspace, HashspaceLow, HashspaceHigh); | 2397 | SafeNativeMethods.HashSpaceSetLevels(newspace, HashspaceLow, HashspaceHigh); |
2401 | } | 2398 | } |
2402 | 2399 | ||
2403 | return newspace; | 2400 | return newspace; |
@@ -2412,11 +2409,11 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2412 | internal IntPtr createprimspace(int iprimspaceArrItemX, int iprimspaceArrItemY) | 2409 | internal IntPtr createprimspace(int iprimspaceArrItemX, int iprimspaceArrItemY) |
2413 | { | 2410 | { |
2414 | // creating a new space for prim and inserting it into main space. | 2411 | // creating a new space for prim and inserting it into main space. |
2415 | staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY] = d.HashSpaceCreate(IntPtr.Zero); | 2412 | staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY] = SafeNativeMethods.HashSpaceCreate(IntPtr.Zero); |
2416 | d.GeomSetCategoryBits(staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY], (int)CollisionCategories.Space); | 2413 | SafeNativeMethods.GeomSetCategoryBits(staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY], (int)CollisionCategories.Space); |
2417 | // waitForSpaceUnlock(space); | 2414 | // waitForSpaceUnlock(space); |
2418 | d.SpaceSetSublevel(space, 1); | 2415 | SafeNativeMethods.SpaceSetSublevel(space, 1); |
2419 | d.SpaceAdd(space, staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]); | 2416 | SafeNativeMethods.SpaceAdd(space, staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]); |
2420 | 2417 | ||
2421 | return staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]; | 2418 | return staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]; |
2422 | } | 2419 | } |
@@ -2636,7 +2633,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2636 | m_log.InfoFormat("[Ode] start processing pending actor operations"); | 2633 | m_log.InfoFormat("[Ode] start processing pending actor operations"); |
2637 | int tstart = Util.EnvironmentTickCount(); | 2634 | int tstart = Util.EnvironmentTickCount(); |
2638 | 2635 | ||
2639 | d.AllocateODEDataForThread(0); | 2636 | SafeNativeMethods.AllocateODEDataForThread(0); |
2640 | 2637 | ||
2641 | lock (_taintedPrims) | 2638 | lock (_taintedPrims) |
2642 | { | 2639 | { |
@@ -2719,7 +2716,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2719 | 2716 | ||
2720 | lock (OdeLock) | 2717 | lock (OdeLock) |
2721 | { | 2718 | { |
2722 | d.AllocateODEDataForThread(~0U); | 2719 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
2723 | 2720 | ||
2724 | while (step_time > HalfOdeStep) | 2721 | while (step_time > HalfOdeStep) |
2725 | { | 2722 | { |
@@ -2871,12 +2868,12 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2871 | } | 2868 | } |
2872 | 2869 | ||
2873 | lock(SimulationLock) | 2870 | lock(SimulationLock) |
2874 | d.WorldQuickStep(world, ODE_STEPSIZE); | 2871 | SafeNativeMethods.WorldQuickStep(world, ODE_STEPSIZE); |
2875 | 2872 | ||
2876 | if (CollectStats) | 2873 | if (CollectStats) |
2877 | m_stats[ODENativeStepFrameMsStatName] += Util.EnvironmentTickCountSubtract(tempTick); | 2874 | m_stats[ODENativeStepFrameMsStatName] += Util.EnvironmentTickCountSubtract(tempTick); |
2878 | 2875 | ||
2879 | d.JointGroupEmpty(contactgroup); | 2876 | SafeNativeMethods.JointGroupEmpty(contactgroup); |
2880 | } | 2877 | } |
2881 | catch (Exception e) | 2878 | catch (Exception e) |
2882 | { | 2879 | { |
@@ -2924,7 +2921,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2924 | 2921 | ||
2925 | foreach (OdePrim prim in _activeprims) | 2922 | foreach (OdePrim prim in _activeprims) |
2926 | { | 2923 | { |
2927 | if (prim.IsPhysical && (d.BodyIsEnabled(prim.Body) || !prim._zeroFlag)) | 2924 | if (prim.IsPhysical && (SafeNativeMethods.BodyIsEnabled(prim.Body) || !prim._zeroFlag)) |
2928 | { | 2925 | { |
2929 | prim.UpdatePositionAndVelocity(); | 2926 | prim.UpdatePositionAndVelocity(); |
2930 | 2927 | ||
@@ -2954,7 +2951,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
2954 | fwriter.Close(); | 2951 | fwriter.Close(); |
2955 | } | 2952 | } |
2956 | 2953 | ||
2957 | d.WorldExportDIF(world, fname, physics_logging_append_existing_logfile, prefix); | 2954 | SafeNativeMethods.WorldExportDIF(world, fname, physics_logging_append_existing_logfile, prefix); |
2958 | } | 2955 | } |
2959 | 2956 | ||
2960 | latertickcount = Util.EnvironmentTickCountSubtract(tickCountFrameRun); | 2957 | latertickcount = Util.EnvironmentTickCountSubtract(tickCountFrameRun); |
@@ -3069,11 +3066,11 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3069 | { | 3066 | { |
3070 | IntPtr odeJoint; | 3067 | IntPtr odeJoint; |
3071 | //DoJointErrorMessage(joint, "ODE creating ball joint "); | 3068 | //DoJointErrorMessage(joint, "ODE creating ball joint "); |
3072 | odeJoint = d.JointCreateBall(world, IntPtr.Zero); | 3069 | odeJoint = SafeNativeMethods.JointCreateBall(world, IntPtr.Zero); |
3073 | //DoJointErrorMessage(joint, "ODE attaching ball joint: " + odeJoint + " with b1:" + jointBodies[0] + " b2:" + jointBodies[1]); | 3070 | //DoJointErrorMessage(joint, "ODE attaching ball joint: " + odeJoint + " with b1:" + jointBodies[0] + " b2:" + jointBodies[1]); |
3074 | d.JointAttach(odeJoint, jointBodies[0], jointBodies[1]); | 3071 | SafeNativeMethods.JointAttach(odeJoint, jointBodies[0], jointBodies[1]); |
3075 | //DoJointErrorMessage(joint, "ODE setting ball anchor: " + odeJoint + " to vec:" + joint.Position); | 3072 | //DoJointErrorMessage(joint, "ODE setting ball anchor: " + odeJoint + " to vec:" + joint.Position); |
3076 | d.JointSetBallAnchor(odeJoint, | 3073 | SafeNativeMethods.JointSetBallAnchor(odeJoint, |
3077 | joint.Position.X, | 3074 | joint.Position.X, |
3078 | joint.Position.Y, | 3075 | joint.Position.Y, |
3079 | joint.Position.Z); | 3076 | joint.Position.Z); |
@@ -3097,11 +3094,11 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3097 | { | 3094 | { |
3098 | IntPtr odeJoint; | 3095 | IntPtr odeJoint; |
3099 | //DoJointErrorMessage(joint, "ODE creating hinge joint "); | 3096 | //DoJointErrorMessage(joint, "ODE creating hinge joint "); |
3100 | odeJoint = d.JointCreateHinge(world, IntPtr.Zero); | 3097 | odeJoint = SafeNativeMethods.JointCreateHinge(world, IntPtr.Zero); |
3101 | //DoJointErrorMessage(joint, "ODE attaching hinge joint: " + odeJoint + " with b1:" + jointBodies[0] + " b2:" + jointBodies[1]); | 3098 | //DoJointErrorMessage(joint, "ODE attaching hinge joint: " + odeJoint + " with b1:" + jointBodies[0] + " b2:" + jointBodies[1]); |
3102 | d.JointAttach(odeJoint, jointBodies[0], jointBodies[1]); | 3099 | SafeNativeMethods.JointAttach(odeJoint, jointBodies[0], jointBodies[1]); |
3103 | //DoJointErrorMessage(joint, "ODE setting hinge anchor: " + odeJoint + " to vec:" + joint.Position); | 3100 | //DoJointErrorMessage(joint, "ODE setting hinge anchor: " + odeJoint + " to vec:" + joint.Position); |
3104 | d.JointSetHingeAnchor(odeJoint, | 3101 | SafeNativeMethods.JointSetHingeAnchor(odeJoint, |
3105 | joint.Position.X, | 3102 | joint.Position.X, |
3106 | joint.Position.Y, | 3103 | joint.Position.Y, |
3107 | joint.Position.Z); | 3104 | joint.Position.Z); |
@@ -3137,7 +3134,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3137 | Vector3 jointAxis = Vector3.Transform(Vector3.UnitX, proxyFrame); | 3134 | Vector3 jointAxis = Vector3.Transform(Vector3.UnitX, proxyFrame); |
3138 | //m_log.Debug("PHY: making axis: hinge joint axis is " + jointAxis); | 3135 | //m_log.Debug("PHY: making axis: hinge joint axis is " + jointAxis); |
3139 | //DoJointErrorMessage(joint, "ODE setting hinge axis: " + odeJoint + " to vec:" + jointAxis); | 3136 | //DoJointErrorMessage(joint, "ODE setting hinge axis: " + odeJoint + " to vec:" + jointAxis); |
3140 | d.JointSetHingeAxis(odeJoint, | 3137 | SafeNativeMethods.JointSetHingeAxis(odeJoint, |
3141 | jointAxis.X, | 3138 | jointAxis.X, |
3142 | jointAxis.Y, | 3139 | jointAxis.Y, |
3143 | jointAxis.Z); | 3140 | jointAxis.Z); |
@@ -3299,7 +3296,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3299 | 3296 | ||
3300 | lock (OdeLock) | 3297 | lock (OdeLock) |
3301 | { | 3298 | { |
3302 | d.AllocateODEDataForThread(~0U); | 3299 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
3303 | 3300 | ||
3304 | IntPtr GroundGeom = IntPtr.Zero; | 3301 | IntPtr GroundGeom = IntPtr.Zero; |
3305 | if (RegionTerrain.TryGetValue(pOffset, out GroundGeom)) | 3302 | if (RegionTerrain.TryGetValue(pOffset, out GroundGeom)) |
@@ -3311,29 +3308,29 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3311 | { | 3308 | { |
3312 | TerrainHeightFieldHeights.Remove(GroundGeom); | 3309 | TerrainHeightFieldHeights.Remove(GroundGeom); |
3313 | } | 3310 | } |
3314 | d.SpaceRemove(space, GroundGeom); | 3311 | SafeNativeMethods.SpaceRemove(space, GroundGeom); |
3315 | d.GeomDestroy(GroundGeom); | 3312 | SafeNativeMethods.GeomDestroy(GroundGeom); |
3316 | } | 3313 | } |
3317 | 3314 | ||
3318 | } | 3315 | } |
3319 | IntPtr HeightmapData = d.GeomHeightfieldDataCreate(); | 3316 | IntPtr HeightmapData = SafeNativeMethods.GeomHeightfieldDataCreate(); |
3320 | d.GeomHeightfieldDataBuildSingle(HeightmapData, _heightmap, 0, | 3317 | SafeNativeMethods.GeomHeightfieldDataBuildSingle(HeightmapData, _heightmap, 0, |
3321 | heightmapWidth, heightmapHeight, | 3318 | heightmapWidth, heightmapHeight, |
3322 | (int)heightmapWidthSamples, | 3319 | (int)heightmapWidthSamples, |
3323 | (int)heightmapHeightSamples, | 3320 | (int)heightmapHeightSamples, |
3324 | scale, offset, thickness, wrap); | 3321 | scale, offset, thickness, wrap); |
3325 | 3322 | ||
3326 | d.GeomHeightfieldDataSetBounds(HeightmapData, hfmin - 1, hfmax + 1); | 3323 | SafeNativeMethods.GeomHeightfieldDataSetBounds(HeightmapData, hfmin - 1, hfmax + 1); |
3327 | GroundGeom = d.CreateHeightfield(space, HeightmapData, 1); | 3324 | GroundGeom = SafeNativeMethods.CreateHeightfield(space, HeightmapData, 1); |
3328 | if (GroundGeom != IntPtr.Zero) | 3325 | if (GroundGeom != IntPtr.Zero) |
3329 | { | 3326 | { |
3330 | d.GeomSetCategoryBits(GroundGeom, (int)(CollisionCategories.Land)); | 3327 | SafeNativeMethods.GeomSetCategoryBits(GroundGeom, (int)(CollisionCategories.Land)); |
3331 | d.GeomSetCollideBits(GroundGeom, (int)(CollisionCategories.Space)); | 3328 | SafeNativeMethods.GeomSetCollideBits(GroundGeom, (int)(CollisionCategories.Space)); |
3332 | 3329 | ||
3333 | } | 3330 | } |
3334 | geom_name_map[GroundGeom] = "Terrain"; | 3331 | geom_name_map[GroundGeom] = "Terrain"; |
3335 | 3332 | ||
3336 | d.Matrix3 R = new d.Matrix3(); | 3333 | SafeNativeMethods.Matrix3 R = new SafeNativeMethods.Matrix3(); |
3337 | 3334 | ||
3338 | Quaternion q1 = Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), 1.5707f); | 3335 | Quaternion q1 = Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), 1.5707f); |
3339 | Quaternion q2 = Quaternion.CreateFromAxisAngle(new Vector3(0, 1, 0), 1.5707f); | 3336 | Quaternion q2 = Quaternion.CreateFromAxisAngle(new Vector3(0, 1, 0), 1.5707f); |
@@ -3343,9 +3340,9 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3343 | float angle; | 3340 | float angle; |
3344 | q1.GetAxisAngle(out v3, out angle); | 3341 | q1.GetAxisAngle(out v3, out angle); |
3345 | 3342 | ||
3346 | d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); | 3343 | SafeNativeMethods.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); |
3347 | d.GeomSetRotation(GroundGeom, ref R); | 3344 | SafeNativeMethods.GeomSetRotation(GroundGeom, ref R); |
3348 | d.GeomSetPosition(GroundGeom, pOffset.X + regionsizeX * 0.5f, pOffset.Y + regionsizeY * 0.5f, 0.0f); | 3345 | SafeNativeMethods.GeomSetPosition(GroundGeom, pOffset.X + regionsizeX * 0.5f, pOffset.Y + regionsizeY * 0.5f, 0.0f); |
3349 | IntPtr testGround = IntPtr.Zero; | 3346 | IntPtr testGround = IntPtr.Zero; |
3350 | if (RegionTerrain.TryGetValue(pOffset, out testGround)) | 3347 | if (RegionTerrain.TryGetValue(pOffset, out testGround)) |
3351 | { | 3348 | { |
@@ -3384,7 +3381,7 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3384 | 3381 | ||
3385 | _worldInitialized = false; | 3382 | _worldInitialized = false; |
3386 | 3383 | ||
3387 | d.AllocateODEDataForThread(~0U); | 3384 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
3388 | 3385 | ||
3389 | if (m_rayCastManager != null) | 3386 | if (m_rayCastManager != null) |
3390 | { | 3387 | { |
@@ -3412,13 +3409,13 @@ namespace OpenSim.Region.PhysicsModule.ODE | |||
3412 | { | 3409 | { |
3413 | if (TerrainHeightFieldHeights.ContainsKey(GroundGeom)) | 3410 | if (TerrainHeightFieldHeights.ContainsKey(GroundGeom)) |
3414 | TerrainHeightFieldHeights.Remove(GroundGeom); | 3411 | TerrainHeightFieldHeights.Remove(GroundGeom); |
3415 | d.GeomDestroy(GroundGeom); | 3412 | SafeNativeMethods.GeomDestroy(GroundGeom); |
3416 | } | 3413 | } |
3417 | } | 3414 | } |
3418 | 3415 | ||
3419 | try | 3416 | try |
3420 | { | 3417 | { |
3421 | d.WorldDestroy(world); | 3418 | SafeNativeMethods.WorldDestroy(world); |
3422 | world = IntPtr.Zero; | 3419 | world = IntPtr.Zero; |
3423 | } | 3420 | } |
3424 | catch (AccessViolationException e) | 3421 | catch (AccessViolationException e) |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEApi.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEApi.cs index 35adf11..42ad391 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEApi.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEApi.cs | |||
@@ -44,7 +44,7 @@ using System; | |||
44 | using System.Runtime.InteropServices; | 44 | using System.Runtime.InteropServices; |
45 | using System.Security; | 45 | using System.Security; |
46 | using OMV = OpenMetaverse; | 46 | using OMV = OpenMetaverse; |
47 | namespace OdeAPI | 47 | namespace OpenSim.Region.PhysicsModule.ubOde |
48 | { | 48 | { |
49 | //#if dDOUBLE | 49 | //#if dDOUBLE |
50 | // don't see much use in double precision with time steps of 20ms and 10 iterations used on opensim | 50 | // don't see much use in double precision with time steps of 20ms and 10 iterations used on opensim |
@@ -54,18 +54,19 @@ namespace OdeAPI | |||
54 | using dReal = System.Single; | 54 | using dReal = System.Single; |
55 | //#endif | 55 | //#endif |
56 | 56 | ||
57 | public static class d | 57 | [SuppressUnmanagedCodeSecurityAttribute] |
58 | internal static class SafeNativeMethods | ||
58 | { | 59 | { |
59 | public static dReal Infinity = dReal.MaxValue; | 60 | internal static dReal Infinity = dReal.MaxValue; |
60 | public static int NTotalBodies = 0; | 61 | internal static int NTotalBodies = 0; |
61 | public static int NTotalGeoms = 0; | 62 | internal static int NTotalGeoms = 0; |
62 | 63 | ||
63 | public const uint CONTACTS_UNIMPORTANT = 0x80000000; | 64 | internal const uint CONTACTS_UNIMPORTANT = 0x80000000; |
64 | 65 | ||
65 | #region Flags and Enumerations | 66 | #region Flags and Enumerations |
66 | 67 | ||
67 | [Flags] | 68 | [Flags] |
68 | public enum AllocateODEDataFlags : uint | 69 | internal enum AllocateODEDataFlags : uint |
69 | { | 70 | { |
70 | BasicData = 0, | 71 | BasicData = 0, |
71 | CollisionData = 0x00000001, | 72 | CollisionData = 0x00000001, |
@@ -73,13 +74,13 @@ namespace OdeAPI | |||
73 | } | 74 | } |
74 | 75 | ||
75 | [Flags] | 76 | [Flags] |
76 | public enum IniteODEFlags : uint | 77 | internal enum IniteODEFlags : uint |
77 | { | 78 | { |
78 | dInitFlagManualThreadCleanup = 0x00000001 | 79 | dInitFlagManualThreadCleanup = 0x00000001 |
79 | } | 80 | } |
80 | 81 | ||
81 | [Flags] | 82 | [Flags] |
82 | public enum ContactFlags : int | 83 | internal enum ContactFlags : int |
83 | { | 84 | { |
84 | Mu2 = 0x001, | 85 | Mu2 = 0x001, |
85 | FDir1 = 0x002, | 86 | FDir1 = 0x002, |
@@ -97,7 +98,7 @@ namespace OdeAPI | |||
97 | Approx1 = 0x3000 | 98 | Approx1 = 0x3000 |
98 | } | 99 | } |
99 | 100 | ||
100 | public enum GeomClassID : int | 101 | internal enum GeomClassID : int |
101 | { | 102 | { |
102 | SphereClass, | 103 | SphereClass, |
103 | BoxClass, | 104 | BoxClass, |
@@ -121,7 +122,7 @@ namespace OdeAPI | |||
121 | MaxUserClasses = 5 | 122 | MaxUserClasses = 5 |
122 | } | 123 | } |
123 | 124 | ||
124 | public enum JointType : int | 125 | internal enum JointType : int |
125 | { | 126 | { |
126 | None, | 127 | None, |
127 | Ball, | 128 | Ball, |
@@ -137,7 +138,7 @@ namespace OdeAPI | |||
137 | Plane2D | 138 | Plane2D |
138 | } | 139 | } |
139 | 140 | ||
140 | public enum JointParam : int | 141 | internal enum JointParam : int |
141 | { | 142 | { |
142 | LoStop, | 143 | LoStop, |
143 | HiStop, | 144 | HiStop, |
@@ -174,7 +175,7 @@ namespace OdeAPI | |||
174 | SuspensionCFM3 | 175 | SuspensionCFM3 |
175 | } | 176 | } |
176 | 177 | ||
177 | public enum dSweepAndPruneAxis : int | 178 | internal enum dSweepAndPruneAxis : int |
178 | { | 179 | { |
179 | XYZ = ((0)|(1<<2)|(2<<4)), | 180 | XYZ = ((0)|(1<<2)|(2<<4)), |
180 | XZY = ((0)|(2<<2)|(1<<4)), | 181 | XZY = ((0)|(2<<2)|(1<<4)), |
@@ -189,126 +190,126 @@ namespace OdeAPI | |||
189 | #region Callbacks | 190 | #region Callbacks |
190 | 191 | ||
191 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 192 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
192 | public delegate int AABBTestFn(IntPtr o1, IntPtr o2, ref AABB aabb); | 193 | internal delegate int AABBTestFn(IntPtr o1, IntPtr o2, ref AABB aabb); |
193 | 194 | ||
194 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 195 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
195 | public delegate int ColliderFn(IntPtr o1, IntPtr o2, int flags, out ContactGeom contact, int skip); | 196 | internal delegate int ColliderFn(IntPtr o1, IntPtr o2, int flags, out ContactGeom contact, int skip); |
196 | 197 | ||
197 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 198 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
198 | public delegate void GetAABBFn(IntPtr geom, out AABB aabb); | 199 | internal delegate void GetAABBFn(IntPtr geom, out AABB aabb); |
199 | 200 | ||
200 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 201 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
201 | public delegate ColliderFn GetColliderFnFn(int num); | 202 | internal delegate ColliderFn GetColliderFnFn(int num); |
202 | 203 | ||
203 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 204 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
204 | public delegate void GeomDtorFn(IntPtr o); | 205 | internal delegate void GeomDtorFn(IntPtr o); |
205 | 206 | ||
206 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 207 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
207 | public delegate dReal HeightfieldGetHeight(IntPtr p_user_data, int x, int z); | 208 | internal delegate dReal HeightfieldGetHeight(IntPtr p_user_data, int x, int z); |
208 | 209 | ||
209 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 210 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
210 | public delegate dReal OSTerrainGetHeight(IntPtr p_user_data, int x, int z); | 211 | internal delegate dReal OSTerrainGetHeight(IntPtr p_user_data, int x, int z); |
211 | 212 | ||
212 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 213 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
213 | public delegate void NearCallback(IntPtr data, IntPtr geom1, IntPtr geom2); | 214 | internal delegate void NearCallback(IntPtr data, IntPtr geom1, IntPtr geom2); |
214 | 215 | ||
215 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 216 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
216 | public delegate int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex); | 217 | internal delegate int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex); |
217 | 218 | ||
218 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 219 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
219 | public delegate int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount); | 220 | internal delegate int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount); |
220 | 221 | ||
221 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | 222 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] |
222 | public delegate int TriRayCallback(IntPtr trimesh, IntPtr ray, int triangleIndex, dReal u, dReal v); | 223 | internal delegate int TriRayCallback(IntPtr trimesh, IntPtr ray, int triangleIndex, dReal u, dReal v); |
223 | 224 | ||
224 | #endregion | 225 | #endregion |
225 | 226 | ||
226 | #region Structs | 227 | #region Structs |
227 | 228 | ||
228 | [StructLayout(LayoutKind.Sequential)] | 229 | [StructLayout(LayoutKind.Sequential)] |
229 | public struct AABB | 230 | internal struct AABB |
230 | { | 231 | { |
231 | public dReal MinX, MaxX; | 232 | internal dReal MinX, MaxX; |
232 | public dReal MinY, MaxY; | 233 | internal dReal MinY, MaxY; |
233 | public dReal MinZ, MaxZ; | 234 | internal dReal MinZ, MaxZ; |
234 | } | 235 | } |
235 | 236 | ||
236 | 237 | ||
237 | [StructLayout(LayoutKind.Sequential)] | 238 | [StructLayout(LayoutKind.Sequential)] |
238 | public struct Contact | 239 | internal struct Contact |
239 | { | 240 | { |
240 | public SurfaceParameters surface; | 241 | internal SurfaceParameters surface; |
241 | public ContactGeom geom; | 242 | internal ContactGeom geom; |
242 | public Vector3 fdir1; | 243 | internal Vector3 fdir1; |
243 | public static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(Contact)); | 244 | internal static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(Contact)); |
244 | } | 245 | } |
245 | 246 | ||
246 | 247 | ||
247 | [StructLayout(LayoutKind.Sequential)] | 248 | [StructLayout(LayoutKind.Sequential)] |
248 | public struct ContactGeom | 249 | internal struct ContactGeom |
249 | { | 250 | { |
250 | 251 | ||
251 | public Vector3 pos; | 252 | internal Vector3 pos; |
252 | public Vector3 normal; | 253 | internal Vector3 normal; |
253 | public dReal depth; | 254 | internal dReal depth; |
254 | public IntPtr g1; | 255 | internal IntPtr g1; |
255 | public IntPtr g2; | 256 | internal IntPtr g2; |
256 | public int side1; | 257 | internal int side1; |
257 | public int side2; | 258 | internal int side2; |
258 | public static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(ContactGeom)); | 259 | internal static readonly int unmanagedSizeOf = Marshal.SizeOf(typeof(ContactGeom)); |
259 | } | 260 | } |
260 | 261 | ||
261 | [StructLayout(LayoutKind.Sequential)] | 262 | [StructLayout(LayoutKind.Sequential)] |
262 | public struct GeomClass | 263 | internal struct GeomClass |
263 | { | 264 | { |
264 | public int bytes; | 265 | internal int bytes; |
265 | public GetColliderFnFn collider; | 266 | internal GetColliderFnFn collider; |
266 | public GetAABBFn aabb; | 267 | internal GetAABBFn aabb; |
267 | public AABBTestFn aabb_test; | 268 | internal AABBTestFn aabb_test; |
268 | public GeomDtorFn dtor; | 269 | internal GeomDtorFn dtor; |
269 | } | 270 | } |
270 | 271 | ||
271 | 272 | ||
272 | [StructLayout(LayoutKind.Sequential)] | 273 | [StructLayout(LayoutKind.Sequential)] |
273 | public struct JointFeedback | 274 | internal struct JointFeedback |
274 | { | 275 | { |
275 | public Vector3 f1; | 276 | internal Vector3 f1; |
276 | public Vector3 t1; | 277 | internal Vector3 t1; |
277 | public Vector3 f2; | 278 | internal Vector3 f2; |
278 | public Vector3 t2; | 279 | internal Vector3 t2; |
279 | } | 280 | } |
280 | 281 | ||
281 | 282 | ||
282 | [StructLayout(LayoutKind.Sequential)] | 283 | [StructLayout(LayoutKind.Sequential)] |
283 | public struct Mass | 284 | internal struct Mass |
284 | { | 285 | { |
285 | public dReal mass; | 286 | internal dReal mass; |
286 | public Vector4 c; | 287 | internal Vector4 c; |
287 | public Matrix3 I; | 288 | internal Matrix3 I; |
288 | } | 289 | } |
289 | 290 | ||
290 | 291 | ||
291 | [StructLayout(LayoutKind.Sequential)] | 292 | [StructLayout(LayoutKind.Sequential)] |
292 | public struct Matrix3 | 293 | internal struct Matrix3 |
293 | { | 294 | { |
294 | public Matrix3(dReal m00, dReal m10, dReal m20, dReal m01, dReal m11, dReal m21, dReal m02, dReal m12, dReal m22) | 295 | internal Matrix3(dReal m00, dReal m10, dReal m20, dReal m01, dReal m11, dReal m21, dReal m02, dReal m12, dReal m22) |
295 | { | 296 | { |
296 | M00 = m00; M10 = m10; M20 = m20; _m30 = 0.0f; | 297 | M00 = m00; M10 = m10; M20 = m20; _m30 = 0.0f; |
297 | M01 = m01; M11 = m11; M21 = m21; _m31 = 0.0f; | 298 | M01 = m01; M11 = m11; M21 = m21; _m31 = 0.0f; |
298 | M02 = m02; M12 = m12; M22 = m22; _m32 = 0.0f; | 299 | M02 = m02; M12 = m12; M22 = m22; _m32 = 0.0f; |
299 | } | 300 | } |
300 | public dReal M00, M10, M20; | 301 | internal dReal M00, M10, M20; |
301 | private dReal _m30; | 302 | private dReal _m30; |
302 | public dReal M01, M11, M21; | 303 | internal dReal M01, M11, M21; |
303 | private dReal _m31; | 304 | private dReal _m31; |
304 | public dReal M02, M12, M22; | 305 | internal dReal M02, M12, M22; |
305 | private dReal _m32; | 306 | private dReal _m32; |
306 | } | 307 | } |
307 | 308 | ||
308 | [StructLayout(LayoutKind.Sequential)] | 309 | [StructLayout(LayoutKind.Sequential)] |
309 | public struct Matrix4 | 310 | internal struct Matrix4 |
310 | { | 311 | { |
311 | public Matrix4(dReal m00, dReal m10, dReal m20, dReal m30, | 312 | internal Matrix4(dReal m00, dReal m10, dReal m20, dReal m30, |
312 | dReal m01, dReal m11, dReal m21, dReal m31, | 313 | dReal m01, dReal m11, dReal m21, dReal m31, |
313 | dReal m02, dReal m12, dReal m22, dReal m32, | 314 | dReal m02, dReal m12, dReal m22, dReal m32, |
314 | dReal m03, dReal m13, dReal m23, dReal m33) | 315 | dReal m03, dReal m13, dReal m23, dReal m33) |
@@ -318,312 +319,312 @@ namespace OdeAPI | |||
318 | M02 = m02; M12 = m12; M22 = m22; M32 = m32; | 319 | M02 = m02; M12 = m12; M22 = m22; M32 = m32; |
319 | M03 = m03; M13 = m13; M23 = m23; M33 = m33; | 320 | M03 = m03; M13 = m13; M23 = m23; M33 = m33; |
320 | } | 321 | } |
321 | public dReal M00, M10, M20, M30; | 322 | internal dReal M00, M10, M20, M30; |
322 | public dReal M01, M11, M21, M31; | 323 | internal dReal M01, M11, M21, M31; |
323 | public dReal M02, M12, M22, M32; | 324 | internal dReal M02, M12, M22, M32; |
324 | public dReal M03, M13, M23, M33; | 325 | internal dReal M03, M13, M23, M33; |
325 | } | 326 | } |
326 | 327 | ||
327 | [StructLayout(LayoutKind.Sequential)] | 328 | [StructLayout(LayoutKind.Sequential)] |
328 | public struct Quaternion | 329 | internal struct Quaternion |
329 | { | 330 | { |
330 | public dReal W, X, Y, Z; | 331 | internal dReal W, X, Y, Z; |
331 | } | 332 | } |
332 | 333 | ||
333 | 334 | ||
334 | [StructLayout(LayoutKind.Sequential)] | 335 | [StructLayout(LayoutKind.Sequential)] |
335 | public struct SurfaceParameters | 336 | internal struct SurfaceParameters |
336 | { | 337 | { |
337 | public ContactFlags mode; | 338 | internal ContactFlags mode; |
338 | public dReal mu; | 339 | internal dReal mu; |
339 | public dReal mu2; | 340 | internal dReal mu2; |
340 | public dReal bounce; | 341 | internal dReal bounce; |
341 | public dReal bounce_vel; | 342 | internal dReal bounce_vel; |
342 | public dReal soft_erp; | 343 | internal dReal soft_erp; |
343 | public dReal soft_cfm; | 344 | internal dReal soft_cfm; |
344 | public dReal motion1; | 345 | internal dReal motion1; |
345 | public dReal motion2; | 346 | internal dReal motion2; |
346 | public dReal motionN; | 347 | internal dReal motionN; |
347 | public dReal slip1; | 348 | internal dReal slip1; |
348 | public dReal slip2; | 349 | internal dReal slip2; |
349 | } | 350 | } |
350 | 351 | ||
351 | 352 | ||
352 | [StructLayout(LayoutKind.Sequential)] | 353 | [StructLayout(LayoutKind.Sequential)] |
353 | public struct Vector3 | 354 | internal struct Vector3 |
354 | { | 355 | { |
355 | public Vector3(dReal x, dReal y, dReal z) | 356 | internal Vector3(dReal x, dReal y, dReal z) |
356 | { | 357 | { |
357 | X = x; Y = y; Z = z; _w = 0.0f; | 358 | X = x; Y = y; Z = z; _w = 0.0f; |
358 | } | 359 | } |
359 | public dReal X, Y, Z; | 360 | internal dReal X, Y, Z; |
360 | private dReal _w; | 361 | private dReal _w; |
361 | } | 362 | } |
362 | 363 | ||
363 | 364 | ||
364 | [StructLayout(LayoutKind.Sequential)] | 365 | [StructLayout(LayoutKind.Sequential)] |
365 | public struct Vector4 | 366 | internal struct Vector4 |
366 | { | 367 | { |
367 | public Vector4(dReal x, dReal y, dReal z, dReal w) | 368 | internal Vector4(dReal x, dReal y, dReal z, dReal w) |
368 | { | 369 | { |
369 | X = x; Y = y; Z = z; W = w; | 370 | X = x; Y = y; Z = z; W = w; |
370 | } | 371 | } |
371 | public dReal X, Y, Z, W; | 372 | internal dReal X, Y, Z, W; |
372 | } | 373 | } |
373 | 374 | ||
374 | #endregion | 375 | #endregion |
375 | 376 | ||
376 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAllocateODEDataForThread"), SuppressUnmanagedCodeSecurity] | 377 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAllocateODEDataForThread"), SuppressUnmanagedCodeSecurity] |
377 | public static extern int AllocateODEDataForThread(uint ODEInitFlags); | 378 | internal static extern int AllocateODEDataForThread(uint ODEInitFlags); |
378 | 379 | ||
379 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnected"), SuppressUnmanagedCodeSecurity] | 380 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnected"), SuppressUnmanagedCodeSecurity] |
380 | public static extern bool AreConnected(IntPtr b1, IntPtr b2); | 381 | internal static extern bool AreConnected(IntPtr b1, IntPtr b2); |
381 | 382 | ||
382 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnectedExcluding"), SuppressUnmanagedCodeSecurity] | 383 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dAreConnectedExcluding"), SuppressUnmanagedCodeSecurity] |
383 | public static extern bool AreConnectedExcluding(IntPtr b1, IntPtr b2, JointType joint_type); | 384 | internal static extern bool AreConnectedExcluding(IntPtr b1, IntPtr b2, JointType joint_type); |
384 | 385 | ||
385 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForce"), SuppressUnmanagedCodeSecurity] | 386 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForce"), SuppressUnmanagedCodeSecurity] |
386 | public static extern void BodyAddForce(IntPtr body, dReal fx, dReal fy, dReal fz); | 387 | internal static extern void BodyAddForce(IntPtr body, dReal fx, dReal fy, dReal fz); |
387 | 388 | ||
388 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtPos"), SuppressUnmanagedCodeSecurity] | 389 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtPos"), SuppressUnmanagedCodeSecurity] |
389 | public static extern void BodyAddForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 390 | internal static extern void BodyAddForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
390 | 391 | ||
391 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtRelPos"), SuppressUnmanagedCodeSecurity] | 392 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddForceAtRelPos"), SuppressUnmanagedCodeSecurity] |
392 | public static extern void BodyAddForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 393 | internal static extern void BodyAddForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
393 | 394 | ||
394 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForce"), SuppressUnmanagedCodeSecurity] | 395 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForce"), SuppressUnmanagedCodeSecurity] |
395 | public static extern void BodyAddRelForce(IntPtr body, dReal fx, dReal fy, dReal fz); | 396 | internal static extern void BodyAddRelForce(IntPtr body, dReal fx, dReal fy, dReal fz); |
396 | 397 | ||
397 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtPos"), SuppressUnmanagedCodeSecurity] | 398 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtPos"), SuppressUnmanagedCodeSecurity] |
398 | public static extern void BodyAddRelForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 399 | internal static extern void BodyAddRelForceAtPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
399 | 400 | ||
400 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtRelPos"), SuppressUnmanagedCodeSecurity] | 401 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelForceAtRelPos"), SuppressUnmanagedCodeSecurity] |
401 | public static extern void BodyAddRelForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); | 402 | internal static extern void BodyAddRelForceAtRelPos(IntPtr body, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz); |
402 | 403 | ||
403 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelTorque"), SuppressUnmanagedCodeSecurity] | 404 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddRelTorque"), SuppressUnmanagedCodeSecurity] |
404 | public static extern void BodyAddRelTorque(IntPtr body, dReal fx, dReal fy, dReal fz); | 405 | internal static extern void BodyAddRelTorque(IntPtr body, dReal fx, dReal fy, dReal fz); |
405 | 406 | ||
406 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddTorque"), SuppressUnmanagedCodeSecurity] | 407 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyAddTorque"), SuppressUnmanagedCodeSecurity] |
407 | public static extern void BodyAddTorque(IntPtr body, dReal fx, dReal fy, dReal fz); | 408 | internal static extern void BodyAddTorque(IntPtr body, dReal fx, dReal fy, dReal fz); |
408 | 409 | ||
409 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] | 410 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] |
410 | public static extern void BodyCopyPosition(IntPtr body, out Vector3 pos); | 411 | internal static extern void BodyCopyPosition(IntPtr body, out Vector3 pos); |
411 | 412 | ||
412 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] | 413 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyPosition"), SuppressUnmanagedCodeSecurity] |
413 | public static extern void BodyCopyPosition(IntPtr body, out dReal X); | 414 | internal static extern void BodyCopyPosition(IntPtr body, out dReal X); |
414 | 415 | ||
415 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] | 416 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] |
416 | public static extern void BodyCopyQuaternion(IntPtr body, out Quaternion quat); | 417 | internal static extern void BodyCopyQuaternion(IntPtr body, out Quaternion quat); |
417 | 418 | ||
418 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] | 419 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyQuaternion"), SuppressUnmanagedCodeSecurity] |
419 | public static extern void BodyCopyQuaternion(IntPtr body, out dReal X); | 420 | internal static extern void BodyCopyQuaternion(IntPtr body, out dReal X); |
420 | 421 | ||
421 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] | 422 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] |
422 | public static extern void BodyCopyRotation(IntPtr body, out Matrix3 R); | 423 | internal static extern void BodyCopyRotation(IntPtr body, out Matrix3 R); |
423 | 424 | ||
424 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] | 425 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCopyRotation"), SuppressUnmanagedCodeSecurity] |
425 | public static extern void BodyCopyRotation(IntPtr body, out dReal M00); | 426 | internal static extern void BodyCopyRotation(IntPtr body, out dReal M00); |
426 | 427 | ||
427 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCreate"), SuppressUnmanagedCodeSecurity] | 428 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyCreate"), SuppressUnmanagedCodeSecurity] |
428 | public static extern IntPtr BodyiCreate(IntPtr world); | 429 | internal static extern IntPtr BodyiCreate(IntPtr world); |
429 | public static IntPtr BodyCreate(IntPtr world) | 430 | internal static IntPtr BodyCreate(IntPtr world) |
430 | { | 431 | { |
431 | NTotalBodies++; | 432 | NTotalBodies++; |
432 | return BodyiCreate(world); | 433 | return BodyiCreate(world); |
433 | } | 434 | } |
434 | 435 | ||
435 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDestroy"), SuppressUnmanagedCodeSecurity] | 436 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDestroy"), SuppressUnmanagedCodeSecurity] |
436 | public static extern void BodyiDestroy(IntPtr body); | 437 | internal static extern void BodyiDestroy(IntPtr body); |
437 | public static void BodyDestroy(IntPtr body) | 438 | internal static void BodyDestroy(IntPtr body) |
438 | { | 439 | { |
439 | NTotalBodies--; | 440 | NTotalBodies--; |
440 | BodyiDestroy(body); | 441 | BodyiDestroy(body); |
441 | } | 442 | } |
442 | 443 | ||
443 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDisable"), SuppressUnmanagedCodeSecurity] | 444 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyDisable"), SuppressUnmanagedCodeSecurity] |
444 | public static extern void BodyDisable(IntPtr body); | 445 | internal static extern void BodyDisable(IntPtr body); |
445 | 446 | ||
446 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyEnable"), SuppressUnmanagedCodeSecurity] | 447 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyEnable"), SuppressUnmanagedCodeSecurity] |
447 | public static extern void BodyEnable(IntPtr body); | 448 | internal static extern void BodyEnable(IntPtr body); |
448 | 449 | ||
449 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 450 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
450 | public static extern dReal BodyGetAutoDisableAngularThreshold(IntPtr body); | 451 | internal static extern dReal BodyGetAutoDisableAngularThreshold(IntPtr body); |
451 | 452 | ||
452 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 453 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
453 | public static extern bool BodyGetAutoDisableFlag(IntPtr body); | 454 | internal static extern bool BodyGetAutoDisableFlag(IntPtr body); |
454 | 455 | ||
455 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] | 456 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] |
456 | public static extern void BodyGetAutoDisableDefaults(IntPtr body); | 457 | internal static extern void BodyGetAutoDisableDefaults(IntPtr body); |
457 | 458 | ||
458 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 459 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
459 | public static extern dReal BodyGetAutoDisableLinearThreshold(IntPtr body); | 460 | internal static extern dReal BodyGetAutoDisableLinearThreshold(IntPtr body); |
460 | 461 | ||
461 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 462 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
462 | public static extern int BodyGetAutoDisableSteps(IntPtr body); | 463 | internal static extern int BodyGetAutoDisableSteps(IntPtr body); |
463 | 464 | ||
464 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 465 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
465 | public static extern dReal BodyGetAutoDisableTime(IntPtr body); | 466 | internal static extern dReal BodyGetAutoDisableTime(IntPtr body); |
466 | 467 | ||
467 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularVel"), SuppressUnmanagedCodeSecurity] | 468 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularVel"), SuppressUnmanagedCodeSecurity] |
468 | public extern unsafe static Vector3* BodyGetAngularVelUnsafe(IntPtr body); | 469 | internal extern unsafe static Vector3* BodyGetAngularVelUnsafe(IntPtr body); |
469 | public static Vector3 BodyGetAngularVel(IntPtr body) | 470 | internal static Vector3 BodyGetAngularVel(IntPtr body) |
470 | { | 471 | { |
471 | unsafe { return *(BodyGetAngularVelUnsafe(body)); } | 472 | unsafe { return *(BodyGetAngularVelUnsafe(body)); } |
472 | } | 473 | } |
473 | 474 | ||
474 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetData"), SuppressUnmanagedCodeSecurity] | 475 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetData"), SuppressUnmanagedCodeSecurity] |
475 | public static extern IntPtr BodyGetData(IntPtr body); | 476 | internal static extern IntPtr BodyGetData(IntPtr body); |
476 | 477 | ||
477 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] | 478 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] |
478 | public static extern int BodyGetFiniteRotationMode(IntPtr body); | 479 | internal static extern int BodyGetFiniteRotationMode(IntPtr body); |
479 | 480 | ||
480 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] | 481 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] |
481 | public static extern void BodyGetFiniteRotationAxis(IntPtr body, out Vector3 result); | 482 | internal static extern void BodyGetFiniteRotationAxis(IntPtr body, out Vector3 result); |
482 | 483 | ||
483 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetForce"), SuppressUnmanagedCodeSecurity] | 484 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetForce"), SuppressUnmanagedCodeSecurity] |
484 | public extern unsafe static Vector3* BodyGetForceUnsafe(IntPtr body); | 485 | internal extern unsafe static Vector3* BodyGetForceUnsafe(IntPtr body); |
485 | public static Vector3 BodyGetForce(IntPtr body) | 486 | internal static Vector3 BodyGetForce(IntPtr body) |
486 | { | 487 | { |
487 | unsafe { return *(BodyGetForceUnsafe(body)); } | 488 | unsafe { return *(BodyGetForceUnsafe(body)); } |
488 | } | 489 | } |
489 | 490 | ||
490 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGravityMode"), SuppressUnmanagedCodeSecurity] | 491 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGravityMode"), SuppressUnmanagedCodeSecurity] |
491 | public static extern bool BodyGetGravityMode(IntPtr body); | 492 | internal static extern bool BodyGetGravityMode(IntPtr body); |
492 | 493 | ||
493 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGyroscopicMode"), SuppressUnmanagedCodeSecurity] | 494 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetGyroscopicMode"), SuppressUnmanagedCodeSecurity] |
494 | public static extern int BodyGetGyroscopicMode(IntPtr body); | 495 | internal static extern int BodyGetGyroscopicMode(IntPtr body); |
495 | 496 | ||
496 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetJoint"), SuppressUnmanagedCodeSecurity] | 497 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetJoint"), SuppressUnmanagedCodeSecurity] |
497 | public static extern IntPtr BodyGetJoint(IntPtr body, int index); | 498 | internal static extern IntPtr BodyGetJoint(IntPtr body, int index); |
498 | 499 | ||
499 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearVel"), SuppressUnmanagedCodeSecurity] | 500 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearVel"), SuppressUnmanagedCodeSecurity] |
500 | public extern unsafe static Vector3* BodyGetLinearVelUnsafe(IntPtr body); | 501 | internal extern unsafe static Vector3* BodyGetLinearVelUnsafe(IntPtr body); |
501 | public static Vector3 BodyGetLinearVel(IntPtr body) | 502 | internal static Vector3 BodyGetLinearVel(IntPtr body) |
502 | { | 503 | { |
503 | unsafe { return *(BodyGetLinearVelUnsafe(body)); } | 504 | unsafe { return *(BodyGetLinearVelUnsafe(body)); } |
504 | } | 505 | } |
505 | 506 | ||
506 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetMass"), SuppressUnmanagedCodeSecurity] | 507 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetMass"), SuppressUnmanagedCodeSecurity] |
507 | public static extern void BodyGetMass(IntPtr body, out Mass mass); | 508 | internal static extern void BodyGetMass(IntPtr body, out Mass mass); |
508 | 509 | ||
509 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNumJoints"), SuppressUnmanagedCodeSecurity] | 510 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNumJoints"), SuppressUnmanagedCodeSecurity] |
510 | public static extern int BodyGetNumJoints(IntPtr body); | 511 | internal static extern int BodyGetNumJoints(IntPtr body); |
511 | 512 | ||
512 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPointVel"), SuppressUnmanagedCodeSecurity] | 513 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPointVel"), SuppressUnmanagedCodeSecurity] |
513 | public static extern void BodyGetPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 514 | internal static extern void BodyGetPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
514 | 515 | ||
515 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosition"), SuppressUnmanagedCodeSecurity] | 516 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosition"), SuppressUnmanagedCodeSecurity] |
516 | public extern unsafe static Vector3* BodyGetPositionUnsafe(IntPtr body); | 517 | internal extern unsafe static Vector3* BodyGetPositionUnsafe(IntPtr body); |
517 | public static Vector3 BodyGetPosition(IntPtr body) | 518 | internal static Vector3 BodyGetPosition(IntPtr body) |
518 | { | 519 | { |
519 | unsafe { return *(BodyGetPositionUnsafe(body)); } | 520 | unsafe { return *(BodyGetPositionUnsafe(body)); } |
520 | } | 521 | } |
521 | 522 | ||
522 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosRelPoint"), SuppressUnmanagedCodeSecurity] | 523 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetPosRelPoint"), SuppressUnmanagedCodeSecurity] |
523 | public static extern void BodyGetPosRelPoint(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 524 | internal static extern void BodyGetPosRelPoint(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
524 | 525 | ||
525 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetQuaternion"), SuppressUnmanagedCodeSecurity] | 526 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetQuaternion"), SuppressUnmanagedCodeSecurity] |
526 | public extern unsafe static Quaternion* BodyGetQuaternionUnsafe(IntPtr body); | 527 | internal extern unsafe static Quaternion* BodyGetQuaternionUnsafe(IntPtr body); |
527 | public static Quaternion BodyGetQuaternion(IntPtr body) | 528 | internal static Quaternion BodyGetQuaternion(IntPtr body) |
528 | { | 529 | { |
529 | unsafe { return *(BodyGetQuaternionUnsafe(body)); } | 530 | unsafe { return *(BodyGetQuaternionUnsafe(body)); } |
530 | } | 531 | } |
531 | 532 | ||
532 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointPos"), SuppressUnmanagedCodeSecurity] | 533 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointPos"), SuppressUnmanagedCodeSecurity] |
533 | public static extern void BodyGetRelPointPos(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 534 | internal static extern void BodyGetRelPointPos(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
534 | 535 | ||
535 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointVel"), SuppressUnmanagedCodeSecurity] | 536 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRelPointVel"), SuppressUnmanagedCodeSecurity] |
536 | public static extern void BodyGetRelPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 537 | internal static extern void BodyGetRelPointVel(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
537 | 538 | ||
538 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRotation"), SuppressUnmanagedCodeSecurity] | 539 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetRotation"), SuppressUnmanagedCodeSecurity] |
539 | public extern unsafe static Matrix3* BodyGetRotationUnsafe(IntPtr body); | 540 | internal extern unsafe static Matrix3* BodyGetRotationUnsafe(IntPtr body); |
540 | public static Matrix3 BodyGetRotation(IntPtr body) | 541 | internal static Matrix3 BodyGetRotation(IntPtr body) |
541 | { | 542 | { |
542 | unsafe { return *(BodyGetRotationUnsafe(body)); } | 543 | unsafe { return *(BodyGetRotationUnsafe(body)); } |
543 | } | 544 | } |
544 | 545 | ||
545 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetTorque"), SuppressUnmanagedCodeSecurity] | 546 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetTorque"), SuppressUnmanagedCodeSecurity] |
546 | public extern unsafe static Vector3* BodyGetTorqueUnsafe(IntPtr body); | 547 | internal extern unsafe static Vector3* BodyGetTorqueUnsafe(IntPtr body); |
547 | public static Vector3 BodyGetTorque(IntPtr body) | 548 | internal static Vector3 BodyGetTorque(IntPtr body) |
548 | { | 549 | { |
549 | unsafe { return *(BodyGetTorqueUnsafe(body)); } | 550 | unsafe { return *(BodyGetTorqueUnsafe(body)); } |
550 | } | 551 | } |
551 | 552 | ||
552 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetWorld"), SuppressUnmanagedCodeSecurity] | 553 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetWorld"), SuppressUnmanagedCodeSecurity] |
553 | public static extern IntPtr BodyGetWorld(IntPtr body); | 554 | internal static extern IntPtr BodyGetWorld(IntPtr body); |
554 | 555 | ||
555 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFirstGeom"), SuppressUnmanagedCodeSecurity] | 556 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetFirstGeom"), SuppressUnmanagedCodeSecurity] |
556 | public static extern IntPtr BodyGetFirstGeom(IntPtr body); | 557 | internal static extern IntPtr BodyGetFirstGeom(IntPtr body); |
557 | 558 | ||
558 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNextGeom"), SuppressUnmanagedCodeSecurity] | 559 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetNextGeom"), SuppressUnmanagedCodeSecurity] |
559 | public static extern IntPtr dBodyGetNextGeom(IntPtr Geom); | 560 | internal static extern IntPtr dBodyGetNextGeom(IntPtr Geom); |
560 | 561 | ||
561 | 562 | ||
562 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyIsEnabled"), SuppressUnmanagedCodeSecurity] | 563 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyIsEnabled"), SuppressUnmanagedCodeSecurity] |
563 | public static extern bool BodyIsEnabled(IntPtr body); | 564 | internal static extern bool BodyIsEnabled(IntPtr body); |
564 | 565 | ||
565 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularVel"), SuppressUnmanagedCodeSecurity] | 566 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularVel"), SuppressUnmanagedCodeSecurity] |
566 | public static extern void BodySetAngularVel(IntPtr body, dReal x, dReal y, dReal z); | 567 | internal static extern void BodySetAngularVel(IntPtr body, dReal x, dReal y, dReal z); |
567 | 568 | ||
568 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 569 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
569 | public static extern void BodySetAutoDisableAngularThreshold(IntPtr body, dReal angular_threshold); | 570 | internal static extern void BodySetAutoDisableAngularThreshold(IntPtr body, dReal angular_threshold); |
570 | 571 | ||
571 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] | 572 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableDefaults"), SuppressUnmanagedCodeSecurity] |
572 | public static extern void BodySetAutoDisableDefaults(IntPtr body); | 573 | internal static extern void BodySetAutoDisableDefaults(IntPtr body); |
573 | 574 | ||
574 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 575 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
575 | public static extern void BodySetAutoDisableFlag(IntPtr body, bool do_auto_disable); | 576 | internal static extern void BodySetAutoDisableFlag(IntPtr body, bool do_auto_disable); |
576 | 577 | ||
577 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 578 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
578 | public static extern void BodySetAutoDisableLinearThreshold(IntPtr body, dReal linear_threshold); | 579 | internal static extern void BodySetAutoDisableLinearThreshold(IntPtr body, dReal linear_threshold); |
579 | 580 | ||
580 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 581 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
581 | public static extern void BodySetAutoDisableSteps(IntPtr body, int steps); | 582 | internal static extern void BodySetAutoDisableSteps(IntPtr body, int steps); |
582 | 583 | ||
583 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 584 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
584 | public static extern void BodySetAutoDisableTime(IntPtr body, dReal time); | 585 | internal static extern void BodySetAutoDisableTime(IntPtr body, dReal time); |
585 | 586 | ||
586 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetData"), SuppressUnmanagedCodeSecurity] | 587 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetData"), SuppressUnmanagedCodeSecurity] |
587 | public static extern void BodySetData(IntPtr body, IntPtr data); | 588 | internal static extern void BodySetData(IntPtr body, IntPtr data); |
588 | 589 | ||
589 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] | 590 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationMode"), SuppressUnmanagedCodeSecurity] |
590 | public static extern void BodySetFiniteRotationMode(IntPtr body, int mode); | 591 | internal static extern void BodySetFiniteRotationMode(IntPtr body, int mode); |
591 | 592 | ||
592 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] | 593 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetFiniteRotationAxis"), SuppressUnmanagedCodeSecurity] |
593 | public static extern void BodySetFiniteRotationAxis(IntPtr body, dReal x, dReal y, dReal z); | 594 | internal static extern void BodySetFiniteRotationAxis(IntPtr body, dReal x, dReal y, dReal z); |
594 | 595 | ||
595 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDamping"), SuppressUnmanagedCodeSecurity] | 596 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDamping"), SuppressUnmanagedCodeSecurity] |
596 | public static extern void BodySetLinearDamping(IntPtr body, dReal scale); | 597 | internal static extern void BodySetLinearDamping(IntPtr body, dReal scale); |
597 | 598 | ||
598 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] | 599 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] |
599 | public static extern void BodySetAngularDamping(IntPtr body, dReal scale); | 600 | internal static extern void BodySetAngularDamping(IntPtr body, dReal scale); |
600 | 601 | ||
601 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDamping"), SuppressUnmanagedCodeSecurity] | 602 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDamping"), SuppressUnmanagedCodeSecurity] |
602 | public static extern dReal BodyGetLinearDamping(IntPtr body); | 603 | internal static extern dReal BodyGetLinearDamping(IntPtr body); |
603 | 604 | ||
604 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDamping"), SuppressUnmanagedCodeSecurity] | 605 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDamping"), SuppressUnmanagedCodeSecurity] |
605 | public static extern dReal BodyGetAngularDamping(IntPtr body); | 606 | internal static extern dReal BodyGetAngularDamping(IntPtr body); |
606 | 607 | ||
607 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] | 608 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDamping"), SuppressUnmanagedCodeSecurity] |
608 | public static extern void BodySetDamping(IntPtr body, dReal linear_scale, dReal angular_scale); | 609 | internal static extern void BodySetDamping(IntPtr body, dReal linear_scale, dReal angular_scale); |
609 | 610 | ||
610 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 611 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
611 | public static extern void BodySetAngularDampingThreshold(IntPtr body, dReal threshold); | 612 | internal static extern void BodySetAngularDampingThreshold(IntPtr body, dReal threshold); |
612 | 613 | ||
613 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 614 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
614 | public static extern void BodySetLinearDampingThreshold(IntPtr body, dReal threshold); | 615 | internal static extern void BodySetLinearDampingThreshold(IntPtr body, dReal threshold); |
615 | 616 | ||
616 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 617 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
617 | public static extern dReal BodyGetLinearDampingThreshold(IntPtr body); | 618 | internal static extern dReal BodyGetLinearDampingThreshold(IntPtr body); |
618 | 619 | ||
619 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 620 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
620 | public static extern dReal BodyGetAngularDampingThreshold(IntPtr body); | 621 | internal static extern dReal BodyGetAngularDampingThreshold(IntPtr body); |
621 | 622 | ||
622 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetForce"), SuppressUnmanagedCodeSecurity] | 623 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetForce"), SuppressUnmanagedCodeSecurity] |
623 | public static extern void BodySetForce(IntPtr body, dReal x, dReal y, dReal z); | 624 | internal static extern void BodySetForce(IntPtr body, dReal x, dReal y, dReal z); |
624 | 625 | ||
625 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGravityMode"), SuppressUnmanagedCodeSecurity] | 626 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGravityMode"), SuppressUnmanagedCodeSecurity] |
626 | public static extern void BodySetGravityMode(IntPtr body, bool mode); | 627 | internal static extern void BodySetGravityMode(IntPtr body, bool mode); |
627 | 628 | ||
628 | /// <summary> | 629 | /// <summary> |
629 | /// Sets the Gyroscopic term status on the body specified. | 630 | /// Sets the Gyroscopic term status on the body specified. |
@@ -631,112 +632,112 @@ namespace OdeAPI | |||
631 | /// <param name="body">Pointer to body</param> | 632 | /// <param name="body">Pointer to body</param> |
632 | /// <param name="enabled">NonZero enabled, Zero disabled</param> | 633 | /// <param name="enabled">NonZero enabled, Zero disabled</param> |
633 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGyroscopicMode"), SuppressUnmanagedCodeSecurity] | 634 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetGyroscopicMode"), SuppressUnmanagedCodeSecurity] |
634 | public static extern void dBodySetGyroscopicMode(IntPtr body, int enabled); | 635 | internal static extern void dBodySetGyroscopicMode(IntPtr body, int enabled); |
635 | 636 | ||
636 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearVel"), SuppressUnmanagedCodeSecurity] | 637 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetLinearVel"), SuppressUnmanagedCodeSecurity] |
637 | public static extern void BodySetLinearVel(IntPtr body, dReal x, dReal y, dReal z); | 638 | internal static extern void BodySetLinearVel(IntPtr body, dReal x, dReal y, dReal z); |
638 | 639 | ||
639 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetMass"), SuppressUnmanagedCodeSecurity] | 640 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetMass"), SuppressUnmanagedCodeSecurity] |
640 | public static extern void BodySetMass(IntPtr body, ref Mass mass); | 641 | internal static extern void BodySetMass(IntPtr body, ref Mass mass); |
641 | 642 | ||
642 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetPosition"), SuppressUnmanagedCodeSecurity] | 643 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetPosition"), SuppressUnmanagedCodeSecurity] |
643 | public static extern void BodySetPosition(IntPtr body, dReal x, dReal y, dReal z); | 644 | internal static extern void BodySetPosition(IntPtr body, dReal x, dReal y, dReal z); |
644 | 645 | ||
645 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] | 646 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] |
646 | public static extern void BodySetQuaternion(IntPtr body, ref Quaternion q); | 647 | internal static extern void BodySetQuaternion(IntPtr body, ref Quaternion q); |
647 | 648 | ||
648 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] | 649 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetQuaternion"), SuppressUnmanagedCodeSecurity] |
649 | public static extern void BodySetQuaternion(IntPtr body, ref dReal w); | 650 | internal static extern void BodySetQuaternion(IntPtr body, ref dReal w); |
650 | 651 | ||
651 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] | 652 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] |
652 | public static extern void BodySetRotation(IntPtr body, ref Matrix3 R); | 653 | internal static extern void BodySetRotation(IntPtr body, ref Matrix3 R); |
653 | 654 | ||
654 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] | 655 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetRotation"), SuppressUnmanagedCodeSecurity] |
655 | public static extern void BodySetRotation(IntPtr body, ref dReal M00); | 656 | internal static extern void BodySetRotation(IntPtr body, ref dReal M00); |
656 | 657 | ||
657 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetTorque"), SuppressUnmanagedCodeSecurity] | 658 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodySetTorque"), SuppressUnmanagedCodeSecurity] |
658 | public static extern void BodySetTorque(IntPtr body, dReal x, dReal y, dReal z); | 659 | internal static extern void BodySetTorque(IntPtr body, dReal x, dReal y, dReal z); |
659 | 660 | ||
660 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorFromWorld"), SuppressUnmanagedCodeSecurity] | 661 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorFromWorld"), SuppressUnmanagedCodeSecurity] |
661 | public static extern void BodyVectorFromWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 662 | internal static extern void BodyVectorFromWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
662 | 663 | ||
663 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorToWorld"), SuppressUnmanagedCodeSecurity] | 664 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBodyVectorToWorld"), SuppressUnmanagedCodeSecurity] |
664 | public static extern void BodyVectorToWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); | 665 | internal static extern void BodyVectorToWorld(IntPtr body, dReal px, dReal py, dReal pz, out Vector3 result); |
665 | 666 | ||
666 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxBox"), SuppressUnmanagedCodeSecurity] | 667 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxBox"), SuppressUnmanagedCodeSecurity] |
667 | public static extern void BoxBox(ref Vector3 p1, ref Matrix3 R1, | 668 | internal static extern void BoxBox(ref Vector3 p1, ref Matrix3 R1, |
668 | ref Vector3 side1, ref Vector3 p2, | 669 | ref Vector3 side1, ref Vector3 p2, |
669 | ref Matrix3 R2, ref Vector3 side2, | 670 | ref Matrix3 R2, ref Vector3 side2, |
670 | ref Vector3 normal, out dReal depth, out int return_code, | 671 | ref Vector3 normal, out dReal depth, out int return_code, |
671 | int maxc, out ContactGeom contact, int skip); | 672 | int maxc, out ContactGeom contact, int skip); |
672 | 673 | ||
673 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxTouchesBox"), SuppressUnmanagedCodeSecurity] | 674 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dBoxTouchesBox"), SuppressUnmanagedCodeSecurity] |
674 | public static extern void BoxTouchesBox(ref Vector3 _p1, ref Matrix3 R1, | 675 | internal static extern void BoxTouchesBox(ref Vector3 _p1, ref Matrix3 R1, |
675 | ref Vector3 side1, ref Vector3 _p2, | 676 | ref Vector3 side1, ref Vector3 _p2, |
676 | ref Matrix3 R2, ref Vector3 side2); | 677 | ref Matrix3 R2, ref Vector3 side2); |
677 | 678 | ||
678 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCleanupODEAllDataForThread"), SuppressUnmanagedCodeSecurity] | 679 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCleanupODEAllDataForThread"), SuppressUnmanagedCodeSecurity] |
679 | public static extern void CleanupODEAllDataForThread(); | 680 | internal static extern void CleanupODEAllDataForThread(); |
680 | 681 | ||
681 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dClosestLineSegmentPoints"), SuppressUnmanagedCodeSecurity] | 682 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dClosestLineSegmentPoints"), SuppressUnmanagedCodeSecurity] |
682 | public static extern void ClosestLineSegmentPoints(ref Vector3 a1, ref Vector3 a2, | 683 | internal static extern void ClosestLineSegmentPoints(ref Vector3 a1, ref Vector3 a2, |
683 | ref Vector3 b1, ref Vector3 b2, | 684 | ref Vector3 b1, ref Vector3 b2, |
684 | ref Vector3 cp1, ref Vector3 cp2); | 685 | ref Vector3 cp1, ref Vector3 cp2); |
685 | 686 | ||
686 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCloseODE"), SuppressUnmanagedCodeSecurity] | 687 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCloseODE"), SuppressUnmanagedCodeSecurity] |
687 | public static extern void CloseODE(); | 688 | internal static extern void CloseODE(); |
688 | 689 | ||
689 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] | 690 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] |
690 | public static extern int Collide(IntPtr o1, IntPtr o2, int flags, [In, Out] ContactGeom[] contact, int skip); | 691 | internal static extern int Collide(IntPtr o1, IntPtr o2, int flags, [In, Out] ContactGeom[] contact, int skip); |
691 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] | 692 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCollide"), SuppressUnmanagedCodeSecurity] |
692 | public static extern int CollidePtr(IntPtr o1, IntPtr o2, int flags, IntPtr contactgeomarray, int skip); | 693 | internal static extern int CollidePtr(IntPtr o1, IntPtr o2, int flags, IntPtr contactgeomarray, int skip); |
693 | 694 | ||
694 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dConnectingJoint"), SuppressUnmanagedCodeSecurity] | 695 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dConnectingJoint"), SuppressUnmanagedCodeSecurity] |
695 | public static extern IntPtr ConnectingJoint(IntPtr j1, IntPtr j2); | 696 | internal static extern IntPtr ConnectingJoint(IntPtr j1, IntPtr j2); |
696 | 697 | ||
697 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateBox"), SuppressUnmanagedCodeSecurity] | 698 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateBox"), SuppressUnmanagedCodeSecurity] |
698 | public static extern IntPtr CreateiBox(IntPtr space, dReal lx, dReal ly, dReal lz); | 699 | internal static extern IntPtr CreateiBox(IntPtr space, dReal lx, dReal ly, dReal lz); |
699 | public static IntPtr CreateBox(IntPtr space, dReal lx, dReal ly, dReal lz) | 700 | internal static IntPtr CreateBox(IntPtr space, dReal lx, dReal ly, dReal lz) |
700 | { | 701 | { |
701 | NTotalGeoms++; | 702 | NTotalGeoms++; |
702 | return CreateiBox(space, lx, ly, lz); | 703 | return CreateiBox(space, lx, ly, lz); |
703 | } | 704 | } |
704 | 705 | ||
705 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCapsule"), SuppressUnmanagedCodeSecurity] | 706 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCapsule"), SuppressUnmanagedCodeSecurity] |
706 | public static extern IntPtr CreateiCapsule(IntPtr space, dReal radius, dReal length); | 707 | internal static extern IntPtr CreateiCapsule(IntPtr space, dReal radius, dReal length); |
707 | public static IntPtr CreateCapsule(IntPtr space, dReal radius, dReal length) | 708 | internal static IntPtr CreateCapsule(IntPtr space, dReal radius, dReal length) |
708 | { | 709 | { |
709 | NTotalGeoms++; | 710 | NTotalGeoms++; |
710 | return CreateiCapsule(space, radius, length); | 711 | return CreateiCapsule(space, radius, length); |
711 | } | 712 | } |
712 | 713 | ||
713 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateConvex"), SuppressUnmanagedCodeSecurity] | 714 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateConvex"), SuppressUnmanagedCodeSecurity] |
714 | public static extern IntPtr CreateiConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); | 715 | internal static extern IntPtr CreateiConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); |
715 | public static IntPtr CreateConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons) | 716 | internal static IntPtr CreateConvex(IntPtr space, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons) |
716 | { | 717 | { |
717 | NTotalGeoms++; | 718 | NTotalGeoms++; |
718 | return CreateiConvex(space, planes, planeCount, points, pointCount, polygons); | 719 | return CreateiConvex(space, planes, planeCount, points, pointCount, polygons); |
719 | } | 720 | } |
720 | 721 | ||
721 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCylinder"), SuppressUnmanagedCodeSecurity] | 722 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateCylinder"), SuppressUnmanagedCodeSecurity] |
722 | public static extern IntPtr CreateiCylinder(IntPtr space, dReal radius, dReal length); | 723 | internal static extern IntPtr CreateiCylinder(IntPtr space, dReal radius, dReal length); |
723 | public static IntPtr CreateCylinder(IntPtr space, dReal radius, dReal length) | 724 | internal static IntPtr CreateCylinder(IntPtr space, dReal radius, dReal length) |
724 | { | 725 | { |
725 | NTotalGeoms++; | 726 | NTotalGeoms++; |
726 | return CreateiCylinder(space, radius, length); | 727 | return CreateiCylinder(space, radius, length); |
727 | } | 728 | } |
728 | 729 | ||
729 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateHeightfield"), SuppressUnmanagedCodeSecurity] | 730 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateHeightfield"), SuppressUnmanagedCodeSecurity] |
730 | public static extern IntPtr CreateiHeightfield(IntPtr space, IntPtr data, int bPlaceable); | 731 | internal static extern IntPtr CreateiHeightfield(IntPtr space, IntPtr data, int bPlaceable); |
731 | public static IntPtr CreateHeightfield(IntPtr space, IntPtr data, int bPlaceable) | 732 | internal static IntPtr CreateHeightfield(IntPtr space, IntPtr data, int bPlaceable) |
732 | { | 733 | { |
733 | NTotalGeoms++; | 734 | NTotalGeoms++; |
734 | return CreateiHeightfield(space, data, bPlaceable); | 735 | return CreateiHeightfield(space, data, bPlaceable); |
735 | } | 736 | } |
736 | 737 | ||
737 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateOSTerrain"), SuppressUnmanagedCodeSecurity] | 738 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateOSTerrain"), SuppressUnmanagedCodeSecurity] |
738 | public static extern IntPtr CreateiOSTerrain(IntPtr space, IntPtr data, int bPlaceable); | 739 | internal static extern IntPtr CreateiOSTerrain(IntPtr space, IntPtr data, int bPlaceable); |
739 | public static IntPtr CreateOSTerrain(IntPtr space, IntPtr data, int bPlaceable) | 740 | internal static IntPtr CreateOSTerrain(IntPtr space, IntPtr data, int bPlaceable) |
740 | { | 741 | { |
741 | NTotalGeoms++; | 742 | NTotalGeoms++; |
742 | return CreateiOSTerrain(space, data, bPlaceable); | 743 | return CreateiOSTerrain(space, data, bPlaceable); |
@@ -747,127 +748,127 @@ namespace OdeAPI | |||
747 | 748 | ||
748 | 749 | ||
749 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeom"), SuppressUnmanagedCodeSecurity] | 750 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeom"), SuppressUnmanagedCodeSecurity] |
750 | public static extern IntPtr CreateiGeom(int classnum); | 751 | internal static extern IntPtr CreateiGeom(int classnum); |
751 | public static IntPtr CreateGeom(int classnum) | 752 | internal static IntPtr CreateGeom(int classnum) |
752 | { | 753 | { |
753 | NTotalGeoms++; | 754 | NTotalGeoms++; |
754 | return CreateiGeom(classnum); | 755 | return CreateiGeom(classnum); |
755 | } | 756 | } |
756 | 757 | ||
757 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomClass"), SuppressUnmanagedCodeSecurity] | 758 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomClass"), SuppressUnmanagedCodeSecurity] |
758 | public static extern int CreateGeomClass(ref GeomClass classptr); | 759 | internal static extern int CreateGeomClass(ref GeomClass classptr); |
759 | 760 | ||
760 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomTransform"), SuppressUnmanagedCodeSecurity] | 761 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateGeomTransform"), SuppressUnmanagedCodeSecurity] |
761 | public static extern IntPtr CreateGeomTransform(IntPtr space); | 762 | internal static extern IntPtr CreateGeomTransform(IntPtr space); |
762 | 763 | ||
763 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreatePlane"), SuppressUnmanagedCodeSecurity] | 764 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreatePlane"), SuppressUnmanagedCodeSecurity] |
764 | public static extern IntPtr CreateiPlane(IntPtr space, dReal a, dReal b, dReal c, dReal d); | 765 | internal static extern IntPtr CreateiPlane(IntPtr space, dReal a, dReal b, dReal c, dReal d); |
765 | public static IntPtr CreatePlane(IntPtr space, dReal a, dReal b, dReal c, dReal d) | 766 | internal static IntPtr CreatePlane(IntPtr space, dReal a, dReal b, dReal c, dReal d) |
766 | { | 767 | { |
767 | NTotalGeoms++; | 768 | NTotalGeoms++; |
768 | return CreateiPlane(space, a, b, c, d); | 769 | return CreateiPlane(space, a, b, c, d); |
769 | } | 770 | } |
770 | 771 | ||
771 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateRay"), SuppressUnmanagedCodeSecurity] | 772 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateRay"), SuppressUnmanagedCodeSecurity] |
772 | public static extern IntPtr CreateiRay(IntPtr space, dReal length); | 773 | internal static extern IntPtr CreateiRay(IntPtr space, dReal length); |
773 | public static IntPtr CreateRay(IntPtr space, dReal length) | 774 | internal static IntPtr CreateRay(IntPtr space, dReal length) |
774 | { | 775 | { |
775 | NTotalGeoms++; | 776 | NTotalGeoms++; |
776 | return CreateiRay(space, length); | 777 | return CreateiRay(space, length); |
777 | } | 778 | } |
778 | 779 | ||
779 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateSphere"), SuppressUnmanagedCodeSecurity] | 780 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateSphere"), SuppressUnmanagedCodeSecurity] |
780 | public static extern IntPtr CreateiSphere(IntPtr space, dReal radius); | 781 | internal static extern IntPtr CreateiSphere(IntPtr space, dReal radius); |
781 | public static IntPtr CreateSphere(IntPtr space, dReal radius) | 782 | internal static IntPtr CreateSphere(IntPtr space, dReal radius) |
782 | { | 783 | { |
783 | NTotalGeoms++; | 784 | NTotalGeoms++; |
784 | return CreateiSphere(space, radius); | 785 | return CreateiSphere(space, radius); |
785 | } | 786 | } |
786 | 787 | ||
787 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateTriMesh"), SuppressUnmanagedCodeSecurity] | 788 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dCreateTriMesh"), SuppressUnmanagedCodeSecurity] |
788 | public static extern IntPtr CreateiTriMesh(IntPtr space, IntPtr data, | 789 | internal static extern IntPtr CreateiTriMesh(IntPtr space, IntPtr data, |
789 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback); | 790 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback); |
790 | public static IntPtr CreateTriMesh(IntPtr space, IntPtr data, | 791 | internal static IntPtr CreateTriMesh(IntPtr space, IntPtr data, |
791 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback) | 792 | TriCallback callback, TriArrayCallback arrayCallback, TriRayCallback rayCallback) |
792 | { | 793 | { |
793 | NTotalGeoms++; | 794 | NTotalGeoms++; |
794 | return CreateiTriMesh(space, data, callback, arrayCallback, rayCallback); | 795 | return CreateiTriMesh(space, data, callback, arrayCallback, rayCallback); |
795 | } | 796 | } |
796 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDot"), SuppressUnmanagedCodeSecurity] | 797 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDot"), SuppressUnmanagedCodeSecurity] |
797 | public static extern dReal Dot(ref dReal X0, ref dReal X1, int n); | 798 | internal static extern dReal Dot(ref dReal X0, ref dReal X1, int n); |
798 | 799 | ||
799 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDQfromW"), SuppressUnmanagedCodeSecurity] | 800 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dDQfromW"), SuppressUnmanagedCodeSecurity] |
800 | public static extern void DQfromW(dReal[] dq, ref Vector3 w, ref Quaternion q); | 801 | internal static extern void DQfromW(dReal[] dq, ref Vector3 w, ref Quaternion q); |
801 | 802 | ||
802 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorCholesky"), SuppressUnmanagedCodeSecurity] | 803 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorCholesky"), SuppressUnmanagedCodeSecurity] |
803 | public static extern int FactorCholesky(ref dReal A00, int n); | 804 | internal static extern int FactorCholesky(ref dReal A00, int n); |
804 | 805 | ||
805 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorLDLT"), SuppressUnmanagedCodeSecurity] | 806 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dFactorLDLT"), SuppressUnmanagedCodeSecurity] |
806 | public static extern void FactorLDLT(ref dReal A, out dReal d, int n, int nskip); | 807 | internal static extern void FactorLDLT(ref dReal A, out dReal d, int n, int nskip); |
807 | 808 | ||
808 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] | 809 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] |
809 | public static extern void GeomBoxGetLengths(IntPtr geom, out Vector3 len); | 810 | internal static extern void GeomBoxGetLengths(IntPtr geom, out Vector3 len); |
810 | 811 | ||
811 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] | 812 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxGetLengths"), SuppressUnmanagedCodeSecurity] |
812 | public static extern void GeomBoxGetLengths(IntPtr geom, out dReal x); | 813 | internal static extern void GeomBoxGetLengths(IntPtr geom, out dReal x); |
813 | 814 | ||
814 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxPointDepth"), SuppressUnmanagedCodeSecurity] | 815 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxPointDepth"), SuppressUnmanagedCodeSecurity] |
815 | public static extern dReal GeomBoxPointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 816 | internal static extern dReal GeomBoxPointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
816 | 817 | ||
817 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxSetLengths"), SuppressUnmanagedCodeSecurity] | 818 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomBoxSetLengths"), SuppressUnmanagedCodeSecurity] |
818 | public static extern void GeomBoxSetLengths(IntPtr geom, dReal x, dReal y, dReal z); | 819 | internal static extern void GeomBoxSetLengths(IntPtr geom, dReal x, dReal y, dReal z); |
819 | 820 | ||
820 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleGetParams"), SuppressUnmanagedCodeSecurity] | 821 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleGetParams"), SuppressUnmanagedCodeSecurity] |
821 | public static extern void GeomCapsuleGetParams(IntPtr geom, out dReal radius, out dReal length); | 822 | internal static extern void GeomCapsuleGetParams(IntPtr geom, out dReal radius, out dReal length); |
822 | 823 | ||
823 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsulePointDepth"), SuppressUnmanagedCodeSecurity] | 824 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsulePointDepth"), SuppressUnmanagedCodeSecurity] |
824 | public static extern dReal GeomCapsulePointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 825 | internal static extern dReal GeomCapsulePointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
825 | 826 | ||
826 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleSetParams"), SuppressUnmanagedCodeSecurity] | 827 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCapsuleSetParams"), SuppressUnmanagedCodeSecurity] |
827 | public static extern void GeomCapsuleSetParams(IntPtr geom, dReal radius, dReal length); | 828 | internal static extern void GeomCapsuleSetParams(IntPtr geom, dReal radius, dReal length); |
828 | 829 | ||
829 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomClearOffset"), SuppressUnmanagedCodeSecurity] | 830 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomClearOffset"), SuppressUnmanagedCodeSecurity] |
830 | public static extern void GeomClearOffset(IntPtr geom); | 831 | internal static extern void GeomClearOffset(IntPtr geom); |
831 | 832 | ||
832 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] | 833 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] |
833 | public static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref Vector3 pos); | 834 | internal static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref Vector3 pos); |
834 | 835 | ||
835 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] | 836 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetPosition"), SuppressUnmanagedCodeSecurity] |
836 | public static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref dReal X); | 837 | internal static extern IntPtr GeomCopyOffsetPosition(IntPtr geom, ref dReal X); |
837 | 838 | ||
838 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 839 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
839 | public static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref Quaternion Q); | 840 | internal static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref Quaternion Q); |
840 | 841 | ||
841 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 842 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
842 | public static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref dReal X); | 843 | internal static extern void GeomCopyOffsetQuaternion(IntPtr geom, ref dReal X); |
843 | 844 | ||
844 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] | 845 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] |
845 | public static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref Matrix3 R); | 846 | internal static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref Matrix3 R); |
846 | 847 | ||
847 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] | 848 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyOffsetRotation"), SuppressUnmanagedCodeSecurity] |
848 | public static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref dReal M00); | 849 | internal static extern IntPtr GeomCopyOffsetRotation(IntPtr geom, ref dReal M00); |
849 | 850 | ||
850 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] | 851 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] |
851 | public static extern void GeomCopyPosition(IntPtr geom, out Vector3 pos); | 852 | internal static extern void GeomCopyPosition(IntPtr geom, out Vector3 pos); |
852 | 853 | ||
853 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] | 854 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyPosition"), SuppressUnmanagedCodeSecurity] |
854 | public static extern void GeomCopyPosition(IntPtr geom, out dReal X); | 855 | internal static extern void GeomCopyPosition(IntPtr geom, out dReal X); |
855 | 856 | ||
856 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] | 857 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] |
857 | public static extern void GeomCopyRotation(IntPtr geom, out Matrix3 R); | 858 | internal static extern void GeomCopyRotation(IntPtr geom, out Matrix3 R); |
858 | 859 | ||
859 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] | 860 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCopyRotation"), SuppressUnmanagedCodeSecurity] |
860 | public static extern void GeomCopyRotation(IntPtr geom, out dReal M00); | 861 | internal static extern void GeomCopyRotation(IntPtr geom, out dReal M00); |
861 | 862 | ||
862 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderGetParams"), SuppressUnmanagedCodeSecurity] | 863 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderGetParams"), SuppressUnmanagedCodeSecurity] |
863 | public static extern void GeomCylinderGetParams(IntPtr geom, out dReal radius, out dReal length); | 864 | internal static extern void GeomCylinderGetParams(IntPtr geom, out dReal radius, out dReal length); |
864 | 865 | ||
865 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderSetParams"), SuppressUnmanagedCodeSecurity] | 866 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomCylinderSetParams"), SuppressUnmanagedCodeSecurity] |
866 | public static extern void GeomCylinderSetParams(IntPtr geom, dReal radius, dReal length); | 867 | internal static extern void GeomCylinderSetParams(IntPtr geom, dReal radius, dReal length); |
867 | 868 | ||
868 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDestroy"), SuppressUnmanagedCodeSecurity] | 869 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDestroy"), SuppressUnmanagedCodeSecurity] |
869 | public static extern void GeomiDestroy(IntPtr geom); | 870 | internal static extern void GeomiDestroy(IntPtr geom); |
870 | public static void GeomDestroy(IntPtr geom) | 871 | internal static void GeomDestroy(IntPtr geom) |
871 | { | 872 | { |
872 | NTotalGeoms--; | 873 | NTotalGeoms--; |
873 | GeomiDestroy(geom); | 874 | GeomiDestroy(geom); |
@@ -875,64 +876,64 @@ namespace OdeAPI | |||
875 | 876 | ||
876 | 877 | ||
877 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDisable"), SuppressUnmanagedCodeSecurity] | 878 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomDisable"), SuppressUnmanagedCodeSecurity] |
878 | public static extern void GeomDisable(IntPtr geom); | 879 | internal static extern void GeomDisable(IntPtr geom); |
879 | 880 | ||
880 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomEnable"), SuppressUnmanagedCodeSecurity] | 881 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomEnable"), SuppressUnmanagedCodeSecurity] |
881 | public static extern void GeomEnable(IntPtr geom); | 882 | internal static extern void GeomEnable(IntPtr geom); |
882 | 883 | ||
883 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] | 884 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] |
884 | public static extern void GeomGetAABB(IntPtr geom, out AABB aabb); | 885 | internal static extern void GeomGetAABB(IntPtr geom, out AABB aabb); |
885 | 886 | ||
886 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] | 887 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetAABB"), SuppressUnmanagedCodeSecurity] |
887 | public static extern void GeomGetAABB(IntPtr geom, out dReal minX); | 888 | internal static extern void GeomGetAABB(IntPtr geom, out dReal minX); |
888 | 889 | ||
889 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetBody"), SuppressUnmanagedCodeSecurity] | 890 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetBody"), SuppressUnmanagedCodeSecurity] |
890 | public static extern IntPtr GeomGetBody(IntPtr geom); | 891 | internal static extern IntPtr GeomGetBody(IntPtr geom); |
891 | 892 | ||
892 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCategoryBits"), SuppressUnmanagedCodeSecurity] | 893 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCategoryBits"), SuppressUnmanagedCodeSecurity] |
893 | public static extern uint GeomGetCategoryBits(IntPtr geom); | 894 | internal static extern uint GeomGetCategoryBits(IntPtr geom); |
894 | 895 | ||
895 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClassData"), SuppressUnmanagedCodeSecurity] | 896 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClassData"), SuppressUnmanagedCodeSecurity] |
896 | public static extern IntPtr GeomGetClassData(IntPtr geom); | 897 | internal static extern IntPtr GeomGetClassData(IntPtr geom); |
897 | 898 | ||
898 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCollideBits"), SuppressUnmanagedCodeSecurity] | 899 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetCollideBits"), SuppressUnmanagedCodeSecurity] |
899 | public static extern uint GeomGetCollideBits(IntPtr geom); | 900 | internal static extern uint GeomGetCollideBits(IntPtr geom); |
900 | 901 | ||
901 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClass"), SuppressUnmanagedCodeSecurity] | 902 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetClass"), SuppressUnmanagedCodeSecurity] |
902 | public static extern GeomClassID GeomGetClass(IntPtr geom); | 903 | internal static extern GeomClassID GeomGetClass(IntPtr geom); |
903 | 904 | ||
904 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetData"), SuppressUnmanagedCodeSecurity] | 905 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetData"), SuppressUnmanagedCodeSecurity] |
905 | public static extern IntPtr GeomGetData(IntPtr geom); | 906 | internal static extern IntPtr GeomGetData(IntPtr geom); |
906 | 907 | ||
907 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetPosition"), SuppressUnmanagedCodeSecurity] | 908 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetPosition"), SuppressUnmanagedCodeSecurity] |
908 | public extern unsafe static Vector3* GeomGetOffsetPositionUnsafe(IntPtr geom); | 909 | internal extern unsafe static Vector3* GeomGetOffsetPositionUnsafe(IntPtr geom); |
909 | public static Vector3 GeomGetOffsetPosition(IntPtr geom) | 910 | internal static Vector3 GeomGetOffsetPosition(IntPtr geom) |
910 | { | 911 | { |
911 | unsafe { return *(GeomGetOffsetPositionUnsafe(geom)); } | 912 | unsafe { return *(GeomGetOffsetPositionUnsafe(geom)); } |
912 | } | 913 | } |
913 | 914 | ||
914 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetRotation"), SuppressUnmanagedCodeSecurity] | 915 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetOffsetRotation"), SuppressUnmanagedCodeSecurity] |
915 | public extern unsafe static Matrix3* GeomGetOffsetRotationUnsafe(IntPtr geom); | 916 | internal extern unsafe static Matrix3* GeomGetOffsetRotationUnsafe(IntPtr geom); |
916 | public static Matrix3 GeomGetOffsetRotation(IntPtr geom) | 917 | internal static Matrix3 GeomGetOffsetRotation(IntPtr geom) |
917 | { | 918 | { |
918 | unsafe { return *(GeomGetOffsetRotationUnsafe(geom)); } | 919 | unsafe { return *(GeomGetOffsetRotationUnsafe(geom)); } |
919 | } | 920 | } |
920 | 921 | ||
921 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetPosition"), SuppressUnmanagedCodeSecurity] | 922 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetPosition"), SuppressUnmanagedCodeSecurity] |
922 | public extern unsafe static Vector3* GeomGetPositionUnsafe(IntPtr geom); | 923 | internal extern unsafe static Vector3* GeomGetPositionUnsafe(IntPtr geom); |
923 | public static Vector3 GeomGetPosition(IntPtr geom) | 924 | internal static Vector3 GeomGetPosition(IntPtr geom) |
924 | { | 925 | { |
925 | unsafe { return *(GeomGetPositionUnsafe(geom)); } | 926 | unsafe { return *(GeomGetPositionUnsafe(geom)); } |
926 | } | 927 | } |
927 | public static OMV.Vector3 GeomGetPositionOMV(IntPtr geom) | 928 | internal static OMV.Vector3 GeomGetPositionOMV(IntPtr geom) |
928 | { | 929 | { |
929 | Vector3 vtmp = GeomGetPosition(geom); | 930 | Vector3 vtmp = GeomGetPosition(geom); |
930 | return new OMV.Vector3(vtmp.X, vtmp.Y, vtmp.Z); | 931 | return new OMV.Vector3(vtmp.X, vtmp.Y, vtmp.Z); |
931 | } | 932 | } |
932 | 933 | ||
933 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] | 934 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] |
934 | public static extern void GeomCopyQuaternion(IntPtr geom, out Quaternion q); | 935 | internal static extern void GeomCopyQuaternion(IntPtr geom, out Quaternion q); |
935 | public static OMV.Quaternion GeomGetQuaternionOMV(IntPtr geom) | 936 | internal static OMV.Quaternion GeomGetQuaternionOMV(IntPtr geom) |
936 | { | 937 | { |
937 | Quaternion qtmp; | 938 | Quaternion qtmp; |
938 | GeomCopyQuaternion(geom, out qtmp); | 939 | GeomCopyQuaternion(geom, out qtmp); |
@@ -940,393 +941,393 @@ namespace OdeAPI | |||
940 | } | 941 | } |
941 | 942 | ||
942 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] | 943 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetQuaternion"), SuppressUnmanagedCodeSecurity] |
943 | public static extern void GeomCopyQuaternion(IntPtr geom, out dReal X); | 944 | internal static extern void GeomCopyQuaternion(IntPtr geom, out dReal X); |
944 | 945 | ||
945 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetRotation"), SuppressUnmanagedCodeSecurity] | 946 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetRotation"), SuppressUnmanagedCodeSecurity] |
946 | public extern unsafe static Matrix3* GeomGetRotationUnsafe(IntPtr geom); | 947 | internal extern unsafe static Matrix3* GeomGetRotationUnsafe(IntPtr geom); |
947 | public static Matrix3 GeomGetRotation(IntPtr geom) | 948 | internal static Matrix3 GeomGetRotation(IntPtr geom) |
948 | { | 949 | { |
949 | unsafe { return *(GeomGetRotationUnsafe(geom)); } | 950 | unsafe { return *(GeomGetRotationUnsafe(geom)); } |
950 | } | 951 | } |
951 | 952 | ||
952 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetSpace"), SuppressUnmanagedCodeSecurity] | 953 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomGetSpace"), SuppressUnmanagedCodeSecurity] |
953 | public static extern IntPtr GeomGetSpace(IntPtr geom); | 954 | internal static extern IntPtr GeomGetSpace(IntPtr geom); |
954 | 955 | ||
955 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] | 956 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] |
956 | public static extern void GeomHeightfieldDataBuildByte(IntPtr d, byte[] pHeightData, int bCopyHeightData, | 957 | internal static extern void GeomHeightfieldDataBuildByte(IntPtr d, byte[] pHeightData, int bCopyHeightData, |
957 | dReal width, dReal depth, int widthSamples, int depthSamples, | 958 | dReal width, dReal depth, int widthSamples, int depthSamples, |
958 | dReal scale, dReal offset, dReal thickness, int bWrap); | 959 | dReal scale, dReal offset, dReal thickness, int bWrap); |
959 | 960 | ||
960 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] | 961 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildByte"), SuppressUnmanagedCodeSecurity] |
961 | public static extern void GeomHeightfieldDataBuildByte(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 962 | internal static extern void GeomHeightfieldDataBuildByte(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
962 | dReal width, dReal depth, int widthSamples, int depthSamples, | 963 | dReal width, dReal depth, int widthSamples, int depthSamples, |
963 | dReal scale, dReal offset, dReal thickness, int bWrap); | 964 | dReal scale, dReal offset, dReal thickness, int bWrap); |
964 | 965 | ||
965 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildCallback"), SuppressUnmanagedCodeSecurity] | 966 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildCallback"), SuppressUnmanagedCodeSecurity] |
966 | public static extern void GeomHeightfieldDataBuildCallback(IntPtr d, IntPtr pUserData, HeightfieldGetHeight pCallback, | 967 | internal static extern void GeomHeightfieldDataBuildCallback(IntPtr d, IntPtr pUserData, HeightfieldGetHeight pCallback, |
967 | dReal width, dReal depth, int widthSamples, int depthSamples, | 968 | dReal width, dReal depth, int widthSamples, int depthSamples, |
968 | dReal scale, dReal offset, dReal thickness, int bWrap); | 969 | dReal scale, dReal offset, dReal thickness, int bWrap); |
969 | 970 | ||
970 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] | 971 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] |
971 | public static extern void GeomHeightfieldDataBuildShort(IntPtr d, ushort[] pHeightData, int bCopyHeightData, | 972 | internal static extern void GeomHeightfieldDataBuildShort(IntPtr d, ushort[] pHeightData, int bCopyHeightData, |
972 | dReal width, dReal depth, int widthSamples, int depthSamples, | 973 | dReal width, dReal depth, int widthSamples, int depthSamples, |
973 | dReal scale, dReal offset, dReal thickness, int bWrap); | 974 | dReal scale, dReal offset, dReal thickness, int bWrap); |
974 | 975 | ||
975 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] | 976 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] |
976 | public static extern void GeomHeightfieldDataBuildShort(IntPtr d, short[] pHeightData, int bCopyHeightData, | 977 | internal static extern void GeomHeightfieldDataBuildShort(IntPtr d, short[] pHeightData, int bCopyHeightData, |
977 | dReal width, dReal depth, int widthSamples, int depthSamples, | 978 | dReal width, dReal depth, int widthSamples, int depthSamples, |
978 | dReal scale, dReal offset, dReal thickness, int bWrap); | 979 | dReal scale, dReal offset, dReal thickness, int bWrap); |
979 | 980 | ||
980 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] | 981 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildShort"), SuppressUnmanagedCodeSecurity] |
981 | public static extern void GeomHeightfieldDataBuildShort(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 982 | internal static extern void GeomHeightfieldDataBuildShort(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
982 | dReal width, dReal depth, int widthSamples, int depthSamples, | 983 | dReal width, dReal depth, int widthSamples, int depthSamples, |
983 | dReal scale, dReal offset, dReal thickness, int bWrap); | 984 | dReal scale, dReal offset, dReal thickness, int bWrap); |
984 | 985 | ||
985 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 986 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
986 | public static extern void GeomHeightfieldDataBuildSingle(IntPtr d, float[] pHeightData, int bCopyHeightData, | 987 | internal static extern void GeomHeightfieldDataBuildSingle(IntPtr d, float[] pHeightData, int bCopyHeightData, |
987 | dReal width, dReal depth, int widthSamples, int depthSamples, | 988 | dReal width, dReal depth, int widthSamples, int depthSamples, |
988 | dReal scale, dReal offset, dReal thickness, int bWrap); | 989 | dReal scale, dReal offset, dReal thickness, int bWrap); |
989 | 990 | ||
990 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 991 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
991 | public static extern void GeomHeightfieldDataBuildSingle(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 992 | internal static extern void GeomHeightfieldDataBuildSingle(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
992 | dReal width, dReal depth, int widthSamples, int depthSamples, | 993 | dReal width, dReal depth, int widthSamples, int depthSamples, |
993 | dReal scale, dReal offset, dReal thickness, int bWrap); | 994 | dReal scale, dReal offset, dReal thickness, int bWrap); |
994 | 995 | ||
995 | 996 | ||
996 | 997 | ||
997 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 998 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
998 | public static extern void GeomHeightfieldDataBuildDouble(IntPtr d, double[] pHeightData, int bCopyHeightData, | 999 | internal static extern void GeomHeightfieldDataBuildDouble(IntPtr d, double[] pHeightData, int bCopyHeightData, |
999 | dReal width, dReal depth, int widthSamples, int depthSamples, | 1000 | dReal width, dReal depth, int widthSamples, int depthSamples, |
1000 | dReal scale, dReal offset, dReal thickness, int bWrap); | 1001 | dReal scale, dReal offset, dReal thickness, int bWrap); |
1001 | 1002 | ||
1002 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 1003 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
1003 | public static extern void GeomHeightfieldDataBuildDouble(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 1004 | internal static extern void GeomHeightfieldDataBuildDouble(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
1004 | dReal width, dReal depth, int widthSamples, int depthSamples, | 1005 | dReal width, dReal depth, int widthSamples, int depthSamples, |
1005 | dReal scale, dReal offset, dReal thickness, int bWrap); | 1006 | dReal scale, dReal offset, dReal thickness, int bWrap); |
1006 | 1007 | ||
1007 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataCreate"), SuppressUnmanagedCodeSecurity] | 1008 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataCreate"), SuppressUnmanagedCodeSecurity] |
1008 | public static extern IntPtr GeomHeightfieldDataCreate(); | 1009 | internal static extern IntPtr GeomHeightfieldDataCreate(); |
1009 | 1010 | ||
1010 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataDestroy"), SuppressUnmanagedCodeSecurity] | 1011 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataDestroy"), SuppressUnmanagedCodeSecurity] |
1011 | public static extern void GeomHeightfieldDataDestroy(IntPtr d); | 1012 | internal static extern void GeomHeightfieldDataDestroy(IntPtr d); |
1012 | 1013 | ||
1013 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataSetBounds"), SuppressUnmanagedCodeSecurity] | 1014 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldDataSetBounds"), SuppressUnmanagedCodeSecurity] |
1014 | public static extern void GeomHeightfieldDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); | 1015 | internal static extern void GeomHeightfieldDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); |
1015 | 1016 | ||
1016 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldGetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1017 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldGetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1017 | public static extern IntPtr GeomHeightfieldGetHeightfieldData(IntPtr g); | 1018 | internal static extern IntPtr GeomHeightfieldGetHeightfieldData(IntPtr g); |
1018 | 1019 | ||
1019 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldSetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1020 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomHeightfieldSetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1020 | public static extern void GeomHeightfieldSetHeightfieldData(IntPtr g, IntPtr d); | 1021 | internal static extern void GeomHeightfieldSetHeightfieldData(IntPtr g, IntPtr d); |
1021 | 1022 | ||
1022 | 1023 | ||
1023 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomUbitTerrainDataBuild"), SuppressUnmanagedCodeSecurity] | 1024 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomUbitTerrainDataBuild"), SuppressUnmanagedCodeSecurity] |
1024 | public static extern void GeomOSTerrainDataBuild(IntPtr d, float[] pHeightData, int bCopyHeightData, | 1025 | internal static extern void GeomOSTerrainDataBuild(IntPtr d, float[] pHeightData, int bCopyHeightData, |
1025 | dReal sampleSize, int widthSamples, int depthSamples, | 1026 | dReal sampleSize, int widthSamples, int depthSamples, |
1026 | dReal offset, dReal thickness, int bWrap); | 1027 | dReal offset, dReal thickness, int bWrap); |
1027 | 1028 | ||
1028 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataBuild"), SuppressUnmanagedCodeSecurity] | 1029 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataBuild"), SuppressUnmanagedCodeSecurity] |
1029 | public static extern void GeomOSTerrainDataBuild(IntPtr d, IntPtr pHeightData, int bCopyHeightData, | 1030 | internal static extern void GeomOSTerrainDataBuild(IntPtr d, IntPtr pHeightData, int bCopyHeightData, |
1030 | dReal sampleSize, int widthSamples, int depthSamples, | 1031 | dReal sampleSize, int widthSamples, int depthSamples, |
1031 | dReal thickness, int bWrap); | 1032 | dReal thickness, int bWrap); |
1032 | 1033 | ||
1033 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataCreate"), SuppressUnmanagedCodeSecurity] | 1034 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataCreate"), SuppressUnmanagedCodeSecurity] |
1034 | public static extern IntPtr GeomOSTerrainDataCreate(); | 1035 | internal static extern IntPtr GeomOSTerrainDataCreate(); |
1035 | 1036 | ||
1036 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataDestroy"), SuppressUnmanagedCodeSecurity] | 1037 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataDestroy"), SuppressUnmanagedCodeSecurity] |
1037 | public static extern void GeomOSTerrainDataDestroy(IntPtr d); | 1038 | internal static extern void GeomOSTerrainDataDestroy(IntPtr d); |
1038 | 1039 | ||
1039 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataSetBounds"), SuppressUnmanagedCodeSecurity] | 1040 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainDataSetBounds"), SuppressUnmanagedCodeSecurity] |
1040 | public static extern void GeomOSTerrainDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); | 1041 | internal static extern void GeomOSTerrainDataSetBounds(IntPtr d, dReal minHeight, dReal maxHeight); |
1041 | 1042 | ||
1042 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainGetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1043 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainGetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1043 | public static extern IntPtr GeomOSTerrainGetHeightfieldData(IntPtr g); | 1044 | internal static extern IntPtr GeomOSTerrainGetHeightfieldData(IntPtr g); |
1044 | 1045 | ||
1045 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainSetHeightfieldData"), SuppressUnmanagedCodeSecurity] | 1046 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomOSTerrainSetHeightfieldData"), SuppressUnmanagedCodeSecurity] |
1046 | public static extern void GeomOSTerrainSetHeightfieldData(IntPtr g, IntPtr d); | 1047 | internal static extern void GeomOSTerrainSetHeightfieldData(IntPtr g, IntPtr d); |
1047 | 1048 | ||
1048 | 1049 | ||
1049 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsEnabled"), SuppressUnmanagedCodeSecurity] | 1050 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsEnabled"), SuppressUnmanagedCodeSecurity] |
1050 | public static extern bool GeomIsEnabled(IntPtr geom); | 1051 | internal static extern bool GeomIsEnabled(IntPtr geom); |
1051 | 1052 | ||
1052 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsOffset"), SuppressUnmanagedCodeSecurity] | 1053 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsOffset"), SuppressUnmanagedCodeSecurity] |
1053 | public static extern bool GeomIsOffset(IntPtr geom); | 1054 | internal static extern bool GeomIsOffset(IntPtr geom); |
1054 | 1055 | ||
1055 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsSpace"), SuppressUnmanagedCodeSecurity] | 1056 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomIsSpace"), SuppressUnmanagedCodeSecurity] |
1056 | public static extern bool GeomIsSpace(IntPtr geom); | 1057 | internal static extern bool GeomIsSpace(IntPtr geom); |
1057 | 1058 | ||
1058 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] | 1059 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] |
1059 | public static extern void GeomPlaneGetParams(IntPtr geom, ref Vector4 result); | 1060 | internal static extern void GeomPlaneGetParams(IntPtr geom, ref Vector4 result); |
1060 | 1061 | ||
1061 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] | 1062 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneGetParams"), SuppressUnmanagedCodeSecurity] |
1062 | public static extern void GeomPlaneGetParams(IntPtr geom, ref dReal A); | 1063 | internal static extern void GeomPlaneGetParams(IntPtr geom, ref dReal A); |
1063 | 1064 | ||
1064 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlanePointDepth"), SuppressUnmanagedCodeSecurity] | 1065 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlanePointDepth"), SuppressUnmanagedCodeSecurity] |
1065 | public static extern dReal GeomPlanePointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 1066 | internal static extern dReal GeomPlanePointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
1066 | 1067 | ||
1067 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneSetParams"), SuppressUnmanagedCodeSecurity] | 1068 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomPlaneSetParams"), SuppressUnmanagedCodeSecurity] |
1068 | public static extern void GeomPlaneSetParams(IntPtr plane, dReal a, dReal b, dReal c, dReal d); | 1069 | internal static extern void GeomPlaneSetParams(IntPtr plane, dReal a, dReal b, dReal c, dReal d); |
1069 | 1070 | ||
1070 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] | 1071 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] |
1071 | public static extern void GeomRayGet(IntPtr ray, ref Vector3 start, ref Vector3 dir); | 1072 | internal static extern void GeomRayGet(IntPtr ray, ref Vector3 start, ref Vector3 dir); |
1072 | 1073 | ||
1073 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] | 1074 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGet"), SuppressUnmanagedCodeSecurity] |
1074 | public static extern void GeomRayGet(IntPtr ray, ref dReal startX, ref dReal dirX); | 1075 | internal static extern void GeomRayGet(IntPtr ray, ref dReal startX, ref dReal dirX); |
1075 | 1076 | ||
1076 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetClosestHit"), SuppressUnmanagedCodeSecurity] | 1077 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetClosestHit"), SuppressUnmanagedCodeSecurity] |
1077 | public static extern int GeomRayGetClosestHit(IntPtr ray); | 1078 | internal static extern int GeomRayGetClosestHit(IntPtr ray); |
1078 | 1079 | ||
1079 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetLength"), SuppressUnmanagedCodeSecurity] | 1080 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetLength"), SuppressUnmanagedCodeSecurity] |
1080 | public static extern dReal GeomRayGetLength(IntPtr ray); | 1081 | internal static extern dReal GeomRayGetLength(IntPtr ray); |
1081 | 1082 | ||
1082 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetParams"), SuppressUnmanagedCodeSecurity] | 1083 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRayGetParams"), SuppressUnmanagedCodeSecurity] |
1083 | public static extern dReal GeomRayGetParams(IntPtr g, out int firstContact, out int backfaceCull); | 1084 | internal static extern dReal GeomRayGetParams(IntPtr g, out int firstContact, out int backfaceCull); |
1084 | 1085 | ||
1085 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySet"), SuppressUnmanagedCodeSecurity] | 1086 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySet"), SuppressUnmanagedCodeSecurity] |
1086 | public static extern void GeomRaySet(IntPtr ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz); | 1087 | internal static extern void GeomRaySet(IntPtr ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz); |
1087 | 1088 | ||
1088 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetClosestHit"), SuppressUnmanagedCodeSecurity] | 1089 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetClosestHit"), SuppressUnmanagedCodeSecurity] |
1089 | public static extern void GeomRaySetClosestHit(IntPtr ray, int closestHit); | 1090 | internal static extern void GeomRaySetClosestHit(IntPtr ray, int closestHit); |
1090 | 1091 | ||
1091 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetLength"), SuppressUnmanagedCodeSecurity] | 1092 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetLength"), SuppressUnmanagedCodeSecurity] |
1092 | public static extern void GeomRaySetLength(IntPtr ray, dReal length); | 1093 | internal static extern void GeomRaySetLength(IntPtr ray, dReal length); |
1093 | 1094 | ||
1094 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetParams"), SuppressUnmanagedCodeSecurity] | 1095 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomRaySetParams"), SuppressUnmanagedCodeSecurity] |
1095 | public static extern void GeomRaySetParams(IntPtr ray, int firstContact, int backfaceCull); | 1096 | internal static extern void GeomRaySetParams(IntPtr ray, int firstContact, int backfaceCull); |
1096 | 1097 | ||
1097 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetBody"), SuppressUnmanagedCodeSecurity] | 1098 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetBody"), SuppressUnmanagedCodeSecurity] |
1098 | public static extern void GeomSetBody(IntPtr geom, IntPtr body); | 1099 | internal static extern void GeomSetBody(IntPtr geom, IntPtr body); |
1099 | 1100 | ||
1100 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCategoryBits"), SuppressUnmanagedCodeSecurity] | 1101 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCategoryBits"), SuppressUnmanagedCodeSecurity] |
1101 | public static extern void GeomSetCategoryBits(IntPtr geom, uint bits); | 1102 | internal static extern void GeomSetCategoryBits(IntPtr geom, uint bits); |
1102 | 1103 | ||
1103 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCollideBits"), SuppressUnmanagedCodeSecurity] | 1104 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetCollideBits"), SuppressUnmanagedCodeSecurity] |
1104 | public static extern void GeomSetCollideBits(IntPtr geom, uint bits); | 1105 | internal static extern void GeomSetCollideBits(IntPtr geom, uint bits); |
1105 | 1106 | ||
1106 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetConvex"), SuppressUnmanagedCodeSecurity] | 1107 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetConvex"), SuppressUnmanagedCodeSecurity] |
1107 | public static extern IntPtr GeomSetConvex(IntPtr geom, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); | 1108 | internal static extern IntPtr GeomSetConvex(IntPtr geom, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons); |
1108 | 1109 | ||
1109 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetData"), SuppressUnmanagedCodeSecurity] | 1110 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetData"), SuppressUnmanagedCodeSecurity] |
1110 | public static extern void GeomSetData(IntPtr geom, IntPtr data); | 1111 | internal static extern void GeomSetData(IntPtr geom, IntPtr data); |
1111 | 1112 | ||
1112 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetPosition"), SuppressUnmanagedCodeSecurity] | 1113 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetPosition"), SuppressUnmanagedCodeSecurity] |
1113 | public static extern void GeomSetOffsetPosition(IntPtr geom, dReal x, dReal y, dReal z); | 1114 | internal static extern void GeomSetOffsetPosition(IntPtr geom, dReal x, dReal y, dReal z); |
1114 | 1115 | ||
1115 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 1116 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
1116 | public static extern void GeomSetOffsetQuaternion(IntPtr geom, ref Quaternion Q); | 1117 | internal static extern void GeomSetOffsetQuaternion(IntPtr geom, ref Quaternion Q); |
1117 | 1118 | ||
1118 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] | 1119 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetQuaternion"), SuppressUnmanagedCodeSecurity] |
1119 | public static extern void GeomSetOffsetQuaternion(IntPtr geom, ref dReal X); | 1120 | internal static extern void GeomSetOffsetQuaternion(IntPtr geom, ref dReal X); |
1120 | 1121 | ||
1121 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] | 1122 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] |
1122 | public static extern void GeomSetOffsetRotation(IntPtr geom, ref Matrix3 R); | 1123 | internal static extern void GeomSetOffsetRotation(IntPtr geom, ref Matrix3 R); |
1123 | 1124 | ||
1124 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] | 1125 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetRotation"), SuppressUnmanagedCodeSecurity] |
1125 | public static extern void GeomSetOffsetRotation(IntPtr geom, ref dReal M00); | 1126 | internal static extern void GeomSetOffsetRotation(IntPtr geom, ref dReal M00); |
1126 | 1127 | ||
1127 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldPosition"), SuppressUnmanagedCodeSecurity] | 1128 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldPosition"), SuppressUnmanagedCodeSecurity] |
1128 | public static extern void GeomSetOffsetWorldPosition(IntPtr geom, dReal x, dReal y, dReal z); | 1129 | internal static extern void GeomSetOffsetWorldPosition(IntPtr geom, dReal x, dReal y, dReal z); |
1129 | 1130 | ||
1130 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] | 1131 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] |
1131 | public static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref Quaternion Q); | 1132 | internal static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref Quaternion Q); |
1132 | 1133 | ||
1133 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] | 1134 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldQuaternion"), SuppressUnmanagedCodeSecurity] |
1134 | public static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref dReal X); | 1135 | internal static extern void GeomSetOffsetWorldQuaternion(IntPtr geom, ref dReal X); |
1135 | 1136 | ||
1136 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] | 1137 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] |
1137 | public static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref Matrix3 R); | 1138 | internal static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref Matrix3 R); |
1138 | 1139 | ||
1139 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] | 1140 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetOffsetWorldRotation"), SuppressUnmanagedCodeSecurity] |
1140 | public static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref dReal M00); | 1141 | internal static extern void GeomSetOffsetWorldRotation(IntPtr geom, ref dReal M00); |
1141 | 1142 | ||
1142 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetPosition"), SuppressUnmanagedCodeSecurity] | 1143 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetPosition"), SuppressUnmanagedCodeSecurity] |
1143 | public static extern void GeomSetPosition(IntPtr geom, dReal x, dReal y, dReal z); | 1144 | internal static extern void GeomSetPosition(IntPtr geom, dReal x, dReal y, dReal z); |
1144 | 1145 | ||
1145 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] | 1146 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] |
1146 | public static extern void GeomSetQuaternion(IntPtr geom, ref Quaternion quat); | 1147 | internal static extern void GeomSetQuaternion(IntPtr geom, ref Quaternion quat); |
1147 | 1148 | ||
1148 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] | 1149 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetQuaternion"), SuppressUnmanagedCodeSecurity] |
1149 | public static extern void GeomSetQuaternion(IntPtr geom, ref dReal w); | 1150 | internal static extern void GeomSetQuaternion(IntPtr geom, ref dReal w); |
1150 | 1151 | ||
1151 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] | 1152 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] |
1152 | public static extern void GeomSetRotation(IntPtr geom, ref Matrix3 R); | 1153 | internal static extern void GeomSetRotation(IntPtr geom, ref Matrix3 R); |
1153 | 1154 | ||
1154 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] | 1155 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSetRotation"), SuppressUnmanagedCodeSecurity] |
1155 | public static extern void GeomSetRotation(IntPtr geom, ref dReal M00); | 1156 | internal static extern void GeomSetRotation(IntPtr geom, ref dReal M00); |
1156 | 1157 | ||
1157 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereGetRadius"), SuppressUnmanagedCodeSecurity] | 1158 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereGetRadius"), SuppressUnmanagedCodeSecurity] |
1158 | public static extern dReal GeomSphereGetRadius(IntPtr geom); | 1159 | internal static extern dReal GeomSphereGetRadius(IntPtr geom); |
1159 | 1160 | ||
1160 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSpherePointDepth"), SuppressUnmanagedCodeSecurity] | 1161 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSpherePointDepth"), SuppressUnmanagedCodeSecurity] |
1161 | public static extern dReal GeomSpherePointDepth(IntPtr geom, dReal x, dReal y, dReal z); | 1162 | internal static extern dReal GeomSpherePointDepth(IntPtr geom, dReal x, dReal y, dReal z); |
1162 | 1163 | ||
1163 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereSetRadius"), SuppressUnmanagedCodeSecurity] | 1164 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomSphereSetRadius"), SuppressUnmanagedCodeSecurity] |
1164 | public static extern void GeomSphereSetRadius(IntPtr geom, dReal radius); | 1165 | internal static extern void GeomSphereSetRadius(IntPtr geom, dReal radius); |
1165 | 1166 | ||
1166 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetCleanup"), SuppressUnmanagedCodeSecurity] | 1167 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetCleanup"), SuppressUnmanagedCodeSecurity] |
1167 | public static extern int GeomTransformGetCleanup(IntPtr geom); | 1168 | internal static extern int GeomTransformGetCleanup(IntPtr geom); |
1168 | 1169 | ||
1169 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetGeom"), SuppressUnmanagedCodeSecurity] | 1170 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetGeom"), SuppressUnmanagedCodeSecurity] |
1170 | public static extern IntPtr GeomTransformGetGeom(IntPtr geom); | 1171 | internal static extern IntPtr GeomTransformGetGeom(IntPtr geom); |
1171 | 1172 | ||
1172 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetInfo"), SuppressUnmanagedCodeSecurity] | 1173 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformGetInfo"), SuppressUnmanagedCodeSecurity] |
1173 | public static extern int GeomTransformGetInfo(IntPtr geom); | 1174 | internal static extern int GeomTransformGetInfo(IntPtr geom); |
1174 | 1175 | ||
1175 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetCleanup"), SuppressUnmanagedCodeSecurity] | 1176 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetCleanup"), SuppressUnmanagedCodeSecurity] |
1176 | public static extern void GeomTransformSetCleanup(IntPtr geom, int mode); | 1177 | internal static extern void GeomTransformSetCleanup(IntPtr geom, int mode); |
1177 | 1178 | ||
1178 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetGeom"), SuppressUnmanagedCodeSecurity] | 1179 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetGeom"), SuppressUnmanagedCodeSecurity] |
1179 | public static extern void GeomTransformSetGeom(IntPtr geom, IntPtr obj); | 1180 | internal static extern void GeomTransformSetGeom(IntPtr geom, IntPtr obj); |
1180 | 1181 | ||
1181 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetInfo"), SuppressUnmanagedCodeSecurity] | 1182 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTransformSetInfo"), SuppressUnmanagedCodeSecurity] |
1182 | public static extern void GeomTransformSetInfo(IntPtr geom, int info); | 1183 | internal static extern void GeomTransformSetInfo(IntPtr geom, int info); |
1183 | 1184 | ||
1184 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 1185 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
1185 | public static extern void GeomTriMeshDataBuildDouble(IntPtr d, | 1186 | internal static extern void GeomTriMeshDataBuildDouble(IntPtr d, |
1186 | double[] vertices, int vertexStride, int vertexCount, | 1187 | double[] vertices, int vertexStride, int vertexCount, |
1187 | int[] indices, int indexCount, int triStride); | 1188 | int[] indices, int indexCount, int triStride); |
1188 | 1189 | ||
1189 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] | 1190 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble"), SuppressUnmanagedCodeSecurity] |
1190 | public static extern void GeomTriMeshDataBuildDouble(IntPtr d, | 1191 | internal static extern void GeomTriMeshDataBuildDouble(IntPtr d, |
1191 | IntPtr vertices, int vertexStride, int vertexCount, | 1192 | IntPtr vertices, int vertexStride, int vertexCount, |
1192 | IntPtr indices, int indexCount, int triStride); | 1193 | IntPtr indices, int indexCount, int triStride); |
1193 | 1194 | ||
1194 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] | 1195 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] |
1195 | public static extern void GeomTriMeshDataBuildDouble1(IntPtr d, | 1196 | internal static extern void GeomTriMeshDataBuildDouble1(IntPtr d, |
1196 | double[] vertices, int vertexStride, int vertexCount, | 1197 | double[] vertices, int vertexStride, int vertexCount, |
1197 | int[] indices, int indexCount, int triStride, | 1198 | int[] indices, int indexCount, int triStride, |
1198 | double[] normals); | 1199 | double[] normals); |
1199 | 1200 | ||
1200 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] | 1201 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildDouble1"), SuppressUnmanagedCodeSecurity] |
1201 | public static extern void GeomTriMeshDataBuildDouble(IntPtr d, | 1202 | internal static extern void GeomTriMeshDataBuildDouble(IntPtr d, |
1202 | IntPtr vertices, int vertexStride, int vertexCount, | 1203 | IntPtr vertices, int vertexStride, int vertexCount, |
1203 | IntPtr indices, int indexCount, int triStride, | 1204 | IntPtr indices, int indexCount, int triStride, |
1204 | IntPtr normals); | 1205 | IntPtr normals); |
1205 | 1206 | ||
1206 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] | 1207 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] |
1207 | public static extern void GeomTriMeshDataBuildSingle(IntPtr d, | 1208 | internal static extern void GeomTriMeshDataBuildSingle(IntPtr d, |
1208 | dReal[] vertices, int vertexStride, int vertexCount, | 1209 | dReal[] vertices, int vertexStride, int vertexCount, |
1209 | int[] indices, int indexCount, int triStride); | 1210 | int[] indices, int indexCount, int triStride); |
1210 | 1211 | ||
1211 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] | 1212 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple"), SuppressUnmanagedCodeSecurity] |
1212 | public static extern void GeomTriMeshDataBuildSingle(IntPtr d, | 1213 | internal static extern void GeomTriMeshDataBuildSingle(IntPtr d, |
1213 | IntPtr vertices, int vertexStride, int vertexCount, | 1214 | IntPtr vertices, int vertexStride, int vertexCount, |
1214 | IntPtr indices, int indexCount, int triStride); | 1215 | IntPtr indices, int indexCount, int triStride); |
1215 | 1216 | ||
1216 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] | 1217 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] |
1217 | public static extern void GeomTriMeshDataBuildSingle1(IntPtr d, | 1218 | internal static extern void GeomTriMeshDataBuildSingle1(IntPtr d, |
1218 | dReal[] vertices, int vertexStride, int vertexCount, | 1219 | dReal[] vertices, int vertexStride, int vertexCount, |
1219 | int[] indices, int indexCount, int triStride, | 1220 | int[] indices, int indexCount, int triStride, |
1220 | dReal[] normals); | 1221 | dReal[] normals); |
1221 | 1222 | ||
1222 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] | 1223 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSimple1"), SuppressUnmanagedCodeSecurity] |
1223 | public static extern void GeomTriMeshDataBuildSingle1(IntPtr d, | 1224 | internal static extern void GeomTriMeshDataBuildSingle1(IntPtr d, |
1224 | IntPtr vertices, int vertexStride, int vertexCount, | 1225 | IntPtr vertices, int vertexStride, int vertexCount, |
1225 | IntPtr indices, int indexCount, int triStride, | 1226 | IntPtr indices, int indexCount, int triStride, |
1226 | IntPtr normals); | 1227 | IntPtr normals); |
1227 | 1228 | ||
1228 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 1229 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
1229 | public static extern void GeomTriMeshDataBuildSimple(IntPtr d, | 1230 | internal static extern void GeomTriMeshDataBuildSimple(IntPtr d, |
1230 | float[] vertices, int vertexStride, int vertexCount, | 1231 | float[] vertices, int vertexStride, int vertexCount, |
1231 | int[] indices, int indexCount, int triStride); | 1232 | int[] indices, int indexCount, int triStride); |
1232 | 1233 | ||
1233 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] | 1234 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle"), SuppressUnmanagedCodeSecurity] |
1234 | public static extern void GeomTriMeshDataBuildSimple(IntPtr d, | 1235 | internal static extern void GeomTriMeshDataBuildSimple(IntPtr d, |
1235 | IntPtr vertices, int vertexStride, int vertexCount, | 1236 | IntPtr vertices, int vertexStride, int vertexCount, |
1236 | IntPtr indices, int indexCount, int triStride); | 1237 | IntPtr indices, int indexCount, int triStride); |
1237 | 1238 | ||
1238 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] | 1239 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] |
1239 | public static extern void GeomTriMeshDataBuildSimple1(IntPtr d, | 1240 | internal static extern void GeomTriMeshDataBuildSimple1(IntPtr d, |
1240 | float[] vertices, int vertexStride, int vertexCount, | 1241 | float[] vertices, int vertexStride, int vertexCount, |
1241 | int[] indices, int indexCount, int triStride, | 1242 | int[] indices, int indexCount, int triStride, |
1242 | float[] normals); | 1243 | float[] normals); |
1243 | 1244 | ||
1244 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] | 1245 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataBuildSingle1"), SuppressUnmanagedCodeSecurity] |
1245 | public static extern void GeomTriMeshDataBuildSimple1(IntPtr d, | 1246 | internal static extern void GeomTriMeshDataBuildSimple1(IntPtr d, |
1246 | IntPtr vertices, int vertexStride, int vertexCount, | 1247 | IntPtr vertices, int vertexStride, int vertexCount, |
1247 | IntPtr indices, int indexCount, int triStride, | 1248 | IntPtr indices, int indexCount, int triStride, |
1248 | IntPtr normals); | 1249 | IntPtr normals); |
1249 | 1250 | ||
1250 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshClearTCCache"), SuppressUnmanagedCodeSecurity] | 1251 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshClearTCCache"), SuppressUnmanagedCodeSecurity] |
1251 | public static extern void GeomTriMeshClearTCCache(IntPtr g); | 1252 | internal static extern void GeomTriMeshClearTCCache(IntPtr g); |
1252 | 1253 | ||
1253 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataCreate"), SuppressUnmanagedCodeSecurity] | 1254 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataCreate"), SuppressUnmanagedCodeSecurity] |
1254 | public static extern IntPtr GeomTriMeshDataCreate(); | 1255 | internal static extern IntPtr GeomTriMeshDataCreate(); |
1255 | 1256 | ||
1256 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataDestroy"), SuppressUnmanagedCodeSecurity] | 1257 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataDestroy"), SuppressUnmanagedCodeSecurity] |
1257 | public static extern void GeomTriMeshDataDestroy(IntPtr d); | 1258 | internal static extern void GeomTriMeshDataDestroy(IntPtr d); |
1258 | 1259 | ||
1259 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataGet"), SuppressUnmanagedCodeSecurity] | 1260 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataGet"), SuppressUnmanagedCodeSecurity] |
1260 | public static extern IntPtr GeomTriMeshDataGet(IntPtr d, int data_id); | 1261 | internal static extern IntPtr GeomTriMeshDataGet(IntPtr d, int data_id); |
1261 | 1262 | ||
1262 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataPreprocess"), SuppressUnmanagedCodeSecurity] | 1263 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataPreprocess"), SuppressUnmanagedCodeSecurity] |
1263 | public static extern void GeomTriMeshDataPreprocess(IntPtr d); | 1264 | internal static extern void GeomTriMeshDataPreprocess(IntPtr d); |
1264 | 1265 | ||
1265 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataSet"), SuppressUnmanagedCodeSecurity] | 1266 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataSet"), SuppressUnmanagedCodeSecurity] |
1266 | public static extern void GeomTriMeshDataSet(IntPtr d, int data_id, IntPtr in_data); | 1267 | internal static extern void GeomTriMeshDataSet(IntPtr d, int data_id, IntPtr in_data); |
1267 | 1268 | ||
1268 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataUpdate"), SuppressUnmanagedCodeSecurity] | 1269 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshDataUpdate"), SuppressUnmanagedCodeSecurity] |
1269 | public static extern void GeomTriMeshDataUpdate(IntPtr d); | 1270 | internal static extern void GeomTriMeshDataUpdate(IntPtr d); |
1270 | 1271 | ||
1271 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshEnableTC"), SuppressUnmanagedCodeSecurity] | 1272 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshEnableTC"), SuppressUnmanagedCodeSecurity] |
1272 | public static extern void GeomTriMeshEnableTC(IntPtr g, int geomClass, bool enable); | 1273 | internal static extern void GeomTriMeshEnableTC(IntPtr g, int geomClass, bool enable); |
1273 | 1274 | ||
1274 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetArrayCallback"), SuppressUnmanagedCodeSecurity] | 1275 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetArrayCallback"), SuppressUnmanagedCodeSecurity] |
1275 | public static extern TriArrayCallback GeomTriMeshGetArrayCallback(IntPtr g); | 1276 | internal static extern TriArrayCallback GeomTriMeshGetArrayCallback(IntPtr g); |
1276 | 1277 | ||
1277 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetCallback"), SuppressUnmanagedCodeSecurity] | 1278 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetCallback"), SuppressUnmanagedCodeSecurity] |
1278 | public static extern TriCallback GeomTriMeshGetCallback(IntPtr g); | 1279 | internal static extern TriCallback GeomTriMeshGetCallback(IntPtr g); |
1279 | 1280 | ||
1280 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetData"), SuppressUnmanagedCodeSecurity] | 1281 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetData"), SuppressUnmanagedCodeSecurity] |
1281 | public static extern IntPtr GeomTriMeshGetData(IntPtr g); | 1282 | internal static extern IntPtr GeomTriMeshGetData(IntPtr g); |
1282 | 1283 | ||
1283 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetLastTransform"), SuppressUnmanagedCodeSecurity] | 1284 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetLastTransform"), SuppressUnmanagedCodeSecurity] |
1284 | public extern unsafe static Matrix4* GeomTriMeshGetLastTransformUnsafe(IntPtr geom); | 1285 | internal extern unsafe static Matrix4* GeomTriMeshGetLastTransformUnsafe(IntPtr geom); |
1285 | public static Matrix4 GeomTriMeshGetLastTransform(IntPtr geom) | 1286 | internal static Matrix4 GeomTriMeshGetLastTransform(IntPtr geom) |
1286 | { | 1287 | { |
1287 | unsafe { return *(GeomTriMeshGetLastTransformUnsafe(geom)); } | 1288 | unsafe { return *(GeomTriMeshGetLastTransformUnsafe(geom)); } |
1288 | } | 1289 | } |
1289 | 1290 | ||
1290 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetPoint"), SuppressUnmanagedCodeSecurity] | 1291 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetPoint"), SuppressUnmanagedCodeSecurity] |
1291 | public extern static void GeomTriMeshGetPoint(IntPtr g, int index, dReal u, dReal v, ref Vector3 outVec); | 1292 | internal extern static void GeomTriMeshGetPoint(IntPtr g, int index, dReal u, dReal v, ref Vector3 outVec); |
1292 | 1293 | ||
1293 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetRayCallback"), SuppressUnmanagedCodeSecurity] | 1294 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetRayCallback"), SuppressUnmanagedCodeSecurity] |
1294 | public static extern TriRayCallback GeomTriMeshGetRayCallback(IntPtr g); | 1295 | internal static extern TriRayCallback GeomTriMeshGetRayCallback(IntPtr g); |
1295 | 1296 | ||
1296 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangle"), SuppressUnmanagedCodeSecurity] | 1297 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangle"), SuppressUnmanagedCodeSecurity] |
1297 | public extern static void GeomTriMeshGetTriangle(IntPtr g, int index, ref Vector3 v0, ref Vector3 v1, ref Vector3 v2); | 1298 | internal extern static void GeomTriMeshGetTriangle(IntPtr g, int index, ref Vector3 v0, ref Vector3 v1, ref Vector3 v2); |
1298 | 1299 | ||
1299 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangleCount"), SuppressUnmanagedCodeSecurity] | 1300 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriangleCount"), SuppressUnmanagedCodeSecurity] |
1300 | public extern static int GeomTriMeshGetTriangleCount(IntPtr g); | 1301 | internal extern static int GeomTriMeshGetTriangleCount(IntPtr g); |
1301 | 1302 | ||
1302 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriMeshDataID"), SuppressUnmanagedCodeSecurity] | 1303 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshGetTriMeshDataID"), SuppressUnmanagedCodeSecurity] |
1303 | public static extern IntPtr GeomTriMeshGetTriMeshDataID(IntPtr g); | 1304 | internal static extern IntPtr GeomTriMeshGetTriMeshDataID(IntPtr g); |
1304 | 1305 | ||
1305 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshIsTCEnabled"), SuppressUnmanagedCodeSecurity] | 1306 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshIsTCEnabled"), SuppressUnmanagedCodeSecurity] |
1306 | public static extern bool GeomTriMeshIsTCEnabled(IntPtr g, int geomClass); | 1307 | internal static extern bool GeomTriMeshIsTCEnabled(IntPtr g, int geomClass); |
1307 | 1308 | ||
1308 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetArrayCallback"), SuppressUnmanagedCodeSecurity] | 1309 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetArrayCallback"), SuppressUnmanagedCodeSecurity] |
1309 | public static extern void GeomTriMeshSetArrayCallback(IntPtr g, TriArrayCallback arrayCallback); | 1310 | internal static extern void GeomTriMeshSetArrayCallback(IntPtr g, TriArrayCallback arrayCallback); |
1310 | 1311 | ||
1311 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetCallback"), SuppressUnmanagedCodeSecurity] | 1312 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetCallback"), SuppressUnmanagedCodeSecurity] |
1312 | public static extern void GeomTriMeshSetCallback(IntPtr g, TriCallback callback); | 1313 | internal static extern void GeomTriMeshSetCallback(IntPtr g, TriCallback callback); |
1313 | 1314 | ||
1314 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetData"), SuppressUnmanagedCodeSecurity] | 1315 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetData"), SuppressUnmanagedCodeSecurity] |
1315 | public static extern void GeomTriMeshSetData(IntPtr g, IntPtr data); | 1316 | internal static extern void GeomTriMeshSetData(IntPtr g, IntPtr data); |
1316 | 1317 | ||
1317 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] | 1318 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] |
1318 | public static extern void GeomTriMeshSetLastTransform(IntPtr g, ref Matrix4 last_trans); | 1319 | internal static extern void GeomTriMeshSetLastTransform(IntPtr g, ref Matrix4 last_trans); |
1319 | 1320 | ||
1320 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] | 1321 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetLastTransform"), SuppressUnmanagedCodeSecurity] |
1321 | public static extern void GeomTriMeshSetLastTransform(IntPtr g, ref dReal M00); | 1322 | internal static extern void GeomTriMeshSetLastTransform(IntPtr g, ref dReal M00); |
1322 | 1323 | ||
1323 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetRayCallback"), SuppressUnmanagedCodeSecurity] | 1324 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGeomTriMeshSetRayCallback"), SuppressUnmanagedCodeSecurity] |
1324 | public static extern void GeomTriMeshSetRayCallback(IntPtr g, TriRayCallback callback); | 1325 | internal static extern void GeomTriMeshSetRayCallback(IntPtr g, TriRayCallback callback); |
1325 | 1326 | ||
1326 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGetConfiguration"), SuppressUnmanagedCodeSecurity] | 1327 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dGetConfiguration"), SuppressUnmanagedCodeSecurity] |
1327 | public static extern IntPtr iGetConfiguration(); | 1328 | internal static extern IntPtr iGetConfiguration(); |
1328 | 1329 | ||
1329 | public static string GetConfiguration() | 1330 | internal static string GetConfiguration() |
1330 | { | 1331 | { |
1331 | IntPtr ptr = iGetConfiguration(); | 1332 | IntPtr ptr = iGetConfiguration(); |
1332 | string s = Marshal.PtrToStringAnsi(ptr); | 1333 | string s = Marshal.PtrToStringAnsi(ptr); |
@@ -1334,691 +1335,688 @@ namespace OdeAPI | |||
1334 | } | 1335 | } |
1335 | 1336 | ||
1336 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1337 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1337 | public static extern IntPtr HashSpaceCreate(IntPtr space); | 1338 | internal static extern IntPtr HashSpaceCreate(IntPtr space); |
1338 | 1339 | ||
1339 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceGetLevels"), SuppressUnmanagedCodeSecurity] | 1340 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceGetLevels"), SuppressUnmanagedCodeSecurity] |
1340 | public static extern void HashSpaceGetLevels(IntPtr space, out int minlevel, out int maxlevel); | 1341 | internal static extern void HashSpaceGetLevels(IntPtr space, out int minlevel, out int maxlevel); |
1341 | 1342 | ||
1342 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceSetLevels"), SuppressUnmanagedCodeSecurity] | 1343 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dHashSpaceSetLevels"), SuppressUnmanagedCodeSecurity] |
1343 | public static extern void HashSpaceSetLevels(IntPtr space, int minlevel, int maxlevel); | 1344 | internal static extern void HashSpaceSetLevels(IntPtr space, int minlevel, int maxlevel); |
1344 | 1345 | ||
1345 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInfiniteAABB"), SuppressUnmanagedCodeSecurity] | 1346 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInfiniteAABB"), SuppressUnmanagedCodeSecurity] |
1346 | public static extern void InfiniteAABB(IntPtr geom, out AABB aabb); | 1347 | internal static extern void InfiniteAABB(IntPtr geom, out AABB aabb); |
1347 | 1348 | ||
1348 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE"), SuppressUnmanagedCodeSecurity] | 1349 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE"), SuppressUnmanagedCodeSecurity] |
1349 | public static extern void InitODE(); | 1350 | internal static extern void InitODE(); |
1350 | 1351 | ||
1351 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE2"), SuppressUnmanagedCodeSecurity] | 1352 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInitODE2"), SuppressUnmanagedCodeSecurity] |
1352 | public static extern int InitODE2(uint ODEInitFlags); | 1353 | internal static extern int InitODE2(uint ODEInitFlags); |
1353 | 1354 | ||
1354 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dIsPositiveDefinite"), SuppressUnmanagedCodeSecurity] | 1355 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dIsPositiveDefinite"), SuppressUnmanagedCodeSecurity] |
1355 | public static extern int IsPositiveDefinite(ref dReal A, int n); | 1356 | internal static extern int IsPositiveDefinite(ref dReal A, int n); |
1356 | 1357 | ||
1357 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInvertPDMatrix"), SuppressUnmanagedCodeSecurity] | 1358 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dInvertPDMatrix"), SuppressUnmanagedCodeSecurity] |
1358 | public static extern int InvertPDMatrix(ref dReal A, out dReal Ainv, int n); | 1359 | internal static extern int InvertPDMatrix(ref dReal A, out dReal Ainv, int n); |
1359 | 1360 | ||
1360 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddAMotorTorques"), SuppressUnmanagedCodeSecurity] | 1361 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddAMotorTorques"), SuppressUnmanagedCodeSecurity] |
1361 | public static extern void JointAddAMotorTorques(IntPtr joint, dReal torque1, dReal torque2, dReal torque3); | 1362 | internal static extern void JointAddAMotorTorques(IntPtr joint, dReal torque1, dReal torque2, dReal torque3); |
1362 | 1363 | ||
1363 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHingeTorque"), SuppressUnmanagedCodeSecurity] | 1364 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHingeTorque"), SuppressUnmanagedCodeSecurity] |
1364 | public static extern void JointAddHingeTorque(IntPtr joint, dReal torque); | 1365 | internal static extern void JointAddHingeTorque(IntPtr joint, dReal torque); |
1365 | 1366 | ||
1366 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHinge2Torque"), SuppressUnmanagedCodeSecurity] | 1367 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddHinge2Torque"), SuppressUnmanagedCodeSecurity] |
1367 | public static extern void JointAddHinge2Torques(IntPtr joint, dReal torque1, dReal torque2); | 1368 | internal static extern void JointAddHinge2Torques(IntPtr joint, dReal torque1, dReal torque2); |
1368 | 1369 | ||
1369 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddPRTorque"), SuppressUnmanagedCodeSecurity] | 1370 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddPRTorque"), SuppressUnmanagedCodeSecurity] |
1370 | public static extern void JointAddPRTorque(IntPtr joint, dReal torque); | 1371 | internal static extern void JointAddPRTorque(IntPtr joint, dReal torque); |
1371 | 1372 | ||
1372 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddUniversalTorque"), SuppressUnmanagedCodeSecurity] | 1373 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddUniversalTorque"), SuppressUnmanagedCodeSecurity] |
1373 | public static extern void JointAddUniversalTorques(IntPtr joint, dReal torque1, dReal torque2); | 1374 | internal static extern void JointAddUniversalTorques(IntPtr joint, dReal torque1, dReal torque2); |
1374 | 1375 | ||
1375 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddSliderForce"), SuppressUnmanagedCodeSecurity] | 1376 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAddSliderForce"), SuppressUnmanagedCodeSecurity] |
1376 | public static extern void JointAddSliderForce(IntPtr joint, dReal force); | 1377 | internal static extern void JointAddSliderForce(IntPtr joint, dReal force); |
1377 | 1378 | ||
1378 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAttach"), SuppressUnmanagedCodeSecurity] | 1379 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointAttach"), SuppressUnmanagedCodeSecurity] |
1379 | public static extern void JointAttach(IntPtr joint, IntPtr body1, IntPtr body2); | 1380 | internal static extern void JointAttach(IntPtr joint, IntPtr body1, IntPtr body2); |
1380 | 1381 | ||
1381 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateAMotor"), SuppressUnmanagedCodeSecurity] | 1382 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateAMotor"), SuppressUnmanagedCodeSecurity] |
1382 | public static extern IntPtr JointCreateAMotor(IntPtr world, IntPtr group); | 1383 | internal static extern IntPtr JointCreateAMotor(IntPtr world, IntPtr group); |
1383 | 1384 | ||
1384 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateBall"), SuppressUnmanagedCodeSecurity] | 1385 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateBall"), SuppressUnmanagedCodeSecurity] |
1385 | public static extern IntPtr JointCreateBall(IntPtr world, IntPtr group); | 1386 | internal static extern IntPtr JointCreateBall(IntPtr world, IntPtr group); |
1386 | 1387 | ||
1387 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] | 1388 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] |
1388 | public static extern IntPtr JointCreateContact(IntPtr world, IntPtr group, ref Contact contact); | 1389 | internal static extern IntPtr JointCreateContact(IntPtr world, IntPtr group, ref Contact contact); |
1389 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] | 1390 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateContact"), SuppressUnmanagedCodeSecurity] |
1390 | public static extern IntPtr JointCreateContactPtr(IntPtr world, IntPtr group, IntPtr contact); | 1391 | internal static extern IntPtr JointCreateContactPtr(IntPtr world, IntPtr group, IntPtr contact); |
1391 | 1392 | ||
1392 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateFixed"), SuppressUnmanagedCodeSecurity] | 1393 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateFixed"), SuppressUnmanagedCodeSecurity] |
1393 | public static extern IntPtr JointCreateFixed(IntPtr world, IntPtr group); | 1394 | internal static extern IntPtr JointCreateFixed(IntPtr world, IntPtr group); |
1394 | 1395 | ||
1395 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge"), SuppressUnmanagedCodeSecurity] | 1396 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge"), SuppressUnmanagedCodeSecurity] |
1396 | public static extern IntPtr JointCreateHinge(IntPtr world, IntPtr group); | 1397 | internal static extern IntPtr JointCreateHinge(IntPtr world, IntPtr group); |
1397 | 1398 | ||
1398 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge2"), SuppressUnmanagedCodeSecurity] | 1399 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateHinge2"), SuppressUnmanagedCodeSecurity] |
1399 | public static extern IntPtr JointCreateHinge2(IntPtr world, IntPtr group); | 1400 | internal static extern IntPtr JointCreateHinge2(IntPtr world, IntPtr group); |
1400 | 1401 | ||
1401 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateLMotor"), SuppressUnmanagedCodeSecurity] | 1402 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateLMotor"), SuppressUnmanagedCodeSecurity] |
1402 | public static extern IntPtr JointCreateLMotor(IntPtr world, IntPtr group); | 1403 | internal static extern IntPtr JointCreateLMotor(IntPtr world, IntPtr group); |
1403 | 1404 | ||
1404 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateNull"), SuppressUnmanagedCodeSecurity] | 1405 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateNull"), SuppressUnmanagedCodeSecurity] |
1405 | public static extern IntPtr JointCreateNull(IntPtr world, IntPtr group); | 1406 | internal static extern IntPtr JointCreateNull(IntPtr world, IntPtr group); |
1406 | 1407 | ||
1407 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePR"), SuppressUnmanagedCodeSecurity] | 1408 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePR"), SuppressUnmanagedCodeSecurity] |
1408 | public static extern IntPtr JointCreatePR(IntPtr world, IntPtr group); | 1409 | internal static extern IntPtr JointCreatePR(IntPtr world, IntPtr group); |
1409 | 1410 | ||
1410 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePlane2D"), SuppressUnmanagedCodeSecurity] | 1411 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreatePlane2D"), SuppressUnmanagedCodeSecurity] |
1411 | public static extern IntPtr JointCreatePlane2D(IntPtr world, IntPtr group); | 1412 | internal static extern IntPtr JointCreatePlane2D(IntPtr world, IntPtr group); |
1412 | 1413 | ||
1413 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateSlider"), SuppressUnmanagedCodeSecurity] | 1414 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateSlider"), SuppressUnmanagedCodeSecurity] |
1414 | public static extern IntPtr JointCreateSlider(IntPtr world, IntPtr group); | 1415 | internal static extern IntPtr JointCreateSlider(IntPtr world, IntPtr group); |
1415 | 1416 | ||
1416 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateUniversal"), SuppressUnmanagedCodeSecurity] | 1417 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointCreateUniversal"), SuppressUnmanagedCodeSecurity] |
1417 | public static extern IntPtr JointCreateUniversal(IntPtr world, IntPtr group); | 1418 | internal static extern IntPtr JointCreateUniversal(IntPtr world, IntPtr group); |
1418 | 1419 | ||
1419 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointDestroy"), SuppressUnmanagedCodeSecurity] | 1420 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointDestroy"), SuppressUnmanagedCodeSecurity] |
1420 | public static extern void JointDestroy(IntPtr j); | 1421 | internal static extern void JointDestroy(IntPtr j); |
1421 | 1422 | ||
1422 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngle"), SuppressUnmanagedCodeSecurity] | 1423 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngle"), SuppressUnmanagedCodeSecurity] |
1423 | public static extern dReal JointGetAMotorAngle(IntPtr j, int anum); | 1424 | internal static extern dReal JointGetAMotorAngle(IntPtr j, int anum); |
1424 | 1425 | ||
1425 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngleRate"), SuppressUnmanagedCodeSecurity] | 1426 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAngleRate"), SuppressUnmanagedCodeSecurity] |
1426 | public static extern dReal JointGetAMotorAngleRate(IntPtr j, int anum); | 1427 | internal static extern dReal JointGetAMotorAngleRate(IntPtr j, int anum); |
1427 | 1428 | ||
1428 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxis"), SuppressUnmanagedCodeSecurity] | 1429 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxis"), SuppressUnmanagedCodeSecurity] |
1429 | public static extern void JointGetAMotorAxis(IntPtr j, int anum, out Vector3 result); | 1430 | internal static extern void JointGetAMotorAxis(IntPtr j, int anum, out Vector3 result); |
1430 | 1431 | ||
1431 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxisRel"), SuppressUnmanagedCodeSecurity] | 1432 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorAxisRel"), SuppressUnmanagedCodeSecurity] |
1432 | public static extern int JointGetAMotorAxisRel(IntPtr j, int anum); | 1433 | internal static extern int JointGetAMotorAxisRel(IntPtr j, int anum); |
1433 | 1434 | ||
1434 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorMode"), SuppressUnmanagedCodeSecurity] | 1435 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorMode"), SuppressUnmanagedCodeSecurity] |
1435 | public static extern int JointGetAMotorMode(IntPtr j); | 1436 | internal static extern int JointGetAMotorMode(IntPtr j); |
1436 | 1437 | ||
1437 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1438 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1438 | public static extern int JointGetAMotorNumAxes(IntPtr j); | 1439 | internal static extern int JointGetAMotorNumAxes(IntPtr j); |
1439 | 1440 | ||
1440 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorParam"), SuppressUnmanagedCodeSecurity] | 1441 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetAMotorParam"), SuppressUnmanagedCodeSecurity] |
1441 | public static extern dReal JointGetAMotorParam(IntPtr j, int parameter); | 1442 | internal static extern dReal JointGetAMotorParam(IntPtr j, int parameter); |
1442 | 1443 | ||
1443 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor"), SuppressUnmanagedCodeSecurity] | 1444 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor"), SuppressUnmanagedCodeSecurity] |
1444 | public static extern void JointGetBallAnchor(IntPtr j, out Vector3 result); | 1445 | internal static extern void JointGetBallAnchor(IntPtr j, out Vector3 result); |
1445 | 1446 | ||
1446 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor2"), SuppressUnmanagedCodeSecurity] | 1447 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBallAnchor2"), SuppressUnmanagedCodeSecurity] |
1447 | public static extern void JointGetBallAnchor2(IntPtr j, out Vector3 result); | 1448 | internal static extern void JointGetBallAnchor2(IntPtr j, out Vector3 result); |
1448 | 1449 | ||
1449 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBody"), SuppressUnmanagedCodeSecurity] | 1450 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetBody"), SuppressUnmanagedCodeSecurity] |
1450 | public static extern IntPtr JointGetBody(IntPtr j); | 1451 | internal static extern IntPtr JointGetBody(IntPtr j); |
1451 | 1452 | ||
1452 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetData"), SuppressUnmanagedCodeSecurity] | 1453 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetData"), SuppressUnmanagedCodeSecurity] |
1453 | public static extern IntPtr JointGetData(IntPtr j); | 1454 | internal static extern IntPtr JointGetData(IntPtr j); |
1454 | 1455 | ||
1455 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetFeedback"), SuppressUnmanagedCodeSecurity] | 1456 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetFeedback"), SuppressUnmanagedCodeSecurity] |
1456 | public extern unsafe static JointFeedback* JointGetFeedbackUnsafe(IntPtr j); | 1457 | internal extern unsafe static JointFeedback* JointGetFeedbackUnsafe(IntPtr j); |
1457 | public static JointFeedback JointGetFeedback(IntPtr j) | 1458 | internal static JointFeedback JointGetFeedback(IntPtr j) |
1458 | { | 1459 | { |
1459 | unsafe { return *(JointGetFeedbackUnsafe(j)); } | 1460 | unsafe { return *(JointGetFeedbackUnsafe(j)); } |
1460 | } | 1461 | } |
1461 | 1462 | ||
1462 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor"), SuppressUnmanagedCodeSecurity] | 1463 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor"), SuppressUnmanagedCodeSecurity] |
1463 | public static extern void JointGetHingeAnchor(IntPtr j, out Vector3 result); | 1464 | internal static extern void JointGetHingeAnchor(IntPtr j, out Vector3 result); |
1464 | 1465 | ||
1465 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngle"), SuppressUnmanagedCodeSecurity] | 1466 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngle"), SuppressUnmanagedCodeSecurity] |
1466 | public static extern dReal JointGetHingeAngle(IntPtr j); | 1467 | internal static extern dReal JointGetHingeAngle(IntPtr j); |
1467 | 1468 | ||
1468 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngleRate"), SuppressUnmanagedCodeSecurity] | 1469 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAngleRate"), SuppressUnmanagedCodeSecurity] |
1469 | public static extern dReal JointGetHingeAngleRate(IntPtr j); | 1470 | internal static extern dReal JointGetHingeAngleRate(IntPtr j); |
1470 | 1471 | ||
1471 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAxis"), SuppressUnmanagedCodeSecurity] | 1472 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAxis"), SuppressUnmanagedCodeSecurity] |
1472 | public static extern void JointGetHingeAxis(IntPtr j, out Vector3 result); | 1473 | internal static extern void JointGetHingeAxis(IntPtr j, out Vector3 result); |
1473 | 1474 | ||
1474 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeParam"), SuppressUnmanagedCodeSecurity] | 1475 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeParam"), SuppressUnmanagedCodeSecurity] |
1475 | public static extern dReal JointGetHingeParam(IntPtr j, int parameter); | 1476 | internal static extern dReal JointGetHingeParam(IntPtr j, int parameter); |
1476 | 1477 | ||
1477 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1"), SuppressUnmanagedCodeSecurity] | 1478 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1"), SuppressUnmanagedCodeSecurity] |
1478 | public static extern dReal JointGetHinge2Angle1(IntPtr j); | 1479 | internal static extern dReal JointGetHinge2Angle1(IntPtr j); |
1479 | 1480 | ||
1480 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1Rate"), SuppressUnmanagedCodeSecurity] | 1481 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle1Rate"), SuppressUnmanagedCodeSecurity] |
1481 | public static extern dReal JointGetHinge2Angle1Rate(IntPtr j); | 1482 | internal static extern dReal JointGetHinge2Angle1Rate(IntPtr j); |
1482 | 1483 | ||
1483 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle2Rate"), SuppressUnmanagedCodeSecurity] | 1484 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Angle2Rate"), SuppressUnmanagedCodeSecurity] |
1484 | public static extern dReal JointGetHinge2Angle2Rate(IntPtr j); | 1485 | internal static extern dReal JointGetHinge2Angle2Rate(IntPtr j); |
1485 | 1486 | ||
1486 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor2"), SuppressUnmanagedCodeSecurity] | 1487 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHingeAnchor2"), SuppressUnmanagedCodeSecurity] |
1487 | public static extern void JointGetHingeAnchor2(IntPtr j, out Vector3 result); | 1488 | internal static extern void JointGetHingeAnchor2(IntPtr j, out Vector3 result); |
1488 | 1489 | ||
1489 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor"), SuppressUnmanagedCodeSecurity] | 1490 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor"), SuppressUnmanagedCodeSecurity] |
1490 | public static extern void JointGetHinge2Anchor(IntPtr j, out Vector3 result); | 1491 | internal static extern void JointGetHinge2Anchor(IntPtr j, out Vector3 result); |
1491 | 1492 | ||
1492 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor2"), SuppressUnmanagedCodeSecurity] | 1493 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Anchor2"), SuppressUnmanagedCodeSecurity] |
1493 | public static extern void JointGetHinge2Anchor2(IntPtr j, out Vector3 result); | 1494 | internal static extern void JointGetHinge2Anchor2(IntPtr j, out Vector3 result); |
1494 | 1495 | ||
1495 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis1"), SuppressUnmanagedCodeSecurity] | 1496 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis1"), SuppressUnmanagedCodeSecurity] |
1496 | public static extern void JointGetHinge2Axis1(IntPtr j, out Vector3 result); | 1497 | internal static extern void JointGetHinge2Axis1(IntPtr j, out Vector3 result); |
1497 | 1498 | ||
1498 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis2"), SuppressUnmanagedCodeSecurity] | 1499 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Axis2"), SuppressUnmanagedCodeSecurity] |
1499 | public static extern void JointGetHinge2Axis2(IntPtr j, out Vector3 result); | 1500 | internal static extern void JointGetHinge2Axis2(IntPtr j, out Vector3 result); |
1500 | 1501 | ||
1501 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Param"), SuppressUnmanagedCodeSecurity] | 1502 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetHinge2Param"), SuppressUnmanagedCodeSecurity] |
1502 | public static extern dReal JointGetHinge2Param(IntPtr j, int parameter); | 1503 | internal static extern dReal JointGetHinge2Param(IntPtr j, int parameter); |
1503 | 1504 | ||
1504 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorAxis"), SuppressUnmanagedCodeSecurity] | 1505 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorAxis"), SuppressUnmanagedCodeSecurity] |
1505 | public static extern void JointGetLMotorAxis(IntPtr j, int anum, out Vector3 result); | 1506 | internal static extern void JointGetLMotorAxis(IntPtr j, int anum, out Vector3 result); |
1506 | 1507 | ||
1507 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1508 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1508 | public static extern int JointGetLMotorNumAxes(IntPtr j); | 1509 | internal static extern int JointGetLMotorNumAxes(IntPtr j); |
1509 | 1510 | ||
1510 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorParam"), SuppressUnmanagedCodeSecurity] | 1511 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetLMotorParam"), SuppressUnmanagedCodeSecurity] |
1511 | public static extern dReal JointGetLMotorParam(IntPtr j, int parameter); | 1512 | internal static extern dReal JointGetLMotorParam(IntPtr j, int parameter); |
1512 | 1513 | ||
1513 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAnchor"), SuppressUnmanagedCodeSecurity] | 1514 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAnchor"), SuppressUnmanagedCodeSecurity] |
1514 | public static extern void JointGetPRAnchor(IntPtr j, out Vector3 result); | 1515 | internal static extern void JointGetPRAnchor(IntPtr j, out Vector3 result); |
1515 | 1516 | ||
1516 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis1"), SuppressUnmanagedCodeSecurity] | 1517 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis1"), SuppressUnmanagedCodeSecurity] |
1517 | public static extern void JointGetPRAxis1(IntPtr j, out Vector3 result); | 1518 | internal static extern void JointGetPRAxis1(IntPtr j, out Vector3 result); |
1518 | 1519 | ||
1519 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis2"), SuppressUnmanagedCodeSecurity] | 1520 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRAxis2"), SuppressUnmanagedCodeSecurity] |
1520 | public static extern void JointGetPRAxis2(IntPtr j, out Vector3 result); | 1521 | internal static extern void JointGetPRAxis2(IntPtr j, out Vector3 result); |
1521 | 1522 | ||
1522 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRParam"), SuppressUnmanagedCodeSecurity] | 1523 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRParam"), SuppressUnmanagedCodeSecurity] |
1523 | public static extern dReal JointGetPRParam(IntPtr j, int parameter); | 1524 | internal static extern dReal JointGetPRParam(IntPtr j, int parameter); |
1524 | 1525 | ||
1525 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPosition"), SuppressUnmanagedCodeSecurity] | 1526 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPosition"), SuppressUnmanagedCodeSecurity] |
1526 | public static extern dReal JointGetPRPosition(IntPtr j); | 1527 | internal static extern dReal JointGetPRPosition(IntPtr j); |
1527 | 1528 | ||
1528 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPositionRate"), SuppressUnmanagedCodeSecurity] | 1529 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetPRPositionRate"), SuppressUnmanagedCodeSecurity] |
1529 | public static extern dReal JointGetPRPositionRate(IntPtr j); | 1530 | internal static extern dReal JointGetPRPositionRate(IntPtr j); |
1530 | 1531 | ||
1531 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderAxis"), SuppressUnmanagedCodeSecurity] | 1532 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderAxis"), SuppressUnmanagedCodeSecurity] |
1532 | public static extern void JointGetSliderAxis(IntPtr j, out Vector3 result); | 1533 | internal static extern void JointGetSliderAxis(IntPtr j, out Vector3 result); |
1533 | 1534 | ||
1534 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderParam"), SuppressUnmanagedCodeSecurity] | 1535 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderParam"), SuppressUnmanagedCodeSecurity] |
1535 | public static extern dReal JointGetSliderParam(IntPtr j, int parameter); | 1536 | internal static extern dReal JointGetSliderParam(IntPtr j, int parameter); |
1536 | 1537 | ||
1537 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPosition"), SuppressUnmanagedCodeSecurity] | 1538 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPosition"), SuppressUnmanagedCodeSecurity] |
1538 | public static extern dReal JointGetSliderPosition(IntPtr j); | 1539 | internal static extern dReal JointGetSliderPosition(IntPtr j); |
1539 | 1540 | ||
1540 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPositionRate"), SuppressUnmanagedCodeSecurity] | 1541 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetSliderPositionRate"), SuppressUnmanagedCodeSecurity] |
1541 | public static extern dReal JointGetSliderPositionRate(IntPtr j); | 1542 | internal static extern dReal JointGetSliderPositionRate(IntPtr j); |
1542 | 1543 | ||
1543 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetType"), SuppressUnmanagedCodeSecurity] | 1544 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetType"), SuppressUnmanagedCodeSecurity] |
1544 | public static extern JointType JointGetType(IntPtr j); | 1545 | internal static extern JointType JointGetType(IntPtr j); |
1545 | 1546 | ||
1546 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor"), SuppressUnmanagedCodeSecurity] | 1547 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor"), SuppressUnmanagedCodeSecurity] |
1547 | public static extern void JointGetUniversalAnchor(IntPtr j, out Vector3 result); | 1548 | internal static extern void JointGetUniversalAnchor(IntPtr j, out Vector3 result); |
1548 | 1549 | ||
1549 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor2"), SuppressUnmanagedCodeSecurity] | 1550 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAnchor2"), SuppressUnmanagedCodeSecurity] |
1550 | public static extern void JointGetUniversalAnchor2(IntPtr j, out Vector3 result); | 1551 | internal static extern void JointGetUniversalAnchor2(IntPtr j, out Vector3 result); |
1551 | 1552 | ||
1552 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1"), SuppressUnmanagedCodeSecurity] | 1553 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1"), SuppressUnmanagedCodeSecurity] |
1553 | public static extern dReal JointGetUniversalAngle1(IntPtr j); | 1554 | internal static extern dReal JointGetUniversalAngle1(IntPtr j); |
1554 | 1555 | ||
1555 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1Rate"), SuppressUnmanagedCodeSecurity] | 1556 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle1Rate"), SuppressUnmanagedCodeSecurity] |
1556 | public static extern dReal JointGetUniversalAngle1Rate(IntPtr j); | 1557 | internal static extern dReal JointGetUniversalAngle1Rate(IntPtr j); |
1557 | 1558 | ||
1558 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2"), SuppressUnmanagedCodeSecurity] | 1559 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2"), SuppressUnmanagedCodeSecurity] |
1559 | public static extern dReal JointGetUniversalAngle2(IntPtr j); | 1560 | internal static extern dReal JointGetUniversalAngle2(IntPtr j); |
1560 | 1561 | ||
1561 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2Rate"), SuppressUnmanagedCodeSecurity] | 1562 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngle2Rate"), SuppressUnmanagedCodeSecurity] |
1562 | public static extern dReal JointGetUniversalAngle2Rate(IntPtr j); | 1563 | internal static extern dReal JointGetUniversalAngle2Rate(IntPtr j); |
1563 | 1564 | ||
1564 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngles"), SuppressUnmanagedCodeSecurity] | 1565 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAngles"), SuppressUnmanagedCodeSecurity] |
1565 | public static extern void JointGetUniversalAngles(IntPtr j, out dReal angle1, out dReal angle2); | 1566 | internal static extern void JointGetUniversalAngles(IntPtr j, out dReal angle1, out dReal angle2); |
1566 | 1567 | ||
1567 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis1"), SuppressUnmanagedCodeSecurity] | 1568 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis1"), SuppressUnmanagedCodeSecurity] |
1568 | public static extern void JointGetUniversalAxis1(IntPtr j, out Vector3 result); | 1569 | internal static extern void JointGetUniversalAxis1(IntPtr j, out Vector3 result); |
1569 | 1570 | ||
1570 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis2"), SuppressUnmanagedCodeSecurity] | 1571 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalAxis2"), SuppressUnmanagedCodeSecurity] |
1571 | public static extern void JointGetUniversalAxis2(IntPtr j, out Vector3 result); | 1572 | internal static extern void JointGetUniversalAxis2(IntPtr j, out Vector3 result); |
1572 | 1573 | ||
1573 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalParam"), SuppressUnmanagedCodeSecurity] | 1574 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGetUniversalParam"), SuppressUnmanagedCodeSecurity] |
1574 | public static extern dReal JointGetUniversalParam(IntPtr j, int parameter); | 1575 | internal static extern dReal JointGetUniversalParam(IntPtr j, int parameter); |
1575 | 1576 | ||
1576 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupCreate"), SuppressUnmanagedCodeSecurity] | 1577 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupCreate"), SuppressUnmanagedCodeSecurity] |
1577 | public static extern IntPtr JointGroupCreate(int max_size); | 1578 | internal static extern IntPtr JointGroupCreate(int max_size); |
1578 | 1579 | ||
1579 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupDestroy"), SuppressUnmanagedCodeSecurity] | 1580 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupDestroy"), SuppressUnmanagedCodeSecurity] |
1580 | public static extern void JointGroupDestroy(IntPtr group); | 1581 | internal static extern void JointGroupDestroy(IntPtr group); |
1581 | 1582 | ||
1582 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupEmpty"), SuppressUnmanagedCodeSecurity] | 1583 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointGroupEmpty"), SuppressUnmanagedCodeSecurity] |
1583 | public static extern void JointGroupEmpty(IntPtr group); | 1584 | internal static extern void JointGroupEmpty(IntPtr group); |
1584 | 1585 | ||
1585 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAngle"), SuppressUnmanagedCodeSecurity] | 1586 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAngle"), SuppressUnmanagedCodeSecurity] |
1586 | public static extern void JointSetAMotorAngle(IntPtr j, int anum, dReal angle); | 1587 | internal static extern void JointSetAMotorAngle(IntPtr j, int anum, dReal angle); |
1587 | 1588 | ||
1588 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAxis"), SuppressUnmanagedCodeSecurity] | 1589 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorAxis"), SuppressUnmanagedCodeSecurity] |
1589 | public static extern void JointSetAMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); | 1590 | internal static extern void JointSetAMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); |
1590 | 1591 | ||
1591 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorMode"), SuppressUnmanagedCodeSecurity] | 1592 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorMode"), SuppressUnmanagedCodeSecurity] |
1592 | public static extern void JointSetAMotorMode(IntPtr j, int mode); | 1593 | internal static extern void JointSetAMotorMode(IntPtr j, int mode); |
1593 | 1594 | ||
1594 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1595 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1595 | public static extern void JointSetAMotorNumAxes(IntPtr group, int num); | 1596 | internal static extern void JointSetAMotorNumAxes(IntPtr group, int num); |
1596 | 1597 | ||
1597 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorParam"), SuppressUnmanagedCodeSecurity] | 1598 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetAMotorParam"), SuppressUnmanagedCodeSecurity] |
1598 | public static extern void JointSetAMotorParam(IntPtr group, int parameter, dReal value); | 1599 | internal static extern void JointSetAMotorParam(IntPtr group, int parameter, dReal value); |
1599 | 1600 | ||
1600 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor"), SuppressUnmanagedCodeSecurity] | 1601 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor"), SuppressUnmanagedCodeSecurity] |
1601 | public static extern void JointSetBallAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1602 | internal static extern void JointSetBallAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1602 | 1603 | ||
1603 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor2"), SuppressUnmanagedCodeSecurity] | 1604 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetBallAnchor2"), SuppressUnmanagedCodeSecurity] |
1604 | public static extern void JointSetBallAnchor2(IntPtr j, dReal x, dReal y, dReal z); | 1605 | internal static extern void JointSetBallAnchor2(IntPtr j, dReal x, dReal y, dReal z); |
1605 | 1606 | ||
1606 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetData"), SuppressUnmanagedCodeSecurity] | 1607 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetData"), SuppressUnmanagedCodeSecurity] |
1607 | public static extern void JointSetData(IntPtr j, IntPtr data); | 1608 | internal static extern void JointSetData(IntPtr j, IntPtr data); |
1608 | 1609 | ||
1609 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFeedback"), SuppressUnmanagedCodeSecurity] | 1610 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFeedback"), SuppressUnmanagedCodeSecurity] |
1610 | public static extern void JointSetFeedback(IntPtr j, out JointFeedback feedback); | 1611 | internal static extern void JointSetFeedback(IntPtr j, out JointFeedback feedback); |
1611 | 1612 | ||
1612 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFixed"), SuppressUnmanagedCodeSecurity] | 1613 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetFixed"), SuppressUnmanagedCodeSecurity] |
1613 | public static extern void JointSetFixed(IntPtr j); | 1614 | internal static extern void JointSetFixed(IntPtr j); |
1614 | 1615 | ||
1615 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchor"), SuppressUnmanagedCodeSecurity] | 1616 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchor"), SuppressUnmanagedCodeSecurity] |
1616 | public static extern void JointSetHingeAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1617 | internal static extern void JointSetHingeAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1617 | 1618 | ||
1618 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchorDelta"), SuppressUnmanagedCodeSecurity] | 1619 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAnchorDelta"), SuppressUnmanagedCodeSecurity] |
1619 | public static extern void JointSetHingeAnchorDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); | 1620 | internal static extern void JointSetHingeAnchorDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); |
1620 | 1621 | ||
1621 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAxis"), SuppressUnmanagedCodeSecurity] | 1622 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeAxis"), SuppressUnmanagedCodeSecurity] |
1622 | public static extern void JointSetHingeAxis(IntPtr j, dReal x, dReal y, dReal z); | 1623 | internal static extern void JointSetHingeAxis(IntPtr j, dReal x, dReal y, dReal z); |
1623 | 1624 | ||
1624 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeParam"), SuppressUnmanagedCodeSecurity] | 1625 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHingeParam"), SuppressUnmanagedCodeSecurity] |
1625 | public static extern void JointSetHingeParam(IntPtr j, int parameter, dReal value); | 1626 | internal static extern void JointSetHingeParam(IntPtr j, int parameter, dReal value); |
1626 | 1627 | ||
1627 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Anchor"), SuppressUnmanagedCodeSecurity] | 1628 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Anchor"), SuppressUnmanagedCodeSecurity] |
1628 | public static extern void JointSetHinge2Anchor(IntPtr j, dReal x, dReal y, dReal z); | 1629 | internal static extern void JointSetHinge2Anchor(IntPtr j, dReal x, dReal y, dReal z); |
1629 | 1630 | ||
1630 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis1"), SuppressUnmanagedCodeSecurity] | 1631 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis1"), SuppressUnmanagedCodeSecurity] |
1631 | public static extern void JointSetHinge2Axis1(IntPtr j, dReal x, dReal y, dReal z); | 1632 | internal static extern void JointSetHinge2Axis1(IntPtr j, dReal x, dReal y, dReal z); |
1632 | 1633 | ||
1633 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis2"), SuppressUnmanagedCodeSecurity] | 1634 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Axis2"), SuppressUnmanagedCodeSecurity] |
1634 | public static extern void JointSetHinge2Axis2(IntPtr j, dReal x, dReal y, dReal z); | 1635 | internal static extern void JointSetHinge2Axis2(IntPtr j, dReal x, dReal y, dReal z); |
1635 | 1636 | ||
1636 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Param"), SuppressUnmanagedCodeSecurity] | 1637 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetHinge2Param"), SuppressUnmanagedCodeSecurity] |
1637 | public static extern void JointSetHinge2Param(IntPtr j, int parameter, dReal value); | 1638 | internal static extern void JointSetHinge2Param(IntPtr j, int parameter, dReal value); |
1638 | 1639 | ||
1639 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorAxis"), SuppressUnmanagedCodeSecurity] | 1640 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorAxis"), SuppressUnmanagedCodeSecurity] |
1640 | public static extern void JointSetLMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); | 1641 | internal static extern void JointSetLMotorAxis(IntPtr j, int anum, int rel, dReal x, dReal y, dReal z); |
1641 | 1642 | ||
1642 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] | 1643 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorNumAxes"), SuppressUnmanagedCodeSecurity] |
1643 | public static extern void JointSetLMotorNumAxes(IntPtr j, int num); | 1644 | internal static extern void JointSetLMotorNumAxes(IntPtr j, int num); |
1644 | 1645 | ||
1645 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorParam"), SuppressUnmanagedCodeSecurity] | 1646 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetLMotorParam"), SuppressUnmanagedCodeSecurity] |
1646 | public static extern void JointSetLMotorParam(IntPtr j, int parameter, dReal value); | 1647 | internal static extern void JointSetLMotorParam(IntPtr j, int parameter, dReal value); |
1647 | 1648 | ||
1648 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DAngleParam"), SuppressUnmanagedCodeSecurity] | 1649 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DAngleParam"), SuppressUnmanagedCodeSecurity] |
1649 | public static extern void JointSetPlane2DAngleParam(IntPtr j, int parameter, dReal value); | 1650 | internal static extern void JointSetPlane2DAngleParam(IntPtr j, int parameter, dReal value); |
1650 | 1651 | ||
1651 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DXParam"), SuppressUnmanagedCodeSecurity] | 1652 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DXParam"), SuppressUnmanagedCodeSecurity] |
1652 | public static extern void JointSetPlane2DXParam(IntPtr j, int parameter, dReal value); | 1653 | internal static extern void JointSetPlane2DXParam(IntPtr j, int parameter, dReal value); |
1653 | 1654 | ||
1654 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DYParam"), SuppressUnmanagedCodeSecurity] | 1655 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPlane2DYParam"), SuppressUnmanagedCodeSecurity] |
1655 | public static extern void JointSetPlane2DYParam(IntPtr j, int parameter, dReal value); | 1656 | internal static extern void JointSetPlane2DYParam(IntPtr j, int parameter, dReal value); |
1656 | 1657 | ||
1657 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAnchor"), SuppressUnmanagedCodeSecurity] | 1658 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAnchor"), SuppressUnmanagedCodeSecurity] |
1658 | public static extern void JointSetPRAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1659 | internal static extern void JointSetPRAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1659 | 1660 | ||
1660 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis1"), SuppressUnmanagedCodeSecurity] | 1661 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis1"), SuppressUnmanagedCodeSecurity] |
1661 | public static extern void JointSetPRAxis1(IntPtr j, dReal x, dReal y, dReal z); | 1662 | internal static extern void JointSetPRAxis1(IntPtr j, dReal x, dReal y, dReal z); |
1662 | 1663 | ||
1663 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis2"), SuppressUnmanagedCodeSecurity] | 1664 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRAxis2"), SuppressUnmanagedCodeSecurity] |
1664 | public static extern void JointSetPRAxis2(IntPtr j, dReal x, dReal y, dReal z); | 1665 | internal static extern void JointSetPRAxis2(IntPtr j, dReal x, dReal y, dReal z); |
1665 | 1666 | ||
1666 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRParam"), SuppressUnmanagedCodeSecurity] | 1667 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetPRParam"), SuppressUnmanagedCodeSecurity] |
1667 | public static extern void JointSetPRParam(IntPtr j, int parameter, dReal value); | 1668 | internal static extern void JointSetPRParam(IntPtr j, int parameter, dReal value); |
1668 | 1669 | ||
1669 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxis"), SuppressUnmanagedCodeSecurity] | 1670 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxis"), SuppressUnmanagedCodeSecurity] |
1670 | public static extern void JointSetSliderAxis(IntPtr j, dReal x, dReal y, dReal z); | 1671 | internal static extern void JointSetSliderAxis(IntPtr j, dReal x, dReal y, dReal z); |
1671 | 1672 | ||
1672 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxisDelta"), SuppressUnmanagedCodeSecurity] | 1673 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderAxisDelta"), SuppressUnmanagedCodeSecurity] |
1673 | public static extern void JointSetSliderAxisDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); | 1674 | internal static extern void JointSetSliderAxisDelta(IntPtr j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); |
1674 | 1675 | ||
1675 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderParam"), SuppressUnmanagedCodeSecurity] | 1676 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetSliderParam"), SuppressUnmanagedCodeSecurity] |
1676 | public static extern void JointSetSliderParam(IntPtr j, int parameter, dReal value); | 1677 | internal static extern void JointSetSliderParam(IntPtr j, int parameter, dReal value); |
1677 | 1678 | ||
1678 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAnchor"), SuppressUnmanagedCodeSecurity] | 1679 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAnchor"), SuppressUnmanagedCodeSecurity] |
1679 | public static extern void JointSetUniversalAnchor(IntPtr j, dReal x, dReal y, dReal z); | 1680 | internal static extern void JointSetUniversalAnchor(IntPtr j, dReal x, dReal y, dReal z); |
1680 | 1681 | ||
1681 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis1"), SuppressUnmanagedCodeSecurity] | 1682 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis1"), SuppressUnmanagedCodeSecurity] |
1682 | public static extern void JointSetUniversalAxis1(IntPtr j, dReal x, dReal y, dReal z); | 1683 | internal static extern void JointSetUniversalAxis1(IntPtr j, dReal x, dReal y, dReal z); |
1683 | 1684 | ||
1684 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis2"), SuppressUnmanagedCodeSecurity] | 1685 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalAxis2"), SuppressUnmanagedCodeSecurity] |
1685 | public static extern void JointSetUniversalAxis2(IntPtr j, dReal x, dReal y, dReal z); | 1686 | internal static extern void JointSetUniversalAxis2(IntPtr j, dReal x, dReal y, dReal z); |
1686 | 1687 | ||
1687 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalParam"), SuppressUnmanagedCodeSecurity] | 1688 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dJointSetUniversalParam"), SuppressUnmanagedCodeSecurity] |
1688 | public static extern void JointSetUniversalParam(IntPtr j, int parameter, dReal value); | 1689 | internal static extern void JointSetUniversalParam(IntPtr j, int parameter, dReal value); |
1689 | 1690 | ||
1690 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dLDLTAddTL"), SuppressUnmanagedCodeSecurity] | 1691 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dLDLTAddTL"), SuppressUnmanagedCodeSecurity] |
1691 | public static extern void LDLTAddTL(ref dReal L, ref dReal d, ref dReal a, int n, int nskip); | 1692 | internal static extern void LDLTAddTL(ref dReal L, ref dReal d, ref dReal a, int n, int nskip); |
1692 | 1693 | ||
1693 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdd"), SuppressUnmanagedCodeSecurity] | 1694 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdd"), SuppressUnmanagedCodeSecurity] |
1694 | public static extern void MassAdd(ref Mass a, ref Mass b); | 1695 | internal static extern void MassAdd(ref Mass a, ref Mass b); |
1695 | 1696 | ||
1696 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdjust"), SuppressUnmanagedCodeSecurity] | 1697 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassAdjust"), SuppressUnmanagedCodeSecurity] |
1697 | public static extern void MassAdjust(ref Mass m, dReal newmass); | 1698 | internal static extern void MassAdjust(ref Mass m, dReal newmass); |
1698 | 1699 | ||
1699 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassCheck"), SuppressUnmanagedCodeSecurity] | 1700 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassCheck"), SuppressUnmanagedCodeSecurity] |
1700 | public static extern bool MassCheck(ref Mass m); | 1701 | internal static extern bool MassCheck(ref Mass m); |
1701 | 1702 | ||
1702 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] | 1703 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] |
1703 | public static extern void MassRotate(ref Mass mass, ref Matrix3 R); | 1704 | internal static extern void MassRotate(ref Mass mass, ref Matrix3 R); |
1704 | 1705 | ||
1705 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] | 1706 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassRotate"), SuppressUnmanagedCodeSecurity] |
1706 | public static extern void MassRotate(ref Mass mass, ref dReal M00); | 1707 | internal static extern void MassRotate(ref Mass mass, ref dReal M00); |
1707 | 1708 | ||
1708 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBox"), SuppressUnmanagedCodeSecurity] | 1709 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBox"), SuppressUnmanagedCodeSecurity] |
1709 | public static extern void MassSetBox(out Mass mass, dReal density, dReal lx, dReal ly, dReal lz); | 1710 | internal static extern void MassSetBox(out Mass mass, dReal density, dReal lx, dReal ly, dReal lz); |
1710 | 1711 | ||
1711 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBoxTotal"), SuppressUnmanagedCodeSecurity] | 1712 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetBoxTotal"), SuppressUnmanagedCodeSecurity] |
1712 | public static extern void MassSetBoxTotal(out Mass mass, dReal total_mass, dReal lx, dReal ly, dReal lz); | 1713 | internal static extern void MassSetBoxTotal(out Mass mass, dReal total_mass, dReal lx, dReal ly, dReal lz); |
1713 | 1714 | ||
1714 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsule"), SuppressUnmanagedCodeSecurity] | 1715 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsule"), SuppressUnmanagedCodeSecurity] |
1715 | public static extern void MassSetCapsule(out Mass mass, dReal density, int direction, dReal radius, dReal length); | 1716 | internal static extern void MassSetCapsule(out Mass mass, dReal density, int direction, dReal radius, dReal length); |
1716 | 1717 | ||
1717 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsuleTotal"), SuppressUnmanagedCodeSecurity] | 1718 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCapsuleTotal"), SuppressUnmanagedCodeSecurity] |
1718 | public static extern void MassSetCapsuleTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); | 1719 | internal static extern void MassSetCapsuleTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); |
1719 | 1720 | ||
1720 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinder"), SuppressUnmanagedCodeSecurity] | 1721 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinder"), SuppressUnmanagedCodeSecurity] |
1721 | public static extern void MassSetCylinder(out Mass mass, dReal density, int direction, dReal radius, dReal length); | 1722 | internal static extern void MassSetCylinder(out Mass mass, dReal density, int direction, dReal radius, dReal length); |
1722 | 1723 | ||
1723 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinderTotal"), SuppressUnmanagedCodeSecurity] | 1724 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetCylinderTotal"), SuppressUnmanagedCodeSecurity] |
1724 | public static extern void MassSetCylinderTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); | 1725 | internal static extern void MassSetCylinderTotal(out Mass mass, dReal total_mass, int direction, dReal radius, dReal length); |
1725 | 1726 | ||
1726 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetParameters"), SuppressUnmanagedCodeSecurity] | 1727 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetParameters"), SuppressUnmanagedCodeSecurity] |
1727 | public static extern void MassSetParameters(out Mass mass, dReal themass, | 1728 | internal static extern void MassSetParameters(out Mass mass, dReal themass, |
1728 | dReal cgx, dReal cgy, dReal cgz, | 1729 | dReal cgx, dReal cgy, dReal cgz, |
1729 | dReal i11, dReal i22, dReal i33, | 1730 | dReal i11, dReal i22, dReal i33, |
1730 | dReal i12, dReal i13, dReal i23); | 1731 | dReal i12, dReal i13, dReal i23); |
1731 | 1732 | ||
1732 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphere"), SuppressUnmanagedCodeSecurity] | 1733 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphere"), SuppressUnmanagedCodeSecurity] |
1733 | public static extern void MassSetSphere(out Mass mass, dReal density, dReal radius); | 1734 | internal static extern void MassSetSphere(out Mass mass, dReal density, dReal radius); |
1734 | 1735 | ||
1735 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphereTotal"), SuppressUnmanagedCodeSecurity] | 1736 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetSphereTotal"), SuppressUnmanagedCodeSecurity] |
1736 | public static extern void dMassSetSphereTotal(out Mass mass, dReal total_mass, dReal radius); | 1737 | internal static extern void dMassSetSphereTotal(out Mass mass, dReal total_mass, dReal radius); |
1737 | 1738 | ||
1738 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetTrimesh"), SuppressUnmanagedCodeSecurity] | 1739 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetTrimesh"), SuppressUnmanagedCodeSecurity] |
1739 | public static extern void MassSetTrimesh(out Mass mass, dReal density, IntPtr g); | 1740 | internal static extern void MassSetTrimesh(out Mass mass, dReal density, IntPtr g); |
1740 | 1741 | ||
1741 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetZero"), SuppressUnmanagedCodeSecurity] | 1742 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassSetZero"), SuppressUnmanagedCodeSecurity] |
1742 | public static extern void MassSetZero(out Mass mass); | 1743 | internal static extern void MassSetZero(out Mass mass); |
1743 | 1744 | ||
1744 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassTranslate"), SuppressUnmanagedCodeSecurity] | 1745 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMassTranslate"), SuppressUnmanagedCodeSecurity] |
1745 | public static extern void MassTranslate(ref Mass mass, dReal x, dReal y, dReal z); | 1746 | internal static extern void MassTranslate(ref Mass mass, dReal x, dReal y, dReal z); |
1746 | 1747 | ||
1747 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] | 1748 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] |
1748 | public static extern void Multiply0(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); | 1749 | internal static extern void Multiply0(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); |
1749 | 1750 | ||
1750 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] | 1751 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply0"), SuppressUnmanagedCodeSecurity] |
1751 | private static extern void MultiplyiM3V3(out Vector3 vout, ref Matrix3 matrix, ref Vector3 vect,int p, int q, int r); | 1752 | private static extern void MultiplyiM3V3(out Vector3 vout, ref Matrix3 matrix, ref Vector3 vect,int p, int q, int r); |
1752 | public static void MultiplyM3V3(out Vector3 outvector, ref Matrix3 matrix, ref Vector3 invector) | 1753 | internal static void MultiplyM3V3(out Vector3 outvector, ref Matrix3 matrix, ref Vector3 invector) |
1753 | { | 1754 | { |
1754 | MultiplyiM3V3(out outvector, ref matrix, ref invector, 3, 3, 1); | 1755 | MultiplyiM3V3(out outvector, ref matrix, ref invector, 3, 3, 1); |
1755 | } | 1756 | } |
1756 | 1757 | ||
1757 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply1"), SuppressUnmanagedCodeSecurity] | 1758 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply1"), SuppressUnmanagedCodeSecurity] |
1758 | public static extern void Multiply1(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); | 1759 | internal static extern void Multiply1(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); |
1759 | 1760 | ||
1760 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply2"), SuppressUnmanagedCodeSecurity] | 1761 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dMultiply2"), SuppressUnmanagedCodeSecurity] |
1761 | public static extern void Multiply2(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); | 1762 | internal static extern void Multiply2(out dReal A00, ref dReal B00, ref dReal C00, int p, int q, int r); |
1762 | 1763 | ||
1763 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] | 1764 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] |
1764 | public static extern void QFromAxisAndAngle(out Quaternion q, dReal ax, dReal ay, dReal az, dReal angle); | 1765 | internal static extern void QFromAxisAndAngle(out Quaternion q, dReal ax, dReal ay, dReal az, dReal angle); |
1765 | 1766 | ||
1766 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQfromR"), SuppressUnmanagedCodeSecurity] | 1767 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQfromR"), SuppressUnmanagedCodeSecurity] |
1767 | public static extern void QfromR(out Quaternion q, ref Matrix3 R); | 1768 | internal static extern void QfromR(out Quaternion q, ref Matrix3 R); |
1768 | 1769 | ||
1769 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply0"), SuppressUnmanagedCodeSecurity] | 1770 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply0"), SuppressUnmanagedCodeSecurity] |
1770 | public static extern void QMultiply0(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1771 | internal static extern void QMultiply0(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1771 | 1772 | ||
1772 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply1"), SuppressUnmanagedCodeSecurity] | 1773 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply1"), SuppressUnmanagedCodeSecurity] |
1773 | public static extern void QMultiply1(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1774 | internal static extern void QMultiply1(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1774 | 1775 | ||
1775 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply2"), SuppressUnmanagedCodeSecurity] | 1776 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply2"), SuppressUnmanagedCodeSecurity] |
1776 | public static extern void QMultiply2(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1777 | internal static extern void QMultiply2(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1777 | 1778 | ||
1778 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply3"), SuppressUnmanagedCodeSecurity] | 1779 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQMultiply3"), SuppressUnmanagedCodeSecurity] |
1779 | public static extern void QMultiply3(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); | 1780 | internal static extern void QMultiply3(out Quaternion qa, ref Quaternion qb, ref Quaternion qc); |
1780 | 1781 | ||
1781 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQSetIdentity"), SuppressUnmanagedCodeSecurity] | 1782 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQSetIdentity"), SuppressUnmanagedCodeSecurity] |
1782 | public static extern void QSetIdentity(out Quaternion q); | 1783 | internal static extern void QSetIdentity(out Quaternion q); |
1783 | 1784 | ||
1784 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1785 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1785 | public static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref Vector3 center, ref Vector3 extents, int depth); | 1786 | internal static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref Vector3 center, ref Vector3 extents, int depth); |
1786 | 1787 | ||
1787 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1788 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dQuadTreeSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1788 | public static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref dReal centerX, ref dReal extentsX, int depth); | 1789 | internal static extern IntPtr QuadTreeSpaceCreate(IntPtr space, ref dReal centerX, ref dReal extentsX, int depth); |
1789 | 1790 | ||
1790 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRandReal"), SuppressUnmanagedCodeSecurity] | 1791 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRandReal"), SuppressUnmanagedCodeSecurity] |
1791 | public static extern dReal RandReal(); | 1792 | internal static extern dReal RandReal(); |
1792 | 1793 | ||
1793 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFrom2Axes"), SuppressUnmanagedCodeSecurity] | 1794 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFrom2Axes"), SuppressUnmanagedCodeSecurity] |
1794 | public static extern void RFrom2Axes(out Matrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz); | 1795 | internal static extern void RFrom2Axes(out Matrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz); |
1795 | 1796 | ||
1796 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] | 1797 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromAxisAndAngle"), SuppressUnmanagedCodeSecurity] |
1797 | public static extern void RFromAxisAndAngle(out Matrix3 R, dReal x, dReal y, dReal z, dReal angle); | 1798 | internal static extern void RFromAxisAndAngle(out Matrix3 R, dReal x, dReal y, dReal z, dReal angle); |
1798 | 1799 | ||
1799 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromEulerAngles"), SuppressUnmanagedCodeSecurity] | 1800 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromEulerAngles"), SuppressUnmanagedCodeSecurity] |
1800 | public static extern void RFromEulerAngles(out Matrix3 R, dReal phi, dReal theta, dReal psi); | 1801 | internal static extern void RFromEulerAngles(out Matrix3 R, dReal phi, dReal theta, dReal psi); |
1801 | 1802 | ||
1802 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRfromQ"), SuppressUnmanagedCodeSecurity] | 1803 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRfromQ"), SuppressUnmanagedCodeSecurity] |
1803 | public static extern void RfromQ(out Matrix3 R, ref Quaternion q); | 1804 | internal static extern void RfromQ(out Matrix3 R, ref Quaternion q); |
1804 | 1805 | ||
1805 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromZAxis"), SuppressUnmanagedCodeSecurity] | 1806 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRFromZAxis"), SuppressUnmanagedCodeSecurity] |
1806 | public static extern void RFromZAxis(out Matrix3 R, dReal ax, dReal ay, dReal az); | 1807 | internal static extern void RFromZAxis(out Matrix3 R, dReal ax, dReal ay, dReal az); |
1807 | 1808 | ||
1808 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRSetIdentity"), SuppressUnmanagedCodeSecurity] | 1809 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dRSetIdentity"), SuppressUnmanagedCodeSecurity] |
1809 | public static extern void RSetIdentity(out Matrix3 R); | 1810 | internal static extern void RSetIdentity(out Matrix3 R); |
1810 | 1811 | ||
1811 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetValue"), SuppressUnmanagedCodeSecurity] | 1812 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetValue"), SuppressUnmanagedCodeSecurity] |
1812 | public static extern void SetValue(out dReal a, int n); | 1813 | internal static extern void SetValue(out dReal a, int n); |
1813 | 1814 | ||
1814 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetZero"), SuppressUnmanagedCodeSecurity] | 1815 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSetZero"), SuppressUnmanagedCodeSecurity] |
1815 | public static extern void SetZero(out dReal a, int n); | 1816 | internal static extern void SetZero(out dReal a, int n); |
1816 | 1817 | ||
1817 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSimpleSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1818 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSimpleSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1818 | public static extern IntPtr SimpleSpaceCreate(IntPtr space); | 1819 | internal static extern IntPtr SimpleSpaceCreate(IntPtr space); |
1819 | 1820 | ||
1820 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveCholesky"), SuppressUnmanagedCodeSecurity] | 1821 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveCholesky"), SuppressUnmanagedCodeSecurity] |
1821 | public static extern void SolveCholesky(ref dReal L, out dReal b, int n); | 1822 | internal static extern void SolveCholesky(ref dReal L, out dReal b, int n); |
1822 | 1823 | ||
1823 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1"), SuppressUnmanagedCodeSecurity] | 1824 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1"), SuppressUnmanagedCodeSecurity] |
1824 | public static extern void SolveL1(ref dReal L, out dReal b, int n, int nskip); | 1825 | internal static extern void SolveL1(ref dReal L, out dReal b, int n, int nskip); |
1825 | 1826 | ||
1826 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1T"), SuppressUnmanagedCodeSecurity] | 1827 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveL1T"), SuppressUnmanagedCodeSecurity] |
1827 | public static extern void SolveL1T(ref dReal L, out dReal b, int n, int nskip); | 1828 | internal static extern void SolveL1T(ref dReal L, out dReal b, int n, int nskip); |
1828 | 1829 | ||
1829 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveLDLT"), SuppressUnmanagedCodeSecurity] | 1830 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSolveLDLT"), SuppressUnmanagedCodeSecurity] |
1830 | public static extern void SolveLDLT(ref dReal L, ref dReal d, out dReal b, int n, int nskip); | 1831 | internal static extern void SolveLDLT(ref dReal L, ref dReal d, out dReal b, int n, int nskip); |
1831 | 1832 | ||
1832 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceAdd"), SuppressUnmanagedCodeSecurity] | 1833 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceAdd"), SuppressUnmanagedCodeSecurity] |
1833 | public static extern void SpaceAdd(IntPtr space, IntPtr geom); | 1834 | internal static extern void SpaceAdd(IntPtr space, IntPtr geom); |
1834 | 1835 | ||
1835 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceLockQuery"), SuppressUnmanagedCodeSecurity] | 1836 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceLockQuery"), SuppressUnmanagedCodeSecurity] |
1836 | public static extern bool SpaceLockQuery(IntPtr space); | 1837 | internal static extern bool SpaceLockQuery(IntPtr space); |
1837 | 1838 | ||
1838 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceClean"), SuppressUnmanagedCodeSecurity] | 1839 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceClean"), SuppressUnmanagedCodeSecurity] |
1839 | public static extern void SpaceClean(IntPtr space); | 1840 | internal static extern void SpaceClean(IntPtr space); |
1840 | 1841 | ||
1841 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide"), SuppressUnmanagedCodeSecurity] | 1842 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide"), SuppressUnmanagedCodeSecurity] |
1842 | public static extern void SpaceCollide(IntPtr space, IntPtr data, NearCallback callback); | 1843 | internal static extern void SpaceCollide(IntPtr space, IntPtr data, NearCallback callback); |
1843 | 1844 | ||
1844 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide2"), SuppressUnmanagedCodeSecurity] | 1845 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceCollide2"), SuppressUnmanagedCodeSecurity] |
1845 | public static extern void SpaceCollide2(IntPtr space1, IntPtr space2, IntPtr data, NearCallback callback); | 1846 | internal static extern void SpaceCollide2(IntPtr space1, IntPtr space2, IntPtr data, NearCallback callback); |
1846 | 1847 | ||
1847 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceDestroy"), SuppressUnmanagedCodeSecurity] | 1848 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceDestroy"), SuppressUnmanagedCodeSecurity] |
1848 | public static extern void SpaceDestroy(IntPtr space); | 1849 | internal static extern void SpaceDestroy(IntPtr space); |
1849 | 1850 | ||
1850 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetCleanup"), SuppressUnmanagedCodeSecurity] | 1851 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetCleanup"), SuppressUnmanagedCodeSecurity] |
1851 | public static extern bool SpaceGetCleanup(IntPtr space); | 1852 | internal static extern bool SpaceGetCleanup(IntPtr space); |
1852 | 1853 | ||
1853 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetNumGeoms"), SuppressUnmanagedCodeSecurity] | 1854 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetNumGeoms"), SuppressUnmanagedCodeSecurity] |
1854 | public static extern int SpaceGetNumGeoms(IntPtr space); | 1855 | internal static extern int SpaceGetNumGeoms(IntPtr space); |
1855 | 1856 | ||
1856 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetGeom"), SuppressUnmanagedCodeSecurity] | 1857 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetGeom"), SuppressUnmanagedCodeSecurity] |
1857 | public static extern IntPtr SpaceGetGeom(IntPtr space, int i); | 1858 | internal static extern IntPtr SpaceGetGeom(IntPtr space, int i); |
1858 | 1859 | ||
1859 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetSublevel"), SuppressUnmanagedCodeSecurity] | 1860 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceGetSublevel"), SuppressUnmanagedCodeSecurity] |
1860 | public static extern int SpaceGetSublevel(IntPtr space); | 1861 | internal static extern int SpaceGetSublevel(IntPtr space); |
1861 | 1862 | ||
1862 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceQuery"), SuppressUnmanagedCodeSecurity] | 1863 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceQuery"), SuppressUnmanagedCodeSecurity] |
1863 | public static extern bool SpaceQuery(IntPtr space, IntPtr geom); | 1864 | internal static extern bool SpaceQuery(IntPtr space, IntPtr geom); |
1864 | 1865 | ||
1865 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceRemove"), SuppressUnmanagedCodeSecurity] | 1866 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceRemove"), SuppressUnmanagedCodeSecurity] |
1866 | public static extern void SpaceRemove(IntPtr space, IntPtr geom); | 1867 | internal static extern void SpaceRemove(IntPtr space, IntPtr geom); |
1867 | 1868 | ||
1868 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetCleanup"), SuppressUnmanagedCodeSecurity] | 1869 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetCleanup"), SuppressUnmanagedCodeSecurity] |
1869 | public static extern void SpaceSetCleanup(IntPtr space, bool mode); | 1870 | internal static extern void SpaceSetCleanup(IntPtr space, bool mode); |
1870 | 1871 | ||
1871 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetSublevel"), SuppressUnmanagedCodeSecurity] | 1872 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSpaceSetSublevel"), SuppressUnmanagedCodeSecurity] |
1872 | public static extern void SpaceSetSublevel(IntPtr space, int sublevel); | 1873 | internal static extern void SpaceSetSublevel(IntPtr space, int sublevel); |
1873 | 1874 | ||
1874 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSweepAndPruneSpaceCreate"), SuppressUnmanagedCodeSecurity] | 1875 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dSweepAndPruneSpaceCreate"), SuppressUnmanagedCodeSecurity] |
1875 | public static extern IntPtr SweepAndPruneSpaceCreate(IntPtr space, int AxisOrder); | 1876 | internal static extern IntPtr SweepAndPruneSpaceCreate(IntPtr space, int AxisOrder); |
1876 | 1877 | ||
1877 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dVectorScale"), SuppressUnmanagedCodeSecurity] | 1878 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dVectorScale"), SuppressUnmanagedCodeSecurity] |
1878 | public static extern void VectorScale(out dReal a, ref dReal d, int n); | 1879 | internal static extern void VectorScale(out dReal a, ref dReal d, int n); |
1879 | 1880 | ||
1880 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldCreate"), SuppressUnmanagedCodeSecurity] | 1881 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldCreate"), SuppressUnmanagedCodeSecurity] |
1881 | public static extern IntPtr WorldCreate(); | 1882 | internal static extern IntPtr WorldCreate(); |
1882 | 1883 | ||
1883 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldDestroy"), SuppressUnmanagedCodeSecurity] | 1884 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldDestroy"), SuppressUnmanagedCodeSecurity] |
1884 | public static extern void WorldDestroy(IntPtr world); | 1885 | internal static extern void WorldDestroy(IntPtr world); |
1885 | 1886 | ||
1886 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] | 1887 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] |
1887 | public static extern int WorldGetAutoDisableAverageSamplesCount(IntPtr world); | 1888 | internal static extern int WorldGetAutoDisableAverageSamplesCount(IntPtr world); |
1888 | 1889 | ||
1889 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 1890 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
1890 | public static extern dReal WorldGetAutoDisableAngularThreshold(IntPtr world); | 1891 | internal static extern dReal WorldGetAutoDisableAngularThreshold(IntPtr world); |
1891 | 1892 | ||
1892 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 1893 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
1893 | public static extern bool WorldGetAutoDisableFlag(IntPtr world); | 1894 | internal static extern bool WorldGetAutoDisableFlag(IntPtr world); |
1894 | 1895 | ||
1895 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 1896 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
1896 | public static extern dReal WorldGetAutoDisableLinearThreshold(IntPtr world); | 1897 | internal static extern dReal WorldGetAutoDisableLinearThreshold(IntPtr world); |
1897 | 1898 | ||
1898 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 1899 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
1899 | public static extern int WorldGetAutoDisableSteps(IntPtr world); | 1900 | internal static extern int WorldGetAutoDisableSteps(IntPtr world); |
1900 | 1901 | ||
1901 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 1902 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
1902 | public static extern dReal WorldGetAutoDisableTime(IntPtr world); | 1903 | internal static extern dReal WorldGetAutoDisableTime(IntPtr world); |
1903 | 1904 | ||
1904 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] | 1905 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] |
1905 | public static extern int WorldGetAutoEnableDepthSF1(IntPtr world); | 1906 | internal static extern int WorldGetAutoEnableDepthSF1(IntPtr world); |
1906 | 1907 | ||
1907 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetCFM"), SuppressUnmanagedCodeSecurity] | 1908 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetCFM"), SuppressUnmanagedCodeSecurity] |
1908 | public static extern dReal WorldGetCFM(IntPtr world); | 1909 | internal static extern dReal WorldGetCFM(IntPtr world); |
1909 | 1910 | ||
1910 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetERP"), SuppressUnmanagedCodeSecurity] | 1911 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetERP"), SuppressUnmanagedCodeSecurity] |
1911 | public static extern dReal WorldGetERP(IntPtr world); | 1912 | internal static extern dReal WorldGetERP(IntPtr world); |
1912 | 1913 | ||
1913 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] | 1914 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] |
1914 | public static extern void WorldGetGravity(IntPtr world, out Vector3 gravity); | 1915 | internal static extern void WorldGetGravity(IntPtr world, out Vector3 gravity); |
1915 | 1916 | ||
1916 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] | 1917 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetGravity"), SuppressUnmanagedCodeSecurity] |
1917 | public static extern void WorldGetGravity(IntPtr world, out dReal X); | 1918 | internal static extern void WorldGetGravity(IntPtr world, out dReal X); |
1918 | 1919 | ||
1919 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] | 1920 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] |
1920 | public static extern dReal WorldGetContactMaxCorrectingVel(IntPtr world); | 1921 | internal static extern dReal WorldGetContactMaxCorrectingVel(IntPtr world); |
1921 | 1922 | ||
1922 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] | 1923 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] |
1923 | public static extern dReal WorldGetContactSurfaceLayer(IntPtr world); | 1924 | internal static extern dReal WorldGetContactSurfaceLayer(IntPtr world); |
1924 | 1925 | ||
1925 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDamping"), SuppressUnmanagedCodeSecurity] | 1926 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDamping"), SuppressUnmanagedCodeSecurity] |
1926 | public static extern dReal WorldGetAngularDamping(IntPtr world); | 1927 | internal static extern dReal WorldGetAngularDamping(IntPtr world); |
1927 | 1928 | ||
1928 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 1929 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
1929 | public static extern dReal WorldGetAngularDampingThreshold(IntPtr world); | 1930 | internal static extern dReal WorldGetAngularDampingThreshold(IntPtr world); |
1930 | 1931 | ||
1931 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDamping"), SuppressUnmanagedCodeSecurity] | 1932 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDamping"), SuppressUnmanagedCodeSecurity] |
1932 | public static extern dReal WorldGetLinearDamping(IntPtr world); | 1933 | internal static extern dReal WorldGetLinearDamping(IntPtr world); |
1933 | 1934 | ||
1934 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 1935 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
1935 | public static extern dReal WorldGetLinearDampingThreshold(IntPtr world); | 1936 | internal static extern dReal WorldGetLinearDampingThreshold(IntPtr world); |
1936 | 1937 | ||
1937 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] | 1938 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] |
1938 | public static extern int WorldGetQuickStepNumIterations(IntPtr world); | 1939 | internal static extern int WorldGetQuickStepNumIterations(IntPtr world); |
1939 | 1940 | ||
1940 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepW"), SuppressUnmanagedCodeSecurity] | 1941 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetQuickStepW"), SuppressUnmanagedCodeSecurity] |
1941 | public static extern dReal WorldGetQuickStepW(IntPtr world); | 1942 | internal static extern dReal WorldGetQuickStepW(IntPtr world); |
1942 | 1943 | ||
1943 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] | 1944 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldGetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] |
1944 | public static extern dReal WorldGetMaxAngularSpeed(IntPtr world); | 1945 | internal static extern dReal WorldGetMaxAngularSpeed(IntPtr world); |
1945 | 1946 | ||
1946 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] | 1947 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] |
1947 | public static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out Vector3 force); | 1948 | internal static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out Vector3 force); |
1948 | 1949 | ||
1949 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] | 1950 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldImpulseToForce"), SuppressUnmanagedCodeSecurity] |
1950 | public static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out dReal forceX); | 1951 | internal static extern void WorldImpulseToForce(IntPtr world, dReal stepsize, dReal ix, dReal iy, dReal iz, out dReal forceX); |
1951 | 1952 | ||
1952 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldQuickStep"), SuppressUnmanagedCodeSecurity] | 1953 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldQuickStep"), SuppressUnmanagedCodeSecurity] |
1953 | public static extern void WorldQuickStep(IntPtr world, dReal stepsize); | 1954 | internal static extern void WorldQuickStep(IntPtr world, dReal stepsize); |
1954 | 1955 | ||
1955 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDamping"), SuppressUnmanagedCodeSecurity] | 1956 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDamping"), SuppressUnmanagedCodeSecurity] |
1956 | public static extern void WorldSetAngularDamping(IntPtr world, dReal scale); | 1957 | internal static extern void WorldSetAngularDamping(IntPtr world, dReal scale); |
1957 | 1958 | ||
1958 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] | 1959 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAngularDampingThreshold"), SuppressUnmanagedCodeSecurity] |
1959 | public static extern void WorldSetAngularDampingThreshold(IntPtr world, dReal threshold); | 1960 | internal static extern void WorldSetAngularDampingThreshold(IntPtr world, dReal threshold); |
1960 | 1961 | ||
1961 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] | 1962 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAngularThreshold"), SuppressUnmanagedCodeSecurity] |
1962 | public static extern void WorldSetAutoDisableAngularThreshold(IntPtr world, dReal angular_threshold); | 1963 | internal static extern void WorldSetAutoDisableAngularThreshold(IntPtr world, dReal angular_threshold); |
1963 | 1964 | ||
1964 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] | 1965 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableAverageSamplesCount"), SuppressUnmanagedCodeSecurity] |
1965 | public static extern void WorldSetAutoDisableAverageSamplesCount(IntPtr world, int average_samples_count); | 1966 | internal static extern void WorldSetAutoDisableAverageSamplesCount(IntPtr world, int average_samples_count); |
1966 | 1967 | ||
1967 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] | 1968 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableFlag"), SuppressUnmanagedCodeSecurity] |
1968 | public static extern void WorldSetAutoDisableFlag(IntPtr world, bool do_auto_disable); | 1969 | internal static extern void WorldSetAutoDisableFlag(IntPtr world, bool do_auto_disable); |
1969 | 1970 | ||
1970 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] | 1971 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableLinearThreshold"), SuppressUnmanagedCodeSecurity] |
1971 | public static extern void WorldSetAutoDisableLinearThreshold(IntPtr world, dReal linear_threshold); | 1972 | internal static extern void WorldSetAutoDisableLinearThreshold(IntPtr world, dReal linear_threshold); |
1972 | 1973 | ||
1973 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] | 1974 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableSteps"), SuppressUnmanagedCodeSecurity] |
1974 | public static extern void WorldSetAutoDisableSteps(IntPtr world, int steps); | 1975 | internal static extern void WorldSetAutoDisableSteps(IntPtr world, int steps); |
1975 | 1976 | ||
1976 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableTime"), SuppressUnmanagedCodeSecurity] | 1977 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoDisableTime"), SuppressUnmanagedCodeSecurity] |
1977 | public static extern void WorldSetAutoDisableTime(IntPtr world, dReal time); | 1978 | internal static extern void WorldSetAutoDisableTime(IntPtr world, dReal time); |
1978 | 1979 | ||
1979 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] | 1980 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetAutoEnableDepthSF1"), SuppressUnmanagedCodeSecurity] |
1980 | public static extern void WorldSetAutoEnableDepthSF1(IntPtr world, int autoEnableDepth); | 1981 | internal static extern void WorldSetAutoEnableDepthSF1(IntPtr world, int autoEnableDepth); |
1981 | 1982 | ||
1982 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetCFM"), SuppressUnmanagedCodeSecurity] | 1983 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetCFM"), SuppressUnmanagedCodeSecurity] |
1983 | public static extern void WorldSetCFM(IntPtr world, dReal cfm); | 1984 | internal static extern void WorldSetCFM(IntPtr world, dReal cfm); |
1984 | 1985 | ||
1985 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] | 1986 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactMaxCorrectingVel"), SuppressUnmanagedCodeSecurity] |
1986 | public static extern void WorldSetContactMaxCorrectingVel(IntPtr world, dReal vel); | 1987 | internal static extern void WorldSetContactMaxCorrectingVel(IntPtr world, dReal vel); |
1987 | 1988 | ||
1988 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] | 1989 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetContactSurfaceLayer"), SuppressUnmanagedCodeSecurity] |
1989 | public static extern void WorldSetContactSurfaceLayer(IntPtr world, dReal depth); | 1990 | internal static extern void WorldSetContactSurfaceLayer(IntPtr world, dReal depth); |
1990 | 1991 | ||
1991 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetDamping"), SuppressUnmanagedCodeSecurity] | 1992 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetDamping"), SuppressUnmanagedCodeSecurity] |
1992 | public static extern void WorldSetDamping(IntPtr world, dReal linear_scale, dReal angular_scale); | 1993 | internal static extern void WorldSetDamping(IntPtr world, dReal linear_scale, dReal angular_scale); |
1993 | 1994 | ||
1994 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetERP"), SuppressUnmanagedCodeSecurity] | 1995 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetERP"), SuppressUnmanagedCodeSecurity] |
1995 | public static extern void WorldSetERP(IntPtr world, dReal erp); | 1996 | internal static extern void WorldSetERP(IntPtr world, dReal erp); |
1996 | 1997 | ||
1997 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetGravity"), SuppressUnmanagedCodeSecurity] | 1998 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetGravity"), SuppressUnmanagedCodeSecurity] |
1998 | public static extern void WorldSetGravity(IntPtr world, dReal x, dReal y, dReal z); | 1999 | internal static extern void WorldSetGravity(IntPtr world, dReal x, dReal y, dReal z); |
1999 | 2000 | ||
2000 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDamping"), SuppressUnmanagedCodeSecurity] | 2001 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDamping"), SuppressUnmanagedCodeSecurity] |
2001 | public static extern void WorldSetLinearDamping(IntPtr world, dReal scale); | 2002 | internal static extern void WorldSetLinearDamping(IntPtr world, dReal scale); |
2002 | 2003 | ||
2003 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] | 2004 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetLinearDampingThreshold"), SuppressUnmanagedCodeSecurity] |
2004 | public static extern void WorldSetLinearDampingThreshold(IntPtr world, dReal threshold); | 2005 | internal static extern void WorldSetLinearDampingThreshold(IntPtr world, dReal threshold); |
2005 | 2006 | ||
2006 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] | 2007 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepNumIterations"), SuppressUnmanagedCodeSecurity] |
2007 | public static extern void WorldSetQuickStepNumIterations(IntPtr world, int num); | 2008 | internal static extern void WorldSetQuickStepNumIterations(IntPtr world, int num); |
2008 | 2009 | ||
2009 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepW"), SuppressUnmanagedCodeSecurity] | 2010 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetQuickStepW"), SuppressUnmanagedCodeSecurity] |
2010 | public static extern void WorldSetQuickStepW(IntPtr world, dReal over_relaxation); | 2011 | internal static extern void WorldSetQuickStepW(IntPtr world, dReal over_relaxation); |
2011 | 2012 | ||
2012 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] | 2013 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldSetMaxAngularSpeed"), SuppressUnmanagedCodeSecurity] |
2013 | public static extern void WorldSetMaxAngularSpeed(IntPtr world, dReal max_speed); | 2014 | internal static extern void WorldSetMaxAngularSpeed(IntPtr world, dReal max_speed); |
2014 | 2015 | ||
2015 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStep"), SuppressUnmanagedCodeSecurity] | 2016 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStep"), SuppressUnmanagedCodeSecurity] |
2016 | public static extern void WorldStep(IntPtr world, dReal stepsize); | 2017 | internal static extern void WorldStep(IntPtr world, dReal stepsize); |
2017 | 2018 | ||
2018 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStepFast1"), SuppressUnmanagedCodeSecurity] | 2019 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldStepFast1"), SuppressUnmanagedCodeSecurity] |
2019 | public static extern void WorldStepFast1(IntPtr world, dReal stepsize, int maxiterations); | 2020 | internal static extern void WorldStepFast1(IntPtr world, dReal stepsize, int maxiterations); |
2020 | |||
2021 | [DllImport("ode", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dWorldExportDIF"), SuppressUnmanagedCodeSecurity] | ||
2022 | public static extern void WorldExportDIF(IntPtr world, string filename, bool append, string prefix); | ||
2023 | } | 2021 | } |
2024 | } | 2022 | } |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs b/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs index 0e46471..60cc549 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs | |||
@@ -32,7 +32,6 @@ using System; | |||
32 | using System.Collections.Generic; | 32 | using System.Collections.Generic; |
33 | using System.Reflection; | 33 | using System.Reflection; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OdeAPI; | ||
36 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
37 | using OpenSim.Region.PhysicsModules.SharedBase; | 36 | using OpenSim.Region.PhysicsModules.SharedBase; |
38 | using log4net; | 37 | using log4net; |
@@ -43,7 +42,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
43 | /// Various properties that ODE uses for AMotors but isn't exposed in ODE.NET so we must define them ourselves. | 42 | /// Various properties that ODE uses for AMotors but isn't exposed in ODE.NET so we must define them ourselves. |
44 | /// </summary> | 43 | /// </summary> |
45 | 44 | ||
46 | public enum dParam : int | 45 | public enum dParam:int |
47 | { | 46 | { |
48 | LowStop = 0, | 47 | LowStop = 0, |
49 | HiStop = 1, | 48 | HiStop = 1, |
@@ -68,7 +67,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
68 | StopCFM3 = 8 + 512 | 67 | StopCFM3 = 8 + 512 |
69 | } | 68 | } |
70 | 69 | ||
71 | public class OdeCharacter : PhysicsActor | 70 | public class OdeCharacter:PhysicsActor |
72 | { | 71 | { |
73 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 72 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
74 | 73 | ||
@@ -122,7 +121,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
122 | 121 | ||
123 | private bool m_freemove = false; | 122 | private bool m_freemove = false; |
124 | 123 | ||
125 | // private string m_name = String.Empty; | 124 | // private string m_name = String.Empty; |
126 | // other filter control | 125 | // other filter control |
127 | int m_colliderfilter = 0; | 126 | int m_colliderfilter = 0; |
128 | int m_colliderGroundfilter = 0; | 127 | int m_colliderGroundfilter = 0; |
@@ -144,7 +143,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
144 | 143 | ||
145 | public IntPtr Amotor = IntPtr.Zero; | 144 | public IntPtr Amotor = IntPtr.Zero; |
146 | 145 | ||
147 | public d.Mass ShellMass; | 146 | internal SafeNativeMethods.Mass ShellMass; |
148 | 147 | ||
149 | public int m_eventsubscription = 0; | 148 | public int m_eventsubscription = 0; |
150 | private int m_cureventsubscription = 0; | 149 | private int m_cureventsubscription = 0; |
@@ -165,7 +164,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
165 | private float m_targetHoverHeight; | 164 | private float m_targetHoverHeight; |
166 | 165 | ||
167 | 166 | ||
168 | public OdeCharacter(uint localID, String avName, ODEScene parent_scene, Vector3 pos, Vector3 pSize, float pfeetOffset, float density, float walk_divisor, float rundivisor) | 167 | public OdeCharacter(uint localID,String avName,ODEScene parent_scene,Vector3 pos,Vector3 pSize,float pfeetOffset,float density,float walk_divisor,float rundivisor) |
169 | { | 168 | { |
170 | m_uuid = UUID.Random(); | 169 | m_uuid = UUID.Random(); |
171 | m_localID = localID; | 170 | m_localID = localID; |
@@ -174,21 +173,21 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
174 | timeStep = parent_scene.ODE_STEPSIZE; | 173 | timeStep = parent_scene.ODE_STEPSIZE; |
175 | invtimeStep = 1 / timeStep; | 174 | invtimeStep = 1 / timeStep; |
176 | 175 | ||
177 | if (pos.IsFinite()) | 176 | if(pos.IsFinite()) |
178 | { | 177 | { |
179 | if (pos.Z > 99999f) | 178 | if(pos.Z > 99999f) |
180 | { | 179 | { |
181 | pos.Z = parent_scene.GetTerrainHeightAtXY(127, 127) + 5; | 180 | pos.Z = parent_scene.GetTerrainHeightAtXY(127,127) + 5; |
182 | } | 181 | } |
183 | if (pos.Z < -100f) // shouldn't this be 0 ? | 182 | if(pos.Z < -100f) // shouldn't this be 0 ? |
184 | { | 183 | { |
185 | pos.Z = parent_scene.GetTerrainHeightAtXY(127, 127) + 5; | 184 | pos.Z = parent_scene.GetTerrainHeightAtXY(127,127) + 5; |
186 | } | 185 | } |
187 | _position = pos; | 186 | _position = pos; |
188 | } | 187 | } |
189 | else | 188 | else |
190 | { | 189 | { |
191 | _position = new Vector3(((float)m_parent_scene.WorldExtents.X * 0.5f), ((float)m_parent_scene.WorldExtents.Y * 0.5f), parent_scene.GetTerrainHeightAtXY(128f, 128f) + 10f); | 190 | _position = new Vector3(((float)m_parent_scene.WorldExtents.X * 0.5f),((float)m_parent_scene.WorldExtents.Y * 0.5f),parent_scene.GetTerrainHeightAtXY(128f,128f) + 10f); |
192 | m_log.Warn("[PHYSICS]: Got NaN Position on Character Create"); | 191 | m_log.Warn("[PHYSICS]: Got NaN Position on Character Create"); |
193 | } | 192 | } |
194 | 193 | ||
@@ -216,7 +215,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
216 | walkDivisor = walk_divisor; | 215 | walkDivisor = walk_divisor; |
217 | runDivisor = rundivisor; | 216 | runDivisor = rundivisor; |
218 | 217 | ||
219 | m_mass = m_density * m_size.X * m_size.Y * m_size.Z; ; // sure we have a default | 218 | m_mass = m_density * m_size.X * m_size.Y * m_size.Z; |
219 | ; // sure we have a default | ||
220 | 220 | ||
221 | PID_D = basePID_D * m_mass * invtimeStep; | 221 | PID_D = basePID_D * m_mass * invtimeStep; |
222 | PID_P = basePID_P * m_mass * invtimeStep; | 222 | PID_P = basePID_P * m_mass * invtimeStep; |
@@ -225,13 +225,19 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
225 | 225 | ||
226 | Name = avName; | 226 | Name = avName; |
227 | 227 | ||
228 | AddChange(changes.Add, null); | 228 | AddChange(changes.Add,null); |
229 | } | 229 | } |
230 | 230 | ||
231 | public override int PhysicsActorType | 231 | public override int PhysicsActorType |
232 | { | 232 | { |
233 | get { return (int)ActorTypes.Agent; } | 233 | get |
234 | set { return; } | 234 | { |
235 | return (int)ActorTypes.Agent; | ||
236 | } | ||
237 | set | ||
238 | { | ||
239 | return; | ||
240 | } | ||
235 | } | 241 | } |
236 | 242 | ||
237 | public override void getContactData(ref ContactData cdata) | 243 | public override void getContactData(ref ContactData cdata) |
@@ -241,68 +247,116 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
241 | cdata.softcolide = false; | 247 | cdata.softcolide = false; |
242 | } | 248 | } |
243 | 249 | ||
244 | public override bool Building { get; set; } | 250 | public override bool Building |
251 | { | ||
252 | get; set; | ||
253 | } | ||
245 | 254 | ||
246 | /// <summary> | 255 | /// <summary> |
247 | /// If this is set, the avatar will move faster | 256 | /// If this is set, the avatar will move faster |
248 | /// </summary> | 257 | /// </summary> |
249 | public override bool SetAlwaysRun | 258 | public override bool SetAlwaysRun |
250 | { | 259 | { |
251 | get { return m_alwaysRun; } | 260 | get |
252 | set { m_alwaysRun = value; } | 261 | { |
262 | return m_alwaysRun; | ||
263 | } | ||
264 | set | ||
265 | { | ||
266 | m_alwaysRun = value; | ||
267 | } | ||
253 | } | 268 | } |
254 | 269 | ||
255 | public override uint LocalID | 270 | public override uint LocalID |
256 | { | 271 | { |
257 | get { return m_localID; } | 272 | get |
258 | set { m_localID = value; } | 273 | { |
274 | return m_localID; | ||
275 | } | ||
276 | set | ||
277 | { | ||
278 | m_localID = value; | ||
279 | } | ||
259 | } | 280 | } |
260 | 281 | ||
261 | public override PhysicsActor ParentActor | 282 | public override PhysicsActor ParentActor |
262 | { | 283 | { |
263 | get { return (PhysicsActor)this; } | 284 | get |
285 | { | ||
286 | return (PhysicsActor)this; | ||
287 | } | ||
264 | } | 288 | } |
265 | 289 | ||
266 | public override bool Grabbed | 290 | public override bool Grabbed |
267 | { | 291 | { |
268 | set { return; } | 292 | set |
293 | { | ||
294 | return; | ||
295 | } | ||
269 | } | 296 | } |
270 | 297 | ||
271 | public override bool Selected | 298 | public override bool Selected |
272 | { | 299 | { |
273 | set { return; } | 300 | set |
301 | { | ||
302 | return; | ||
303 | } | ||
274 | } | 304 | } |
275 | 305 | ||
276 | public override float Buoyancy | 306 | public override float Buoyancy |
277 | { | 307 | { |
278 | get { return m_buoyancy; } | 308 | get |
279 | set { m_buoyancy = value; } | 309 | { |
310 | return m_buoyancy; | ||
311 | } | ||
312 | set | ||
313 | { | ||
314 | m_buoyancy = value; | ||
315 | } | ||
280 | } | 316 | } |
281 | 317 | ||
282 | public override bool FloatOnWater | 318 | public override bool FloatOnWater |
283 | { | 319 | { |
284 | set { return; } | 320 | set |
321 | { | ||
322 | return; | ||
323 | } | ||
285 | } | 324 | } |
286 | 325 | ||
287 | public override bool IsPhysical | 326 | public override bool IsPhysical |
288 | { | 327 | { |
289 | get { return m_isPhysical; } | 328 | get |
290 | set { return; } | 329 | { |
330 | return m_isPhysical; | ||
331 | } | ||
332 | set | ||
333 | { | ||
334 | return; | ||
335 | } | ||
291 | } | 336 | } |
292 | 337 | ||
293 | public override bool ThrottleUpdates | 338 | public override bool ThrottleUpdates |
294 | { | 339 | { |
295 | get { return false; } | 340 | get |
296 | set { return; } | 341 | { |
342 | return false; | ||
343 | } | ||
344 | set | ||
345 | { | ||
346 | return; | ||
347 | } | ||
297 | } | 348 | } |
298 | 349 | ||
299 | public override bool Flying | 350 | public override bool Flying |
300 | { | 351 | { |
301 | get { return m_flying; } | 352 | get |
353 | { | ||
354 | return m_flying; | ||
355 | } | ||
302 | set | 356 | set |
303 | { | 357 | { |
304 | m_flying = value; | 358 | m_flying = value; |
305 | // m_log.DebugFormat("[PHYSICS]: Set OdeCharacter Flying to {0}", flying); | 359 | // m_log.DebugFormat("[PHYSICS]: Set OdeCharacter Flying to {0}", flying); |
306 | } | 360 | } |
307 | } | 361 | } |
308 | 362 | ||
@@ -312,23 +366,26 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
312 | /// </summary> | 366 | /// </summary> |
313 | public override bool IsColliding | 367 | public override bool IsColliding |
314 | { | 368 | { |
315 | get { return (m_iscolliding || m_iscollidingGround); } | 369 | get |
370 | { | ||
371 | return (m_iscolliding || m_iscollidingGround); | ||
372 | } | ||
316 | set | 373 | set |
317 | { | 374 | { |
318 | if (value) | 375 | if(value) |
319 | { | 376 | { |
320 | m_colliderfilter += 3; | 377 | m_colliderfilter += 3; |
321 | if (m_colliderfilter > 3) | 378 | if(m_colliderfilter > 3) |
322 | m_colliderfilter = 3; | 379 | m_colliderfilter = 3; |
323 | } | 380 | } |
324 | else | 381 | else |
325 | { | 382 | { |
326 | m_colliderfilter--; | 383 | m_colliderfilter--; |
327 | if (m_colliderfilter < 0) | 384 | if(m_colliderfilter < 0) |
328 | m_colliderfilter = 0; | 385 | m_colliderfilter = 0; |
329 | } | 386 | } |
330 | 387 | ||
331 | if (m_colliderfilter == 0) | 388 | if(m_colliderfilter == 0) |
332 | m_iscolliding = false; | 389 | m_iscolliding = false; |
333 | else | 390 | else |
334 | { | 391 | { |
@@ -344,28 +401,31 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
344 | /// </summary> | 401 | /// </summary> |
345 | public override bool CollidingGround | 402 | public override bool CollidingGround |
346 | { | 403 | { |
347 | get { return m_iscollidingGround; } | 404 | get |
405 | { | ||
406 | return m_iscollidingGround; | ||
407 | } | ||
348 | set | 408 | set |
349 | { | 409 | { |
350 | /* we now control this | 410 | /* we now control this |
351 | if (value) | 411 | if (value) |
352 | { | 412 | { |
353 | m_colliderGroundfilter += 2; | 413 | m_colliderGroundfilter += 2; |
354 | if (m_colliderGroundfilter > 2) | 414 | if (m_colliderGroundfilter > 2) |
355 | m_colliderGroundfilter = 2; | 415 | m_colliderGroundfilter = 2; |
356 | } | 416 | } |
357 | else | 417 | else |
358 | { | 418 | { |
359 | m_colliderGroundfilter--; | 419 | m_colliderGroundfilter--; |
360 | if (m_colliderGroundfilter < 0) | 420 | if (m_colliderGroundfilter < 0) |
361 | m_colliderGroundfilter = 0; | 421 | m_colliderGroundfilter = 0; |
362 | } | 422 | } |
363 | 423 | ||
364 | if (m_colliderGroundfilter == 0) | 424 | if (m_colliderGroundfilter == 0) |
365 | m_iscollidingGround = false; | 425 | m_iscollidingGround = false; |
366 | else | 426 | else |
367 | m_iscollidingGround = true; | 427 | m_iscollidingGround = true; |
368 | */ | 428 | */ |
369 | } | 429 | } |
370 | 430 | ||
371 | } | 431 | } |
@@ -375,31 +435,34 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
375 | /// </summary> | 435 | /// </summary> |
376 | public override bool CollidingObj | 436 | public override bool CollidingObj |
377 | { | 437 | { |
378 | get { return m_iscollidingObj; } | 438 | get |
439 | { | ||
440 | return m_iscollidingObj; | ||
441 | } | ||
379 | set | 442 | set |
380 | { | 443 | { |
381 | // Ubit filter this also | 444 | // Ubit filter this also |
382 | if (value) | 445 | if(value) |
383 | { | 446 | { |
384 | m_colliderObjectfilter += 2; | 447 | m_colliderObjectfilter += 2; |
385 | if (m_colliderObjectfilter > 2) | 448 | if(m_colliderObjectfilter > 2) |
386 | m_colliderObjectfilter = 2; | 449 | m_colliderObjectfilter = 2; |
387 | } | 450 | } |
388 | else | 451 | else |
389 | { | 452 | { |
390 | m_colliderObjectfilter--; | 453 | m_colliderObjectfilter--; |
391 | if (m_colliderObjectfilter < 0) | 454 | if(m_colliderObjectfilter < 0) |
392 | m_colliderObjectfilter = 0; | 455 | m_colliderObjectfilter = 0; |
393 | } | 456 | } |
394 | 457 | ||
395 | if (m_colliderObjectfilter == 0) | 458 | if(m_colliderObjectfilter == 0) |
396 | m_iscollidingObj = false; | 459 | m_iscollidingObj = false; |
397 | else | 460 | else |
398 | m_iscollidingObj = true; | 461 | m_iscollidingObj = true; |
399 | 462 | ||
400 | // m_iscollidingObj = value; | 463 | // m_iscollidingObj = value; |
401 | 464 | ||
402 | if (m_iscollidingObj) | 465 | if(m_iscollidingObj) |
403 | m_pidControllerActive = false; | 466 | m_pidControllerActive = false; |
404 | else | 467 | else |
405 | m_pidControllerActive = true; | 468 | m_pidControllerActive = true; |
@@ -418,7 +481,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
418 | 481 | ||
419 | public override bool Stopped | 482 | public override bool Stopped |
420 | { | 483 | { |
421 | get { return _zeroFlag; } | 484 | get |
485 | { | ||
486 | return _zeroFlag; | ||
487 | } | ||
422 | } | 488 | } |
423 | 489 | ||
424 | /// <summary> | 490 | /// <summary> |
@@ -428,20 +494,23 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
428 | /// </summary> | 494 | /// </summary> |
429 | public override Vector3 Position | 495 | public override Vector3 Position |
430 | { | 496 | { |
431 | get { return _position; } | 497 | get |
498 | { | ||
499 | return _position; | ||
500 | } | ||
432 | set | 501 | set |
433 | { | 502 | { |
434 | if (value.IsFinite()) | 503 | if(value.IsFinite()) |
435 | { | 504 | { |
436 | if (value.Z > 9999999f) | 505 | if(value.Z > 9999999f) |
437 | { | 506 | { |
438 | value.Z = m_parent_scene.GetTerrainHeightAtXY(127, 127) + 5; | 507 | value.Z = m_parent_scene.GetTerrainHeightAtXY(127,127) + 5; |
439 | } | 508 | } |
440 | if (value.Z < -100f) | 509 | if(value.Z < -100f) |
441 | { | 510 | { |
442 | value.Z = m_parent_scene.GetTerrainHeightAtXY(127, 127) + 5; | 511 | value.Z = m_parent_scene.GetTerrainHeightAtXY(127,127) + 5; |
443 | } | 512 | } |
444 | AddChange(changes.Position, value); | 513 | AddChange(changes.Position,value); |
445 | } | 514 | } |
446 | else | 515 | else |
447 | { | 516 | { |
@@ -452,8 +521,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
452 | 521 | ||
453 | public override Vector3 RotationalVelocity | 522 | public override Vector3 RotationalVelocity |
454 | { | 523 | { |
455 | get { return m_rotationalVelocity; } | 524 | get |
456 | set { m_rotationalVelocity = value; } | 525 | { |
526 | return m_rotationalVelocity; | ||
527 | } | ||
528 | set | ||
529 | { | ||
530 | m_rotationalVelocity = value; | ||
531 | } | ||
457 | } | 532 | } |
458 | 533 | ||
459 | /// <summary> | 534 | /// <summary> |
@@ -468,7 +543,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
468 | } | 543 | } |
469 | set | 544 | set |
470 | { | 545 | { |
471 | if (value.IsFinite()) | 546 | if(value.IsFinite()) |
472 | { | 547 | { |
473 | if(value.X <0.01f) | 548 | if(value.X <0.01f) |
474 | value.X = 0.01f; | 549 | value.X = 0.01f; |
@@ -477,7 +552,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
477 | if(value.Z <0.01f) | 552 | if(value.Z <0.01f) |
478 | value.Z = 0.01f; | 553 | value.Z = 0.01f; |
479 | 554 | ||
480 | AddChange(changes.Size, value); | 555 | AddChange(changes.Size,value); |
481 | } | 556 | } |
482 | else | 557 | else |
483 | { | 558 | { |
@@ -486,21 +561,21 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
486 | } | 561 | } |
487 | } | 562 | } |
488 | 563 | ||
489 | public override void setAvatarSize(Vector3 size, float feetOffset) | 564 | public override void setAvatarSize(Vector3 size,float feetOffset) |
490 | { | 565 | { |
491 | if (size.IsFinite()) | 566 | if(size.IsFinite()) |
492 | { | 567 | { |
493 | if (size.X < 0.01f) | 568 | if(size.X < 0.01f) |
494 | size.X = 0.01f; | 569 | size.X = 0.01f; |
495 | if (size.Y < 0.01f) | 570 | if(size.Y < 0.01f) |
496 | size.Y = 0.01f; | 571 | size.Y = 0.01f; |
497 | if (size.Z < 0.01f) | 572 | if(size.Z < 0.01f) |
498 | size.Z = 0.01f; | 573 | size.Z = 0.01f; |
499 | 574 | ||
500 | strAvatarSize st = new strAvatarSize(); | 575 | strAvatarSize st = new strAvatarSize(); |
501 | st.size = size; | 576 | st.size = size; |
502 | st.offset = feetOffset; | 577 | st.offset = feetOffset; |
503 | AddChange(changes.AvatarSize, st); | 578 | AddChange(changes.AvatarSize,st); |
504 | } | 579 | } |
505 | else | 580 | else |
506 | { | 581 | { |
@@ -545,32 +620,44 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
545 | 620 | ||
546 | public override Vector3 Force | 621 | public override Vector3 Force |
547 | { | 622 | { |
548 | get { return _target_velocity; } | 623 | get |
549 | set { return; } | 624 | { |
625 | return _target_velocity; | ||
626 | } | ||
627 | set | ||
628 | { | ||
629 | return; | ||
630 | } | ||
550 | } | 631 | } |
551 | 632 | ||
552 | public override int VehicleType | 633 | public override int VehicleType |
553 | { | 634 | { |
554 | get { return 0; } | 635 | get |
555 | set { return; } | 636 | { |
637 | return 0; | ||
638 | } | ||
639 | set | ||
640 | { | ||
641 | return; | ||
642 | } | ||
556 | } | 643 | } |
557 | 644 | ||
558 | public override void VehicleFloatParam(int param, float value) | 645 | public override void VehicleFloatParam(int param,float value) |
559 | { | 646 | { |
560 | 647 | ||
561 | } | 648 | } |
562 | 649 | ||
563 | public override void VehicleVectorParam(int param, Vector3 value) | 650 | public override void VehicleVectorParam(int param,Vector3 value) |
564 | { | 651 | { |
565 | 652 | ||
566 | } | 653 | } |
567 | 654 | ||
568 | public override void VehicleRotationParam(int param, Quaternion rotation) | 655 | public override void VehicleRotationParam(int param,Quaternion rotation) |
569 | { | 656 | { |
570 | 657 | ||
571 | } | 658 | } |
572 | 659 | ||
573 | public override void VehicleFlags(int param, bool remove) | 660 | public override void VehicleFlags(int param,bool remove) |
574 | { | 661 | { |
575 | 662 | ||
576 | } | 663 | } |
@@ -600,7 +687,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
600 | 687 | ||
601 | public override PrimitiveBaseShape Shape | 688 | public override PrimitiveBaseShape Shape |
602 | { | 689 | { |
603 | set { return; } | 690 | set |
691 | { | ||
692 | return; | ||
693 | } | ||
604 | } | 694 | } |
605 | 695 | ||
606 | public override Vector3 rootVelocity | 696 | public override Vector3 rootVelocity |
@@ -619,9 +709,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
619 | } | 709 | } |
620 | set | 710 | set |
621 | { | 711 | { |
622 | if (value.IsFinite()) | 712 | if(value.IsFinite()) |
623 | { | 713 | { |
624 | AddChange(changes.Velocity, value); | 714 | AddChange(changes.Velocity,value); |
625 | } | 715 | } |
626 | else | 716 | else |
627 | { | 717 | { |
@@ -638,9 +728,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
638 | } | 728 | } |
639 | set | 729 | set |
640 | { | 730 | { |
641 | if (value.IsFinite()) | 731 | if(value.IsFinite()) |
642 | { | 732 | { |
643 | AddChange(changes.TargetVelocity, value); | 733 | AddChange(changes.TargetVelocity,value); |
644 | } | 734 | } |
645 | else | 735 | else |
646 | { | 736 | { |
@@ -651,38 +741,62 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
651 | 741 | ||
652 | public override Vector3 Torque | 742 | public override Vector3 Torque |
653 | { | 743 | { |
654 | get { return Vector3.Zero; } | 744 | get |
655 | set { return; } | 745 | { |
746 | return Vector3.Zero; | ||
747 | } | ||
748 | set | ||
749 | { | ||
750 | return; | ||
751 | } | ||
656 | } | 752 | } |
657 | 753 | ||
658 | public override float CollisionScore | 754 | public override float CollisionScore |
659 | { | 755 | { |
660 | get { return 0f; } | 756 | get |
661 | set { } | 757 | { |
758 | return 0f; | ||
759 | } | ||
760 | set | ||
761 | { | ||
762 | } | ||
662 | } | 763 | } |
663 | 764 | ||
664 | public override bool Kinematic | 765 | public override bool Kinematic |
665 | { | 766 | { |
666 | get { return false; } | 767 | get |
667 | set { } | 768 | { |
769 | return false; | ||
770 | } | ||
771 | set | ||
772 | { | ||
773 | } | ||
668 | } | 774 | } |
669 | 775 | ||
670 | public override Quaternion Orientation | 776 | public override Quaternion Orientation |
671 | { | 777 | { |
672 | get { return m_orientation; } | 778 | get |
779 | { | ||
780 | return m_orientation; | ||
781 | } | ||
673 | set | 782 | set |
674 | { | 783 | { |
675 | // fakeori = value; | 784 | // fakeori = value; |
676 | // givefakeori++; | 785 | // givefakeori++; |
677 | value.Normalize(); | 786 | value.Normalize(); |
678 | AddChange(changes.Orientation, value); | 787 | AddChange(changes.Orientation,value); |
679 | } | 788 | } |
680 | } | 789 | } |
681 | 790 | ||
682 | public override Vector3 Acceleration | 791 | public override Vector3 Acceleration |
683 | { | 792 | { |
684 | get { return _acceleration; } | 793 | get |
685 | set { } | 794 | { |
795 | return _acceleration; | ||
796 | } | ||
797 | set | ||
798 | { | ||
799 | } | ||
686 | } | 800 | } |
687 | 801 | ||
688 | public void SetAcceleration(Vector3 accel) | 802 | public void SetAcceleration(Vector3 accel) |
@@ -696,17 +810,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
696 | /// The PID controller takes this target velocity and tries to make it a reality | 810 | /// The PID controller takes this target velocity and tries to make it a reality |
697 | /// </summary> | 811 | /// </summary> |
698 | /// <param name="force"></param> | 812 | /// <param name="force"></param> |
699 | public override void AddForce(Vector3 force, bool pushforce) | 813 | public override void AddForce(Vector3 force,bool pushforce) |
700 | { | 814 | { |
701 | if (force.IsFinite()) | 815 | if(force.IsFinite()) |
702 | { | 816 | { |
703 | if (pushforce) | 817 | if(pushforce) |
704 | { | 818 | { |
705 | AddChange(changes.Force, force * m_density / (m_parent_scene.ODE_STEPSIZE * 28f)); | 819 | AddChange(changes.Force,force * m_density / (m_parent_scene.ODE_STEPSIZE * 28f)); |
706 | } | 820 | } |
707 | else | 821 | else |
708 | { | 822 | { |
709 | AddChange(changes.TargetVelocity, force); | 823 | AddChange(changes.TargetVelocity,force); |
710 | } | 824 | } |
711 | } | 825 | } |
712 | else | 826 | else |
@@ -716,19 +830,19 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
716 | //m_lastUpdateSent = false; | 830 | //m_lastUpdateSent = false; |
717 | } | 831 | } |
718 | 832 | ||
719 | public override void AddAngularForce(Vector3 force, bool pushforce) | 833 | public override void AddAngularForce(Vector3 force,bool pushforce) |
720 | { | 834 | { |
721 | 835 | ||
722 | } | 836 | } |
723 | 837 | ||
724 | public override void SetMomentum(Vector3 momentum) | 838 | public override void SetMomentum(Vector3 momentum) |
725 | { | 839 | { |
726 | if (momentum.IsFinite()) | 840 | if(momentum.IsFinite()) |
727 | AddChange(changes.Momentum, momentum); | 841 | AddChange(changes.Momentum,momentum); |
728 | } | 842 | } |
729 | 843 | ||
730 | 844 | ||
731 | private void AvatarGeomAndBodyCreation(float npositionX, float npositionY, float npositionZ) | 845 | private void AvatarGeomAndBodyCreation(float npositionX,float npositionY,float npositionZ) |
732 | { | 846 | { |
733 | // sizes one day should came from visual parameters | 847 | // sizes one day should came from visual parameters |
734 | float sx = m_size.X; | 848 | float sx = m_size.X; |
@@ -739,7 +853,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
739 | boneOff = bot + 0.3f; | 853 | boneOff = bot + 0.3f; |
740 | 854 | ||
741 | float feetsz = sz * 0.45f; | 855 | float feetsz = sz * 0.45f; |
742 | if (feetsz > 0.6f) | 856 | if(feetsz > 0.6f) |
743 | feetsz = 0.6f; | 857 | feetsz = 0.6f; |
744 | 858 | ||
745 | feetOff = bot + feetsz; | 859 | feetOff = bot + feetsz; |
@@ -751,29 +865,28 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
751 | 865 | ||
752 | m_parent_scene.waitForSpaceUnlock(m_parent_scene.CharsSpace); | 866 | m_parent_scene.waitForSpaceUnlock(m_parent_scene.CharsSpace); |
753 | 867 | ||
754 | collider = d.HashSpaceCreate(m_parent_scene.CharsSpace); | 868 | collider = SafeNativeMethods.SimpleSpaceCreate(m_parent_scene.CharsSpace); |
755 | d.HashSpaceSetLevels(collider, -4, 3); | 869 | SafeNativeMethods.SpaceSetSublevel(collider,3); |
756 | d.SpaceSetSublevel(collider, 3); | 870 | SafeNativeMethods.SpaceSetCleanup(collider,false); |
757 | d.SpaceSetCleanup(collider, false); | 871 | SafeNativeMethods.GeomSetCategoryBits(collider,(uint)m_collisionCategories); |
758 | d.GeomSetCategoryBits(collider, (uint)m_collisionCategories); | 872 | SafeNativeMethods.GeomSetCollideBits(collider,(uint)m_collisionFlags); |
759 | d.GeomSetCollideBits(collider, (uint)m_collisionFlags); | ||
760 | 873 | ||
761 | float r = m_size.X; | 874 | float r = m_size.X; |
762 | if (m_size.Y > r) | 875 | if(m_size.Y > r) |
763 | r = m_size.Y; | 876 | r = m_size.Y; |
764 | float l = m_size.Z - r; | 877 | float l = m_size.Z - r; |
765 | r *= 0.5f; | 878 | r *= 0.5f; |
766 | 879 | ||
767 | capsule = d.CreateCapsule(collider, r, l); | 880 | capsule = SafeNativeMethods.CreateCapsule(collider,r,l); |
768 | 881 | ||
769 | m_mass = m_density * m_size.X * m_size.Y * m_size.Z; // update mass | 882 | m_mass = m_density * m_size.X * m_size.Y * m_size.Z; // update mass |
770 | 883 | ||
771 | d.MassSetBoxTotal(out ShellMass, m_mass, m_size.X, m_size.Y, m_size.Z); | 884 | SafeNativeMethods.MassSetBoxTotal(out ShellMass,m_mass,m_size.X,m_size.Y,m_size.Z); |
772 | 885 | ||
773 | PID_D = basePID_D * m_mass / m_parent_scene.ODE_STEPSIZE; | 886 | PID_D = basePID_D * m_mass / m_parent_scene.ODE_STEPSIZE; |
774 | PID_P = basePID_P * m_mass / m_parent_scene.ODE_STEPSIZE; | 887 | PID_P = basePID_P * m_mass / m_parent_scene.ODE_STEPSIZE; |
775 | 888 | ||
776 | Body = d.BodyCreate(m_parent_scene.world); | 889 | Body = SafeNativeMethods.BodyCreate(m_parent_scene.world); |
777 | 890 | ||
778 | _zeroFlag = false; | 891 | _zeroFlag = false; |
779 | m_pidControllerActive = true; | 892 | m_pidControllerActive = true; |
@@ -781,53 +894,53 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
781 | 894 | ||
782 | _velocity = Vector3.Zero; | 895 | _velocity = Vector3.Zero; |
783 | 896 | ||
784 | d.BodySetAutoDisableFlag(Body, false); | 897 | SafeNativeMethods.BodySetAutoDisableFlag(Body,false); |
785 | d.BodySetPosition(Body, npositionX, npositionY, npositionZ); | 898 | SafeNativeMethods.BodySetPosition(Body,npositionX,npositionY,npositionZ); |
786 | 899 | ||
787 | _position.X = npositionX; | 900 | _position.X = npositionX; |
788 | _position.Y = npositionY; | 901 | _position.Y = npositionY; |
789 | _position.Z = npositionZ; | 902 | _position.Z = npositionZ; |
790 | 903 | ||
791 | d.BodySetMass(Body, ref ShellMass); | 904 | SafeNativeMethods.BodySetMass(Body,ref ShellMass); |
792 | d.GeomSetBody(capsule, Body); | 905 | SafeNativeMethods.GeomSetBody(capsule,Body); |
793 | 906 | ||
794 | // The purpose of the AMotor here is to keep the avatar's physical | 907 | // The purpose of the AMotor here is to keep the avatar's physical |
795 | // surrogate from rotating while moving | 908 | // surrogate from rotating while moving |
796 | Amotor = d.JointCreateAMotor(m_parent_scene.world, IntPtr.Zero); | 909 | Amotor = SafeNativeMethods.JointCreateAMotor(m_parent_scene.world,IntPtr.Zero); |
797 | d.JointAttach(Amotor, Body, IntPtr.Zero); | 910 | SafeNativeMethods.JointAttach(Amotor,Body,IntPtr.Zero); |
798 | 911 | ||
799 | d.JointSetAMotorMode(Amotor, 0); | 912 | SafeNativeMethods.JointSetAMotorMode(Amotor,0); |
800 | d.JointSetAMotorNumAxes(Amotor, 3); | 913 | SafeNativeMethods.JointSetAMotorNumAxes(Amotor,3); |
801 | d.JointSetAMotorAxis(Amotor, 0, 0, 1, 0, 0); | 914 | SafeNativeMethods.JointSetAMotorAxis(Amotor,0,0,1,0,0); |
802 | d.JointSetAMotorAxis(Amotor, 1, 0, 0, 1, 0); | 915 | SafeNativeMethods.JointSetAMotorAxis(Amotor,1,0,0,1,0); |
803 | d.JointSetAMotorAxis(Amotor, 2, 0, 0, 0, 1); | 916 | SafeNativeMethods.JointSetAMotorAxis(Amotor,2,0,0,0,1); |
804 | 917 | ||
805 | d.JointSetAMotorAngle(Amotor, 0, 0); | 918 | SafeNativeMethods.JointSetAMotorAngle(Amotor,0,0); |
806 | d.JointSetAMotorAngle(Amotor, 1, 0); | 919 | SafeNativeMethods.JointSetAMotorAngle(Amotor,1,0); |
807 | d.JointSetAMotorAngle(Amotor, 2, 0); | 920 | SafeNativeMethods.JointSetAMotorAngle(Amotor,2,0); |
808 | 921 | ||
809 | d.JointSetAMotorParam(Amotor, (int)dParam.StopCFM, 0f); // make it HARD | 922 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.StopCFM,0f); // make it HARD |
810 | d.JointSetAMotorParam(Amotor, (int)dParam.StopCFM2, 0f); | 923 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.StopCFM2,0f); |
811 | d.JointSetAMotorParam(Amotor, (int)dParam.StopCFM3, 0f); | 924 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.StopCFM3,0f); |
812 | d.JointSetAMotorParam(Amotor, (int)dParam.StopERP, 0.8f); | 925 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.StopERP,0.8f); |
813 | d.JointSetAMotorParam(Amotor, (int)dParam.StopERP2, 0.8f); | 926 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.StopERP2,0.8f); |
814 | d.JointSetAMotorParam(Amotor, (int)dParam.StopERP3, 0.8f); | 927 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.StopERP3,0.8f); |
815 | 928 | ||
816 | // These lowstops and high stops are effectively (no wiggle room) | 929 | // These lowstops and high stops are effectively (no wiggle room) |
817 | d.JointSetAMotorParam(Amotor, (int)dParam.LowStop, -1e-5f); | 930 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.LowStop,-1e-5f); |
818 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop, 1e-5f); | 931 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.HiStop,1e-5f); |
819 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop2, -1e-5f); | 932 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.LoStop2,-1e-5f); |
820 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop2, 1e-5f); | 933 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.HiStop2,1e-5f); |
821 | d.JointSetAMotorParam(Amotor, (int)dParam.LoStop3, -1e-5f); | 934 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.LoStop3,-1e-5f); |
822 | d.JointSetAMotorParam(Amotor, (int)dParam.HiStop3, 1e-5f); | 935 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.HiStop3,1e-5f); |
823 | 936 | ||
824 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel, 0); | 937 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)SafeNativeMethods.JointParam.Vel,0); |
825 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel2, 0); | 938 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)SafeNativeMethods.JointParam.Vel2,0); |
826 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel3, 0); | 939 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)SafeNativeMethods.JointParam.Vel3,0); |
827 | 940 | ||
828 | d.JointSetAMotorParam(Amotor, (int)dParam.FMax, 5e8f); | 941 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.FMax,5e8f); |
829 | d.JointSetAMotorParam(Amotor, (int)dParam.FMax2, 5e8f); | 942 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.FMax2,5e8f); |
830 | d.JointSetAMotorParam(Amotor, (int)dParam.FMax3, 5e8f); | 943 | SafeNativeMethods.JointSetAMotorParam(Amotor,(int)dParam.FMax3,5e8f); |
831 | } | 944 | } |
832 | 945 | ||
833 | /// <summary> | 946 | /// <summary> |
@@ -836,38 +949,38 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
836 | private void AvatarGeomAndBodyDestroy() | 949 | private void AvatarGeomAndBodyDestroy() |
837 | { | 950 | { |
838 | // Kill the Amotor | 951 | // Kill the Amotor |
839 | if (Amotor != IntPtr.Zero) | 952 | if(Amotor != IntPtr.Zero) |
840 | { | 953 | { |
841 | d.JointDestroy(Amotor); | 954 | SafeNativeMethods.JointDestroy(Amotor); |
842 | Amotor = IntPtr.Zero; | 955 | Amotor = IntPtr.Zero; |
843 | } | 956 | } |
844 | 957 | ||
845 | if (Body != IntPtr.Zero) | 958 | if(Body != IntPtr.Zero) |
846 | { | 959 | { |
847 | //kill the body | 960 | //kill the body |
848 | d.BodyDestroy(Body); | 961 | SafeNativeMethods.BodyDestroy(Body); |
849 | Body = IntPtr.Zero; | 962 | Body = IntPtr.Zero; |
850 | } | 963 | } |
851 | 964 | ||
852 | //kill the Geoms | 965 | //kill the Geoms |
853 | if (capsule != IntPtr.Zero) | 966 | if(capsule != IntPtr.Zero) |
854 | { | 967 | { |
855 | m_parent_scene.actor_name_map.Remove(capsule); | 968 | m_parent_scene.actor_name_map.Remove(capsule); |
856 | m_parent_scene.waitForSpaceUnlock(collider); | 969 | m_parent_scene.waitForSpaceUnlock(collider); |
857 | d.GeomDestroy(capsule); | 970 | SafeNativeMethods.GeomDestroy(capsule); |
858 | capsule = IntPtr.Zero; | 971 | capsule = IntPtr.Zero; |
859 | } | 972 | } |
860 | 973 | ||
861 | if (collider != IntPtr.Zero) | 974 | if(collider != IntPtr.Zero) |
862 | { | 975 | { |
863 | d.SpaceDestroy(collider); | 976 | SafeNativeMethods.SpaceDestroy(collider); |
864 | collider = IntPtr.Zero; | 977 | collider = IntPtr.Zero; |
865 | } | 978 | } |
866 | 979 | ||
867 | } | 980 | } |
868 | 981 | ||
869 | //in place 2D rotation around Z assuming rot is normalised and is a rotation around Z | 982 | //in place 2D rotation around Z assuming rot is normalised and is a rotation around Z |
870 | public void RotateXYonZ(ref float x, ref float y, ref Quaternion rot) | 983 | public void RotateXYonZ(ref float x,ref float y,ref Quaternion rot) |
871 | { | 984 | { |
872 | float sin = 2.0f * rot.Z * rot.W; | 985 | float sin = 2.0f * rot.Z * rot.W; |
873 | float cos = rot.W * rot.W - rot.Z * rot.Z; | 986 | float cos = rot.W * rot.W - rot.Z * rot.Z; |
@@ -876,22 +989,22 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
876 | x = tx * cos - y * sin; | 989 | x = tx * cos - y * sin; |
877 | y = tx * sin + y * cos; | 990 | y = tx * sin + y * cos; |
878 | } | 991 | } |
879 | public void RotateXYonZ(ref float x, ref float y, ref float sin, ref float cos) | 992 | public void RotateXYonZ(ref float x,ref float y,ref float sin,ref float cos) |
880 | { | 993 | { |
881 | float tx = x; | 994 | float tx = x; |
882 | x = tx * cos - y * sin; | 995 | x = tx * cos - y * sin; |
883 | y = tx * sin + y * cos; | 996 | y = tx * sin + y * cos; |
884 | } | 997 | } |
885 | public void invRotateXYonZ(ref float x, ref float y, ref float sin, ref float cos) | 998 | public void invRotateXYonZ(ref float x,ref float y,ref float sin,ref float cos) |
886 | { | 999 | { |
887 | float tx = x; | 1000 | float tx = x; |
888 | x = tx * cos + y * sin; | 1001 | x = tx * cos + y * sin; |
889 | y = -tx * sin + y * cos; | 1002 | y = -tx * sin + y * cos; |
890 | } | 1003 | } |
891 | 1004 | ||
892 | public void invRotateXYonZ(ref float x, ref float y, ref Quaternion rot) | 1005 | public void invRotateXYonZ(ref float x,ref float y,ref Quaternion rot) |
893 | { | 1006 | { |
894 | float sin = - 2.0f * rot.Z * rot.W; | 1007 | float sin = -2.0f * rot.Z * rot.W; |
895 | float cos = rot.W * rot.W - rot.Z * rot.Z; | 1008 | float cos = rot.W * rot.W - rot.Z * rot.Z; |
896 | float tx = x; | 1009 | float tx = x; |
897 | 1010 | ||
@@ -899,13 +1012,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
899 | y = tx * sin + y * cos; | 1012 | y = tx * sin + y * cos; |
900 | } | 1013 | } |
901 | 1014 | ||
902 | public bool Collide(IntPtr me, IntPtr other, bool reverse, ref d.ContactGeom contact, | 1015 | internal bool Collide(IntPtr me,IntPtr other,bool reverse,ref SafeNativeMethods.ContactGeom contact, |
903 | ref d.ContactGeom altContact , ref bool useAltcontact, ref bool feetcollision) | 1016 | ref SafeNativeMethods.ContactGeom altContact,ref bool useAltcontact,ref bool feetcollision) |
904 | { | 1017 | { |
905 | feetcollision = false; | 1018 | feetcollision = false; |
906 | useAltcontact = false; | 1019 | useAltcontact = false; |
907 | 1020 | ||
908 | if (me == capsule) | 1021 | if(me == capsule) |
909 | { | 1022 | { |
910 | Vector3 offset; | 1023 | Vector3 offset; |
911 | 1024 | ||
@@ -915,25 +1028,25 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
915 | offset.X = contact.pos.X - _position.X; | 1028 | offset.X = contact.pos.X - _position.X; |
916 | offset.Y = contact.pos.Y - _position.Y; | 1029 | offset.Y = contact.pos.Y - _position.Y; |
917 | 1030 | ||
918 | d.GeomClassID gtype = d.GeomGetClass(other); | 1031 | SafeNativeMethods.GeomClassID gtype = SafeNativeMethods.GeomGetClass(other); |
919 | if (gtype == d.GeomClassID.CapsuleClass) | 1032 | if(gtype == SafeNativeMethods.GeomClassID.CapsuleClass) |
920 | { | 1033 | { |
921 | Vector3 roff = offset * Quaternion.Inverse(m_orientation2D); | 1034 | Vector3 roff = offset * Quaternion.Inverse(m_orientation2D); |
922 | float r = roff.X *roff.X / AvaAvaSizeXsq; | 1035 | float r = roff.X *roff.X / AvaAvaSizeXsq; |
923 | r += (roff.Y * roff.Y) / AvaAvaSizeYsq; | 1036 | r += (roff.Y * roff.Y) / AvaAvaSizeYsq; |
924 | if (r > 1.0f) | 1037 | if(r > 1.0f) |
925 | return false; | 1038 | return false; |
926 | 1039 | ||
927 | float dp = 1.0f -(float)Math.Sqrt((double)r); | 1040 | float dp = 1.0f -(float)Math.Sqrt((double)r); |
928 | if (dp > 0.05f) | 1041 | if(dp > 0.05f) |
929 | dp = 0.05f; | 1042 | dp = 0.05f; |
930 | 1043 | ||
931 | contact.depth = dp; | 1044 | contact.depth = dp; |
932 | 1045 | ||
933 | if (offset.Z < 0) | 1046 | if(offset.Z < 0) |
934 | { | 1047 | { |
935 | feetcollision = true; | 1048 | feetcollision = true; |
936 | if (h < boneOff) | 1049 | if(h < boneOff) |
937 | { | 1050 | { |
938 | m_collideNormal.X = contact.normal.X; | 1051 | m_collideNormal.X = contact.normal.X; |
939 | m_collideNormal.Y = contact.normal.Y; | 1052 | m_collideNormal.Y = contact.normal.Y; |
@@ -944,18 +1057,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
944 | return true; | 1057 | return true; |
945 | } | 1058 | } |
946 | 1059 | ||
947 | if (gtype == d.GeomClassID.SphereClass && d.GeomGetBody(other) != IntPtr.Zero) | 1060 | if(gtype == SafeNativeMethods.GeomClassID.SphereClass && SafeNativeMethods.GeomGetBody(other) != IntPtr.Zero) |
948 | { | 1061 | { |
949 | if(d.GeomSphereGetRadius(other) < 0.5) | 1062 | if(SafeNativeMethods.GeomSphereGetRadius(other) < 0.5) |
950 | return true; | 1063 | return true; |
951 | } | 1064 | } |
952 | 1065 | ||
953 | if (offset.Z > 0 || contact.normal.Z > 0.35f) | 1066 | if(offset.Z > 0 || contact.normal.Z > 0.35f) |
954 | { | 1067 | { |
955 | if (offset.Z <= 0) | 1068 | if(offset.Z <= 0) |
956 | { | 1069 | { |
957 | feetcollision = true; | 1070 | feetcollision = true; |
958 | if (h < boneOff) | 1071 | if(h < boneOff) |
959 | { | 1072 | { |
960 | m_collideNormal.X = contact.normal.X; | 1073 | m_collideNormal.X = contact.normal.X; |
961 | m_collideNormal.Y = contact.normal.Y; | 1074 | m_collideNormal.Y = contact.normal.Y; |
@@ -970,7 +1083,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
970 | return true; | 1083 | return true; |
971 | 1084 | ||
972 | feetcollision = true; | 1085 | feetcollision = true; |
973 | if (h < boneOff) | 1086 | if(h < boneOff) |
974 | { | 1087 | { |
975 | m_collideNormal.X = contact.normal.X; | 1088 | m_collideNormal.X = contact.normal.X; |
976 | m_collideNormal.Y = contact.normal.Y; | 1089 | m_collideNormal.Y = contact.normal.Y; |
@@ -990,18 +1103,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
990 | t = Math.Abs(t); | 1103 | t = Math.Abs(t); |
991 | if(t > 1e-6) | 1104 | if(t > 1e-6) |
992 | { | 1105 | { |
993 | tdp /= t; | 1106 | tdp /= t; |
994 | tdp *= contact.normal.X; | 1107 | tdp *= contact.normal.X; |
995 | } | 1108 | } |
996 | else | 1109 | else |
997 | tdp *= 10; | 1110 | tdp *= 10; |
998 | 1111 | ||
999 | if (tdp > 0.25f) | 1112 | if(tdp > 0.25f) |
1000 | tdp = 0.25f; | 1113 | tdp = 0.25f; |
1001 | 1114 | ||
1002 | altContact.depth = tdp; | 1115 | altContact.depth = tdp; |
1003 | 1116 | ||
1004 | if (reverse) | 1117 | if(reverse) |
1005 | { | 1118 | { |
1006 | altContact.normal.X = offset.X; | 1119 | altContact.normal.X = offset.X; |
1007 | altContact.normal.Y = offset.Y; | 1120 | altContact.normal.Y = offset.Y; |
@@ -1025,28 +1138,28 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1025 | /// <param name="timeStep"></param> | 1138 | /// <param name="timeStep"></param> |
1026 | public void Move(List<OdeCharacter> defects) | 1139 | public void Move(List<OdeCharacter> defects) |
1027 | { | 1140 | { |
1028 | if (Body == IntPtr.Zero) | 1141 | if(Body == IntPtr.Zero) |
1029 | return; | 1142 | return; |
1030 | 1143 | ||
1031 | d.Vector3 dtmp = d.BodyGetPosition(Body); | 1144 | SafeNativeMethods.Vector3 dtmp = SafeNativeMethods.BodyGetPosition(Body); |
1032 | Vector3 localpos = new Vector3(dtmp.X, dtmp.Y, dtmp.Z); | 1145 | Vector3 localpos = new Vector3(dtmp.X,dtmp.Y,dtmp.Z); |
1033 | 1146 | ||
1034 | // the Amotor still lets avatar rotation to drift during colisions | 1147 | // the Amotor still lets avatar rotation to drift during colisions |
1035 | // so force it back to identity | 1148 | // so force it back to identity |
1036 | 1149 | ||
1037 | d.Quaternion qtmp; | 1150 | SafeNativeMethods.Quaternion qtmp; |
1038 | qtmp.W = m_orientation2D.W; | 1151 | qtmp.W = m_orientation2D.W; |
1039 | qtmp.X = m_orientation2D.X; | 1152 | qtmp.X = m_orientation2D.X; |
1040 | qtmp.Y = m_orientation2D.Y; | 1153 | qtmp.Y = m_orientation2D.Y; |
1041 | qtmp.Z = m_orientation2D.Z; | 1154 | qtmp.Z = m_orientation2D.Z; |
1042 | d.BodySetQuaternion(Body, ref qtmp); | 1155 | SafeNativeMethods.BodySetQuaternion(Body,ref qtmp); |
1043 | 1156 | ||
1044 | if (m_pidControllerActive == false) | 1157 | if(m_pidControllerActive == false) |
1045 | { | 1158 | { |
1046 | _zeroPosition = localpos; | 1159 | _zeroPosition = localpos; |
1047 | } | 1160 | } |
1048 | 1161 | ||
1049 | if (!localpos.IsFinite()) | 1162 | if(!localpos.IsFinite()) |
1050 | { | 1163 | { |
1051 | m_log.Warn("[PHYSICS]: Avatar Position is non-finite!"); | 1164 | m_log.Warn("[PHYSICS]: Avatar Position is non-finite!"); |
1052 | defects.Add(this); | 1165 | defects.Add(this); |
@@ -1059,44 +1172,44 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1059 | 1172 | ||
1060 | // check outbounds forcing to be in world | 1173 | // check outbounds forcing to be in world |
1061 | bool fixbody = false; | 1174 | bool fixbody = false; |
1062 | if (localpos.X < 0.0f) | 1175 | if(localpos.X < 0.0f) |
1063 | { | 1176 | { |
1064 | fixbody = true; | 1177 | fixbody = true; |
1065 | localpos.X = 0.1f; | 1178 | localpos.X = 0.1f; |
1066 | } | 1179 | } |
1067 | else if (localpos.X > m_parent_scene.WorldExtents.X - 0.1f) | 1180 | else if(localpos.X > m_parent_scene.WorldExtents.X - 0.1f) |
1068 | { | 1181 | { |
1069 | fixbody = true; | 1182 | fixbody = true; |
1070 | localpos.X = m_parent_scene.WorldExtents.X - 0.1f; | 1183 | localpos.X = m_parent_scene.WorldExtents.X - 0.1f; |
1071 | } | 1184 | } |
1072 | if (localpos.Y < 0.0f) | 1185 | if(localpos.Y < 0.0f) |
1073 | { | 1186 | { |
1074 | fixbody = true; | 1187 | fixbody = true; |
1075 | localpos.Y = 0.1f; | 1188 | localpos.Y = 0.1f; |
1076 | } | 1189 | } |
1077 | else if (localpos.Y > m_parent_scene.WorldExtents.Y - 0.1) | 1190 | else if(localpos.Y > m_parent_scene.WorldExtents.Y - 0.1) |
1078 | { | 1191 | { |
1079 | fixbody = true; | 1192 | fixbody = true; |
1080 | localpos.Y = m_parent_scene.WorldExtents.Y - 0.1f; | 1193 | localpos.Y = m_parent_scene.WorldExtents.Y - 0.1f; |
1081 | } | 1194 | } |
1082 | if (fixbody) | 1195 | if(fixbody) |
1083 | { | 1196 | { |
1084 | m_freemove = false; | 1197 | m_freemove = false; |
1085 | d.BodySetPosition(Body, localpos.X, localpos.Y, localpos.Z); | 1198 | SafeNativeMethods.BodySetPosition(Body,localpos.X,localpos.Y,localpos.Z); |
1086 | } | 1199 | } |
1087 | 1200 | ||
1088 | float breakfactor; | 1201 | float breakfactor; |
1089 | 1202 | ||
1090 | Vector3 vec = Vector3.Zero; | 1203 | Vector3 vec = Vector3.Zero; |
1091 | dtmp = d.BodyGetLinearVel(Body); | 1204 | dtmp = SafeNativeMethods.BodyGetLinearVel(Body); |
1092 | Vector3 vel = new Vector3(dtmp.X, dtmp.Y, dtmp.Z); | 1205 | Vector3 vel = new Vector3(dtmp.X,dtmp.Y,dtmp.Z); |
1093 | float velLengthSquared = vel.LengthSquared(); | 1206 | float velLengthSquared = vel.LengthSquared(); |
1094 | 1207 | ||
1095 | Vector3 ctz = _target_velocity; | 1208 | Vector3 ctz = _target_velocity; |
1096 | 1209 | ||
1097 | float movementdivisor = 1f; | 1210 | float movementdivisor = 1f; |
1098 | //Ubit change divisions into multiplications below | 1211 | //Ubit change divisions into multiplications below |
1099 | if (!m_alwaysRun) | 1212 | if(!m_alwaysRun) |
1100 | movementdivisor = 1 / walkDivisor; | 1213 | movementdivisor = 1 / walkDivisor; |
1101 | else | 1214 | else |
1102 | movementdivisor = 1 / runDivisor; | 1215 | movementdivisor = 1 / runDivisor; |
@@ -1107,25 +1220,25 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1107 | //****************************************** | 1220 | //****************************************** |
1108 | // colide with land | 1221 | // colide with land |
1109 | 1222 | ||
1110 | d.AABB aabb; | 1223 | SafeNativeMethods.AABB aabb; |
1111 | // d.GeomGetAABB(feetbox, out aabb); | 1224 | // d.GeomGetAABB(feetbox, out aabb); |
1112 | d.GeomGetAABB(capsule, out aabb); | 1225 | SafeNativeMethods.GeomGetAABB(capsule,out aabb); |
1113 | float chrminZ = aabb.MinZ; // move up a bit | 1226 | float chrminZ = aabb.MinZ; // move up a bit |
1114 | Vector3 posch = localpos; | 1227 | Vector3 posch = localpos; |
1115 | 1228 | ||
1116 | float ftmp; | 1229 | float ftmp; |
1117 | 1230 | ||
1118 | if (m_flying) | 1231 | if(m_flying) |
1119 | { | 1232 | { |
1120 | ftmp = timeStep; | 1233 | ftmp = timeStep; |
1121 | posch.X += vel.X * ftmp; | 1234 | posch.X += vel.X * ftmp; |
1122 | posch.Y += vel.Y * ftmp; | 1235 | posch.Y += vel.Y * ftmp; |
1123 | } | 1236 | } |
1124 | 1237 | ||
1125 | float terrainheight = m_parent_scene.GetTerrainHeightAtXY(posch.X, posch.Y); | 1238 | float terrainheight = m_parent_scene.GetTerrainHeightAtXY(posch.X,posch.Y); |
1126 | if (chrminZ < terrainheight) | 1239 | if(chrminZ < terrainheight) |
1127 | { | 1240 | { |
1128 | if (ctz.Z < 0) | 1241 | if(ctz.Z < 0) |
1129 | ctz.Z = 0; | 1242 | ctz.Z = 0; |
1130 | 1243 | ||
1131 | if(!m_haveLastFallVel) | 1244 | if(!m_haveLastFallVel) |
@@ -1134,12 +1247,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1134 | m_haveLastFallVel = true; | 1247 | m_haveLastFallVel = true; |
1135 | } | 1248 | } |
1136 | 1249 | ||
1137 | Vector3 n = m_parent_scene.GetTerrainNormalAtXY(posch.X, posch.Y); | 1250 | Vector3 n = m_parent_scene.GetTerrainNormalAtXY(posch.X,posch.Y); |
1138 | float depth = terrainheight - chrminZ; | 1251 | float depth = terrainheight - chrminZ; |
1139 | 1252 | ||
1140 | vec.Z = depth * PID_P * 50; | 1253 | vec.Z = depth * PID_P * 50; |
1141 | 1254 | ||
1142 | if (!m_flying) | 1255 | if(!m_flying) |
1143 | { | 1256 | { |
1144 | vec.Z += -vel.Z * PID_D; | 1257 | vec.Z += -vel.Z * PID_D; |
1145 | if(n.Z < 0.4f) | 1258 | if(n.Z < 0.4f) |
@@ -1155,19 +1268,19 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1155 | n.X = 0f; | 1268 | n.X = 0f; |
1156 | n.Y = 0f; | 1269 | n.Y = 0f; |
1157 | n.Z = 1.0f; | 1270 | n.Z = 1.0f; |
1158 | } | 1271 | } |
1159 | } | 1272 | } |
1160 | } | 1273 | } |
1161 | 1274 | ||
1162 | if (depth < 0.2f) | 1275 | if(depth < 0.2f) |
1163 | { | 1276 | { |
1164 | m_colliderGroundfilter++; | 1277 | m_colliderGroundfilter++; |
1165 | if (m_colliderGroundfilter > 2) | 1278 | if(m_colliderGroundfilter > 2) |
1166 | { | 1279 | { |
1167 | m_iscolliding = true; | 1280 | m_iscolliding = true; |
1168 | m_colliderfilter = 2; | 1281 | m_colliderfilter = 2; |
1169 | 1282 | ||
1170 | if (m_colliderGroundfilter > 10) | 1283 | if(m_colliderGroundfilter > 10) |
1171 | { | 1284 | { |
1172 | m_colliderGroundfilter = 10; | 1285 | m_colliderGroundfilter = 10; |
1173 | m_freemove = false; | 1286 | m_freemove = false; |
@@ -1187,19 +1300,19 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1187 | contact.SurfaceNormal.X = -n.X; | 1300 | contact.SurfaceNormal.X = -n.X; |
1188 | contact.SurfaceNormal.Y = -n.Y; | 1301 | contact.SurfaceNormal.Y = -n.Y; |
1189 | contact.SurfaceNormal.Z = -n.Z; | 1302 | contact.SurfaceNormal.Z = -n.Z; |
1190 | contact.RelativeSpeed = Vector3.Dot(m_lastFallVel, n); | 1303 | contact.RelativeSpeed = Vector3.Dot(m_lastFallVel,n); |
1191 | contact.CharacterFeet = true; | 1304 | contact.CharacterFeet = true; |
1192 | AddCollisionEvent(0, contact); | 1305 | AddCollisionEvent(0,contact); |
1193 | m_lastFallVel = vel; | 1306 | m_lastFallVel = vel; |
1194 | 1307 | ||
1195 | // vec.Z *= 0.5f; | 1308 | // vec.Z *= 0.5f; |
1196 | } | 1309 | } |
1197 | } | 1310 | } |
1198 | 1311 | ||
1199 | else | 1312 | else |
1200 | { | 1313 | { |
1201 | m_colliderGroundfilter -= 5; | 1314 | m_colliderGroundfilter -= 5; |
1202 | if (m_colliderGroundfilter <= 0) | 1315 | if(m_colliderGroundfilter <= 0) |
1203 | { | 1316 | { |
1204 | m_colliderGroundfilter = 0; | 1317 | m_colliderGroundfilter = 0; |
1205 | m_iscollidingGround = false; | 1318 | m_iscollidingGround = false; |
@@ -1210,7 +1323,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1210 | { | 1323 | { |
1211 | m_haveLastFallVel = false; | 1324 | m_haveLastFallVel = false; |
1212 | m_colliderGroundfilter -= 5; | 1325 | m_colliderGroundfilter -= 5; |
1213 | if (m_colliderGroundfilter <= 0) | 1326 | if(m_colliderGroundfilter <= 0) |
1214 | { | 1327 | { |
1215 | m_colliderGroundfilter = 0; | 1328 | m_colliderGroundfilter = 0; |
1216 | m_iscollidingGround = false; | 1329 | m_iscollidingGround = false; |
@@ -1219,11 +1332,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1219 | 1332 | ||
1220 | bool hoverPIDActive = false; | 1333 | bool hoverPIDActive = false; |
1221 | 1334 | ||
1222 | if (m_useHoverPID && m_PIDHoverTau != 0 && m_PIDHoverHeight != 0) | 1335 | if(m_useHoverPID && m_PIDHoverTau != 0 && m_PIDHoverHeight != 0) |
1223 | { | 1336 | { |
1224 | hoverPIDActive = true; | 1337 | hoverPIDActive = true; |
1225 | 1338 | ||
1226 | switch (m_PIDHoverType) | 1339 | switch(m_PIDHoverType) |
1227 | { | 1340 | { |
1228 | case PIDHoverType.Ground: | 1341 | case PIDHoverType.Ground: |
1229 | m_targetHoverHeight = terrainheight + m_PIDHoverHeight; | 1342 | m_targetHoverHeight = terrainheight + m_PIDHoverHeight; |
@@ -1231,20 +1344,20 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1231 | 1344 | ||
1232 | case PIDHoverType.GroundAndWater: | 1345 | case PIDHoverType.GroundAndWater: |
1233 | float waterHeight = m_parent_scene.GetWaterLevel(); | 1346 | float waterHeight = m_parent_scene.GetWaterLevel(); |
1234 | if (terrainheight > waterHeight) | 1347 | if(terrainheight > waterHeight) |
1235 | m_targetHoverHeight = terrainheight + m_PIDHoverHeight; | 1348 | m_targetHoverHeight = terrainheight + m_PIDHoverHeight; |
1236 | else | 1349 | else |
1237 | m_targetHoverHeight = waterHeight + m_PIDHoverHeight; | 1350 | m_targetHoverHeight = waterHeight + m_PIDHoverHeight; |
1238 | break; | 1351 | break; |
1239 | } // end switch (m_PIDHoverType) | 1352 | } // end switch (m_PIDHoverType) |
1240 | 1353 | ||
1241 | // don't go underground | 1354 | // don't go underground |
1242 | if (m_targetHoverHeight > terrainheight + 0.5f * (aabb.MaxZ - aabb.MinZ)) | 1355 | if(m_targetHoverHeight > terrainheight + 0.5f * (aabb.MaxZ - aabb.MinZ)) |
1243 | { | 1356 | { |
1244 | float fz = (m_targetHoverHeight - localpos.Z); | 1357 | float fz = (m_targetHoverHeight - localpos.Z); |
1245 | 1358 | ||
1246 | // if error is zero, use position control; otherwise, velocity control | 1359 | // if error is zero, use position control; otherwise, velocity control |
1247 | if (Math.Abs(fz) < 0.01f) | 1360 | if(Math.Abs(fz) < 0.01f) |
1248 | { | 1361 | { |
1249 | ctz.Z = 0; | 1362 | ctz.Z = 0; |
1250 | } | 1363 | } |
@@ -1254,9 +1367,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1254 | fz /= m_PIDHoverTau; | 1367 | fz /= m_PIDHoverTau; |
1255 | 1368 | ||
1256 | float tmp = Math.Abs(fz); | 1369 | float tmp = Math.Abs(fz); |
1257 | if (tmp > 50) | 1370 | if(tmp > 50) |
1258 | fz = 50 * Math.Sign(fz); | 1371 | fz = 50 * Math.Sign(fz); |
1259 | else if (tmp < 0.1) | 1372 | else if(tmp < 0.1) |
1260 | fz = 0.1f * Math.Sign(fz); | 1373 | fz = 0.1f * Math.Sign(fz); |
1261 | 1374 | ||
1262 | ctz.Z = fz; | 1375 | ctz.Z = fz; |
@@ -1265,43 +1378,43 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1265 | } | 1378 | } |
1266 | 1379 | ||
1267 | //****************************************** | 1380 | //****************************************** |
1268 | if (!m_iscolliding) | 1381 | if(!m_iscolliding) |
1269 | m_collideNormal.Z = 0; | 1382 | m_collideNormal.Z = 0; |
1270 | 1383 | ||
1271 | bool tviszero = (ctz.X == 0.0f && ctz.Y == 0.0f && ctz.Z == 0.0f); | 1384 | bool tviszero = (ctz.X == 0.0f && ctz.Y == 0.0f && ctz.Z == 0.0f); |
1272 | 1385 | ||
1273 | if (!tviszero) | 1386 | if(!tviszero) |
1274 | { | 1387 | { |
1275 | m_freemove = false; | 1388 | m_freemove = false; |
1276 | 1389 | ||
1277 | // movement relative to surface if moving on it | 1390 | // movement relative to surface if moving on it |
1278 | // dont disturbe vertical movement, ie jumps | 1391 | // dont disturbe vertical movement, ie jumps |
1279 | if (m_iscolliding && !m_flying && ctz.Z == 0 && m_collideNormal.Z > 0.2f && m_collideNormal.Z < 0.94f) | 1392 | if(m_iscolliding && !m_flying && ctz.Z == 0 && m_collideNormal.Z > 0.2f && m_collideNormal.Z < 0.94f) |
1280 | { | 1393 | { |
1281 | float p = ctz.X * m_collideNormal.X + ctz.Y * m_collideNormal.Y; | 1394 | float p = ctz.X * m_collideNormal.X + ctz.Y * m_collideNormal.Y; |
1282 | ctz.X *= (float)Math.Sqrt(1 - m_collideNormal.X * m_collideNormal.X); | 1395 | ctz.X *= (float)Math.Sqrt(1 - m_collideNormal.X * m_collideNormal.X); |
1283 | ctz.Y *= (float)Math.Sqrt(1 - m_collideNormal.Y * m_collideNormal.Y); | 1396 | ctz.Y *= (float)Math.Sqrt(1 - m_collideNormal.Y * m_collideNormal.Y); |
1284 | ctz.Z -= p; | 1397 | ctz.Z -= p; |
1285 | if (ctz.Z < 0) | 1398 | if(ctz.Z < 0) |
1286 | ctz.Z *= 2; | 1399 | ctz.Z *= 2; |
1287 | 1400 | ||
1288 | } | 1401 | } |
1289 | 1402 | ||
1290 | } | 1403 | } |
1291 | 1404 | ||
1292 | if (!m_freemove) | 1405 | if(!m_freemove) |
1293 | { | 1406 | { |
1294 | 1407 | ||
1295 | // if velocity is zero, use position control; otherwise, velocity control | 1408 | // if velocity is zero, use position control; otherwise, velocity control |
1296 | if (tviszero && m_iscolliding && !m_flying) | 1409 | if(tviszero && m_iscolliding && !m_flying) |
1297 | { | 1410 | { |
1298 | // keep track of where we stopped. No more slippin' & slidin' | 1411 | // keep track of where we stopped. No more slippin' & slidin' |
1299 | if (!_zeroFlag) | 1412 | if(!_zeroFlag) |
1300 | { | 1413 | { |
1301 | _zeroFlag = true; | 1414 | _zeroFlag = true; |
1302 | _zeroPosition = localpos; | 1415 | _zeroPosition = localpos; |
1303 | } | 1416 | } |
1304 | if (m_pidControllerActive) | 1417 | if(m_pidControllerActive) |
1305 | { | 1418 | { |
1306 | // We only want to deactivate the PID Controller if we think we want to have our surrogate | 1419 | // We only want to deactivate the PID Controller if we think we want to have our surrogate |
1307 | // react to the physics scene by moving it's position. | 1420 | // react to the physics scene by moving it's position. |
@@ -1314,12 +1427,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1314 | vec.Z += -vel.Z * PID_D + (_zeroPosition.Z - localpos.Z) * PID_P; | 1427 | vec.Z += -vel.Z * PID_D + (_zeroPosition.Z - localpos.Z) * PID_P; |
1315 | else | 1428 | else |
1316 | vec.Z += (-vel.Z * PID_D + (_zeroPosition.Z - localpos.Z) * PID_P) * 0.2f; | 1429 | vec.Z += (-vel.Z * PID_D + (_zeroPosition.Z - localpos.Z) * PID_P) * 0.2f; |
1317 | /* | 1430 | /* |
1318 | if (flying) | 1431 | if (flying) |
1319 | { | 1432 | { |
1320 | vec.Z += -vel.Z * PID_D + (_zeroPosition.Z - localpos.Z) * PID_P; | 1433 | vec.Z += -vel.Z * PID_D + (_zeroPosition.Z - localpos.Z) * PID_P; |
1321 | } | 1434 | } |
1322 | */ | 1435 | */ |
1323 | } | 1436 | } |
1324 | //PidStatus = true; | 1437 | //PidStatus = true; |
1325 | } | 1438 | } |
@@ -1328,12 +1441,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1328 | m_pidControllerActive = true; | 1441 | m_pidControllerActive = true; |
1329 | _zeroFlag = false; | 1442 | _zeroFlag = false; |
1330 | 1443 | ||
1331 | if (m_iscolliding) | 1444 | if(m_iscolliding) |
1332 | { | 1445 | { |
1333 | if (!m_flying) | 1446 | if(!m_flying) |
1334 | { | 1447 | { |
1335 | // we are on a surface | 1448 | // we are on a surface |
1336 | if (ctz.Z > 0f) | 1449 | if(ctz.Z > 0f) |
1337 | { | 1450 | { |
1338 | // moving up or JUMPING | 1451 | // moving up or JUMPING |
1339 | vec.Z += (ctz.Z - vel.Z) * PID_D * 2f; | 1452 | vec.Z += (ctz.Z - vel.Z) * PID_D * 2f; |
@@ -1343,9 +1456,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1343 | else | 1456 | else |
1344 | { | 1457 | { |
1345 | // we are moving down on a surface | 1458 | // we are moving down on a surface |
1346 | if (ctz.Z == 0) | 1459 | if(ctz.Z == 0) |
1347 | { | 1460 | { |
1348 | if (vel.Z > 0) | 1461 | if(vel.Z > 0) |
1349 | vec.Z -= vel.Z * PID_D * 2f; | 1462 | vec.Z -= vel.Z * PID_D * 2f; |
1350 | vec.X += (ctz.X - vel.X) * (PID_D); | 1463 | vec.X += (ctz.X - vel.X) * (PID_D); |
1351 | vec.Y += (ctz.Y - vel.Y) * (PID_D); | 1464 | vec.Y += (ctz.Y - vel.Y) * (PID_D); |
@@ -1353,15 +1466,15 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1353 | // intencionally going down | 1466 | // intencionally going down |
1354 | else | 1467 | else |
1355 | { | 1468 | { |
1356 | if (ctz.Z < vel.Z) | 1469 | if(ctz.Z < vel.Z) |
1357 | vec.Z += (ctz.Z - vel.Z) * PID_D; | 1470 | vec.Z += (ctz.Z - vel.Z) * PID_D; |
1358 | else | 1471 | else |
1359 | { | 1472 | { |
1360 | } | 1473 | } |
1361 | 1474 | ||
1362 | if (Math.Abs(ctz.X) > Math.Abs(vel.X)) | 1475 | if(Math.Abs(ctz.X) > Math.Abs(vel.X)) |
1363 | vec.X += (ctz.X - vel.X) * (PID_D); | 1476 | vec.X += (ctz.X - vel.X) * (PID_D); |
1364 | if (Math.Abs(ctz.Y) > Math.Abs(vel.Y)) | 1477 | if(Math.Abs(ctz.Y) > Math.Abs(vel.Y)) |
1365 | vec.Y += (ctz.Y - vel.Y) * (PID_D); | 1478 | vec.Y += (ctz.Y - vel.Y) * (PID_D); |
1366 | } | 1479 | } |
1367 | } | 1480 | } |
@@ -1378,7 +1491,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1378 | } | 1491 | } |
1379 | else // ie not colliding | 1492 | else // ie not colliding |
1380 | { | 1493 | { |
1381 | if (m_flying || hoverPIDActive) //(!m_iscolliding && flying) | 1494 | if(m_flying || hoverPIDActive) //(!m_iscolliding && flying) |
1382 | { | 1495 | { |
1383 | // we're in mid air suspended | 1496 | // we're in mid air suspended |
1384 | vec.X += (ctz.X - vel.X) * (PID_D); | 1497 | vec.X += (ctz.X - vel.X) * (PID_D); |
@@ -1395,13 +1508,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1395 | vec.X += (ctz.X - vel.X) * PID_D * 0.833f; | 1508 | vec.X += (ctz.X - vel.X) * PID_D * 0.833f; |
1396 | vec.Y += (ctz.Y - vel.Y) * PID_D * 0.833f; | 1509 | vec.Y += (ctz.Y - vel.Y) * PID_D * 0.833f; |
1397 | // hack for breaking on fall | 1510 | // hack for breaking on fall |
1398 | if (ctz.Z == -9999f) | 1511 | if(ctz.Z == -9999f) |
1399 | vec.Z += -vel.Z * PID_D - m_parent_scene.gravityz * m_mass; | 1512 | vec.Z += -vel.Z * PID_D - m_parent_scene.gravityz * m_mass; |
1400 | } | 1513 | } |
1401 | } | 1514 | } |
1402 | } | 1515 | } |
1403 | 1516 | ||
1404 | if (velLengthSquared > 2500.0f) // 50m/s apply breaks | 1517 | if(velLengthSquared > 2500.0f) // 50m/s apply breaks |
1405 | { | 1518 | { |
1406 | breakfactor = 0.16f * m_mass; | 1519 | breakfactor = 0.16f * m_mass; |
1407 | vec.X -= breakfactor * vel.X; | 1520 | vec.X -= breakfactor * vel.X; |
@@ -1414,13 +1527,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1414 | breakfactor = m_mass; | 1527 | breakfactor = m_mass; |
1415 | vec.X -= breakfactor * vel.X; | 1528 | vec.X -= breakfactor * vel.X; |
1416 | vec.Y -= breakfactor * vel.Y; | 1529 | vec.Y -= breakfactor * vel.Y; |
1417 | if (m_flying) | 1530 | if(m_flying) |
1418 | vec.Z -= 0.5f * breakfactor * vel.Z; | 1531 | vec.Z -= 0.5f * breakfactor * vel.Z; |
1419 | else | 1532 | else |
1420 | vec.Z -= .16f* m_mass * vel.Z; | 1533 | vec.Z -= .16f* m_mass * vel.Z; |
1421 | } | 1534 | } |
1422 | 1535 | ||
1423 | if (m_flying || hoverPIDActive) | 1536 | if(m_flying || hoverPIDActive) |
1424 | { | 1537 | { |
1425 | vec.Z -= m_parent_scene.gravityz * m_mass; | 1538 | vec.Z -= m_parent_scene.gravityz * m_mass; |
1426 | 1539 | ||
@@ -1429,18 +1542,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1429 | //Added for auto fly height. Kitto Flora | 1542 | //Added for auto fly height. Kitto Flora |
1430 | float target_altitude = terrainheight + MinimumGroundFlightOffset; | 1543 | float target_altitude = terrainheight + MinimumGroundFlightOffset; |
1431 | 1544 | ||
1432 | if (localpos.Z < target_altitude) | 1545 | if(localpos.Z < target_altitude) |
1433 | { | 1546 | { |
1434 | vec.Z += (target_altitude - localpos.Z) * PID_P * 5.0f; | 1547 | vec.Z += (target_altitude - localpos.Z) * PID_P * 5.0f; |
1435 | } | 1548 | } |
1436 | // end add Kitto Flora | 1549 | // end add Kitto Flora |
1437 | } | 1550 | } |
1438 | } | 1551 | } |
1439 | 1552 | ||
1440 | if (vec.IsFinite()) | 1553 | if(vec.IsFinite()) |
1441 | { | 1554 | { |
1442 | if (vec.X != 0 || vec.Y !=0 || vec.Z !=0) | 1555 | if(vec.X != 0 || vec.Y !=0 || vec.Z !=0) |
1443 | d.BodyAddForce(Body, vec.X, vec.Y, vec.Z); | 1556 | SafeNativeMethods.BodyAddForce(Body,vec.X,vec.Y,vec.Z); |
1444 | } | 1557 | } |
1445 | else | 1558 | else |
1446 | { | 1559 | { |
@@ -1457,7 +1570,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1457 | // _position = localpos; | 1570 | // _position = localpos; |
1458 | _position = localpos; | 1571 | _position = localpos; |
1459 | 1572 | ||
1460 | if (_zeroFlag) | 1573 | if(_zeroFlag) |
1461 | { | 1574 | { |
1462 | _velocity = Vector3.Zero; | 1575 | _velocity = Vector3.Zero; |
1463 | _acceleration = Vector3.Zero; | 1576 | _acceleration = Vector3.Zero; |
@@ -1465,12 +1578,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1465 | } | 1578 | } |
1466 | else | 1579 | else |
1467 | { | 1580 | { |
1468 | Vector3 a =_velocity; // previus velocity | 1581 | Vector3 a = _velocity; // previus velocity |
1469 | SetSmooth(ref _velocity, ref vel, 2); | 1582 | SetSmooth(ref _velocity,ref vel,2); |
1470 | a = (_velocity - a) * invtimeStep; | 1583 | a = (_velocity - a) * invtimeStep; |
1471 | SetSmooth(ref _acceleration, ref a, 2); | 1584 | SetSmooth(ref _acceleration,ref a,2); |
1472 | 1585 | ||
1473 | dtmp = d.BodyGetAngularVel(Body); | 1586 | dtmp = SafeNativeMethods.BodyGetAngularVel(Body); |
1474 | m_rotationalVelocity.X = 0f; | 1587 | m_rotationalVelocity.X = 0f; |
1475 | m_rotationalVelocity.Y = 0f; | 1588 | m_rotationalVelocity.Y = 0f; |
1476 | m_rotationalVelocity.Z = dtmp.Z; | 1589 | m_rotationalVelocity.Z = dtmp.Z; |
@@ -1478,30 +1591,30 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1478 | } | 1591 | } |
1479 | } | 1592 | } |
1480 | 1593 | ||
1481 | public void round(ref Vector3 v, int digits) | 1594 | public void round(ref Vector3 v,int digits) |
1482 | { | 1595 | { |
1483 | v.X = (float)Math.Round(v.X, digits); | 1596 | v.X = (float)Math.Round(v.X,digits); |
1484 | v.Y = (float)Math.Round(v.Y, digits); | 1597 | v.Y = (float)Math.Round(v.Y,digits); |
1485 | v.Z = (float)Math.Round(v.Z, digits); | 1598 | v.Z = (float)Math.Round(v.Z,digits); |
1486 | } | 1599 | } |
1487 | 1600 | ||
1488 | public void SetSmooth(ref Vector3 dst, ref Vector3 value) | 1601 | public void SetSmooth(ref Vector3 dst,ref Vector3 value) |
1489 | { | 1602 | { |
1490 | dst.X = 0.1f * dst.X + 0.9f * value.X; | 1603 | dst.X = 0.1f * dst.X + 0.9f * value.X; |
1491 | dst.Y = 0.1f * dst.Y + 0.9f * value.Y; | 1604 | dst.Y = 0.1f * dst.Y + 0.9f * value.Y; |
1492 | dst.Z = 0.1f * dst.Z + 0.9f * value.Z; | 1605 | dst.Z = 0.1f * dst.Z + 0.9f * value.Z; |
1493 | } | 1606 | } |
1494 | 1607 | ||
1495 | public void SetSmooth(ref Vector3 dst, ref Vector3 value, int rounddigits) | 1608 | public void SetSmooth(ref Vector3 dst,ref Vector3 value,int rounddigits) |
1496 | { | 1609 | { |
1497 | dst.X = 0.4f * dst.X + 0.6f * value.X; | 1610 | dst.X = 0.4f * dst.X + 0.6f * value.X; |
1498 | dst.X = (float)Math.Round(dst.X, rounddigits); | 1611 | dst.X = (float)Math.Round(dst.X,rounddigits); |
1499 | 1612 | ||
1500 | dst.Y = 0.4f * dst.Y + 0.6f * value.Y; | 1613 | dst.Y = 0.4f * dst.Y + 0.6f * value.Y; |
1501 | dst.Y = (float)Math.Round(dst.Y, rounddigits); | 1614 | dst.Y = (float)Math.Round(dst.Y,rounddigits); |
1502 | 1615 | ||
1503 | dst.Z = 0.4f * dst.Z + 0.6f * value.Z; | 1616 | dst.Z = 0.4f * dst.Z + 0.6f * value.Z; |
1504 | dst.Z = (float)Math.Round(dst.Z, rounddigits); | 1617 | dst.Z = (float)Math.Round(dst.Z,rounddigits); |
1505 | } | 1618 | } |
1506 | 1619 | ||
1507 | 1620 | ||
@@ -1516,8 +1629,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1516 | { | 1629 | { |
1517 | return; | 1630 | return; |
1518 | 1631 | ||
1519 | // if (Body == IntPtr.Zero) | 1632 | // if (Body == IntPtr.Zero) |
1520 | // return; | 1633 | // return; |
1521 | 1634 | ||
1522 | } | 1635 | } |
1523 | 1636 | ||
@@ -1526,16 +1639,38 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1526 | /// </summary> | 1639 | /// </summary> |
1527 | public void Destroy() | 1640 | public void Destroy() |
1528 | { | 1641 | { |
1529 | AddChange(changes.Remove, null); | 1642 | AddChange(changes.Remove,null); |
1530 | } | 1643 | } |
1531 | 1644 | ||
1532 | public override void CrossingFailure() | 1645 | public override void CrossingFailure() |
1533 | { | 1646 | { |
1534 | } | 1647 | } |
1535 | 1648 | ||
1536 | public override Vector3 PIDTarget { set { return; } } | 1649 | public override Vector3 PIDTarget |
1537 | public override bool PIDActive {get {return m_pidControllerActive;} set { return; } } | 1650 | { |
1538 | public override float PIDTau { set { return; } } | 1651 | set |
1652 | { | ||
1653 | return; | ||
1654 | } | ||
1655 | } | ||
1656 | public override bool PIDActive | ||
1657 | { | ||
1658 | get | ||
1659 | { | ||
1660 | return m_pidControllerActive; | ||
1661 | } | ||
1662 | set | ||
1663 | { | ||
1664 | return; | ||
1665 | } | ||
1666 | } | ||
1667 | public override float PIDTau | ||
1668 | { | ||
1669 | set | ||
1670 | { | ||
1671 | return; | ||
1672 | } | ||
1673 | } | ||
1539 | 1674 | ||
1540 | public override float PIDHoverHeight | 1675 | public override float PIDHoverHeight |
1541 | { | 1676 | { |
@@ -1548,11 +1683,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1548 | { | 1683 | { |
1549 | get | 1684 | get |
1550 | { | 1685 | { |
1551 | return m_useHoverPID; | 1686 | return m_useHoverPID; |
1552 | } | 1687 | } |
1553 | set | 1688 | set |
1554 | { | 1689 | { |
1555 | AddChange(changes.PIDHoverActive, value); | 1690 | AddChange(changes.PIDHoverActive,value); |
1556 | } | 1691 | } |
1557 | } | 1692 | } |
1558 | 1693 | ||
@@ -1568,26 +1703,50 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1568 | { | 1703 | { |
1569 | set | 1704 | set |
1570 | { | 1705 | { |
1571 | float tmp =0; | 1706 | float tmp = 0; |
1572 | if (value > 0) | 1707 | if(value > 0) |
1573 | { | 1708 | { |
1574 | float mint = (0.05f > timeStep ? 0.05f : timeStep); | 1709 | float mint = (0.05f > timeStep ? 0.05f : timeStep); |
1575 | if (value < mint) | 1710 | if(value < mint) |
1576 | tmp = mint; | 1711 | tmp = mint; |
1577 | else | 1712 | else |
1578 | tmp = value; | 1713 | tmp = value; |
1579 | } | 1714 | } |
1580 | AddChange(changes.PIDHoverTau, tmp); | 1715 | AddChange(changes.PIDHoverTau,tmp); |
1581 | } | 1716 | } |
1582 | } | 1717 | } |
1583 | 1718 | ||
1584 | public override Quaternion APIDTarget { set { return; } } | 1719 | public override Quaternion APIDTarget |
1720 | { | ||
1721 | set | ||
1722 | { | ||
1723 | return; | ||
1724 | } | ||
1725 | } | ||
1585 | 1726 | ||
1586 | public override bool APIDActive { set { return; } } | 1727 | public override bool APIDActive |
1728 | { | ||
1729 | set | ||
1730 | { | ||
1731 | return; | ||
1732 | } | ||
1733 | } | ||
1587 | 1734 | ||
1588 | public override float APIDStrength { set { return; } } | 1735 | public override float APIDStrength |
1736 | { | ||
1737 | set | ||
1738 | { | ||
1739 | return; | ||
1740 | } | ||
1741 | } | ||
1589 | 1742 | ||
1590 | public override float APIDDamping { set { return; } } | 1743 | public override float APIDDamping |
1744 | { | ||
1745 | set | ||
1746 | { | ||
1747 | return; | ||
1748 | } | ||
1749 | } | ||
1591 | 1750 | ||
1592 | public override void SubscribeEvents(int ms) | 1751 | public override void SubscribeEvents(int ms) |
1593 | { | 1752 | { |
@@ -1605,34 +1764,34 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1605 | CollisionEventsThisFrame.Clear(); | 1764 | CollisionEventsThisFrame.Clear(); |
1606 | } | 1765 | } |
1607 | 1766 | ||
1608 | public override void AddCollisionEvent(uint CollidedWith, ContactPoint contact) | 1767 | public override void AddCollisionEvent(uint CollidedWith,ContactPoint contact) |
1609 | { | 1768 | { |
1610 | lock(CollisionEventsThisFrame) | 1769 | lock(CollisionEventsThisFrame) |
1611 | CollisionEventsThisFrame.AddCollider(CollidedWith, contact); | 1770 | CollisionEventsThisFrame.AddCollider(CollidedWith,contact); |
1612 | m_parent_scene.AddCollisionEventReporting(this); | 1771 | m_parent_scene.AddCollisionEventReporting(this); |
1613 | } | 1772 | } |
1614 | 1773 | ||
1615 | public void SendCollisions(int timestep) | 1774 | public void SendCollisions(int timestep) |
1616 | { | 1775 | { |
1617 | if (m_cureventsubscription < 50000) | 1776 | if(m_cureventsubscription < 50000) |
1618 | m_cureventsubscription += timestep; | 1777 | m_cureventsubscription += timestep; |
1619 | 1778 | ||
1620 | if (m_cureventsubscription < m_eventsubscription) | 1779 | if(m_cureventsubscription < m_eventsubscription) |
1621 | return; | 1780 | return; |
1622 | 1781 | ||
1623 | lock(CollisionEventsThisFrame) | 1782 | lock(CollisionEventsThisFrame) |
1624 | { | 1783 | { |
1625 | int ncolisions = CollisionEventsThisFrame.m_objCollisionList.Count; | 1784 | int ncolisions = CollisionEventsThisFrame.m_objCollisionList.Count; |
1626 | 1785 | ||
1627 | if (!SentEmptyCollisionsEvent || ncolisions > 0) | 1786 | if(!SentEmptyCollisionsEvent || ncolisions > 0) |
1628 | { | 1787 | { |
1629 | base.SendCollisionUpdate(CollisionEventsThisFrame); | 1788 | base.SendCollisionUpdate(CollisionEventsThisFrame); |
1630 | m_cureventsubscription = 0; | 1789 | m_cureventsubscription = 0; |
1631 | 1790 | ||
1632 | if (ncolisions == 0) | 1791 | if(ncolisions == 0) |
1633 | { | 1792 | { |
1634 | SentEmptyCollisionsEvent = true; | 1793 | SentEmptyCollisionsEvent = true; |
1635 | // _parent_scene.RemoveCollisionEventReporting(this); | 1794 | // _parent_scene.RemoveCollisionEventReporting(this); |
1636 | } | 1795 | } |
1637 | else | 1796 | else |
1638 | { | 1797 | { |
@@ -1645,20 +1804,20 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1645 | 1804 | ||
1646 | public override bool SubscribedEvents() | 1805 | public override bool SubscribedEvents() |
1647 | { | 1806 | { |
1648 | if (m_eventsubscription > 0) | 1807 | if(m_eventsubscription > 0) |
1649 | return true; | 1808 | return true; |
1650 | return false; | 1809 | return false; |
1651 | } | 1810 | } |
1652 | 1811 | ||
1653 | private void changePhysicsStatus(bool NewStatus) | 1812 | private void changePhysicsStatus(bool NewStatus) |
1654 | { | 1813 | { |
1655 | if (NewStatus != m_isPhysical) | 1814 | if(NewStatus != m_isPhysical) |
1656 | { | 1815 | { |
1657 | if (NewStatus) | 1816 | if(NewStatus) |
1658 | { | 1817 | { |
1659 | AvatarGeomAndBodyDestroy(); | 1818 | AvatarGeomAndBodyDestroy(); |
1660 | 1819 | ||
1661 | AvatarGeomAndBodyCreation(_position.X, _position.Y, _position.Z); | 1820 | AvatarGeomAndBodyCreation(_position.X,_position.Y,_position.Z); |
1662 | 1821 | ||
1663 | m_parent_scene.actor_name_map[collider] = (PhysicsActor)this; | 1822 | m_parent_scene.actor_name_map[collider] = (PhysicsActor)this; |
1664 | m_parent_scene.actor_name_map[capsule] = (PhysicsActor)this; | 1823 | m_parent_scene.actor_name_map[capsule] = (PhysicsActor)this; |
@@ -1698,20 +1857,20 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1698 | 1857 | ||
1699 | private void changeSize(Vector3 pSize) | 1858 | private void changeSize(Vector3 pSize) |
1700 | { | 1859 | { |
1701 | if (pSize.IsFinite()) | 1860 | if(pSize.IsFinite()) |
1702 | { | 1861 | { |
1703 | // for now only look to Z changes since viewers also don't change X and Y | 1862 | // for now only look to Z changes since viewers also don't change X and Y |
1704 | if (pSize.Z != m_size.Z) | 1863 | if(pSize.Z != m_size.Z) |
1705 | { | 1864 | { |
1706 | AvatarGeomAndBodyDestroy(); | 1865 | AvatarGeomAndBodyDestroy(); |
1707 | 1866 | ||
1708 | float oldsz = m_size.Z; | 1867 | float oldsz = m_size.Z; |
1709 | m_size = pSize; | 1868 | m_size = pSize; |
1710 | 1869 | ||
1711 | AvatarGeomAndBodyCreation(_position.X, _position.Y, | 1870 | AvatarGeomAndBodyCreation(_position.X,_position.Y, |
1712 | _position.Z + (m_size.Z - oldsz) * 0.5f); | 1871 | _position.Z + (m_size.Z - oldsz) * 0.5f); |
1713 | 1872 | ||
1714 | // Velocity = Vector3.Zero; | 1873 | // Velocity = Vector3.Zero; |
1715 | m_targetVelocity = Vector3.Zero; | 1874 | m_targetVelocity = Vector3.Zero; |
1716 | 1875 | ||
1717 | m_parent_scene.actor_name_map[collider] = (PhysicsActor)this; | 1876 | m_parent_scene.actor_name_map[collider] = (PhysicsActor)this; |
@@ -1726,18 +1885,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1726 | } | 1885 | } |
1727 | } | 1886 | } |
1728 | 1887 | ||
1729 | private void changePosition( Vector3 newPos) | 1888 | private void changePosition(Vector3 newPos) |
1730 | { | 1889 | { |
1731 | if (Body != IntPtr.Zero) | 1890 | if(Body != IntPtr.Zero) |
1732 | d.BodySetPosition(Body, newPos.X, newPos.Y, newPos.Z); | 1891 | SafeNativeMethods.BodySetPosition(Body,newPos.X,newPos.Y,newPos.Z); |
1733 | _position = newPos; | 1892 | _position = newPos; |
1734 | m_freemove = false; | 1893 | m_freemove = false; |
1735 | m_pidControllerActive = true; | 1894 | m_pidControllerActive = true; |
1736 | } | 1895 | } |
1737 | 1896 | ||
1738 | private void changeOrientation(Quaternion newOri) | 1897 | private void changeOrientation(Quaternion newOri) |
1739 | { | 1898 | { |
1740 | if (m_orientation != newOri) | 1899 | if(m_orientation != newOri) |
1741 | { | 1900 | { |
1742 | m_orientation = newOri; // keep a copy for core use | 1901 | m_orientation = newOri; // keep a copy for core use |
1743 | // but only use rotations around Z | 1902 | // but only use rotations around Z |
@@ -1746,7 +1905,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1746 | m_orientation2D.Z = newOri.Z; | 1905 | m_orientation2D.Z = newOri.Z; |
1747 | 1906 | ||
1748 | float t = m_orientation2D.W * m_orientation2D.W + m_orientation2D.Z * m_orientation2D.Z; | 1907 | float t = m_orientation2D.W * m_orientation2D.W + m_orientation2D.Z * m_orientation2D.Z; |
1749 | if (t > 0) | 1908 | if(t > 0) |
1750 | { | 1909 | { |
1751 | t = 1.0f / (float)Math.Sqrt(t); | 1910 | t = 1.0f / (float)Math.Sqrt(t); |
1752 | m_orientation2D.W *= t; | 1911 | m_orientation2D.W *= t; |
@@ -1760,12 +1919,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1760 | m_orientation2D.Y = 0f; | 1919 | m_orientation2D.Y = 0f; |
1761 | m_orientation2D.X = 0f; | 1920 | m_orientation2D.X = 0f; |
1762 | 1921 | ||
1763 | d.Quaternion myrot = new d.Quaternion(); | 1922 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
1764 | myrot.X = m_orientation2D.X; | 1923 | myrot.X = m_orientation2D.X; |
1765 | myrot.Y = m_orientation2D.Y; | 1924 | myrot.Y = m_orientation2D.Y; |
1766 | myrot.Z = m_orientation2D.Z; | 1925 | myrot.Z = m_orientation2D.Z; |
1767 | myrot.W = m_orientation2D.W; | 1926 | myrot.W = m_orientation2D.W; |
1768 | d.BodySetQuaternion(Body, ref myrot); | 1927 | SafeNativeMethods.BodySetQuaternion(Body,ref myrot); |
1769 | } | 1928 | } |
1770 | } | 1929 | } |
1771 | 1930 | ||
@@ -1774,8 +1933,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1774 | _velocity = newVel; | 1933 | _velocity = newVel; |
1775 | setFreeMove(); | 1934 | setFreeMove(); |
1776 | 1935 | ||
1777 | if (Body != IntPtr.Zero) | 1936 | if(Body != IntPtr.Zero) |
1778 | d.BodySetLinearVel(Body, newVel.X, newVel.Y, newVel.Z); | 1937 | SafeNativeMethods.BodySetLinearVel(Body,newVel.X,newVel.Y,newVel.Z); |
1779 | } | 1938 | } |
1780 | 1939 | ||
1781 | private void changeTargetVelocity(Vector3 newVel) | 1940 | private void changeTargetVelocity(Vector3 newVel) |
@@ -1842,10 +2001,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1842 | { | 2001 | { |
1843 | setFreeMove(); | 2002 | setFreeMove(); |
1844 | 2003 | ||
1845 | if (Body != IntPtr.Zero) | 2004 | if(Body != IntPtr.Zero) |
1846 | { | 2005 | { |
1847 | if (newForce.X != 0f || newForce.Y != 0f || newForce.Z != 0) | 2006 | if(newForce.X != 0f || newForce.Y != 0f || newForce.Z != 0) |
1848 | d.BodyAddForce(Body, newForce.X, newForce.Y, newForce.Z); | 2007 | SafeNativeMethods.BodyAddForce(Body,newForce.X,newForce.Y,newForce.Z); |
1849 | } | 2008 | } |
1850 | } | 2009 | } |
1851 | 2010 | ||
@@ -1855,15 +2014,15 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1855 | _velocity = newmomentum; | 2014 | _velocity = newmomentum; |
1856 | setFreeMove(); | 2015 | setFreeMove(); |
1857 | 2016 | ||
1858 | if (Body != IntPtr.Zero) | 2017 | if(Body != IntPtr.Zero) |
1859 | d.BodySetLinearVel(Body, newmomentum.X, newmomentum.Y, newmomentum.Z); | 2018 | SafeNativeMethods.BodySetLinearVel(Body,newmomentum.X,newmomentum.Y,newmomentum.Z); |
1860 | } | 2019 | } |
1861 | 2020 | ||
1862 | private void changePIDHoverHeight(float val) | 2021 | private void changePIDHoverHeight(float val) |
1863 | { | 2022 | { |
1864 | m_PIDHoverHeight = val; | 2023 | m_PIDHoverHeight = val; |
1865 | if (val == 0) | 2024 | if(val == 0) |
1866 | m_useHoverPID = false; | 2025 | m_useHoverPID = false; |
1867 | } | 2026 | } |
1868 | 2027 | ||
1869 | private void changePIDHoverType(PIDHoverType type) | 2028 | private void changePIDHoverType(PIDHoverType type) |
@@ -1885,15 +2044,15 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1885 | { | 2044 | { |
1886 | } | 2045 | } |
1887 | 2046 | ||
1888 | public bool DoAChange(changes what, object arg) | 2047 | public bool DoAChange(changes what,object arg) |
1889 | { | 2048 | { |
1890 | if (collider == IntPtr.Zero && what != changes.Add && what != changes.Remove) | 2049 | if(collider == IntPtr.Zero && what != changes.Add && what != changes.Remove) |
1891 | { | 2050 | { |
1892 | return false; | 2051 | return false; |
1893 | } | 2052 | } |
1894 | 2053 | ||
1895 | // nasty switch | 2054 | // nasty switch |
1896 | switch (what) | 2055 | switch(what) |
1897 | { | 2056 | { |
1898 | case changes.Add: | 2057 | case changes.Add: |
1899 | changeAdd(); | 2058 | changeAdd(); |
@@ -1981,35 +2140,35 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1981 | changePIDHoverActive((bool)arg); | 2140 | changePIDHoverActive((bool)arg); |
1982 | break; | 2141 | break; |
1983 | 2142 | ||
1984 | /* not in use for now | 2143 | /* not in use for now |
1985 | case changes.Shape: | 2144 | case changes.Shape: |
1986 | changeShape((PrimitiveBaseShape)arg); | 2145 | changeShape((PrimitiveBaseShape)arg); |
1987 | break; | 2146 | break; |
1988 | 2147 | ||
1989 | case changes.CollidesWater: | 2148 | case changes.CollidesWater: |
1990 | changeFloatOnWater((bool)arg); | 2149 | changeFloatOnWater((bool)arg); |
1991 | break; | 2150 | break; |
1992 | 2151 | ||
1993 | case changes.VolumeDtc: | 2152 | case changes.VolumeDtc: |
1994 | changeVolumedetetion((bool)arg); | 2153 | changeVolumedetetion((bool)arg); |
1995 | break; | 2154 | break; |
1996 | 2155 | ||
1997 | case changes.Physical: | 2156 | case changes.Physical: |
1998 | changePhysicsStatus((bool)arg); | 2157 | changePhysicsStatus((bool)arg); |
1999 | break; | 2158 | break; |
2000 | 2159 | ||
2001 | case changes.Selected: | 2160 | case changes.Selected: |
2002 | changeSelectedStatus((bool)arg); | 2161 | changeSelectedStatus((bool)arg); |
2003 | break; | 2162 | break; |
2004 | 2163 | ||
2005 | case changes.disabled: | 2164 | case changes.disabled: |
2006 | changeDisable((bool)arg); | 2165 | changeDisable((bool)arg); |
2007 | break; | 2166 | break; |
2008 | 2167 | ||
2009 | case changes.building: | 2168 | case changes.building: |
2010 | changeBuilding((bool)arg); | 2169 | changeBuilding((bool)arg); |
2011 | break; | 2170 | break; |
2012 | */ | 2171 | */ |
2013 | case changes.Null: | 2172 | case changes.Null: |
2014 | donullchange(); | 2173 | donullchange(); |
2015 | break; | 2174 | break; |
@@ -2021,9 +2180,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2021 | return false; | 2180 | return false; |
2022 | } | 2181 | } |
2023 | 2182 | ||
2024 | public void AddChange(changes what, object arg) | 2183 | public void AddChange(changes what,object arg) |
2025 | { | 2184 | { |
2026 | m_parent_scene.AddChange((PhysicsActor)this, what, arg); | 2185 | m_parent_scene.AddChange((PhysicsActor)this,what,arg); |
2027 | } | 2186 | } |
2028 | 2187 | ||
2029 | private struct strAvatarSize | 2188 | private struct strAvatarSize |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs index ce10065..23b1192 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs | |||
@@ -41,13 +41,7 @@ | |||
41 | // Extensive change Ubit 2012 | 41 | // Extensive change Ubit 2012 |
42 | 42 | ||
43 | using System; | 43 | using System; |
44 | using System.Collections.Generic; | ||
45 | using System.Reflection; | ||
46 | using System.Runtime.InteropServices; | ||
47 | using log4net; | ||
48 | using OpenMetaverse; | 44 | using OpenMetaverse; |
49 | using OdeAPI; | ||
50 | using OpenSim.Framework; | ||
51 | using OpenSim.Region.PhysicsModules.SharedBase; | 45 | using OpenSim.Region.PhysicsModules.SharedBase; |
52 | 46 | ||
53 | namespace OpenSim.Region.PhysicsModule.ubOde | 47 | namespace OpenSim.Region.PhysicsModule.ubOde |
@@ -342,9 +336,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
342 | m_amEfect = 1.0f ; // turn it on | 336 | m_amEfect = 1.0f ; // turn it on |
343 | m_amDecay = 1.0f - 1.0f / m_angularMotorDecayTimescale; | 337 | m_amDecay = 1.0f - 1.0f / m_angularMotorDecayTimescale; |
344 | 338 | ||
345 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) | 339 | if (rootPrim.Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(rootPrim.Body) |
346 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) | 340 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) |
347 | d.BodyEnable(rootPrim.Body); | 341 | SafeNativeMethods.BodyEnable(rootPrim.Body); |
348 | 342 | ||
349 | break; | 343 | break; |
350 | case Vehicle.LINEAR_FRICTION_TIMESCALE: | 344 | case Vehicle.LINEAR_FRICTION_TIMESCALE: |
@@ -361,9 +355,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
361 | m_lmEfect = 1.0f; // turn it on | 355 | m_lmEfect = 1.0f; // turn it on |
362 | 356 | ||
363 | m_ffactor = 0.0f; | 357 | m_ffactor = 0.0f; |
364 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) | 358 | if (rootPrim.Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(rootPrim.Body) |
365 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) | 359 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) |
366 | d.BodyEnable(rootPrim.Body); | 360 | SafeNativeMethods.BodyEnable(rootPrim.Body); |
367 | break; | 361 | break; |
368 | case Vehicle.LINEAR_MOTOR_OFFSET: | 362 | case Vehicle.LINEAR_MOTOR_OFFSET: |
369 | m_linearMotorOffset = new Vector3(pValue, pValue, pValue); | 363 | m_linearMotorOffset = new Vector3(pValue, pValue, pValue); |
@@ -399,9 +393,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
399 | m_amEfect = 1.0f; // turn it on | 393 | m_amEfect = 1.0f; // turn it on |
400 | m_amDecay = 1.0f - 1.0f / m_angularMotorDecayTimescale; | 394 | m_amDecay = 1.0f - 1.0f / m_angularMotorDecayTimescale; |
401 | 395 | ||
402 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) | 396 | if (rootPrim.Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(rootPrim.Body) |
403 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) | 397 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) |
404 | d.BodyEnable(rootPrim.Body); | 398 | SafeNativeMethods.BodyEnable(rootPrim.Body); |
405 | break; | 399 | break; |
406 | case Vehicle.LINEAR_FRICTION_TIMESCALE: | 400 | case Vehicle.LINEAR_FRICTION_TIMESCALE: |
407 | if (pValue.X < m_timestep) pValue.X = m_timestep; | 401 | if (pValue.X < m_timestep) pValue.X = m_timestep; |
@@ -419,9 +413,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
419 | m_lmDecay = 1.0f - 1.0f / m_linearMotorDecayTimescale; | 413 | m_lmDecay = 1.0f - 1.0f / m_linearMotorDecayTimescale; |
420 | 414 | ||
421 | m_ffactor = 0.0f; | 415 | m_ffactor = 0.0f; |
422 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) | 416 | if (rootPrim.Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(rootPrim.Body) |
423 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) | 417 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) |
424 | d.BodyEnable(rootPrim.Body); | 418 | SafeNativeMethods.BodyEnable(rootPrim.Body); |
425 | break; | 419 | break; |
426 | case Vehicle.LINEAR_MOTOR_OFFSET: | 420 | case Vehicle.LINEAR_MOTOR_OFFSET: |
427 | m_linearMotorOffset = new Vector3(pValue.X, pValue.Y, pValue.Z); | 421 | m_linearMotorOffset = new Vector3(pValue.X, pValue.Y, pValue.Z); |
@@ -772,30 +766,30 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
772 | { | 766 | { |
773 | IntPtr Body = rootPrim.Body; | 767 | IntPtr Body = rootPrim.Body; |
774 | 768 | ||
775 | d.Mass dmass; | 769 | SafeNativeMethods.Mass dmass; |
776 | d.BodyGetMass(Body, out dmass); | 770 | SafeNativeMethods.BodyGetMass(Body, out dmass); |
777 | 771 | ||
778 | d.Quaternion rot = d.BodyGetQuaternion(Body); | 772 | SafeNativeMethods.Quaternion rot = SafeNativeMethods.BodyGetQuaternion(Body); |
779 | Quaternion objrotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); // rotq = rotation of object | 773 | Quaternion objrotq = new Quaternion(rot.X, rot.Y, rot.Z, rot.W); // rotq = rotation of object |
780 | Quaternion rotq = objrotq; // rotq = rotation of object | 774 | Quaternion rotq = objrotq; // rotq = rotation of object |
781 | rotq *= m_referenceFrame; // rotq is now rotation in vehicle reference frame | 775 | rotq *= m_referenceFrame; // rotq is now rotation in vehicle reference frame |
782 | Quaternion irotq = Quaternion.Inverse(rotq); | 776 | Quaternion irotq = Quaternion.Inverse(rotq); |
783 | 777 | ||
784 | d.Vector3 dvtmp; | 778 | SafeNativeMethods.Vector3 dvtmp; |
785 | Vector3 tmpV; | 779 | Vector3 tmpV; |
786 | Vector3 curVel; // velocity in world | 780 | Vector3 curVel; // velocity in world |
787 | Vector3 curAngVel; // angular velocity in world | 781 | Vector3 curAngVel; // angular velocity in world |
788 | Vector3 force = Vector3.Zero; // actually linear aceleration until mult by mass in world frame | 782 | Vector3 force = Vector3.Zero; // actually linear aceleration until mult by mass in world frame |
789 | Vector3 torque = Vector3.Zero;// actually angular aceleration until mult by Inertia in vehicle frame | 783 | Vector3 torque = Vector3.Zero;// actually angular aceleration until mult by Inertia in vehicle frame |
790 | d.Vector3 dtorque = new d.Vector3(); | 784 | SafeNativeMethods.Vector3 dtorque = new SafeNativeMethods.Vector3(); |
791 | 785 | ||
792 | dvtmp = d.BodyGetLinearVel(Body); | 786 | dvtmp = SafeNativeMethods.BodyGetLinearVel(Body); |
793 | curVel.X = dvtmp.X; | 787 | curVel.X = dvtmp.X; |
794 | curVel.Y = dvtmp.Y; | 788 | curVel.Y = dvtmp.Y; |
795 | curVel.Z = dvtmp.Z; | 789 | curVel.Z = dvtmp.Z; |
796 | Vector3 curLocalVel = curVel * irotq; // current velocity in local | 790 | Vector3 curLocalVel = curVel * irotq; // current velocity in local |
797 | 791 | ||
798 | dvtmp = d.BodyGetAngularVel(Body); | 792 | dvtmp = SafeNativeMethods.BodyGetAngularVel(Body); |
799 | curAngVel.X = dvtmp.X; | 793 | curAngVel.X = dvtmp.X; |
800 | curAngVel.Y = dvtmp.Y; | 794 | curAngVel.Y = dvtmp.Y; |
801 | curAngVel.Z = dvtmp.Z; | 795 | curAngVel.Z = dvtmp.Z; |
@@ -839,7 +833,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
839 | { | 833 | { |
840 | // have offset, do it now | 834 | // have offset, do it now |
841 | tmpV *= dmass.mass; | 835 | tmpV *= dmass.mass; |
842 | d.BodyAddForceAtRelPos(Body, tmpV.X, tmpV.Y, tmpV.Z, m_linearMotorOffset.X, m_linearMotorOffset.Y, m_linearMotorOffset.Z); | 836 | SafeNativeMethods.BodyAddForceAtRelPos(Body, tmpV.X, tmpV.Y, tmpV.Z, m_linearMotorOffset.X, m_linearMotorOffset.Y, m_linearMotorOffset.Z); |
843 | } | 837 | } |
844 | else | 838 | else |
845 | { | 839 | { |
@@ -862,7 +856,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
862 | if (m_VhoverTimescale < 300 && rootPrim.prim_geom != IntPtr.Zero) | 856 | if (m_VhoverTimescale < 300 && rootPrim.prim_geom != IntPtr.Zero) |
863 | { | 857 | { |
864 | // d.Vector3 pos = d.BodyGetPosition(Body); | 858 | // d.Vector3 pos = d.BodyGetPosition(Body); |
865 | d.Vector3 pos = d.GeomGetPosition(rootPrim.prim_geom); | 859 | SafeNativeMethods.Vector3 pos = SafeNativeMethods.GeomGetPosition(rootPrim.prim_geom); |
866 | pos.Z -= 0.21f; // minor offset that seems to be always there in sl | 860 | pos.Z -= 0.21f; // minor offset that seems to be always there in sl |
867 | 861 | ||
868 | float t = _pParentScene.GetTerrainHeightAtXY(pos.X, pos.Y); | 862 | float t = _pParentScene.GetTerrainHeightAtXY(pos.X, pos.Y); |
@@ -1181,7 +1175,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1181 | 1175 | ||
1182 | if (force.X != 0 || force.Y != 0 || force.Z != 0) | 1176 | if (force.X != 0 || force.Y != 0 || force.Z != 0) |
1183 | { | 1177 | { |
1184 | d.BodyAddForce(Body, force.X, force.Y, force.Z); | 1178 | SafeNativeMethods.BodyAddForce(Body, force.X, force.Y, force.Z); |
1185 | } | 1179 | } |
1186 | 1180 | ||
1187 | if (torque.X != 0 || torque.Y != 0 || torque.Z != 0) | 1181 | if (torque.X != 0 || torque.Y != 0 || torque.Z != 0) |
@@ -1191,15 +1185,15 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1191 | dtorque.Y = torque.Y; | 1185 | dtorque.Y = torque.Y; |
1192 | dtorque.Z = torque.Z; | 1186 | dtorque.Z = torque.Z; |
1193 | 1187 | ||
1194 | d.MultiplyM3V3(out dvtmp, ref dmass.I, ref dtorque); | 1188 | SafeNativeMethods.MultiplyM3V3(out dvtmp, ref dmass.I, ref dtorque); |
1195 | d.BodyAddRelTorque(Body, dvtmp.X, dvtmp.Y, dvtmp.Z); // add torque in object frame | 1189 | SafeNativeMethods.BodyAddRelTorque(Body, dvtmp.X, dvtmp.Y, dvtmp.Z); // add torque in object frame |
1196 | } | 1190 | } |
1197 | 1191 | ||
1198 | torque = rootPrim.m_torque; | 1192 | torque = rootPrim.m_torque; |
1199 | torque += rootPrim.m_angularForceacc; | 1193 | torque += rootPrim.m_angularForceacc; |
1200 | rootPrim.m_angularForceacc = Vector3.Zero; | 1194 | rootPrim.m_angularForceacc = Vector3.Zero; |
1201 | if (torque.X != 0 || torque.Y != 0 || torque.Z != 0) | 1195 | if (torque.X != 0 || torque.Y != 0 || torque.Z != 0) |
1202 | d.BodyAddTorque(Body,torque.X, torque.Y, torque.Z); | 1196 | SafeNativeMethods.BodyAddTorque(Body,torque.X, torque.Y, torque.Z); |
1203 | } | 1197 | } |
1204 | } | 1198 | } |
1205 | } | 1199 | } |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs index 5465035..bdfbe3d 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs | |||
@@ -3,15 +3,10 @@ | |||
3 | */ | 3 | */ |
4 | 4 | ||
5 | using System; | 5 | using System; |
6 | using System.Collections.Concurrent; | ||
6 | using System.Threading; | 7 | using System.Threading; |
7 | using System.Collections.Generic; | ||
8 | using System.IO; | ||
9 | using System.Reflection; | ||
10 | using System.Runtime.InteropServices; | ||
11 | using System.Text; | ||
12 | using OpenSim.Framework; | 8 | using OpenSim.Framework; |
13 | using OpenSim.Region.PhysicsModules.SharedBase; | 9 | using OpenSim.Region.PhysicsModules.SharedBase; |
14 | using OdeAPI; | ||
15 | using log4net; | 10 | using log4net; |
16 | using Nini.Config; | 11 | using Nini.Config; |
17 | using OpenMetaverse; | 12 | using OpenMetaverse; |
@@ -79,7 +74,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
79 | public float MeshSculptphysicalLOD = 32; | 74 | public float MeshSculptphysicalLOD = 32; |
80 | public float MinSizeToMeshmerize = 0.1f; | 75 | public float MinSizeToMeshmerize = 0.1f; |
81 | 76 | ||
82 | private OpenSim.Framework.BlockingQueue<ODEPhysRepData> workQueue = new OpenSim.Framework.BlockingQueue<ODEPhysRepData>(); | 77 | private BlockingCollection<ODEPhysRepData> workQueue = new BlockingCollection<ODEPhysRepData>(); |
83 | private bool m_running; | 78 | private bool m_running; |
84 | 79 | ||
85 | private Thread m_thread; | 80 | private Thread m_thread; |
@@ -106,10 +101,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
106 | private void DoWork() | 101 | private void DoWork() |
107 | { | 102 | { |
108 | m_mesher.ExpireFileCache(); | 103 | m_mesher.ExpireFileCache(); |
104 | ODEPhysRepData nextRep; | ||
109 | 105 | ||
110 | while(m_running) | 106 | while(m_running) |
111 | { | 107 | { |
112 | ODEPhysRepData nextRep = workQueue.Dequeue(); | 108 | workQueue.TryTake(out nextRep, -1); |
113 | if(!m_running) | 109 | if(!m_running) |
114 | return; | 110 | return; |
115 | if (nextRep == null) | 111 | if (nextRep == null) |
@@ -138,7 +134,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
138 | try | 134 | try |
139 | { | 135 | { |
140 | m_thread.Abort(); | 136 | m_thread.Abort(); |
141 | workQueue.Clear(); | 137 | // workQueue.Dispose(); |
142 | } | 138 | } |
143 | catch | 139 | catch |
144 | { | 140 | { |
@@ -195,7 +191,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
195 | repData.meshState = MeshState.loadingAsset; | 191 | repData.meshState = MeshState.loadingAsset; |
196 | 192 | ||
197 | repData.comand = meshWorkerCmnds.getmesh; | 193 | repData.comand = meshWorkerCmnds.getmesh; |
198 | workQueue.Enqueue(repData); | 194 | workQueue.Add(repData); |
199 | } | 195 | } |
200 | } | 196 | } |
201 | 197 | ||
@@ -241,7 +237,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
241 | if (needsMeshing(repData)) // no need for pbs now? | 237 | if (needsMeshing(repData)) // no need for pbs now? |
242 | { | 238 | { |
243 | repData.comand = meshWorkerCmnds.changefull; | 239 | repData.comand = meshWorkerCmnds.changefull; |
244 | workQueue.Enqueue(repData); | 240 | workQueue.Add(repData); |
245 | } | 241 | } |
246 | } | 242 | } |
247 | else | 243 | else |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEModule.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEModule.cs index 4cb1736..90560fd 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEModule.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEModule.cs | |||
@@ -4,7 +4,6 @@ using System.Reflection; | |||
4 | using log4net; | 4 | using log4net; |
5 | using Nini.Config; | 5 | using Nini.Config; |
6 | using Mono.Addins; | 6 | using Mono.Addins; |
7 | using OdeAPI; | ||
8 | using OpenSim.Framework; | 7 | using OpenSim.Framework; |
9 | using OpenSim.Region.Framework.Scenes; | 8 | using OpenSim.Region.Framework.Scenes; |
10 | using OpenSim.Region.Framework.Interfaces; | 9 | using OpenSim.Region.Framework.Interfaces; |
@@ -53,9 +52,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
53 | if (Util.IsWindows()) | 52 | if (Util.IsWindows()) |
54 | Util.LoadArchSpecificWindowsDll("ode.dll"); | 53 | Util.LoadArchSpecificWindowsDll("ode.dll"); |
55 | 54 | ||
56 | d.InitODE(); | 55 | SafeNativeMethods.InitODE(); |
57 | 56 | ||
58 | string ode_config = d.GetConfiguration(); | 57 | string ode_config = SafeNativeMethods.GetConfiguration(); |
59 | if (ode_config != null && ode_config != "") | 58 | if (ode_config != null && ode_config != "") |
60 | { | 59 | { |
61 | m_log.InfoFormat("[ubODE] ode library configuration: {0}", ode_config); | 60 | m_log.InfoFormat("[ubODE] ode library configuration: {0}", ode_config); |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs index aa208e2..4e18522 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs | |||
@@ -44,11 +44,8 @@ | |||
44 | using System; | 44 | using System; |
45 | using System.Collections.Generic; | 45 | using System.Collections.Generic; |
46 | using System.Reflection; | 46 | using System.Reflection; |
47 | using System.Runtime.InteropServices; | ||
48 | using System.Threading; | ||
49 | using log4net; | 47 | using log4net; |
50 | using OpenMetaverse; | 48 | using OpenMetaverse; |
51 | using OdeAPI; | ||
52 | using OpenSim.Framework; | 49 | using OpenSim.Framework; |
53 | using OpenSim.Region.PhysicsModules.SharedBase; | 50 | using OpenSim.Region.PhysicsModules.SharedBase; |
54 | 51 | ||
@@ -182,7 +179,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
182 | private float m_physCost; | 179 | private float m_physCost; |
183 | private float m_streamCost; | 180 | private float m_streamCost; |
184 | 181 | ||
185 | public d.Mass primdMass; // prim inertia information on it's own referencial | 182 | internal SafeNativeMethods.Mass primdMass; // prim inertia information on it's own referencial |
186 | private PhysicsInertiaData m_InertiaOverride; | 183 | private PhysicsInertiaData m_InertiaOverride; |
187 | float primMass; // prim own mass | 184 | float primMass; // prim own mass |
188 | float primVolume; // prim own volume; | 185 | float primVolume; // prim own volume; |
@@ -196,8 +193,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
196 | 193 | ||
197 | private int m_eventsubscription; | 194 | private int m_eventsubscription; |
198 | private int m_cureventsubscription; | 195 | private int m_cureventsubscription; |
199 | private CollisionEventUpdate CollisionEventsThisFrame = null; | 196 | private CollisionEventUpdate CollisionEvents = null; |
200 | private CollisionEventUpdate CollisionVDTCEventsThisFrame = null; | 197 | private CollisionEventUpdate CollisionVDTCEvents = null; |
201 | private bool SentEmptyCollisionsEvent; | 198 | private bool SentEmptyCollisionsEvent; |
202 | 199 | ||
203 | public volatile bool childPrim; | 200 | public volatile bool childPrim; |
@@ -489,7 +486,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
489 | // double buffering | 486 | // double buffering |
490 | if(m_fakeInertiaOverride != null) | 487 | if(m_fakeInertiaOverride != null) |
491 | { | 488 | { |
492 | d.Mass objdmass = new d.Mass(); | 489 | SafeNativeMethods.Mass objdmass = new SafeNativeMethods.Mass(); |
493 | objdmass.I.M00 = m_fakeInertiaOverride.Inertia.X; | 490 | objdmass.I.M00 = m_fakeInertiaOverride.Inertia.X; |
494 | objdmass.I.M11 = m_fakeInertiaOverride.Inertia.Y; | 491 | objdmass.I.M11 = m_fakeInertiaOverride.Inertia.Y; |
495 | objdmass.I.M22 = m_fakeInertiaOverride.Inertia.Z; | 492 | objdmass.I.M22 = m_fakeInertiaOverride.Inertia.Z; |
@@ -498,15 +495,15 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
498 | 495 | ||
499 | if(Math.Abs(m_fakeInertiaOverride.InertiaRotation.W) < 0.999) | 496 | if(Math.Abs(m_fakeInertiaOverride.InertiaRotation.W) < 0.999) |
500 | { | 497 | { |
501 | d.Matrix3 inertiarotmat = new d.Matrix3(); | 498 | SafeNativeMethods.Matrix3 inertiarotmat = new SafeNativeMethods.Matrix3(); |
502 | d.Quaternion inertiarot = new d.Quaternion(); | 499 | SafeNativeMethods.Quaternion inertiarot = new SafeNativeMethods.Quaternion(); |
503 | 500 | ||
504 | inertiarot.X = m_fakeInertiaOverride.InertiaRotation.X; | 501 | inertiarot.X = m_fakeInertiaOverride.InertiaRotation.X; |
505 | inertiarot.Y = m_fakeInertiaOverride.InertiaRotation.Y; | 502 | inertiarot.Y = m_fakeInertiaOverride.InertiaRotation.Y; |
506 | inertiarot.Z = m_fakeInertiaOverride.InertiaRotation.Z; | 503 | inertiarot.Z = m_fakeInertiaOverride.InertiaRotation.Z; |
507 | inertiarot.W = m_fakeInertiaOverride.InertiaRotation.W; | 504 | inertiarot.W = m_fakeInertiaOverride.InertiaRotation.W; |
508 | d.RfromQ(out inertiarotmat, ref inertiarot); | 505 | SafeNativeMethods.RfromQ(out inertiarotmat, ref inertiarot); |
509 | d.MassRotate(ref objdmass, ref inertiarotmat); | 506 | SafeNativeMethods.MassRotate(ref objdmass, ref inertiarotmat); |
510 | } | 507 | } |
511 | 508 | ||
512 | inertia.TotalMass = m_fakeInertiaOverride.TotalMass; | 509 | inertia.TotalMass = m_fakeInertiaOverride.TotalMass; |
@@ -530,13 +527,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
530 | return inertia; | 527 | return inertia; |
531 | } | 528 | } |
532 | 529 | ||
533 | d.Vector3 dtmp; | 530 | SafeNativeMethods.Vector3 dtmp; |
534 | d.Mass m = new d.Mass(); | 531 | SafeNativeMethods.Mass m = new SafeNativeMethods.Mass(); |
535 | lock(_parent_scene.OdeLock) | 532 | lock(_parent_scene.OdeLock) |
536 | { | 533 | { |
537 | d.AllocateODEDataForThread(0); | 534 | SafeNativeMethods.AllocateODEDataForThread(0); |
538 | dtmp = d.GeomGetOffsetPosition(prim_geom); | 535 | dtmp = SafeNativeMethods.GeomGetOffsetPosition(prim_geom); |
539 | d.BodyGetMass(Body, out m); | 536 | SafeNativeMethods.BodyGetMass(Body, out m); |
540 | } | 537 | } |
541 | 538 | ||
542 | Vector3 cm = new Vector3(-dtmp.X, -dtmp.Y, -dtmp.Z); | 539 | Vector3 cm = new Vector3(-dtmp.X, -dtmp.Y, -dtmp.Z); |
@@ -572,18 +569,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
572 | { | 569 | { |
573 | lock (_parent_scene.OdeLock) | 570 | lock (_parent_scene.OdeLock) |
574 | { | 571 | { |
575 | d.AllocateODEDataForThread(0); | 572 | SafeNativeMethods.AllocateODEDataForThread(0); |
576 | 573 | ||
577 | d.Vector3 dtmp; | 574 | SafeNativeMethods.Vector3 dtmp; |
578 | if (!childPrim && Body != IntPtr.Zero) | 575 | if (!childPrim && Body != IntPtr.Zero) |
579 | { | 576 | { |
580 | dtmp = d.BodyGetPosition(Body); | 577 | dtmp = SafeNativeMethods.BodyGetPosition(Body); |
581 | return new Vector3(dtmp.X, dtmp.Y, dtmp.Z); | 578 | return new Vector3(dtmp.X, dtmp.Y, dtmp.Z); |
582 | } | 579 | } |
583 | else if (prim_geom != IntPtr.Zero) | 580 | else if (prim_geom != IntPtr.Zero) |
584 | { | 581 | { |
585 | d.Quaternion dq; | 582 | SafeNativeMethods.Quaternion dq; |
586 | d.GeomCopyQuaternion(prim_geom, out dq); | 583 | SafeNativeMethods.GeomCopyQuaternion(prim_geom, out dq); |
587 | Quaternion q; | 584 | Quaternion q; |
588 | q.X = dq.X; | 585 | q.X = dq.X; |
589 | q.Y = dq.Y; | 586 | q.Y = dq.Y; |
@@ -591,7 +588,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
591 | q.W = dq.W; | 588 | q.W = dq.W; |
592 | 589 | ||
593 | Vector3 Ptot = m_OBBOffset * q; | 590 | Vector3 Ptot = m_OBBOffset * q; |
594 | dtmp = d.GeomGetPosition(prim_geom); | 591 | dtmp = SafeNativeMethods.GeomGetPosition(prim_geom); |
595 | Ptot.X += dtmp.X; | 592 | Ptot.X += dtmp.X; |
596 | Ptot.Y += dtmp.Y; | 593 | Ptot.Y += dtmp.Y; |
597 | Ptot.Z += dtmp.Z; | 594 | Ptot.Z += dtmp.Z; |
@@ -997,16 +994,16 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
997 | _velocity.Y = 0; | 994 | _velocity.Y = 0; |
998 | _velocity.Z = 0; | 995 | _velocity.Z = 0; |
999 | 996 | ||
1000 | d.AllocateODEDataForThread(0); | 997 | SafeNativeMethods.AllocateODEDataForThread(0); |
1001 | 998 | ||
1002 | m_lastVelocity = _velocity; | 999 | m_lastVelocity = _velocity; |
1003 | if (m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) | 1000 | if (m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) |
1004 | m_vehicle.Stop(); | 1001 | m_vehicle.Stop(); |
1005 | 1002 | ||
1006 | if(Body != IntPtr.Zero) | 1003 | if(Body != IntPtr.Zero) |
1007 | d.BodySetLinearVel(Body, 0, 0, 0); // stop it | 1004 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); // stop it |
1008 | if (prim_geom != IntPtr.Zero) | 1005 | if (prim_geom != IntPtr.Zero) |
1009 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 1006 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
1010 | 1007 | ||
1011 | m_outbounds = false; | 1008 | m_outbounds = false; |
1012 | changeDisable(false); | 1009 | changeDisable(false); |
@@ -1027,24 +1024,24 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1027 | m_lastposition = _position; | 1024 | m_lastposition = _position; |
1028 | m_lastorientation = _orientation; | 1025 | m_lastorientation = _orientation; |
1029 | 1026 | ||
1030 | d.AllocateODEDataForThread(0); | 1027 | SafeNativeMethods.AllocateODEDataForThread(0); |
1031 | if(Body != IntPtr.Zero) | 1028 | if(Body != IntPtr.Zero) |
1032 | { | 1029 | { |
1033 | d.Vector3 dtmp = d.BodyGetAngularVel(Body); | 1030 | SafeNativeMethods.Vector3 dtmp = SafeNativeMethods.BodyGetAngularVel(Body); |
1034 | m_rotationalVelocity.X = dtmp.X; | 1031 | m_rotationalVelocity.X = dtmp.X; |
1035 | m_rotationalVelocity.Y = dtmp.Y; | 1032 | m_rotationalVelocity.Y = dtmp.Y; |
1036 | m_rotationalVelocity.Z = dtmp.Z; | 1033 | m_rotationalVelocity.Z = dtmp.Z; |
1037 | 1034 | ||
1038 | dtmp = d.BodyGetLinearVel(Body); | 1035 | dtmp = SafeNativeMethods.BodyGetLinearVel(Body); |
1039 | _velocity.X = dtmp.X; | 1036 | _velocity.X = dtmp.X; |
1040 | _velocity.Y = dtmp.Y; | 1037 | _velocity.Y = dtmp.Y; |
1041 | _velocity.Z = dtmp.Z; | 1038 | _velocity.Z = dtmp.Z; |
1042 | 1039 | ||
1043 | d.BodySetLinearVel(Body, 0, 0, 0); // stop it | 1040 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); // stop it |
1044 | d.BodySetAngularVel(Body, 0, 0, 0); | 1041 | SafeNativeMethods.BodySetAngularVel(Body, 0, 0, 0); |
1045 | } | 1042 | } |
1046 | if(prim_geom != IntPtr.Zero) | 1043 | if(prim_geom != IntPtr.Zero) |
1047 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 1044 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
1048 | disableBodySoft(); // stop collisions | 1045 | disableBodySoft(); // stop collisions |
1049 | UnSubscribeEvents(); | 1046 | UnSubscribeEvents(); |
1050 | } | 1047 | } |
@@ -1138,24 +1135,24 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1138 | { | 1135 | { |
1139 | m_eventsubscription = ms; | 1136 | m_eventsubscription = ms; |
1140 | m_cureventsubscription = 0; | 1137 | m_cureventsubscription = 0; |
1141 | if (CollisionEventsThisFrame == null) | 1138 | if (CollisionEvents == null) |
1142 | CollisionEventsThisFrame = new CollisionEventUpdate(); | 1139 | CollisionEvents = new CollisionEventUpdate(); |
1143 | if (CollisionVDTCEventsThisFrame == null) | 1140 | if (CollisionVDTCEvents == null) |
1144 | CollisionVDTCEventsThisFrame = new CollisionEventUpdate(); | 1141 | CollisionVDTCEvents = new CollisionEventUpdate(); |
1145 | SentEmptyCollisionsEvent = false; | 1142 | SentEmptyCollisionsEvent = false; |
1146 | } | 1143 | } |
1147 | 1144 | ||
1148 | public override void UnSubscribeEvents() | 1145 | public override void UnSubscribeEvents() |
1149 | { | 1146 | { |
1150 | if (CollisionVDTCEventsThisFrame != null) | 1147 | if (CollisionVDTCEvents != null) |
1151 | { | 1148 | { |
1152 | CollisionVDTCEventsThisFrame.Clear(); | 1149 | CollisionVDTCEvents.Clear(); |
1153 | CollisionVDTCEventsThisFrame = null; | 1150 | CollisionVDTCEvents = null; |
1154 | } | 1151 | } |
1155 | if (CollisionEventsThisFrame != null) | 1152 | if (CollisionEvents != null) |
1156 | { | 1153 | { |
1157 | CollisionEventsThisFrame.Clear(); | 1154 | CollisionEvents.Clear(); |
1158 | CollisionEventsThisFrame = null; | 1155 | CollisionEvents = null; |
1159 | } | 1156 | } |
1160 | m_eventsubscription = 0; | 1157 | m_eventsubscription = 0; |
1161 | _parent_scene.RemoveCollisionEventReporting(this); | 1158 | _parent_scene.RemoveCollisionEventReporting(this); |
@@ -1163,27 +1160,27 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1163 | 1160 | ||
1164 | public override void AddCollisionEvent(uint CollidedWith, ContactPoint contact) | 1161 | public override void AddCollisionEvent(uint CollidedWith, ContactPoint contact) |
1165 | { | 1162 | { |
1166 | if (CollisionEventsThisFrame == null) | 1163 | if (CollisionEvents == null) |
1167 | CollisionEventsThisFrame = new CollisionEventUpdate(); | 1164 | CollisionEvents = new CollisionEventUpdate(); |
1168 | 1165 | ||
1169 | CollisionEventsThisFrame.AddCollider(CollidedWith, contact); | 1166 | CollisionEvents.AddCollider(CollidedWith, contact); |
1170 | _parent_scene.AddCollisionEventReporting(this); | 1167 | _parent_scene.AddCollisionEventReporting(this); |
1171 | } | 1168 | } |
1172 | 1169 | ||
1173 | public override void AddVDTCCollisionEvent(uint CollidedWith, ContactPoint contact) | 1170 | public override void AddVDTCCollisionEvent(uint CollidedWith, ContactPoint contact) |
1174 | { | 1171 | { |
1175 | if (CollisionVDTCEventsThisFrame == null) | 1172 | if (CollisionVDTCEvents == null) |
1176 | CollisionVDTCEventsThisFrame = new CollisionEventUpdate(); | 1173 | CollisionVDTCEvents = new CollisionEventUpdate(); |
1177 | 1174 | ||
1178 | CollisionVDTCEventsThisFrame.AddCollider(CollidedWith, contact); | 1175 | CollisionVDTCEvents.AddCollider(CollidedWith, contact); |
1179 | _parent_scene.AddCollisionEventReporting(this); | 1176 | _parent_scene.AddCollisionEventReporting(this); |
1180 | } | 1177 | } |
1181 | 1178 | ||
1182 | internal void SleeperAddCollisionEvents() | 1179 | internal void SleeperAddCollisionEvents() |
1183 | { | 1180 | { |
1184 | if(CollisionEventsThisFrame != null && CollisionEventsThisFrame.m_objCollisionList.Count != 0) | 1181 | if(CollisionEvents != null && CollisionEvents.m_objCollisionList.Count != 0) |
1185 | { | 1182 | { |
1186 | foreach(KeyValuePair<uint,ContactPoint> kvp in CollisionEventsThisFrame.m_objCollisionList) | 1183 | foreach(KeyValuePair<uint,ContactPoint> kvp in CollisionEvents.m_objCollisionList) |
1187 | { | 1184 | { |
1188 | if(kvp.Key == 0) | 1185 | if(kvp.Key == 0) |
1189 | continue; | 1186 | continue; |
@@ -1196,9 +1193,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1196 | other.AddCollisionEvent(ParentActor.LocalID,cp); | 1193 | other.AddCollisionEvent(ParentActor.LocalID,cp); |
1197 | } | 1194 | } |
1198 | } | 1195 | } |
1199 | if(CollisionVDTCEventsThisFrame != null && CollisionVDTCEventsThisFrame.m_objCollisionList.Count != 0) | 1196 | if(CollisionVDTCEvents != null && CollisionVDTCEvents.m_objCollisionList.Count != 0) |
1200 | { | 1197 | { |
1201 | foreach(KeyValuePair<uint,ContactPoint> kvp in CollisionVDTCEventsThisFrame.m_objCollisionList) | 1198 | foreach(KeyValuePair<uint,ContactPoint> kvp in CollisionVDTCEvents.m_objCollisionList) |
1202 | { | 1199 | { |
1203 | OdePrim other = _parent_scene.getPrim(kvp.Key); | 1200 | OdePrim other = _parent_scene.getPrim(kvp.Key); |
1204 | if(other == null) | 1201 | if(other == null) |
@@ -1213,8 +1210,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1213 | 1210 | ||
1214 | internal void clearSleeperCollisions() | 1211 | internal void clearSleeperCollisions() |
1215 | { | 1212 | { |
1216 | if(CollisionVDTCEventsThisFrame != null && CollisionVDTCEventsThisFrame.Count >0 ) | 1213 | if(CollisionVDTCEvents != null && CollisionVDTCEvents.Count >0 ) |
1217 | CollisionVDTCEventsThisFrame.Clear(); | 1214 | CollisionVDTCEvents.Clear(); |
1218 | } | 1215 | } |
1219 | 1216 | ||
1220 | public void SendCollisions(int timestep) | 1217 | public void SendCollisions(int timestep) |
@@ -1226,14 +1223,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1226 | if (m_cureventsubscription < m_eventsubscription) | 1223 | if (m_cureventsubscription < m_eventsubscription) |
1227 | return; | 1224 | return; |
1228 | 1225 | ||
1229 | if (CollisionEventsThisFrame == null) | 1226 | if (CollisionEvents == null) |
1230 | return; | 1227 | return; |
1231 | 1228 | ||
1232 | int ncolisions = CollisionEventsThisFrame.m_objCollisionList.Count; | 1229 | int ncolisions = CollisionEvents.m_objCollisionList.Count; |
1233 | 1230 | ||
1234 | if (!SentEmptyCollisionsEvent || ncolisions > 0) | 1231 | if (!SentEmptyCollisionsEvent || ncolisions > 0) |
1235 | { | 1232 | { |
1236 | base.SendCollisionUpdate(CollisionEventsThisFrame); | 1233 | base.SendCollisionUpdate(CollisionEvents); |
1237 | m_cureventsubscription = 0; | 1234 | m_cureventsubscription = 0; |
1238 | 1235 | ||
1239 | if (ncolisions == 0) | 1236 | if (ncolisions == 0) |
@@ -1241,10 +1238,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1241 | SentEmptyCollisionsEvent = true; | 1238 | SentEmptyCollisionsEvent = true; |
1242 | // _parent_scene.RemoveCollisionEventReporting(this); | 1239 | // _parent_scene.RemoveCollisionEventReporting(this); |
1243 | } | 1240 | } |
1244 | else if(Body == IntPtr.Zero || (d.BodyIsEnabled(Body) && m_bodydisablecontrol >= 0 )) | 1241 | else if(Body == IntPtr.Zero || (SafeNativeMethods.BodyIsEnabled(Body) && m_bodydisablecontrol >= 0 )) |
1245 | { | 1242 | { |
1246 | SentEmptyCollisionsEvent = false; | 1243 | SentEmptyCollisionsEvent = false; |
1247 | CollisionEventsThisFrame.Clear(); | 1244 | CollisionEvents.Clear(); |
1248 | } | 1245 | } |
1249 | } | 1246 | } |
1250 | } | 1247 | } |
@@ -1450,16 +1447,16 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1450 | { | 1447 | { |
1451 | if (prm.m_NoColide) | 1448 | if (prm.m_NoColide) |
1452 | { | 1449 | { |
1453 | d.GeomSetCategoryBits(prm.prim_geom, 0); | 1450 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, 0); |
1454 | if (m_isphysical) | 1451 | if (m_isphysical) |
1455 | d.GeomSetCollideBits(prm.prim_geom, (int)CollisionCategories.Land); | 1452 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, (int)CollisionCategories.Land); |
1456 | else | 1453 | else |
1457 | d.GeomSetCollideBits(prm.prim_geom, 0); | 1454 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, 0); |
1458 | } | 1455 | } |
1459 | else | 1456 | else |
1460 | { | 1457 | { |
1461 | d.GeomSetCategoryBits(prm.prim_geom, (uint)prm.m_collisionCategories); | 1458 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, (uint)prm.m_collisionCategories); |
1462 | d.GeomSetCollideBits(prm.prim_geom, (uint)prm.m_collisionFlags); | 1459 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, (uint)prm.m_collisionFlags); |
1463 | } | 1460 | } |
1464 | } | 1461 | } |
1465 | } | 1462 | } |
@@ -1467,22 +1464,22 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1467 | 1464 | ||
1468 | if (m_NoColide) | 1465 | if (m_NoColide) |
1469 | { | 1466 | { |
1470 | d.GeomSetCategoryBits(prim_geom, 0); | 1467 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
1471 | d.GeomSetCollideBits(prim_geom, (uint)CollisionCategories.Land); | 1468 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)CollisionCategories.Land); |
1472 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) | 1469 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) |
1473 | { | 1470 | { |
1474 | d.GeomSetCategoryBits(collide_geom, 0); | 1471 | SafeNativeMethods.GeomSetCategoryBits(collide_geom, 0); |
1475 | d.GeomSetCollideBits(collide_geom, (uint)CollisionCategories.Land); | 1472 | SafeNativeMethods.GeomSetCollideBits(collide_geom, (uint)CollisionCategories.Land); |
1476 | } | 1473 | } |
1477 | } | 1474 | } |
1478 | else | 1475 | else |
1479 | { | 1476 | { |
1480 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 1477 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
1481 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 1478 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
1482 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) | 1479 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) |
1483 | { | 1480 | { |
1484 | d.GeomSetCategoryBits(collide_geom, (uint)m_collisionCategories); | 1481 | SafeNativeMethods.GeomSetCategoryBits(collide_geom, (uint)m_collisionCategories); |
1485 | d.GeomSetCollideBits(collide_geom, (uint)m_collisionFlags); | 1482 | SafeNativeMethods.GeomSetCollideBits(collide_geom, (uint)m_collisionFlags); |
1486 | } | 1483 | } |
1487 | } | 1484 | } |
1488 | } | 1485 | } |
@@ -1495,7 +1492,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1495 | 1492 | ||
1496 | if (Amotor != IntPtr.Zero) | 1493 | if (Amotor != IntPtr.Zero) |
1497 | { | 1494 | { |
1498 | d.JointDestroy(Amotor); | 1495 | SafeNativeMethods.JointDestroy(Amotor); |
1499 | Amotor = IntPtr.Zero; | 1496 | Amotor = IntPtr.Zero; |
1500 | } | 1497 | } |
1501 | 1498 | ||
@@ -1522,19 +1519,19 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1522 | if(axisnum == 0) | 1519 | if(axisnum == 0) |
1523 | return; | 1520 | return; |
1524 | // stop it | 1521 | // stop it |
1525 | d.BodySetTorque(Body, 0, 0, 0); | 1522 | SafeNativeMethods.BodySetTorque(Body, 0, 0, 0); |
1526 | d.BodySetAngularVel(Body, 0, 0, 0); | 1523 | SafeNativeMethods.BodySetAngularVel(Body, 0, 0, 0); |
1527 | 1524 | ||
1528 | Amotor = d.JointCreateAMotor(_parent_scene.world, IntPtr.Zero); | 1525 | Amotor = SafeNativeMethods.JointCreateAMotor(_parent_scene.world, IntPtr.Zero); |
1529 | d.JointAttach(Amotor, Body, IntPtr.Zero); | 1526 | SafeNativeMethods.JointAttach(Amotor, Body, IntPtr.Zero); |
1530 | 1527 | ||
1531 | d.JointSetAMotorMode(Amotor, 0); | 1528 | SafeNativeMethods.JointSetAMotorMode(Amotor, 0); |
1532 | 1529 | ||
1533 | d.JointSetAMotorNumAxes(Amotor, axisnum); | 1530 | SafeNativeMethods.JointSetAMotorNumAxes(Amotor, axisnum); |
1534 | 1531 | ||
1535 | // get current orientation to lock | 1532 | // get current orientation to lock |
1536 | 1533 | ||
1537 | d.Quaternion dcur = d.BodyGetQuaternion(Body); | 1534 | SafeNativeMethods.Quaternion dcur = SafeNativeMethods.BodyGetQuaternion(Body); |
1538 | Quaternion curr; // crap convertion between identical things | 1535 | Quaternion curr; // crap convertion between identical things |
1539 | curr.X = dcur.X; | 1536 | curr.X = dcur.X; |
1540 | curr.Y = dcur.Y; | 1537 | curr.Y = dcur.Y; |
@@ -1547,17 +1544,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1547 | if (axisX) | 1544 | if (axisX) |
1548 | { | 1545 | { |
1549 | ax = (new Vector3(1, 0, 0)) * curr; // rotate world X to current local X | 1546 | ax = (new Vector3(1, 0, 0)) * curr; // rotate world X to current local X |
1550 | d.JointSetAMotorAxis(Amotor, 0, 0, ax.X, ax.Y, ax.Z); | 1547 | SafeNativeMethods.JointSetAMotorAxis(Amotor, 0, 0, ax.X, ax.Y, ax.Z); |
1551 | d.JointSetAMotorAngle(Amotor, 0, 0); | 1548 | SafeNativeMethods.JointSetAMotorAngle(Amotor, 0, 0); |
1552 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.LoStop, 0f); | 1549 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.LoStop, 0f); |
1553 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.HiStop, 0f); | 1550 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.HiStop, 0f); |
1554 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel, 0); | 1551 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.Vel, 0); |
1555 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.FudgeFactor, 0.0001f); | 1552 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.FudgeFactor, 0.0001f); |
1556 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.Bounce, 0f); | 1553 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.Bounce, 0f); |
1557 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.CFM, 0f); | 1554 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.CFM, 0f); |
1558 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.FMax, 5e8f); | 1555 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.FMax, 5e8f); |
1559 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.StopCFM, 0f); | 1556 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.StopCFM, 0f); |
1560 | d.JointSetAMotorParam(Amotor, (int)d.JointParam.StopERP, 0.8f); | 1557 | SafeNativeMethods.JointSetAMotorParam(Amotor, (int)SafeNativeMethods.JointParam.StopERP, 0.8f); |
1561 | i++; | 1558 | i++; |
1562 | j = 256; // move to next axis set | 1559 | j = 256; // move to next axis set |
1563 | } | 1560 | } |
@@ -1565,17 +1562,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1565 | if (axisY) | 1562 | if (axisY) |
1566 | { | 1563 | { |
1567 | ax = (new Vector3(0, 1, 0)) * curr; | 1564 | ax = (new Vector3(0, 1, 0)) * curr; |
1568 | d.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); | 1565 | SafeNativeMethods.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); |
1569 | d.JointSetAMotorAngle(Amotor, i, 0); | 1566 | SafeNativeMethods.JointSetAMotorAngle(Amotor, i, 0); |
1570 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.LoStop, 0f); | 1567 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.LoStop, 0f); |
1571 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.HiStop, 0f); | 1568 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.HiStop, 0f); |
1572 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Vel, 0); | 1569 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Vel, 0); |
1573 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FudgeFactor, 0.0001f); | 1570 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FudgeFactor, 0.0001f); |
1574 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Bounce, 0f); | 1571 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Bounce, 0f); |
1575 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.CFM, 0f); | 1572 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.CFM, 0f); |
1576 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FMax, 5e8f); | 1573 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FMax, 5e8f); |
1577 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopCFM, 0f); | 1574 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopCFM, 0f); |
1578 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopERP, 0.8f); | 1575 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopERP, 0.8f); |
1579 | i++; | 1576 | i++; |
1580 | j += 256; | 1577 | j += 256; |
1581 | } | 1578 | } |
@@ -1583,17 +1580,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1583 | if (axisZ) | 1580 | if (axisZ) |
1584 | { | 1581 | { |
1585 | ax = (new Vector3(0, 0, 1)) * curr; | 1582 | ax = (new Vector3(0, 0, 1)) * curr; |
1586 | d.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); | 1583 | SafeNativeMethods.JointSetAMotorAxis(Amotor, i, 0, ax.X, ax.Y, ax.Z); |
1587 | d.JointSetAMotorAngle(Amotor, i, 0); | 1584 | SafeNativeMethods.JointSetAMotorAngle(Amotor, i, 0); |
1588 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.LoStop, 0f); | 1585 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.LoStop, 0f); |
1589 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.HiStop, 0f); | 1586 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.HiStop, 0f); |
1590 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Vel, 0); | 1587 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Vel, 0); |
1591 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FudgeFactor, 0.0001f); | 1588 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FudgeFactor, 0.0001f); |
1592 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.Bounce, 0f); | 1589 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.Bounce, 0f); |
1593 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.CFM, 0f); | 1590 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.CFM, 0f); |
1594 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.FMax, 5e8f); | 1591 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.FMax, 5e8f); |
1595 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopCFM, 0f); | 1592 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopCFM, 0f); |
1596 | d.JointSetAMotorParam(Amotor, j + (int)d.JointParam.StopERP, 0.8f); | 1593 | SafeNativeMethods.JointSetAMotorParam(Amotor, j + (int)SafeNativeMethods.JointParam.StopERP, 0.8f); |
1597 | } | 1594 | } |
1598 | } | 1595 | } |
1599 | 1596 | ||
@@ -1607,21 +1604,21 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1607 | 1604 | ||
1608 | if (m_NoColide) | 1605 | if (m_NoColide) |
1609 | { | 1606 | { |
1610 | d.GeomSetCategoryBits(prim_geom, 0); | 1607 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
1611 | if (m_isphysical) | 1608 | if (m_isphysical) |
1612 | { | 1609 | { |
1613 | d.GeomSetCollideBits(prim_geom, (uint)CollisionCategories.Land); | 1610 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)CollisionCategories.Land); |
1614 | } | 1611 | } |
1615 | else | 1612 | else |
1616 | { | 1613 | { |
1617 | d.GeomSetCollideBits(prim_geom, 0); | 1614 | SafeNativeMethods.GeomSetCollideBits(prim_geom, 0); |
1618 | d.GeomDisable(prim_geom); | 1615 | SafeNativeMethods.GeomDisable(prim_geom); |
1619 | } | 1616 | } |
1620 | } | 1617 | } |
1621 | else | 1618 | else |
1622 | { | 1619 | { |
1623 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 1620 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
1624 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 1621 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
1625 | } | 1622 | } |
1626 | 1623 | ||
1627 | UpdatePrimBodyData(); | 1624 | UpdatePrimBodyData(); |
@@ -1689,12 +1686,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1689 | 1686 | ||
1690 | try | 1687 | try |
1691 | { | 1688 | { |
1692 | _triMeshData = d.GeomTriMeshDataCreate(); | 1689 | _triMeshData = SafeNativeMethods.GeomTriMeshDataCreate(); |
1693 | 1690 | ||
1694 | d.GeomTriMeshDataBuildSimple(_triMeshData, vertices, vertexStride, vertexCount, indices, indexCount, triStride); | 1691 | SafeNativeMethods.GeomTriMeshDataBuildSimple(_triMeshData, vertices, vertexStride, vertexCount, indices, indexCount, triStride); |
1695 | d.GeomTriMeshDataPreprocess(_triMeshData); | 1692 | SafeNativeMethods.GeomTriMeshDataPreprocess(_triMeshData); |
1696 | 1693 | ||
1697 | geo = d.CreateTriMesh(m_targetSpace, _triMeshData, null, null, null); | 1694 | geo = SafeNativeMethods.CreateTriMesh(m_targetSpace, _triMeshData, null, null, null); |
1698 | } | 1695 | } |
1699 | 1696 | ||
1700 | catch (Exception e) | 1697 | catch (Exception e) |
@@ -1704,7 +1701,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1704 | { | 1701 | { |
1705 | try | 1702 | try |
1706 | { | 1703 | { |
1707 | d.GeomTriMeshDataDestroy(_triMeshData); | 1704 | SafeNativeMethods.GeomTriMeshDataDestroy(_triMeshData); |
1708 | } | 1705 | } |
1709 | catch | 1706 | catch |
1710 | { | 1707 | { |
@@ -1760,7 +1757,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1760 | { // it's a sphere | 1757 | { // it's a sphere |
1761 | try | 1758 | try |
1762 | { | 1759 | { |
1763 | geo = d.CreateSphere(m_targetSpace, _size.X * 0.5f); | 1760 | geo = SafeNativeMethods.CreateSphere(m_targetSpace, _size.X * 0.5f); |
1764 | } | 1761 | } |
1765 | catch (Exception e) | 1762 | catch (Exception e) |
1766 | { | 1763 | { |
@@ -1772,7 +1769,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1772 | {// do it as a box | 1769 | {// do it as a box |
1773 | try | 1770 | try |
1774 | { | 1771 | { |
1775 | geo = d.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z); | 1772 | geo = SafeNativeMethods.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z); |
1776 | } | 1773 | } |
1777 | catch (Exception e) | 1774 | catch (Exception e) |
1778 | { | 1775 | { |
@@ -1794,10 +1791,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1794 | 1791 | ||
1795 | try | 1792 | try |
1796 | { | 1793 | { |
1797 | d.GeomDestroy(prim_geom); | 1794 | SafeNativeMethods.GeomDestroy(prim_geom); |
1798 | if (_triMeshData != IntPtr.Zero) | 1795 | if (_triMeshData != IntPtr.Zero) |
1799 | { | 1796 | { |
1800 | d.GeomTriMeshDataDestroy(_triMeshData); | 1797 | SafeNativeMethods.GeomTriMeshDataDestroy(_triMeshData); |
1801 | _triMeshData = IntPtr.Zero; | 1798 | _triMeshData = IntPtr.Zero; |
1802 | } | 1799 | } |
1803 | } | 1800 | } |
@@ -1832,7 +1829,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1832 | // should only be called for non physical prims unless they are becoming non physical | 1829 | // should only be called for non physical prims unless they are becoming non physical |
1833 | private void SetInStaticSpace(OdePrim prim) | 1830 | private void SetInStaticSpace(OdePrim prim) |
1834 | { | 1831 | { |
1835 | IntPtr targetSpace = _parent_scene.MoveGeomToStaticSpace(prim.prim_geom, prim._position, prim.m_targetSpace); | 1832 | IntPtr targetSpace = _parent_scene.MoveGeomToStaticSpace(prim.prim_geom, prim.m_targetSpace); |
1836 | prim.m_targetSpace = targetSpace; | 1833 | prim.m_targetSpace = targetSpace; |
1837 | collide_geom = IntPtr.Zero; | 1834 | collide_geom = IntPtr.Zero; |
1838 | } | 1835 | } |
@@ -1848,8 +1845,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1848 | ApplyCollisionCatFlags(); | 1845 | ApplyCollisionCatFlags(); |
1849 | 1846 | ||
1850 | _zeroFlag = true; | 1847 | _zeroFlag = true; |
1851 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 1848 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
1852 | d.BodyEnable(Body); | 1849 | SafeNativeMethods.BodyEnable(Body); |
1853 | } | 1850 | } |
1854 | } | 1851 | } |
1855 | resetCollisionAccounting(); | 1852 | resetCollisionAccounting(); |
@@ -1868,7 +1865,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1868 | m_collisionCategories = 0; | 1865 | m_collisionCategories = 0; |
1869 | m_collisionFlags = 0; | 1866 | m_collisionFlags = 0; |
1870 | ApplyCollisionCatFlags(); | 1867 | ApplyCollisionCatFlags(); |
1871 | d.BodyDisable(Body); | 1868 | SafeNativeMethods.BodyDisable(Body); |
1872 | } | 1869 | } |
1873 | } | 1870 | } |
1874 | } | 1871 | } |
@@ -1896,41 +1893,41 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1896 | m_log.Warn("[PHYSICS]: MakeBody called having a body"); | 1893 | m_log.Warn("[PHYSICS]: MakeBody called having a body"); |
1897 | } | 1894 | } |
1898 | 1895 | ||
1899 | if (d.GeomGetBody(prim_geom) != IntPtr.Zero) | 1896 | if (SafeNativeMethods.GeomGetBody(prim_geom) != IntPtr.Zero) |
1900 | { | 1897 | { |
1901 | d.GeomSetBody(prim_geom, IntPtr.Zero); | 1898 | SafeNativeMethods.GeomSetBody(prim_geom, IntPtr.Zero); |
1902 | m_log.Warn("[PHYSICS]: MakeBody root geom already had a body"); | 1899 | m_log.Warn("[PHYSICS]: MakeBody root geom already had a body"); |
1903 | } | 1900 | } |
1904 | 1901 | ||
1905 | bool noInertiaOverride = (m_InertiaOverride == null); | 1902 | bool noInertiaOverride = (m_InertiaOverride == null); |
1906 | 1903 | ||
1907 | Body = d.BodyCreate(_parent_scene.world); | 1904 | Body = SafeNativeMethods.BodyCreate(_parent_scene.world); |
1908 | 1905 | ||
1909 | d.Matrix3 mymat = new d.Matrix3(); | 1906 | SafeNativeMethods.Matrix3 mymat = new SafeNativeMethods.Matrix3(); |
1910 | d.Quaternion myrot = new d.Quaternion(); | 1907 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
1911 | d.Mass objdmass = new d.Mass { }; | 1908 | SafeNativeMethods.Mass objdmass = new SafeNativeMethods.Mass { }; |
1912 | 1909 | ||
1913 | myrot.X = _orientation.X; | 1910 | myrot.X = _orientation.X; |
1914 | myrot.Y = _orientation.Y; | 1911 | myrot.Y = _orientation.Y; |
1915 | myrot.Z = _orientation.Z; | 1912 | myrot.Z = _orientation.Z; |
1916 | myrot.W = _orientation.W; | 1913 | myrot.W = _orientation.W; |
1917 | d.RfromQ(out mymat, ref myrot); | 1914 | SafeNativeMethods.RfromQ(out mymat, ref myrot); |
1918 | 1915 | ||
1919 | // set the body rotation | 1916 | // set the body rotation |
1920 | d.BodySetRotation(Body, ref mymat); | 1917 | SafeNativeMethods.BodySetRotation(Body, ref mymat); |
1921 | 1918 | ||
1922 | if(noInertiaOverride) | 1919 | if(noInertiaOverride) |
1923 | { | 1920 | { |
1924 | objdmass = primdMass; | 1921 | objdmass = primdMass; |
1925 | d.MassRotate(ref objdmass, ref mymat); | 1922 | SafeNativeMethods.MassRotate(ref objdmass, ref mymat); |
1926 | } | 1923 | } |
1927 | 1924 | ||
1928 | // recompute full object inertia if needed | 1925 | // recompute full object inertia if needed |
1929 | if (childrenPrim.Count > 0) | 1926 | if (childrenPrim.Count > 0) |
1930 | { | 1927 | { |
1931 | d.Matrix3 mat = new d.Matrix3(); | 1928 | SafeNativeMethods.Matrix3 mat = new SafeNativeMethods.Matrix3(); |
1932 | d.Quaternion quat = new d.Quaternion(); | 1929 | SafeNativeMethods.Quaternion quat = new SafeNativeMethods.Quaternion(); |
1933 | d.Mass tmpdmass = new d.Mass { }; | 1930 | SafeNativeMethods.Mass tmpdmass = new SafeNativeMethods.Mass { }; |
1934 | Vector3 rcm; | 1931 | Vector3 rcm; |
1935 | 1932 | ||
1936 | rcm.X = _position.X; | 1933 | rcm.X = _position.X; |
@@ -1951,70 +1948,70 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1951 | quat.Y = prm._orientation.Y; | 1948 | quat.Y = prm._orientation.Y; |
1952 | quat.Z = prm._orientation.Z; | 1949 | quat.Z = prm._orientation.Z; |
1953 | quat.W = prm._orientation.W; | 1950 | quat.W = prm._orientation.W; |
1954 | d.RfromQ(out mat, ref quat); | 1951 | SafeNativeMethods.RfromQ(out mat, ref quat); |
1955 | 1952 | ||
1956 | // fix prim colision cats | 1953 | // fix prim colision cats |
1957 | 1954 | ||
1958 | if (d.GeomGetBody(prm.prim_geom) != IntPtr.Zero) | 1955 | if (SafeNativeMethods.GeomGetBody(prm.prim_geom) != IntPtr.Zero) |
1959 | { | 1956 | { |
1960 | d.GeomSetBody(prm.prim_geom, IntPtr.Zero); | 1957 | SafeNativeMethods.GeomSetBody(prm.prim_geom, IntPtr.Zero); |
1961 | m_log.Warn("[PHYSICS]: MakeBody child geom already had a body"); | 1958 | m_log.Warn("[PHYSICS]: MakeBody child geom already had a body"); |
1962 | } | 1959 | } |
1963 | 1960 | ||
1964 | d.GeomClearOffset(prm.prim_geom); | 1961 | SafeNativeMethods.GeomClearOffset(prm.prim_geom); |
1965 | d.GeomSetBody(prm.prim_geom, Body); | 1962 | SafeNativeMethods.GeomSetBody(prm.prim_geom, Body); |
1966 | prm.Body = Body; | 1963 | prm.Body = Body; |
1967 | d.GeomSetOffsetWorldRotation(prm.prim_geom, ref mat); // set relative rotation | 1964 | SafeNativeMethods.GeomSetOffsetWorldRotation(prm.prim_geom, ref mat); // set relative rotation |
1968 | 1965 | ||
1969 | if(noInertiaOverride) | 1966 | if(noInertiaOverride) |
1970 | { | 1967 | { |
1971 | tmpdmass = prm.primdMass; | 1968 | tmpdmass = prm.primdMass; |
1972 | 1969 | ||
1973 | d.MassRotate(ref tmpdmass, ref mat); | 1970 | SafeNativeMethods.MassRotate(ref tmpdmass, ref mat); |
1974 | Vector3 ppos = prm._position; | 1971 | Vector3 ppos = prm._position; |
1975 | ppos.X -= rcm.X; | 1972 | ppos.X -= rcm.X; |
1976 | ppos.Y -= rcm.Y; | 1973 | ppos.Y -= rcm.Y; |
1977 | ppos.Z -= rcm.Z; | 1974 | ppos.Z -= rcm.Z; |
1978 | // refer inertia to root prim center of mass position | 1975 | // refer inertia to root prim center of mass position |
1979 | d.MassTranslate(ref tmpdmass, | 1976 | SafeNativeMethods.MassTranslate(ref tmpdmass, |
1980 | ppos.X, | 1977 | ppos.X, |
1981 | ppos.Y, | 1978 | ppos.Y, |
1982 | ppos.Z); | 1979 | ppos.Z); |
1983 | 1980 | ||
1984 | d.MassAdd(ref objdmass, ref tmpdmass); // add to total object inertia | 1981 | SafeNativeMethods.MassAdd(ref objdmass, ref tmpdmass); // add to total object inertia |
1985 | } | 1982 | } |
1986 | } | 1983 | } |
1987 | } | 1984 | } |
1988 | } | 1985 | } |
1989 | 1986 | ||
1990 | d.GeomClearOffset(prim_geom); // make sure we don't have a hidden offset | 1987 | SafeNativeMethods.GeomClearOffset(prim_geom); // make sure we don't have a hidden offset |
1991 | // associate root geom with body | 1988 | // associate root geom with body |
1992 | d.GeomSetBody(prim_geom, Body); | 1989 | SafeNativeMethods.GeomSetBody(prim_geom, Body); |
1993 | 1990 | ||
1994 | if(noInertiaOverride) | 1991 | if(noInertiaOverride) |
1995 | d.BodySetPosition(Body, _position.X + objdmass.c.X, _position.Y + objdmass.c.Y, _position.Z + objdmass.c.Z); | 1992 | SafeNativeMethods.BodySetPosition(Body, _position.X + objdmass.c.X, _position.Y + objdmass.c.Y, _position.Z + objdmass.c.Z); |
1996 | else | 1993 | else |
1997 | { | 1994 | { |
1998 | Vector3 ncm = m_InertiaOverride.CenterOfMass * _orientation; | 1995 | Vector3 ncm = m_InertiaOverride.CenterOfMass * _orientation; |
1999 | d.BodySetPosition(Body, | 1996 | SafeNativeMethods.BodySetPosition(Body, |
2000 | _position.X + ncm.X, | 1997 | _position.X + ncm.X, |
2001 | _position.Y + ncm.Y, | 1998 | _position.Y + ncm.Y, |
2002 | _position.Z + ncm.Z); | 1999 | _position.Z + ncm.Z); |
2003 | } | 2000 | } |
2004 | 2001 | ||
2005 | d.GeomSetOffsetWorldPosition(prim_geom, _position.X, _position.Y, _position.Z); | 2002 | SafeNativeMethods.GeomSetOffsetWorldPosition(prim_geom, _position.X, _position.Y, _position.Z); |
2006 | 2003 | ||
2007 | if(noInertiaOverride) | 2004 | if(noInertiaOverride) |
2008 | { | 2005 | { |
2009 | d.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body | 2006 | SafeNativeMethods.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body |
2010 | myrot.X = -myrot.X; | 2007 | myrot.X = -myrot.X; |
2011 | myrot.Y = -myrot.Y; | 2008 | myrot.Y = -myrot.Y; |
2012 | myrot.Z = -myrot.Z; | 2009 | myrot.Z = -myrot.Z; |
2013 | 2010 | ||
2014 | d.RfromQ(out mymat, ref myrot); | 2011 | SafeNativeMethods.RfromQ(out mymat, ref myrot); |
2015 | d.MassRotate(ref objdmass, ref mymat); | 2012 | SafeNativeMethods.MassRotate(ref objdmass, ref mymat); |
2016 | 2013 | ||
2017 | d.BodySetMass(Body, ref objdmass); | 2014 | SafeNativeMethods.BodySetMass(Body, ref objdmass); |
2018 | m_mass = objdmass.mass; | 2015 | m_mass = objdmass.mass; |
2019 | } | 2016 | } |
2020 | else | 2017 | else |
@@ -2031,35 +2028,35 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2031 | 2028 | ||
2032 | if(Math.Abs(m_InertiaOverride.InertiaRotation.W) < 0.999) | 2029 | if(Math.Abs(m_InertiaOverride.InertiaRotation.W) < 0.999) |
2033 | { | 2030 | { |
2034 | d.Matrix3 inertiarotmat = new d.Matrix3(); | 2031 | SafeNativeMethods.Matrix3 inertiarotmat = new SafeNativeMethods.Matrix3(); |
2035 | d.Quaternion inertiarot = new d.Quaternion(); | 2032 | SafeNativeMethods.Quaternion inertiarot = new SafeNativeMethods.Quaternion(); |
2036 | 2033 | ||
2037 | inertiarot.X = m_InertiaOverride.InertiaRotation.X; | 2034 | inertiarot.X = m_InertiaOverride.InertiaRotation.X; |
2038 | inertiarot.Y = m_InertiaOverride.InertiaRotation.Y; | 2035 | inertiarot.Y = m_InertiaOverride.InertiaRotation.Y; |
2039 | inertiarot.Z = m_InertiaOverride.InertiaRotation.Z; | 2036 | inertiarot.Z = m_InertiaOverride.InertiaRotation.Z; |
2040 | inertiarot.W = m_InertiaOverride.InertiaRotation.W; | 2037 | inertiarot.W = m_InertiaOverride.InertiaRotation.W; |
2041 | d.RfromQ(out inertiarotmat, ref inertiarot); | 2038 | SafeNativeMethods.RfromQ(out inertiarotmat, ref inertiarot); |
2042 | d.MassRotate(ref objdmass, ref inertiarotmat); | 2039 | SafeNativeMethods.MassRotate(ref objdmass, ref inertiarotmat); |
2043 | } | 2040 | } |
2044 | d.BodySetMass(Body, ref objdmass); | 2041 | SafeNativeMethods.BodySetMass(Body, ref objdmass); |
2045 | 2042 | ||
2046 | m_mass = objdmass.mass; | 2043 | m_mass = objdmass.mass; |
2047 | } | 2044 | } |
2048 | 2045 | ||
2049 | // disconnect from world gravity so we can apply buoyancy | 2046 | // disconnect from world gravity so we can apply buoyancy |
2050 | d.BodySetGravityMode(Body, false); | 2047 | SafeNativeMethods.BodySetGravityMode(Body, false); |
2051 | 2048 | ||
2052 | d.BodySetAutoDisableFlag(Body, true); | 2049 | SafeNativeMethods.BodySetAutoDisableFlag(Body, true); |
2053 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 2050 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
2054 | d.BodySetAutoDisableAngularThreshold(Body, 0.05f); | 2051 | SafeNativeMethods.BodySetAutoDisableAngularThreshold(Body, 0.05f); |
2055 | d.BodySetAutoDisableLinearThreshold(Body, 0.05f); | 2052 | SafeNativeMethods.BodySetAutoDisableLinearThreshold(Body, 0.05f); |
2056 | d.BodySetDamping(Body, .004f, .001f); | 2053 | SafeNativeMethods.BodySetDamping(Body, .004f, .001f); |
2057 | 2054 | ||
2058 | if (m_targetSpace != IntPtr.Zero) | 2055 | if (m_targetSpace != IntPtr.Zero) |
2059 | { | 2056 | { |
2060 | _parent_scene.waitForSpaceUnlock(m_targetSpace); | 2057 | _parent_scene.waitForSpaceUnlock(m_targetSpace); |
2061 | if (d.SpaceQuery(m_targetSpace, prim_geom)) | 2058 | if (SafeNativeMethods.SpaceQuery(m_targetSpace, prim_geom)) |
2062 | d.SpaceRemove(m_targetSpace, prim_geom); | 2059 | SafeNativeMethods.SpaceRemove(m_targetSpace, prim_geom); |
2063 | } | 2060 | } |
2064 | 2061 | ||
2065 | if (childrenPrim.Count == 0) | 2062 | if (childrenPrim.Count == 0) |
@@ -2069,21 +2066,23 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2069 | } | 2066 | } |
2070 | else | 2067 | else |
2071 | { | 2068 | { |
2072 | m_targetSpace = d.HashSpaceCreate(_parent_scene.ActiveSpace); | 2069 | m_targetSpace = SafeNativeMethods.SimpleSpaceCreate(_parent_scene.ActiveSpace); |
2073 | d.HashSpaceSetLevels(m_targetSpace, -2, 8); | 2070 | SafeNativeMethods.SpaceSetSublevel(m_targetSpace, 3); |
2074 | d.SpaceSetSublevel(m_targetSpace, 3); | 2071 | SafeNativeMethods.SpaceSetCleanup(m_targetSpace, false); |
2075 | d.SpaceSetCleanup(m_targetSpace, false); | ||
2076 | 2072 | ||
2077 | d.GeomSetCategoryBits(m_targetSpace, (uint)(CollisionCategories.Space | | 2073 | SafeNativeMethods.GeomSetCategoryBits(m_targetSpace, (uint)(CollisionCategories.Space | |
2078 | CollisionCategories.Geom | | 2074 | CollisionCategories.Geom | |
2079 | CollisionCategories.Phantom | | 2075 | CollisionCategories.Phantom | |
2080 | CollisionCategories.VolumeDtc | 2076 | CollisionCategories.VolumeDtc |
2081 | )); | 2077 | )); |
2082 | d.GeomSetCollideBits(m_targetSpace, 0); | 2078 | SafeNativeMethods.GeomSetCollideBits(m_targetSpace, 0); |
2083 | collide_geom = m_targetSpace; | 2079 | collide_geom = m_targetSpace; |
2084 | } | 2080 | } |
2085 | 2081 | ||
2086 | d.SpaceAdd(m_targetSpace, prim_geom); | 2082 | if (SafeNativeMethods.SpaceQuery(m_targetSpace, prim_geom)) |
2083 | m_log.Debug("[PRIM]: parent already in target space"); | ||
2084 | else | ||
2085 | SafeNativeMethods.SpaceAdd(m_targetSpace, prim_geom); | ||
2087 | 2086 | ||
2088 | if (m_delaySelect) | 2087 | if (m_delaySelect) |
2089 | { | 2088 | { |
@@ -2102,22 +2101,27 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2102 | { | 2101 | { |
2103 | foreach (OdePrim prm in childrenPrim) | 2102 | foreach (OdePrim prm in childrenPrim) |
2104 | { | 2103 | { |
2105 | if (prm.prim_geom == IntPtr.Zero) | 2104 | IntPtr prmgeom = prm.prim_geom; |
2105 | if (prmgeom == IntPtr.Zero) | ||
2106 | continue; | 2106 | continue; |
2107 | 2107 | ||
2108 | Vector3 ppos = prm._position; | 2108 | Vector3 ppos = prm._position; |
2109 | d.GeomSetOffsetWorldPosition(prm.prim_geom, ppos.X, ppos.Y, ppos.Z); // set relative position | 2109 | SafeNativeMethods.GeomSetOffsetWorldPosition(prm.prim_geom, ppos.X, ppos.Y, ppos.Z); // set relative position |
2110 | 2110 | ||
2111 | if (prm.m_targetSpace != m_targetSpace) | 2111 | IntPtr prmspace = prm.m_targetSpace; |
2112 | if (prmspace != m_targetSpace) | ||
2112 | { | 2113 | { |
2113 | if (prm.m_targetSpace != IntPtr.Zero) | 2114 | if (prmspace != IntPtr.Zero) |
2114 | { | 2115 | { |
2115 | _parent_scene.waitForSpaceUnlock(prm.m_targetSpace); | 2116 | _parent_scene.waitForSpaceUnlock(prmspace); |
2116 | if (d.SpaceQuery(prm.m_targetSpace, prm.prim_geom)) | 2117 | if (SafeNativeMethods.SpaceQuery(prmspace, prmgeom)) |
2117 | d.SpaceRemove(prm.m_targetSpace, prm.prim_geom); | 2118 | SafeNativeMethods.SpaceRemove(prmspace, prmgeom); |
2118 | } | 2119 | } |
2119 | prm.m_targetSpace = m_targetSpace; | 2120 | prm.m_targetSpace = m_targetSpace; |
2120 | d.SpaceAdd(m_targetSpace, prm.prim_geom); | 2121 | if (SafeNativeMethods.SpaceQuery(m_targetSpace, prmgeom)) |
2122 | m_log.Debug("[PRIM]: child already in target space"); | ||
2123 | else | ||
2124 | SafeNativeMethods.SpaceAdd(m_targetSpace, prmgeom); | ||
2121 | } | 2125 | } |
2122 | 2126 | ||
2123 | prm.m_collisionscore = 0; | 2127 | prm.m_collisionscore = 0; |
@@ -2137,13 +2141,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2137 | 2141 | ||
2138 | if (m_isSelected || m_disabled) | 2142 | if (m_isSelected || m_disabled) |
2139 | { | 2143 | { |
2140 | d.BodyDisable(Body); | 2144 | SafeNativeMethods.BodyDisable(Body); |
2141 | _zeroFlag = true; | 2145 | _zeroFlag = true; |
2142 | } | 2146 | } |
2143 | else | 2147 | else |
2144 | { | 2148 | { |
2145 | d.BodySetAngularVel(Body, m_rotationalVelocity.X, m_rotationalVelocity.Y, m_rotationalVelocity.Z); | 2149 | SafeNativeMethods.BodySetAngularVel(Body, m_rotationalVelocity.X, m_rotationalVelocity.Y, m_rotationalVelocity.Z); |
2146 | d.BodySetLinearVel(Body, _velocity.X, _velocity.Y, _velocity.Z); | 2150 | SafeNativeMethods.BodySetLinearVel(Body, _velocity.X, _velocity.Y, _velocity.Z); |
2147 | 2151 | ||
2148 | _zeroFlag = false; | 2152 | _zeroFlag = false; |
2149 | m_bodydisablecontrol = 0; | 2153 | m_bodydisablecontrol = 0; |
@@ -2176,16 +2180,16 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2176 | { | 2180 | { |
2177 | if (m_NoColide) | 2181 | if (m_NoColide) |
2178 | { | 2182 | { |
2179 | d.GeomSetCategoryBits(prim_geom, 0); | 2183 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
2180 | d.GeomSetCollideBits(prim_geom, 0); | 2184 | SafeNativeMethods.GeomSetCollideBits(prim_geom, 0); |
2181 | } | 2185 | } |
2182 | else | 2186 | else |
2183 | { | 2187 | { |
2184 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 2188 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
2185 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 2189 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
2186 | } | 2190 | } |
2187 | UpdateDataFromGeom(); | 2191 | UpdateDataFromGeom(); |
2188 | d.GeomSetBody(prim_geom, IntPtr.Zero); | 2192 | SafeNativeMethods.GeomSetBody(prim_geom, IntPtr.Zero); |
2189 | SetInStaticSpace(this); | 2193 | SetInStaticSpace(this); |
2190 | } | 2194 | } |
2191 | 2195 | ||
@@ -2212,13 +2216,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2212 | { | 2216 | { |
2213 | if (prm.m_NoColide) | 2217 | if (prm.m_NoColide) |
2214 | { | 2218 | { |
2215 | d.GeomSetCategoryBits(prm.prim_geom, 0); | 2219 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, 0); |
2216 | d.GeomSetCollideBits(prm.prim_geom, 0); | 2220 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, 0); |
2217 | } | 2221 | } |
2218 | else | 2222 | else |
2219 | { | 2223 | { |
2220 | d.GeomSetCategoryBits(prm.prim_geom, (uint)prm.m_collisionCategories); | 2224 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, (uint)prm.m_collisionCategories); |
2221 | d.GeomSetCollideBits(prm.prim_geom, (uint)prm.m_collisionFlags); | 2225 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, (uint)prm.m_collisionFlags); |
2222 | } | 2226 | } |
2223 | prm.UpdateDataFromGeom(); | 2227 | prm.UpdateDataFromGeom(); |
2224 | SetInStaticSpace(prm); | 2228 | SetInStaticSpace(prm); |
@@ -2230,11 +2234,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2230 | } | 2234 | } |
2231 | if (Amotor != IntPtr.Zero) | 2235 | if (Amotor != IntPtr.Zero) |
2232 | { | 2236 | { |
2233 | d.JointDestroy(Amotor); | 2237 | SafeNativeMethods.JointDestroy(Amotor); |
2234 | Amotor = IntPtr.Zero; | 2238 | Amotor = IntPtr.Zero; |
2235 | } | 2239 | } |
2236 | _parent_scene.remActiveGroup(this); | 2240 | _parent_scene.remActiveGroup(this); |
2237 | d.BodyDestroy(Body); | 2241 | SafeNativeMethods.BodyDestroy(Body); |
2238 | } | 2242 | } |
2239 | Body = IntPtr.Zero; | 2243 | Body = IntPtr.Zero; |
2240 | } | 2244 | } |
@@ -2244,30 +2248,30 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2244 | 2248 | ||
2245 | private void FixInertia(Vector3 NewPos,Quaternion newrot) | 2249 | private void FixInertia(Vector3 NewPos,Quaternion newrot) |
2246 | { | 2250 | { |
2247 | d.Matrix3 mat = new d.Matrix3(); | 2251 | SafeNativeMethods.Matrix3 mat = new SafeNativeMethods.Matrix3(); |
2248 | d.Quaternion quat = new d.Quaternion(); | 2252 | SafeNativeMethods.Quaternion quat = new SafeNativeMethods.Quaternion(); |
2249 | 2253 | ||
2250 | d.Mass tmpdmass = new d.Mass { }; | 2254 | SafeNativeMethods.Mass tmpdmass = new SafeNativeMethods.Mass { }; |
2251 | d.Mass objdmass = new d.Mass { }; | 2255 | SafeNativeMethods.Mass objdmass = new SafeNativeMethods.Mass { }; |
2252 | 2256 | ||
2253 | d.BodyGetMass(Body, out tmpdmass); | 2257 | SafeNativeMethods.BodyGetMass(Body, out tmpdmass); |
2254 | objdmass = tmpdmass; | 2258 | objdmass = tmpdmass; |
2255 | 2259 | ||
2256 | d.Vector3 dobjpos; | 2260 | SafeNativeMethods.Vector3 dobjpos; |
2257 | d.Vector3 thispos; | 2261 | SafeNativeMethods.Vector3 thispos; |
2258 | 2262 | ||
2259 | // get current object position and rotation | 2263 | // get current object position and rotation |
2260 | dobjpos = d.BodyGetPosition(Body); | 2264 | dobjpos = SafeNativeMethods.BodyGetPosition(Body); |
2261 | 2265 | ||
2262 | // get prim own inertia in its local frame | 2266 | // get prim own inertia in its local frame |
2263 | tmpdmass = primdMass; | 2267 | tmpdmass = primdMass; |
2264 | 2268 | ||
2265 | // transform to object frame | 2269 | // transform to object frame |
2266 | mat = d.GeomGetOffsetRotation(prim_geom); | 2270 | mat = SafeNativeMethods.GeomGetOffsetRotation(prim_geom); |
2267 | d.MassRotate(ref tmpdmass, ref mat); | 2271 | SafeNativeMethods.MassRotate(ref tmpdmass, ref mat); |
2268 | 2272 | ||
2269 | thispos = d.GeomGetOffsetPosition(prim_geom); | 2273 | thispos = SafeNativeMethods.GeomGetOffsetPosition(prim_geom); |
2270 | d.MassTranslate(ref tmpdmass, | 2274 | SafeNativeMethods.MassTranslate(ref tmpdmass, |
2271 | thispos.X, | 2275 | thispos.X, |
2272 | thispos.Y, | 2276 | thispos.Y, |
2273 | thispos.Z); | 2277 | thispos.Z); |
@@ -2280,66 +2284,66 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2280 | 2284 | ||
2281 | // update to new position and orientation | 2285 | // update to new position and orientation |
2282 | _position = NewPos; | 2286 | _position = NewPos; |
2283 | d.GeomSetOffsetWorldPosition(prim_geom, NewPos.X, NewPos.Y, NewPos.Z); | 2287 | SafeNativeMethods.GeomSetOffsetWorldPosition(prim_geom, NewPos.X, NewPos.Y, NewPos.Z); |
2284 | _orientation = newrot; | 2288 | _orientation = newrot; |
2285 | quat.X = newrot.X; | 2289 | quat.X = newrot.X; |
2286 | quat.Y = newrot.Y; | 2290 | quat.Y = newrot.Y; |
2287 | quat.Z = newrot.Z; | 2291 | quat.Z = newrot.Z; |
2288 | quat.W = newrot.W; | 2292 | quat.W = newrot.W; |
2289 | d.GeomSetOffsetWorldQuaternion(prim_geom, ref quat); | 2293 | SafeNativeMethods.GeomSetOffsetWorldQuaternion(prim_geom, ref quat); |
2290 | 2294 | ||
2291 | mat = d.GeomGetOffsetRotation(prim_geom); | 2295 | mat = SafeNativeMethods.GeomGetOffsetRotation(prim_geom); |
2292 | d.MassRotate(ref tmpdmass, ref mat); | 2296 | SafeNativeMethods.MassRotate(ref tmpdmass, ref mat); |
2293 | 2297 | ||
2294 | thispos = d.GeomGetOffsetPosition(prim_geom); | 2298 | thispos = SafeNativeMethods.GeomGetOffsetPosition(prim_geom); |
2295 | d.MassTranslate(ref tmpdmass, | 2299 | SafeNativeMethods.MassTranslate(ref tmpdmass, |
2296 | thispos.X, | 2300 | thispos.X, |
2297 | thispos.Y, | 2301 | thispos.Y, |
2298 | thispos.Z); | 2302 | thispos.Z); |
2299 | 2303 | ||
2300 | d.MassAdd(ref objdmass, ref tmpdmass); | 2304 | SafeNativeMethods.MassAdd(ref objdmass, ref tmpdmass); |
2301 | 2305 | ||
2302 | // fix all positions | 2306 | // fix all positions |
2303 | IntPtr g = d.BodyGetFirstGeom(Body); | 2307 | IntPtr g = SafeNativeMethods.BodyGetFirstGeom(Body); |
2304 | while (g != IntPtr.Zero) | 2308 | while (g != IntPtr.Zero) |
2305 | { | 2309 | { |
2306 | thispos = d.GeomGetOffsetPosition(g); | 2310 | thispos = SafeNativeMethods.GeomGetOffsetPosition(g); |
2307 | thispos.X -= objdmass.c.X; | 2311 | thispos.X -= objdmass.c.X; |
2308 | thispos.Y -= objdmass.c.Y; | 2312 | thispos.Y -= objdmass.c.Y; |
2309 | thispos.Z -= objdmass.c.Z; | 2313 | thispos.Z -= objdmass.c.Z; |
2310 | d.GeomSetOffsetPosition(g, thispos.X, thispos.Y, thispos.Z); | 2314 | SafeNativeMethods.GeomSetOffsetPosition(g, thispos.X, thispos.Y, thispos.Z); |
2311 | g = d.dBodyGetNextGeom(g); | 2315 | g = SafeNativeMethods.dBodyGetNextGeom(g); |
2312 | } | 2316 | } |
2313 | d.BodyVectorToWorld(Body,objdmass.c.X, objdmass.c.Y, objdmass.c.Z,out thispos); | 2317 | SafeNativeMethods.BodyVectorToWorld(Body,objdmass.c.X, objdmass.c.Y, objdmass.c.Z,out thispos); |
2314 | 2318 | ||
2315 | d.BodySetPosition(Body, dobjpos.X + thispos.X, dobjpos.Y + thispos.Y, dobjpos.Z + thispos.Z); | 2319 | SafeNativeMethods.BodySetPosition(Body, dobjpos.X + thispos.X, dobjpos.Y + thispos.Y, dobjpos.Z + thispos.Z); |
2316 | d.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body | 2320 | SafeNativeMethods.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body |
2317 | d.BodySetMass(Body, ref objdmass); | 2321 | SafeNativeMethods.BodySetMass(Body, ref objdmass); |
2318 | m_mass = objdmass.mass; | 2322 | m_mass = objdmass.mass; |
2319 | } | 2323 | } |
2320 | 2324 | ||
2321 | private void FixInertia(Vector3 NewPos) | 2325 | private void FixInertia(Vector3 NewPos) |
2322 | { | 2326 | { |
2323 | d.Matrix3 primmat = new d.Matrix3(); | 2327 | SafeNativeMethods.Matrix3 primmat = new SafeNativeMethods.Matrix3(); |
2324 | d.Mass tmpdmass = new d.Mass { }; | 2328 | SafeNativeMethods.Mass tmpdmass = new SafeNativeMethods.Mass { }; |
2325 | d.Mass objdmass = new d.Mass { }; | 2329 | SafeNativeMethods.Mass objdmass = new SafeNativeMethods.Mass { }; |
2326 | d.Mass primmass = new d.Mass { }; | 2330 | SafeNativeMethods.Mass primmass = new SafeNativeMethods.Mass { }; |
2327 | 2331 | ||
2328 | d.Vector3 dobjpos; | 2332 | SafeNativeMethods.Vector3 dobjpos; |
2329 | d.Vector3 thispos; | 2333 | SafeNativeMethods.Vector3 thispos; |
2330 | 2334 | ||
2331 | d.BodyGetMass(Body, out objdmass); | 2335 | SafeNativeMethods.BodyGetMass(Body, out objdmass); |
2332 | 2336 | ||
2333 | // get prim own inertia in its local frame | 2337 | // get prim own inertia in its local frame |
2334 | primmass = primdMass; | 2338 | primmass = primdMass; |
2335 | // transform to object frame | 2339 | // transform to object frame |
2336 | primmat = d.GeomGetOffsetRotation(prim_geom); | 2340 | primmat = SafeNativeMethods.GeomGetOffsetRotation(prim_geom); |
2337 | d.MassRotate(ref primmass, ref primmat); | 2341 | SafeNativeMethods.MassRotate(ref primmass, ref primmat); |
2338 | 2342 | ||
2339 | tmpdmass = primmass; | 2343 | tmpdmass = primmass; |
2340 | 2344 | ||
2341 | thispos = d.GeomGetOffsetPosition(prim_geom); | 2345 | thispos = SafeNativeMethods.GeomGetOffsetPosition(prim_geom); |
2342 | d.MassTranslate(ref tmpdmass, | 2346 | SafeNativeMethods.MassTranslate(ref tmpdmass, |
2343 | thispos.X, | 2347 | thispos.X, |
2344 | thispos.Y, | 2348 | thispos.Y, |
2345 | thispos.Z); | 2349 | thispos.Z); |
@@ -2349,58 +2353,58 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2349 | 2353 | ||
2350 | // update to new position | 2354 | // update to new position |
2351 | _position = NewPos; | 2355 | _position = NewPos; |
2352 | d.GeomSetOffsetWorldPosition(prim_geom, NewPos.X, NewPos.Y, NewPos.Z); | 2356 | SafeNativeMethods.GeomSetOffsetWorldPosition(prim_geom, NewPos.X, NewPos.Y, NewPos.Z); |
2353 | 2357 | ||
2354 | thispos = d.GeomGetOffsetPosition(prim_geom); | 2358 | thispos = SafeNativeMethods.GeomGetOffsetPosition(prim_geom); |
2355 | d.MassTranslate(ref primmass, | 2359 | SafeNativeMethods.MassTranslate(ref primmass, |
2356 | thispos.X, | 2360 | thispos.X, |
2357 | thispos.Y, | 2361 | thispos.Y, |
2358 | thispos.Z); | 2362 | thispos.Z); |
2359 | 2363 | ||
2360 | d.MassAdd(ref objdmass, ref primmass); | 2364 | SafeNativeMethods.MassAdd(ref objdmass, ref primmass); |
2361 | 2365 | ||
2362 | // fix all positions | 2366 | // fix all positions |
2363 | IntPtr g = d.BodyGetFirstGeom(Body); | 2367 | IntPtr g = SafeNativeMethods.BodyGetFirstGeom(Body); |
2364 | while (g != IntPtr.Zero) | 2368 | while (g != IntPtr.Zero) |
2365 | { | 2369 | { |
2366 | thispos = d.GeomGetOffsetPosition(g); | 2370 | thispos = SafeNativeMethods.GeomGetOffsetPosition(g); |
2367 | thispos.X -= objdmass.c.X; | 2371 | thispos.X -= objdmass.c.X; |
2368 | thispos.Y -= objdmass.c.Y; | 2372 | thispos.Y -= objdmass.c.Y; |
2369 | thispos.Z -= objdmass.c.Z; | 2373 | thispos.Z -= objdmass.c.Z; |
2370 | d.GeomSetOffsetPosition(g, thispos.X, thispos.Y, thispos.Z); | 2374 | SafeNativeMethods.GeomSetOffsetPosition(g, thispos.X, thispos.Y, thispos.Z); |
2371 | g = d.dBodyGetNextGeom(g); | 2375 | g = SafeNativeMethods.dBodyGetNextGeom(g); |
2372 | } | 2376 | } |
2373 | 2377 | ||
2374 | d.BodyVectorToWorld(Body, objdmass.c.X, objdmass.c.Y, objdmass.c.Z, out thispos); | 2378 | SafeNativeMethods.BodyVectorToWorld(Body, objdmass.c.X, objdmass.c.Y, objdmass.c.Z, out thispos); |
2375 | 2379 | ||
2376 | // get current object position and rotation | 2380 | // get current object position and rotation |
2377 | dobjpos = d.BodyGetPosition(Body); | 2381 | dobjpos = SafeNativeMethods.BodyGetPosition(Body); |
2378 | 2382 | ||
2379 | d.BodySetPosition(Body, dobjpos.X + thispos.X, dobjpos.Y + thispos.Y, dobjpos.Z + thispos.Z); | 2383 | SafeNativeMethods.BodySetPosition(Body, dobjpos.X + thispos.X, dobjpos.Y + thispos.Y, dobjpos.Z + thispos.Z); |
2380 | d.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body | 2384 | SafeNativeMethods.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body |
2381 | d.BodySetMass(Body, ref objdmass); | 2385 | SafeNativeMethods.BodySetMass(Body, ref objdmass); |
2382 | m_mass = objdmass.mass; | 2386 | m_mass = objdmass.mass; |
2383 | } | 2387 | } |
2384 | 2388 | ||
2385 | private void FixInertia(Quaternion newrot) | 2389 | private void FixInertia(Quaternion newrot) |
2386 | { | 2390 | { |
2387 | d.Matrix3 mat = new d.Matrix3(); | 2391 | SafeNativeMethods.Matrix3 mat = new SafeNativeMethods.Matrix3(); |
2388 | d.Quaternion quat = new d.Quaternion(); | 2392 | SafeNativeMethods.Quaternion quat = new SafeNativeMethods.Quaternion(); |
2389 | 2393 | ||
2390 | d.Mass tmpdmass = new d.Mass { }; | 2394 | SafeNativeMethods.Mass tmpdmass = new SafeNativeMethods.Mass { }; |
2391 | d.Mass objdmass = new d.Mass { }; | 2395 | SafeNativeMethods.Mass objdmass = new SafeNativeMethods.Mass { }; |
2392 | d.Vector3 dobjpos; | 2396 | SafeNativeMethods.Vector3 dobjpos; |
2393 | d.Vector3 thispos; | 2397 | SafeNativeMethods.Vector3 thispos; |
2394 | 2398 | ||
2395 | d.BodyGetMass(Body, out objdmass); | 2399 | SafeNativeMethods.BodyGetMass(Body, out objdmass); |
2396 | 2400 | ||
2397 | // get prim own inertia in its local frame | 2401 | // get prim own inertia in its local frame |
2398 | tmpdmass = primdMass; | 2402 | tmpdmass = primdMass; |
2399 | mat = d.GeomGetOffsetRotation(prim_geom); | 2403 | mat = SafeNativeMethods.GeomGetOffsetRotation(prim_geom); |
2400 | d.MassRotate(ref tmpdmass, ref mat); | 2404 | SafeNativeMethods.MassRotate(ref tmpdmass, ref mat); |
2401 | // transform to object frame | 2405 | // transform to object frame |
2402 | thispos = d.GeomGetOffsetPosition(prim_geom); | 2406 | thispos = SafeNativeMethods.GeomGetOffsetPosition(prim_geom); |
2403 | d.MassTranslate(ref tmpdmass, | 2407 | SafeNativeMethods.MassTranslate(ref tmpdmass, |
2404 | thispos.X, | 2408 | thispos.X, |
2405 | thispos.Y, | 2409 | thispos.Y, |
2406 | thispos.Z); | 2410 | thispos.Z); |
@@ -2414,37 +2418,37 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2414 | quat.Y = newrot.Y; | 2418 | quat.Y = newrot.Y; |
2415 | quat.Z = newrot.Z; | 2419 | quat.Z = newrot.Z; |
2416 | quat.W = newrot.W; | 2420 | quat.W = newrot.W; |
2417 | d.GeomSetOffsetWorldQuaternion(prim_geom, ref quat); | 2421 | SafeNativeMethods.GeomSetOffsetWorldQuaternion(prim_geom, ref quat); |
2418 | 2422 | ||
2419 | tmpdmass = primdMass; | 2423 | tmpdmass = primdMass; |
2420 | mat = d.GeomGetOffsetRotation(prim_geom); | 2424 | mat = SafeNativeMethods.GeomGetOffsetRotation(prim_geom); |
2421 | d.MassRotate(ref tmpdmass, ref mat); | 2425 | SafeNativeMethods.MassRotate(ref tmpdmass, ref mat); |
2422 | d.MassTranslate(ref tmpdmass, | 2426 | SafeNativeMethods.MassTranslate(ref tmpdmass, |
2423 | thispos.X, | 2427 | thispos.X, |
2424 | thispos.Y, | 2428 | thispos.Y, |
2425 | thispos.Z); | 2429 | thispos.Z); |
2426 | 2430 | ||
2427 | d.MassAdd(ref objdmass, ref tmpdmass); | 2431 | SafeNativeMethods.MassAdd(ref objdmass, ref tmpdmass); |
2428 | 2432 | ||
2429 | // fix all positions | 2433 | // fix all positions |
2430 | IntPtr g = d.BodyGetFirstGeom(Body); | 2434 | IntPtr g = SafeNativeMethods.BodyGetFirstGeom(Body); |
2431 | while (g != IntPtr.Zero) | 2435 | while (g != IntPtr.Zero) |
2432 | { | 2436 | { |
2433 | thispos = d.GeomGetOffsetPosition(g); | 2437 | thispos = SafeNativeMethods.GeomGetOffsetPosition(g); |
2434 | thispos.X -= objdmass.c.X; | 2438 | thispos.X -= objdmass.c.X; |
2435 | thispos.Y -= objdmass.c.Y; | 2439 | thispos.Y -= objdmass.c.Y; |
2436 | thispos.Z -= objdmass.c.Z; | 2440 | thispos.Z -= objdmass.c.Z; |
2437 | d.GeomSetOffsetPosition(g, thispos.X, thispos.Y, thispos.Z); | 2441 | SafeNativeMethods.GeomSetOffsetPosition(g, thispos.X, thispos.Y, thispos.Z); |
2438 | g = d.dBodyGetNextGeom(g); | 2442 | g = SafeNativeMethods.dBodyGetNextGeom(g); |
2439 | } | 2443 | } |
2440 | 2444 | ||
2441 | d.BodyVectorToWorld(Body, objdmass.c.X, objdmass.c.Y, objdmass.c.Z, out thispos); | 2445 | SafeNativeMethods.BodyVectorToWorld(Body, objdmass.c.X, objdmass.c.Y, objdmass.c.Z, out thispos); |
2442 | // get current object position and rotation | 2446 | // get current object position and rotation |
2443 | dobjpos = d.BodyGetPosition(Body); | 2447 | dobjpos = SafeNativeMethods.BodyGetPosition(Body); |
2444 | 2448 | ||
2445 | d.BodySetPosition(Body, dobjpos.X + thispos.X, dobjpos.Y + thispos.Y, dobjpos.Z + thispos.Z); | 2449 | SafeNativeMethods.BodySetPosition(Body, dobjpos.X + thispos.X, dobjpos.Y + thispos.Y, dobjpos.Z + thispos.Z); |
2446 | d.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body | 2450 | SafeNativeMethods.MassTranslate(ref objdmass, -objdmass.c.X, -objdmass.c.Y, -objdmass.c.Z); // ode wants inertia at center of body |
2447 | d.BodySetMass(Body, ref objdmass); | 2451 | SafeNativeMethods.BodySetMass(Body, ref objdmass); |
2448 | m_mass = objdmass.mass; | 2452 | m_mass = objdmass.mass; |
2449 | } | 2453 | } |
2450 | 2454 | ||
@@ -2462,9 +2466,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2462 | 2466 | ||
2463 | m_mass = primMass; // just in case | 2467 | m_mass = primMass; // just in case |
2464 | 2468 | ||
2465 | d.MassSetBoxTotal(out primdMass, primMass, 2.0f * m_OBB.X, 2.0f * m_OBB.Y, 2.0f * m_OBB.Z); | 2469 | SafeNativeMethods.MassSetBoxTotal(out primdMass, primMass, 2.0f * m_OBB.X, 2.0f * m_OBB.Y, 2.0f * m_OBB.Z); |
2466 | 2470 | ||
2467 | d.MassTranslate(ref primdMass, | 2471 | SafeNativeMethods.MassTranslate(ref primdMass, |
2468 | m_OBBOffset.X, | 2472 | m_OBBOffset.X, |
2469 | m_OBBOffset.Y, | 2473 | m_OBBOffset.Y, |
2470 | m_OBBOffset.Z); | 2474 | m_OBBOffset.Z); |
@@ -2519,7 +2523,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2519 | if (prm.Body != IntPtr.Zero) | 2523 | if (prm.Body != IntPtr.Zero) |
2520 | { | 2524 | { |
2521 | if (prm.prim_geom != IntPtr.Zero) | 2525 | if (prm.prim_geom != IntPtr.Zero) |
2522 | d.GeomSetBody(prm.prim_geom, IntPtr.Zero); | 2526 | SafeNativeMethods.GeomSetBody(prm.prim_geom, IntPtr.Zero); |
2523 | if (prm.Body != prim.Body) | 2527 | if (prm.Body != prim.Body) |
2524 | prm.DestroyBody(); // don't loose bodies around | 2528 | prm.DestroyBody(); // don't loose bodies around |
2525 | prm.Body = IntPtr.Zero; | 2529 | prm.Body = IntPtr.Zero; |
@@ -2536,7 +2540,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2536 | if (prim.Body != IntPtr.Zero) | 2540 | if (prim.Body != IntPtr.Zero) |
2537 | { | 2541 | { |
2538 | if (prim.prim_geom != IntPtr.Zero) | 2542 | if (prim.prim_geom != IntPtr.Zero) |
2539 | d.GeomSetBody(prim.prim_geom, IntPtr.Zero); | 2543 | SafeNativeMethods.GeomSetBody(prim.prim_geom, IntPtr.Zero); |
2540 | prim.DestroyBody(); // don't loose bodies around | 2544 | prim.DestroyBody(); // don't loose bodies around |
2541 | prim.Body = IntPtr.Zero; | 2545 | prim.Body = IntPtr.Zero; |
2542 | } | 2546 | } |
@@ -2561,8 +2565,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2561 | { | 2565 | { |
2562 | if (prim_geom != IntPtr.Zero) | 2566 | if (prim_geom != IntPtr.Zero) |
2563 | { | 2567 | { |
2564 | d.Quaternion qtmp; | 2568 | SafeNativeMethods.Quaternion qtmp; |
2565 | d.GeomCopyQuaternion(prim_geom, out qtmp); | 2569 | SafeNativeMethods.GeomCopyQuaternion(prim_geom, out qtmp); |
2566 | _orientation.X = qtmp.X; | 2570 | _orientation.X = qtmp.X; |
2567 | _orientation.Y = qtmp.Y; | 2571 | _orientation.Y = qtmp.Y; |
2568 | _orientation.Z = qtmp.Z; | 2572 | _orientation.Z = qtmp.Z; |
@@ -2576,7 +2580,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2576 | */ | 2580 | */ |
2577 | _orientation.Normalize(); | 2581 | _orientation.Normalize(); |
2578 | 2582 | ||
2579 | d.Vector3 lpos = d.GeomGetPosition(prim_geom); | 2583 | SafeNativeMethods.Vector3 lpos = SafeNativeMethods.GeomGetPosition(prim_geom); |
2580 | _position.X = lpos.X; | 2584 | _position.X = lpos.X; |
2581 | _position.Y = lpos.Y; | 2585 | _position.Y = lpos.Y; |
2582 | _position.Z = lpos.Z; | 2586 | _position.Z = lpos.Z; |
@@ -2705,7 +2709,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2705 | { | 2709 | { |
2706 | if (Amotor != IntPtr.Zero) | 2710 | if (Amotor != IntPtr.Zero) |
2707 | { | 2711 | { |
2708 | d.JointDestroy(Amotor); | 2712 | SafeNativeMethods.JointDestroy(Amotor); |
2709 | Amotor = IntPtr.Zero; | 2713 | Amotor = IntPtr.Zero; |
2710 | } | 2714 | } |
2711 | } | 2715 | } |
@@ -2762,10 +2766,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2762 | 2766 | ||
2763 | if (Body != IntPtr.Zero) | 2767 | if (Body != IntPtr.Zero) |
2764 | { | 2768 | { |
2765 | d.BodySetForce(Body, 0f, 0f, 0f); | 2769 | SafeNativeMethods.BodySetForce(Body, 0f, 0f, 0f); |
2766 | d.BodySetTorque(Body, 0f, 0f, 0f); | 2770 | SafeNativeMethods.BodySetTorque(Body, 0f, 0f, 0f); |
2767 | d.BodySetLinearVel(Body, 0f, 0f, 0f); | 2771 | SafeNativeMethods.BodySetLinearVel(Body, 0f, 0f, 0f); |
2768 | d.BodySetAngularVel(Body, 0f, 0f, 0f); | 2772 | SafeNativeMethods.BodySetAngularVel(Body, 0f, 0f, 0f); |
2769 | } | 2773 | } |
2770 | } | 2774 | } |
2771 | 2775 | ||
@@ -2827,7 +2831,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2827 | if (newval) | 2831 | if (newval) |
2828 | { | 2832 | { |
2829 | if (!childPrim && Body != IntPtr.Zero) | 2833 | if (!childPrim && Body != IntPtr.Zero) |
2830 | d.BodyDisable(Body); | 2834 | SafeNativeMethods.BodyDisable(Body); |
2831 | 2835 | ||
2832 | if (m_delaySelect || m_isphysical) | 2836 | if (m_delaySelect || m_isphysical) |
2833 | { | 2837 | { |
@@ -2846,13 +2850,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2846 | 2850 | ||
2847 | if (prm.m_NoColide) | 2851 | if (prm.m_NoColide) |
2848 | { | 2852 | { |
2849 | d.GeomSetCategoryBits(prm.prim_geom, 0); | 2853 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, 0); |
2850 | d.GeomSetCollideBits(prm.prim_geom, 0); | 2854 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, 0); |
2851 | } | 2855 | } |
2852 | else | 2856 | else |
2853 | { | 2857 | { |
2854 | d.GeomSetCategoryBits(prm.prim_geom, (uint)m_collisionCategories); | 2858 | SafeNativeMethods.GeomSetCategoryBits(prm.prim_geom, (uint)m_collisionCategories); |
2855 | d.GeomSetCollideBits(prm.prim_geom, (uint)m_collisionFlags); | 2859 | SafeNativeMethods.GeomSetCollideBits(prm.prim_geom, (uint)m_collisionFlags); |
2856 | } | 2860 | } |
2857 | } | 2861 | } |
2858 | prm.m_delaySelect = false; | 2862 | prm.m_delaySelect = false; |
@@ -2866,23 +2870,23 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2866 | { | 2870 | { |
2867 | if (m_NoColide) | 2871 | if (m_NoColide) |
2868 | { | 2872 | { |
2869 | d.GeomSetCategoryBits(prim_geom, 0); | 2873 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, 0); |
2870 | d.GeomSetCollideBits(prim_geom, 0); | 2874 | SafeNativeMethods.GeomSetCollideBits(prim_geom, 0); |
2871 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) | 2875 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) |
2872 | { | 2876 | { |
2873 | d.GeomSetCategoryBits(collide_geom, 0); | 2877 | SafeNativeMethods.GeomSetCategoryBits(collide_geom, 0); |
2874 | d.GeomSetCollideBits(collide_geom, 0); | 2878 | SafeNativeMethods.GeomSetCollideBits(collide_geom, 0); |
2875 | } | 2879 | } |
2876 | 2880 | ||
2877 | } | 2881 | } |
2878 | else | 2882 | else |
2879 | { | 2883 | { |
2880 | d.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); | 2884 | SafeNativeMethods.GeomSetCategoryBits(prim_geom, (uint)m_collisionCategories); |
2881 | d.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); | 2885 | SafeNativeMethods.GeomSetCollideBits(prim_geom, (uint)m_collisionFlags); |
2882 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) | 2886 | if (collide_geom != prim_geom && collide_geom != IntPtr.Zero) |
2883 | { | 2887 | { |
2884 | d.GeomSetCategoryBits(collide_geom, (uint)m_collisionCategories); | 2888 | SafeNativeMethods.GeomSetCategoryBits(collide_geom, (uint)m_collisionCategories); |
2885 | d.GeomSetCollideBits(collide_geom, (uint)m_collisionFlags); | 2889 | SafeNativeMethods.GeomSetCollideBits(collide_geom, (uint)m_collisionFlags); |
2886 | } | 2890 | } |
2887 | } | 2891 | } |
2888 | } | 2892 | } |
@@ -2901,8 +2905,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2901 | if (Body != IntPtr.Zero && !m_disabled) | 2905 | if (Body != IntPtr.Zero && !m_disabled) |
2902 | { | 2906 | { |
2903 | _zeroFlag = true; | 2907 | _zeroFlag = true; |
2904 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 2908 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
2905 | d.BodyEnable(Body); | 2909 | SafeNativeMethods.BodyEnable(Body); |
2906 | } | 2910 | } |
2907 | } | 2911 | } |
2908 | // else if (_parent != null) | 2912 | // else if (_parent != null) |
@@ -2932,11 +2936,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2932 | else if (m_forcePosOrRotation && _position != newPos && Body != IntPtr.Zero) | 2936 | else if (m_forcePosOrRotation && _position != newPos && Body != IntPtr.Zero) |
2933 | { | 2937 | { |
2934 | FixInertia(newPos); | 2938 | FixInertia(newPos); |
2935 | if (!d.BodyIsEnabled(Body)) | 2939 | if (!SafeNativeMethods.BodyIsEnabled(Body)) |
2936 | { | 2940 | { |
2937 | _zeroFlag = true; | 2941 | _zeroFlag = true; |
2938 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 2942 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
2939 | d.BodyEnable(Body); | 2943 | SafeNativeMethods.BodyEnable(Body); |
2940 | } | 2944 | } |
2941 | } | 2945 | } |
2942 | } | 2946 | } |
@@ -2944,14 +2948,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2944 | { | 2948 | { |
2945 | if (_position != newPos) | 2949 | if (_position != newPos) |
2946 | { | 2950 | { |
2947 | d.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); | 2951 | SafeNativeMethods.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); |
2948 | _position = newPos; | 2952 | _position = newPos; |
2949 | } | 2953 | } |
2950 | if (Body != IntPtr.Zero && !d.BodyIsEnabled(Body)) | 2954 | if (Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(Body)) |
2951 | { | 2955 | { |
2952 | _zeroFlag = true; | 2956 | _zeroFlag = true; |
2953 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 2957 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
2954 | d.BodyEnable(Body); | 2958 | SafeNativeMethods.BodyEnable(Body); |
2955 | } | 2959 | } |
2956 | } | 2960 | } |
2957 | } | 2961 | } |
@@ -2961,10 +2965,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2961 | { | 2965 | { |
2962 | if (newPos != _position) | 2966 | if (newPos != _position) |
2963 | { | 2967 | { |
2964 | d.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); | 2968 | SafeNativeMethods.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); |
2965 | _position = newPos; | 2969 | _position = newPos; |
2966 | 2970 | ||
2967 | m_targetSpace = _parent_scene.MoveGeomToStaticSpace(prim_geom, _position, m_targetSpace); | 2971 | m_targetSpace = _parent_scene.MoveGeomToStaticSpace(prim_geom, m_targetSpace); |
2968 | } | 2972 | } |
2969 | } | 2973 | } |
2970 | } | 2974 | } |
@@ -2999,12 +3003,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2999 | { | 3003 | { |
3000 | if (newOri != _orientation) | 3004 | if (newOri != _orientation) |
3001 | { | 3005 | { |
3002 | d.Quaternion myrot = new d.Quaternion(); | 3006 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
3003 | myrot.X = newOri.X; | 3007 | myrot.X = newOri.X; |
3004 | myrot.Y = newOri.Y; | 3008 | myrot.Y = newOri.Y; |
3005 | myrot.Z = newOri.Z; | 3009 | myrot.Z = newOri.Z; |
3006 | myrot.W = newOri.W; | 3010 | myrot.W = newOri.W; |
3007 | d.GeomSetQuaternion(prim_geom, ref myrot); | 3011 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
3008 | _orientation = newOri; | 3012 | _orientation = newOri; |
3009 | 3013 | ||
3010 | if (Body != IntPtr.Zero) | 3014 | if (Body != IntPtr.Zero) |
@@ -3013,11 +3017,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3013 | createAMotor(m_angularlocks); | 3017 | createAMotor(m_angularlocks); |
3014 | } | 3018 | } |
3015 | } | 3019 | } |
3016 | if (Body != IntPtr.Zero && !d.BodyIsEnabled(Body)) | 3020 | if (Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(Body)) |
3017 | { | 3021 | { |
3018 | _zeroFlag = true; | 3022 | _zeroFlag = true; |
3019 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3023 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3020 | d.BodyEnable(Body); | 3024 | SafeNativeMethods.BodyEnable(Body); |
3021 | } | 3025 | } |
3022 | } | 3026 | } |
3023 | } | 3027 | } |
@@ -3027,12 +3031,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3027 | { | 3031 | { |
3028 | if (newOri != _orientation) | 3032 | if (newOri != _orientation) |
3029 | { | 3033 | { |
3030 | d.Quaternion myrot = new d.Quaternion(); | 3034 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
3031 | myrot.X = newOri.X; | 3035 | myrot.X = newOri.X; |
3032 | myrot.Y = newOri.Y; | 3036 | myrot.Y = newOri.Y; |
3033 | myrot.Z = newOri.Z; | 3037 | myrot.Z = newOri.Z; |
3034 | myrot.W = newOri.W; | 3038 | myrot.W = newOri.W; |
3035 | d.GeomSetQuaternion(prim_geom, ref myrot); | 3039 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
3036 | _orientation = newOri; | 3040 | _orientation = newOri; |
3037 | } | 3041 | } |
3038 | } | 3042 | } |
@@ -3057,26 +3061,26 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3057 | { | 3061 | { |
3058 | if (newOri != _orientation) | 3062 | if (newOri != _orientation) |
3059 | { | 3063 | { |
3060 | d.Quaternion myrot = new d.Quaternion(); | 3064 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
3061 | myrot.X = newOri.X; | 3065 | myrot.X = newOri.X; |
3062 | myrot.Y = newOri.Y; | 3066 | myrot.Y = newOri.Y; |
3063 | myrot.Z = newOri.Z; | 3067 | myrot.Z = newOri.Z; |
3064 | myrot.W = newOri.W; | 3068 | myrot.W = newOri.W; |
3065 | d.GeomSetQuaternion(prim_geom, ref myrot); | 3069 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
3066 | _orientation = newOri; | 3070 | _orientation = newOri; |
3067 | if (Body != IntPtr.Zero && m_angularlocks != 0) | 3071 | if (Body != IntPtr.Zero && m_angularlocks != 0) |
3068 | createAMotor(m_angularlocks); | 3072 | createAMotor(m_angularlocks); |
3069 | } | 3073 | } |
3070 | if (_position != newPos) | 3074 | if (_position != newPos) |
3071 | { | 3075 | { |
3072 | d.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); | 3076 | SafeNativeMethods.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); |
3073 | _position = newPos; | 3077 | _position = newPos; |
3074 | } | 3078 | } |
3075 | if (Body != IntPtr.Zero && !d.BodyIsEnabled(Body)) | 3079 | if (Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(Body)) |
3076 | { | 3080 | { |
3077 | _zeroFlag = true; | 3081 | _zeroFlag = true; |
3078 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3082 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3079 | d.BodyEnable(Body); | 3083 | SafeNativeMethods.BodyEnable(Body); |
3080 | } | 3084 | } |
3081 | } | 3085 | } |
3082 | } | 3086 | } |
@@ -3089,21 +3093,21 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3089 | { | 3093 | { |
3090 | if (newOri != _orientation) | 3094 | if (newOri != _orientation) |
3091 | { | 3095 | { |
3092 | d.Quaternion myrot = new d.Quaternion(); | 3096 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
3093 | myrot.X = newOri.X; | 3097 | myrot.X = newOri.X; |
3094 | myrot.Y = newOri.Y; | 3098 | myrot.Y = newOri.Y; |
3095 | myrot.Z = newOri.Z; | 3099 | myrot.Z = newOri.Z; |
3096 | myrot.W = newOri.W; | 3100 | myrot.W = newOri.W; |
3097 | d.GeomSetQuaternion(prim_geom, ref myrot); | 3101 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
3098 | _orientation = newOri; | 3102 | _orientation = newOri; |
3099 | } | 3103 | } |
3100 | 3104 | ||
3101 | if (newPos != _position) | 3105 | if (newPos != _position) |
3102 | { | 3106 | { |
3103 | d.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); | 3107 | SafeNativeMethods.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); |
3104 | _position = newPos; | 3108 | _position = newPos; |
3105 | 3109 | ||
3106 | m_targetSpace = _parent_scene.MoveGeomToStaticSpace(prim_geom, _position, m_targetSpace); | 3110 | m_targetSpace = _parent_scene.MoveGeomToStaticSpace(prim_geom, m_targetSpace); |
3107 | } | 3111 | } |
3108 | } | 3112 | } |
3109 | } | 3113 | } |
@@ -3184,13 +3188,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3184 | 3188 | ||
3185 | if (prim_geom != IntPtr.Zero) | 3189 | if (prim_geom != IntPtr.Zero) |
3186 | { | 3190 | { |
3187 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 3191 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
3188 | d.Quaternion myrot = new d.Quaternion(); | 3192 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
3189 | myrot.X = _orientation.X; | 3193 | myrot.X = _orientation.X; |
3190 | myrot.Y = _orientation.Y; | 3194 | myrot.Y = _orientation.Y; |
3191 | myrot.Z = _orientation.Z; | 3195 | myrot.Z = _orientation.Z; |
3192 | myrot.W = _orientation.W; | 3196 | myrot.W = _orientation.W; |
3193 | d.GeomSetQuaternion(prim_geom, ref myrot); | 3197 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
3194 | } | 3198 | } |
3195 | 3199 | ||
3196 | if (!m_isphysical) | 3200 | if (!m_isphysical) |
@@ -3260,13 +3264,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3260 | 3264 | ||
3261 | if (prim_geom != IntPtr.Zero) | 3265 | if (prim_geom != IntPtr.Zero) |
3262 | { | 3266 | { |
3263 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 3267 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
3264 | d.Quaternion myrot = new d.Quaternion(); | 3268 | SafeNativeMethods.Quaternion myrot = new SafeNativeMethods.Quaternion(); |
3265 | myrot.X = _orientation.X; | 3269 | myrot.X = _orientation.X; |
3266 | myrot.Y = _orientation.Y; | 3270 | myrot.Y = _orientation.Y; |
3267 | myrot.Z = _orientation.Z; | 3271 | myrot.Z = _orientation.Z; |
3268 | myrot.W = _orientation.W; | 3272 | myrot.W = _orientation.W; |
3269 | d.GeomSetQuaternion(prim_geom, ref myrot); | 3273 | SafeNativeMethods.GeomSetQuaternion(prim_geom, ref myrot); |
3270 | } | 3274 | } |
3271 | 3275 | ||
3272 | if (m_isphysical) | 3276 | if (m_isphysical) |
@@ -3317,10 +3321,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3317 | { | 3321 | { |
3318 | if (m_disabled) | 3322 | if (m_disabled) |
3319 | enableBodySoft(); | 3323 | enableBodySoft(); |
3320 | else if (!d.BodyIsEnabled(Body)) | 3324 | else if (!SafeNativeMethods.BodyIsEnabled(Body)) |
3321 | { | 3325 | { |
3322 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3326 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3323 | d.BodyEnable(Body); | 3327 | SafeNativeMethods.BodyEnable(Body); |
3324 | } | 3328 | } |
3325 | } | 3329 | } |
3326 | m_torque = newtorque; | 3330 | m_torque = newtorque; |
@@ -3330,10 +3334,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3330 | private void changeForce(Vector3 force) | 3334 | private void changeForce(Vector3 force) |
3331 | { | 3335 | { |
3332 | m_force = force; | 3336 | m_force = force; |
3333 | if (!m_isSelected && !m_outbounds && Body != IntPtr.Zero && !d.BodyIsEnabled(Body)) | 3337 | if (!m_isSelected && !m_outbounds && Body != IntPtr.Zero && !SafeNativeMethods.BodyIsEnabled(Body)) |
3334 | { | 3338 | { |
3335 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3339 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3336 | d.BodyEnable(Body); | 3340 | SafeNativeMethods.BodyEnable(Body); |
3337 | } | 3341 | } |
3338 | } | 3342 | } |
3339 | 3343 | ||
@@ -3349,10 +3353,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3349 | { | 3353 | { |
3350 | if (m_disabled) | 3354 | if (m_disabled) |
3351 | enableBodySoft(); | 3355 | enableBodySoft(); |
3352 | else if (!d.BodyIsEnabled(Body)) | 3356 | else if (!SafeNativeMethods.BodyIsEnabled(Body)) |
3353 | { | 3357 | { |
3354 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3358 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3355 | d.BodyEnable(Body); | 3359 | SafeNativeMethods.BodyEnable(Body); |
3356 | } | 3360 | } |
3357 | } | 3361 | } |
3358 | } | 3362 | } |
@@ -3372,10 +3376,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3372 | { | 3376 | { |
3373 | if (m_disabled) | 3377 | if (m_disabled) |
3374 | enableBodySoft(); | 3378 | enableBodySoft(); |
3375 | else if (!d.BodyIsEnabled(Body)) | 3379 | else if (!SafeNativeMethods.BodyIsEnabled(Body)) |
3376 | { | 3380 | { |
3377 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3381 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3378 | d.BodyEnable(Body); | 3382 | SafeNativeMethods.BodyEnable(Body); |
3379 | } | 3383 | } |
3380 | } | 3384 | } |
3381 | } | 3385 | } |
@@ -3398,12 +3402,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3398 | { | 3402 | { |
3399 | if (m_disabled) | 3403 | if (m_disabled) |
3400 | enableBodySoft(); | 3404 | enableBodySoft(); |
3401 | else if (!d.BodyIsEnabled(Body)) | 3405 | else if (!SafeNativeMethods.BodyIsEnabled(Body)) |
3402 | { | 3406 | { |
3403 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3407 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3404 | d.BodyEnable(Body); | 3408 | SafeNativeMethods.BodyEnable(Body); |
3405 | } | 3409 | } |
3406 | d.BodySetLinearVel(Body, newVel.X, newVel.Y, newVel.Z); | 3410 | SafeNativeMethods.BodySetLinearVel(Body, newVel.X, newVel.Y, newVel.Z); |
3407 | } | 3411 | } |
3408 | //resetCollisionAccounting(); | 3412 | //resetCollisionAccounting(); |
3409 | } | 3413 | } |
@@ -3425,12 +3429,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3425 | { | 3429 | { |
3426 | if (m_disabled) | 3430 | if (m_disabled) |
3427 | enableBodySoft(); | 3431 | enableBodySoft(); |
3428 | else if (!d.BodyIsEnabled(Body)) | 3432 | else if (!SafeNativeMethods.BodyIsEnabled(Body)) |
3429 | { | 3433 | { |
3430 | d.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); | 3434 | SafeNativeMethods.BodySetAutoDisableSteps(Body, m_body_autodisable_frames); |
3431 | d.BodyEnable(Body); | 3435 | SafeNativeMethods.BodyEnable(Body); |
3432 | } | 3436 | } |
3433 | d.BodySetAngularVel(Body, newAngVel.X, newAngVel.Y, newAngVel.Z); | 3437 | SafeNativeMethods.BodySetAngularVel(Body, newAngVel.X, newAngVel.Y, newAngVel.Z); |
3434 | } | 3438 | } |
3435 | //resetCollisionAccounting(); | 3439 | //resetCollisionAccounting(); |
3436 | } | 3440 | } |
@@ -3581,7 +3585,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3581 | if (!childPrim && m_isphysical && Body != IntPtr.Zero && | 3585 | if (!childPrim && m_isphysical && Body != IntPtr.Zero && |
3582 | !m_disabled && !m_isSelected && !m_building && !m_outbounds) | 3586 | !m_disabled && !m_isSelected && !m_building && !m_outbounds) |
3583 | { | 3587 | { |
3584 | if (!d.BodyIsEnabled(Body)) | 3588 | if (!SafeNativeMethods.BodyIsEnabled(Body)) |
3585 | { | 3589 | { |
3586 | // let vehicles sleep | 3590 | // let vehicles sleep |
3587 | if (m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) | 3591 | if (m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) |
@@ -3591,18 +3595,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3591 | return; | 3595 | return; |
3592 | 3596 | ||
3593 | // clear residuals | 3597 | // clear residuals |
3594 | d.BodySetAngularVel(Body,0f,0f,0f); | 3598 | SafeNativeMethods.BodySetAngularVel(Body,0f,0f,0f); |
3595 | d.BodySetLinearVel(Body,0f,0f,0f); | 3599 | SafeNativeMethods.BodySetLinearVel(Body,0f,0f,0f); |
3596 | _zeroFlag = true; | 3600 | _zeroFlag = true; |
3597 | d.BodySetAutoDisableSteps(Body, 1); | 3601 | SafeNativeMethods.BodySetAutoDisableSteps(Body, 1); |
3598 | d.BodyEnable(Body); | 3602 | SafeNativeMethods.BodyEnable(Body); |
3599 | m_bodydisablecontrol = -3; | 3603 | m_bodydisablecontrol = -3; |
3600 | } | 3604 | } |
3601 | 3605 | ||
3602 | if(m_bodydisablecontrol < 0) | 3606 | if(m_bodydisablecontrol < 0) |
3603 | m_bodydisablecontrol++; | 3607 | m_bodydisablecontrol++; |
3604 | 3608 | ||
3605 | d.Vector3 lpos = d.GeomGetPosition(prim_geom); // root position that is seem by rest of simulator | 3609 | SafeNativeMethods.Vector3 lpos = SafeNativeMethods.GeomGetPosition(prim_geom); // root position that is seem by rest of simulator |
3606 | 3610 | ||
3607 | if (m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) | 3611 | if (m_vehicle != null && m_vehicle.Type != Vehicle.TYPE_NONE) |
3608 | { | 3612 | { |
@@ -3629,8 +3633,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3629 | 3633 | ||
3630 | if (_target_velocity.ApproxEquals(Vector3.Zero, 0.02f)) | 3634 | if (_target_velocity.ApproxEquals(Vector3.Zero, 0.02f)) |
3631 | { | 3635 | { |
3632 | d.BodySetPosition(Body, m_PIDTarget.X, m_PIDTarget.Y, m_PIDTarget.Z); | 3636 | SafeNativeMethods.BodySetPosition(Body, m_PIDTarget.X, m_PIDTarget.Y, m_PIDTarget.Z); |
3633 | d.BodySetLinearVel(Body, 0, 0, 0); | 3637 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); |
3634 | return; | 3638 | return; |
3635 | } | 3639 | } |
3636 | else | 3640 | else |
@@ -3653,7 +3657,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3653 | _target_velocity *= tmp; | 3657 | _target_velocity *= tmp; |
3654 | } | 3658 | } |
3655 | 3659 | ||
3656 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 3660 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
3657 | fx = (_target_velocity.X - vel.X) * m_invTimeStep; | 3661 | fx = (_target_velocity.X - vel.X) * m_invTimeStep; |
3658 | fy = (_target_velocity.Y - vel.Y) * m_invTimeStep; | 3662 | fy = (_target_velocity.Y - vel.Y) * m_invTimeStep; |
3659 | fz = (_target_velocity.Z - vel.Z) * m_invTimeStep; | 3663 | fz = (_target_velocity.Z - vel.Z) * m_invTimeStep; |
@@ -3689,15 +3693,15 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3689 | 3693 | ||
3690 | if (m_targetHoverHeight > m_groundHeight || m_isVolumeDetect) | 3694 | if (m_targetHoverHeight > m_groundHeight || m_isVolumeDetect) |
3691 | { | 3695 | { |
3692 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 3696 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
3693 | 3697 | ||
3694 | fz = (m_targetHoverHeight - lpos.Z); | 3698 | fz = (m_targetHoverHeight - lpos.Z); |
3695 | 3699 | ||
3696 | // if error is zero, use position control; otherwise, velocity control | 3700 | // if error is zero, use position control; otherwise, velocity control |
3697 | if (Math.Abs(fz) < 0.01f) | 3701 | if (Math.Abs(fz) < 0.01f) |
3698 | { | 3702 | { |
3699 | d.BodySetPosition(Body, lpos.X, lpos.Y, m_targetHoverHeight); | 3703 | SafeNativeMethods.BodySetPosition(Body, lpos.X, lpos.Y, m_targetHoverHeight); |
3700 | d.BodySetLinearVel(Body, vel.X, vel.Y, 0); | 3704 | SafeNativeMethods.BodySetLinearVel(Body, vel.X, vel.Y, 0); |
3701 | } | 3705 | } |
3702 | else | 3706 | else |
3703 | { | 3707 | { |
@@ -3740,7 +3744,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3740 | //m_log.Info("[OBJPID]: X:" + fx.ToString() + " Y:" + fy.ToString() + " Z:" + fz.ToString()); | 3744 | //m_log.Info("[OBJPID]: X:" + fx.ToString() + " Y:" + fy.ToString() + " Z:" + fz.ToString()); |
3741 | if (fx != 0 || fy != 0 || fz != 0) | 3745 | if (fx != 0 || fy != 0 || fz != 0) |
3742 | { | 3746 | { |
3743 | d.BodyAddForce(Body, fx, fy, fz); | 3747 | SafeNativeMethods.BodyAddForce(Body, fx, fy, fz); |
3744 | //Console.WriteLine("AddForce " + fx + "," + fy + "," + fz); | 3748 | //Console.WriteLine("AddForce " + fx + "," + fy + "," + fz); |
3745 | } | 3749 | } |
3746 | 3750 | ||
@@ -3751,7 +3755,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3751 | m_angularForceacc = Vector3.Zero; | 3755 | m_angularForceacc = Vector3.Zero; |
3752 | if (trq.X != 0 || trq.Y != 0 || trq.Z != 0) | 3756 | if (trq.X != 0 || trq.Y != 0 || trq.Z != 0) |
3753 | { | 3757 | { |
3754 | d.BodyAddTorque(Body, trq.X, trq.Y, trq.Z); | 3758 | SafeNativeMethods.BodyAddTorque(Body, trq.X, trq.Y, trq.Z); |
3755 | } | 3759 | } |
3756 | } | 3760 | } |
3757 | else | 3761 | else |
@@ -3770,12 +3774,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3770 | if(m_bodydisablecontrol < 0) | 3774 | if(m_bodydisablecontrol < 0) |
3771 | return; | 3775 | return; |
3772 | 3776 | ||
3773 | bool bodyenabled = d.BodyIsEnabled(Body); | 3777 | bool bodyenabled = SafeNativeMethods.BodyIsEnabled(Body); |
3774 | if (bodyenabled || !_zeroFlag) | 3778 | if (bodyenabled || !_zeroFlag) |
3775 | { | 3779 | { |
3776 | bool lastZeroFlag = _zeroFlag; | 3780 | bool lastZeroFlag = _zeroFlag; |
3777 | 3781 | ||
3778 | d.Vector3 lpos = d.GeomGetPosition(prim_geom); | 3782 | SafeNativeMethods.Vector3 lpos = SafeNativeMethods.GeomGetPosition(prim_geom); |
3779 | 3783 | ||
3780 | // check outside region | 3784 | // check outside region |
3781 | if (lpos.Z < -100 || lpos.Z > 100000f) | 3785 | if (lpos.Z < -100 || lpos.Z > 100000f) |
@@ -3794,9 +3798,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3794 | m_rotationalVelocity.Y = 0; | 3798 | m_rotationalVelocity.Y = 0; |
3795 | m_rotationalVelocity.Z = 0; | 3799 | m_rotationalVelocity.Z = 0; |
3796 | 3800 | ||
3797 | d.BodySetLinearVel(Body, 0, 0, 0); // stop it | 3801 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); // stop it |
3798 | d.BodySetAngularVel(Body, 0, 0, 0); // stop it | 3802 | SafeNativeMethods.BodySetAngularVel(Body, 0, 0, 0); // stop it |
3799 | d.BodySetPosition(Body, lpos.X, lpos.Y, lpos.Z); // put it somewhere | 3803 | SafeNativeMethods.BodySetPosition(Body, lpos.X, lpos.Y, lpos.Z); // put it somewhere |
3800 | m_lastposition = _position; | 3804 | m_lastposition = _position; |
3801 | m_lastorientation = _orientation; | 3805 | m_lastorientation = _orientation; |
3802 | 3806 | ||
@@ -3836,19 +3840,19 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3836 | m_lastposition = _position; | 3840 | m_lastposition = _position; |
3837 | m_lastorientation = _orientation; | 3841 | m_lastorientation = _orientation; |
3838 | 3842 | ||
3839 | d.Vector3 dtmp = d.BodyGetAngularVel(Body); | 3843 | SafeNativeMethods.Vector3 dtmp = SafeNativeMethods.BodyGetAngularVel(Body); |
3840 | m_rotationalVelocity.X = dtmp.X; | 3844 | m_rotationalVelocity.X = dtmp.X; |
3841 | m_rotationalVelocity.Y = dtmp.Y; | 3845 | m_rotationalVelocity.Y = dtmp.Y; |
3842 | m_rotationalVelocity.Z = dtmp.Z; | 3846 | m_rotationalVelocity.Z = dtmp.Z; |
3843 | 3847 | ||
3844 | dtmp = d.BodyGetLinearVel(Body); | 3848 | dtmp = SafeNativeMethods.BodyGetLinearVel(Body); |
3845 | _velocity.X = dtmp.X; | 3849 | _velocity.X = dtmp.X; |
3846 | _velocity.Y = dtmp.Y; | 3850 | _velocity.Y = dtmp.Y; |
3847 | _velocity.Z = dtmp.Z; | 3851 | _velocity.Z = dtmp.Z; |
3848 | 3852 | ||
3849 | d.BodySetLinearVel(Body, 0, 0, 0); // stop it | 3853 | SafeNativeMethods.BodySetLinearVel(Body, 0, 0, 0); // stop it |
3850 | d.BodySetAngularVel(Body, 0, 0, 0); | 3854 | SafeNativeMethods.BodySetAngularVel(Body, 0, 0, 0); |
3851 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 3855 | SafeNativeMethods.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
3852 | disableBodySoft(); // stop collisions | 3856 | disableBodySoft(); // stop collisions |
3853 | UnSubscribeEvents(); | 3857 | UnSubscribeEvents(); |
3854 | 3858 | ||
@@ -3856,8 +3860,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3856 | return; | 3860 | return; |
3857 | } | 3861 | } |
3858 | 3862 | ||
3859 | d.Quaternion ori; | 3863 | SafeNativeMethods.Quaternion ori; |
3860 | d.GeomCopyQuaternion(prim_geom, out ori); | 3864 | SafeNativeMethods.GeomCopyQuaternion(prim_geom, out ori); |
3861 | 3865 | ||
3862 | // decide if moving | 3866 | // decide if moving |
3863 | // use positions since this are integrated quantities | 3867 | // use positions since this are integrated quantities |
@@ -3918,7 +3922,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3918 | } | 3922 | } |
3919 | else | 3923 | else |
3920 | { | 3924 | { |
3921 | d.Vector3 vel = d.BodyGetLinearVel(Body); | 3925 | SafeNativeMethods.Vector3 vel = SafeNativeMethods.BodyGetLinearVel(Body); |
3922 | 3926 | ||
3923 | m_acceleration = _velocity; | 3927 | m_acceleration = _velocity; |
3924 | 3928 | ||
@@ -3945,7 +3949,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3945 | m_acceleration = Vector3.Zero; | 3949 | m_acceleration = Vector3.Zero; |
3946 | } | 3950 | } |
3947 | 3951 | ||
3948 | vel = d.BodyGetAngularVel(Body); | 3952 | vel = SafeNativeMethods.BodyGetAngularVel(Body); |
3949 | if ((Math.Abs(vel.X) < 0.0001) && | 3953 | if ((Math.Abs(vel.X) < 0.0001) && |
3950 | (Math.Abs(vel.Y) < 0.0001) && | 3954 | (Math.Abs(vel.Y) < 0.0001) && |
3951 | (Math.Abs(vel.Z) < 0.0001) | 3955 | (Math.Abs(vel.Z) < 0.0001) |
@@ -3991,7 +3995,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
3991 | return true; | 3995 | return true; |
3992 | } | 3996 | } |
3993 | 3997 | ||
3994 | internal static void DMassSubPartFromObj(ref d.Mass part, ref d.Mass theobj) | 3998 | internal static void DMassSubPartFromObj(ref SafeNativeMethods.Mass part, ref SafeNativeMethods.Mass theobj) |
3995 | { | 3999 | { |
3996 | // assumes object center of mass is zero | 4000 | // assumes object center of mass is zero |
3997 | float smass = part.mass; | 4001 | float smass = part.mass; |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODERayCastRequestManager.cs b/OpenSim/Region/PhysicsModules/ubOde/ODERayCastRequestManager.cs index f671722..2e3a197 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODERayCastRequestManager.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODERayCastRequestManager.cs | |||
@@ -29,10 +29,8 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Runtime.InteropServices; | 31 | using System.Runtime.InteropServices; |
32 | using System.Text; | ||
33 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
34 | using OpenSim.Region.PhysicsModules.SharedBase; | 33 | using OpenSim.Region.PhysicsModules.SharedBase; |
35 | using OdeAPI; | ||
36 | using log4net; | 34 | using log4net; |
37 | using OpenMetaverse; | 35 | using OpenMetaverse; |
38 | 36 | ||
@@ -67,7 +65,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
67 | /// <summary> | 65 | /// <summary> |
68 | /// ODE near callback delegate | 66 | /// ODE near callback delegate |
69 | /// </summary> | 67 | /// </summary> |
70 | private d.NearCallback nearCallback; | 68 | private SafeNativeMethods.NearCallback nearCallback; |
71 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 69 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
72 | private List<ContactResult> m_contactResults = new List<ContactResult>(); | 70 | private List<ContactResult> m_contactResults = new List<ContactResult>(); |
73 | private RayFilterFlags CurrentRayFilter; | 71 | private RayFilterFlags CurrentRayFilter; |
@@ -77,14 +75,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
77 | { | 75 | { |
78 | m_scene = pScene; | 76 | m_scene = pScene; |
79 | nearCallback = near; | 77 | nearCallback = near; |
80 | ray = d.CreateRay(IntPtr.Zero, 1.0f); | 78 | ray = SafeNativeMethods.CreateRay(IntPtr.Zero, 1.0f); |
81 | d.GeomSetCategoryBits(ray, 0); | 79 | SafeNativeMethods.GeomSetCategoryBits(ray, 0); |
82 | Box = d.CreateBox(IntPtr.Zero, 1.0f, 1.0f, 1.0f); | 80 | Box = SafeNativeMethods.CreateBox(IntPtr.Zero, 1.0f, 1.0f, 1.0f); |
83 | d.GeomSetCategoryBits(Box, 0); | 81 | SafeNativeMethods.GeomSetCategoryBits(Box, 0); |
84 | Sphere = d.CreateSphere(IntPtr.Zero,1.0f); | 82 | Sphere = SafeNativeMethods.CreateSphere(IntPtr.Zero,1.0f); |
85 | d.GeomSetCategoryBits(Sphere, 0); | 83 | SafeNativeMethods.GeomSetCategoryBits(Sphere, 0); |
86 | Plane = d.CreatePlane(IntPtr.Zero, 0f,0f,1f,1f); | 84 | Plane = SafeNativeMethods.CreatePlane(IntPtr.Zero, 0f,0f,1f,1f); |
87 | d.GeomSetCategoryBits(Sphere, 0); | 85 | SafeNativeMethods.GeomSetCategoryBits(Sphere, 0); |
88 | } | 86 | } |
89 | 87 | ||
90 | public void QueueRequest(ODERayRequest req) | 88 | public void QueueRequest(ODERayRequest req) |
@@ -152,29 +150,29 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
152 | { | 150 | { |
153 | if (CollisionContactGeomsPerTest > 80) | 151 | if (CollisionContactGeomsPerTest > 80) |
154 | CollisionContactGeomsPerTest = 80; | 152 | CollisionContactGeomsPerTest = 80; |
155 | d.GeomBoxSetLengths(Box, req.Normal.X, req.Normal.Y, req.Normal.Z); | 153 | SafeNativeMethods.GeomBoxSetLengths(Box, req.Normal.X, req.Normal.Y, req.Normal.Z); |
156 | d.GeomSetPosition(Box, req.Origin.X, req.Origin.Y, req.Origin.Z); | 154 | SafeNativeMethods.GeomSetPosition(Box, req.Origin.X, req.Origin.Y, req.Origin.Z); |
157 | d.Quaternion qtmp; | 155 | SafeNativeMethods.Quaternion qtmp; |
158 | qtmp.X = req.orientation.X; | 156 | qtmp.X = req.orientation.X; |
159 | qtmp.Y = req.orientation.Y; | 157 | qtmp.Y = req.orientation.Y; |
160 | qtmp.Z = req.orientation.Z; | 158 | qtmp.Z = req.orientation.Z; |
161 | qtmp.W = req.orientation.W; | 159 | qtmp.W = req.orientation.W; |
162 | d.GeomSetQuaternion(Box, ref qtmp); | 160 | SafeNativeMethods.GeomSetQuaternion(Box, ref qtmp); |
163 | } | 161 | } |
164 | else if (req.callbackMethod is ProbeSphereCallback) | 162 | else if (req.callbackMethod is ProbeSphereCallback) |
165 | { | 163 | { |
166 | if (CollisionContactGeomsPerTest > 80) | 164 | if (CollisionContactGeomsPerTest > 80) |
167 | CollisionContactGeomsPerTest = 80; | 165 | CollisionContactGeomsPerTest = 80; |
168 | 166 | ||
169 | d.GeomSphereSetRadius(Sphere, req.length); | 167 | SafeNativeMethods.GeomSphereSetRadius(Sphere, req.length); |
170 | d.GeomSetPosition(Sphere, req.Origin.X, req.Origin.Y, req.Origin.Z); | 168 | SafeNativeMethods.GeomSetPosition(Sphere, req.Origin.X, req.Origin.Y, req.Origin.Z); |
171 | } | 169 | } |
172 | else if (req.callbackMethod is ProbePlaneCallback) | 170 | else if (req.callbackMethod is ProbePlaneCallback) |
173 | { | 171 | { |
174 | if (CollisionContactGeomsPerTest > 80) | 172 | if (CollisionContactGeomsPerTest > 80) |
175 | CollisionContactGeomsPerTest = 80; | 173 | CollisionContactGeomsPerTest = 80; |
176 | 174 | ||
177 | d.GeomPlaneSetParams(Plane, req.Normal.X, req.Normal.Y, req.Normal.Z, req.length); | 175 | SafeNativeMethods.GeomPlaneSetParams(Plane, req.Normal.X, req.Normal.Y, req.Normal.Z, req.length); |
178 | } | 176 | } |
179 | 177 | ||
180 | else | 178 | else |
@@ -182,24 +180,24 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
182 | if (CollisionContactGeomsPerTest > 25) | 180 | if (CollisionContactGeomsPerTest > 25) |
183 | CollisionContactGeomsPerTest = 25; | 181 | CollisionContactGeomsPerTest = 25; |
184 | 182 | ||
185 | d.GeomRaySetLength(ray, req.length); | 183 | SafeNativeMethods.GeomRaySetLength(ray, req.length); |
186 | d.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z); | 184 | SafeNativeMethods.GeomRaySet(ray, req.Origin.X, req.Origin.Y, req.Origin.Z, req.Normal.X, req.Normal.Y, req.Normal.Z); |
187 | d.GeomRaySetParams(ray, 0, backfacecull); | 185 | SafeNativeMethods.GeomRaySetParams(ray, 0, backfacecull); |
188 | 186 | ||
189 | if (req.callbackMethod is RaycastCallback) | 187 | if (req.callbackMethod is RaycastCallback) |
190 | { | 188 | { |
191 | // if we only want one get only one per Collision pair saving memory | 189 | // if we only want one get only one per Collision pair saving memory |
192 | CurrentRayFilter |= RayFilterFlags.ClosestHit; | 190 | CurrentRayFilter |= RayFilterFlags.ClosestHit; |
193 | d.GeomRaySetClosestHit(ray, 1); | 191 | SafeNativeMethods.GeomRaySetClosestHit(ray, 1); |
194 | } | 192 | } |
195 | else | 193 | else |
196 | d.GeomRaySetClosestHit(ray, closestHit); | 194 | SafeNativeMethods.GeomRaySetClosestHit(ray, closestHit); |
197 | } | 195 | } |
198 | 196 | ||
199 | if ((CurrentRayFilter & RayFilterFlags.ContactsUnImportant) != 0) | 197 | if ((CurrentRayFilter & RayFilterFlags.ContactsUnImportant) != 0) |
200 | unchecked | 198 | unchecked |
201 | { | 199 | { |
202 | CollisionContactGeomsPerTest |= (int)d.CONTACTS_UNIMPORTANT; | 200 | CollisionContactGeomsPerTest |= (int)SafeNativeMethods.CONTACTS_UNIMPORTANT; |
203 | } | 201 | } |
204 | 202 | ||
205 | if (geom == IntPtr.Zero) | 203 | if (geom == IntPtr.Zero) |
@@ -224,27 +222,27 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
224 | if (req.callbackMethod is ProbeBoxCallback) | 222 | if (req.callbackMethod is ProbeBoxCallback) |
225 | { | 223 | { |
226 | catflags |= CollisionCategories.Space; | 224 | catflags |= CollisionCategories.Space; |
227 | d.GeomSetCollideBits(Box, (uint)catflags); | 225 | SafeNativeMethods.GeomSetCollideBits(Box, (uint)catflags); |
228 | d.GeomSetCategoryBits(Box, (uint)catflags); | 226 | SafeNativeMethods.GeomSetCategoryBits(Box, (uint)catflags); |
229 | doProbe(req, Box); | 227 | doProbe(req, Box); |
230 | } | 228 | } |
231 | else if (req.callbackMethod is ProbeSphereCallback) | 229 | else if (req.callbackMethod is ProbeSphereCallback) |
232 | { | 230 | { |
233 | catflags |= CollisionCategories.Space; | 231 | catflags |= CollisionCategories.Space; |
234 | d.GeomSetCollideBits(Sphere, (uint)catflags); | 232 | SafeNativeMethods.GeomSetCollideBits(Sphere, (uint)catflags); |
235 | d.GeomSetCategoryBits(Sphere, (uint)catflags); | 233 | SafeNativeMethods.GeomSetCategoryBits(Sphere, (uint)catflags); |
236 | doProbe(req, Sphere); | 234 | doProbe(req, Sphere); |
237 | } | 235 | } |
238 | else if (req.callbackMethod is ProbePlaneCallback) | 236 | else if (req.callbackMethod is ProbePlaneCallback) |
239 | { | 237 | { |
240 | catflags |= CollisionCategories.Space; | 238 | catflags |= CollisionCategories.Space; |
241 | d.GeomSetCollideBits(Plane, (uint)catflags); | 239 | SafeNativeMethods.GeomSetCollideBits(Plane, (uint)catflags); |
242 | d.GeomSetCategoryBits(Plane, (uint)catflags); | 240 | SafeNativeMethods.GeomSetCategoryBits(Plane, (uint)catflags); |
243 | doPlane(req,IntPtr.Zero); | 241 | doPlane(req,IntPtr.Zero); |
244 | } | 242 | } |
245 | else | 243 | else |
246 | { | 244 | { |
247 | d.GeomSetCollideBits(ray, (uint)catflags); | 245 | SafeNativeMethods.GeomSetCollideBits(ray, (uint)catflags); |
248 | doSpaceRay(req); | 246 | doSpaceRay(req); |
249 | } | 247 | } |
250 | } | 248 | } |
@@ -255,12 +253,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
255 | 253 | ||
256 | if (req.callbackMethod is ProbePlaneCallback) | 254 | if (req.callbackMethod is ProbePlaneCallback) |
257 | { | 255 | { |
258 | d.GeomSetCollideBits(Plane, (uint)CollisionCategories.All); | 256 | SafeNativeMethods.GeomSetCollideBits(Plane, (uint)CollisionCategories.All); |
259 | doPlane(req,geom); | 257 | doPlane(req,geom); |
260 | } | 258 | } |
261 | else | 259 | else |
262 | { | 260 | { |
263 | d.GeomSetCollideBits(ray, (uint)CollisionCategories.All); | 261 | SafeNativeMethods.GeomSetCollideBits(ray, (uint)CollisionCategories.All); |
264 | doGeomRay(req,geom); | 262 | doGeomRay(req,geom); |
265 | } | 263 | } |
266 | } | 264 | } |
@@ -307,11 +305,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
307 | // Collide tests | 305 | // Collide tests |
308 | if ((CurrentRayFilter & FilterActiveSpace) != 0) | 306 | if ((CurrentRayFilter & FilterActiveSpace) != 0) |
309 | { | 307 | { |
310 | d.SpaceCollide2(ray, m_scene.ActiveSpace, IntPtr.Zero, nearCallback); | 308 | SafeNativeMethods.SpaceCollide2(ray, m_scene.ActiveSpace, IntPtr.Zero, nearCallback); |
311 | d.SpaceCollide2(ray, m_scene.CharsSpace, IntPtr.Zero, nearCallback); | 309 | SafeNativeMethods.SpaceCollide2(ray, m_scene.CharsSpace, IntPtr.Zero, nearCallback); |
312 | } | 310 | } |
313 | if ((CurrentRayFilter & FilterStaticSpace) != 0 && (m_contactResults.Count < CurrentMaxCount)) | 311 | if ((CurrentRayFilter & FilterStaticSpace) != 0 && (m_contactResults.Count < CurrentMaxCount)) |
314 | d.SpaceCollide2(ray, m_scene.StaticSpace, IntPtr.Zero, nearCallback); | 312 | SafeNativeMethods.SpaceCollide2(ray, m_scene.StaticSpace, IntPtr.Zero, nearCallback); |
315 | if ((CurrentRayFilter & RayFilterFlags.land) != 0 && (m_contactResults.Count < CurrentMaxCount)) | 313 | if ((CurrentRayFilter & RayFilterFlags.land) != 0 && (m_contactResults.Count < CurrentMaxCount)) |
316 | { | 314 | { |
317 | // current ode land to ray collisions is very bad | 315 | // current ode land to ray collisions is very bad |
@@ -324,11 +322,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
324 | { | 322 | { |
325 | float tmp2 = req.length * req.length - tmp + 2500; | 323 | float tmp2 = req.length * req.length - tmp + 2500; |
326 | tmp2 = (float)Math.Sqrt(tmp2); | 324 | tmp2 = (float)Math.Sqrt(tmp2); |
327 | d.GeomRaySetLength(ray, tmp2); | 325 | SafeNativeMethods.GeomRaySetLength(ray, tmp2); |
328 | } | 326 | } |
329 | 327 | ||
330 | } | 328 | } |
331 | d.SpaceCollide2(ray, m_scene.GroundSpace, IntPtr.Zero, nearCallback); | 329 | SafeNativeMethods.SpaceCollide2(ray, m_scene.GroundSpace, IntPtr.Zero, nearCallback); |
332 | } | 330 | } |
333 | 331 | ||
334 | if (req.callbackMethod is RaycastCallback) | 332 | if (req.callbackMethod is RaycastCallback) |
@@ -377,13 +375,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
377 | // Collide tests | 375 | // Collide tests |
378 | if ((CurrentRayFilter & FilterActiveSpace) != 0) | 376 | if ((CurrentRayFilter & FilterActiveSpace) != 0) |
379 | { | 377 | { |
380 | d.SpaceCollide2(probe, m_scene.ActiveSpace, IntPtr.Zero, nearCallback); | 378 | SafeNativeMethods.SpaceCollide2(probe, m_scene.ActiveSpace, IntPtr.Zero, nearCallback); |
381 | d.SpaceCollide2(probe, m_scene.CharsSpace, IntPtr.Zero, nearCallback); | 379 | SafeNativeMethods.SpaceCollide2(probe, m_scene.CharsSpace, IntPtr.Zero, nearCallback); |
382 | } | 380 | } |
383 | if ((CurrentRayFilter & FilterStaticSpace) != 0 && (m_contactResults.Count < CurrentMaxCount)) | 381 | if ((CurrentRayFilter & FilterStaticSpace) != 0 && (m_contactResults.Count < CurrentMaxCount)) |
384 | d.SpaceCollide2(probe, m_scene.StaticSpace, IntPtr.Zero, nearCallback); | 382 | SafeNativeMethods.SpaceCollide2(probe, m_scene.StaticSpace, IntPtr.Zero, nearCallback); |
385 | if ((CurrentRayFilter & RayFilterFlags.land) != 0 && (m_contactResults.Count < CurrentMaxCount)) | 383 | if ((CurrentRayFilter & RayFilterFlags.land) != 0 && (m_contactResults.Count < CurrentMaxCount)) |
386 | d.SpaceCollide2(probe, m_scene.GroundSpace, IntPtr.Zero, nearCallback); | 384 | SafeNativeMethods.SpaceCollide2(probe, m_scene.GroundSpace, IntPtr.Zero, nearCallback); |
387 | 385 | ||
388 | List<ContactResult> cresult = new List<ContactResult>(m_contactResults.Count); | 386 | List<ContactResult> cresult = new List<ContactResult>(m_contactResults.Count); |
389 | lock (m_PendingRequests) | 387 | lock (m_PendingRequests) |
@@ -404,17 +402,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
404 | { | 402 | { |
405 | if ((CurrentRayFilter & FilterActiveSpace) != 0) | 403 | if ((CurrentRayFilter & FilterActiveSpace) != 0) |
406 | { | 404 | { |
407 | d.SpaceCollide2(Plane, m_scene.ActiveSpace, IntPtr.Zero, nearCallback); | 405 | SafeNativeMethods.SpaceCollide2(Plane, m_scene.ActiveSpace, IntPtr.Zero, nearCallback); |
408 | d.SpaceCollide2(Plane, m_scene.CharsSpace, IntPtr.Zero, nearCallback); | 406 | SafeNativeMethods.SpaceCollide2(Plane, m_scene.CharsSpace, IntPtr.Zero, nearCallback); |
409 | } | 407 | } |
410 | if ((CurrentRayFilter & FilterStaticSpace) != 0 && (m_contactResults.Count < CurrentMaxCount)) | 408 | if ((CurrentRayFilter & FilterStaticSpace) != 0 && (m_contactResults.Count < CurrentMaxCount)) |
411 | d.SpaceCollide2(Plane, m_scene.StaticSpace, IntPtr.Zero, nearCallback); | 409 | SafeNativeMethods.SpaceCollide2(Plane, m_scene.StaticSpace, IntPtr.Zero, nearCallback); |
412 | if ((CurrentRayFilter & RayFilterFlags.land) != 0 && (m_contactResults.Count < CurrentMaxCount)) | 410 | if ((CurrentRayFilter & RayFilterFlags.land) != 0 && (m_contactResults.Count < CurrentMaxCount)) |
413 | d.SpaceCollide2(Plane, m_scene.GroundSpace, IntPtr.Zero, nearCallback); | 411 | SafeNativeMethods.SpaceCollide2(Plane, m_scene.GroundSpace, IntPtr.Zero, nearCallback); |
414 | } | 412 | } |
415 | else | 413 | else |
416 | { | 414 | { |
417 | d.SpaceCollide2(Plane, geom, IntPtr.Zero, nearCallback); | 415 | SafeNativeMethods.SpaceCollide2(Plane, geom, IntPtr.Zero, nearCallback); |
418 | } | 416 | } |
419 | 417 | ||
420 | List<ContactResult> cresult = new List<ContactResult>(m_contactResults.Count); | 418 | List<ContactResult> cresult = new List<ContactResult>(m_contactResults.Count); |
@@ -434,7 +432,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
434 | private void doGeomRay(ODERayRequest req, IntPtr geom) | 432 | private void doGeomRay(ODERayRequest req, IntPtr geom) |
435 | { | 433 | { |
436 | // Collide test | 434 | // Collide test |
437 | d.SpaceCollide2(ray, geom, IntPtr.Zero, nearCallback); // still do this to have full AABB pre test | 435 | SafeNativeMethods.SpaceCollide2(ray, geom, IntPtr.Zero, nearCallback); // still do this to have full AABB pre test |
438 | 436 | ||
439 | if (req.callbackMethod is RaycastCallback) | 437 | if (req.callbackMethod is RaycastCallback) |
440 | { | 438 | { |
@@ -478,14 +476,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
478 | } | 476 | } |
479 | } | 477 | } |
480 | 478 | ||
481 | private bool GetCurContactGeom(int index, ref d.ContactGeom newcontactgeom) | 479 | private bool GetCurContactGeom(int index, ref SafeNativeMethods.ContactGeom newcontactgeom) |
482 | { | 480 | { |
483 | IntPtr ContactgeomsArray = m_scene.ContactgeomsArray; | 481 | IntPtr ContactgeomsArray = m_scene.ContactgeomsArray; |
484 | if (ContactgeomsArray == IntPtr.Zero || index >= CollisionContactGeomsPerTest) | 482 | if (ContactgeomsArray == IntPtr.Zero || index >= CollisionContactGeomsPerTest) |
485 | return false; | 483 | return false; |
486 | 484 | ||
487 | IntPtr contactptr = new IntPtr(ContactgeomsArray.ToInt64() + (Int64)(index * d.ContactGeom.unmanagedSizeOf)); | 485 | IntPtr contactptr = new IntPtr(ContactgeomsArray.ToInt64() + (Int64)(index * SafeNativeMethods.ContactGeom.unmanagedSizeOf)); |
488 | newcontactgeom = (d.ContactGeom)Marshal.PtrToStructure(contactptr, typeof(d.ContactGeom)); | 486 | newcontactgeom = (SafeNativeMethods.ContactGeom)Marshal.PtrToStructure(contactptr, typeof(SafeNativeMethods.ContactGeom)); |
489 | return true; | 487 | return true; |
490 | } | 488 | } |
491 | 489 | ||
@@ -498,11 +496,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
498 | if (m_contactResults.Count >= CurrentMaxCount) | 496 | if (m_contactResults.Count >= CurrentMaxCount) |
499 | return; | 497 | return; |
500 | 498 | ||
501 | if (d.GeomIsSpace(g2)) | 499 | if (SafeNativeMethods.GeomIsSpace(g2)) |
502 | { | 500 | { |
503 | try | 501 | try |
504 | { | 502 | { |
505 | d.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); | 503 | SafeNativeMethods.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); |
506 | } | 504 | } |
507 | catch (Exception e) | 505 | catch (Exception e) |
508 | { | 506 | { |
@@ -514,7 +512,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
514 | int count = 0; | 512 | int count = 0; |
515 | try | 513 | try |
516 | { | 514 | { |
517 | count = d.CollidePtr(g1, g2, CollisionContactGeomsPerTest, m_scene.ContactgeomsArray, d.ContactGeom.unmanagedSizeOf); | 515 | count = SafeNativeMethods.CollidePtr(g1, g2, CollisionContactGeomsPerTest, m_scene.ContactgeomsArray, SafeNativeMethods.ContactGeom.unmanagedSizeOf); |
518 | } | 516 | } |
519 | catch (Exception e) | 517 | catch (Exception e) |
520 | { | 518 | { |
@@ -586,7 +584,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
586 | break; | 584 | break; |
587 | } | 585 | } |
588 | 586 | ||
589 | d.ContactGeom curcontact = new d.ContactGeom(); | 587 | SafeNativeMethods.ContactGeom curcontact = new SafeNativeMethods.ContactGeom(); |
590 | 588 | ||
591 | // closestHit for now only works for meshs, so must do it for others | 589 | // closestHit for now only works for meshs, so must do it for others |
592 | if ((CurrentRayFilter & RayFilterFlags.ClosestHit) == 0) | 590 | if ((CurrentRayFilter & RayFilterFlags.ClosestHit) == 0) |
@@ -654,22 +652,22 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
654 | m_scene = null; | 652 | m_scene = null; |
655 | if (ray != IntPtr.Zero) | 653 | if (ray != IntPtr.Zero) |
656 | { | 654 | { |
657 | d.GeomDestroy(ray); | 655 | SafeNativeMethods.GeomDestroy(ray); |
658 | ray = IntPtr.Zero; | 656 | ray = IntPtr.Zero; |
659 | } | 657 | } |
660 | if (Box != IntPtr.Zero) | 658 | if (Box != IntPtr.Zero) |
661 | { | 659 | { |
662 | d.GeomDestroy(Box); | 660 | SafeNativeMethods.GeomDestroy(Box); |
663 | Box = IntPtr.Zero; | 661 | Box = IntPtr.Zero; |
664 | } | 662 | } |
665 | if (Sphere != IntPtr.Zero) | 663 | if (Sphere != IntPtr.Zero) |
666 | { | 664 | { |
667 | d.GeomDestroy(Sphere); | 665 | SafeNativeMethods.GeomDestroy(Sphere); |
668 | Sphere = IntPtr.Zero; | 666 | Sphere = IntPtr.Zero; |
669 | } | 667 | } |
670 | if (Plane != IntPtr.Zero) | 668 | if (Plane != IntPtr.Zero) |
671 | { | 669 | { |
672 | d.GeomDestroy(Plane); | 670 | SafeNativeMethods.GeomDestroy(Plane); |
673 | Plane = IntPtr.Zero; | 671 | Plane = IntPtr.Zero; |
674 | } | 672 | } |
675 | } | 673 | } |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 004ee7f..0003085 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -34,15 +34,10 @@ using System.Linq; | |||
34 | using System.Reflection; | 34 | using System.Reflection; |
35 | using System.Runtime.InteropServices; | 35 | using System.Runtime.InteropServices; |
36 | using System.Threading; | 36 | using System.Threading; |
37 | using System.IO; | ||
38 | using System.Diagnostics; | ||
39 | using log4net; | 37 | using log4net; |
40 | using Nini.Config; | 38 | using Nini.Config; |
41 | using Mono.Addins; | ||
42 | using OdeAPI; | ||
43 | using OpenSim.Framework; | 39 | using OpenSim.Framework; |
44 | using OpenSim.Region.Framework.Scenes; | 40 | using OpenSim.Region.Framework.Scenes; |
45 | using OpenSim.Region.Framework.Interfaces; | ||
46 | using OpenSim.Region.PhysicsModules.SharedBase; | 41 | using OpenSim.Region.PhysicsModules.SharedBase; |
47 | using OpenMetaverse; | 42 | using OpenMetaverse; |
48 | 43 | ||
@@ -179,12 +174,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
179 | 174 | ||
180 | // const d.ContactFlags comumContactFlags = d.ContactFlags.SoftERP | d.ContactFlags.SoftCFM |d.ContactFlags.Approx1 | d.ContactFlags.Bounce; | 175 | // const d.ContactFlags comumContactFlags = d.ContactFlags.SoftERP | d.ContactFlags.SoftCFM |d.ContactFlags.Approx1 | d.ContactFlags.Bounce; |
181 | 176 | ||
182 | const d.ContactFlags comumContactFlags = d.ContactFlags.Bounce | d.ContactFlags.Approx1 | d.ContactFlags.Slip1 | d.ContactFlags.Slip2; | 177 | // const d.ContactFlags comumContactFlags = d.ContactFlags.Bounce | d.ContactFlags.Approx1 | d.ContactFlags.Slip1 | d.ContactFlags.Slip2; |
178 | const SafeNativeMethods.ContactFlags comumContactFlags = SafeNativeMethods.ContactFlags.Bounce | SafeNativeMethods.ContactFlags.Approx1; | ||
183 | const float comumContactERP = 0.75f; | 179 | const float comumContactERP = 0.75f; |
184 | const float comumContactCFM = 0.0001f; | 180 | const float comumContactCFM = 0.0001f; |
185 | const float comumContactSLIP = 0f; | 181 | const float comumContactSLIP = 0f; |
186 | 182 | ||
187 | float frictionMovementMult = 0.8f; | 183 | // float frictionMovementMult = 0.2f; |
188 | 184 | ||
189 | float TerrainBounce = 0.001f; | 185 | float TerrainBounce = 0.001f; |
190 | float TerrainFriction = 0.3f; | 186 | float TerrainFriction = 0.3f; |
@@ -200,7 +196,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
200 | public float ODE_STEPSIZE = 0.020f; | 196 | public float ODE_STEPSIZE = 0.020f; |
201 | public float HalfOdeStep = 0.01f; | 197 | public float HalfOdeStep = 0.01f; |
202 | public int odetimestepMS = 20; // rounded | 198 | public int odetimestepMS = 20; // rounded |
203 | private float metersInSpace = 25.6f; | ||
204 | private float m_timeDilation = 1.0f; | 199 | private float m_timeDilation = 1.0f; |
205 | 200 | ||
206 | private double m_lastframe; | 201 | private double m_lastframe; |
@@ -228,7 +223,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
228 | 223 | ||
229 | public int bodyFramesAutoDisable = 5; | 224 | public int bodyFramesAutoDisable = 5; |
230 | 225 | ||
231 | private d.NearCallback nearCallback; | 226 | private SafeNativeMethods.NearCallback nearCallback; |
232 | 227 | ||
233 | private Dictionary<uint,OdePrim> _prims = new Dictionary<uint,OdePrim>(); | 228 | private Dictionary<uint,OdePrim> _prims = new Dictionary<uint,OdePrim>(); |
234 | private HashSet<OdeCharacter> _characters = new HashSet<OdeCharacter>(); | 229 | private HashSet<OdeCharacter> _characters = new HashSet<OdeCharacter>(); |
@@ -251,7 +246,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
251 | private int contactsPerCollision = 80; | 246 | private int contactsPerCollision = 80; |
252 | internal IntPtr ContactgeomsArray = IntPtr.Zero; | 247 | internal IntPtr ContactgeomsArray = IntPtr.Zero; |
253 | private IntPtr GlobalContactsArray = IntPtr.Zero; | 248 | private IntPtr GlobalContactsArray = IntPtr.Zero; |
254 | private d.Contact SharedTmpcontact = new d.Contact(); | 249 | private SafeNativeMethods.Contact SharedTmpcontact = new SafeNativeMethods.Contact(); |
255 | 250 | ||
256 | const int maxContactsbeforedeath = 6000; | 251 | const int maxContactsbeforedeath = 6000; |
257 | private volatile int m_global_contactcount = 0; | 252 | private volatile int m_global_contactcount = 0; |
@@ -283,16 +278,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
283 | public IntPtr StaticSpace; // space for the static things around | 278 | public IntPtr StaticSpace; // space for the static things around |
284 | public IntPtr GroundSpace; // space for ground | 279 | public IntPtr GroundSpace; // space for ground |
285 | 280 | ||
286 | // some speedup variables | ||
287 | private int spaceGridMaxX; | ||
288 | private int spaceGridMaxY; | ||
289 | private float spacesPerMeterX; | ||
290 | private float spacesPerMeterY; | ||
291 | |||
292 | // split static geometry collision into a grid as before | ||
293 | private IntPtr[,] staticPrimspace; | ||
294 | private IntPtr[] staticPrimspaceOffRegion; | ||
295 | |||
296 | public Object OdeLock; | 281 | public Object OdeLock; |
297 | public static Object SimulationLock; | 282 | public static Object SimulationLock; |
298 | 283 | ||
@@ -366,7 +351,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
366 | /// </summary> | 351 | /// </summary> |
367 | private void Initialization() | 352 | private void Initialization() |
368 | { | 353 | { |
369 | d.AllocateODEDataForThread(~0U); | 354 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
370 | 355 | ||
371 | SimulationLock = new Object(); | 356 | SimulationLock = new Object(); |
372 | 357 | ||
@@ -384,14 +369,24 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
384 | // Create the world and the first space | 369 | // Create the world and the first space |
385 | try | 370 | try |
386 | { | 371 | { |
387 | world = d.WorldCreate(); | 372 | world = SafeNativeMethods.WorldCreate(); |
388 | TopSpace = d.HashSpaceCreate(IntPtr.Zero); | 373 | TopSpace = SafeNativeMethods.SimpleSpaceCreate(IntPtr.Zero); |
389 | 374 | ActiveSpace = SafeNativeMethods.SimpleSpaceCreate(TopSpace); | |
390 | // now the major subspaces | 375 | CharsSpace = SafeNativeMethods.SimpleSpaceCreate(TopSpace); |
391 | ActiveSpace = d.HashSpaceCreate(TopSpace); | 376 | GroundSpace = SafeNativeMethods.SimpleSpaceCreate(TopSpace); |
392 | CharsSpace = d.HashSpaceCreate(TopSpace); | 377 | float sx = WorldExtents.X + 16; |
393 | StaticSpace = d.HashSpaceCreate(TopSpace); | 378 | float sy = WorldExtents.Y + 16; |
394 | GroundSpace = d.HashSpaceCreate(TopSpace); | 379 | SafeNativeMethods.Vector3 ex =new SafeNativeMethods.Vector3(sx, sy, 0); |
380 | SafeNativeMethods.Vector3 px =new SafeNativeMethods.Vector3(sx * 0.5f, sx * 0.5f, 0); | ||
381 | if(sx < sy) | ||
382 | sx = sy; | ||
383 | sx = (float)Math.Log(sx) * 1.442695f + 0.5f; | ||
384 | int dp = (int)sx - 2; | ||
385 | if(dp > 8) | ||
386 | dp = 8; | ||
387 | else if(dp < 4) | ||
388 | dp = 4; | ||
389 | StaticSpace = SafeNativeMethods.QuadTreeSpaceCreate(TopSpace, ref px, ref ex, dp); | ||
395 | } | 390 | } |
396 | catch | 391 | catch |
397 | { | 392 | { |
@@ -399,54 +394,48 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
399 | // i did! | 394 | // i did! |
400 | } | 395 | } |
401 | 396 | ||
402 | d.HashSpaceSetLevels(TopSpace, -5, 12); | ||
403 | d.HashSpaceSetLevels(ActiveSpace, -5, 10); | ||
404 | d.HashSpaceSetLevels(CharsSpace, -4, 3); | ||
405 | d.HashSpaceSetLevels(StaticSpace, -5, 12); | ||
406 | d.HashSpaceSetLevels(GroundSpace, 0, 8); | ||
407 | |||
408 | // demote to second level | 397 | // demote to second level |
409 | d.SpaceSetSublevel(ActiveSpace, 1); | 398 | SafeNativeMethods.SpaceSetSublevel(ActiveSpace, 1); |
410 | d.SpaceSetSublevel(CharsSpace, 1); | 399 | SafeNativeMethods.SpaceSetSublevel(CharsSpace, 1); |
411 | d.SpaceSetSublevel(StaticSpace, 1); | 400 | SafeNativeMethods.SpaceSetSublevel(StaticSpace, 1); |
412 | d.SpaceSetSublevel(GroundSpace, 1); | 401 | SafeNativeMethods.SpaceSetSublevel(GroundSpace, 1); |
413 | 402 | ||
414 | d.GeomSetCategoryBits(ActiveSpace, (uint)(CollisionCategories.Space | | 403 | SafeNativeMethods.GeomSetCategoryBits(ActiveSpace, (uint)(CollisionCategories.Space | |
415 | CollisionCategories.Geom | | 404 | CollisionCategories.Geom | |
416 | CollisionCategories.Character | | 405 | CollisionCategories.Character | |
417 | CollisionCategories.Phantom | | 406 | CollisionCategories.Phantom | |
418 | CollisionCategories.VolumeDtc | 407 | CollisionCategories.VolumeDtc |
419 | )); | 408 | )); |
420 | d.GeomSetCollideBits(ActiveSpace, (uint)(CollisionCategories.Space | | 409 | SafeNativeMethods.GeomSetCollideBits(ActiveSpace, (uint)(CollisionCategories.Space | |
421 | CollisionCategories.Geom | | 410 | CollisionCategories.Geom | |
422 | CollisionCategories.Character | | 411 | CollisionCategories.Character | |
423 | CollisionCategories.Phantom | | 412 | CollisionCategories.Phantom | |
424 | CollisionCategories.VolumeDtc | 413 | CollisionCategories.VolumeDtc |
425 | )); | 414 | )); |
426 | d.GeomSetCategoryBits(CharsSpace, (uint)(CollisionCategories.Space | | 415 | SafeNativeMethods.GeomSetCategoryBits(CharsSpace, (uint)(CollisionCategories.Space | |
427 | CollisionCategories.Geom | | 416 | CollisionCategories.Geom | |
428 | CollisionCategories.Character | | 417 | CollisionCategories.Character | |
429 | CollisionCategories.Phantom | | 418 | CollisionCategories.Phantom | |
430 | CollisionCategories.VolumeDtc | 419 | CollisionCategories.VolumeDtc |
431 | )); | 420 | )); |
432 | d.GeomSetCollideBits(CharsSpace, 0); | 421 | SafeNativeMethods.GeomSetCollideBits(CharsSpace, 0); |
433 | 422 | ||
434 | d.GeomSetCategoryBits(StaticSpace, (uint)(CollisionCategories.Space | | 423 | SafeNativeMethods.GeomSetCategoryBits(StaticSpace, (uint)(CollisionCategories.Space | |
435 | CollisionCategories.Geom | | 424 | CollisionCategories.Geom | |
436 | // CollisionCategories.Land | | 425 | // CollisionCategories.Land | |
437 | // CollisionCategories.Water | | 426 | // CollisionCategories.Water | |
438 | CollisionCategories.Phantom | | 427 | CollisionCategories.Phantom | |
439 | CollisionCategories.VolumeDtc | 428 | CollisionCategories.VolumeDtc |
440 | )); | 429 | )); |
441 | d.GeomSetCollideBits(StaticSpace, 0); | 430 | SafeNativeMethods.GeomSetCollideBits(StaticSpace, 0); |
442 | 431 | ||
443 | d.GeomSetCategoryBits(GroundSpace, (uint)(CollisionCategories.Land)); | 432 | SafeNativeMethods.GeomSetCategoryBits(GroundSpace, (uint)(CollisionCategories.Land)); |
444 | d.GeomSetCollideBits(GroundSpace, 0); | 433 | SafeNativeMethods.GeomSetCollideBits(GroundSpace, 0); |
445 | 434 | ||
446 | contactgroup = d.JointGroupCreate(maxContactsbeforedeath + 1); | 435 | contactgroup = SafeNativeMethods.JointGroupCreate(maxContactsbeforedeath + 1); |
447 | //contactgroup | 436 | //contactgroup |
448 | 437 | ||
449 | d.WorldSetAutoDisableFlag(world, false); | 438 | SafeNativeMethods.WorldSetAutoDisableFlag(world, false); |
450 | } | 439 | } |
451 | 440 | ||
452 | 441 | ||
@@ -468,8 +457,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
468 | gravityy = physicsconfig.GetFloat("world_gravityy", gravityy); | 457 | gravityy = physicsconfig.GetFloat("world_gravityy", gravityy); |
469 | gravityz = physicsconfig.GetFloat("world_gravityz", gravityz); | 458 | gravityz = physicsconfig.GetFloat("world_gravityz", gravityz); |
470 | 459 | ||
471 | metersInSpace = physicsconfig.GetFloat("meters_in_small_space", metersInSpace); | ||
472 | |||
473 | // contactsurfacelayer = physicsconfig.GetFloat("world_contact_surface_layer", contactsurfacelayer); | 460 | // contactsurfacelayer = physicsconfig.GetFloat("world_contact_surface_layer", contactsurfacelayer); |
474 | 461 | ||
475 | ODE_STEPSIZE = physicsconfig.GetFloat("world_stepsize", ODE_STEPSIZE); | 462 | ODE_STEPSIZE = physicsconfig.GetFloat("world_stepsize", ODE_STEPSIZE); |
@@ -498,27 +485,27 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
498 | maximumAngularVelocity = 0.49f * heartbeat *(float)Math.PI; | 485 | maximumAngularVelocity = 0.49f * heartbeat *(float)Math.PI; |
499 | maxAngVelocitySQ = maximumAngularVelocity * maximumAngularVelocity; | 486 | maxAngVelocitySQ = maximumAngularVelocity * maximumAngularVelocity; |
500 | 487 | ||
501 | d.WorldSetCFM(world, comumContactCFM); | 488 | SafeNativeMethods.WorldSetCFM(world, comumContactCFM); |
502 | d.WorldSetERP(world, comumContactERP); | 489 | SafeNativeMethods.WorldSetERP(world, comumContactERP); |
503 | 490 | ||
504 | d.WorldSetGravity(world, gravityx, gravityy, gravityz); | 491 | SafeNativeMethods.WorldSetGravity(world, gravityx, gravityy, gravityz); |
505 | 492 | ||
506 | d.WorldSetLinearDamping(world, 0.001f); | 493 | SafeNativeMethods.WorldSetLinearDamping(world, 0.001f); |
507 | d.WorldSetAngularDamping(world, 0.002f); | 494 | SafeNativeMethods.WorldSetAngularDamping(world, 0.002f); |
508 | d.WorldSetAngularDampingThreshold(world, 0f); | 495 | SafeNativeMethods.WorldSetAngularDampingThreshold(world, 0f); |
509 | d.WorldSetLinearDampingThreshold(world, 0f); | 496 | SafeNativeMethods.WorldSetLinearDampingThreshold(world, 0f); |
510 | d.WorldSetMaxAngularSpeed(world, maximumAngularVelocity); | 497 | SafeNativeMethods.WorldSetMaxAngularSpeed(world, maximumAngularVelocity); |
511 | 498 | ||
512 | d.WorldSetQuickStepNumIterations(world, m_physicsiterations); | 499 | SafeNativeMethods.WorldSetQuickStepNumIterations(world, m_physicsiterations); |
513 | 500 | ||
514 | d.WorldSetContactSurfaceLayer(world, contactsurfacelayer); | 501 | SafeNativeMethods.WorldSetContactSurfaceLayer(world, contactsurfacelayer); |
515 | d.WorldSetContactMaxCorrectingVel(world, 60.0f); | 502 | SafeNativeMethods.WorldSetContactMaxCorrectingVel(world, 60.0f); |
516 | 503 | ||
517 | HalfOdeStep = ODE_STEPSIZE * 0.5f; | 504 | HalfOdeStep = ODE_STEPSIZE * 0.5f; |
518 | odetimestepMS = (int)(1000.0f * ODE_STEPSIZE + 0.5f); | 505 | odetimestepMS = (int)(1000.0f * ODE_STEPSIZE + 0.5f); |
519 | 506 | ||
520 | ContactgeomsArray = Marshal.AllocHGlobal(contactsPerCollision * d.ContactGeom.unmanagedSizeOf); | 507 | ContactgeomsArray = Marshal.AllocHGlobal(contactsPerCollision * SafeNativeMethods.ContactGeom.unmanagedSizeOf); |
521 | GlobalContactsArray = Marshal.AllocHGlobal((maxContactsbeforedeath + 100) * d.Contact.unmanagedSizeOf); | 508 | GlobalContactsArray = Marshal.AllocHGlobal((maxContactsbeforedeath + 100) * SafeNativeMethods.Contact.unmanagedSizeOf); |
522 | 509 | ||
523 | SharedTmpcontact.geom.g1 = IntPtr.Zero; | 510 | SharedTmpcontact.geom.g1 = IntPtr.Zero; |
524 | SharedTmpcontact.geom.g2 = IntPtr.Zero; | 511 | SharedTmpcontact.geom.g2 = IntPtr.Zero; |
@@ -559,76 +546,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
559 | m_materialContactsData[(int)Material.light].mu = 0.0f; | 546 | m_materialContactsData[(int)Material.light].mu = 0.0f; |
560 | m_materialContactsData[(int)Material.light].bounce = 0.0f; | 547 | m_materialContactsData[(int)Material.light].bounce = 0.0f; |
561 | 548 | ||
562 | |||
563 | spacesPerMeterX = 1.0f / metersInSpace; | ||
564 | spacesPerMeterY = spacesPerMeterX; | ||
565 | spaceGridMaxX = (int)(WorldExtents.X * spacesPerMeterX); | ||
566 | spaceGridMaxY = (int)(WorldExtents.Y * spacesPerMeterY); | ||
567 | |||
568 | if (spaceGridMaxX > 24) | ||
569 | { | ||
570 | spaceGridMaxX = 24; | ||
571 | spacesPerMeterX = spaceGridMaxX / WorldExtents.X; | ||
572 | } | ||
573 | |||
574 | if (spaceGridMaxY > 24) | ||
575 | { | ||
576 | spaceGridMaxY = 24; | ||
577 | spacesPerMeterY = spaceGridMaxY / WorldExtents.Y; | ||
578 | } | ||
579 | |||
580 | staticPrimspace = new IntPtr[spaceGridMaxX, spaceGridMaxY]; | ||
581 | |||
582 | // create all spaces now | ||
583 | int i, j; | ||
584 | IntPtr newspace; | ||
585 | |||
586 | for (i = 0; i < spaceGridMaxX; i++) | ||
587 | for (j = 0; j < spaceGridMaxY; j++) | ||
588 | { | ||
589 | newspace = d.HashSpaceCreate(StaticSpace); | ||
590 | d.GeomSetCategoryBits(newspace, (int)CollisionCategories.Space); | ||
591 | waitForSpaceUnlock(newspace); | ||
592 | d.SpaceSetSublevel(newspace, 2); | ||
593 | d.HashSpaceSetLevels(newspace, -2, 8); | ||
594 | d.GeomSetCategoryBits(newspace, (uint)(CollisionCategories.Space | | ||
595 | CollisionCategories.Geom | | ||
596 | CollisionCategories.Land | | ||
597 | CollisionCategories.Water | | ||
598 | CollisionCategories.Phantom | | ||
599 | CollisionCategories.VolumeDtc | ||
600 | )); | ||
601 | d.GeomSetCollideBits(newspace, 0); | ||
602 | |||
603 | staticPrimspace[i, j] = newspace; | ||
604 | } | ||
605 | |||
606 | // let this now be index limit | ||
607 | spaceGridMaxX--; | ||
608 | spaceGridMaxY--; | ||
609 | |||
610 | // create 4 off world spaces (x<0,x>max,y<0,y>max) | ||
611 | staticPrimspaceOffRegion = new IntPtr[4]; | ||
612 | |||
613 | for (i = 0; i < 4; i++) | ||
614 | { | ||
615 | newspace = d.HashSpaceCreate(StaticSpace); | ||
616 | d.GeomSetCategoryBits(newspace, (int)CollisionCategories.Space); | ||
617 | waitForSpaceUnlock(newspace); | ||
618 | d.SpaceSetSublevel(newspace, 2); | ||
619 | d.HashSpaceSetLevels(newspace, -2, 8); | ||
620 | d.GeomSetCategoryBits(newspace, (uint)(CollisionCategories.Space | | ||
621 | CollisionCategories.Geom | | ||
622 | CollisionCategories.Land | | ||
623 | CollisionCategories.Water | | ||
624 | CollisionCategories.Phantom | | ||
625 | CollisionCategories.VolumeDtc | ||
626 | )); | ||
627 | d.GeomSetCollideBits(newspace, 0); | ||
628 | |||
629 | staticPrimspaceOffRegion[i] = newspace; | ||
630 | } | ||
631 | |||
632 | m_lastframe = Util.GetTimeStamp(); | 549 | m_lastframe = Util.GetTimeStamp(); |
633 | m_lastMeshExpire = m_lastframe; | 550 | m_lastMeshExpire = m_lastframe; |
634 | step_time = -1; | 551 | step_time = -1; |
@@ -643,7 +560,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
643 | #region Collision Detection | 560 | #region Collision Detection |
644 | 561 | ||
645 | // sets a global contact for a joint for contactgeom , and base contact description) | 562 | // sets a global contact for a joint for contactgeom , and base contact description) |
646 | private IntPtr CreateContacJoint(ref d.ContactGeom contactGeom,bool smooth) | 563 | private IntPtr CreateContacJoint(ref SafeNativeMethods.ContactGeom contactGeom,bool smooth) |
647 | { | 564 | { |
648 | if (m_global_contactcount >= maxContactsbeforedeath) | 565 | if (m_global_contactcount >= maxContactsbeforedeath) |
649 | return IntPtr.Zero; | 566 | return IntPtr.Zero; |
@@ -656,18 +573,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
656 | SharedTmpcontact.geom.pos = contactGeom.pos; | 573 | SharedTmpcontact.geom.pos = contactGeom.pos; |
657 | SharedTmpcontact.geom.normal = contactGeom.normal; | 574 | SharedTmpcontact.geom.normal = contactGeom.normal; |
658 | 575 | ||
659 | IntPtr contact = new IntPtr(GlobalContactsArray.ToInt64() + (Int64)(m_global_contactcount * d.Contact.unmanagedSizeOf)); | 576 | IntPtr contact = new IntPtr(GlobalContactsArray.ToInt64() + (Int64)(m_global_contactcount * SafeNativeMethods.Contact.unmanagedSizeOf)); |
660 | Marshal.StructureToPtr(SharedTmpcontact, contact, true); | 577 | Marshal.StructureToPtr(SharedTmpcontact, contact, true); |
661 | return d.JointCreateContactPtr(world, contactgroup, contact); | 578 | return SafeNativeMethods.JointCreateContactPtr(world, contactgroup, contact); |
662 | } | 579 | } |
663 | 580 | ||
664 | private bool GetCurContactGeom(int index, ref d.ContactGeom newcontactgeom) | 581 | private bool GetCurContactGeom(int index, ref SafeNativeMethods.ContactGeom newcontactgeom) |
665 | { | 582 | { |
666 | if (ContactgeomsArray == IntPtr.Zero || index >= contactsPerCollision) | 583 | if (ContactgeomsArray == IntPtr.Zero || index >= contactsPerCollision) |
667 | return false; | 584 | return false; |
668 | 585 | ||
669 | IntPtr contactptr = new IntPtr(ContactgeomsArray.ToInt64() + (Int64)(index * d.ContactGeom.unmanagedSizeOf)); | 586 | IntPtr contactptr = new IntPtr(ContactgeomsArray.ToInt64() + (Int64)(index * SafeNativeMethods.ContactGeom.unmanagedSizeOf)); |
670 | newcontactgeom = (d.ContactGeom)Marshal.PtrToStructure(contactptr, typeof(d.ContactGeom)); | 587 | newcontactgeom = (SafeNativeMethods.ContactGeom)Marshal.PtrToStructure(contactptr, typeof(SafeNativeMethods.ContactGeom)); |
671 | return true; | 588 | return true; |
672 | } | 589 | } |
673 | 590 | ||
@@ -692,14 +609,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
692 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) | 609 | if (g1 == IntPtr.Zero || g2 == IntPtr.Zero) |
693 | return; | 610 | return; |
694 | 611 | ||
695 | if (d.GeomIsSpace(g1) || d.GeomIsSpace(g2)) | 612 | if (SafeNativeMethods.GeomIsSpace(g1) || SafeNativeMethods.GeomIsSpace(g2)) |
696 | { | 613 | { |
697 | // We'll be calling near recursivly if one | 614 | // We'll be calling near recursivly if one |
698 | // of them is a space to find all of the | 615 | // of them is a space to find all of the |
699 | // contact points in the space | 616 | // contact points in the space |
700 | try | 617 | try |
701 | { | 618 | { |
702 | d.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); | 619 | SafeNativeMethods.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); |
703 | } | 620 | } |
704 | catch (AccessViolationException) | 621 | catch (AccessViolationException) |
705 | { | 622 | { |
@@ -714,8 +631,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
714 | 631 | ||
715 | // get geom bodies to check if we already a joint contact | 632 | // get geom bodies to check if we already a joint contact |
716 | // guess this shouldn't happen now | 633 | // guess this shouldn't happen now |
717 | IntPtr b1 = d.GeomGetBody(g1); | 634 | IntPtr b1 = SafeNativeMethods.GeomGetBody(g1); |
718 | IntPtr b2 = d.GeomGetBody(g2); | 635 | IntPtr b2 = SafeNativeMethods.GeomGetBody(g2); |
719 | 636 | ||
720 | // d.GeomClassID id = d.GeomGetClass(g1); | 637 | // d.GeomClassID id = d.GeomGetClass(g1); |
721 | 638 | ||
@@ -757,19 +674,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
757 | // | 674 | // |
758 | */ | 675 | */ |
759 | 676 | ||
760 | 677 | if (SafeNativeMethods.GeomGetCategoryBits(g1) == (uint)CollisionCategories.VolumeDtc || | |
761 | if (d.GeomGetCategoryBits(g1) == (uint)CollisionCategories.VolumeDtc || | 678 | SafeNativeMethods.GeomGetCategoryBits(g2) == (uint)CollisionCategories.VolumeDtc) |
762 | d.GeomGetCategoryBits(g2) == (uint)CollisionCategories.VolumeDtc) | ||
763 | { | 679 | { |
764 | int cflags; | 680 | int cflags; |
765 | unchecked | 681 | unchecked |
766 | { | 682 | { |
767 | cflags = (int)(1 | d.CONTACTS_UNIMPORTANT); | 683 | cflags = (int)(1 | SafeNativeMethods.CONTACTS_UNIMPORTANT); |
768 | } | 684 | } |
769 | count = d.CollidePtr(g1, g2, cflags, ContactgeomsArray, d.ContactGeom.unmanagedSizeOf); | 685 | count = SafeNativeMethods.CollidePtr(g1, g2, cflags, ContactgeomsArray, SafeNativeMethods.ContactGeom.unmanagedSizeOf); |
770 | } | 686 | } |
771 | else | 687 | else |
772 | count = d.CollidePtr(g1, g2, (contactsPerCollision & 0xffff), ContactgeomsArray, d.ContactGeom.unmanagedSizeOf); | 688 | count = SafeNativeMethods.CollidePtr(g1, g2, (contactsPerCollision & 0xffff), ContactgeomsArray, SafeNativeMethods.ContactGeom.unmanagedSizeOf); |
773 | } | 689 | } |
774 | catch (SEHException) | 690 | catch (SEHException) |
775 | { | 691 | { |
@@ -805,7 +721,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
805 | 721 | ||
806 | 722 | ||
807 | // get first contact | 723 | // get first contact |
808 | d.ContactGeom curContact = new d.ContactGeom(); | 724 | SafeNativeMethods.ContactGeom curContact = new SafeNativeMethods.ContactGeom(); |
809 | 725 | ||
810 | if (!GetCurContactGeom(0, ref curContact)) | 726 | if (!GetCurContactGeom(0, ref curContact)) |
811 | return; | 727 | return; |
@@ -866,9 +782,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
866 | break; | 782 | break; |
867 | 783 | ||
868 | case (int)ActorTypes.Prim: | 784 | case (int)ActorTypes.Prim: |
869 | Vector3 relV = p1.rootVelocity - p2.rootVelocity; | 785 | // Vector3 relV = p1.rootVelocity - p2.rootVelocity; |
870 | float relVlenSQ = relV.LengthSquared(); | 786 | // float relVlenSQ = relV.LengthSquared(); |
871 | if (relVlenSQ > 0.0001f) | 787 | // if (relVlenSQ > 0.0001f) |
872 | { | 788 | { |
873 | p1.CollidingObj = true; | 789 | p1.CollidingObj = true; |
874 | p2.CollidingObj = true; | 790 | p2.CollidingObj = true; |
@@ -878,11 +794,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
878 | bounce = contactdata1.bounce * contactdata2.bounce; | 794 | bounce = contactdata1.bounce * contactdata2.bounce; |
879 | mu = (float)Math.Sqrt(contactdata1.mu * contactdata2.mu); | 795 | mu = (float)Math.Sqrt(contactdata1.mu * contactdata2.mu); |
880 | 796 | ||
881 | if (relVlenSQ > 0.01f) | 797 | // if (relVlenSQ > 0.01f) |
882 | mu *= frictionMovementMult; | 798 | // mu *= frictionMovementMult; |
883 | 799 | ||
884 | if(d.GeomGetClass(g2) == d.GeomClassID.TriMeshClass && | 800 | if(SafeNativeMethods.GeomGetClass(g2) == SafeNativeMethods.GeomClassID.TriMeshClass && |
885 | d.GeomGetClass(g1) == d.GeomClassID.TriMeshClass) | 801 | SafeNativeMethods.GeomGetClass(g1) == SafeNativeMethods.GeomClassID.TriMeshClass) |
886 | smoothMesh = true; | 802 | smoothMesh = true; |
887 | break; | 803 | break; |
888 | 804 | ||
@@ -891,12 +807,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
891 | bounce = contactdata1.bounce * TerrainBounce; | 807 | bounce = contactdata1.bounce * TerrainBounce; |
892 | mu = (float)Math.Sqrt(contactdata1.mu * TerrainFriction); | 808 | mu = (float)Math.Sqrt(contactdata1.mu * TerrainFriction); |
893 | 809 | ||
894 | Vector3 v1 = p1.rootVelocity; | 810 | // Vector3 v1 = p1.rootVelocity; |
895 | if (Math.Abs(v1.X) > 0.1f || Math.Abs(v1.Y) > 0.1f) | 811 | // if (Math.Abs(v1.X) > 0.1f || Math.Abs(v1.Y) > 0.1f) |
896 | mu *= frictionMovementMult; | 812 | // mu *= frictionMovementMult; |
897 | p1.CollidingGround = true; | 813 | p1.CollidingGround = true; |
898 | 814 | ||
899 | if(d.GeomGetClass(g1) == d.GeomClassID.TriMeshClass) | 815 | if(SafeNativeMethods.GeomGetClass(g1) == SafeNativeMethods.GeomClassID.TriMeshClass) |
900 | smoothMesh = true; | 816 | smoothMesh = true; |
901 | break; | 817 | break; |
902 | 818 | ||
@@ -918,11 +834,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
918 | 834 | ||
919 | // if (curContact.side1 > 0) // should be 2 ? | 835 | // if (curContact.side1 > 0) // should be 2 ? |
920 | // IgnoreNegSides = true; | 836 | // IgnoreNegSides = true; |
921 | Vector3 v2 = p2.rootVelocity; | 837 | // Vector3 v2 = p2.rootVelocity; |
922 | if (Math.Abs(v2.X) > 0.1f || Math.Abs(v2.Y) > 0.1f) | 838 | // if (Math.Abs(v2.X) > 0.1f || Math.Abs(v2.Y) > 0.1f) |
923 | mu *= frictionMovementMult; | 839 | // mu *= frictionMovementMult; |
924 | 840 | ||
925 | if(d.GeomGetClass(g2) == d.GeomClassID.TriMeshClass) | 841 | if(SafeNativeMethods.GeomGetClass(g2) == SafeNativeMethods.GeomClassID.TriMeshClass) |
926 | smoothMesh = true; | 842 | smoothMesh = true; |
927 | } | 843 | } |
928 | else | 844 | else |
@@ -952,7 +868,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
952 | SharedTmpcontact.surface.mu = mu; | 868 | SharedTmpcontact.surface.mu = mu; |
953 | SharedTmpcontact.surface.bounce = bounce; | 869 | SharedTmpcontact.surface.bounce = bounce; |
954 | 870 | ||
955 | d.ContactGeom altContact = new d.ContactGeom(); | 871 | SafeNativeMethods.ContactGeom altContact = new SafeNativeMethods.ContactGeom(); |
956 | bool useAltcontact; | 872 | bool useAltcontact; |
957 | bool noskip; | 873 | bool noskip; |
958 | 874 | ||
@@ -1004,7 +920,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1004 | if (Joint == IntPtr.Zero) | 920 | if (Joint == IntPtr.Zero) |
1005 | break; | 921 | break; |
1006 | 922 | ||
1007 | d.JointAttach(Joint, b1, b2); | 923 | SafeNativeMethods.JointAttach(Joint, b1, b2); |
1008 | 924 | ||
1009 | ncontacts++; | 925 | ncontacts++; |
1010 | 926 | ||
@@ -1152,12 +1068,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1152 | continue; | 1068 | continue; |
1153 | 1069 | ||
1154 | // do colisions with static space | 1070 | // do colisions with static space |
1155 | d.SpaceCollide2(chr.collider, StaticSpace, IntPtr.Zero, nearCallback); | 1071 | SafeNativeMethods.SpaceCollide2(chr.collider, StaticSpace, IntPtr.Zero, nearCallback); |
1156 | 1072 | ||
1157 | // no coll with gnd | 1073 | // no coll with gnd |
1158 | } | 1074 | } |
1159 | // chars with chars | 1075 | // chars with chars |
1160 | d.SpaceCollide(CharsSpace, IntPtr.Zero, nearCallback); | 1076 | SafeNativeMethods.SpaceCollide(CharsSpace, IntPtr.Zero, nearCallback); |
1161 | 1077 | ||
1162 | } | 1078 | } |
1163 | catch (AccessViolationException) | 1079 | catch (AccessViolationException) |
@@ -1173,7 +1089,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1173 | { | 1089 | { |
1174 | aprim.CollisionScore = 0; | 1090 | aprim.CollisionScore = 0; |
1175 | aprim.IsColliding = false; | 1091 | aprim.IsColliding = false; |
1176 | if(!aprim.m_outbounds && d.BodyIsEnabled(aprim.Body)) | 1092 | if(!aprim.m_outbounds && SafeNativeMethods.BodyIsEnabled(aprim.Body)) |
1177 | aprim.clearSleeperCollisions(); | 1093 | aprim.clearSleeperCollisions(); |
1178 | } | 1094 | } |
1179 | } | 1095 | } |
@@ -1184,11 +1100,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1184 | { | 1100 | { |
1185 | foreach (OdePrim aprim in _activegroups) | 1101 | foreach (OdePrim aprim in _activegroups) |
1186 | { | 1102 | { |
1187 | if(!aprim.m_outbounds && d.BodyIsEnabled(aprim.Body) && | 1103 | if(!aprim.m_outbounds && SafeNativeMethods.BodyIsEnabled(aprim.Body) && |
1188 | aprim.collide_geom != IntPtr.Zero) | 1104 | aprim.collide_geom != IntPtr.Zero) |
1189 | { | 1105 | { |
1190 | d.SpaceCollide2(StaticSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); | 1106 | SafeNativeMethods.SpaceCollide2(StaticSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); |
1191 | d.SpaceCollide2(GroundSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); | 1107 | SafeNativeMethods.SpaceCollide2(GroundSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); |
1192 | } | 1108 | } |
1193 | } | 1109 | } |
1194 | } | 1110 | } |
@@ -1201,7 +1117,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1201 | // colide active amoung them | 1117 | // colide active amoung them |
1202 | try | 1118 | try |
1203 | { | 1119 | { |
1204 | d.SpaceCollide(ActiveSpace, IntPtr.Zero, nearCallback); | 1120 | SafeNativeMethods.SpaceCollide(ActiveSpace, IntPtr.Zero, nearCallback); |
1205 | } | 1121 | } |
1206 | catch (Exception e) | 1122 | catch (Exception e) |
1207 | { | 1123 | { |
@@ -1211,7 +1127,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1211 | // and with chars | 1127 | // and with chars |
1212 | try | 1128 | try |
1213 | { | 1129 | { |
1214 | d.SpaceCollide2(CharsSpace,ActiveSpace, IntPtr.Zero, nearCallback); | 1130 | SafeNativeMethods.SpaceCollide2(CharsSpace,ActiveSpace, IntPtr.Zero, nearCallback); |
1215 | } | 1131 | } |
1216 | catch (Exception e) | 1132 | catch (Exception e) |
1217 | { | 1133 | { |
@@ -1306,9 +1222,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1306 | public override void RemoveAvatar(PhysicsActor actor) | 1222 | public override void RemoveAvatar(PhysicsActor actor) |
1307 | { | 1223 | { |
1308 | //m_log.Debug("[PHYSICS]:ODELOCK"); | 1224 | //m_log.Debug("[PHYSICS]:ODELOCK"); |
1225 | if (world == IntPtr.Zero) | ||
1226 | return; | ||
1227 | |||
1309 | lock (OdeLock) | 1228 | lock (OdeLock) |
1310 | { | 1229 | { |
1311 | d.AllocateODEDataForThread(0); | 1230 | SafeNativeMethods.AllocateODEDataForThread(0); |
1312 | ((OdeCharacter) actor).Destroy(); | 1231 | ((OdeCharacter) actor).Destroy(); |
1313 | } | 1232 | } |
1314 | } | 1233 | } |
@@ -1460,39 +1379,35 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1460 | 1379 | ||
1461 | /// <summary> | 1380 | /// <summary> |
1462 | /// Called when a static prim moves or becomes static | 1381 | /// Called when a static prim moves or becomes static |
1463 | /// Places the prim in a space one the static sub-spaces grid | 1382 | /// Places the prim in a space one the static space |
1464 | /// </summary> | 1383 | /// </summary> |
1465 | /// <param name="geom">the pointer to the geom that moved</param> | 1384 | /// <param name="geom">the pointer to the geom that moved</param> |
1466 | /// <param name="pos">the position that the geom moved to</param> | ||
1467 | /// <param name="currentspace">a pointer to the space it was in before it was moved.</param> | 1385 | /// <param name="currentspace">a pointer to the space it was in before it was moved.</param> |
1468 | /// <returns>a pointer to the new space it's in</returns> | 1386 | /// <returns>a pointer to the new space it's in</returns> |
1469 | public IntPtr MoveGeomToStaticSpace(IntPtr geom, Vector3 pos, IntPtr currentspace) | 1387 | public IntPtr MoveGeomToStaticSpace(IntPtr geom, IntPtr currentspace) |
1470 | { | 1388 | { |
1471 | // moves a prim into another static sub-space or from another space into a static sub-space | 1389 | // moves a prim into static sub-space |
1472 | 1390 | ||
1473 | // Called ODEPrim so | 1391 | // Called ODEPrim so |
1474 | // it's already in locked space. | 1392 | // it's already in locked space. |
1475 | 1393 | ||
1476 | if (geom == IntPtr.Zero) // shouldn't happen | 1394 | if (geom == IntPtr.Zero) // shouldn't happen |
1477 | return IntPtr.Zero; | 1395 | return IntPtr.Zero; |
1478 | 1396 | ||
1479 | // get the static sub-space for current position | 1397 | if (StaticSpace == currentspace) // if we are there all done |
1480 | IntPtr newspace = calculateSpaceForGeom(pos); | 1398 | return StaticSpace; |
1481 | |||
1482 | if (newspace == currentspace) // if we are there all done | ||
1483 | return newspace; | ||
1484 | 1399 | ||
1485 | // else remove it from its current space | 1400 | // else remove it from its current space |
1486 | if (currentspace != IntPtr.Zero && d.SpaceQuery(currentspace, geom)) | 1401 | if (currentspace != IntPtr.Zero && SafeNativeMethods.SpaceQuery(currentspace, geom)) |
1487 | { | 1402 | { |
1488 | if (d.GeomIsSpace(currentspace)) | 1403 | if (SafeNativeMethods.GeomIsSpace(currentspace)) |
1489 | { | 1404 | { |
1490 | waitForSpaceUnlock(currentspace); | 1405 | waitForSpaceUnlock(currentspace); |
1491 | d.SpaceRemove(currentspace, geom); | 1406 | SafeNativeMethods.SpaceRemove(currentspace, geom); |
1492 | 1407 | ||
1493 | if (d.SpaceGetSublevel(currentspace) > 2 && d.SpaceGetNumGeoms(currentspace) == 0) | 1408 | if (SafeNativeMethods.SpaceGetSublevel(currentspace) > 2 && SafeNativeMethods.SpaceGetNumGeoms(currentspace) == 0) |
1494 | { | 1409 | { |
1495 | d.SpaceDestroy(currentspace); | 1410 | SafeNativeMethods.SpaceDestroy(currentspace); |
1496 | } | 1411 | } |
1497 | } | 1412 | } |
1498 | else | 1413 | else |
@@ -1501,59 +1416,33 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1501 | " Geom:" + geom); | 1416 | " Geom:" + geom); |
1502 | } | 1417 | } |
1503 | } | 1418 | } |
1504 | else // odd currentspace is null or doesn't contain the geom? lets try the geom ideia of current space | 1419 | else |
1505 | { | 1420 | { |
1506 | currentspace = d.GeomGetSpace(geom); | 1421 | currentspace = SafeNativeMethods.GeomGetSpace(geom); |
1507 | if (currentspace != IntPtr.Zero) | 1422 | if (currentspace != IntPtr.Zero) |
1508 | { | 1423 | { |
1509 | if (d.GeomIsSpace(currentspace)) | 1424 | if (SafeNativeMethods.GeomIsSpace(currentspace)) |
1510 | { | 1425 | { |
1511 | waitForSpaceUnlock(currentspace); | 1426 | waitForSpaceUnlock(currentspace); |
1512 | d.SpaceRemove(currentspace, geom); | 1427 | SafeNativeMethods.SpaceRemove(currentspace, geom); |
1513 | 1428 | ||
1514 | if (d.SpaceGetSublevel(currentspace) > 2 && d.SpaceGetNumGeoms(currentspace) == 0) | 1429 | if (SafeNativeMethods.SpaceGetSublevel(currentspace) > 2 && SafeNativeMethods.SpaceGetNumGeoms(currentspace) == 0) |
1515 | { | 1430 | { |
1516 | d.SpaceDestroy(currentspace); | 1431 | SafeNativeMethods.SpaceDestroy(currentspace); |
1517 | } | 1432 | } |
1518 | |||
1519 | } | 1433 | } |
1520 | } | 1434 | } |
1521 | } | 1435 | } |
1522 | 1436 | ||
1523 | // put the geom in the newspace | 1437 | // put the geom in the newspace |
1524 | waitForSpaceUnlock(newspace); | 1438 | waitForSpaceUnlock(StaticSpace); |
1525 | d.SpaceAdd(newspace, geom); | 1439 | if(SafeNativeMethods.SpaceQuery(StaticSpace, geom)) |
1526 | 1440 | m_log.Info("[Physics]: 'MoveGeomToStaticSpace' geom already in static space:" + geom); | |
1527 | // let caller know this newspace | 1441 | else |
1528 | return newspace; | 1442 | SafeNativeMethods.SpaceAdd(StaticSpace, geom); |
1529 | } | ||
1530 | |||
1531 | /// <summary> | ||
1532 | /// Calculates the space the prim should be in by its position | ||
1533 | /// </summary> | ||
1534 | /// <param name="pos"></param> | ||
1535 | /// <returns>a pointer to the space. This could be a new space or reused space.</returns> | ||
1536 | public IntPtr calculateSpaceForGeom(Vector3 pos) | ||
1537 | { | ||
1538 | int x, y; | ||
1539 | |||
1540 | if (pos.X < 0) | ||
1541 | return staticPrimspaceOffRegion[0]; | ||
1542 | |||
1543 | if (pos.Y < 0) | ||
1544 | return staticPrimspaceOffRegion[2]; | ||
1545 | |||
1546 | x = (int)(pos.X * spacesPerMeterX); | ||
1547 | if (x > spaceGridMaxX) | ||
1548 | return staticPrimspaceOffRegion[1]; | ||
1549 | |||
1550 | y = (int)(pos.Y * spacesPerMeterY); | ||
1551 | if (y > spaceGridMaxY) | ||
1552 | return staticPrimspaceOffRegion[3]; | ||
1553 | 1443 | ||
1554 | return staticPrimspace[x, y]; | 1444 | return StaticSpace; |
1555 | } | 1445 | } |
1556 | |||
1557 | #endregion | 1446 | #endregion |
1558 | 1447 | ||
1559 | 1448 | ||
@@ -1592,7 +1481,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1592 | return; | 1481 | return; |
1593 | } | 1482 | } |
1594 | 1483 | ||
1595 | d.AllocateODEDataForThread(~0U); | 1484 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
1596 | 1485 | ||
1597 | ODEchangeitem item; | 1486 | ODEchangeitem item; |
1598 | 1487 | ||
@@ -1641,6 +1530,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1641 | /// <returns></returns> | 1530 | /// <returns></returns> |
1642 | public override float Simulate(float reqTimeStep) | 1531 | public override float Simulate(float reqTimeStep) |
1643 | { | 1532 | { |
1533 | if (world == IntPtr.Zero) | ||
1534 | return 0; | ||
1535 | |||
1644 | double now = Util.GetTimeStamp(); | 1536 | double now = Util.GetTimeStamp(); |
1645 | double timeStep = now - m_lastframe; | 1537 | double timeStep = now - m_lastframe; |
1646 | m_lastframe = now; | 1538 | m_lastframe = now; |
@@ -1679,11 +1571,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1679 | double maxChangestime = (int)(reqTimeStep * 500f); // half the time | 1571 | double maxChangestime = (int)(reqTimeStep * 500f); // half the time |
1680 | double maxLoopTime = (int)(reqTimeStep * 1200f); // 1.2 the time | 1572 | double maxLoopTime = (int)(reqTimeStep * 1200f); // 1.2 the time |
1681 | 1573 | ||
1682 | // double collisionTime = 0; | 1574 | /* |
1683 | // double qstepTIme = 0; | 1575 | double collisionTime = 0; |
1684 | // double tmpTime = 0; | 1576 | double qstepTIme = 0; |
1685 | 1577 | double tmpTime = 0; | |
1686 | d.AllocateODEDataForThread(~0U); | 1578 | double changestot = 0; |
1579 | double collisonRepo = 0; | ||
1580 | double updatesTime = 0; | ||
1581 | double moveTime = 0; | ||
1582 | double rayTime = 0; | ||
1583 | */ | ||
1584 | SafeNativeMethods.AllocateODEDataForThread(~0U); | ||
1687 | 1585 | ||
1688 | if (ChangesQueue.Count > 0) | 1586 | if (ChangesQueue.Count > 0) |
1689 | { | 1587 | { |
@@ -1719,6 +1617,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1719 | m_global_contactcount = 0; | 1617 | m_global_contactcount = 0; |
1720 | 1618 | ||
1721 | 1619 | ||
1620 | // tmpTime = Util.GetTimeStampMS(); | ||
1621 | |||
1722 | // Move characters | 1622 | // Move characters |
1723 | lock (_characters) | 1623 | lock (_characters) |
1724 | { | 1624 | { |
@@ -1746,13 +1646,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1746 | aprim.Move(); | 1646 | aprim.Move(); |
1747 | } | 1647 | } |
1748 | } | 1648 | } |
1649 | // moveTime += Util.GetTimeStampMS() - tmpTime; | ||
1749 | 1650 | ||
1651 | // tmpTime = Util.GetTimeStampMS(); | ||
1750 | m_rayCastManager.ProcessQueuedRequests(); | 1652 | m_rayCastManager.ProcessQueuedRequests(); |
1653 | // rayTime += Util.GetTimeStampMS() - tmpTime; | ||
1751 | 1654 | ||
1752 | // tmpTime = Util.GetTimeStampMS(); | 1655 | // tmpTime = Util.GetTimeStampMS(); |
1753 | collision_optimized(); | 1656 | collision_optimized(); |
1754 | // collisionTime += Util.GetTimeStampMS() - tmpTime; | 1657 | // collisionTime += Util.GetTimeStampMS() - tmpTime; |
1755 | 1658 | ||
1659 | // tmpTime = Util.GetTimeStampMS(); | ||
1756 | lock(_collisionEventPrimRemove) | 1660 | lock(_collisionEventPrimRemove) |
1757 | { | 1661 | { |
1758 | foreach (PhysicsActor obj in _collisionEventPrimRemove) | 1662 | foreach (PhysicsActor obj in _collisionEventPrimRemove) |
@@ -1781,7 +1685,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1781 | pobj.SendCollisions((int)(odetimestepMS)); | 1685 | pobj.SendCollisions((int)(odetimestepMS)); |
1782 | if(pobj.Body != IntPtr.Zero && !pobj.m_isSelected && | 1686 | if(pobj.Body != IntPtr.Zero && !pobj.m_isSelected && |
1783 | !pobj.m_disabled && !pobj.m_building && | 1687 | !pobj.m_disabled && !pobj.m_building && |
1784 | !d.BodyIsEnabled(pobj.Body)) | 1688 | !SafeNativeMethods.BodyIsEnabled(pobj.Body)) |
1785 | sleepers.Add(pobj); | 1689 | sleepers.Add(pobj); |
1786 | } | 1690 | } |
1787 | break; | 1691 | break; |
@@ -1791,11 +1695,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1791 | foreach(OdePrim prm in sleepers) | 1695 | foreach(OdePrim prm in sleepers) |
1792 | prm.SleeperAddCollisionEvents(); | 1696 | prm.SleeperAddCollisionEvents(); |
1793 | sleepers.Clear(); | 1697 | sleepers.Clear(); |
1698 | // collisonRepo += Util.GetTimeStampMS() - tmpTime; | ||
1699 | |||
1794 | 1700 | ||
1795 | // do a ode simulation step | 1701 | // do a ode simulation step |
1796 | // tmpTime = Util.GetTimeStampMS(); | 1702 | // tmpTime = Util.GetTimeStampMS(); |
1797 | d.WorldQuickStep(world, ODE_STEPSIZE); | 1703 | SafeNativeMethods.WorldQuickStep(world, ODE_STEPSIZE); |
1798 | d.JointGroupEmpty(contactgroup); | 1704 | SafeNativeMethods.JointGroupEmpty(contactgroup); |
1799 | // qstepTIme += Util.GetTimeStampMS() - tmpTime; | 1705 | // qstepTIme += Util.GetTimeStampMS() - tmpTime; |
1800 | 1706 | ||
1801 | // update managed ideia of physical data and do updates to core | 1707 | // update managed ideia of physical data and do updates to core |
@@ -1814,7 +1720,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1814 | } | 1720 | } |
1815 | } | 1721 | } |
1816 | */ | 1722 | */ |
1817 | 1723 | // tmpTime = Util.GetTimeStampMS(); | |
1818 | lock (_activegroups) | 1724 | lock (_activegroups) |
1819 | { | 1725 | { |
1820 | { | 1726 | { |
@@ -1827,6 +1733,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1827 | } | 1733 | } |
1828 | } | 1734 | } |
1829 | } | 1735 | } |
1736 | // updatesTime += Util.GetTimeStampMS() - tmpTime; | ||
1830 | } | 1737 | } |
1831 | catch (Exception e) | 1738 | catch (Exception e) |
1832 | { | 1739 | { |
@@ -1834,10 +1741,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1834 | // ode.dunlock(world); | 1741 | // ode.dunlock(world); |
1835 | } | 1742 | } |
1836 | 1743 | ||
1744 | |||
1837 | step_time -= ODE_STEPSIZE; | 1745 | step_time -= ODE_STEPSIZE; |
1838 | nodeframes++; | 1746 | nodeframes++; |
1839 | 1747 | ||
1840 | looptimeMS = Util.GetTimeStampMS() - loopstartMS; | 1748 | looptimeMS = Util.GetTimeStampMS() - loopstartMS; |
1749 | |||
1841 | if (looptimeMS > maxLoopTime) | 1750 | if (looptimeMS > maxLoopTime) |
1842 | break; | 1751 | break; |
1843 | } | 1752 | } |
@@ -1854,9 +1763,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1854 | _badCharacter.Clear(); | 1763 | _badCharacter.Clear(); |
1855 | } | 1764 | } |
1856 | } | 1765 | } |
1857 | |||
1858 | // information block for in debug breakpoint only | ||
1859 | /* | 1766 | /* |
1767 | // information block for in debug breakpoint only | ||
1768 | |||
1860 | int ntopactivegeoms = d.SpaceGetNumGeoms(ActiveSpace); | 1769 | int ntopactivegeoms = d.SpaceGetNumGeoms(ActiveSpace); |
1861 | int ntopstaticgeoms = d.SpaceGetNumGeoms(StaticSpace); | 1770 | int ntopstaticgeoms = d.SpaceGetNumGeoms(StaticSpace); |
1862 | int ngroundgeoms = d.SpaceGetNumGeoms(GroundSpace); | 1771 | int ngroundgeoms = d.SpaceGetNumGeoms(GroundSpace); |
@@ -1898,33 +1807,23 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1898 | int nbodies = d.NTotalBodies; | 1807 | int nbodies = d.NTotalBodies; |
1899 | int ngeoms = d.NTotalGeoms; | 1808 | int ngeoms = d.NTotalGeoms; |
1900 | */ | 1809 | */ |
1810 | |||
1901 | /* | 1811 | /* |
1902 | looptimeMS /= nodeframes; | 1812 | looptimeMS /= nodeframes; |
1903 | if(looptimeMS > 0.080) | 1813 | collisionTime /= nodeframes; |
1904 | { | 1814 | qstepTIme /= nodeframes; |
1905 | collisionTime /= nodeframes; | 1815 | changestot /= nodeframes; |
1906 | qstepTIme /= nodeframes; | 1816 | collisonRepo /= nodeframes; |
1907 | } | 1817 | updatesTime /= nodeframes; |
1908 | */ | 1818 | moveTime /= nodeframes; |
1909 | // Finished with all sim stepping. If requested, dump world state to file for debugging. | 1819 | rayTime /= nodeframes; |
1910 | // TODO: This call to the export function is already inside lock (OdeLock) - but is an extra lock needed? | 1820 | |
1911 | // TODO: This overwrites all dump files in-place. Should this be a growing logfile, or separate snapshots? | 1821 | if(looptimeMS > .05) |
1912 | if (physics_logging && (physics_logging_interval > 0) && (framecount % physics_logging_interval == 0)) | ||
1913 | { | 1822 | { |
1914 | string fname = "state-" + world.ToString() + ".DIF"; // give each physics world a separate filename | ||
1915 | string prefix = "world" + world.ToString(); // prefix for variable names in exported .DIF file | ||
1916 | 1823 | ||
1917 | if (physics_logging_append_existing_logfile) | ||
1918 | { | ||
1919 | string header = "-------------- START OF PHYSICS FRAME " + framecount.ToString() + " --------------"; | ||
1920 | TextWriter fwriter = File.AppendText(fname); | ||
1921 | fwriter.WriteLine(header); | ||
1922 | fwriter.Close(); | ||
1923 | } | ||
1924 | 1824 | ||
1925 | d.WorldExportDIF(world, fname, physics_logging_append_existing_logfile, prefix); | ||
1926 | } | 1825 | } |
1927 | 1826 | */ | |
1928 | fps = (float)nodeframes * ODE_STEPSIZE / reqTimeStep; | 1827 | fps = (float)nodeframes * ODE_STEPSIZE / reqTimeStep; |
1929 | 1828 | ||
1930 | if(step_time < HalfOdeStep) | 1829 | if(step_time < HalfOdeStep) |
@@ -2285,35 +2184,35 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2285 | 2184 | ||
2286 | lock (OdeLock) | 2185 | lock (OdeLock) |
2287 | { | 2186 | { |
2288 | d.AllocateODEDataForThread(~0U); | 2187 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
2289 | 2188 | ||
2290 | if (TerrainGeom != IntPtr.Zero) | 2189 | if (TerrainGeom != IntPtr.Zero) |
2291 | { | 2190 | { |
2292 | actor_name_map.Remove(TerrainGeom); | 2191 | actor_name_map.Remove(TerrainGeom); |
2293 | d.GeomDestroy(TerrainGeom); | 2192 | SafeNativeMethods.GeomDestroy(TerrainGeom); |
2294 | 2193 | ||
2295 | } | 2194 | } |
2296 | 2195 | ||
2297 | if (TerrainHeightFieldHeightsHandler.IsAllocated) | 2196 | if (TerrainHeightFieldHeightsHandler.IsAllocated) |
2298 | TerrainHeightFieldHeightsHandler.Free(); | 2197 | TerrainHeightFieldHeightsHandler.Free(); |
2299 | 2198 | ||
2300 | IntPtr HeightmapData = d.GeomHeightfieldDataCreate(); | 2199 | IntPtr HeightmapData = SafeNativeMethods.GeomHeightfieldDataCreate(); |
2301 | 2200 | ||
2302 | TerrainHeightFieldHeightsHandler = GCHandle.Alloc(_heightmap, GCHandleType.Pinned); | 2201 | TerrainHeightFieldHeightsHandler = GCHandle.Alloc(_heightmap, GCHandleType.Pinned); |
2303 | 2202 | ||
2304 | d.GeomHeightfieldDataBuildSingle(HeightmapData, TerrainHeightFieldHeightsHandler.AddrOfPinnedObject(), 0, | 2203 | SafeNativeMethods.GeomHeightfieldDataBuildSingle(HeightmapData, TerrainHeightFieldHeightsHandler.AddrOfPinnedObject(), 0, |
2305 | heightmapHeight, heightmapWidth , | 2204 | heightmapHeight, heightmapWidth , |
2306 | (int)heightmapHeightSamples, (int)heightmapWidthSamples, scale, | 2205 | (int)heightmapHeightSamples, (int)heightmapWidthSamples, scale, |
2307 | offset, thickness, wrap); | 2206 | offset, thickness, wrap); |
2308 | 2207 | ||
2309 | d.GeomHeightfieldDataSetBounds(HeightmapData, hfmin - 1, hfmax + 1); | 2208 | SafeNativeMethods.GeomHeightfieldDataSetBounds(HeightmapData, hfmin - 1, hfmax + 1); |
2310 | 2209 | ||
2311 | TerrainGeom = d.CreateHeightfield(GroundSpace, HeightmapData, 1); | 2210 | TerrainGeom = SafeNativeMethods.CreateHeightfield(GroundSpace, HeightmapData, 1); |
2312 | 2211 | ||
2313 | if (TerrainGeom != IntPtr.Zero) | 2212 | if (TerrainGeom != IntPtr.Zero) |
2314 | { | 2213 | { |
2315 | d.GeomSetCategoryBits(TerrainGeom, (uint)(CollisionCategories.Land)); | 2214 | SafeNativeMethods.GeomSetCategoryBits(TerrainGeom, (uint)(CollisionCategories.Land)); |
2316 | d.GeomSetCollideBits(TerrainGeom, 0); | 2215 | SafeNativeMethods.GeomSetCollideBits(TerrainGeom, 0); |
2317 | 2216 | ||
2318 | PhysicsActor pa = new NullPhysicsActor(); | 2217 | PhysicsActor pa = new NullPhysicsActor(); |
2319 | pa.Name = "Terrain"; | 2218 | pa.Name = "Terrain"; |
@@ -2322,14 +2221,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2322 | 2221 | ||
2323 | // geom_name_map[GroundGeom] = "Terrain"; | 2222 | // geom_name_map[GroundGeom] = "Terrain"; |
2324 | 2223 | ||
2325 | d.Quaternion q = new d.Quaternion(); | 2224 | SafeNativeMethods.Quaternion q = new SafeNativeMethods.Quaternion(); |
2326 | q.X = 0.5f; | 2225 | q.X = 0.5f; |
2327 | q.Y = 0.5f; | 2226 | q.Y = 0.5f; |
2328 | q.Z = 0.5f; | 2227 | q.Z = 0.5f; |
2329 | q.W = 0.5f; | 2228 | q.W = 0.5f; |
2330 | 2229 | ||
2331 | d.GeomSetQuaternion(TerrainGeom, ref q); | 2230 | SafeNativeMethods.GeomSetQuaternion(TerrainGeom, ref q); |
2332 | d.GeomSetPosition(TerrainGeom, m_regionWidth * 0.5f, m_regionHeight * 0.5f, 0.0f); | 2231 | SafeNativeMethods.GeomSetPosition(TerrainGeom, m_regionWidth * 0.5f, m_regionHeight * 0.5f, 0.0f); |
2333 | TerrainHeightFieldHeight = _heightmap; | 2232 | TerrainHeightFieldHeight = _heightmap; |
2334 | } | 2233 | } |
2335 | else | 2234 | else |
@@ -2397,7 +2296,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2397 | if (TerrainGeom != IntPtr.Zero) | 2296 | if (TerrainGeom != IntPtr.Zero) |
2398 | { | 2297 | { |
2399 | actor_name_map.Remove(TerrainGeom); | 2298 | actor_name_map.Remove(TerrainGeom); |
2400 | d.GeomDestroy(TerrainGeom); | 2299 | SafeNativeMethods.GeomDestroy(TerrainGeom); |
2401 | } | 2300 | } |
2402 | 2301 | ||
2403 | if (TerrainHeightFieldHeightsHandler.IsAllocated) | 2302 | if (TerrainHeightFieldHeightsHandler.IsAllocated) |
@@ -2405,7 +2304,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2405 | 2304 | ||
2406 | TerrainHeightFieldHeight = null; | 2305 | TerrainHeightFieldHeight = null; |
2407 | 2306 | ||
2408 | IntPtr HeightmapData = d.GeomOSTerrainDataCreate(); | 2307 | IntPtr HeightmapData = SafeNativeMethods.GeomOSTerrainDataCreate(); |
2409 | 2308 | ||
2410 | const int wrap = 0; | 2309 | const int wrap = 0; |
2411 | float thickness = hfmin; | 2310 | float thickness = hfmin; |
@@ -2414,16 +2313,16 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2414 | 2313 | ||
2415 | TerrainHeightFieldHeightsHandler = GCHandle.Alloc(_heightmap, GCHandleType.Pinned); | 2314 | TerrainHeightFieldHeightsHandler = GCHandle.Alloc(_heightmap, GCHandleType.Pinned); |
2416 | 2315 | ||
2417 | d.GeomOSTerrainDataBuild(HeightmapData, TerrainHeightFieldHeightsHandler.AddrOfPinnedObject(), 0, 1.0f, | 2316 | SafeNativeMethods.GeomOSTerrainDataBuild(HeightmapData, TerrainHeightFieldHeightsHandler.AddrOfPinnedObject(), 0, 1.0f, |
2418 | (int)heightmapWidthSamples, (int)heightmapHeightSamples, | 2317 | (int)heightmapWidthSamples, (int)heightmapHeightSamples, |
2419 | thickness, wrap); | 2318 | thickness, wrap); |
2420 | 2319 | ||
2421 | // d.GeomOSTerrainDataSetBounds(HeightmapData, hfmin - 1, hfmax + 1); | 2320 | // d.GeomOSTerrainDataSetBounds(HeightmapData, hfmin - 1, hfmax + 1); |
2422 | TerrainGeom = d.CreateOSTerrain(GroundSpace, HeightmapData, 1); | 2321 | TerrainGeom = SafeNativeMethods.CreateOSTerrain(GroundSpace, HeightmapData, 1); |
2423 | if (TerrainGeom != IntPtr.Zero) | 2322 | if (TerrainGeom != IntPtr.Zero) |
2424 | { | 2323 | { |
2425 | d.GeomSetCategoryBits(TerrainGeom, (uint)(CollisionCategories.Land)); | 2324 | SafeNativeMethods.GeomSetCategoryBits(TerrainGeom, (uint)(CollisionCategories.Land)); |
2426 | d.GeomSetCollideBits(TerrainGeom, 0); | 2325 | SafeNativeMethods.GeomSetCollideBits(TerrainGeom, 0); |
2427 | 2326 | ||
2428 | PhysicsActor pa = new NullPhysicsActor(); | 2327 | PhysicsActor pa = new NullPhysicsActor(); |
2429 | pa.Name = "Terrain"; | 2328 | pa.Name = "Terrain"; |
@@ -2432,7 +2331,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2432 | 2331 | ||
2433 | // geom_name_map[GroundGeom] = "Terrain"; | 2332 | // geom_name_map[GroundGeom] = "Terrain"; |
2434 | 2333 | ||
2435 | d.GeomSetPosition(TerrainGeom, m_regionWidth * 0.5f, m_regionHeight * 0.5f, 0.0f); | 2334 | SafeNativeMethods.GeomSetPosition(TerrainGeom, m_regionWidth * 0.5f, m_regionHeight * 0.5f, 0.0f); |
2436 | TerrainHeightFieldHeight = _heightmap; | 2335 | TerrainHeightFieldHeight = _heightmap; |
2437 | } | 2336 | } |
2438 | else | 2337 | else |
@@ -2462,7 +2361,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2462 | if (world == IntPtr.Zero) | 2361 | if (world == IntPtr.Zero) |
2463 | return; | 2362 | return; |
2464 | 2363 | ||
2465 | d.AllocateODEDataForThread(~0U); | 2364 | SafeNativeMethods.AllocateODEDataForThread(~0U); |
2466 | 2365 | ||
2467 | if (m_meshWorker != null) | 2366 | if (m_meshWorker != null) |
2468 | m_meshWorker.Stop(); | 2367 | m_meshWorker.Stop(); |
@@ -2496,7 +2395,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2496 | ch.DoAChange(changes.Remove, null); | 2395 | ch.DoAChange(changes.Remove, null); |
2497 | 2396 | ||
2498 | if (TerrainGeom != IntPtr.Zero) | 2397 | if (TerrainGeom != IntPtr.Zero) |
2499 | d.GeomDestroy(TerrainGeom); | 2398 | SafeNativeMethods.GeomDestroy(TerrainGeom); |
2500 | TerrainGeom = IntPtr.Zero; | 2399 | TerrainGeom = IntPtr.Zero; |
2501 | 2400 | ||
2502 | if (TerrainHeightFieldHeightsHandler.IsAllocated) | 2401 | if (TerrainHeightFieldHeightsHandler.IsAllocated) |
@@ -2515,7 +2414,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2515 | GlobalContactsArray = IntPtr.Zero; | 2414 | GlobalContactsArray = IntPtr.Zero; |
2516 | } | 2415 | } |
2517 | 2416 | ||
2518 | d.WorldDestroy(world); | 2417 | SafeNativeMethods.WorldDestroy(world); |
2519 | world = IntPtr.Zero; | 2418 | world = IntPtr.Zero; |
2520 | //d.CloseODE(); | 2419 | //d.CloseODE(); |
2521 | } | 2420 | } |
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODESitAvatar.cs b/OpenSim/Region/PhysicsModules/ubOde/ODESitAvatar.cs index 214205d..f882e6c 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODESitAvatar.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODESitAvatar.cs | |||
@@ -27,13 +27,7 @@ | |||
27 | // Ubit Umarov 2012 | 27 | // Ubit Umarov 2012 |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | ||
31 | using System.Runtime.InteropServices; | ||
32 | using System.Text; | ||
33 | using OpenSim.Framework; | ||
34 | using OpenSim.Region.PhysicsModules.SharedBase; | 30 | using OpenSim.Region.PhysicsModules.SharedBase; |
35 | using OdeAPI; | ||
36 | using log4net; | ||
37 | using OpenMetaverse; | 31 | using OpenMetaverse; |
38 | 32 | ||
39 | namespace OpenSim.Region.PhysicsModule.ubOde | 33 | namespace OpenSim.Region.PhysicsModule.ubOde |
@@ -78,8 +72,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
78 | 72 | ||
79 | IntPtr geom = ((OdePrim)actor).prim_geom; | 73 | IntPtr geom = ((OdePrim)actor).prim_geom; |
80 | 74 | ||
81 | Vector3 geopos = d.GeomGetPositionOMV(geom); | 75 | Vector3 geopos = SafeNativeMethods.GeomGetPositionOMV(geom); |
82 | Quaternion geomOri = d.GeomGetQuaternionOMV(geom); | 76 | Quaternion geomOri = SafeNativeMethods.GeomGetQuaternionOMV(geom); |
83 | 77 | ||
84 | // Vector3 geopos = actor.Position; | 78 | // Vector3 geopos = actor.Position; |
85 | // Quaternion geomOri = actor.Orientation; | 79 | // Quaternion geomOri = actor.Orientation; |
@@ -123,11 +117,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
123 | 117 | ||
124 | offset = rayResults[0].Pos - geopos; | 118 | offset = rayResults[0].Pos - geopos; |
125 | 119 | ||
126 | d.GeomClassID geoclass = d.GeomGetClass(geom); | 120 | SafeNativeMethods.GeomClassID geoclass = SafeNativeMethods.GeomGetClass(geom); |
127 | 121 | ||
128 | if (geoclass == d.GeomClassID.SphereClass) | 122 | if (geoclass == SafeNativeMethods.GeomClassID.SphereClass) |
129 | { | 123 | { |
130 | float r = d.GeomSphereGetRadius(geom); | 124 | float r = SafeNativeMethods.GeomSphereGetRadius(geom); |
131 | 125 | ||
132 | offset.Normalize(); | 126 | offset.Normalize(); |
133 | offset *= r; | 127 | offset *= r; |
diff --git a/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs b/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs index 032d4ed..dddec86 100644 --- a/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs +++ b/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs | |||
@@ -1383,7 +1383,7 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing | |||
1383 | { | 1383 | { |
1384 | File.Delete(filename); | 1384 | File.Delete(filename); |
1385 | } | 1385 | } |
1386 | catch (IOException e) | 1386 | catch (IOException) |
1387 | { | 1387 | { |
1388 | m_log.ErrorFormat( | 1388 | m_log.ErrorFormat( |
1389 | "[MESH CACHE]: Failed to delete file {0}",filename); | 1389 | "[MESH CACHE]: Failed to delete file {0}",filename); |
@@ -1589,14 +1589,12 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing | |||
1589 | f = new Face(k,l,m); | 1589 | f = new Face(k,l,m); |
1590 | newfaces.Add(f); | 1590 | newfaces.Add(f); |
1591 | } | 1591 | } |
1592 | return true; | ||
1593 | } | 1592 | } |
1594 | catch | 1593 | catch |
1595 | { | 1594 | { |
1596 | |||
1597 | return false; | 1595 | return false; |
1598 | } | 1596 | } |
1599 | return false; | 1597 | return true; |
1600 | } | 1598 | } |
1601 | } | 1599 | } |
1602 | } | 1600 | } |