Merge Master
parent
0080f28f1d
commit
6f689f591a
|
@ -81,7 +81,7 @@ namespace OpenSim.Region.Physics.Manager
|
|||
if (_MeshPlugins.ContainsKey(meshEngineName))
|
||||
{
|
||||
m_log.Info("[PHYSICS]: creating meshing engine " + meshEngineName);
|
||||
meshEngine = _MeshPlugins[meshEngineName].GetMesher();
|
||||
meshEngine = _MeshPlugins[meshEngineName].GetMesher(config);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -234,6 +234,6 @@ namespace OpenSim.Region.Physics.Manager
|
|||
public interface IMeshingPlugin
|
||||
{
|
||||
string GetName();
|
||||
IMesher GetMesher();
|
||||
IMesher GetMesher(IConfigSource config);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
using System;
|
||||
using OpenSim.Framework;
|
||||
using OpenMetaverse;
|
||||
using Nini.Config;
|
||||
|
||||
/*
|
||||
* This is the zero mesher.
|
||||
|
@ -53,7 +54,7 @@ namespace OpenSim.Region.Physics.Manager
|
|||
return "ZeroMesher";
|
||||
}
|
||||
|
||||
public IMesher GetMesher()
|
||||
public IMesher GetMesher(IConfigSource config)
|
||||
{
|
||||
return new ZeroMesher();
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ using System.Drawing;
|
|||
using System.Drawing.Imaging;
|
||||
using PrimMesher;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using System.Reflection;
|
||||
using System.IO;
|
||||
|
||||
|
@ -51,9 +52,9 @@ namespace OpenSim.Region.Physics.Meshing
|
|||
return "Meshmerizer";
|
||||
}
|
||||
|
||||
public IMesher GetMesher()
|
||||
public IMesher GetMesher(IConfigSource config)
|
||||
{
|
||||
return new Meshmerizer();
|
||||
return new Meshmerizer(config);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -70,14 +71,18 @@ namespace OpenSim.Region.Physics.Meshing
|
|||
#endif
|
||||
|
||||
private bool cacheSculptMaps = true;
|
||||
private string decodedScultMapPath = "j2kDecodeCache";
|
||||
private string decodedScultMapPath = null;
|
||||
|
||||
private float minSizeForComplexMesh = 0.2f; // prims with all dimensions smaller than this will have a bounding box mesh
|
||||
|
||||
private Dictionary<ulong, Mesh> m_uniqueMeshes = new Dictionary<ulong, Mesh>();
|
||||
|
||||
public Meshmerizer()
|
||||
public Meshmerizer(IConfigSource config)
|
||||
{
|
||||
IConfig start_config = config.Configs["Startup"];
|
||||
|
||||
decodedScultMapPath = start_config.GetString("DecodedSculpMapPath","j2kDecodeCache");
|
||||
|
||||
try
|
||||
{
|
||||
if (!Directory.Exists(decodedScultMapPath))
|
||||
|
|
|
@ -48,6 +48,10 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
[SetUp]
|
||||
public void Initialize()
|
||||
{
|
||||
IConfigSource TopConfig = new IniConfigSource();
|
||||
IConfig config = TopConfig.AddConfig("Startup");
|
||||
config.Set("DecodedSculpMapPath","j2kDecodeCache");
|
||||
|
||||
// Loading ODEPlugin
|
||||
cbt = new OdePlugin();
|
||||
// Loading Zero Mesher
|
||||
|
@ -55,7 +59,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
// Getting Physics Scene
|
||||
ps = cbt.GetScene("test");
|
||||
// Initializing Physics Scene.
|
||||
ps.Initialise(imp.GetMesher(),null);
|
||||
ps.Initialise(imp.GetMesher(TopConfig),null);
|
||||
float[] _heightmap = new float[(int)Constants.RegionSize * (int)Constants.RegionSize];
|
||||
for (int i = 0; i < ((int)Constants.RegionSize * (int)Constants.RegionSize); i++)
|
||||
{
|
||||
|
|
|
@ -82,6 +82,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
|
|||
IConfig Config { get; }
|
||||
IConfigSource ConfigSource { get; }
|
||||
string ScriptEngineName { get; }
|
||||
string ScriptEnginePath { get; }
|
||||
IScriptApi GetApi(UUID itemID, string name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ using System.Reflection;
|
|||
namespace OpenSim.Region.ScriptEngine.Shared
|
||||
{
|
||||
[Serializable]
|
||||
public class AssemblyResolver
|
||||
public class AssemblyResolver : MarshalByRefObject
|
||||
{
|
||||
public static Assembly OnAssemblyResolve(object sender,
|
||||
ResolveEventArgs args)
|
||||
|
@ -42,9 +42,10 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
|
||||
AppDomain myDomain = (AppDomain)sender;
|
||||
string dirName = myDomain.FriendlyName;
|
||||
string ScriptEnginesPath = myDomain.SetupInformation.PrivateBinPath;
|
||||
|
||||
string[] pathList = new string[] {"bin", "ScriptEngines",
|
||||
Path.Combine("ScriptEngines", dirName)};
|
||||
string[] pathList = new string[] {"bin", ScriptEnginesPath,
|
||||
Path.Combine(ScriptEnginesPath, dirName)};
|
||||
|
||||
string assemblyName = args.Name;
|
||||
if (assemblyName.IndexOf(",") != -1)
|
||||
|
|
|
@ -72,7 +72,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
|||
private Dictionary<string, enumCompileType> LanguageMapping = new Dictionary<string, enumCompileType>(StringComparer.CurrentCultureIgnoreCase);
|
||||
|
||||
private string FilePrefix;
|
||||
private string ScriptEnginesPath = "ScriptEngines";
|
||||
private string ScriptEnginesPath = null;
|
||||
// mapping between LSL and C# line/column numbers
|
||||
private ICodeConverter LSL_Converter;
|
||||
|
||||
|
@ -95,7 +95,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
|||
|
||||
public Compiler(IScriptEngine scriptEngine)
|
||||
{
|
||||
m_scriptEngine = scriptEngine;
|
||||
m_scriptEngine = scriptEngine;;
|
||||
ScriptEnginesPath = scriptEngine.ScriptEnginePath;
|
||||
ReadConfig();
|
||||
}
|
||||
|
||||
|
|
|
@ -89,6 +89,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
private IXmlRpcRouter m_XmlRpcRouter;
|
||||
private int m_EventLimit;
|
||||
private bool m_KillTimedOutScripts;
|
||||
private string m_ScriptEnginesPath = null;
|
||||
|
||||
private static List<XEngine> m_ScriptEngines =
|
||||
new List<XEngine>();
|
||||
|
@ -224,6 +225,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
get { return m_ScriptConfig; }
|
||||
}
|
||||
|
||||
public string ScriptEnginePath
|
||||
{
|
||||
get { return m_ScriptEnginesPath; }
|
||||
}
|
||||
|
||||
public IConfigSource ConfigSource
|
||||
{
|
||||
get { return m_ConfigSource; }
|
||||
|
@ -281,6 +287,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
m_EventLimit = m_ScriptConfig.GetInt("EventLimit", 30);
|
||||
m_KillTimedOutScripts = m_ScriptConfig.GetBoolean("KillTimedOutScripts", false);
|
||||
m_SaveTime = m_ScriptConfig.GetInt("SaveInterval", 120) * 1000;
|
||||
m_ScriptEnginesPath = m_ScriptConfig.GetString("ScriptEnginesPath", "ScriptEngines");
|
||||
|
||||
m_Prio = ThreadPriority.BelowNormal;
|
||||
switch (priority)
|
||||
|
@ -1040,7 +1047,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
startInfo.IdleTimeout = idleTimeout*1000; // convert to seconds as stated in .ini
|
||||
startInfo.MaxWorkerThreads = maxThreads;
|
||||
startInfo.MinWorkerThreads = minThreads;
|
||||
startInfo.ThreadPriority = threadPriority;
|
||||
startInfo.ThreadPriority = threadPriority;;
|
||||
startInfo.StackSize = stackSize;
|
||||
startInfo.StartSuspended = true;
|
||||
|
||||
|
@ -1186,8 +1193,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
if (!(sender is System.AppDomain))
|
||||
return null;
|
||||
|
||||
string[] pathList = new string[] {"bin", "ScriptEngines",
|
||||
Path.Combine("ScriptEngines",
|
||||
string[] pathList = new string[] {"bin", m_ScriptEnginesPath,
|
||||
Path.Combine(m_ScriptEnginesPath,
|
||||
m_Scene.RegionInfo.RegionID.ToString())};
|
||||
|
||||
string assemblyName = args.Name;
|
||||
|
@ -1564,7 +1571,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
string fn = assemE.GetAttribute("Filename");
|
||||
string base64 = assemE.InnerText;
|
||||
|
||||
string path = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
|
||||
string path = Path.Combine(m_ScriptEnginesPath, World.RegionInfo.RegionID.ToString());
|
||||
path = Path.Combine(path, fn);
|
||||
|
||||
if (!File.Exists(path))
|
||||
|
@ -1604,7 +1611,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
}
|
||||
}
|
||||
|
||||
string statepath = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
|
||||
string statepath = Path.Combine(m_ScriptEnginesPath, World.RegionInfo.RegionID.ToString());
|
||||
statepath = Path.Combine(statepath, itemID.ToString() + ".state");
|
||||
|
||||
try
|
||||
|
@ -1630,7 +1637,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
{
|
||||
XmlElement mapE = (XmlElement)mapL[0];
|
||||
|
||||
string mappath = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
|
||||
string mappath = Path.Combine(m_ScriptEnginesPath, World.RegionInfo.RegionID.ToString());
|
||||
mappath = Path.Combine(mappath, mapE.GetAttribute("Filename"));
|
||||
|
||||
try
|
||||
|
|
|
@ -546,6 +546,10 @@
|
|||
;; prims
|
||||
; DisableUndergroundMovement = true
|
||||
|
||||
;; Path to script engine assemblies
|
||||
;; Default is ./bin/ScriptEngines
|
||||
; ScriptEnginesPath = "ScriptEngines"
|
||||
|
||||
[MRM]
|
||||
;; Enables the Mini Region Modules Script Engine.
|
||||
;; default is false
|
||||
|
|
|
@ -136,6 +136,10 @@
|
|||
meshing = Meshmerizer
|
||||
;meshing = ZeroMesher
|
||||
|
||||
;; Path to decoded sculpty maps
|
||||
;; Defaults to "j2kDecodeCache
|
||||
;DecodedSculpMapPath = "j2kDecodeCache"
|
||||
|
||||
; Choose one of the physics engines below
|
||||
; OpenDynamicsEngine is by some distance the most developed physics engine
|
||||
; basicphysics effectively does not model physics at all, making all objects phantom
|
||||
|
@ -1000,6 +1004,8 @@
|
|||
; prims
|
||||
; DisableUndergroundMovement = true
|
||||
|
||||
;; Path to script assemblies
|
||||
; ScriptEnginesPath = "ScriptEngines"
|
||||
|
||||
[OpenGridProtocol]
|
||||
;These are the settings for the Open Grid Protocol.. the Agent Domain, Region Domain, you know..
|
||||
|
|
Loading…
Reference in New Issue