public void RemoveEdge(Edge _Edge) { var hEndPoints = _Edge.GetPossibleEnpoints(); hEndPoints[0].RemoveEdge(_Edge); if (hEndPoints.Length > 1) { hEndPoints[1].RemoveEdge(_Edge); } FEdgeIndices.Remove(_Edge); UpdateNeighbourInfoInNodes(); // Update der Kanten-Infos }
public void AddEdge(Edge _Edge) { FEdgeIndices.Add(_Edge); // Die Kante noch in den Knoten ergänzen if (_Edge is DirectedEdge) { var hStartNode = ((DirectedEdge)_Edge).GetEdgeSource(); hStartNode.AddEdge(_Edge); } else if (_Edge is UndirectedEdge) { var hEndPoints = _Edge.GetPossibleEnpoints(); var hNodeA = hEndPoints[0]; var hNodeB = hEndPoints[1]; hNodeA.AddEdge(_Edge); hNodeB.AddEdge(_Edge); } UpdateNeighbourInfoInNodes(); }