diff options
author | Teravus Ovares | 2008-05-14 23:15:25 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-14 23:15:25 +0000 |
commit | 2a988f187ec4c743d6b269fc3a8fe32d84716f65 (patch) | |
tree | 728d7e4ef601ed0630b0a7f156c63512966603c0 /OpenSim/Region | |
parent | * Start recording as a statistic the number of times we start blocking repeti... (diff) | |
download | opensim-SC_OLD-2a988f187ec4c743d6b269fc3a8fe32d84716f65.zip opensim-SC_OLD-2a988f187ec4c743d6b269fc3a8fe32d84716f65.tar.gz opensim-SC_OLD-2a988f187ec4c743d6b269fc3a8fe32d84716f65.tar.bz2 opensim-SC_OLD-2a988f187ec4c743d6b269fc3a8fe32d84716f65.tar.xz |
* Refactored IConfigSource into Physics plug-ins and Scene. We can get rid of some of the parameters we pass to it's constructor now like, 'm_allowPhysicalPrim', 'seeIntoOtherRegions', etc.. so on
* The main purpose of this is to provide configuration options for ODE and other physics plug-ins that are advanced enough to be able to be configured.
Diffstat (limited to 'OpenSim/Region')
11 files changed, 38 insertions, 17 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index e7386ff..a8f4bd4 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -96,6 +96,8 @@ namespace OpenSim | |||
96 | 96 | ||
97 | protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); | 97 | protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); |
98 | 98 | ||
99 | protected IConfigSource m_finalConfig = null; | ||
100 | |||
99 | protected IniConfigSource m_config; | 101 | protected IniConfigSource m_config; |
100 | 102 | ||
101 | public IniConfigSource ConfigSource | 103 | public IniConfigSource ConfigSource |
@@ -309,10 +311,10 @@ namespace OpenSim | |||
309 | 311 | ||
310 | m_dumpAssetsToFile = standaloneConfig.GetBoolean("dump_assets_to_file", false); | 312 | m_dumpAssetsToFile = standaloneConfig.GetBoolean("dump_assets_to_file", false); |
311 | } | 313 | } |
312 | //if (!m_sandbox) | 314 | |
313 | //m_SendChildAgentTaskData = false; | ||
314 | 315 | ||
315 | m_networkServersInfo.loadFromConfiguration(m_config); | 316 | m_networkServersInfo.loadFromConfiguration(m_config); |
317 | |||
316 | } | 318 | } |
317 | 319 | ||
318 | private ManualResetEvent WorldHasComeToAnEnd = new ManualResetEvent(false); | 320 | private ManualResetEvent WorldHasComeToAnEnd = new ManualResetEvent(false); |
@@ -622,7 +624,8 @@ namespace OpenSim | |||
622 | return | 624 | return |
623 | new Scene(regionInfo, circuitManager, m_commsManager, sceneGridService, m_assetCache, | 625 | new Scene(regionInfo, circuitManager, m_commsManager, sceneGridService, m_assetCache, |
624 | storageManager, m_httpServer, | 626 | storageManager, m_httpServer, |
625 | m_moduleLoader, m_dumpAssetsToFile, m_physicalPrim, m_see_into_region_from_neighbor); | 627 | m_moduleLoader, m_dumpAssetsToFile, m_physicalPrim, m_see_into_region_from_neighbor, m_config); |
628 | |||
626 | } | 629 | } |
627 | 630 | ||
628 | public void handleRestartRegion(RegionInfo whichRegion) | 631 | public void handleRestartRegion(RegionInfo whichRegion) |
@@ -668,7 +671,7 @@ namespace OpenSim | |||
668 | 671 | ||
669 | protected override PhysicsScene GetPhysicsScene() | 672 | protected override PhysicsScene GetPhysicsScene() |
670 | { | 673 | { |
671 | return GetPhysicsScene(m_physicsEngine, m_meshEngineName); | 674 | return GetPhysicsScene(m_physicsEngine, m_meshEngineName, m_config); |
672 | } | 675 | } |
673 | 676 | ||
674 | /// <summary> | 677 | /// <summary> |
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index 5e0e074..b16f74b 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs | |||
@@ -30,6 +30,7 @@ using System.Net; | |||
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using libsecondlife; | 31 | using libsecondlife; |
32 | using log4net; | 32 | using log4net; |
33 | using Nini.Config; | ||
33 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Communications; | 35 | using OpenSim.Framework.Communications; |
35 | using OpenSim.Framework.Communications.Cache; | 36 | using OpenSim.Framework.Communications.Cache; |
@@ -99,12 +100,12 @@ namespace OpenSim.Region.ClientStack | |||
99 | protected abstract PhysicsScene GetPhysicsScene(); | 100 | protected abstract PhysicsScene GetPhysicsScene(); |
100 | protected abstract StorageManager CreateStorageManager(string connectionstring); | 101 | protected abstract StorageManager CreateStorageManager(string connectionstring); |
101 | 102 | ||
102 | protected PhysicsScene GetPhysicsScene(string engine, string meshEngine) | 103 | protected PhysicsScene GetPhysicsScene(string engine, string meshEngine, IConfigSource config) |
103 | { | 104 | { |
104 | PhysicsPluginManager physicsPluginManager; | 105 | PhysicsPluginManager physicsPluginManager; |
105 | physicsPluginManager = new PhysicsPluginManager(); | 106 | physicsPluginManager = new PhysicsPluginManager(); |
106 | physicsPluginManager.LoadPlugins(); | 107 | physicsPluginManager.LoadPlugins(); |
107 | return physicsPluginManager.GetPhysicsScene(engine, meshEngine); | 108 | return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config); |
108 | } | 109 | } |
109 | 110 | ||
110 | protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer clientServer) | 111 | protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer clientServer) |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 4188deb..5b93ef9 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -43,6 +43,7 @@ using OpenSim.Region.Environment.Interfaces; | |||
43 | using OpenSim.Region.Environment.Modules.World.Terrain; | 43 | using OpenSim.Region.Environment.Modules.World.Terrain; |
44 | using OpenSim.Region.Environment.Scenes.Scripting; | 44 | using OpenSim.Region.Environment.Scenes.Scripting; |
45 | using OpenSim.Region.Physics.Manager; | 45 | using OpenSim.Region.Physics.Manager; |
46 | using Nini.Config; | ||
46 | using Caps=OpenSim.Framework.Communications.Capabilities.Caps; | 47 | using Caps=OpenSim.Framework.Communications.Capabilities.Caps; |
47 | using Image=System.Drawing.Image; | 48 | using Image=System.Drawing.Image; |
48 | using Timer=System.Timers.Timer; | 49 | using Timer=System.Timers.Timer; |
@@ -115,6 +116,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | protected IWorldComm m_worldCommModule; | 116 | protected IWorldComm m_worldCommModule; |
116 | protected IAvatarFactory m_AvatarFactory; | 117 | protected IAvatarFactory m_AvatarFactory; |
117 | protected IScenePermissions m_permissions; | 118 | protected IScenePermissions m_permissions; |
119 | protected IConfigSource m_config; | ||
118 | 120 | ||
119 | // Central Update Loop | 121 | // Central Update Loop |
120 | 122 | ||
@@ -134,6 +136,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
134 | private int m_update_backup = 200; | 136 | private int m_update_backup = 200; |
135 | private int m_update_terrain = 50; | 137 | private int m_update_terrain = 50; |
136 | private int m_update_land = 1; | 138 | private int m_update_land = 1; |
139 | |||
137 | 140 | ||
138 | private int frameMS = 0; | 141 | private int frameMS = 0; |
139 | private int physicsMS2 = 0; | 142 | private int physicsMS2 = 0; |
@@ -223,8 +226,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
223 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, | 226 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, |
224 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, | 227 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, |
225 | AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, | 228 | AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, |
226 | ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, bool SeeIntoRegionFromNeighbor) | 229 | ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, bool SeeIntoRegionFromNeighbor, IConfigSource config) |
227 | { | 230 | { |
231 | m_config = config; | ||
228 | updateLock = new Mutex(false); | 232 | updateLock = new Mutex(false); |
229 | m_moduleLoader = moduleLoader; | 233 | m_moduleLoader = moduleLoader; |
230 | m_authenticateHandler = authen; | 234 | m_authenticateHandler = authen; |
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index eecd115..d7c4013 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using Axiom.Math; | 29 | using Axiom.Math; |
30 | using Nini.Config; | ||
30 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
31 | using OpenSim.Region.Physics.Manager; | 32 | using OpenSim.Region.Physics.Manager; |
32 | 33 | ||
@@ -70,7 +71,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
70 | { | 71 | { |
71 | } | 72 | } |
72 | 73 | ||
73 | public override void Initialise(IMesher meshmerizer) | 74 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
74 | { | 75 | { |
75 | // Does nothing right now | 76 | // Does nothing right now |
76 | } | 77 | } |
diff --git a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs index ddfb5a4..9415fff 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs +++ b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs | |||
@@ -34,6 +34,7 @@ using OpenSim.Framework; | |||
34 | using OpenSim.Region.Physics.Manager; | 34 | using OpenSim.Region.Physics.Manager; |
35 | using XnaDevRu.BulletX; | 35 | using XnaDevRu.BulletX; |
36 | using XnaDevRu.BulletX.Dynamics; | 36 | using XnaDevRu.BulletX.Dynamics; |
37 | using Nini.Config; | ||
37 | using AxiomQuaternion = Axiom.Math.Quaternion; | 38 | using AxiomQuaternion = Axiom.Math.Quaternion; |
38 | 39 | ||
39 | #endregion | 40 | #endregion |
@@ -483,6 +484,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
483 | internal Dictionary<RigidBody, BulletXPrim> _prims = new Dictionary<RigidBody, BulletXPrim>(); | 484 | internal Dictionary<RigidBody, BulletXPrim> _prims = new Dictionary<RigidBody, BulletXPrim>(); |
484 | 485 | ||
485 | public IMesher mesher; | 486 | public IMesher mesher; |
487 | private IConfigSource m_config; | ||
486 | 488 | ||
487 | 489 | ||
488 | public static float Gravity | 490 | public static float Gravity |
@@ -536,9 +538,10 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
536 | //this._heightmap = new float[65536]; | 538 | //this._heightmap = new float[65536]; |
537 | } | 539 | } |
538 | 540 | ||
539 | public override void Initialise(IMesher meshmerizer) | 541 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
540 | { | 542 | { |
541 | mesher = meshmerizer; | 543 | mesher = meshmerizer; |
544 | m_config = config; | ||
542 | } | 545 | } |
543 | 546 | ||
544 | public override void Dispose() | 547 | public override void Dispose() |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs index e4ff725..b8ca180 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs | |||
@@ -29,6 +29,7 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | 30 | using System.IO; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using Nini.Config; | ||
32 | using log4net; | 33 | using log4net; |
33 | 34 | ||
34 | namespace OpenSim.Region.Physics.Manager | 35 | namespace OpenSim.Region.Physics.Manager |
@@ -47,7 +48,7 @@ namespace OpenSim.Region.Physics.Manager | |||
47 | { | 48 | { |
48 | } | 49 | } |
49 | 50 | ||
50 | public PhysicsScene GetPhysicsScene(string physEngineName, string meshEngineName) | 51 | public PhysicsScene GetPhysicsScene(string physEngineName, string meshEngineName, IConfigSource config) |
51 | { | 52 | { |
52 | if (String.IsNullOrEmpty(physEngineName)) | 53 | if (String.IsNullOrEmpty(physEngineName)) |
53 | { | 54 | { |
@@ -75,7 +76,7 @@ namespace OpenSim.Region.Physics.Manager | |||
75 | { | 76 | { |
76 | m_log.Info("[PHYSICS]: creating " + physEngineName); | 77 | m_log.Info("[PHYSICS]: creating " + physEngineName); |
77 | PhysicsScene result = _PhysPlugins[physEngineName].GetScene(); | 78 | PhysicsScene result = _PhysPlugins[physEngineName].GetScene(); |
78 | result.Initialise(meshEngine); | 79 | result.Initialise(meshEngine, config); |
79 | return result; | 80 | return result; |
80 | } | 81 | } |
81 | else | 82 | else |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs index 4c509b7..de93f22 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System.Reflection; | 28 | using System.Reflection; |
29 | using Axiom.Math; | 29 | using Axiom.Math; |
30 | using log4net; | 30 | using log4net; |
31 | using Nini.Config; | ||
31 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
32 | 33 | ||
33 | namespace OpenSim.Region.Physics.Manager | 34 | namespace OpenSim.Region.Physics.Manager |
@@ -58,7 +59,7 @@ namespace OpenSim.Region.Physics.Manager | |||
58 | } | 59 | } |
59 | 60 | ||
60 | 61 | ||
61 | public abstract void Initialise(IMesher meshmerizer); | 62 | public abstract void Initialise(IMesher meshmerizer, IConfigSource config); |
62 | 63 | ||
63 | public abstract PhysicsActor AddAvatar(string avName, PhysicsVector position, PhysicsVector size); | 64 | public abstract PhysicsActor AddAvatar(string avName, PhysicsVector position, PhysicsVector size); |
64 | 65 | ||
@@ -92,7 +93,7 @@ namespace OpenSim.Region.Physics.Manager | |||
92 | private static int m_workIndicator; | 93 | private static int m_workIndicator; |
93 | 94 | ||
94 | 95 | ||
95 | public override void Initialise(IMesher meshmerizer) | 96 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
96 | { | 97 | { |
97 | // Does nothing right now | 98 | // Does nothing right now |
98 | } | 99 | } |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs index 94d98cb..bdc5b00 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using Axiom.Math; | 29 | using Axiom.Math; |
30 | using Nini.Config; | ||
30 | using NUnit.Framework; | 31 | using NUnit.Framework; |
31 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
32 | using OpenSim.Region.Physics.Manager; | 33 | using OpenSim.Region.Physics.Manager; |
@@ -50,7 +51,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
50 | // Getting Physics Scene | 51 | // Getting Physics Scene |
51 | ps = cbt.GetScene(); | 52 | ps = cbt.GetScene(); |
52 | // Initializing Physics Scene. | 53 | // Initializing Physics Scene. |
53 | ps.Initialise(imp.GetMesher()); | 54 | ps.Initialise(imp.GetMesher(),null); |
54 | float[] _heightmap = new float[256 * 256]; | 55 | float[] _heightmap = new float[256 * 256]; |
55 | for (int i = 0; i<(256*256);i++) | 56 | for (int i = 0; i<(256*256);i++) |
56 | { | 57 | { |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index c2a1c8e..da72092 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -32,6 +32,7 @@ using System.Runtime.InteropServices; | |||
32 | using System.Threading; | 32 | using System.Threading; |
33 | using Axiom.Math; | 33 | using Axiom.Math; |
34 | using log4net; | 34 | using log4net; |
35 | using Nini.Config; | ||
35 | using Ode.NET; | 36 | using Ode.NET; |
36 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
37 | using OpenSim.Region.Physics.Manager; | 38 | using OpenSim.Region.Physics.Manager; |
@@ -193,6 +194,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
193 | 194 | ||
194 | public IMesher mesher; | 195 | public IMesher mesher; |
195 | 196 | ||
197 | private IConfigSource m_config; | ||
198 | |||
196 | 199 | ||
197 | /// <summary> | 200 | /// <summary> |
198 | /// Initiailizes the scene | 201 | /// Initiailizes the scene |
@@ -286,9 +289,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
286 | 289 | ||
287 | 290 | ||
288 | // Initialize the mesh plugin | 291 | // Initialize the mesh plugin |
289 | public override void Initialise(IMesher meshmerizer) | 292 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
290 | { | 293 | { |
291 | mesher = meshmerizer; | 294 | mesher = meshmerizer; |
295 | m_config = config; | ||
292 | } | 296 | } |
293 | 297 | ||
294 | internal void waitForSpaceUnlock(IntPtr space) | 298 | internal void waitForSpaceUnlock(IntPtr space) |
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs index 96e67d1..9ca1b23 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using Axiom.Math; | 30 | using Axiom.Math; |
31 | using Nini.Config; | ||
31 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
32 | using OpenSim.Region.Physics.Manager; | 33 | using OpenSim.Region.Physics.Manager; |
33 | 34 | ||
@@ -73,7 +74,7 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
73 | { | 74 | { |
74 | } | 75 | } |
75 | 76 | ||
76 | public override void Initialise(IMesher meshmerizer) | 77 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
77 | { | 78 | { |
78 | // Does nothing right now | 79 | // Does nothing right now |
79 | } | 80 | } |
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs index 712d10e..175d749 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using Nini.Config; | ||
30 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
31 | using OpenSim.Region.Physics.Manager; | 32 | using OpenSim.Region.Physics.Manager; |
32 | using PhysXWrapper; | 33 | using PhysXWrapper; |
@@ -84,7 +85,7 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
84 | scene = mySdk.CreateScene(); | 85 | scene = mySdk.CreateScene(); |
85 | } | 86 | } |
86 | 87 | ||
87 | public override void Initialise(IMesher meshmerizer) | 88 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
88 | { | 89 | { |
89 | // Does nothing right now | 90 | // Does nothing right now |
90 | } | 91 | } |