public void AddNewNode(ACOCity cityToAdd, List <ACOCity> citiesFromState) { _namesCounter++; ACOCity city = new ACOCity((string)cityToAdd.СityName.Clone()); for (int i = 0; i < _Graph.GetCities().Count; i++) { city.Connect(_Graph.GetCities()[i], (ACODistance)cityToAdd.GetDistanceTo(citiesFromState[i])); } foreach (ACOCity c in _Graph.GetCities()) { city.Connect(c, new ACODistance(1, 0.5)); } _Graph.AddCity(city); Node node = new Node(city); node.Width = _nodeSize; node.Height = _nodeSize; node.Location = _OldNodes[_Nodes.Count].Location; _Nodes.Add(node); this.Controls.Add(node); this.Refresh(); }
private void CopyGraph(TSPGraph <ACOCity, ACODistance> graph) { foreach (ACOCity mainCity in graph.GetCities()) { ACOCity copiedCity = (ACOCity)mainCity.Clone(); for (int i = 0; i < graphState.GetCities().Count; i++) { ACODistance dist = (ACODistance)((ACODistance)mainCity.GetDistanceTo(graph.GetCities()[i])).Clone(); copiedCity.Connect(graphState.GetCities()[i], dist); } graphState.AddCity(copiedCity); } }