/** Saves all graphs and also user connections, but does not close, nor opens the stream */ public void SerializeGraphsPart(AstarSerializer serializer) { //AstarSerializer serializer = new AstarSerializer (); //serializer.OpenSerializeSettings (); SizeProfiler.Initialize(); SizeProfiler.Begin("File", serializer.writerStream, false); SizeProfiler.Begin("Graphs init", serializer.writerStream); serializer.writerStream.Write(graphs.Length); serializer.writerStream.Write(graphs.Length); SizeProfiler.End("Graphs init", serializer.writerStream); int[] masks = new int[graphs.Length]; for (int i = 0; i < graphs.Length; i++) { NavGraph graph = graphs[i]; int tmpMask = serializer.mask; SizeProfiler.Begin("Graphs type " + i, serializer.writerStream); serializer.AddAnchor("Graph" + i); serializer.writerStream.Write(graph.GetType().Name); serializer.writerStream.Write(graph.guid.ToString()); SizeProfiler.Begin("Graphs settings " + i, serializer.writerStream); //Set an unique prefix for all variables in this graph serializer.sPrefix = i.ToString(); serializer.SerializeSettings(graph, active); serializer.sPrefix = ""; masks[i] = serializer.mask; serializer.mask = tmpMask; SizeProfiler.End("Graphs settings " + i, serializer.writerStream); } SizeProfiler.Begin("User Connections", serializer.writerStream); serializer.SerializeUserConnections(userConnections); SizeProfiler.End("User Connections", serializer.writerStream); //data = (serializer.writerStream.BaseStream as System.IO.MemoryStream).ToArray (); //serializer.Close (); SizeProfiler.End("File", serializer.writerStream); SizeProfiler.Log(); }
/** Saves all graphs and also user connections, but does not close, nor opens the stream */ public void SerializeGraphsPart(AstarSerializer serializer) { //AstarSerializer serializer = new AstarSerializer (); //serializer.OpenSerializeSettings (); SizeProfiler.Initialize (); SizeProfiler.Begin ("File",serializer.writerStream,false); SizeProfiler.Begin ("Graphs init",serializer.writerStream); serializer.writerStream.Write (graphs.Length); serializer.writerStream.Write (graphs.Length); SizeProfiler.End ("Graphs init",serializer.writerStream); int[] masks = new int[graphs.Length]; for (int i=0;i<graphs.Length;i++) { NavGraph graph = graphs[i]; int tmpMask = serializer.mask; SizeProfiler.Begin ("Graphs type "+i,serializer.writerStream); serializer.AddAnchor ("Graph"+i); serializer.writerStream.Write (graph.GetType ().Name); serializer.writerStream.Write (graph.guid.ToString ()); SizeProfiler.Begin ("Graphs settings "+i,serializer.writerStream); //Set an unique prefix for all variables in this graph serializer.sPrefix = i.ToString (); serializer.SerializeSettings (graph,active); serializer.sPrefix = ""; masks[i] = serializer.mask; serializer.mask = tmpMask; SizeProfiler.End ("Graphs settings "+i,serializer.writerStream); } //Serialize nodes for (int i=0;i<graphs.Length;i++) { NavGraph graph = graphs[i]; serializer.mask = masks[i]; SizeProfiler.Begin ("Graphs nodes "+i,serializer.writerStream,false); serializer.AddAnchor ("GraphNodes_Graph"+i); serializer.writerStream.Write (masks[i]); serializer.sPrefix = i.ToString ()+"N"; serializer.SerializeNodes (graph,active); serializer.sPrefix = ""; SizeProfiler.End ("Graphs nodes "+i,serializer.writerStream); } SizeProfiler.Begin ("User Connections",serializer.writerStream); serializer.SerializeUserConnections (userConnections); SizeProfiler.End ("User Connections",serializer.writerStream); //data = (serializer.writerStream.BaseStream as System.IO.MemoryStream).ToArray (); //serializer.Close (); SizeProfiler.End ("File",serializer.writerStream); SizeProfiler.Log (); }
public byte[] SerializeGraphs(AstarSerializer serializer) { //System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch(); //stopWatch.Start(); CheckGraphEditors (); serializer.OpenSerialize (); script.astarData.SerializeGraphsPart (serializer); for (int i=0;i<script.graphs.Length;i++) { NavGraph graph = script.graphs[i]; GraphEditor graphEditor = graphEditors[i]; serializer.AddAnchor ("EditorSettings_"+i); ISerializableGraphEditor serializableEditor = graphEditor as ISerializableGraphEditor; if (serializableEditor != null) { //@Add //Set an unique prefix for all variables in this graph serializer.sPrefix = i.ToString ()+"E"; serializer.SerializeEditorSettings (graph,serializableEditor,script); //serializableEditor.SerializeSettings (graph,serializer); } } serializer.Close (); byte[] bytes = (serializer.writerStream.BaseStream as System.IO.MemoryStream).ToArray (); //stopWatch.Stop(); //Debug.Log ("Serializing Graphs - Took "+stopWatch.Elapsed.ToString ()); return bytes; }