EnumerateFaceClockwise( this TiledBarrierGraph graph, int face, int maxFaceCount = ushort.MaxValue) { var enumerator = graph.GetFaceEnumerator(); if (!enumerator.MoveTo(face)) { yield break; } if (face == 0) { yield break; } var edges = new List <(int vertex1, int edge, bool forward, int vertex2, (double longitude, double latitude)[] shape)>();
public void TiledBarrierGraph_FaceEnumerator_1Edge_Left_ShouldEnumerateEdge() { var graphs = new TiledBarrierGraph(); var v1 = graphs.AddVertex(4.7522735595703125, 50.97918242660188, 564341430); var v2 = graphs.AddVertex(4.7525310516357420, 50.97851368626033, 564341431); var e = graphs.AddEdge(v1, v2); var f = graphs.AddFace(); graphs.SetFace(e, true, f); var enumerator = graphs.GetFaceEnumerator(); Assert.True(enumerator.MoveTo(f)); Assert.True(enumerator.MoveNext()); Assert.Equal(e, enumerator.Edge); Assert.True(enumerator.IsLeft); Assert.False(enumerator.MoveNext()); }