From 9435405ca1c173963dd6e97116a27b798a211801 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Mon, 31 Aug 2015 16:23:43 -0700
Subject: Deleted physics plugin classes. More unit tests fixed.
---
.../BasicPhysics/BasicPhysicsPlugin.cs | 64 ------
.../BasicPhysics/BasicPhysicsScene.cs | 6 +-
OpenSim/Region/PhysicsModules/BulletS/BSPlugin.cs | 76 -------
OpenSim/Region/PhysicsModules/BulletS/BSScene.cs | 2 +-
OpenSim/Region/PhysicsModules/Ode/OdePlugin.cs | 90 --------
.../PhysicsModules/Ode/Tests/ODETestClass.cs | 1 -
OpenSim/Region/PhysicsModules/POS/POSPlugin.cs | 64 ------
.../SharedBase/PhysicsPluginManager.cs | 235 ---------------------
OpenSim/Tests/Common/Helpers/SceneHelpers.cs | 26 ++-
9 files changed, 26 insertions(+), 538 deletions(-)
delete mode 100644 OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsPlugin.cs
delete mode 100644 OpenSim/Region/PhysicsModules/BulletS/BSPlugin.cs
delete mode 100644 OpenSim/Region/PhysicsModules/Ode/OdePlugin.cs
delete mode 100644 OpenSim/Region/PhysicsModules/POS/POSPlugin.cs
delete mode 100644 OpenSim/Region/PhysicsModules/SharedBase/PhysicsPluginManager.cs
(limited to 'OpenSim')
diff --git a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsPlugin.cs b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsPlugin.cs
deleted file mode 100644
index db02eb6..0000000
--- a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsPlugin.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Region.PhysicsModules.SharedBase;
-
-namespace OpenSim.Region.PhysicsModule.BasicPhysics
-{
- ///
- /// Effectively a physics plugin that simulates no physics at all.
- ///
- //public class BasicPhysicsPlugin : IPhysicsPlugin
- //{
- // public BasicPhysicsPlugin()
- // {
- // }
-
- // public bool Init()
- // {
- // return true;
- // }
-
- // public PhysicsScene GetScene(string sceneIdentifier)
- // {
- // return new BasicScene(GetName(), sceneIdentifier);
- // }
-
- // public string GetName()
- // {
- // return ("basicphysics");
- // }
-
- // public void Dispose()
- // {
- // }
- //}
-}
diff --git a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs
index 10684d1..20b337a 100644
--- a/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs
+++ b/OpenSim/Region/PhysicsModules/BasicPhysics/BasicPhysicsScene.cs
@@ -94,7 +94,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 != null ? scene.Heightmap.GetFloatsSerialised() : new float[Constants.RegionSize * Constants.RegionSize]),
+ (scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[scene.RegionInfo.RegionSizeX * scene.RegionInfo.RegionSizeY]),
(float)scene.RegionInfo.RegionSettings.WaterHeight);
}
@@ -164,8 +164,8 @@ namespace OpenSim.Region.PhysicsModule.BasicPhysics
Vector3 actorPosition = actor.Position;
Vector3 actorVelocity = actor.Velocity;
-// Console.WriteLine(
-// "Processing actor {0}, starting pos {1}, starting vel {2}", i, actorPosition, actorVelocity);
+ //Console.WriteLine(
+ // "Processing actor {0}, starting pos {1}, starting vel {2}", i, actorPosition, actorVelocity);
actorPosition.X += actor.Velocity.X * timeStep;
actorPosition.Y += actor.Velocity.Y * timeStep;
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSPlugin.cs b/OpenSim/Region/PhysicsModules/BulletS/BSPlugin.cs
deleted file mode 100644
index 7fc51f7..0000000
--- a/OpenSim/Region/PhysicsModules/BulletS/BSPlugin.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyrightD
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System;
-using System.Collections.Generic;
-using OpenSim.Framework;
-using OpenSim.Region.PhysicsModules.SharedBase;
-using OpenMetaverse;
-
-namespace OpenSim.Region.PhysicsModule.BulletS
-{
- ///
- /// Entry for a port of Bullet (http://bulletphysics.org/) to OpenSim.
- /// This module interfaces to an unmanaged C++ library which makes the
- /// actual calls into the Bullet physics engine.
- /// The unmanaged library is found in opensim-libs::trunk/unmanaged/BulletSim/.
- /// The unmanaged library is compiled and linked statically with Bullet
- /// to create BulletSim.dll and libBulletSim.so (for both 32 and 64 bit).
- ///
-//public class BSPlugin : IPhysicsPlugin
-//{
-// //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
-
-// private BSScene _mScene;
-
-// public BSPlugin()
-// {
-// }
-
-// public bool Init()
-// {
-// return true;
-// }
-
-// public PhysicsScene GetScene(String sceneIdentifier)
-// {
-// if (_mScene == null)
-// {
-// _mScene = new BSScene(GetName(), sceneIdentifier);
-// }
-// return (_mScene);
-// }
-
-// public string GetName()
-// {
-// return ("BulletSim");
-// }
-
-// public void Dispose()
-// {
-// }
-//}
-}
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs b/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs
index d116c3b..db4d3cf 100644
--- a/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/BSScene.cs
@@ -251,7 +251,7 @@ namespace OpenSim.Region.PhysicsModule.BulletS
Initialise(m_Config, extent);
base.Initialise(scene.PhysicsRequestAsset,
- (scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[Constants.RegionSize * Constants.RegionSize]),
+ (scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[scene.RegionInfo.RegionSizeX * scene.RegionInfo.RegionSizeY]),
(float)scene.RegionInfo.RegionSettings.WaterHeight);
}
diff --git a/OpenSim/Region/PhysicsModules/Ode/OdePlugin.cs b/OpenSim/Region/PhysicsModules/Ode/OdePlugin.cs
deleted file mode 100644
index bb2fad9..0000000
--- a/OpenSim/Region/PhysicsModules/Ode/OdePlugin.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Threading;
-using System.IO;
-using System.Diagnostics;
-using log4net;
-using Nini.Config;
-using Ode.NET;
-using OpenSim.Framework;
-using OpenSim.Region.PhysicsModules.SharedBase;
-using OpenMetaverse;
-
-namespace OpenSim.Region.PhysicsModule.ODE
-{
- ///
- /// ODE plugin
- ///
-// public class OdePlugin : IPhysicsPlugin
-// {
-//// private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
-
-// private OdeScene m_scene;
-
-// public bool Init()
-// {
-// return true;
-// }
-
-// public PhysicsScene GetScene(String sceneIdentifier)
-// {
-// if (m_scene == null)
-// {
-// // We do this so that OpenSimulator on Windows loads the correct native ODE library depending on whether
-// // it's running as a 32-bit process or a 64-bit one. By invoking LoadLibary here, later DLLImports
-// // will find it already loaded later on.
-// //
-// // This isn't necessary for other platforms (e.g. Mac OSX and Linux) since the DLL used can be
-// // controlled in Ode.NET.dll.config
-// if (Util.IsWindows())
-// Util.LoadArchSpecificWindowsDll("ode.dll");
-
-// // Initializing ODE only when a scene is created allows alternative ODE plugins to co-habit (according to
-// // http://opensimulator.org/mantis/view.php?id=2750).
-// d.InitODE();
-
-// m_scene = new OdeScene(GetName(), sceneIdentifier);
-// }
-
-// return m_scene;
-// }
-
-// public string GetName()
-// {
-// return ("OpenDynamicsEngine");
-// }
-
-// public void Dispose()
-// {
-// }
-// }
-}
\ No newline at end of file
diff --git a/OpenSim/Region/PhysicsModules/Ode/Tests/ODETestClass.cs b/OpenSim/Region/PhysicsModules/Ode/Tests/ODETestClass.cs
index 36b65cf..6dc22bd 100644
--- a/OpenSim/Region/PhysicsModules/Ode/Tests/ODETestClass.cs
+++ b/OpenSim/Region/PhysicsModules/Ode/Tests/ODETestClass.cs
@@ -47,7 +47,6 @@ namespace OpenSim.Region.PhysicsModule.ODE.Tests
//private OpenSim.Region.PhysicsModule.ODE.OdePlugin cbt;
private PhysicsScene pScene;
- private IMeshingPlugin imp;
[SetUp]
public void Initialize()
diff --git a/OpenSim/Region/PhysicsModules/POS/POSPlugin.cs b/OpenSim/Region/PhysicsModules/POS/POSPlugin.cs
deleted file mode 100644
index d233097..0000000
--- a/OpenSim/Region/PhysicsModules/POS/POSPlugin.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Region.PhysicsModules.SharedBase;
-
-namespace OpenSim.Region.PhysicsModule.POS
-{
- ///
- /// for now will be a very POS physics engine
- ///
- //public class POSPlugin : IPhysicsPlugin
- //{
- // public POSPlugin()
- // {
- // }
-
- // public bool Init()
- // {
- // return true;
- // }
-
- // public PhysicsScene GetScene(string sceneIdentifier)
- // {
- // return new POSScene(GetName(), sceneIdentifier);
- // }
-
- // public string GetName()
- // {
- // return ("POS");
- // }
-
- // public void Dispose()
- // {
- // }
- //}
-}
diff --git a/OpenSim/Region/PhysicsModules/SharedBase/PhysicsPluginManager.cs b/OpenSim/Region/PhysicsModules/SharedBase/PhysicsPluginManager.cs
deleted file mode 100644
index 487582c..0000000
--- a/OpenSim/Region/PhysicsModules/SharedBase/PhysicsPluginManager.cs
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using Nini.Config;
-using log4net;
-using OpenSim.Framework;
-using OpenMetaverse;
-
-namespace OpenSim.Region.PhysicsModules.SharedBase
-{
- ///
- /// Description of MyClass.
- ///
- public class PhysicsPluginManager
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private Dictionary _PhysPlugins = new Dictionary();
- private Dictionary _MeshPlugins = new Dictionary();
-
- ///
- /// Constructor.
- ///
- public PhysicsPluginManager()
- {
- }
-
- ///
- /// Get a physics scene for the given physics engine and mesher.
- ///
- ///
- ///
- ///
- ///
- public PhysicsScene GetPhysicsScene(string physEngineName, string meshEngineName,
- IConfigSource config, string regionName, Vector3 regionExtent)
- {
- if (String.IsNullOrEmpty(physEngineName))
- {
- return PhysicsScene.Null;
- }
-
- if (String.IsNullOrEmpty(meshEngineName))
- {
- return PhysicsScene.Null;
- }
-
- IMesher meshEngine = null;
- if (_MeshPlugins.ContainsKey(meshEngineName))
- {
- m_log.Info("[PHYSICS]: creating meshing engine " + meshEngineName);
- meshEngine = _MeshPlugins[meshEngineName].GetMesher(config);
- }
- else
- {
- m_log.WarnFormat("[PHYSICS]: couldn't find meshingEngine: {0}", meshEngineName);
- throw new ArgumentException(String.Format("couldn't find meshingEngine: {0}", meshEngineName));
- }
-
- if (_PhysPlugins.ContainsKey(physEngineName))
- {
- m_log.Info("[PHYSICS]: creating " + physEngineName);
- PhysicsScene result = _PhysPlugins[physEngineName].GetScene(regionName);
- //result.Initialise(meshEngine, config, regionExtent);
- return result;
- }
- else
- {
- m_log.WarnFormat("[PHYSICS]: couldn't find physicsEngine: {0}", physEngineName);
- throw new ArgumentException(String.Format("couldn't find physicsEngine: {0}", physEngineName));
- }
- }
-
- ///
- /// Load all plugins in assemblies at the given path
- ///
- ///
- public void LoadPluginsFromAssemblies(string assembliesPath)
- {
- // Walk all assemblies (DLLs effectively) and see if they are home
- // of a plugin that is of interest for us
- string[] pluginFiles = Directory.GetFiles(assembliesPath, "*.dll");
-
- for (int i = 0; i < pluginFiles.Length; i++)
- {
- LoadPluginsFromAssembly(pluginFiles[i]);
- }
- }
-
- ///
- /// Load plugins from an assembly at the given path
- ///
- ///
- public void LoadPluginsFromAssembly(string assemblyPath)
- {
- // TODO / NOTE
- // The assembly named 'OpenSim.Region.PhysicsModule.BasicPhysics' was loaded from
- // 'file:///C:/OpenSim/trunk2/bin/Physics/OpenSim.Region.PhysicsModule.BasicPhysics.dll'
- // using the LoadFrom context. The use of this context can result in unexpected behavior
- // for serialization, casting and dependency resolution. In almost all cases, it is recommended
- // that the LoadFrom context be avoided. This can be done by installing assemblies in the
- // Global Assembly Cache or in the ApplicationBase directory and using Assembly.
- // Load when explicitly loading assemblies.
- Assembly pluginAssembly = null;
- Type[] types = null;
-
- try
- {
- pluginAssembly = Assembly.LoadFrom(assemblyPath);
- }
- catch (Exception ex)
- {
- m_log.Error("[PHYSICS]: Failed to load plugin from " + assemblyPath, ex);
- }
-
- if (pluginAssembly != null)
- {
- try
- {
- types = pluginAssembly.GetTypes();
- }
- catch (ReflectionTypeLoadException ex)
- {
- m_log.Error("[PHYSICS]: Failed to enumerate types in plugin from " + assemblyPath + ": " +
- ex.LoaderExceptions[0].Message, ex);
- }
- catch (Exception ex)
- {
- m_log.Error("[PHYSICS]: Failed to enumerate types in plugin from " + assemblyPath, ex);
- }
-
- if (types != null)
- {
- foreach (Type pluginType in types)
- {
- if (pluginType.IsPublic)
- {
- if (!pluginType.IsAbstract)
- {
- Type physTypeInterface = pluginType.GetInterface("IPhysicsPlugin");
-
- if (physTypeInterface != null)
- {
- IPhysicsPlugin plug =
- (IPhysicsPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
- plug.Init();
- if (!_PhysPlugins.ContainsKey(plug.GetName()))
- {
- _PhysPlugins.Add(plug.GetName(), plug);
- m_log.Info("[PHYSICS]: Added physics engine: " + plug.GetName());
- }
- }
-
- Type meshTypeInterface = pluginType.GetInterface("IMeshingPlugin");
-
- if (meshTypeInterface != null)
- {
- IMeshingPlugin plug =
- (IMeshingPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
- if (!_MeshPlugins.ContainsKey(plug.GetName()))
- {
- _MeshPlugins.Add(plug.GetName(), plug);
- m_log.Info("[PHYSICS]: Added meshing engine: " + plug.GetName());
- }
- }
-
- physTypeInterface = null;
- meshTypeInterface = null;
- }
- }
- }
- }
- }
-
- pluginAssembly = null;
- }
-
- //---
- public static void PhysicsPluginMessage(string message, bool isWarning)
- {
- if (isWarning)
- {
- m_log.Warn("[PHYSICS]: " + message);
- }
- else
- {
- m_log.Info("[PHYSICS]: " + message);
- }
- }
-
- //---
- }
-
- public interface IPhysicsPlugin
- {
- bool Init();
- PhysicsScene GetScene(String sceneIdentifier);
- string GetName();
- void Dispose();
- }
-
- public interface IMeshingPlugin
- {
- string GetName();
- IMesher GetMesher(IConfigSource config);
- }
-}
diff --git a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
index 27705bd..53509dc 100644
--- a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
+++ b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
@@ -48,6 +48,7 @@ using OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory;
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid;
using OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts;
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence;
+using OpenSim.Region.PhysicsModule.BasicPhysics;
using OpenSim.Services.Interfaces;
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
@@ -77,6 +78,8 @@ namespace OpenSim.Tests.Common
private CoreAssetCache m_cache;
+ private PhysicsScene m_physicsScene;
+
public SceneHelpers() : this(null) {}
public SceneHelpers(CoreAssetCache cache)
@@ -97,6 +100,8 @@ namespace OpenSim.Tests.Common
m_cache = cache;
+ m_physicsScene = StartPhysicsScene();
+
SimDataService
= OpenSim.Server.Base.ServerUtils.LoadPlugin("OpenSim.Tests.Common.dll", null);
}
@@ -148,10 +153,6 @@ namespace OpenSim.Tests.Common
regInfo.RegionSizeX = sizeX;
regInfo.RegionSizeY = sizeY;
- PhysicsPluginManager physicsPluginManager = new PhysicsPluginManager();
- physicsPluginManager.LoadPluginsFromAssembly("Physics/OpenSim.Region.PhysicsModule.BasicPhysics.dll");
- Vector3 regionExtent = new Vector3( regInfo.RegionSizeX, regInfo.RegionSizeY, regInfo.RegionSizeZ);
-
TestScene testScene = new TestScene(
regInfo, m_acm, SimDataService, m_estateDataService, configSource, null);
@@ -159,6 +160,10 @@ namespace OpenSim.Tests.Common
godsModule.Initialise(new IniConfigSource());
godsModule.AddRegion(testScene);
+ // Add scene to physics
+ ((INonSharedRegionModule)m_physicsScene).AddRegion(testScene);
+ ((INonSharedRegionModule)m_physicsScene).RegionLoaded(testScene);
+
// Add scene to services
m_assetService.AddRegion(testScene);
@@ -325,6 +330,19 @@ namespace OpenSim.Tests.Common
return presenceService;
}
+ private static PhysicsScene StartPhysicsScene()
+ {
+ IConfigSource config = new IniConfigSource();
+ config.AddConfig("Startup");
+ config.Configs["Startup"].Set("physics", "basicphysics");
+
+ PhysicsScene pScene = new BasicScene();
+ INonSharedRegionModule mod = pScene as INonSharedRegionModule;
+ mod.Initialise(config);
+
+ return pScene;
+ }
+
///
/// Setup modules for a scene using their default settings.
///
--
cgit v1.1