/** * {@inheritDoc} */ public override HashSet <E> getAllEdges(V sourceVertex, V targetVertex) { List <E> edges = null; if (abstractBaseGraph.containsVertex(sourceVertex) && abstractBaseGraph.containsVertex(targetVertex)) { edges = new ArrayUnenforcedSet <E>(); DirectedEdgeContainer <V, E> ec = getEdgeContainer(sourceVertex); foreach (E e in ec.outgoing) { if (abstractBaseGraph.getEdgeTarget(e).Equals(targetVertex)) { edges.Add(e); } } } return(new HashSet <E>(edges)); }
public override void addEdgeToTouchingVertices(E e) { V source = abstractBaseGraph.getEdgeSource(e); V target = abstractBaseGraph.getEdgeTarget(e); getEdgeContainer(source).addOutgoingEdge(e); getEdgeContainer(target).addIncomingEdge(e); KeyValuePair <V, V> vertexPair = new KeyValuePair <V, V>(source, target); ArrayUnenforcedSet <E> edgeSet = null; touchingVerticesToEdgeMap.TryGetValue(vertexPair, out edgeSet); if (edgeSet != null) { edgeSet.Add(e); } else { edgeSet = new ArrayUnenforcedSet <E>(); edgeSet.Add(e); touchingVerticesToEdgeMap[vertexPair] = edgeSet; } }