예제 #1
0
        public void Open(string path)
        {
            StreamReader stream = new StreamReader(path);
            string       json   = stream.ReadToEnd();

            Graph.Graph graph = new Graph.Graph(JsonUtility.FromJson <SaveGraph>(json));
            draw.Clear();
            draw.NewDraw(graph);
        }
예제 #2
0
 public void Clear()
 {
     graph = null;
     foreach (Transform t in graphDomain)
     {
         Destroy(t.gameObject);
     }
     nodes.Clear();
 }
예제 #3
0
 public void NewDraw(Graph.Graph graph)
 {
     this.graph = graph;
     foreach (var i in graph)
     {
         var n = point.Create(i);
         n.transform.SetParent(graphDomain);
         nodes.Add(n);
     }
     foreach (var i in graph)
     {
         foreach (var j in i.neighbouringNodes)
         {
             lineRenderer = Instantiate(line, graphDomain)
                            .GetComponent <LineRenderer>();
             lineRenderer.positionCount = 2;
             lineRenderer.SetPosition(0, i.position);
             lineRenderer.SetPosition(1, graph[j].position);
         }
     }
 }
예제 #4
0
        public static void SimpleDraw(ref Graph.Graph graph)
        {
            foreach (var i in graph)
            {
                i.SetColor(-1);
            }
            int color = 0;
            int count = graph.Count;
            int id    = 0;

            while (count > 0 || id > 100)
            {
                foreach (var i in graph)
                {
                    if (i.color != -1)
                    {
                        continue;
                    }
                    bool draw = true;
                    foreach (var j in i.neighbouringNodes)
                    {
                        if (color == graph[j].color)
                        {
                            draw = false;
                            break;
                        }
                    }
                    if (draw)
                    {
                        i.SetColor(color);
                        count--;
                    }
                }
                id++;
                color++;
            }
        }
예제 #5
0
 private void Awake()
 {
     graph  = new Graph.Graph();
     update = DefaultUpdate;
 }