diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs | 592 |
1 files changed, 532 insertions, 60 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs b/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs index 504bd3c..9221cdb 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs | |||
@@ -33,15 +33,25 @@ using OpenMetaverse; | |||
33 | namespace OpenSim.Region.Physics.BulletSPlugin { | 33 | namespace OpenSim.Region.Physics.BulletSPlugin { |
34 | 34 | ||
35 | // Classes to allow some type checking for the API | 35 | // Classes to allow some type checking for the API |
36 | // These hold pointers to allocated objects in the unmanaged space. | ||
37 | |||
38 | // The physics engine controller class created at initialization | ||
36 | public struct BulletSim | 39 | public struct BulletSim |
37 | { | 40 | { |
38 | public BulletSim(uint id, BSScene bss, IntPtr xx) { ID = id; scene = bss; Ptr = xx; } | 41 | public BulletSim(uint worldId, BSScene bss, IntPtr xx) { worldID = worldId; scene = bss; Ptr = xx; } |
39 | public uint ID; | 42 | public uint worldID; |
40 | // The scene is only in here so very low level routines have a handle to print debug/error messages | 43 | // The scene is only in here so very low level routines have a handle to print debug/error messages |
41 | public BSScene scene; | 44 | public BSScene scene; |
42 | public IntPtr Ptr; | 45 | public IntPtr Ptr; |
43 | } | 46 | } |
44 | 47 | ||
48 | public struct BulletShape | ||
49 | { | ||
50 | public BulletShape(IntPtr xx) { Ptr = xx; } | ||
51 | public IntPtr Ptr; | ||
52 | } | ||
53 | |||
54 | // An allocated Bullet btRigidBody | ||
45 | public struct BulletBody | 55 | public struct BulletBody |
46 | { | 56 | { |
47 | public BulletBody(uint id, IntPtr xx) { ID = id; Ptr = xx; } | 57 | public BulletBody(uint id, IntPtr xx) { ID = id; Ptr = xx; } |
@@ -49,12 +59,41 @@ public struct BulletBody | |||
49 | public uint ID; | 59 | public uint ID; |
50 | } | 60 | } |
51 | 61 | ||
62 | // An allocated Bullet btConstraint | ||
52 | public struct BulletConstraint | 63 | public struct BulletConstraint |
53 | { | 64 | { |
54 | public BulletConstraint(IntPtr xx) { Ptr = xx; } | 65 | public BulletConstraint(IntPtr xx) { Ptr = xx; } |
55 | public IntPtr Ptr; | 66 | public IntPtr Ptr; |
56 | } | 67 | } |
57 | 68 | ||
69 | // An allocated HeightMapThing which hold various heightmap info | ||
70 | // Made a class rather than a struct so there would be only one | ||
71 | // instance of this and C# will pass around pointers rather | ||
72 | // than making copies. | ||
73 | public class BulletHeightMapInfo | ||
74 | { | ||
75 | public BulletHeightMapInfo(uint id, float[] hm, IntPtr xx) { | ||
76 | ID = id; | ||
77 | Ptr = xx; | ||
78 | heightMap = hm; | ||
79 | terrainRegionBase = new Vector2(0f, 0f); | ||
80 | minCoords = new Vector3(100f, 100f, 25f); | ||
81 | maxCoords = new Vector3(101f, 101f, 26f); | ||
82 | minZ = maxZ = 0f; | ||
83 | sizeX = sizeY = 256f; | ||
84 | } | ||
85 | public uint ID; | ||
86 | public IntPtr Ptr; | ||
87 | public float[] heightMap; | ||
88 | public Vector2 terrainRegionBase; | ||
89 | public Vector3 minCoords; | ||
90 | public Vector3 maxCoords; | ||
91 | public float sizeX, sizeY; | ||
92 | public float minZ, maxZ; | ||
93 | public BulletShape terrainShape; | ||
94 | public BulletBody terrainBody; | ||
95 | } | ||
96 | |||
58 | // =============================================================================== | 97 | // =============================================================================== |
59 | [StructLayout(LayoutKind.Sequential)] | 98 | [StructLayout(LayoutKind.Sequential)] |
60 | public struct ConvexHull | 99 | public struct ConvexHull |
@@ -174,12 +213,26 @@ public struct ConfigurationParameters | |||
174 | public float linkConstraintTransMotorMaxForce; | 213 | public float linkConstraintTransMotorMaxForce; |
175 | public float linkConstraintERP; | 214 | public float linkConstraintERP; |
176 | public float linkConstraintCFM; | 215 | public float linkConstraintCFM; |
216 | public float linkConstraintSolverIterations; | ||
177 | 217 | ||
178 | public const float numericTrue = 1f; | 218 | public const float numericTrue = 1f; |
179 | public const float numericFalse = 0f; | 219 | public const float numericFalse = 0f; |
180 | } | 220 | } |
181 | 221 | ||
182 | // Values used by Bullet and BulletSim to control collisions | 222 | |
223 | // The states a bullet collision object can have | ||
224 | public enum ActivationState : uint | ||
225 | { | ||
226 | ACTIVE_TAG = 1, | ||
227 | ISLAND_SLEEPING, | ||
228 | WANTS_DEACTIVATION, | ||
229 | DISABLE_DEACTIVATION, | ||
230 | DISABLE_SIMULATION | ||
231 | } | ||
232 | |||
233 | // Values used by Bullet and BulletSim to control object properties. | ||
234 | // Bullet's "CollisionFlags" has more to do with operations on the | ||
235 | // object (if collisions happen, if gravity effects it, ...). | ||
183 | public enum CollisionFlags : uint | 236 | public enum CollisionFlags : uint |
184 | { | 237 | { |
185 | CF_STATIC_OBJECT = 1 << 0, | 238 | CF_STATIC_OBJECT = 1 << 0, |
@@ -194,8 +247,75 @@ public enum CollisionFlags : uint | |||
194 | BS_VOLUME_DETECT_OBJECT = 1 << 11, | 247 | BS_VOLUME_DETECT_OBJECT = 1 << 11, |
195 | BS_PHANTOM_OBJECT = 1 << 12, | 248 | BS_PHANTOM_OBJECT = 1 << 12, |
196 | BS_PHYSICAL_OBJECT = 1 << 13, | 249 | BS_PHYSICAL_OBJECT = 1 << 13, |
250 | BS_TERRAIN_OBJECT = 1 << 14, | ||
251 | BS_NONE = 0, | ||
252 | BS_ALL = 0xFFFFFFFF | ||
253 | }; | ||
254 | |||
255 | // Values for collisions groups and masks | ||
256 | public enum CollisionFilterGroups : uint | ||
257 | { | ||
258 | NoneFilter = 0, | ||
259 | DefaultFilter = 1 << 0, | ||
260 | StaticFilter = 1 << 1, | ||
261 | KinematicFilter = 1 << 2, | ||
262 | DebrisFilter = 1 << 3, | ||
263 | SensorTrigger = 1 << 4, | ||
264 | CharacterFilter = 1 << 5, | ||
265 | AllFilter = 0xFFFFFFFF, | ||
266 | // Filter groups defined by BulletSim | ||
267 | GroundPlaneFilter = 1 << 10, | ||
268 | TerrainFilter = 1 << 11, | ||
269 | RaycastFilter = 1 << 12, | ||
270 | SolidFilter = 1 << 13, | ||
197 | }; | 271 | }; |
198 | 272 | ||
273 | // For each type, we first clear and then set the collision flags | ||
274 | public enum ClearCollisionFlag : uint | ||
275 | { | ||
276 | Terrain = CollisionFlags.BS_ALL, | ||
277 | Phantom = CollisionFlags.BS_ALL, | ||
278 | VolumeDetect = CollisionFlags.BS_ALL, | ||
279 | PhysicalObject = CollisionFlags.BS_ALL, | ||
280 | StaticObject = CollisionFlags.BS_ALL | ||
281 | } | ||
282 | |||
283 | public enum SetCollisionFlag : uint | ||
284 | { | ||
285 | Terrain = CollisionFlags.CF_STATIC_OBJECT | ||
286 | | CollisionFlags.BS_TERRAIN_OBJECT, | ||
287 | Phantom = CollisionFlags.CF_STATIC_OBJECT | ||
288 | | CollisionFlags.BS_PHANTOM_OBJECT | ||
289 | | CollisionFlags.CF_NO_CONTACT_RESPONSE, | ||
290 | VolumeDetect = CollisionFlags.CF_STATIC_OBJECT | ||
291 | | CollisionFlags.BS_VOLUME_DETECT_OBJECT | ||
292 | | CollisionFlags.CF_NO_CONTACT_RESPONSE, | ||
293 | PhysicalObject = CollisionFlags.BS_PHYSICAL_OBJECT, | ||
294 | StaticObject = CollisionFlags.CF_STATIC_OBJECT, | ||
295 | } | ||
296 | |||
297 | // Collision filters used for different types of objects | ||
298 | public enum SetCollisionFilter : uint | ||
299 | { | ||
300 | Terrain = CollisionFilterGroups.AllFilter, | ||
301 | Phantom = CollisionFilterGroups.GroundPlaneFilter | ||
302 | | CollisionFilterGroups.TerrainFilter, | ||
303 | VolumeDetect = CollisionFilterGroups.AllFilter, | ||
304 | PhysicalObject = CollisionFilterGroups.AllFilter, | ||
305 | StaticObject = CollisionFilterGroups.AllFilter, | ||
306 | } | ||
307 | |||
308 | // Collision masks used for different types of objects | ||
309 | public enum SetCollisionMask : uint | ||
310 | { | ||
311 | Terrain = CollisionFilterGroups.AllFilter, | ||
312 | Phantom = CollisionFilterGroups.GroundPlaneFilter | ||
313 | | CollisionFilterGroups.TerrainFilter, | ||
314 | VolumeDetect = CollisionFilterGroups.AllFilter, | ||
315 | PhysicalObject = CollisionFilterGroups.AllFilter, | ||
316 | StaticObject = CollisionFilterGroups.AllFilter | ||
317 | } | ||
318 | |||
199 | // CFM controls the 'hardness' of the constraint. 0=fixed, 0..1=violatable. Default=0 | 319 | // CFM controls the 'hardness' of the constraint. 0=fixed, 0..1=violatable. Default=0 |
200 | // ERP controls amount of correction per tick. Usable range=0.1..0.8. Default=0.2. | 320 | // ERP controls amount of correction per tick. Usable range=0.1..0.8. Default=0.2. |
201 | public enum ConstraintParams : int | 321 | public enum ConstraintParams : int |
@@ -221,6 +341,10 @@ public enum ConstraintParamAxis : int | |||
221 | // =============================================================================== | 341 | // =============================================================================== |
222 | static class BulletSimAPI { | 342 | static class BulletSimAPI { |
223 | 343 | ||
344 | // Link back to the managed code for outputting log messages | ||
345 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | ||
346 | public delegate void DebugLogCallback([MarshalAs(UnmanagedType.LPStr)]string msg); | ||
347 | |||
224 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 348 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
225 | [return: MarshalAs(UnmanagedType.LPStr)] | 349 | [return: MarshalAs(UnmanagedType.LPStr)] |
226 | public static extern string GetVersion(); | 350 | public static extern string GetVersion(); |
@@ -228,7 +352,11 @@ public static extern string GetVersion(); | |||
228 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 352 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
229 | public static extern uint Initialize(Vector3 maxPosition, IntPtr parms, | 353 | public static extern uint Initialize(Vector3 maxPosition, IntPtr parms, |
230 | int maxCollisions, IntPtr collisionArray, | 354 | int maxCollisions, IntPtr collisionArray, |
231 | int maxUpdates, IntPtr updateArray); | 355 | int maxUpdates, IntPtr updateArray, |
356 | DebugLogCallback logRoutine); | ||
357 | |||
358 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
359 | public static extern void CreateInitialGroundPlaneAndTerrain(uint worldID); | ||
232 | 360 | ||
233 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 361 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
234 | public static extern void SetHeightmap(uint worldID, [MarshalAs(UnmanagedType.LPArray)] float[] heightMap); | 362 | public static extern void SetHeightmap(uint worldID, [MarshalAs(UnmanagedType.LPArray)] float[] heightMap); |
@@ -268,23 +396,6 @@ public static extern bool DestroyMesh(uint worldID, System.UInt64 meshKey); | |||
268 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 396 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
269 | public static extern bool CreateObject(uint worldID, ShapeData shapeData); | 397 | public static extern bool CreateObject(uint worldID, ShapeData shapeData); |
270 | 398 | ||
271 | /* Remove old functionality | ||
272 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
273 | public static extern void CreateLinkset(uint worldID, int objectCount, ShapeData[] shapeDatas); | ||
274 | |||
275 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
276 | public static extern void AddConstraint(uint worldID, uint id1, uint id2, | ||
277 | Vector3 frame1, Quaternion frame1rot, | ||
278 | Vector3 frame2, Quaternion frame2rot, | ||
279 | Vector3 lowLinear, Vector3 hiLinear, Vector3 lowAngular, Vector3 hiAngular); | ||
280 | |||
281 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
282 | public static extern bool RemoveConstraintByID(uint worldID, uint id1); | ||
283 | |||
284 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
285 | public static extern bool RemoveConstraint(uint worldID, uint id1, uint id2); | ||
286 | */ | ||
287 | |||
288 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 399 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
289 | public static extern Vector3 GetObjectPosition(uint WorldID, uint id); | 400 | public static extern Vector3 GetObjectPosition(uint WorldID, uint id); |
290 | 401 | ||
@@ -300,6 +411,7 @@ public static extern bool SetObjectVelocity(uint worldID, uint id, Vector3 veloc | |||
300 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 411 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
301 | public static extern bool SetObjectAngularVelocity(uint worldID, uint id, Vector3 angularVelocity); | 412 | public static extern bool SetObjectAngularVelocity(uint worldID, uint id, Vector3 angularVelocity); |
302 | 413 | ||
414 | // Set the current force acting on the object | ||
303 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 415 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
304 | public static extern bool SetObjectForce(uint worldID, uint id, Vector3 force); | 416 | public static extern bool SetObjectForce(uint worldID, uint id, Vector3 force); |
305 | 417 | ||
@@ -342,8 +454,6 @@ public static extern Vector3 RecoverFromPenetration(uint worldID, uint id); | |||
342 | public static extern void DumpBulletStatistics(); | 454 | public static extern void DumpBulletStatistics(); |
343 | 455 | ||
344 | // Log a debug message | 456 | // Log a debug message |
345 | [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | ||
346 | public delegate void DebugLogCallback([MarshalAs(UnmanagedType.LPStr)]string msg); | ||
347 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 457 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
348 | public static extern void SetDebugLogCallback(DebugLogCallback callback); | 458 | public static extern void SetDebugLogCallback(DebugLogCallback callback); |
349 | 459 | ||
@@ -358,6 +468,7 @@ public static extern void SetDebugLogCallback(DebugLogCallback callback); | |||
358 | // The names have a "2" tacked on. This will be removed as the C# code gets rebuilt | 468 | // The names have a "2" tacked on. This will be removed as the C# code gets rebuilt |
359 | // and the old code is removed. | 469 | // and the old code is removed. |
360 | 470 | ||
471 | // Functions use while converting from API1 to API2. Can be removed when totally converted. | ||
361 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 472 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
362 | public static extern IntPtr GetSimHandle2(uint worldID); | 473 | public static extern IntPtr GetSimHandle2(uint worldID); |
363 | 474 | ||
@@ -368,6 +479,7 @@ public static extern IntPtr GetBodyHandleWorldID2(uint worldID, uint id); | |||
368 | public static extern IntPtr GetBodyHandle2(IntPtr world, uint id); | 479 | public static extern IntPtr GetBodyHandle2(IntPtr world, uint id); |
369 | 480 | ||
370 | // =============================================================================== | 481 | // =============================================================================== |
482 | // Initialization and simulation | ||
371 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 483 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
372 | public static extern IntPtr Initialize2(Vector3 maxPosition, IntPtr parms, | 484 | public static extern IntPtr Initialize2(Vector3 maxPosition, IntPtr parms, |
373 | int maxCollisions, IntPtr collisionArray, | 485 | int maxCollisions, IntPtr collisionArray, |
@@ -377,7 +489,7 @@ public static extern IntPtr Initialize2(Vector3 maxPosition, IntPtr parms, | |||
377 | public static extern bool UpdateParameter2(IntPtr world, uint localID, String parm, float value); | 489 | public static extern bool UpdateParameter2(IntPtr world, uint localID, String parm, float value); |
378 | 490 | ||
379 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 491 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
380 | public static extern void SetHeightmap2(IntPtr world, float[] heightmap); | 492 | public static extern void SetHeightMap2(IntPtr world, float[] heightmap); |
381 | 493 | ||
382 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 494 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
383 | public static extern void Shutdown2(IntPtr sim); | 495 | public static extern void Shutdown2(IntPtr sim); |
@@ -392,23 +504,78 @@ public static extern int PhysicsStep2(IntPtr world, float timeStep, int maxSubSt | |||
392 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 504 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
393 | public static extern bool PushUpdate2(IntPtr obj); | 505 | public static extern bool PushUpdate2(IntPtr obj); |
394 | 506 | ||
395 | /* | 507 | // ===================================================================================== |
508 | // Mesh, hull, shape and body creation helper routines | ||
509 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
510 | public static extern IntPtr CreateMeshShape2(IntPtr world, | ||
511 | int indicesCount, [MarshalAs(UnmanagedType.LPArray)] int[] indices, | ||
512 | int verticesCount, [MarshalAs(UnmanagedType.LPArray)] float[] vertices ); | ||
513 | |||
514 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
515 | public static extern IntPtr CreateHullShape2(IntPtr world, | ||
516 | int hullCount, [MarshalAs(UnmanagedType.LPArray)] float[] hulls); | ||
517 | |||
518 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
519 | public static extern IntPtr BuildHullShape2(IntPtr world, IntPtr meshShape); | ||
520 | |||
521 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
522 | public static extern IntPtr BuildNativeShape2(IntPtr world, | ||
523 | float shapeType, float collisionMargin, Vector3 scale); | ||
524 | |||
525 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
526 | public static extern bool IsNativeShape2(IntPtr shape); | ||
527 | |||
528 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
529 | public static extern IntPtr CreateCompoundShape2(IntPtr sim); | ||
530 | |||
531 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
532 | public static extern void AddChildToCompoundShape2(IntPtr cShape, IntPtr addShape, Vector3 pos, Quaternion rot); | ||
533 | |||
534 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
535 | public static extern void RemoveChildFromCompoundShape2(IntPtr cShape, IntPtr removeShape); | ||
536 | |||
537 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
538 | public static extern IntPtr CreateBodyFromShapeAndInfo2(IntPtr sim, IntPtr shape, IntPtr constructionInfo); | ||
539 | |||
540 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
541 | public static extern bool DeleteCollisionShape2(IntPtr world, IntPtr shape); | ||
542 | |||
396 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 543 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
397 | public static extern IntPtr CreateMesh2(IntPtr world, int indicesCount, int* indices, int verticesCount, float* vertices ); | 544 | public static extern IntPtr CreateBodyFromShape2(IntPtr sim, IntPtr shape, Vector3 pos, Quaternion rot); |
398 | 545 | ||
399 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 546 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
400 | public static extern bool BuildHull2(IntPtr world, IntPtr mesh); | 547 | public static extern IntPtr CreateBodyWithDefaultMotionState2(IntPtr shape, Vector3 pos, Quaternion rot); |
401 | 548 | ||
402 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 549 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
403 | public static extern bool ReleaseHull2(IntPtr world, IntPtr mesh); | 550 | public static extern IntPtr AllocateBodyInfo2(IntPtr obj); |
404 | 551 | ||
405 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 552 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
406 | public static extern bool DestroyMesh2(IntPtr world, IntPtr mesh); | 553 | public static extern void ReleaseBodyInfo2(IntPtr obj); |
407 | 554 | ||
408 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 555 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
409 | public static extern IntPtr CreateObject2(IntPtr world, ShapeData shapeData); | 556 | public static extern void DestroyObject2(IntPtr sim, IntPtr obj); |
410 | */ | ||
411 | 557 | ||
558 | // ===================================================================================== | ||
559 | // Terrain creation and helper routines | ||
560 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
561 | public static extern IntPtr CreateHeightMapInfo2(IntPtr sim, uint id, Vector3 minCoords, Vector3 maxCoords, | ||
562 | [MarshalAs(UnmanagedType.LPArray)] float[] heightMap, float collisionMargin); | ||
563 | |||
564 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
565 | public static extern IntPtr FillHeightMapInfo2(IntPtr sim, IntPtr mapInfo, uint id, Vector3 minCoords, Vector3 maxCoords, | ||
566 | [MarshalAs(UnmanagedType.LPArray)] float[] heightMap, float collisionMargin); | ||
567 | |||
568 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
569 | public static extern bool ReleaseHeightMapInfo2(IntPtr heightMapInfo); | ||
570 | |||
571 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
572 | public static extern IntPtr CreateGroundPlaneShape2(uint id, float height, float collisionMargin); | ||
573 | |||
574 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
575 | public static extern IntPtr CreateTerrainShape2(IntPtr mapInfo); | ||
576 | |||
577 | // ===================================================================================== | ||
578 | // Constraint creation and helper routines | ||
412 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 579 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
413 | public static extern IntPtr Create6DofConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | 580 | public static extern IntPtr Create6DofConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, |
414 | Vector3 frame1loc, Quaternion frame1rot, | 581 | Vector3 frame1loc, Quaternion frame1rot, |
@@ -460,11 +627,108 @@ public static extern bool SetConstraintParam2(IntPtr constrain, ConstraintParams | |||
460 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 627 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
461 | public static extern bool DestroyConstraint2(IntPtr world, IntPtr constrain); | 628 | public static extern bool DestroyConstraint2(IntPtr world, IntPtr constrain); |
462 | 629 | ||
630 | // ===================================================================================== | ||
631 | // btCollisionWorld entries | ||
632 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
633 | public static extern void UpdateSingleAabb2(IntPtr world, IntPtr obj); | ||
634 | |||
635 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
636 | public static extern void UpdateAabbs2(IntPtr world); | ||
637 | |||
638 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
639 | public static extern bool GetForceUpdateAllAabbs2(IntPtr world); | ||
640 | |||
641 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
642 | public static extern void SetForceUpdateAllAabbs2(IntPtr world, bool force); | ||
643 | |||
644 | // ===================================================================================== | ||
645 | // btDynamicsWorld entries | ||
646 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
647 | public static extern bool AddObjectToWorld2(IntPtr world, IntPtr obj); | ||
648 | |||
649 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
650 | public static extern bool RemoveObjectFromWorld2(IntPtr world, IntPtr obj); | ||
651 | |||
652 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
653 | public static extern bool AddConstraintToWorld2(IntPtr world, IntPtr constrain, bool disableCollisionsBetweenLinkedObjects); | ||
654 | |||
655 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
656 | public static extern bool RemoveConstraintFromWorld2(IntPtr world, IntPtr constrain); | ||
657 | // ===================================================================================== | ||
658 | // btCollisionObject entries | ||
659 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
660 | public static extern Vector3 GetAnisotripicFriction2(IntPtr constrain); | ||
661 | |||
662 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
663 | public static extern Vector3 SetAnisotripicFriction2(IntPtr constrain, Vector3 frict); | ||
664 | |||
665 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
666 | public static extern bool HasAnisotripicFriction2(IntPtr constrain); | ||
667 | |||
668 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
669 | public static extern void SetContactProcessingThreshold2(IntPtr obj, float val); | ||
670 | |||
463 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 671 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
464 | public static extern Vector3 AddObjectToWorld2(IntPtr world, IntPtr obj); | 672 | public static extern float GetContactProcessingThreshold2(IntPtr obj); |
465 | 673 | ||
466 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 674 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
467 | public static extern Vector3 RemoveObjectFromWorld2(IntPtr world, IntPtr obj); | 675 | public static extern bool IsStaticObject2(IntPtr obj); |
676 | |||
677 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
678 | public static extern bool IsKinematicObject2(IntPtr obj); | ||
679 | |||
680 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
681 | public static extern bool IsStaticOrKinematicObject2(IntPtr obj); | ||
682 | |||
683 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
684 | public static extern bool HasContactResponse2(IntPtr obj); | ||
685 | |||
686 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
687 | public static extern void SetCollisionShape2(IntPtr sim, IntPtr obj, IntPtr shape); | ||
688 | |||
689 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
690 | public static extern IntPtr GetCollisionShape2(IntPtr obj); | ||
691 | |||
692 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
693 | public static extern int GetActivationState2(IntPtr obj); | ||
694 | |||
695 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
696 | public static extern void SetActivationState2(IntPtr obj, int state); | ||
697 | |||
698 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
699 | public static extern void SetDeactivationTime2(IntPtr obj, float dtime); | ||
700 | |||
701 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
702 | public static extern float GetDeactivationTime2(IntPtr obj); | ||
703 | |||
704 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
705 | public static extern void ForceActivationState2(IntPtr obj, ActivationState state); | ||
706 | |||
707 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
708 | public static extern void Activate2(IntPtr obj, bool forceActivation); | ||
709 | |||
710 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
711 | public static extern bool IsActive2(IntPtr obj); | ||
712 | |||
713 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
714 | public static extern void SetRestitution2(IntPtr obj, float val); | ||
715 | |||
716 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
717 | public static extern float GetRestitution2(IntPtr obj); | ||
718 | |||
719 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
720 | public static extern void SetFriction2(IntPtr obj, float val); | ||
721 | |||
722 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
723 | public static extern float GetFriction2(IntPtr obj); | ||
724 | |||
725 | /* Haven't defined the type 'Transform' | ||
726 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
727 | public static extern Transform GetWorldTransform2(IntPtr obj); | ||
728 | |||
729 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
730 | public static extern void setWorldTransform2(IntPtr obj, Transform trans); | ||
731 | */ | ||
468 | 732 | ||
469 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 733 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
470 | public static extern Vector3 GetPosition2(IntPtr obj); | 734 | public static extern Vector3 GetPosition2(IntPtr obj); |
@@ -473,85 +737,293 @@ public static extern Vector3 GetPosition2(IntPtr obj); | |||
473 | public static extern Quaternion GetOrientation2(IntPtr obj); | 737 | public static extern Quaternion GetOrientation2(IntPtr obj); |
474 | 738 | ||
475 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 739 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
476 | public static extern bool SetTranslation2(IntPtr obj, Vector3 position, Quaternion rotation); | 740 | public static extern void SetTranslation2(IntPtr obj, Vector3 position, Quaternion rotation); |
477 | 741 | ||
478 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 742 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
479 | public static extern bool SetVelocity2(IntPtr obj, Vector3 velocity); | 743 | public static extern IntPtr GetBroadphaseHandle2(IntPtr obj); |
480 | 744 | ||
481 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 745 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
482 | public static extern bool SetAngularVelocity2(IntPtr obj, Vector3 angularVelocity); | 746 | public static extern void SetBroadphaseHandle2(IntPtr obj, IntPtr handle); |
483 | 747 | ||
748 | /* | ||
484 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 749 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
485 | public static extern bool SetObjectForce2(IntPtr obj, Vector3 force); | 750 | public static extern Transform GetInterpolationWorldTransform2(IntPtr obj); |
486 | 751 | ||
487 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 752 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
488 | public static extern bool AddObjectForce2(IntPtr obj, Vector3 force); | 753 | public static extern void SetInterpolationWorldTransform2(IntPtr obj, Transform trans); |
754 | */ | ||
489 | 755 | ||
490 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 756 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
491 | public static extern bool SetCcdMotionThreshold2(IntPtr obj, float val); | 757 | public static extern void SetInterpolationLinearVelocity2(IntPtr obj, Vector3 vel); |
492 | 758 | ||
493 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 759 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
494 | public static extern bool SetCcdSweepSphereRadius2(IntPtr obj, float val); | 760 | public static extern void SetInterpolationAngularVelocity2(IntPtr obj, Vector3 vel); |
495 | 761 | ||
496 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 762 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
497 | public static extern bool SetDamping2(IntPtr obj, float lin_damping, float ang_damping); | 763 | public static extern void SetInterpolationVelocity2(IntPtr obj, Vector3 linearVel, Vector3 angularVel); |
498 | 764 | ||
499 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 765 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
500 | public static extern bool SetDeactivationTime2(IntPtr obj, float val); | 766 | public static extern float GetHitFraction2(IntPtr obj); |
501 | 767 | ||
502 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 768 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
503 | public static extern bool SetSleepingThresholds2(IntPtr obj, float lin_threshold, float ang_threshold); | 769 | public static extern void SetHitFraction2(IntPtr obj, float val); |
504 | 770 | ||
505 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 771 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
506 | public static extern bool SetContactProcessingThreshold2(IntPtr obj, float val); | 772 | public static extern CollisionFlags GetCollisionFlags2(IntPtr obj); |
507 | 773 | ||
508 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 774 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
509 | public static extern bool SetFriction2(IntPtr obj, float val); | 775 | public static extern CollisionFlags SetCollisionFlags2(IntPtr obj, CollisionFlags flags); |
510 | 776 | ||
511 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 777 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
512 | public static extern bool SetRestitution2(IntPtr obj, float val); | 778 | public static extern CollisionFlags AddToCollisionFlags2(IntPtr obj, CollisionFlags flags); |
513 | 779 | ||
514 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 780 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
515 | public static extern bool SetLinearVelocity2(IntPtr obj, Vector3 val); | 781 | public static extern CollisionFlags RemoveFromCollisionFlags2(IntPtr obj, CollisionFlags flags); |
516 | 782 | ||
517 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 783 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
518 | public static extern bool SetInterpolation2(IntPtr obj, Vector3 lin, Vector3 ang); | 784 | public static extern float GetCcdMotionThreshold2(IntPtr obj); |
519 | 785 | ||
520 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 786 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
521 | public static extern CollisionFlags GetCollisionFlags2(IntPtr obj); | 787 | public static extern void SetCcdMotionThreshold2(IntPtr obj, float val); |
788 | |||
789 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
790 | public static extern float GetCcdSweepSphereRadius2(IntPtr obj); | ||
791 | |||
792 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
793 | public static extern void SetCcdSweepSphereRadius2(IntPtr obj, float val); | ||
794 | |||
795 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
796 | public static extern IntPtr GetUserPointer2(IntPtr obj); | ||
797 | |||
798 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
799 | public static extern void SetUserPointer2(IntPtr obj, IntPtr val); | ||
800 | |||
801 | // ===================================================================================== | ||
802 | // btRigidBody entries | ||
803 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
804 | public static extern void ApplyGravity2(IntPtr obj); | ||
805 | |||
806 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
807 | public static extern void SetGravity2(IntPtr obj, Vector3 val); | ||
808 | |||
809 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
810 | public static extern Vector3 GetGravity2(IntPtr obj); | ||
811 | |||
812 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
813 | public static extern void SetDamping2(IntPtr obj, float lin_damping, float ang_damping); | ||
814 | |||
815 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
816 | public static extern float GetLinearDamping2(IntPtr obj); | ||
817 | |||
818 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
819 | public static extern float GetAngularDamping2(IntPtr obj); | ||
820 | |||
821 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
822 | public static extern float GetLinearSleepingThreshold2(IntPtr obj); | ||
823 | |||
824 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
825 | public static extern float GetAngularSleepingThreshold2(IntPtr obj); | ||
826 | |||
827 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
828 | public static extern void ApplyDamping2(IntPtr obj, float timeStep); | ||
829 | |||
830 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
831 | public static extern void SetMassProps2(IntPtr obj, float mass, Vector3 inertia); | ||
832 | |||
833 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
834 | public static extern Vector3 GetLinearFactor2(IntPtr obj); | ||
835 | |||
836 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
837 | public static extern void SetLinearFactor2(IntPtr obj, Vector3 factor); | ||
838 | |||
839 | /* | ||
840 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
841 | public static extern void SetCenterOfMassTransform2(IntPtr obj, Transform trans); | ||
842 | */ | ||
843 | |||
844 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
845 | public static extern void SetCenterOfMassByPosRot2(IntPtr obj, Vector3 pos, Quaternion rot); | ||
846 | |||
847 | // Add a force to the object as if its mass is one. | ||
848 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
849 | public static extern void ApplyCentralForce2(IntPtr obj, Vector3 force); | ||
850 | |||
851 | // Set the force being applied to the object as if its mass is one. | ||
852 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
853 | public static extern void SetObjectForce2(IntPtr obj, Vector3 force); | ||
854 | |||
855 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
856 | public static extern Vector3 GetTotalForce2(IntPtr obj); | ||
857 | |||
858 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
859 | public static extern Vector3 GetTotalTorque2(IntPtr obj); | ||
860 | |||
861 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
862 | public static extern Vector3 GetInvInertiaDiagLocal2(IntPtr obj); | ||
863 | |||
864 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
865 | public static extern void SetInvInertiaDiagLocal2(IntPtr obj, Vector3 inert); | ||
866 | |||
867 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
868 | public static extern void SetSleepingThresholds2(IntPtr obj, float lin_threshold, float ang_threshold); | ||
869 | |||
870 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
871 | public static extern void ApplyTorque2(IntPtr obj, Vector3 torque); | ||
872 | |||
873 | // Apply force at the given point. Will add torque to the object. | ||
874 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
875 | public static extern void ApplyForce2(IntPtr obj, Vector3 force, Vector3 pos); | ||
876 | |||
877 | // Apply impulse to the object. Same as "ApplycentralForce" but force scaled by object's mass. | ||
878 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
879 | public static extern void ApplyCentralImpulse2(IntPtr obj, Vector3 imp); | ||
880 | |||
881 | // Apply impulse to the object's torque. Force is scaled by object's mass. | ||
882 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
883 | public static extern void ApplyTorqueImpulse2(IntPtr obj, Vector3 imp); | ||
884 | |||
885 | // Apply impulse at the point given. For is scaled by object's mass and effects both linear and angular forces. | ||
886 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
887 | public static extern void ApplyImpulse2(IntPtr obj, Vector3 imp, Vector3 pos); | ||
888 | |||
889 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
890 | public static extern void ClearForces2(IntPtr obj); | ||
891 | |||
892 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
893 | public static extern void ClearAllForces2(IntPtr obj); | ||
894 | |||
895 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
896 | public static extern void UpdateInertiaTensor2(IntPtr obj); | ||
897 | |||
898 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
899 | public static extern Vector3 GetCenterOfMassPosition2(IntPtr obj); | ||
900 | |||
901 | /* | ||
902 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
903 | public static extern Transform GetCenterOfMassTransform2(IntPtr obj); | ||
904 | */ | ||
905 | |||
906 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
907 | public static extern Vector3 GetLinearVelocity2(IntPtr obj); | ||
908 | |||
909 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
910 | public static extern Vector3 GetAngularVelocity2(IntPtr obj); | ||
911 | |||
912 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
913 | public static extern void SetLinearVelocity2(IntPtr obj, Vector3 val); | ||
914 | |||
915 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
916 | public static extern void SetAngularVelocity2(IntPtr obj, Vector3 angularVelocity); | ||
917 | |||
918 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
919 | public static extern Vector3 GetVelocityInLocalPoint2(IntPtr obj, Vector3 pos); | ||
920 | |||
921 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
922 | public static extern void Translate2(IntPtr obj, Vector3 trans); | ||
923 | |||
924 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
925 | public static extern void UpdateDeactivation2(IntPtr obj, float timeStep); | ||
926 | |||
927 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
928 | public static extern bool WantsSleeping2(IntPtr obj); | ||
929 | |||
930 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
931 | public static extern void SetAngularFactor2(IntPtr obj, float factor); | ||
932 | |||
933 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
934 | public static extern void SetAngularFactorV2(IntPtr obj, Vector3 factor); | ||
935 | |||
936 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
937 | public static extern Vector3 GetAngularFactor2(IntPtr obj); | ||
938 | |||
939 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
940 | public static extern bool IsInWorld2(IntPtr obj); | ||
941 | |||
942 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
943 | public static extern void AddConstraintRef2(IntPtr obj, IntPtr constrain); | ||
944 | |||
945 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
946 | public static extern void RemoveConstraintRef2(IntPtr obj, IntPtr constrain); | ||
947 | |||
948 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
949 | public static extern IntPtr GetConstraintRef2(IntPtr obj, int index); | ||
950 | |||
951 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
952 | public static extern int GetNumConstraintRefs2(IntPtr obj); | ||
953 | |||
954 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
955 | public static extern Vector3 GetDeltaLinearVelocity2(IntPtr obj); | ||
956 | |||
957 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
958 | public static extern Vector3 GetDeltaAngularVelocity2(IntPtr obj); | ||
959 | |||
960 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
961 | public static extern Vector3 GetPushVelocity2(IntPtr obj); | ||
962 | |||
963 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
964 | public static extern Vector3 GetTurnVelocity2(IntPtr obj); | ||
965 | |||
966 | // ===================================================================================== | ||
967 | // btCollisionShape entries | ||
968 | |||
969 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
970 | public static extern float GetAngularMotionDisc2(IntPtr shape); | ||
971 | |||
972 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
973 | public static extern float GetContactBreakingThreshold2(IntPtr shape, float defaultFactor); | ||
974 | |||
975 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
976 | public static extern bool IsPolyhedral2(IntPtr shape); | ||
977 | |||
978 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
979 | public static extern bool IsConvex2d2(IntPtr shape); | ||
980 | |||
981 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
982 | public static extern bool IsConvex2(IntPtr shape); | ||
983 | |||
984 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
985 | public static extern bool IsNonMoving2(IntPtr shape); | ||
986 | |||
987 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
988 | public static extern bool IsConcave2(IntPtr shape); | ||
989 | |||
990 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
991 | public static extern bool IsCompound2(IntPtr shape); | ||
522 | 992 | ||
523 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 993 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
524 | public static extern IntPtr SetCollisionFlags2(IntPtr obj, CollisionFlags flags); | 994 | public static extern bool IsSoftBody2(IntPtr shape); |
525 | 995 | ||
526 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 996 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
527 | public static extern IntPtr AddToCollisionFlags2(IntPtr obj, CollisionFlags flags); | 997 | public static extern bool IsInfinite2(IntPtr shape); |
528 | 998 | ||
529 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 999 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
530 | public static extern IntPtr RemoveFromCollisionFlags2(IntPtr obj, CollisionFlags flags); | 1000 | public static extern void SetLocalScaling2(IntPtr shape, Vector3 scale); |
531 | 1001 | ||
532 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1002 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
533 | public static extern bool SetMassProps2(IntPtr obj, float mass, Vector3 inertia); | 1003 | public static extern Vector3 GetLocalScaling2(IntPtr shape); |
534 | 1004 | ||
535 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1005 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
536 | public static extern bool UpdateInertiaTensor2(IntPtr obj); | 1006 | public static extern Vector3 CalculateLocalInertia2(IntPtr shape, float mass); |
537 | 1007 | ||
538 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1008 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
539 | public static extern bool SetGravity2(IntPtr obj, Vector3 val); | 1009 | public static extern int GetShapeType2(IntPtr shape); |
540 | 1010 | ||
541 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1011 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
542 | public static extern IntPtr ClearForces2(IntPtr obj); | 1012 | public static extern void SetMargin2(IntPtr shape, float val); |
543 | 1013 | ||
544 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1014 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
545 | public static extern IntPtr ClearAllForces2(IntPtr obj); | 1015 | public static extern float GetMargin2(IntPtr shape); |
546 | 1016 | ||
547 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1017 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
548 | public static extern bool SetMargin2(IntPtr obj, float val); | 1018 | public static extern void SetCollisionFilterMask(IntPtr shape, uint filter, uint mask); |
549 | 1019 | ||
1020 | // ===================================================================================== | ||
1021 | // Debugging | ||
550 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1022 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
551 | public static extern bool UpdateSingleAabb2(IntPtr world, IntPtr obj); | 1023 | public static extern void DumpRigidBody2(IntPtr sim, IntPtr collisionObject); |
552 | 1024 | ||
553 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1025 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
554 | public static extern bool DestroyObject2(IntPtr world, uint id); | 1026 | public static extern void DumpMapInfo2(IntPtr sim, IntPtr manInfo); |
555 | 1027 | ||
556 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1028 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
557 | public static extern void DumpPhysicsStatistics2(IntPtr sim); | 1029 | public static extern void DumpPhysicsStatistics2(IntPtr sim); |