public static ToOriginalXmlFormat ( SceneObjectGroup sceneObject ) : string | ||
sceneObject | SceneObjectGroup | |
return | string |
/// <summary> /// Serialize a scene object to the original xml format /// </summary> /// <param name="sceneObject"></param> /// <returns></returns> public static void ToXmlFormat(IEnumerable <SceneObjectGroup> sceneObjects, IEnumerable <ItemPermissionBlock> permissions, XmlTextWriter writer, StopScriptReason stopScriptReason) { writer.WriteStartElement(String.Empty, "CoalescedSceneObject", String.Empty); //permissions writer.WriteStartElement(String.Empty, "CSOPermissions", String.Empty); foreach (ItemPermissionBlock perm in permissions) { writer.WriteStartElement(String.Empty, "CSOPermission", String.Empty); perm.ToXml(writer); writer.WriteEndElement(); // ColObjectMember } writer.WriteEndElement(); //scene objects writer.WriteStartElement(String.Empty, "ColObjects", String.Empty); foreach (SceneObjectGroup group in sceneObjects) { writer.WriteStartElement(String.Empty, "ColObjectMember", String.Empty); SceneObjectSerializer.ToOriginalXmlFormat(group, writer, stopScriptReason); writer.WriteEndElement(); // ColObjectMember } writer.WriteEndElement(); //ColObjects writer.WriteEndElement(); // CoalescedSceneObject }
/// <summary> /// Serialize coalesced objects to Xml /// </summary> /// <param name="coa"></param> /// <param name="doScriptStates"> /// If true then serialize script states. This will halt any running scripts /// </param> /// <returns></returns> public static string ToXml(CoalescedSceneObjects coa, bool doScriptStates) { using (StringWriter sw = new StringWriter()) { using (XmlTextWriter writer = new XmlTextWriter(sw)) { Vector3 size; List <SceneObjectGroup> coaObjects = coa.Objects; // m_log.DebugFormat( // "[COALESCED SCENE OBJECTS SERIALIZER]: Writing {0} objects for coalesced object", // coaObjects.Count); // This is weak - we're relying on the set of coalesced objects still being identical Vector3[] offsets = coa.GetSizeAndOffsets(out size); writer.WriteStartElement("CoalescedObject"); writer.WriteAttributeString("x", size.X.ToString(Culture.FormatProvider)); writer.WriteAttributeString("y", size.Y.ToString(Culture.FormatProvider)); writer.WriteAttributeString("z", size.Z.ToString(Culture.FormatProvider)); // Embed the offsets into the group XML for (int i = 0; i < coaObjects.Count; i++) { SceneObjectGroup obj = coaObjects[i]; // m_log.DebugFormat( // "[COALESCED SCENE OBJECTS SERIALIZER]: Writing offset for object {0}, {1}", // i, obj.Name); writer.WriteStartElement("SceneObjectGroup"); writer.WriteAttributeString("offsetx", offsets[i].X.ToString(Culture.FormatProvider)); writer.WriteAttributeString("offsety", offsets[i].Y.ToString(Culture.FormatProvider)); writer.WriteAttributeString("offsetz", offsets[i].Z.ToString(Culture.FormatProvider)); SceneObjectSerializer.ToOriginalXmlFormat(obj, writer, doScriptStates); writer.WriteEndElement(); // SceneObjectGroup } writer.WriteEndElement(); // CoalescedObject } string output = sw.ToString(); // Console.WriteLine(output); return(output); } }
public static void SavePrimsToXml(Scene scene, string fileName) { FileStream file = new FileStream(fileName, FileMode.Create); StreamWriter stream = new StreamWriter(file); int primCount = 0; stream.WriteLine("<scene>\n"); EntityBase[] entityList = scene.GetEntities(); foreach (EntityBase ent in entityList) { if (ent is SceneObjectGroup) { stream.WriteLine(SceneObjectSerializer.ToOriginalXmlFormat((SceneObjectGroup)ent)); primCount++; } } stream.WriteLine("</scene>\n"); stream.Close(); file.Close(); }
public static string SaveGroupToOriginalXml(SceneObjectGroup grp) { return(SceneObjectSerializer.ToOriginalXmlFormat(grp, false)); }