Physics refactoring: all unit tests pass.
parent
11194209df
commit
50e7e38f45
|
@ -93,7 +93,9 @@ namespace OpenSim.Region.PhysicsModule.BasicPhysics
|
|||
|
||||
scene.RegisterModuleInterface<PhysicsScene>(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);
|
||||
base.Initialise(scene.PhysicsRequestAsset,
|
||||
(scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[Constants.RegionSize * Constants.RegionSize]),
|
||||
(float)scene.RegionInfo.RegionSettings.WaterHeight);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -250,7 +250,9 @@ namespace OpenSim.Region.PhysicsModule.BulletS
|
|||
Vector3 extent = new Vector3(scene.RegionInfo.RegionSizeX, scene.RegionInfo.RegionSizeY, scene.RegionInfo.RegionSizeZ);
|
||||
Initialise(m_Config, extent);
|
||||
|
||||
base.Initialise(scene.PhysicsRequestAsset, scene.Heightmap.GetFloatsSerialised(), (float)scene.RegionInfo.RegionSettings.WaterHeight);
|
||||
base.Initialise(scene.PhysicsRequestAsset,
|
||||
(scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[Constants.RegionSize * Constants.RegionSize]),
|
||||
(float)scene.RegionInfo.RegionSettings.WaterHeight);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -81,8 +81,6 @@ public static class BulletSimTestsUtil
|
|||
|
||||
Vector3 regionExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, Constants.RegionHeight);
|
||||
|
||||
//PhysicsScene pScene = physicsPluginManager.GetPhysicsScene(
|
||||
// "BulletSim", "Meshmerizer", openSimINI, "BSTestRegion", regionExtent);
|
||||
RegionInfo info = new RegionInfo();
|
||||
info.RegionName = "BSTestRegion";
|
||||
info.RegionSizeX = info.RegionSizeY = info.RegionSizeZ = Constants.RegionSize;
|
||||
|
|
|
@ -106,7 +106,7 @@ namespace OpenSim.Region.PhysicsModule.ODE
|
|||
}
|
||||
|
||||
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ODEPhysicsScene")]
|
||||
public class OdeScene : PhysicsScene
|
||||
public class OdeScene : PhysicsScene, INonSharedRegionModule
|
||||
{
|
||||
private readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.ToString());
|
||||
private bool m_Enabled = false;
|
||||
|
@ -585,7 +585,9 @@ 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);
|
||||
base.Initialise(scene.PhysicsRequestAsset,
|
||||
(scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[Constants.RegionSize * Constants.RegionSize]),
|
||||
(float)scene.RegionInfo.RegionSettings.WaterHeight);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ using OpenMetaverse;
|
|||
using OpenSim.Framework;
|
||||
using OpenSim.Region.PhysicsModules.SharedBase;
|
||||
using OpenSim.Region.PhysicsModule.ODE;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
using OpenSim.Tests.Common;
|
||||
using log4net;
|
||||
using System.Reflection;
|
||||
|
@ -44,15 +46,39 @@ namespace OpenSim.Region.PhysicsModule.ODE.Tests
|
|||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
//private OpenSim.Region.PhysicsModule.ODE.OdePlugin cbt;
|
||||
private PhysicsScene ps;
|
||||
private PhysicsScene pScene;
|
||||
private IMeshingPlugin imp;
|
||||
|
||||
[SetUp]
|
||||
public void Initialize()
|
||||
{
|
||||
IConfigSource TopConfig = new IniConfigSource();
|
||||
IConfig config = TopConfig.AddConfig("Startup");
|
||||
config.Set("DecodedSculptMapPath","j2kDecodeCache");
|
||||
IConfigSource openSimINI = new IniConfigSource();
|
||||
IConfig startupConfig = openSimINI.AddConfig("Startup");
|
||||
startupConfig.Set("physics", "OpenDynamicsEngine");
|
||||
startupConfig.Set("DecodedSculptMapPath", "j2kDecodeCache");
|
||||
|
||||
Vector3 regionExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, Constants.RegionHeight);
|
||||
|
||||
//PhysicsScene pScene = physicsPluginManager.GetPhysicsScene(
|
||||
// "BulletSim", "Meshmerizer", openSimINI, "BSTestRegion", regionExtent);
|
||||
RegionInfo info = new RegionInfo();
|
||||
info.RegionName = "ODETestRegion";
|
||||
info.RegionSizeX = info.RegionSizeY = info.RegionSizeZ = Constants.RegionSize;
|
||||
OpenSim.Region.Framework.Scenes.Scene scene = new OpenSim.Region.Framework.Scenes.Scene(info);
|
||||
|
||||
//IMesher mesher = new OpenSim.Region.PhysicsModules.Meshing.Meshmerizer();
|
||||
//INonSharedRegionModule mod = mesher as INonSharedRegionModule;
|
||||
//mod.Initialise(openSimINI);
|
||||
//mod.AddRegion(scene);
|
||||
//mod.RegionLoaded(scene);
|
||||
|
||||
pScene = new OdeScene();
|
||||
Console.WriteLine("HERE " + (pScene == null ? "Null" : "Not null"));
|
||||
INonSharedRegionModule mod = (pScene as INonSharedRegionModule);
|
||||
Console.WriteLine("HERE " + (mod == null ? "Null" : "Not null"));
|
||||
mod.Initialise(openSimINI);
|
||||
mod.AddRegion(scene);
|
||||
mod.RegionLoaded(scene);
|
||||
|
||||
// Loading ODEPlugin
|
||||
//cbt = new OdePlugin();
|
||||
|
@ -65,14 +91,14 @@ namespace OpenSim.Region.PhysicsModule.ODE.Tests
|
|||
{
|
||||
_heightmap[i] = 21f;
|
||||
}
|
||||
ps.SetTerrain(_heightmap);
|
||||
pScene.SetTerrain(_heightmap);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void Terminate()
|
||||
{
|
||||
ps.DeleteTerrain();
|
||||
ps.Dispose();
|
||||
pScene.DeleteTerrain();
|
||||
pScene.Dispose();
|
||||
|
||||
}
|
||||
|
||||
|
@ -83,9 +109,9 @@ namespace OpenSim.Region.PhysicsModule.ODE.Tests
|
|||
Vector3 position = new Vector3(((float)Constants.RegionSize * 0.5f), ((float)Constants.RegionSize * 0.5f), 128f);
|
||||
Vector3 size = new Vector3(0.5f, 0.5f, 0.5f);
|
||||
Quaternion rot = Quaternion.Identity;
|
||||
PhysicsActor prim = ps.AddPrimShape("CoolShape", newcube, position, size, rot, true, 0);
|
||||
PhysicsActor prim = pScene.AddPrimShape("CoolShape", newcube, position, size, rot, true, 0);
|
||||
OdePrim oprim = (OdePrim)prim;
|
||||
OdeScene pscene = (OdeScene) ps;
|
||||
OdeScene pscene = (OdeScene)pScene;
|
||||
|
||||
Assert.That(oprim.m_taintadd);
|
||||
|
||||
|
@ -93,7 +119,7 @@ namespace OpenSim.Region.PhysicsModule.ODE.Tests
|
|||
|
||||
for (int i = 0; i < 58; i++)
|
||||
{
|
||||
ps.Simulate(0.133f);
|
||||
pScene.Simulate(0.133f);
|
||||
|
||||
Assert.That(oprim.prim_geom != (IntPtr)0);
|
||||
|
||||
|
@ -117,9 +143,9 @@ namespace OpenSim.Region.PhysicsModule.ODE.Tests
|
|||
// Make sure we're not somewhere above the ground
|
||||
Assert.That(prim.Position.Z < 21.5f);
|
||||
|
||||
ps.RemovePrim(prim);
|
||||
pScene.RemovePrim(prim);
|
||||
Assert.That(oprim.m_taintremove);
|
||||
ps.Simulate(0.133f);
|
||||
pScene.Simulate(0.133f);
|
||||
Assert.That(oprim.Body == (IntPtr)0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,9 @@ namespace OpenSim.Region.PhysicsModule.POS
|
|||
PhysicsSceneName = EngineType + "/" + scene.RegionInfo.RegionName;
|
||||
|
||||
scene.RegisterModuleInterface<PhysicsScene>(this);
|
||||
base.Initialise(scene.PhysicsRequestAsset, scene.Heightmap.GetFloatsSerialised(), (float)scene.RegionInfo.RegionSettings.WaterHeight);
|
||||
base.Initialise(scene.PhysicsRequestAsset,
|
||||
(scene.Heightmap != null ? scene.Heightmap.GetFloatsSerialised() : new float[Constants.RegionSize * Constants.RegionSize]),
|
||||
(float)scene.RegionInfo.RegionSettings.WaterHeight);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -3396,7 +3396,8 @@
|
|||
<Reference name="OpenSim.Framework"/>
|
||||
<Reference name="OpenSim.Framework.Console"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModules.SharedBase"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModule.Ode" path="../../../../../bin/Physics/"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModule.Ode"/>
|
||||
<Reference name="OpenSim.Region.Framework"/>
|
||||
<Reference name="OpenSim.Tests.Common"/>
|
||||
<Reference name="Ode.NET" path="../../../../../bin/"/>
|
||||
<Reference name="nunit.framework" path="../../../../../bin/"/>
|
||||
|
@ -3431,9 +3432,9 @@
|
|||
<Reference name="OpenSim.Framework"/>
|
||||
<Reference name="OpenSim.Tests.Common"/>
|
||||
<Reference name="OpenSim.Region.Framework"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModules.Meshing" path="../../../../../bin/Physics/"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModules.Meshing"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModules.SharedBase"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModule.BulletS" path="../../../../../bin/Physics/"/>
|
||||
<Reference name="OpenSim.Region.PhysicsModule.BulletS"/>
|
||||
|
||||
<Files>
|
||||
<Match pattern="*.cs" recurse="false"/>
|
||||
|
|
Loading…
Reference in New Issue