diff options
author | Robert Adams | 2013-02-21 08:52:11 -0800 |
---|---|---|
committer | Robert Adams | 2013-02-21 08:52:11 -0800 |
commit | efb5da0aa672551a8a68e16066f3dd3991f75da4 (patch) | |
tree | 713c0f254a512f18e3025afc0b8d0621bade92c7 /OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |
parent | Add a method to IStatsCollector for returning stats as an OSDMap. (diff) | |
download | opensim-SC_OLD-efb5da0aa672551a8a68e16066f3dd3991f75da4.zip opensim-SC_OLD-efb5da0aa672551a8a68e16066f3dd3991f75da4.tar.gz opensim-SC_OLD-efb5da0aa672551a8a68e16066f3dd3991f75da4.tar.bz2 opensim-SC_OLD-efb5da0aa672551a8a68e16066f3dd3991f75da4.tar.xz |
BulletSim: add OutOfBounds logic and some position sanity checking
to eliminate some of the "cannot find terrain height" warning messages.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSParam.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index c2a9671..dc57b67 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -46,6 +46,8 @@ public static class BSParam | |||
46 | public static float MeshMegaPrimThreshold { get; private set; } | 46 | public static float MeshMegaPrimThreshold { get; private set; } |
47 | public static float SculptLOD { get; private set; } | 47 | public static float SculptLOD { get; private set; } |
48 | 48 | ||
49 | public static int CrossingFailuresBeforeOutOfBounds { get; private set; } | ||
50 | |||
49 | public static float MinimumObjectMass { get; private set; } | 51 | public static float MinimumObjectMass { get; private set; } |
50 | public static float MaximumObjectMass { get; private set; } | 52 | public static float MaximumObjectMass { get; private set; } |
51 | public static float MaxLinearVelocity { get; private set; } | 53 | public static float MaxLinearVelocity { get; private set; } |
@@ -73,23 +75,23 @@ public static class BSParam | |||
73 | public static float TerrainRestitution { get; private set; } | 75 | public static float TerrainRestitution { get; private set; } |
74 | public static float TerrainCollisionMargin { get; private set; } | 76 | public static float TerrainCollisionMargin { get; private set; } |
75 | 77 | ||
76 | public static float DefaultFriction; | 78 | public static float DefaultFriction { get; private set; } |
77 | public static float DefaultDensity; | 79 | public static float DefaultDensity { get; private set; } |
78 | public static float DefaultRestitution; | 80 | public static float DefaultRestitution { get; private set; } |
79 | public static float CollisionMargin; | 81 | public static float CollisionMargin { get; private set; } |
80 | public static float Gravity; | 82 | public static float Gravity { get; private set; } |
81 | 83 | ||
82 | // Physics Engine operation | 84 | // Physics Engine operation |
83 | public static float MaxPersistantManifoldPoolSize; | 85 | public static float MaxPersistantManifoldPoolSize { get; private set; } |
84 | public static float MaxCollisionAlgorithmPoolSize; | 86 | public static float MaxCollisionAlgorithmPoolSize { get; private set; } |
85 | public static bool ShouldDisableContactPoolDynamicAllocation; | 87 | public static bool ShouldDisableContactPoolDynamicAllocation { get; private set; } |
86 | public static bool ShouldForceUpdateAllAabbs; | 88 | public static bool ShouldForceUpdateAllAabbs { get; private set; } |
87 | public static bool ShouldRandomizeSolverOrder; | 89 | public static bool ShouldRandomizeSolverOrder { get; private set; } |
88 | public static bool ShouldSplitSimulationIslands; | 90 | public static bool ShouldSplitSimulationIslands { get; private set; } |
89 | public static bool ShouldEnableFrictionCaching; | 91 | public static bool ShouldEnableFrictionCaching { get; private set; } |
90 | public static float NumberOfSolverIterations; | 92 | public static float NumberOfSolverIterations { get; private set; } |
91 | public static bool UseSingleSidedMeshes; | 93 | public static bool UseSingleSidedMeshes { get; private set; } |
92 | public static float GlobalContactBreakingThreshold; | 94 | public static float GlobalContactBreakingThreshold { get; private set; } |
93 | 95 | ||
94 | // Avatar parameters | 96 | // Avatar parameters |
95 | public static float AvatarFriction { get; private set; } | 97 | public static float AvatarFriction { get; private set; } |
@@ -118,6 +120,7 @@ public static class BSParam | |||
118 | public static float VehicleGroundGravityFudge { get; private set; } | 120 | public static float VehicleGroundGravityFudge { get; private set; } |
119 | public static bool VehicleDebuggingEnabled { get; private set; } | 121 | public static bool VehicleDebuggingEnabled { get; private set; } |
120 | 122 | ||
123 | // Linkset implementation parameters | ||
121 | public static float LinksetImplementation { get; private set; } | 124 | public static float LinksetImplementation { get; private set; } |
122 | public static bool LinkConstraintUseFrameOffset { get; private set; } | 125 | public static bool LinkConstraintUseFrameOffset { get; private set; } |
123 | public static bool LinkConstraintEnableTransMotor { get; private set; } | 126 | public static bool LinkConstraintEnableTransMotor { get; private set; } |
@@ -282,6 +285,11 @@ public static class BSParam | |||
282 | (s) => { return ShouldRemoveZeroWidthTriangles; }, | 285 | (s) => { return ShouldRemoveZeroWidthTriangles; }, |
283 | (s,v) => { ShouldRemoveZeroWidthTriangles = v; } ), | 286 | (s,v) => { ShouldRemoveZeroWidthTriangles = v; } ), |
284 | 287 | ||
288 | new ParameterDefn<int>("CrossingFailuresBeforeOutOfBounds", "How forgiving we are about getting into adjactent regions", | ||
289 | 5, | ||
290 | (s) => { return CrossingFailuresBeforeOutOfBounds; }, | ||
291 | (s,v) => { CrossingFailuresBeforeOutOfBounds = v; } ), | ||
292 | |||
285 | new ParameterDefn<float>("MeshLevelOfDetail", "Level of detail to render meshes (32, 16, 8 or 4. 32=most detailed)", | 293 | new ParameterDefn<float>("MeshLevelOfDetail", "Level of detail to render meshes (32, 16, 8 or 4. 32=most detailed)", |
286 | 32f, | 294 | 32f, |
287 | (s) => { return MeshLOD; }, | 295 | (s) => { return MeshLOD; }, |
@@ -695,6 +703,10 @@ public static class BSParam | |||
695 | } | 703 | } |
696 | } | 704 | } |
697 | 705 | ||
706 | // ===================================================================== | ||
707 | // ===================================================================== | ||
708 | // There are parameters that, when set, cause things to happen in the physics engine. | ||
709 | // This causes the broadphase collision cache to be cleared. | ||
698 | private static void ResetBroadphasePoolTainted(BSScene pPhysScene, float v) | 710 | private static void ResetBroadphasePoolTainted(BSScene pPhysScene, float v) |
699 | { | 711 | { |
700 | BSScene physScene = pPhysScene; | 712 | BSScene physScene = pPhysScene; |
@@ -704,6 +716,7 @@ public static class BSParam | |||
704 | }); | 716 | }); |
705 | } | 717 | } |
706 | 718 | ||
719 | // This causes the constraint solver cache to be cleared and reset. | ||
707 | private static void ResetConstraintSolverTainted(BSScene pPhysScene, float v) | 720 | private static void ResetConstraintSolverTainted(BSScene pPhysScene, float v) |
708 | { | 721 | { |
709 | BSScene physScene = pPhysScene; | 722 | BSScene physScene = pPhysScene; |