public bool MoveForwardAndCheckForCrossing() { if (inside.MoveNext() & outside.MoveNext()) { Edge <T> a = inside.Current; Edge <T> b = outside.Current; if (AreTwins(a, b)) { Visited.Push(a); return(false); } else { return(true); } } else { throw new Exception("Error in Boundary: must not end."); } }