Example #1
0
        // funkcija za konektovanje naseg cvora sa novim uz odgovarajuce provere
        public void connect(int newNodeID)
        {
            var connectedNode = Platno.nodes.First(y => y.ID == newNodeID);

            // ukoliko smo vec konektovani a pokusavamo opet znaci da zapravo
            // pokusavamo da diskonektujemo nas cvor sa drugim cvorom
            // pa to ovde i radimo
            foreach (var x in Connected)
            {
                if (newNodeID == x)
                {
                    Connected.Remove(newNodeID);
                    weights.Remove(weights.Find(k => k.Key == newNodeID));
                    connectionColors.Remove(connectionColors.Find(l => l.Key == newNodeID));
                    return;
                }
            }

            // racunamo poziciju gde ce se prikazati tezina date grane i konektujemo sa tim cvorom nas cvor
            // ubacujemo i boje i tezinu
            double length = Math.Sqrt(Math.Pow(Position.X - connectedNode.Position.X, 2) + Math.Pow(Position.Y - connectedNode.Position.Y, 2)) / 8;

            Connected.Add(newNodeID);

            weights.Add(new KeyValuePair <int, double>(newNodeID, length));
            connectionColors.Add(new KeyValuePair <int, Color>(newNodeID, Color.ForestGreen));
        }