Пример #1
0
        public void ConnectedLoop()
        {
            // Arrange
            var polylines = new List <PolyLine2d>();

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(0, 0),
                new Vector2d(1, 0),
                new Vector2d(1, 1),
            }));

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(0, 0),
                new Vector2d(0, 1),
                new Vector2d(1, 1),
            }));

            // Act
            var result = PolyLineCombiner.CombineConnectedPolyLines(polylines, 1e-6);

            // Assert
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(5, result[0].VertexCount);
            Assert.AreEqual(4, result[0].ArcLength, delta);
        }
Пример #2
0
        public void Mixed()
        {
            // Arrange
            var polylines = new List <PolyLine2d>();

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(1, 0),
                new Vector2d(1, 1),
            }));

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(1, 0),
                new Vector2d(1, -1),
            }));

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(3, 0),
                new Vector2d(3, 1),
            }));

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(4, 0),
                new Vector2d(4, -1),
            }));

            // Act
            var result = PolyLineCombiner.CombineConnectedPolyLines(polylines, 1e-6);

            // Assert
            Assert.AreEqual(3, result.Count);
        }
Пример #3
0
        public void ContainsThreeWayJunction_DoesNotCombine()
        {
            // Arrange
            var polylines = new List <PolyLine2d>();

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(1, 0),
                new Vector2d(1, 1),
            }));

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(1, 0),
                new Vector2d(1, -1),
            }));

            polylines.Add(new PolyLine2d(new Vector2d[] {
                new Vector2d(0, 0),
                new Vector2d(1, 0),
            }));

            // Act
            var result = PolyLineCombiner.CombineConnectedPolyLines(polylines, 1e-6);

            // Assert
            Assert.AreEqual(3, result.Count);
        }