aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Prioritizer.cs14
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs35
2 files changed, 32 insertions, 17 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Prioritizer.cs b/OpenSim/Region/Framework/Scenes/Prioritizer.cs
index af25014..e6a4642 100644
--- a/OpenSim/Region/Framework/Scenes/Prioritizer.cs
+++ b/OpenSim/Region/Framework/Scenes/Prioritizer.cs
@@ -5,6 +5,18 @@ using Nini.Config;
5using OpenSim.Framework; 5using OpenSim.Framework;
6using OpenMetaverse; 6using OpenMetaverse;
7 7
8/*
9 * Steps to add a new prioritization policy:
10 *
11 * - Add a new value to the UpdatePrioritizationSchemes enum.
12 * - Specify this new value in the [InterestManagement] section of your
13 * OpenSim.ini. The name in the config file must match the enum value name
14 * (although it is not case sensitive).
15 * - Write a new GetPriorityBy*() method in this class.
16 * - Add a new entry to the switch statement in GetUpdatePriority() that calls
17 * your method.
18 */
19
8namespace OpenSim.Region.Framework.Scenes 20namespace OpenSim.Region.Framework.Scenes
9{ 21{
10 public enum UpdatePrioritizationSchemes 22 public enum UpdatePrioritizationSchemes
@@ -35,7 +47,7 @@ namespace OpenSim.Region.Framework.Scenes
35 case UpdatePrioritizationSchemes.Distance: 47 case UpdatePrioritizationSchemes.Distance:
36 return GetPriorityByDistance(client, entity); 48 return GetPriorityByDistance(client, entity);
37 case UpdatePrioritizationSchemes.SimpleAngularDistance: 49 case UpdatePrioritizationSchemes.SimpleAngularDistance:
38 return GetPriorityByDistance(client, entity); 50 return GetPriorityByDistance(client, entity); // TODO: Reimplement SimpleAngularDistance
39 case UpdatePrioritizationSchemes.FrontBack: 51 case UpdatePrioritizationSchemes.FrontBack:
40 return GetPriorityByFrontBack(client, entity); 52 return GetPriorityByFrontBack(client, entity);
41 default: 53 default:
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index f35dffc..46fbcd3 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -794,25 +794,28 @@ namespace OpenSim.Region.Framework.Scenes
794 794
795 #region Interest Management 795 #region Interest Management
796 796
797 IConfig interestConfig = m_config.Configs["InterestManagement"]; 797 if (m_config != null)
798 if (interestConfig != null)
799 { 798 {
800 string update_prioritization_scheme = interestConfig.GetString("UpdatePrioritizationScheme", "Time").Trim().ToLower(); 799 IConfig interestConfig = m_config.Configs["InterestManagement"];
801 800 if (interestConfig != null)
802 try
803 { 801 {
804 m_priorityScheme = (UpdatePrioritizationSchemes)Enum.Parse(typeof(UpdatePrioritizationSchemes), update_prioritization_scheme, true); 802 string update_prioritization_scheme = interestConfig.GetString("UpdatePrioritizationScheme", "Time").Trim().ToLower();
805 }
806 catch (Exception)
807 {
808 m_log.Warn("[PRIORITIZER]: UpdatePrioritizationScheme was not recognized, setting to default prioritizer Time");
809 m_priorityScheme = UpdatePrioritizationSchemes.Time;
810 }
811 803
812 m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true); 804 try
813 m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0); 805 {
814 m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0); 806 m_priorityScheme = (UpdatePrioritizationSchemes)Enum.Parse(typeof(UpdatePrioritizationSchemes), update_prioritization_scheme, true);
815 m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0); 807 }
808 catch (Exception)
809 {
810 m_log.Warn("[PRIORITIZER]: UpdatePrioritizationScheme was not recognized, setting to default prioritizer Time");
811 m_priorityScheme = UpdatePrioritizationSchemes.Time;
812 }
813
814 m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true);
815 m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0);
816 m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0);
817 m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0);
818 }
816 } 819 }
817 820
818 m_log.Info("[SCENE]: Using the " + m_priorityScheme + " prioritization scheme"); 821 m_log.Info("[SCENE]: Using the " + m_priorityScheme + " prioritization scheme");