SceneObjectGroup cleanup. Removes the default constructor and unnecessary null checks on m_rootPart

This commit is contained in:
John Hurliman
2009-09-16 15:06:08 -07:00
parent df7904c58b
commit f42d085ab1
9 changed files with 80 additions and 142 deletions

View File

@@ -178,25 +178,38 @@ namespace OpenSim.Data.NHibernate
private SceneObjectGroup LoadObject(UUID uuid, UUID region)
{
SceneObjectGroup group = new SceneObjectGroup();
ICriteria criteria = manager.GetSession().CreateCriteria(typeof(SceneObjectPart));
criteria.Add(Expression.Eq("RegionID", region));
criteria.Add(Expression.Eq("ParentUUID", uuid));
criteria.AddOrder(Order.Asc("ParentID"));
foreach (SceneObjectPart p in criteria.List())
IList<SceneObjectPart> parts = criteria.List<SceneObjectPart>();
SceneObjectGroup group = null;
// Find the root part
for (int i = 0; i < parts.Count; i++)
{
// root part
if (p.UUID == uuid)
if (parts[i].UUID == uuid)
{
group.SetRootPart(p);
group = new SceneObjectGroup(parts[i]);
break;
}
else
}
// Add the children parts
if (group != null)
{
for (int i = 0; i < parts.Count; i++)
{
group.AddPart(p);
if (parts[i].UUID != uuid)
group.AddPart(parts[i]);
}
}
else
{
m_log.Error("[NHIBERNATE]: LoadObject() Attempted to load a SceneObjectGroup with no root SceneObjectPart ");
}
return group;
}
@@ -237,8 +250,7 @@ namespace OpenSim.Data.NHibernate
// root part
if (p.UUID == p.ParentUUID)
{
SceneObjectGroup group = new SceneObjectGroup();
group.SetRootPart(p);
SceneObjectGroup group = new SceneObjectGroup(p);
SOG.Add(p.ParentUUID, group);
}
else

View File

@@ -416,7 +416,6 @@ namespace OpenSim.Data.SQLite
if (uuid == objID) //is new SceneObjectGroup ?
{
SceneObjectGroup group = new SceneObjectGroup();
prim = buildPrim(primRow);
DataRow shapeRow = shapes.Rows.Find(prim.UUID.ToString());
if (shapeRow != null)
@@ -430,7 +429,7 @@ namespace OpenSim.Data.SQLite
prim.Shape = PrimitiveBaseShape.Default;
}
group.SetRootPart(prim);
SceneObjectGroup group = new SceneObjectGroup(prim);
createdObjects.Add(group.UUID, group);
retvals.Add(group);
LoadItems(prim);

View File

@@ -322,9 +322,8 @@ namespace OpenSim.Data.Tests
// This is necessary or object will not be inserted in DB
sop.ObjectFlags = 0;
SceneObjectGroup sog = new SceneObjectGroup();
SceneObjectGroup sog = new SceneObjectGroup(sop);
sog.SetScene(scene); // Reguired by nhibernate database module.
sog.SetRootPart(sop);
// Inserts group in DB
db.StoreObject(sog,region3);
@@ -1003,9 +1002,8 @@ namespace OpenSim.Data.Tests
sop.UUID = uuid;
sop.Shape = PrimitiveBaseShape.Default;
SceneObjectGroup sog = new SceneObjectGroup();
SceneObjectGroup sog = new SceneObjectGroup(sop);
sog.SetScene(scene);
sog.SetRootPart(sop);
return sog;
}