aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
diff options
context:
space:
mode:
authorJohn Hurliman2010-09-16 17:30:46 -0700
committerJohn Hurliman2010-09-16 17:30:46 -0700
commit860b2a502f797e5822c6705d4639f370f3ac5861 (patch)
tree5a74ddbd626142e27f6c3439ea267b8ea348ce9c /OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
parentAdd the modules include line back that i dropped by mistake (diff)
downloadopensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.zip
opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.gz
opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.bz2
opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.xz
Changed SceneObjectGroup to store parts with the fast and thread-safe MapAndArray collection
Diffstat (limited to 'OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs')
-rw-r--r--OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs35
1 files changed, 16 insertions, 19 deletions
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
index 0b02a9f..3a6996e 100644
--- a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
+++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
@@ -167,11 +167,11 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
167 public void RemoveOrUpdateDeletedEntity(SceneObjectGroup group) 167 public void RemoveOrUpdateDeletedEntity(SceneObjectGroup group)
168 { 168 {
169 // Deal with new parts not revisioned that have been deleted. 169 // Deal with new parts not revisioned that have been deleted.
170 lock (group.Children) 170 SceneObjectPart[] parts = group.Parts;
171 for (int i = 0; i < parts.Length; i++)
171 { 172 {
172 foreach (SceneObjectPart part in group.Children.Values) 173 if (m_MetaEntityCollection.Auras.ContainsKey(parts[i].UUID))
173 if (m_MetaEntityCollection.Auras.ContainsKey(part.UUID)) 174 m_MetaEntityCollection.RemoveNewlyCreatedEntityAura(parts[i].UUID);
174 m_MetaEntityCollection.RemoveNewlyCreatedEntityAura(part.UUID);
175 } 175 }
176 } 176 }
177 177
@@ -210,12 +210,10 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
210 { 210 {
211 temp = SceneObjectSerializer.FromXml2Format(xml); 211 temp = SceneObjectSerializer.FromXml2Format(xml);
212 temp.SetScene(scene); 212 temp.SetScene(scene);
213 213
214 lock (temp.Children) 214 SceneObjectPart[] parts = temp.Parts;
215 { 215 for (int i = 0; i < parts.Length; i++)
216 foreach (SceneObjectPart part in temp.Children.Values) 216 parts[i].RegionHandle = scene.RegionInfo.RegionHandle;
217 part.RegionHandle = scene.RegionInfo.RegionHandle;
218 }
219 217
220 ReplacementList.Add(temp.UUID, (EntityBase)temp); 218 ReplacementList.Add(temp.UUID, (EntityBase)temp);
221 } 219 }
@@ -346,17 +344,16 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
346 System.Collections.ArrayList auraList = new System.Collections.ArrayList(); 344 System.Collections.ArrayList auraList = new System.Collections.ArrayList();
347 if (group == null) 345 if (group == null)
348 return null; 346 return null;
349 347
350 lock (group.Children) 348 SceneObjectPart[] parts = group.Parts;
349 for (int i = 0; i < parts.Length; i++)
351 { 350 {
352 foreach (SceneObjectPart part in group.Children.Values) 351 SceneObjectPart part = parts[i];
352 if (m_MetaEntityCollection.Auras.ContainsKey(part.UUID))
353 { 353 {
354 if (m_MetaEntityCollection.Auras.ContainsKey(part.UUID)) 354 ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).SetAura(new Vector3(0, 254, 0), part.Scale);
355 { 355 ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).RootPart.GroupPosition = part.GetWorldPosition();
356 ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).SetAura(new Vector3(0,254,0), part.Scale); 356 auraList.Add((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]);
357 ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).RootPart.GroupPosition = part.GetWorldPosition();
358 auraList.Add((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]);
359 }
360 } 357 }
361 } 358 }
362 359