public void AddInboundArc(Arc newArc, bool inMatching) { InboundArcs.AddLast(newArc); if (inMatching) { AddToMatching(); } Log.Info("Added inbound arc " + newArc + " to vertex " + Name); }
public override void ArcReverted(Arc arc) { if (Type == VertexType.A) { OutboundArcs.RemoveAll(a => a.End == TwinGraph.EndVertex); TwinGraph.EndVertex.InboundArcs.RemoveAll(a => a.Start == this); TwinGraph.Arcs.RemoveAll(a => a.Start == this && a.End == TwinGraph.EndVertex); } else { InboundArcs.RemoveAll(a => a.Start == TwinGraph.StartVertex); TwinGraph.StartVertex.OutboundArcs.RemoveAll(a => a.End == this); TwinGraph.Arcs.RemoveAll(a => a.Start == TwinGraph.StartVertex && a.End == this); } base.ArcReverted(arc); }
public virtual void ArcReverted(Arc arc) { if (!IsInMatching) { AddToMatching(); } if (arc.Start == this) { InboundArcs.Remove(arc); OutboundArcs.AddLast(arc); } if (arc.End == this) { OutboundArcs.Remove(arc); InboundArcs.AddLast(arc); } }