diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 77 |
1 files changed, 40 insertions, 37 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index cbb4fe7..3489873 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -2214,49 +2214,52 @@ namespace OpenSim.Region.Framework.Scenes | |||
2214 | 2214 | ||
2215 | try | 2215 | try |
2216 | { | 2216 | { |
2217 | using (XmlTextReader reader = new XmlTextReader(xmlData, XmlNodeType.Element, null)) | 2217 | using (XmlTextReader wrappedReader = new XmlTextReader(xmlData, XmlNodeType.Element, null)) |
2218 | { | 2218 | { |
2219 | reader.Read(); | 2219 | using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment })) |
2220 | bool isSingleObject = reader.Name != "CoalescedObject"; | ||
2221 | |||
2222 | if (isSingleObject || isAttachment) | ||
2223 | { | 2220 | { |
2224 | SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(reader); | 2221 | reader.Read(); |
2225 | objlist.Add(g); | 2222 | bool isSingleObject = reader.Name != "CoalescedObject"; |
2226 | veclist.Add(Vector3.Zero); | 2223 | |
2227 | bbox = g.GetAxisAlignedBoundingBox(out offsetHeight); | 2224 | if (isSingleObject || isAttachment) |
2228 | return true; | ||
2229 | } | ||
2230 | else | ||
2231 | { | ||
2232 | XmlDocument doc = new XmlDocument(); | ||
2233 | doc.LoadXml(xmlData); | ||
2234 | XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject"); | ||
2235 | XmlElement coll = (XmlElement)e; | ||
2236 | float bx = Convert.ToSingle(coll.GetAttribute("x")); | ||
2237 | float by = Convert.ToSingle(coll.GetAttribute("y")); | ||
2238 | float bz = Convert.ToSingle(coll.GetAttribute("z")); | ||
2239 | bbox = new Vector3(bx, by, bz); | ||
2240 | offsetHeight = 0; | ||
2241 | |||
2242 | XmlNodeList groups = e.SelectNodes("SceneObjectGroup"); | ||
2243 | foreach (XmlNode n in groups) | ||
2244 | { | 2225 | { |
2245 | SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml); | 2226 | SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(reader); |
2246 | objlist.Add(g); | 2227 | objlist.Add(g); |
2247 | 2228 | veclist.Add(Vector3.Zero); | |
2248 | XmlElement el = (XmlElement)n; | 2229 | bbox = g.GetAxisAlignedBoundingBox(out offsetHeight); |
2249 | string rawX = el.GetAttribute("offsetx"); | 2230 | return true; |
2250 | string rawY = el.GetAttribute("offsety"); | ||
2251 | string rawZ = el.GetAttribute("offsetz"); | ||
2252 | |||
2253 | float x = Convert.ToSingle(rawX); | ||
2254 | float y = Convert.ToSingle(rawY); | ||
2255 | float z = Convert.ToSingle(rawZ); | ||
2256 | veclist.Add(new Vector3(x, y, z)); | ||
2257 | } | 2231 | } |
2232 | else | ||
2233 | { | ||
2234 | XmlDocument doc = new XmlDocument(); | ||
2235 | doc.LoadXml(xmlData); | ||
2236 | XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject"); | ||
2237 | XmlElement coll = (XmlElement)e; | ||
2238 | float bx = Convert.ToSingle(coll.GetAttribute("x")); | ||
2239 | float by = Convert.ToSingle(coll.GetAttribute("y")); | ||
2240 | float bz = Convert.ToSingle(coll.GetAttribute("z")); | ||
2241 | bbox = new Vector3(bx, by, bz); | ||
2242 | offsetHeight = 0; | ||
2243 | |||
2244 | XmlNodeList groups = e.SelectNodes("SceneObjectGroup"); | ||
2245 | foreach (XmlNode n in groups) | ||
2246 | { | ||
2247 | SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml); | ||
2248 | objlist.Add(g); | ||
2249 | |||
2250 | XmlElement el = (XmlElement)n; | ||
2251 | string rawX = el.GetAttribute("offsetx"); | ||
2252 | string rawY = el.GetAttribute("offsety"); | ||
2253 | string rawZ = el.GetAttribute("offsetz"); | ||
2254 | |||
2255 | float x = Convert.ToSingle(rawX); | ||
2256 | float y = Convert.ToSingle(rawY); | ||
2257 | float z = Convert.ToSingle(rawZ); | ||
2258 | veclist.Add(new Vector3(x, y, z)); | ||
2259 | } | ||
2258 | 2260 | ||
2259 | return false; | 2261 | return false; |
2262 | } | ||
2260 | } | 2263 | } |
2261 | } | 2264 | } |
2262 | } | 2265 | } |