Beispiel #1
0
 private void load(string file)
 {
     byte[] buffer = new byte[4];
     using (FileStream f = new FileStream(file, FileMode.Open, FileAccess.Read))
     {
         f.Read(buffer, 0, 4);
         Nodes=new Node[BitConverter.ToInt32(buffer, 0)];
         for (int i = 0; i < Nodes.Length; i++)
         {
             Nodes[i]=new Node(f, buffer, this);
             Nodes[i].passable = Nodes[i].position.Distance(gate1) > 200 &&
                                 Nodes[i].position.Distance(gate2) > 200;
         }
     }
 }
Beispiel #2
0
 private void load()
 {
     byte[] buffer = new byte[4];
     using (MemoryStream f = new MemoryStream(Resources.NavGraphSummonersRift))
     {
         f.Read(buffer, 0, 4);
         Nodes = new Node[BitConverter.ToInt32(buffer, 0)];
         for (int i = 0; i < Nodes.Length; i++)
         {
             Nodes[i] = new Node(f, buffer, this);
             Nodes[i].passable = Nodes[i].position.Distance(gate1) > 200 &&
             Nodes[i].position.Distance(gate2) > 200;
         }
     }
 }
Beispiel #3
0
        public void RemoveNode(int node)
        {

            while (Nodes[node].Neighbors.Length > 0)
            {
                RemoveLink(node, Nodes[node].Neighbors[0]);
            }
            Node[] tmp = new Node[Nodes.Length - 1];
            Array.Copy(Nodes, 0, tmp, 0, node);
            Array.Copy(Nodes, node + 1, tmp, node, Nodes.Length - node - 1);
            Nodes = tmp;
            for (int i = 0; i < Nodes.Length; i++)
            {
                for (int j = 0; j < Nodes[i].Neighbors.Length; j++)
                {
                    if (Nodes[i].Neighbors[j] > node)
                        Nodes[i].Neighbors[j]--;
                }
            }
        }
Beispiel #4
0
        public void AddNode(Vector3 pos)
        {
            Node[] tmp = new Node[Nodes.Length + 1];
            Nodes.CopyTo(tmp, 0);
            Nodes = tmp;
            Nodes[Nodes.Length - 1] = new Node(new int[0], pos, this);

        }