From 8ae7dc628b2681b02c43a5acd1e1bdf4f33b1f3e Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 20 Jul 2008 15:19:26 +0000 Subject: Make the max sizes of physical and nonphysical prims configurable in OpenSim.ini Defaulted to 65536 and 10, respectively --- OpenSim/Region/Environment/Scenes/Scene.cs | 16 ++++- .../Region/Environment/Scenes/SceneObjectGroup.cs | 72 +++++++++++----------- 2 files changed, 51 insertions(+), 37 deletions(-) (limited to 'OpenSim/Region/Environment') diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 0ab729d..f602e9f 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -88,6 +88,8 @@ namespace OpenSim.Region.Environment.Scenes /// Are we applying physics to any of the prims in this scene? /// public bool m_physicalPrim; + public float m_maxNonphys = 65536; + public float m_maxPhys = 10; public bool m_seeIntoRegionFromNeighbor; public int MaxUndoCount = 5; @@ -308,6 +310,18 @@ namespace OpenSim.Region.Environment.Scenes m_simulatorVersion = simulatorVersion + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() + " PhysPrim:" + m_physicalPrim.ToString(); + + try + { + IConfig startupConfig = m_config.Configs["Startup"]; + m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", 65536.0f); + m_maxPhys = startupConfig.GetFloat("PhysicalPrimMax", 10.0f); + } + catch (Exception) + { + m_log.Warn("Failed to load StartupConfig"); + } + } #endregion @@ -1146,7 +1160,7 @@ namespace OpenSim.Region.Environment.Scenes } catch (Exception) { - m_log.Warn("Failed to load StarupConfg"); + m_log.Warn("Failed to load StartupConfig"); } if (drawPrimVolume) diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 82e395d..c2ce9d8 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -2131,12 +2131,12 @@ namespace OpenSim.Region.Environment.Scenes /// public void Resize(LLVector3 scale, uint localID) { - if(scale.X > 65536.0f) - scale.X = 65536.0f; - if(scale.Y > 65536.0f) - scale.Y = 65536.0f; - if(scale.Z > 65536.0f) - scale.Z = 65536.0f; + if(scale.X > m_scene.m_maxNonphys) + scale.X = m_scene.m_maxNonphys; + if(scale.Y > m_scene.m_maxNonphys) + scale.Y = m_scene.m_maxNonphys; + if(scale.Z > m_scene.m_maxNonphys) + scale.Z = m_scene.m_maxNonphys; SceneObjectPart part = GetChildPart(localID); if (part != null) @@ -2146,12 +2146,12 @@ namespace OpenSim.Region.Environment.Scenes { if(part.PhysActor.IsPhysical) { - if(scale.X > 10.0f) - scale.X = 10.0f; - if(scale.Y > 10.0f) - scale.Y = 10.0f; - if(scale.Z > 10.0f) - scale.Z = 10.0f; + if(scale.X > m_scene.m_maxPhys) + scale.X = m_scene.m_maxPhys; + if(scale.Y > m_scene.m_maxPhys) + scale.Y = m_scene.m_maxPhys; + if(scale.Z > m_scene.m_maxPhys) + scale.Z = m_scene.m_maxPhys; } part.PhysActor.Size = new PhysicsVector(scale.X, scale.Y, scale.Z); @@ -2179,20 +2179,20 @@ namespace OpenSim.Region.Environment.Scenes SceneObjectPart part = GetChildPart(localID); if (part != null) { - if(scale.X > 65536.0f) - scale.X = 65536.0f; - if(scale.Y > 65536.0f) - scale.Y = 65536.0f; - if(scale.Z > 65536.0f) - scale.Z = 65536.0f; + if(scale.X > m_scene.m_maxNonphys) + scale.X = m_scene.m_maxNonphys; + if(scale.Y > m_scene.m_maxNonphys) + scale.Y = m_scene.m_maxNonphys; + if(scale.Z > m_scene.m_maxNonphys) + scale.Z = m_scene.m_maxNonphys; if(part.PhysActor != null && part.PhysActor.IsPhysical) { - if(scale.X > 10.0f) - scale.X = 10.0f; - if(scale.Y > 10.0f) - scale.Y = 10.0f; - if(scale.Z > 10.0f) - scale.Z = 10.0f; + if(scale.X > m_scene.m_maxPhys) + scale.X = m_scene.m_maxPhys; + if(scale.Y > m_scene.m_maxPhys) + scale.Y = m_scene.m_maxPhys; + if(scale.Z > m_scene.m_maxPhys) + scale.Z = m_scene.m_maxPhys; } float x = (scale.X / part.Scale.X); float y = (scale.Y / part.Scale.Y); @@ -2213,25 +2213,25 @@ namespace OpenSim.Region.Environment.Scenes if(part.PhysActor != null && part.PhysActor.IsPhysical) { - if(oldSize.X*x > 10.0f) + if(oldSize.X*x > m_scene.m_maxPhys) { - f = 10.0f / oldSize.X; + f = m_scene.m_maxPhys / oldSize.X; a = f / x; x *= a; y *= a; z *= a; } - if(oldSize.Y*y > 10.0f) + if(oldSize.Y*y > m_scene.m_maxPhys) { - f = 10.0f / oldSize.Y; + f = m_scene.m_maxPhys / oldSize.Y; a = f / y; x *= a; y *= a; z *= a; } - if(oldSize.Z*z > 10.0f) + if(oldSize.Z*z > m_scene.m_maxPhys) { - f = 10.0f / oldSize.Z; + f = m_scene.m_maxPhys / oldSize.Z; a = f / z; x *= a; y *= a; @@ -2240,25 +2240,25 @@ namespace OpenSim.Region.Environment.Scenes } else { - if(oldSize.X*x > 65536.0f) + if(oldSize.X*x > m_scene.m_maxNonphys) { - f = 65536.0f / oldSize.X; + f = m_scene.m_maxNonphys / oldSize.X; a = f / x; x *= a; y *= a; z *= a; } - if(oldSize.Y*y > 65536.0f) + if(oldSize.Y*y > m_scene.m_maxNonphys) { - f = 65536.0f / oldSize.Y; + f = m_scene.m_maxNonphys / oldSize.Y; a = f / y; x *= a; y *= a; z *= a; } - if(oldSize.Z*z > 65536.0f) + if(oldSize.Z*z > m_scene.m_maxNonphys) { - f = 65536.0f / oldSize.Z; + f = m_scene.m_maxNonphys / oldSize.Z; a = f / z; x *= a; y *= a; -- cgit v1.1