diff options
author | Dan Lake | 2011-07-22 10:22:21 -0700 |
---|---|---|
committer | Dan Lake | 2011-07-22 10:22:21 -0700 |
commit | fa696c2eb24d80462ac28ff69b497c452a2eb00d (patch) | |
tree | a9c6be19df834d4d53eeff7dec267b75d4c7bacb /OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs | |
parent | Merge branch 'master' into bulletsim (diff) | |
download | opensim-SC_OLD-fa696c2eb24d80462ac28ff69b497c452a2eb00d.zip opensim-SC_OLD-fa696c2eb24d80462ac28ff69b497c452a2eb00d.tar.gz opensim-SC_OLD-fa696c2eb24d80462ac28ff69b497c452a2eb00d.tar.bz2 opensim-SC_OLD-fa696c2eb24d80462ac28ff69b497c452a2eb00d.tar.xz |
Pass collisions and updates in pinned memory (saves marshaling).
Fix folding feet by using collision normals.
Add constraint specification.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs b/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs index b2bc0d7..ace8158 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs | |||
@@ -78,7 +78,13 @@ public struct RaycastHit | |||
78 | public float Fraction; | 78 | public float Fraction; |
79 | public Vector3 Normal; | 79 | public Vector3 Normal; |
80 | } | 80 | } |
81 | 81 | public struct CollisionDesc | |
82 | { | ||
83 | public uint aID; | ||
84 | public uint bID; | ||
85 | public Vector3 point; | ||
86 | public Vector3 normal; | ||
87 | } | ||
82 | public struct EntityProperties | 88 | public struct EntityProperties |
83 | { | 89 | { |
84 | public uint ID; | 90 | public uint ID; |
@@ -92,7 +98,8 @@ public struct EntityProperties | |||
92 | static class BulletSimAPI { | 98 | static class BulletSimAPI { |
93 | 99 | ||
94 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 100 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
95 | public static extern uint Initialize(Vector3 maxPosition); | 101 | public static extern uint Initialize(Vector3 maxPosition, int maxCollisions, IntPtr collisionArray, |
102 | int maxUpdates, IntPtr updateArray); | ||
96 | 103 | ||
97 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 104 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
98 | public static extern void SetHeightmap(uint worldID, [MarshalAs(UnmanagedType.LPArray)] float[] heightMap); | 105 | public static extern void SetHeightmap(uint worldID, [MarshalAs(UnmanagedType.LPArray)] float[] heightMap); |
@@ -124,7 +131,12 @@ public static extern void CreateLinkset(uint worldID, int objectCount, ShapeData | |||
124 | 131 | ||
125 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 132 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
126 | public static extern void AddConstraint(uint worldID, uint id1, uint id2, | 133 | public static extern void AddConstraint(uint worldID, uint id1, uint id2, |
127 | Vector3 frame1, Vector3 frame2, Vector3 lowLinear, Vector3 hiLinear, Vector3 lowAngular, Vector3 hiAngular); | 134 | Vector3 frame1, Quaternion frame1rot, |
135 | Vector3 frame2, Quaternion frame2rot, | ||
136 | Vector3 lowLinear, Vector3 hiLinear, Vector3 lowAngular, Vector3 hiAngular); | ||
137 | |||
138 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
139 | public static extern bool RemoveConstraintByID(uint worldID, uint id1); | ||
128 | 140 | ||
129 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 141 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
130 | public static extern bool RemoveConstraint(uint worldID, uint id1, uint id2); | 142 | public static extern bool RemoveConstraint(uint worldID, uint id1, uint id2); |