public static GraphCtrl AddJsonToLinkCloud(JsonLinkCloud jsonlc, GraphCtrl grc) { var reg = jsonlc.region; Debug.Log(" AddJsonToLinkCloud reg.name:" + reg.name); var nreg = grc.regman.NewNodeRegion(reg.name, reg.color, saveToFile: true, makeCurrent: true); foreach (var node in jsonlc.nodes.list) { if (grc.nodeExists(node.name)) { Debug.LogWarning("Node " + node.name + " already exists"); } else { grc.AddNode(node.name, node.pt); } } foreach (var jslink in jsonlc.links.list) { var lnk = grc.AddLinkByNodeName(jslink.n1, jslink.n2, jslink.name); if (jslink.usetype != null) { System.Enum.TryParse <LinkUse>(jslink.usetype, true, out lnk.usetype); } } grc.floorMan = jsonlc.floorplan; return(grc); }
public static JsonLinkCloud MakeJson(GraphCtrl lc, ref NodeRegion region) { int nnodes = 0; int nlinks = 0; var jsonlc = new JsonLinkCloud(region, lc.floorMan); var regionFilter = region.regid; if (region.name == "default") { regionFilter = 0; } foreach (var nname in lc.nodenamelist) { var node = lc.GetNode(nname); if (node.IsInRegion(region.regid)) { jsonlc.AddNode(node.name, node.pt); nnodes += 1; } } foreach (var lname in lc.linknamelist) { var link = lc.GetLink(lname); if (link.node1.IsInRegion(regionFilter) && link.node2.IsInRegion(regionFilter)) { jsonlc.AddLink(link.name, link.node1.name, link.node2.name, link.usetype.ToString()); nlinks += 1; } } //GraphUtil.Log("MakeJson nnodes:" + nnodes + " nlinks:" + nlinks); //Debug.Log("MakeJson nnodes:" + nnodes + " nlinks:" + nlinks); return(jsonlc); }
public void CreateLinksFromRegionFiles(string prefix) { var mask = prefix + "*.region"; var fnames = System.IO.Directory.GetFiles(grc.graphdir, mask); Debug.Log("CreateLinksFromRegionFiles graphdir:" + grc.graphdir + " maskL" + mask + " found " + fnames.Length + " files"); foreach (var fn in fnames) { var jsonlc1 = JsonLinkCloud.ReadFromFile(fn); AddJsonToLinkCloud(jsonlc1, grc); } }
public static void WriteToFile(JsonLinkCloud jlc, string fname) { string jstring = JsonUtility.ToJson(jlc); using (FileStream fs = new FileStream(fname, FileMode.Create)) { var sw = new StreamWriter(fs); sw.Write(jstring); sw.Flush(); fs.Close(); } }
public static void SaveToFile(GraphCtrl grc, string fname, ref NodeRegion region) { var jsonlc = LcMapMaker.MakeJson(grc, ref region); JsonLinkCloud.WriteToFile(jsonlc, fname); }