Exemplo n.º 1
0
        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)>();
Exemplo n.º 2
0
        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());
        }