From 0e180b0ad30d5f468be1c239865688449b8747cc Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Mon, 10 Nov 2008 20:04:55 +0000
Subject: * refactor: Expose SOG.SetRootPart for outsiders to use rather than
setting RootPart and adding the part separately * Make RootPart read only
---
OpenSim/Data/MSSQL/MSSQLRegionData.cs | 4 ++--
OpenSim/Data/MySQL/MySQLRegionData.cs | 4 ++--
OpenSim/Data/NHibernate/NHibernateRegionData.cs | 6 ++----
OpenSim/Data/SQLite/SQLiteRegionData.cs | 7 +++----
OpenSim/Data/Tests/BasicRegionTest.cs | 6 ++----
.../Environment/Modules/ContentManagementSystem/MetaEntity.cs | 1 -
.../Modules/ContentManagementSystem/PointMetaEntity.cs | 6 +-----
OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 8 +++++---
OpenSim/Region/Environment/Scenes/Tests/SceneTests.cs | 6 ++----
9 files changed, 19 insertions(+), 29 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
index 6f4edd1..3669bdc 100644
--- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
@@ -210,8 +210,8 @@ namespace OpenSim.Data.MSSQL
"No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
- group.AddPart(prim);
- group.RootPart = prim;
+
+ group.SetRootPart(prim);
createdObjects.Add(group.UUID, group);
retvals.Add(group);
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs
index 27bfec8..70940db 100644
--- a/OpenSim/Data/MySQL/MySQLRegionData.cs
+++ b/OpenSim/Data/MySQL/MySQLRegionData.cs
@@ -421,8 +421,8 @@ namespace OpenSim.Data.MySQL
"No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
- group.AddPart(prim);
- group.RootPart = prim;
+
+ group.SetRootPart(prim);
createdObjects.Add(group.UUID, group);
retvals.Add(group);
LoadItems(prim);
diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs
index ecb29fe..833f1b7 100644
--- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs
@@ -195,8 +195,7 @@ namespace OpenSim.Data.NHibernate
// root part
if (p.UUID == uuid)
{
- group.AddPart(p);
- group.RootPart = p;
+ group.SetRootPart(p);
}
else
{
@@ -244,8 +243,7 @@ namespace OpenSim.Data.NHibernate
if (p.UUID == p.ParentUUID)
{
SceneObjectGroup group = new SceneObjectGroup();
- group.AddPart(p);
- group.RootPart = p;
+ group.SetRootPart(p);
SOG.Add(p.ParentUUID, group);
}
else
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index 93d9406..cc3ad06 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -436,8 +436,8 @@ namespace OpenSim.Data.SQLite
"[REGION DB]: No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
- group.AddPart(prim);
- group.RootPart = prim;
+
+ group.SetRootPart(prim);
createdObjects.Add(group.UUID, group);
retvals.Add(group);
LoadItems(prim);
@@ -1102,8 +1102,7 @@ namespace OpenSim.Data.SQLite
// sop.TouchName = "";
// sop.UUID = UUID.Random();
// sop.Shape = PrimitiveBaseShape.Default;
- // sog.AddPart(sop);
- // sog.RootPart = sop;
+ // sog.SetRootPart(sop);
// Add breakpoint in above line. Check sop fields.
// TODO: this doesn't work yet because something more
diff --git a/OpenSim/Data/Tests/BasicRegionTest.cs b/OpenSim/Data/Tests/BasicRegionTest.cs
index 12435c9..ab46ed4 100644
--- a/OpenSim/Data/Tests/BasicRegionTest.cs
+++ b/OpenSim/Data/Tests/BasicRegionTest.cs
@@ -315,8 +315,7 @@ namespace OpenSim.Data.Tests
sop.ObjectFlags = 0;
SceneObjectGroup sog = new SceneObjectGroup();
- sog.AddPart(sop);
- sog.RootPart = sop;
+ sog.SetRootPart(sop);
// Inserts group in DB
db.StoreObject(sog,region3);
@@ -795,8 +794,7 @@ namespace OpenSim.Data.Tests
sop.Shape = PrimitiveBaseShape.Default;
SceneObjectGroup sog = new SceneObjectGroup();
- sog.AddPart(sop);
- sog.RootPart = sop;
+ sog.SetRootPart(sop);
return sog;
}
diff --git a/OpenSim/Region/Environment/Modules/ContentManagementSystem/MetaEntity.cs b/OpenSim/Region/Environment/Modules/ContentManagementSystem/MetaEntity.cs
index 801f8ff..d654a1a 100644
--- a/OpenSim/Region/Environment/Modules/ContentManagementSystem/MetaEntity.cs
+++ b/OpenSim/Region/Environment/Modules/ContentManagementSystem/MetaEntity.cs
@@ -132,7 +132,6 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement
public SceneObjectPart RootPart
{
get { return m_Entity.RootPart; }
- set { m_Entity.RootPart = value; }
}
public Scene Scene
diff --git a/OpenSim/Region/Environment/Modules/ContentManagementSystem/PointMetaEntity.cs b/OpenSim/Region/Environment/Modules/ContentManagementSystem/PointMetaEntity.cs
index bf7d944..5db9545 100644
--- a/OpenSim/Region/Environment/Modules/ContentManagementSystem/PointMetaEntity.cs
+++ b/OpenSim/Region/Environment/Modules/ContentManagementSystem/PointMetaEntity.cs
@@ -104,11 +104,7 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement
//Initialize group and add part as root part
x.SetScene(scene);
- y.SetParent(x);
- y.ParentID = 0;
- y.LinkNum = 0;
- x.Children.Add(y.UUID, y);
- x.RootPart = y;
+ x.SetRootPart(y);
x.RegionHandle = scene.RegionInfo.RegionHandle;
x.SetScene(scene);
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 8f88d8e..d2bd698 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -184,10 +184,12 @@ namespace OpenSim.Region.Environment.Scenes
set { m_parts = value; }
}
+ ///
+ /// The root part of this scene object
+ ///
public SceneObjectPart RootPart
{
get { return m_rootPart; }
- set { m_rootPart = value; }
}
public ulong RegionHandle
@@ -877,7 +879,7 @@ namespace OpenSim.Region.Environment.Scenes
/// Set a part to act as the root part for this scene object
///
///
- private void SetRootPart(SceneObjectPart part)
+ public void SetRootPart(SceneObjectPart part)
{
part.SetParent(this);
part.ParentID = 0;
@@ -1886,7 +1888,7 @@ namespace OpenSim.Region.Environment.Scenes
m_scene.UnlinkSceneObject(objectGroup.UUID, true);
objectGroup.Children.Clear();
- objectGroup.RootPart = null;
+ objectGroup.m_rootPart = null;
// TODO Deleting the original group object may cause problems later on if they have already
// made it into the update queue. However, sending out updates for those parts is now
diff --git a/OpenSim/Region/Environment/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Environment/Scenes/Tests/SceneTests.cs
index 4a038e2..de37eb4 100644
--- a/OpenSim/Region/Environment/Scenes/Tests/SceneTests.cs
+++ b/OpenSim/Region/Environment/Scenes/Tests/SceneTests.cs
@@ -78,10 +78,8 @@ namespace OpenSim.Region.Environment.Scenes.Tests
SceneObjectPart part
= new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero);
//part.UpdatePrimFlags(false, false, true);
- part.ObjectFlags |= (uint)PrimFlags.Phantom;
-
- sceneObject.RootPart = part;
- sceneObject.AddPart(part);
+ part.ObjectFlags |= (uint)PrimFlags.Phantom;
+ sceneObject.SetRootPart(part);
scene.AddNewSceneObject(sceneObject, false);
--
cgit v1.1