public static void AddNode(GraphNode node) { Nodes.Add(node); Edges.Add(node, new List <GraphEdge>()); Adjency.Add(node, new List <GraphNode>()); LastIndex++; }
public static void Clear() { foreach (GraphNode node in Nodes) { Canvas canvas = node.Parent as Canvas; foreach (List <GraphEdge> list in Edges.Values) { if (list != null) { foreach (GraphEdge edge in list) { if (edge != null) { canvas.Children.Remove(edge.EdgeLine); canvas.Children.Remove(edge.WeightLabel); } } } } canvas.Children.Remove(node); } Selected1 = null; Selected2 = null; Edges.Clear(); Nodes.Clear(); Adjency.Clear(); LastIndex = -1; }
public static void RemoveNode(GraphNode node) { Canvas canvas = node.Parent as Canvas; if (canvas != null) { if (Edges.ContainsKey(node)) { foreach (GraphEdge edge in Edges[node]) { if (node == edge.NodeFirst) { Edges[edge.NodeSecond].Remove(edge); } else { Edges[edge.NodeFirst].Remove(edge); } canvas.Children.Remove(edge.EdgeLine); canvas.Children.Remove(edge.WeightLabel); } Edges.Remove(node); } canvas.Children.Remove(node); Nodes.Remove(node); Adjency.Remove(node); if (node.Index == LastIndex) { LastIndex--; } } }