コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
        public static void SaveToFile(GraphCtrl grc, string fname, ref NodeRegion region)
        {
            var jsonlc = LcMapMaker.MakeJson(grc, ref region);

            JsonLinkCloud.WriteToFile(jsonlc, fname);
        }