Merge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim
commit
6918446fcd
|
@ -5,6 +5,18 @@ using Nini.Config;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Steps to add a new prioritization policy:
|
||||||
|
*
|
||||||
|
* - Add a new value to the UpdatePrioritizationSchemes enum.
|
||||||
|
* - Specify this new value in the [InterestManagement] section of your
|
||||||
|
* OpenSim.ini. The name in the config file must match the enum value name
|
||||||
|
* (although it is not case sensitive).
|
||||||
|
* - Write a new GetPriorityBy*() method in this class.
|
||||||
|
* - Add a new entry to the switch statement in GetUpdatePriority() that calls
|
||||||
|
* your method.
|
||||||
|
*/
|
||||||
|
|
||||||
namespace OpenSim.Region.Framework.Scenes
|
namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
public enum UpdatePrioritizationSchemes
|
public enum UpdatePrioritizationSchemes
|
||||||
|
@ -35,7 +47,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
case UpdatePrioritizationSchemes.Distance:
|
case UpdatePrioritizationSchemes.Distance:
|
||||||
return GetPriorityByDistance(client, entity);
|
return GetPriorityByDistance(client, entity);
|
||||||
case UpdatePrioritizationSchemes.SimpleAngularDistance:
|
case UpdatePrioritizationSchemes.SimpleAngularDistance:
|
||||||
return GetPriorityByDistance(client, entity);
|
return GetPriorityByDistance(client, entity); // TODO: Reimplement SimpleAngularDistance
|
||||||
case UpdatePrioritizationSchemes.FrontBack:
|
case UpdatePrioritizationSchemes.FrontBack:
|
||||||
return GetPriorityByFrontBack(client, entity);
|
return GetPriorityByFrontBack(client, entity);
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -794,25 +794,28 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
#region Interest Management
|
#region Interest Management
|
||||||
|
|
||||||
IConfig interestConfig = m_config.Configs["InterestManagement"];
|
if (m_config != null)
|
||||||
if (interestConfig != null)
|
|
||||||
{
|
{
|
||||||
string update_prioritization_scheme = interestConfig.GetString("UpdatePrioritizationScheme", "Time").Trim().ToLower();
|
IConfig interestConfig = m_config.Configs["InterestManagement"];
|
||||||
|
if (interestConfig != null)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
m_priorityScheme = (UpdatePrioritizationSchemes)Enum.Parse(typeof(UpdatePrioritizationSchemes), update_prioritization_scheme, true);
|
string update_prioritization_scheme = interestConfig.GetString("UpdatePrioritizationScheme", "Time").Trim().ToLower();
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
m_log.Warn("[PRIORITIZER]: UpdatePrioritizationScheme was not recognized, setting to default prioritizer Time");
|
|
||||||
m_priorityScheme = UpdatePrioritizationSchemes.Time;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true);
|
try
|
||||||
m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0);
|
{
|
||||||
m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0);
|
m_priorityScheme = (UpdatePrioritizationSchemes)Enum.Parse(typeof(UpdatePrioritizationSchemes), update_prioritization_scheme, true);
|
||||||
m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0);
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
m_log.Warn("[PRIORITIZER]: UpdatePrioritizationScheme was not recognized, setting to default prioritizer Time");
|
||||||
|
m_priorityScheme = UpdatePrioritizationSchemes.Time;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true);
|
||||||
|
m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0);
|
||||||
|
m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0);
|
||||||
|
m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.Info("[SCENE]: Using the " + m_priorityScheme + " prioritization scheme");
|
m_log.Info("[SCENE]: Using the " + m_priorityScheme + " prioritization scheme");
|
||||||
|
|
Loading…
Reference in New Issue