diff options
author | Melanie | 2013-11-08 17:55:01 +0000 |
---|---|---|
committer | Melanie | 2013-11-08 17:55:01 +0000 |
commit | 91b70bf3fe382729a94d9a0855be8b07ef67c360 (patch) | |
tree | 3e42c4c536da6c7eaaf1a72ecdbd2a24de4d1658 /OpenSim/Region/Physics/BulletSPlugin | |
parent | Merge branch 'master' into careminster (diff) | |
parent | If the LSL state_entry() event definition contains any parameters, then gener... (diff) | |
download | opensim-SC_OLD-91b70bf3fe382729a94d9a0855be8b07ef67c360.zip opensim-SC_OLD-91b70bf3fe382729a94d9a0855be8b07ef67c360.tar.gz opensim-SC_OLD-91b70bf3fe382729a94d9a0855be8b07ef67c360.tar.bz2 opensim-SC_OLD-91b70bf3fe382729a94d9a0855be8b07ef67c360.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin')
5 files changed, 20 insertions, 14 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSApiTemplate.cs b/OpenSim/Region/Physics/BulletSPlugin/BSApiTemplate.cs index f7dd158..be6f152 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSApiTemplate.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSApiTemplate.cs | |||
@@ -249,7 +249,7 @@ public enum CollisionFlags : uint | |||
249 | BS_VEHICLE_COLLISIONS = 1 << 12, // return collisions for vehicle ground checking | 249 | BS_VEHICLE_COLLISIONS = 1 << 12, // return collisions for vehicle ground checking |
250 | BS_RETURN_ROOT_COMPOUND_SHAPE = 1 << 13, // return the pos/rot of the root shape in a compound shape | 250 | BS_RETURN_ROOT_COMPOUND_SHAPE = 1 << 13, // return the pos/rot of the root shape in a compound shape |
251 | BS_NONE = 0, | 251 | BS_NONE = 0, |
252 | BS_ALL = 0xFFFFFFFF | 252 | BS_ALL = 0x7FFF // collision flags are a signed short |
253 | }; | 253 | }; |
254 | 254 | ||
255 | // Values f collisions groups and masks | 255 | // Values f collisions groups and masks |
@@ -265,14 +265,14 @@ public enum CollisionFilterGroups : uint | |||
265 | BDebrisGroup = 1 << 3, // 0008 | 265 | BDebrisGroup = 1 << 3, // 0008 |
266 | BSensorTrigger = 1 << 4, // 0010 | 266 | BSensorTrigger = 1 << 4, // 0010 |
267 | BCharacterGroup = 1 << 5, // 0020 | 267 | BCharacterGroup = 1 << 5, // 0020 |
268 | BAllGroup = 0x000FFFFF, | 268 | BAllGroup = 0x0007FFF, // collision flags are a signed short |
269 | // Filter groups defined by BulletSim | 269 | // Filter groups defined by BulletSim |
270 | BGroundPlaneGroup = 1 << 10, // 0400 | 270 | BGroundPlaneGroup = 1 << 8, // 0400 |
271 | BTerrainGroup = 1 << 11, // 0800 | 271 | BTerrainGroup = 1 << 9, // 0800 |
272 | BRaycastGroup = 1 << 12, // 1000 | 272 | BRaycastGroup = 1 << 10, // 1000 |
273 | BSolidGroup = 1 << 13, // 2000 | 273 | BSolidGroup = 1 << 11, // 2000 |
274 | // BLinksetGroup = xx // a linkset proper is either static or dynamic | 274 | // BLinksetGroup = xx // a linkset proper is either static or dynamic |
275 | BLinksetChildGroup = 1 << 14, // 4000 | 275 | BLinksetChildGroup = 1 << 12, // 4000 |
276 | }; | 276 | }; |
277 | 277 | ||
278 | // CFM controls the 'hardness' of the constraint. 0=fixed, 0..1=violatable. Default=0 | 278 | // CFM controls the 'hardness' of the constraint. 0=fixed, 0..1=violatable. Default=0 |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index 43aa63e..834228e 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -120,6 +120,7 @@ public static class BSParam | |||
120 | public static float NumberOfSolverIterations { get; private set; } | 120 | public static float NumberOfSolverIterations { get; private set; } |
121 | public static bool UseSingleSidedMeshes { get; private set; } | 121 | public static bool UseSingleSidedMeshes { get; private set; } |
122 | public static float GlobalContactBreakingThreshold { get; private set; } | 122 | public static float GlobalContactBreakingThreshold { get; private set; } |
123 | public static float PhysicsUnmanLoggingFrames { get; private set; } | ||
123 | 124 | ||
124 | // Avatar parameters | 125 | // Avatar parameters |
125 | public static float AvatarFriction { get; private set; } | 126 | public static float AvatarFriction { get; private set; } |
@@ -671,6 +672,10 @@ public static class BSParam | |||
671 | 0f, | 672 | 0f, |
672 | (s) => { return GlobalContactBreakingThreshold; }, | 673 | (s) => { return GlobalContactBreakingThreshold; }, |
673 | (s,v) => { GlobalContactBreakingThreshold = v; s.UnmanagedParams[0].globalContactBreakingThreshold = v; } ), | 674 | (s,v) => { GlobalContactBreakingThreshold = v; s.UnmanagedParams[0].globalContactBreakingThreshold = v; } ), |
675 | new ParameterDefn<float>("PhysicsUnmanLoggingFrames", "If non-zero, frames between output of detailed unmanaged physics statistics", | ||
676 | 0f, | ||
677 | (s) => { return PhysicsUnmanLoggingFrames; }, | ||
678 | (s,v) => { PhysicsUnmanLoggingFrames = v; s.UnmanagedParams[0].physicsLoggingFrames = v; } ), | ||
674 | 679 | ||
675 | new ParameterDefn<int>("CSHullMaxDepthSplit", "CS impl: max depth to split for hull. 1-10 but > 7 is iffy", | 680 | new ParameterDefn<int>("CSHullMaxDepthSplit", "CS impl: max depth to split for hull. 1-10 but > 7 is iffy", |
676 | 7 ), | 681 | 7 ), |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSTerrainHeightmap.cs b/OpenSim/Region/Physics/BulletSPlugin/BSTerrainHeightmap.cs index c7deb4e..8888d6d 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSTerrainHeightmap.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSTerrainHeightmap.cs | |||
@@ -112,15 +112,14 @@ public sealed class BSTerrainHeightmap : BSTerrainPhys | |||
112 | m_physicsScene.PE.SetRestitution(m_mapInfo.terrainBody, BSParam.TerrainRestitution); | 112 | m_physicsScene.PE.SetRestitution(m_mapInfo.terrainBody, BSParam.TerrainRestitution); |
113 | m_physicsScene.PE.SetCollisionFlags(m_mapInfo.terrainBody, CollisionFlags.CF_STATIC_OBJECT); | 113 | m_physicsScene.PE.SetCollisionFlags(m_mapInfo.terrainBody, CollisionFlags.CF_STATIC_OBJECT); |
114 | 114 | ||
115 | m_mapInfo.terrainBody.collisionType = CollisionType.Terrain; | ||
116 | |||
115 | // Return the new terrain to the world of physical objects | 117 | // Return the new terrain to the world of physical objects |
116 | m_physicsScene.PE.AddObjectToWorld(m_physicsScene.World, m_mapInfo.terrainBody); | 118 | m_physicsScene.PE.AddObjectToWorld(m_physicsScene.World, m_mapInfo.terrainBody); |
117 | 119 | ||
118 | // redo its bounding box now that it is in the world | 120 | // redo its bounding box now that it is in the world |
119 | m_physicsScene.PE.UpdateSingleAabb(m_physicsScene.World, m_mapInfo.terrainBody); | 121 | m_physicsScene.PE.UpdateSingleAabb(m_physicsScene.World, m_mapInfo.terrainBody); |
120 | 122 | ||
121 | m_mapInfo.terrainBody.collisionType = CollisionType.Terrain; | ||
122 | m_mapInfo.terrainBody.ApplyCollisionMask(m_physicsScene); | ||
123 | |||
124 | // Make it so the terrain will not move or be considered for movement. | 123 | // Make it so the terrain will not move or be considered for movement. |
125 | m_physicsScene.PE.ForceActivationState(m_mapInfo.terrainBody, ActivationState.DISABLE_SIMULATION); | 124 | m_physicsScene.PE.ForceActivationState(m_mapInfo.terrainBody, ActivationState.DISABLE_SIMULATION); |
126 | 125 | ||
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs b/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs index c016eed..441d2d3 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs | |||
@@ -138,13 +138,14 @@ public sealed class BSTerrainManager : IDisposable | |||
138 | m_groundPlane = m_physicsScene.PE.CreateBodyWithDefaultMotionState(groundPlaneShape, | 138 | m_groundPlane = m_physicsScene.PE.CreateBodyWithDefaultMotionState(groundPlaneShape, |
139 | BSScene.GROUNDPLANE_ID, Vector3.Zero, Quaternion.Identity); | 139 | BSScene.GROUNDPLANE_ID, Vector3.Zero, Quaternion.Identity); |
140 | 140 | ||
141 | // Everything collides with the ground plane. | ||
142 | m_groundPlane.collisionType = CollisionType.Groundplane; | ||
143 | |||
141 | m_physicsScene.PE.AddObjectToWorld(m_physicsScene.World, m_groundPlane); | 144 | m_physicsScene.PE.AddObjectToWorld(m_physicsScene.World, m_groundPlane); |
142 | m_physicsScene.PE.UpdateSingleAabb(m_physicsScene.World, m_groundPlane); | 145 | m_physicsScene.PE.UpdateSingleAabb(m_physicsScene.World, m_groundPlane); |
146 | |||
143 | // Ground plane does not move | 147 | // Ground plane does not move |
144 | m_physicsScene.PE.ForceActivationState(m_groundPlane, ActivationState.DISABLE_SIMULATION); | 148 | m_physicsScene.PE.ForceActivationState(m_groundPlane, ActivationState.DISABLE_SIMULATION); |
145 | // Everything collides with the ground plane. | ||
146 | m_groundPlane.collisionType = CollisionType.Groundplane; | ||
147 | m_groundPlane.ApplyCollisionMask(m_physicsScene); | ||
148 | 149 | ||
149 | BSTerrainPhys initialTerrain = new BSTerrainHeightmap(m_physicsScene, Vector3.Zero, BSScene.TERRAIN_ID, DefaultRegionSize); | 150 | BSTerrainPhys initialTerrain = new BSTerrainHeightmap(m_physicsScene, Vector3.Zero, BSScene.TERRAIN_ID, DefaultRegionSize); |
150 | lock (m_terrains) | 151 | lock (m_terrains) |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs b/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs index d5060e3..971ff9f 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs | |||
@@ -235,7 +235,8 @@ public static Dictionary<CollisionType, CollisionTypeFilterGroup> CollisionTypeM | |||
235 | { CollisionType.Groundplane, | 235 | { CollisionType.Groundplane, |
236 | new CollisionTypeFilterGroup(CollisionType.Groundplane, | 236 | new CollisionTypeFilterGroup(CollisionType.Groundplane, |
237 | (uint)CollisionFilterGroups.BGroundPlaneGroup, | 237 | (uint)CollisionFilterGroups.BGroundPlaneGroup, |
238 | (uint)CollisionFilterGroups.BAllGroup) | 238 | // (uint)CollisionFilterGroups.BAllGroup) |
239 | (uint)(CollisionFilterGroups.BCharacterGroup | CollisionFilterGroups.BSolidGroup)) | ||
239 | }, | 240 | }, |
240 | { CollisionType.Terrain, | 241 | { CollisionType.Terrain, |
241 | new CollisionTypeFilterGroup(CollisionType.Terrain, | 242 | new CollisionTypeFilterGroup(CollisionType.Terrain, |