public static SOGToXml2 ( |
||
writer | ||
sog | SceneObjectGroup | |
options | object>.Dictionary | |
리턴 | void |
private static void SavePrimListToXml2(EntityBase[] entityList, TextWriter stream, Vector3 min, Vector3 max) { using (XmlTextWriter writer = new XmlTextWriter(stream)) { int primCount = 0; writer.WriteStartElement("scene"); foreach (EntityBase ent in entityList) { if (ent is SceneObjectGroup) { SceneObjectGroup g = (SceneObjectGroup)ent; if (!min.Equals(Vector3.Zero) || !max.Equals(Vector3.Zero)) { Vector3 pos = g.RootPart.WorldPosition; if (min.X > pos.X || min.Y > pos.Y || min.Z > pos.Z) { continue; } if (max.X < pos.X || max.Y < pos.Y || max.Z < pos.Z) { continue; } } SceneObjectSerializer.SOGToXml2(writer, (SceneObjectGroup)ent, new Dictionary <string, object>()); primCount++; } } writer.WriteEndElement(); } }
// Called by archives (save oar) public static string SaveGroupToXml2(SceneObjectGroup grp, Dictionary <string, object> options) { //return SceneObjectSerializer.ToXml2Format(grp); using (MemoryStream mem = new MemoryStream()) { using (XmlTextWriter writer = new XmlTextWriter(mem, System.Text.Encoding.UTF8)) { SceneObjectSerializer.SOGToXml2(writer, grp, options); writer.Flush(); using (StreamReader reader = new StreamReader(mem)) { mem.Seek(0, SeekOrigin.Begin); return(reader.ReadToEnd()); } } } }
// Called here only. Should be private? public static void SavePrimListToXml2(EntityBase[] entityList, TextWriter stream, Vector3 min, Vector3 max) { XmlTextWriter writer = new XmlTextWriter(stream); int primCount = 0; stream.WriteLine("<scene>\n"); foreach (EntityBase ent in entityList) { if (ent is SceneObjectGroup) { SceneObjectGroup g = (SceneObjectGroup)ent; if (!min.Equals(Vector3.Zero) || !max.Equals(Vector3.Zero)) { Vector3 pos = g.RootPart.GetWorldPosition(); if (min.X > pos.X || min.Y > pos.Y || min.Z > pos.Z) { continue; } if (max.X < pos.X || max.Y < pos.Y || max.Z < pos.Z) { continue; } } //stream.WriteLine(SceneObjectSerializer.ToXml2Format(g)); SceneObjectSerializer.SOGToXml2(writer, (SceneObjectGroup)ent, new Dictionary <string, object>()); stream.WriteLine(); primCount++; } } stream.WriteLine("</scene>\n"); stream.Flush(); }