diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 68fba972d9..980fa8508b 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -734,10 +734,6 @@ namespace OpenSim
clientServer = clientNetworkServers;
scene.LoadWorldMap();
- scene.PhysicsScene.RequestAssetMethod = scene.PhysicsRequestAsset;
- scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
- scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight);
-
return scene;
}
@@ -749,11 +745,8 @@ namespace OpenSim
protected override Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService,
IEstateDataService estateDataService, AgentCircuitManager circuitManager)
{
- Vector3 regionExtent = new Vector3(regionInfo.RegionSizeX, regionInfo.RegionSizeY, regionInfo.RegionSizeZ);
- PhysicsScene physicsScene = GetPhysicsScene(regionInfo.RegionName, regionExtent);
-
return new Scene(
- regionInfo, circuitManager, physicsScene,
+ regionInfo, circuitManager,
simDataService, estateDataService,
Config, m_version);
}
@@ -796,12 +789,6 @@ namespace OpenSim
# region Setup methods
- protected override PhysicsScene GetPhysicsScene(string osSceneIdentifier, Vector3 regionExtent)
- {
- return GetPhysicsScene(
- m_configSettings.PhysicsEngine, m_configSettings.MeshEngineName, Config, osSceneIdentifier, regionExtent);
- }
-
///
/// Handler to supply the current status of this sim
///
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index 374e34d8e4..343780b56d 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -62,16 +62,6 @@ namespace OpenSim.Region.ClientStack
protected abstract void Initialize();
- ///
- /// Get a new physics scene.
- ///
- ///
- ///
- /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
- ///
- ///
- protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier, Vector3 regionExtent);
-
protected abstract ClientStackManager CreateClientStackManager();
protected abstract Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, IEstateDataService estateDataService, AgentCircuitManager circuitManager);
@@ -113,24 +103,5 @@ namespace OpenSim.Region.ClientStack
base.StartupSpecific();
}
- ///
- /// Get a new physics scene.
- ///
- /// The name of the physics engine to use
- /// The name of the mesh engine to use
- /// The configuration data to pass to the physics and mesh engines
- ///
- /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
- ///
- ///
- protected PhysicsScene GetPhysicsScene(
- string engine, string meshEngine, IConfigSource config, string osSceneIdentifier, Vector3 regionExtent)
- {
- PhysicsPluginManager physicsPluginManager;
- physicsPluginManager = new PhysicsPluginManager();
- physicsPluginManager.LoadPluginsFromAssemblies("Physics");
-
- return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config, osSceneIdentifier, regionExtent);
- }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs
index d10c9b427a..69d7e16203 100644
--- a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs
@@ -159,7 +159,7 @@ namespace OpenSim.Region.CoreModules.Framework.Library
}
RegionInfo regInfo = new RegionInfo();
- Scene m_MockScene = new Scene(regInfo, null);
+ Scene m_MockScene = new Scene(regInfo);
LocalInventoryService invService = new LocalInventoryService(lib);
m_MockScene.RegisterModuleInterface(invService);
m_MockScene.RegisterModuleInterface(m_Scene.AssetService);
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs
index aa5f889287..25ae689b7c 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs
@@ -85,7 +85,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r1.ExternalHostName = "127.0.0.1";
r1.HttpPort = 9001;
r1.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
- Scene s = new Scene(new RegionInfo(), null);
+ Scene s = new Scene(new RegionInfo());
s.RegionInfo.RegionID = r1.RegionID;
m_LocalConnector.AddRegion(s);
@@ -97,7 +97,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r2.ExternalHostName = "127.0.0.1";
r2.HttpPort = 9002;
r2.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
- s = new Scene(new RegionInfo(), null);
+ s = new Scene(new RegionInfo());
s.RegionInfo.RegionID = r2.RegionID;
m_LocalConnector.AddRegion(s);
@@ -109,7 +109,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r3.ExternalHostName = "127.0.0.1";
r3.HttpPort = 9003;
r3.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
- s = new Scene(new RegionInfo(), null);
+ s = new Scene(new RegionInfo());
s.RegionInfo.RegionID = r3.RegionID;
m_LocalConnector.AddRegion(s);
@@ -121,7 +121,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r4.ExternalHostName = "127.0.0.1";
r4.HttpPort = 9004;
r4.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
- s = new Scene(new RegionInfo(), null);
+ s = new Scene(new RegionInfo());
s.RegionInfo.RegionID = r4.RegionID;
m_LocalConnector.AddRegion(s);
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 09a0a6b501..900e715651 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -850,10 +850,10 @@ namespace OpenSim.Region.Framework.Scenes
#region Constructors
- public Scene(RegionInfo regInfo, AgentCircuitManager authen, PhysicsScene physicsScene,
+ public Scene(RegionInfo regInfo, AgentCircuitManager authen,
ISimulationDataService simDataService, IEstateDataService estateDataService,
IConfigSource config, string simulatorVersion)
- : this(regInfo, physicsScene)
+ : this(regInfo)
{
m_config = config;
MinFrameTicks = 89;
@@ -1192,11 +1192,10 @@ namespace OpenSim.Region.Framework.Scenes
}
- public Scene(RegionInfo regInfo, PhysicsScene physicsScene)
+ public Scene(RegionInfo regInfo)
: base(regInfo)
{
m_sceneGraph = new SceneGraph(this);
- m_sceneGraph.PhysicsScene = physicsScene;
// If the scene graph has an Unrecoverable error, restart this sim.
// Currently the only thing that causes it to happen is two kinds of specific
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index eea0fff1fa..d77e3242d9 100755
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -111,7 +111,12 @@ namespace OpenSim.Region.Framework.Scenes
public PhysicsScene PhysicsScene
{
- get { return _PhyScene; }
+ get
+ {
+ if (_PhyScene == null)
+ _PhyScene = m_parentScene.RequestModuleInterface();
+ return _PhyScene;
+ }
set
{
// If we're not doing the initial set
diff --git a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs
index 5ec0f858b5..f7760c5df7 100644
--- a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs
+++ b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs
@@ -93,6 +93,7 @@ namespace OpenSim.Region.PhysicsModule.BasicPhysics
scene.RegisterModuleInterface(this);
m_regionExtent = new Vector3(scene.RegionInfo.RegionSizeX, scene.RegionInfo.RegionSizeY, scene.RegionInfo.RegionSizeZ);
+ base.Initialise(scene.PhysicsRequestAsset, scene.Heightmap.GetFloatsSerialised(), (float)scene.RegionInfo.RegionSettings.WaterHeight);
}
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs b/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs
index 26af343887..b412561c72 100644
--- a/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs
@@ -248,7 +248,10 @@ namespace OpenSim.Region.PhysicsModule.BulletS
scene.RegisterModuleInterface(this);
Vector3 extent = new Vector3(scene.RegionInfo.RegionSizeX, scene.RegionInfo.RegionSizeY, scene.RegionInfo.RegionSizeZ);
- Initialise(m_Config, extent);
+ Initialise(m_Config, extent);
+
+ base.Initialise(scene.PhysicsRequestAsset, scene.Heightmap.GetFloatsSerialised(), (float)scene.RegionInfo.RegionSettings.WaterHeight);
+
}
public void RemoveRegion(Scene scene)
diff --git a/OpenSim/Region/PhysicsModules/BulletS/Tests/BulletSimTestsUtil.cs b/OpenSim/Region/PhysicsModules/BulletS/Tests/BulletSimTestsUtil.cs
index 34c057170a..d86c841e5f 100755
--- a/OpenSim/Region/PhysicsModules/BulletS/Tests/BulletSimTestsUtil.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/Tests/BulletSimTestsUtil.cs
@@ -35,6 +35,7 @@ using Nini.Config;
using OpenSim.Framework;
using OpenSim.Region.PhysicsModules.SharedBase;
using OpenSim.Region.PhysicsModules.Meshing;
+using OpenSim.Region.Framework.Interfaces;
using OpenMetaverse;
@@ -78,22 +79,32 @@ public static class BulletSimTestsUtil
bulletSimConfig.Set("VehicleLoggingEnabled","True");
}
- PhysicsPluginManager physicsPluginManager;
- physicsPluginManager = new PhysicsPluginManager();
- physicsPluginManager.LoadPluginsFromAssemblies("Physics");
-
Vector3 regionExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, Constants.RegionHeight);
- PhysicsScene pScene = physicsPluginManager.GetPhysicsScene(
- "BulletSim", "Meshmerizer", openSimINI, "BSTestRegion", regionExtent);
+ //PhysicsScene pScene = physicsPluginManager.GetPhysicsScene(
+ // "BulletSim", "Meshmerizer", openSimINI, "BSTestRegion", regionExtent);
+ RegionInfo info = new RegionInfo();
+ info.RegionName = "BSTestRegion";
+ info.RegionSizeX = info.RegionSizeY = info.RegionSizeZ = Constants.RegionSize;
+ OpenSim.Region.Framework.Scenes.Scene scene = new OpenSim.Region.Framework.Scenes.Scene(info);
- BSScene bsScene = pScene as BSScene;
+ IMesher mesher = new OpenSim.Region.PhysicsModules.Meshing.Meshmerizer();
+ INonSharedRegionModule mod = mesher as INonSharedRegionModule;
+ mod.Initialise(openSimINI);
+ mod.AddRegion(scene);
+ mod.RegionLoaded(scene);
+
+ BSScene pScene = new BSScene();
+ mod = (pScene as INonSharedRegionModule);
+ mod.Initialise(openSimINI);
+ mod.AddRegion(scene);
+ mod.RegionLoaded(scene);
// Since the asset requestor is not initialized, any mesh or sculptie will be a cube.
// In the future, add a fake asset fetcher to get meshes and sculpts.
// bsScene.RequestAssetMethod = ???;
- return bsScene;
+ return pScene;
}
}
diff --git a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
index 36162006c8..f090953807 100644
--- a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
+++ b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
@@ -585,6 +585,8 @@ namespace OpenSim.Region.PhysicsModule.ODE
Vector3 extent = new Vector3(scene.RegionInfo.RegionSizeX, scene.RegionInfo.RegionSizeY, scene.RegionInfo.RegionSizeZ);
Initialise();
InitialiseFromConfig(m_config);
+ base.Initialise(scene.PhysicsRequestAsset, scene.Heightmap.GetFloatsSerialised(), (float)scene.RegionInfo.RegionSettings.WaterHeight);
+
}
public void RemoveRegion(Scene scene)
diff --git a/OpenSim/Region/PhysicsModules/POS/POSScene.cs b/OpenSim/Region/PhysicsModules/POS/POSScene.cs
index 915fa8cf12..beaa177156 100644
--- a/OpenSim/Region/PhysicsModules/POS/POSScene.cs
+++ b/OpenSim/Region/PhysicsModules/POS/POSScene.cs
@@ -85,6 +85,8 @@ namespace OpenSim.Region.PhysicsModule.POS
PhysicsSceneName = EngineType + "/" + scene.RegionInfo.RegionName;
scene.RegisterModuleInterface(this);
+ base.Initialise(scene.PhysicsRequestAsset, scene.Heightmap.GetFloatsSerialised(), (float)scene.RegionInfo.RegionSettings.WaterHeight);
+
}
public void RemoveRegion(Scene scene)
diff --git a/OpenSim/Region/PhysicsModules/SharedBase/PhysicsScene.cs b/OpenSim/Region/PhysicsModules/SharedBase/PhysicsScene.cs
index 247f355708..32691fc28a 100644
--- a/OpenSim/Region/PhysicsModules/SharedBase/PhysicsScene.cs
+++ b/OpenSim/Region/PhysicsModules/SharedBase/PhysicsScene.cs
@@ -117,6 +117,14 @@ namespace OpenSim.Region.PhysicsModules.SharedBase
public RequestAssetDelegate RequestAssetMethod { get; set; }
+ protected void Initialise(RequestAssetDelegate m, float[] terrain, float waterHeight)
+ {
+ RequestAssetMethod = m;
+ SetTerrain(terrain);
+ SetWaterLevel(waterHeight);
+
+ }
+
public virtual void TriggerPhysicsBasedRestart()
{
physicsCrash handler = OnPhysicsCrash;
diff --git a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
index a26e844cd1..27705bdad7 100644
--- a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
+++ b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
@@ -151,12 +151,9 @@ namespace OpenSim.Tests.Common
PhysicsPluginManager physicsPluginManager = new PhysicsPluginManager();
physicsPluginManager.LoadPluginsFromAssembly("Physics/OpenSim.Region.PhysicsModule.BasicPhysics.dll");
Vector3 regionExtent = new Vector3( regInfo.RegionSizeX, regInfo.RegionSizeY, regInfo.RegionSizeZ);
- PhysicsScene physicsScene
- = physicsPluginManager.GetPhysicsScene(
- "basicphysics", "ZeroMesher", new IniConfigSource(), "test", regionExtent);
TestScene testScene = new TestScene(
- regInfo, m_acm, physicsScene, SimDataService, m_estateDataService, configSource, null);
+ regInfo, m_acm, SimDataService, m_estateDataService, configSource, null);
INonSharedRegionModule godsModule = new GodsModule();
godsModule.Initialise(new IniConfigSource());
diff --git a/OpenSim/Tests/Common/Mock/TestScene.cs b/OpenSim/Tests/Common/Mock/TestScene.cs
index 08cfff2805..951f1035b6 100644
--- a/OpenSim/Tests/Common/Mock/TestScene.cs
+++ b/OpenSim/Tests/Common/Mock/TestScene.cs
@@ -41,10 +41,10 @@ namespace OpenSim.Tests.Common
public class TestScene : Scene
{
public TestScene(
- RegionInfo regInfo, AgentCircuitManager authen, PhysicsScene physicsScene,
+ RegionInfo regInfo, AgentCircuitManager authen,
ISimulationDataService simDataService, IEstateDataService estateDataService,
IConfigSource config, string simulatorVersion)
- : base(regInfo, authen, physicsScene, simDataService, estateDataService,
+ : base(regInfo, authen, simDataService, estateDataService,
config, simulatorVersion)
{
}
diff --git a/OpenSim/Tests/Common/OpenSimTestCase.cs b/OpenSim/Tests/Common/OpenSimTestCase.cs
index c1415afe43..9fea34820c 100644
--- a/OpenSim/Tests/Common/OpenSimTestCase.cs
+++ b/OpenSim/Tests/Common/OpenSimTestCase.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Tests.Common
[SetUp]
public virtual void SetUp()
{
-// TestHelpers.InMethod();
+ //TestHelpers.InMethod();
// Disable logging for each test so that one where logging is enabled doesn't cause all subsequent tests
// to have logging on if it failed with an exception.
TestHelpers.DisableLogging();
diff --git a/bin/Physics/OpenSim.Region.Physics.BulletSPlugin.dll.config b/bin/OpenSim.Region.PhysicsModule.BulletS.dll.config
similarity index 100%
rename from bin/Physics/OpenSim.Region.Physics.BulletSPlugin.dll.config
rename to bin/OpenSim.Region.PhysicsModule.BulletS.dll.config
diff --git a/prebuild.xml b/prebuild.xml
index 6de8c6dc12..2685c30303 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -487,6 +487,32 @@
+
+
+
+ ../../../../bin/
+
+
+
+
+ ../../../../bin/
+
+
+
+ ../../../../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1692,42 +1718,15 @@
-
-
-
- ../../../../bin/
-
-
-
-
- ../../../../bin/
-
-
-
- ../../../../bin/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ../../../../bin/Physics/
+ ../../../../bin/
- ../../../../bin/Physics/
+ ../../../../bin/
@@ -1755,12 +1754,12 @@
- ../../../../bin/Physics/
+ ../../../../bin/
- ../../../../bin/Physics/
+ ../../../../bin/
@@ -1780,12 +1779,12 @@
- ../../../../bin/Physics/
+ ../../../../bin/
- ../../../../bin/Physics/
+ ../../../../bin/
@@ -1805,12 +1804,12 @@
- ../../../../bin/Physics/
+ ../../../../bin/
- ../../../../bin/Physics/
+ ../../../../bin/
@@ -1837,13 +1836,13 @@
- ../../../../bin/Physics/
+ ../../../../bin/
true
- ../../../../bin/Physics/
+ ../../../../bin/
true