diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 194 |
1 files changed, 100 insertions, 94 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 0d0823e..e5d0c3f 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -71,7 +71,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
71 | protected List<RegionInfo> m_regionRestartNotifyList = new List<RegionInfo>(); | 71 | protected List<RegionInfo> m_regionRestartNotifyList = new List<RegionInfo>(); |
72 | protected List<RegionInfo> m_neighbours = new List<RegionInfo>(); | 72 | protected List<RegionInfo> m_neighbours = new List<RegionInfo>(); |
73 | 73 | ||
74 | public InnerScene m_innerScene; | 74 | /// <value> |
75 | /// The scene graph for this scene | ||
76 | /// </value> | ||
77 | /// TODO: Possibly stop other classes being able to manipulate this directly. | ||
78 | public SceneGraph m_sceneGraph; | ||
75 | 79 | ||
76 | private int m_timePhase = 24; | 80 | private int m_timePhase = 24; |
77 | 81 | ||
@@ -179,14 +183,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
179 | // an instance to the physics plugin's Scene object. | 183 | // an instance to the physics plugin's Scene object. |
180 | public PhysicsScene PhysicsScene | 184 | public PhysicsScene PhysicsScene |
181 | { | 185 | { |
182 | set { m_innerScene.PhysicsScene = value; } | 186 | set { m_sceneGraph.PhysicsScene = value; } |
183 | get { return (m_innerScene.PhysicsScene); } | 187 | get { return (m_sceneGraph.PhysicsScene); } |
184 | } | 188 | } |
185 | 189 | ||
186 | // This gets locked so things stay thread safe. | 190 | // This gets locked so things stay thread safe. |
187 | public object SyncRoot | 191 | public object SyncRoot |
188 | { | 192 | { |
189 | get { return m_innerScene.m_syncRoot; } | 193 | get { return m_sceneGraph.m_syncRoot; } |
190 | } | 194 | } |
191 | 195 | ||
192 | public float TimeDilation | 196 | public float TimeDilation |
@@ -212,23 +216,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
212 | get { return m_defaultScriptEngine; } | 216 | get { return m_defaultScriptEngine; } |
213 | } | 217 | } |
214 | 218 | ||
215 | // Local reference to the objects in the scene (which are held in innerScene) | 219 | // Local reference to the objects in the scene (which are held in the scenegraph) |
216 | // public Dictionary<UUID, SceneObjectGroup> Objects | 220 | // public Dictionary<UUID, SceneObjectGroup> Objects |
217 | // { | 221 | // { |
218 | // get { return m_innerScene.SceneObjects; } | 222 | // get { return m_sceneGraph.SceneObjects; } |
219 | // } | 223 | // } |
220 | 224 | ||
221 | // Reference to all of the agents in the scene (root and child) | 225 | // Reference to all of the agents in the scene (root and child) |
222 | protected Dictionary<UUID, ScenePresence> m_scenePresences | 226 | protected Dictionary<UUID, ScenePresence> m_scenePresences |
223 | { | 227 | { |
224 | get { return m_innerScene.ScenePresences; } | 228 | get { return m_sceneGraph.ScenePresences; } |
225 | set { m_innerScene.ScenePresences = value; } | 229 | set { m_sceneGraph.ScenePresences = value; } |
226 | } | 230 | } |
227 | 231 | ||
228 | // protected Dictionary<UUID, SceneObjectGroup> m_sceneObjects | 232 | // protected Dictionary<UUID, SceneObjectGroup> m_sceneObjects |
229 | // { | 233 | // { |
230 | // get { return m_innerScene.SceneObjects; } | 234 | // get { return m_sceneGraph.SceneObjects; } |
231 | // set { m_innerScene.SceneObjects = value; } | 235 | // set { m_sceneGraph.SceneObjects = value; } |
232 | // } | 236 | // } |
233 | 237 | ||
234 | /// <summary> | 238 | /// <summary> |
@@ -241,14 +245,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
241 | /// </summary> | 245 | /// </summary> |
242 | public Dictionary<UUID, EntityBase> Entities | 246 | public Dictionary<UUID, EntityBase> Entities |
243 | { | 247 | { |
244 | get { return m_innerScene.Entities; } | 248 | get { return m_sceneGraph.Entities; } |
245 | set { m_innerScene.Entities = value; } | 249 | set { m_sceneGraph.Entities = value; } |
246 | } | 250 | } |
247 | 251 | ||
248 | public Dictionary<UUID, ScenePresence> m_restorePresences | 252 | public Dictionary<UUID, ScenePresence> m_restorePresences |
249 | { | 253 | { |
250 | get { return m_innerScene.RestorePresences; } | 254 | get { return m_sceneGraph.RestorePresences; } |
251 | set { m_innerScene.RestorePresences = value; } | 255 | set { m_sceneGraph.RestorePresences = value; } |
252 | } | 256 | } |
253 | 257 | ||
254 | public int objectCapacity = 45000; | 258 | public int objectCapacity = 45000; |
@@ -296,15 +300,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
296 | EventManager.OnLandObjectRemoved += | 300 | EventManager.OnLandObjectRemoved += |
297 | new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject); | 301 | new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject); |
298 | 302 | ||
299 | m_innerScene = new InnerScene(this, m_regInfo); | 303 | m_sceneGraph = new SceneGraph(this, m_regInfo); |
300 | 304 | ||
301 | // If the Inner scene has an Unrecoverable error, restart this sim. | 305 | // If the scene graph has an Unrecoverable error, restart this sim. |
302 | // Currently the only thing that causes it to happen is two kinds of specific | 306 | // Currently the only thing that causes it to happen is two kinds of specific |
303 | // Physics based crashes. | 307 | // Physics based crashes. |
304 | // | 308 | // |
305 | // Out of memory | 309 | // Out of memory |
306 | // Operating system has killed the plugin | 310 | // Operating system has killed the plugin |
307 | m_innerScene.UnRecoverableError += RestartNow; | 311 | m_sceneGraph.UnRecoverableError += RestartNow; |
308 | 312 | ||
309 | RegisterDefaultSceneEvents(); | 313 | RegisterDefaultSceneEvents(); |
310 | 314 | ||
@@ -644,11 +648,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
644 | 648 | ||
645 | // Stop all client threads. | 649 | // Stop all client threads. |
646 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); | 650 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); |
651 | |||
647 | // Stop updating the scene objects and agents. | 652 | // Stop updating the scene objects and agents. |
648 | //m_heartbeatTimer.Close(); | 653 | //m_heartbeatTimer.Close(); |
649 | shuttingdown = true; | 654 | shuttingdown = true; |
650 | // close the inner scene | 655 | |
651 | m_innerScene.Close(); | 656 | m_sceneGraph.Close(); |
657 | |||
652 | // De-register with region communications (events cleanup) | 658 | // De-register with region communications (events cleanup) |
653 | UnRegisterRegionWithComms(); | 659 | UnRegisterRegionWithComms(); |
654 | 660 | ||
@@ -726,7 +732,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
726 | //updateLock.WaitOne(); | 732 | //updateLock.WaitOne(); |
727 | float physicsFPS = 0; | 733 | float physicsFPS = 0; |
728 | //m_log.Info("sadfadf" + m_neighbours.Count.ToString()); | 734 | //m_log.Info("sadfadf" + m_neighbours.Count.ToString()); |
729 | int agentsInScene = m_innerScene.GetRootAgentCount() + m_innerScene.GetChildAgentCount(); | 735 | int agentsInScene = m_sceneGraph.GetRootAgentCount() + m_sceneGraph.GetChildAgentCount(); |
730 | 736 | ||
731 | if (agentsInScene > 21) | 737 | if (agentsInScene > 21) |
732 | { | 738 | { |
@@ -757,15 +763,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
757 | 763 | ||
758 | physicsMS2 = System.Environment.TickCount; | 764 | physicsMS2 = System.Environment.TickCount; |
759 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) | 765 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) |
760 | m_innerScene.UpdatePreparePhysics(); | 766 | m_sceneGraph.UpdatePreparePhysics(); |
761 | physicsMS2 = System.Environment.TickCount - physicsMS2; | 767 | physicsMS2 = System.Environment.TickCount - physicsMS2; |
762 | 768 | ||
763 | if (m_frame % m_update_entitymovement == 0) | 769 | if (m_frame % m_update_entitymovement == 0) |
764 | m_innerScene.UpdateEntityMovement(); | 770 | m_sceneGraph.UpdateEntityMovement(); |
765 | 771 | ||
766 | physicsMS = System.Environment.TickCount; | 772 | physicsMS = System.Environment.TickCount; |
767 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) | 773 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) |
768 | physicsFPS = m_innerScene.UpdatePhysics( | 774 | physicsFPS = m_sceneGraph.UpdatePhysics( |
769 | Math.Max(SinceLastFrame.TotalSeconds, m_timespan) | 775 | Math.Max(SinceLastFrame.TotalSeconds, m_timespan) |
770 | ); | 776 | ); |
771 | if (m_frame % m_update_physics == 0 && SynchronizeScene != null) | 777 | if (m_frame % m_update_physics == 0 && SynchronizeScene != null) |
@@ -777,16 +783,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
777 | otherMS = System.Environment.TickCount; | 783 | otherMS = System.Environment.TickCount; |
778 | // run through all entities looking for updates (slow) | 784 | // run through all entities looking for updates (slow) |
779 | if (m_frame % m_update_entities == 0) | 785 | if (m_frame % m_update_entities == 0) |
780 | m_innerScene.UpdateEntities(); | 786 | m_sceneGraph.UpdateEntities(); |
781 | 787 | ||
782 | // run through entities that have scheduled themselves for | 788 | // run through entities that have scheduled themselves for |
783 | // updates looking for updates(faster) | 789 | // updates looking for updates(faster) |
784 | if (m_frame % m_update_entitiesquick == 0) | 790 | if (m_frame % m_update_entitiesquick == 0) |
785 | m_innerScene.ProcessUpdates(); | 791 | m_sceneGraph.ProcessUpdates(); |
786 | 792 | ||
787 | // Run through scenepresences looking for updates | 793 | // Run through scenepresences looking for updates |
788 | if (m_frame % m_update_presences == 0) | 794 | if (m_frame % m_update_presences == 0) |
789 | m_innerScene.UpdatePresences(); | 795 | m_sceneGraph.UpdatePresences(); |
790 | 796 | ||
791 | // Delete temp-on-rez stuff | 797 | // Delete temp-on-rez stuff |
792 | if (m_frame % m_update_backup == 0) | 798 | if (m_frame % m_update_backup == 0) |
@@ -814,16 +820,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
814 | m_statsReporter.AddTimeDilation(m_timedilation); | 820 | m_statsReporter.AddTimeDilation(m_timedilation); |
815 | m_statsReporter.AddFPS(1); | 821 | m_statsReporter.AddFPS(1); |
816 | m_statsReporter.AddInPackets(0); | 822 | m_statsReporter.AddInPackets(0); |
817 | m_statsReporter.SetRootAgents(m_innerScene.GetRootAgentCount()); | 823 | m_statsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount()); |
818 | m_statsReporter.SetChildAgents(m_innerScene.GetChildAgentCount()); | 824 | m_statsReporter.SetChildAgents(m_sceneGraph.GetChildAgentCount()); |
819 | m_statsReporter.SetObjects(m_innerScene.GetTotalObjectsCount()); | 825 | m_statsReporter.SetObjects(m_sceneGraph.GetTotalObjectsCount()); |
820 | m_statsReporter.SetActiveObjects(m_innerScene.GetActiveObjectsCount()); | 826 | m_statsReporter.SetActiveObjects(m_sceneGraph.GetActiveObjectsCount()); |
821 | frameMS = System.Environment.TickCount - frameMS; | 827 | frameMS = System.Environment.TickCount - frameMS; |
822 | m_statsReporter.addFrameMS(frameMS); | 828 | m_statsReporter.addFrameMS(frameMS); |
823 | m_statsReporter.addPhysicsMS(physicsMS); | 829 | m_statsReporter.addPhysicsMS(physicsMS); |
824 | m_statsReporter.addOtherMS(otherMS); | 830 | m_statsReporter.addOtherMS(otherMS); |
825 | m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScriptsCount()); | 831 | m_statsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount()); |
826 | m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS()); | 832 | m_statsReporter.addScriptLines(m_sceneGraph.GetScriptLPS()); |
827 | } | 833 | } |
828 | } | 834 | } |
829 | catch (NotImplementedException) | 835 | catch (NotImplementedException) |
@@ -1163,7 +1169,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1163 | //AXdirection = new Vector3(direction.X, direction.Y, direction.Z); | 1169 | //AXdirection = new Vector3(direction.X, direction.Y, direction.Z); |
1164 | 1170 | ||
1165 | //testRay = new Ray(AXOrigin, AXdirection); | 1171 | //testRay = new Ray(AXOrigin, AXdirection); |
1166 | //rt = m_innerScene.GetClosestIntersectingPrim(testRay); | 1172 | //rt = m_sceneGraph.GetClosestIntersectingPrim(testRay); |
1167 | 1173 | ||
1168 | //if (rt.HitTF) | 1174 | //if (rt.HitTF) |
1169 | //{ | 1175 | //{ |
@@ -1642,7 +1648,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1642 | 1648 | ||
1643 | // TODO: Raytrace better here | 1649 | // TODO: Raytrace better here |
1644 | 1650 | ||
1645 | //EntityIntersection ei = m_innerScene.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection)); | 1651 | //EntityIntersection ei = m_sceneGraph.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection)); |
1646 | Ray NewRay = new Ray(AXOrigin, AXdirection); | 1652 | Ray NewRay = new Ray(AXOrigin, AXdirection); |
1647 | 1653 | ||
1648 | // Ray Trace against target here | 1654 | // Ray Trace against target here |
@@ -1676,7 +1682,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1676 | { | 1682 | { |
1677 | // We don't have a target here, so we're going to raytrace all the objects in the scene. | 1683 | // We don't have a target here, so we're going to raytrace all the objects in the scene. |
1678 | 1684 | ||
1679 | EntityIntersection ei = m_innerScene.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection), true, false); | 1685 | EntityIntersection ei = m_sceneGraph.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection), true, false); |
1680 | 1686 | ||
1681 | // Un-comment the following line to print the raytrace results to the console. | 1687 | // Un-comment the following line to print the raytrace results to the console. |
1682 | //m_log.Info("[RAYTRACERESULTS]: Hit:" + ei.HitTF.ToString() + " Point: " + ei.ipoint.ToString() + " Normal: " + ei.normal.ToString()); | 1688 | //m_log.Info("[RAYTRACERESULTS]: Hit:" + ei.HitTF.ToString() + " Point: " + ei.ipoint.ToString() + " Normal: " + ei.normal.ToString()); |
@@ -1790,7 +1796,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1790 | public bool AddRestoredSceneObject( | 1796 | public bool AddRestoredSceneObject( |
1791 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted) | 1797 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted) |
1792 | { | 1798 | { |
1793 | return m_innerScene.AddRestoredSceneObject(sceneObject, attachToBackup, alreadyPersisted); | 1799 | return m_sceneGraph.AddRestoredSceneObject(sceneObject, attachToBackup, alreadyPersisted); |
1794 | } | 1800 | } |
1795 | 1801 | ||
1796 | /// <summary> | 1802 | /// <summary> |
@@ -1803,7 +1809,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1803 | /// </param> | 1809 | /// </param> |
1804 | public bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup) | 1810 | public bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup) |
1805 | { | 1811 | { |
1806 | return m_innerScene.AddNewSceneObject(sceneObject, attachToBackup); | 1812 | return m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup); |
1807 | } | 1813 | } |
1808 | 1814 | ||
1809 | /// <summary> | 1815 | /// <summary> |
@@ -1869,7 +1875,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1869 | /// <returns>true if the object was in the scene, false if it was not</returns> | 1875 | /// <returns>true if the object was in the scene, false if it was not</returns> |
1870 | public bool UnlinkSceneObject(UUID uuid, bool resultOfLinkingObjects) | 1876 | public bool UnlinkSceneObject(UUID uuid, bool resultOfLinkingObjects) |
1871 | { | 1877 | { |
1872 | if (m_innerScene.DeleteSceneObject(uuid, resultOfLinkingObjects)) | 1878 | if (m_sceneGraph.DeleteSceneObject(uuid, resultOfLinkingObjects)) |
1873 | { | 1879 | { |
1874 | if (!resultOfLinkingObjects) | 1880 | if (!resultOfLinkingObjects) |
1875 | m_storageManager.DataStore.RemoveObject(uuid, | 1881 | m_storageManager.DataStore.RemoveObject(uuid, |
@@ -2203,7 +2209,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2203 | 2209 | ||
2204 | presence.initializeScenePresence(client, RegionInfo, this); | 2210 | presence.initializeScenePresence(client, RegionInfo, this); |
2205 | 2211 | ||
2206 | m_innerScene.AddScenePresence(presence); | 2212 | m_sceneGraph.AddScenePresence(presence); |
2207 | 2213 | ||
2208 | lock (m_restorePresences) | 2214 | lock (m_restorePresences) |
2209 | { | 2215 | { |
@@ -2228,40 +2234,40 @@ namespace OpenSim.Region.Environment.Scenes | |||
2228 | { | 2234 | { |
2229 | client.OnRegionHandShakeReply += SendLayerData; | 2235 | client.OnRegionHandShakeReply += SendLayerData; |
2230 | client.OnAddPrim += AddNewPrim; | 2236 | client.OnAddPrim += AddNewPrim; |
2231 | client.OnUpdatePrimGroupPosition += m_innerScene.UpdatePrimPosition; | 2237 | client.OnUpdatePrimGroupPosition += m_sceneGraph.UpdatePrimPosition; |
2232 | client.OnUpdatePrimSinglePosition += m_innerScene.UpdatePrimSinglePosition; | 2238 | client.OnUpdatePrimSinglePosition += m_sceneGraph.UpdatePrimSinglePosition; |
2233 | client.OnUpdatePrimGroupRotation += m_innerScene.UpdatePrimRotation; | 2239 | client.OnUpdatePrimGroupRotation += m_sceneGraph.UpdatePrimRotation; |
2234 | client.OnUpdatePrimGroupMouseRotation += m_innerScene.UpdatePrimRotation; | 2240 | client.OnUpdatePrimGroupMouseRotation += m_sceneGraph.UpdatePrimRotation; |
2235 | client.OnUpdatePrimSingleRotation += m_innerScene.UpdatePrimSingleRotation; | 2241 | client.OnUpdatePrimSingleRotation += m_sceneGraph.UpdatePrimSingleRotation; |
2236 | client.OnUpdatePrimScale += m_innerScene.UpdatePrimScale; | 2242 | client.OnUpdatePrimScale += m_sceneGraph.UpdatePrimScale; |
2237 | client.OnUpdatePrimGroupScale += m_innerScene.UpdatePrimGroupScale; | 2243 | client.OnUpdatePrimGroupScale += m_sceneGraph.UpdatePrimGroupScale; |
2238 | client.OnUpdateExtraParams += m_innerScene.UpdateExtraParam; | 2244 | client.OnUpdateExtraParams += m_sceneGraph.UpdateExtraParam; |
2239 | client.OnUpdatePrimShape += m_innerScene.UpdatePrimShape; | 2245 | client.OnUpdatePrimShape += m_sceneGraph.UpdatePrimShape; |
2240 | //client.OnRequestMapBlocks += RequestMapBlocks; // handled in a module now. | 2246 | //client.OnRequestMapBlocks += RequestMapBlocks; // handled in a module now. |
2241 | client.OnUpdatePrimTexture += m_innerScene.UpdatePrimTexture; | 2247 | client.OnUpdatePrimTexture += m_sceneGraph.UpdatePrimTexture; |
2242 | client.OnTeleportLocationRequest += RequestTeleportLocation; | 2248 | client.OnTeleportLocationRequest += RequestTeleportLocation; |
2243 | client.OnTeleportLandmarkRequest += RequestTeleportLandmark; | 2249 | client.OnTeleportLandmarkRequest += RequestTeleportLandmark; |
2244 | client.OnObjectSelect += SelectPrim; | 2250 | client.OnObjectSelect += SelectPrim; |
2245 | client.OnObjectDeselect += DeselectPrim; | 2251 | client.OnObjectDeselect += DeselectPrim; |
2246 | client.OnGrabUpdate += m_innerScene.MoveObject; | 2252 | client.OnGrabUpdate += m_sceneGraph.MoveObject; |
2247 | client.OnDeRezObject += DeRezObject; | 2253 | client.OnDeRezObject += DeRezObject; |
2248 | client.OnRezObject += RezObject; | 2254 | client.OnRezObject += RezObject; |
2249 | client.OnRezSingleAttachmentFromInv += RezSingleAttachment; | 2255 | client.OnRezSingleAttachmentFromInv += RezSingleAttachment; |
2250 | client.OnDetachAttachmentIntoInv += DetachSingleAttachmentToInv; | 2256 | client.OnDetachAttachmentIntoInv += DetachSingleAttachmentToInv; |
2251 | client.OnObjectAttach += m_innerScene.AttachObject; | 2257 | client.OnObjectAttach += m_sceneGraph.AttachObject; |
2252 | client.OnObjectDetach += m_innerScene.DetachObject; | 2258 | client.OnObjectDetach += m_sceneGraph.DetachObject; |
2253 | client.OnObjectDrop += m_innerScene.DropObject; | 2259 | client.OnObjectDrop += m_sceneGraph.DropObject; |
2254 | client.OnNameFromUUIDRequest += CommsManager.HandleUUIDNameRequest; | 2260 | client.OnNameFromUUIDRequest += CommsManager.HandleUUIDNameRequest; |
2255 | client.OnObjectDescription += m_innerScene.PrimDescription; | 2261 | client.OnObjectDescription += m_sceneGraph.PrimDescription; |
2256 | client.OnObjectName += m_innerScene.PrimName; | 2262 | client.OnObjectName += m_sceneGraph.PrimName; |
2257 | client.OnObjectClickAction += m_innerScene.PrimClickAction; | 2263 | client.OnObjectClickAction += m_sceneGraph.PrimClickAction; |
2258 | client.OnObjectMaterial += m_innerScene.PrimMaterial; | 2264 | client.OnObjectMaterial += m_sceneGraph.PrimMaterial; |
2259 | client.OnLinkObjects += m_innerScene.LinkObjects; | 2265 | client.OnLinkObjects += m_sceneGraph.LinkObjects; |
2260 | client.OnDelinkObjects += m_innerScene.DelinkObjects; | 2266 | client.OnDelinkObjects += m_sceneGraph.DelinkObjects; |
2261 | client.OnObjectDuplicate += m_innerScene.DuplicateObject; | 2267 | client.OnObjectDuplicate += m_sceneGraph.DuplicateObject; |
2262 | client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay; | 2268 | client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay; |
2263 | client.OnUpdatePrimFlags += m_innerScene.UpdatePrimFlags; | 2269 | client.OnUpdatePrimFlags += m_sceneGraph.UpdatePrimFlags; |
2264 | client.OnRequestObjectPropertiesFamily += m_innerScene.RequestObjectPropertiesFamily; | 2270 | client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily; |
2265 | client.OnRequestGodlikePowers += handleRequestGodlikePowers; | 2271 | client.OnRequestGodlikePowers += handleRequestGodlikePowers; |
2266 | client.OnGodKickUser += HandleGodlikeKickUser; | 2272 | client.OnGodKickUser += HandleGodlikeKickUser; |
2267 | client.OnObjectPermissions += HandleObjectPermissionsUpdate; | 2273 | client.OnObjectPermissions += HandleObjectPermissionsUpdate; |
@@ -2287,11 +2293,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2287 | client.OnMoneyTransferRequest += ProcessMoneyTransferRequest; | 2293 | client.OnMoneyTransferRequest += ProcessMoneyTransferRequest; |
2288 | client.OnParcelBuy += ProcessParcelBuy; | 2294 | client.OnParcelBuy += ProcessParcelBuy; |
2289 | client.OnAvatarPickerRequest += ProcessAvatarPickerRequest; | 2295 | client.OnAvatarPickerRequest += ProcessAvatarPickerRequest; |
2290 | client.OnObjectIncludeInSearch += m_innerScene.MakeObjectSearchable; | 2296 | client.OnObjectIncludeInSearch += m_sceneGraph.MakeObjectSearchable; |
2291 | client.OnTeleportHomeRequest += TeleportClientHome; | 2297 | client.OnTeleportHomeRequest += TeleportClientHome; |
2292 | client.OnSetStartLocationRequest += SetHomeRezPoint; | 2298 | client.OnSetStartLocationRequest += SetHomeRezPoint; |
2293 | client.OnUndo += m_innerScene.HandleUndo; | 2299 | client.OnUndo += m_sceneGraph.HandleUndo; |
2294 | client.OnObjectGroupRequest += m_innerScene.HandleObjectGroupUpdate; | 2300 | client.OnObjectGroupRequest += m_sceneGraph.HandleObjectGroupUpdate; |
2295 | client.OnParcelReturnObjectsRequest += LandChannel.ReturnObjectsInParcel; | 2301 | client.OnParcelReturnObjectsRequest += LandChannel.ReturnObjectsInParcel; |
2296 | client.OnParcelSetOtherCleanTime += LandChannel.SetParcelOtherCleanTime; | 2302 | client.OnParcelSetOtherCleanTime += LandChannel.SetParcelOtherCleanTime; |
2297 | client.OnObjectSaleInfo += ObjectSaleInfo; | 2303 | client.OnObjectSaleInfo += ObjectSaleInfo; |
@@ -2403,7 +2409,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2403 | 2409 | ||
2404 | // TODO: Raytrace better here | 2410 | // TODO: Raytrace better here |
2405 | 2411 | ||
2406 | //EntityIntersection ei = m_innerScene.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection)); | 2412 | //EntityIntersection ei = m_sceneGraph.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection)); |
2407 | Ray NewRay = new Ray(AXOrigin, AXdirection); | 2413 | Ray NewRay = new Ray(AXOrigin, AXdirection); |
2408 | 2414 | ||
2409 | // Ray Trace against target here | 2415 | // Ray Trace against target here |
@@ -2433,14 +2439,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
2433 | { | 2439 | { |
2434 | Quaternion worldRot = target2.GetWorldRotation(); | 2440 | Quaternion worldRot = target2.GetWorldRotation(); |
2435 | 2441 | ||
2436 | // SceneObjectGroup obj = m_innerScene.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); | 2442 | // SceneObjectGroup obj = m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); |
2437 | m_innerScene.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); | 2443 | m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID, worldRot); |
2438 | //obj.Rotation = worldRot; | 2444 | //obj.Rotation = worldRot; |
2439 | //obj.UpdateGroupRotation(worldRot); | 2445 | //obj.UpdateGroupRotation(worldRot); |
2440 | } | 2446 | } |
2441 | else | 2447 | else |
2442 | { | 2448 | { |
2443 | m_innerScene.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID); | 2449 | m_sceneGraph.DuplicateObject(localID, pos, target.GetEffectiveObjectFlags(), AgentID, GroupID); |
2444 | } | 2450 | } |
2445 | } | 2451 | } |
2446 | 2452 | ||
@@ -2486,7 +2492,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2486 | AvatarAppearance appearance = null; | 2492 | AvatarAppearance appearance = null; |
2487 | GetAvatarAppearance(client, out appearance); | 2493 | GetAvatarAppearance(client, out appearance); |
2488 | 2494 | ||
2489 | ScenePresence avatar = m_innerScene.CreateAndAddScenePresence(client, child, appearance); | 2495 | ScenePresence avatar = m_sceneGraph.CreateAndAddScenePresence(client, child, appearance); |
2490 | 2496 | ||
2491 | return avatar; | 2497 | return avatar; |
2492 | } | 2498 | } |
@@ -2538,11 +2544,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2538 | 2544 | ||
2539 | if (avatar.IsChildAgent) | 2545 | if (avatar.IsChildAgent) |
2540 | { | 2546 | { |
2541 | m_innerScene.removeUserCount(false); | 2547 | m_sceneGraph.removeUserCount(false); |
2542 | } | 2548 | } |
2543 | else | 2549 | else |
2544 | { | 2550 | { |
2545 | m_innerScene.removeUserCount(true); | 2551 | m_sceneGraph.removeUserCount(true); |
2546 | m_sceneGridService.LogOffUser(agentID, RegionInfo.RegionID, RegionInfo.RegionHandle, avatar.AbsolutePosition, avatar.Lookat); | 2552 | m_sceneGridService.LogOffUser(agentID, RegionInfo.RegionID, RegionInfo.RegionHandle, avatar.AbsolutePosition, avatar.Lookat); |
2547 | List<ulong> childknownRegions = new List<ulong>(); | 2553 | List<ulong> childknownRegions = new List<ulong>(); |
2548 | List<ulong> ckn = avatar.GetKnownRegionList(); | 2554 | List<ulong> ckn = avatar.GetKnownRegionList(); |
@@ -2587,7 +2593,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2587 | agentTransactions.RemoveAgentAssetTransactions(agentID); | 2593 | agentTransactions.RemoveAgentAssetTransactions(agentID); |
2588 | } | 2594 | } |
2589 | 2595 | ||
2590 | m_innerScene.RemoveScenePresence(agentID); | 2596 | m_sceneGraph.RemoveScenePresence(agentID); |
2591 | 2597 | ||
2592 | try | 2598 | try |
2593 | { | 2599 | { |
@@ -2807,7 +2813,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2807 | cap.ItemUpdatedCall = CapsUpdateInventoryItemAsset; | 2813 | cap.ItemUpdatedCall = CapsUpdateInventoryItemAsset; |
2808 | cap.TaskScriptUpdatedCall = CapsUpdateTaskInventoryScriptAsset; | 2814 | cap.TaskScriptUpdatedCall = CapsUpdateTaskInventoryScriptAsset; |
2809 | cap.CAPSFetchInventoryDescendents = CommsManager.UserProfileCacheService.HandleFetchInventoryDescendentsCAPS; | 2815 | cap.CAPSFetchInventoryDescendents = CommsManager.UserProfileCacheService.HandleFetchInventoryDescendentsCAPS; |
2810 | cap.GetClient = m_innerScene.GetControllingClient; | 2816 | cap.GetClient = m_sceneGraph.GetControllingClient; |
2811 | m_capsHandlers[agentId] = cap; | 2817 | m_capsHandlers[agentId] = cap; |
2812 | } | 2818 | } |
2813 | 2819 | ||
@@ -2917,18 +2923,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
2917 | /// <param name="agentID"></param> | 2923 | /// <param name="agentID"></param> |
2918 | public bool CloseConnection(UUID agentID) | 2924 | public bool CloseConnection(UUID agentID) |
2919 | { | 2925 | { |
2920 | ScenePresence presence = m_innerScene.GetScenePresence(agentID); | 2926 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); |
2921 | 2927 | ||
2922 | if (presence != null) | 2928 | if (presence != null) |
2923 | { | 2929 | { |
2924 | // Nothing is removed here, so down count it as such | 2930 | // Nothing is removed here, so down count it as such |
2925 | // if (presence.IsChildAgent) | 2931 | // if (presence.IsChildAgent) |
2926 | // { | 2932 | // { |
2927 | // m_innerScene.removeUserCount(false); | 2933 | // m_sceneGraph.removeUserCount(false); |
2928 | // } | 2934 | // } |
2929 | // else | 2935 | // else |
2930 | // { | 2936 | // { |
2931 | // m_innerScene.removeUserCount(true); | 2937 | // m_sceneGraph.removeUserCount(true); |
2932 | // } | 2938 | // } |
2933 | 2939 | ||
2934 | // Tell a single agent to disconnect from the region. | 2940 | // Tell a single agent to disconnect from the region. |
@@ -3501,7 +3507,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3501 | } | 3507 | } |
3502 | else | 3508 | else |
3503 | { | 3509 | { |
3504 | m_innerScene.removeUserCount(!m_scenePresences[agentID].IsChildAgent); | 3510 | m_sceneGraph.removeUserCount(!m_scenePresences[agentID].IsChildAgent); |
3505 | 3511 | ||
3506 | m_scenePresences[agentID].ControllingClient.Kick(Utils.BytesToString(reason)); | 3512 | m_scenePresences[agentID].ControllingClient.Kick(Utils.BytesToString(reason)); |
3507 | m_scenePresences[agentID].ControllingClient.Close(true); | 3513 | m_scenePresences[agentID].ControllingClient.Close(true); |
@@ -3872,7 +3878,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3872 | 3878 | ||
3873 | #endregion | 3879 | #endregion |
3874 | 3880 | ||
3875 | #region InnerScene wrapper methods | 3881 | #region SceneGraph wrapper methods |
3876 | 3882 | ||
3877 | /// <summary> | 3883 | /// <summary> |
3878 | /// | 3884 | /// |
@@ -3881,22 +3887,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
3881 | /// <returns></returns> | 3887 | /// <returns></returns> |
3882 | public UUID ConvertLocalIDToFullID(uint localID) | 3888 | public UUID ConvertLocalIDToFullID(uint localID) |
3883 | { | 3889 | { |
3884 | return m_innerScene.ConvertLocalIDToFullID(localID); | 3890 | return m_sceneGraph.ConvertLocalIDToFullID(localID); |
3885 | } | 3891 | } |
3886 | 3892 | ||
3887 | public void SwapRootAgentCount(bool rootChildChildRootTF) | 3893 | public void SwapRootAgentCount(bool rootChildChildRootTF) |
3888 | { | 3894 | { |
3889 | m_innerScene.SwapRootChildAgent(rootChildChildRootTF); | 3895 | m_sceneGraph.SwapRootChildAgent(rootChildChildRootTF); |
3890 | } | 3896 | } |
3891 | 3897 | ||
3892 | public void AddPhysicalPrim(int num) | 3898 | public void AddPhysicalPrim(int num) |
3893 | { | 3899 | { |
3894 | m_innerScene.AddPhysicalPrim(num); | 3900 | m_sceneGraph.AddPhysicalPrim(num); |
3895 | } | 3901 | } |
3896 | 3902 | ||
3897 | public void RemovePhysicalPrim(int num) | 3903 | public void RemovePhysicalPrim(int num) |
3898 | { | 3904 | { |
3899 | m_innerScene.RemovePhysicalPrim(num); | 3905 | m_sceneGraph.RemovePhysicalPrim(num); |
3900 | } | 3906 | } |
3901 | 3907 | ||
3902 | //The idea is to have a group of method that return a list of avatars meeting some requirement | 3908 | //The idea is to have a group of method that return a list of avatars meeting some requirement |
@@ -3909,7 +3915,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3909 | /// <returns></returns> | 3915 | /// <returns></returns> |
3910 | public List<ScenePresence> GetAvatars() | 3916 | public List<ScenePresence> GetAvatars() |
3911 | { | 3917 | { |
3912 | return m_innerScene.GetAvatars(); | 3918 | return m_sceneGraph.GetAvatars(); |
3913 | } | 3919 | } |
3914 | 3920 | ||
3915 | /// <summary> | 3921 | /// <summary> |
@@ -3919,7 +3925,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3919 | /// <returns></returns> | 3925 | /// <returns></returns> |
3920 | public List<ScenePresence> GetScenePresences() | 3926 | public List<ScenePresence> GetScenePresences() |
3921 | { | 3927 | { |
3922 | return m_innerScene.GetScenePresences(); | 3928 | return m_sceneGraph.GetScenePresences(); |
3923 | } | 3929 | } |
3924 | 3930 | ||
3925 | /// <summary> | 3931 | /// <summary> |
@@ -3930,7 +3936,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3930 | /// <returns></returns> | 3936 | /// <returns></returns> |
3931 | public List<ScenePresence> GetScenePresences(FilterAvatarList filter) | 3937 | public List<ScenePresence> GetScenePresences(FilterAvatarList filter) |
3932 | { | 3938 | { |
3933 | return m_innerScene.GetScenePresences(filter); | 3939 | return m_sceneGraph.GetScenePresences(filter); |
3934 | } | 3940 | } |
3935 | 3941 | ||
3936 | /// <summary> | 3942 | /// <summary> |
@@ -3940,7 +3946,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3940 | /// <returns></returns> | 3946 | /// <returns></returns> |
3941 | public ScenePresence GetScenePresence(UUID avatarID) | 3947 | public ScenePresence GetScenePresence(UUID avatarID) |
3942 | { | 3948 | { |
3943 | return m_innerScene.GetScenePresence(avatarID); | 3949 | return m_sceneGraph.GetScenePresence(avatarID); |
3944 | } | 3950 | } |
3945 | 3951 | ||
3946 | /// <summary> | 3952 | /// <summary> |
@@ -4005,7 +4011,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4005 | /// <returns></returns> | 4011 | /// <returns></returns> |
4006 | public SceneObjectPart GetSceneObjectPart(string name) | 4012 | public SceneObjectPart GetSceneObjectPart(string name) |
4007 | { | 4013 | { |
4008 | return m_innerScene.GetSceneObjectPart(name); | 4014 | return m_sceneGraph.GetSceneObjectPart(name); |
4009 | } | 4015 | } |
4010 | 4016 | ||
4011 | /// <summary> | 4017 | /// <summary> |
@@ -4015,7 +4021,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4015 | /// <returns></returns> | 4021 | /// <returns></returns> |
4016 | public SceneObjectPart GetSceneObjectPart(uint localID) | 4022 | public SceneObjectPart GetSceneObjectPart(uint localID) |
4017 | { | 4023 | { |
4018 | return m_innerScene.GetSceneObjectPart(localID); | 4024 | return m_sceneGraph.GetSceneObjectPart(localID); |
4019 | } | 4025 | } |
4020 | 4026 | ||
4021 | /// <summary> | 4027 | /// <summary> |
@@ -4025,22 +4031,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
4025 | /// <returns></returns> | 4031 | /// <returns></returns> |
4026 | public SceneObjectPart GetSceneObjectPart(UUID fullID) | 4032 | public SceneObjectPart GetSceneObjectPart(UUID fullID) |
4027 | { | 4033 | { |
4028 | return m_innerScene.GetSceneObjectPart(fullID); | 4034 | return m_sceneGraph.GetSceneObjectPart(fullID); |
4029 | } | 4035 | } |
4030 | 4036 | ||
4031 | internal bool TryGetAvatar(UUID avatarId, out ScenePresence avatar) | 4037 | internal bool TryGetAvatar(UUID avatarId, out ScenePresence avatar) |
4032 | { | 4038 | { |
4033 | return m_innerScene.TryGetAvatar(avatarId, out avatar); | 4039 | return m_sceneGraph.TryGetAvatar(avatarId, out avatar); |
4034 | } | 4040 | } |
4035 | 4041 | ||
4036 | internal bool TryGetAvatarByName(string avatarName, out ScenePresence avatar) | 4042 | internal bool TryGetAvatarByName(string avatarName, out ScenePresence avatar) |
4037 | { | 4043 | { |
4038 | return m_innerScene.TryGetAvatarByName(avatarName, out avatar); | 4044 | return m_sceneGraph.TryGetAvatarByName(avatarName, out avatar); |
4039 | } | 4045 | } |
4040 | 4046 | ||
4041 | internal void ForEachClient(Action<IClientAPI> action) | 4047 | internal void ForEachClient(Action<IClientAPI> action) |
4042 | { | 4048 | { |
4043 | m_innerScene.ForEachClient(action); | 4049 | m_sceneGraph.ForEachClient(action); |
4044 | } | 4050 | } |
4045 | 4051 | ||
4046 | /// <summary> | 4052 | /// <summary> |
@@ -4050,7 +4056,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4050 | /// <returns></returns> | 4056 | /// <returns></returns> |
4051 | public List<EntityBase> GetEntities() | 4057 | public List<EntityBase> GetEntities() |
4052 | { | 4058 | { |
4053 | return m_innerScene.GetEntities(); | 4059 | return m_sceneGraph.GetEntities(); |
4054 | } | 4060 | } |
4055 | 4061 | ||
4056 | #endregion | 4062 | #endregion |