Exemplo n.º 1
0
        public void CreatePolylinesTest()
        {
            var entities = new[]
            {
                new Line(new Point(0.0, 0.0, 0.0), new Point(1.0, 0.0, 0.0)),
                new Line(new Point(1.0, 0.0, 0.0), new Point(1.0, 1.0, 0.0))
            };
            var drawing = new Drawing()
                          .Add(new Layer("some-layer"))
                          .Add(new Layer("some-other-layer"))
                          .Update(currentLayerName: "some-layer");

            foreach (var entity in entities)
            {
                drawing = drawing.AddToCurrentLayer(entity);
            }

            var finalDrawing = drawing.CombineEntitiesIntoPolyline(entities, "some-other-layer");

            Assert.Empty(finalDrawing.Layers.GetValue("some-layer").GetEntities());

            var polyline = (Polyline)finalDrawing.Layers.GetValue("some-other-layer").GetEntities().Single();
            var vertices = polyline.Vertices.ToList();

            Assert.Equal(3, vertices.Count);
            Assert.Equal(new Point(0.0, 0.0, 0.0), vertices[0].Location);
            Assert.Equal(new Point(1.0, 0.0, 0.0), vertices[1].Location);
            Assert.Equal(new Point(1.0, 1.0, 0.0), vertices[2].Location);
        }
Exemplo n.º 2
0
        public void ScaleEntities()
        {
            var drawing = new Drawing();

            drawing = drawing.AddToCurrentLayer(new Line(new Point(1.0, 1.0, 0.0), new Point(2.0, 2.0, 0.0)));
            drawing = drawing.AddToCurrentLayer(new Line(new Point(2.0, 2.0, 0.0), new Point(3.0, 3.0, 0.0)));
            drawing = drawing.AddToCurrentLayer(new Circle(new Point(3.0, 3.0, 0.0), 4.0, Vector.ZAxis));
            var lines = drawing.GetEntities().OfType <Line>().ToList();

            var updatedDrawing = drawing.ScaleEntities(lines, new Point(1.0, 1.0, 0.0), 2.0);

            Assert.True(updatedDrawing.GetEntities().OfType <Circle>().Single().EquivalentTo(new Circle(new Point(3.0, 3.0, 0.0), 4.0, Vector.ZAxis)));
            var scaledLines = updatedDrawing.GetEntities().OfType <Line>().ToList();

            Assert.Equal(2, scaledLines.Count);
            Assert.True(scaledLines[0].EquivalentTo(new Line(new Point(1.0, 1.0, 0.0), new Point(3.0, 3.0, 0.0))));
            Assert.True(scaledLines[1].EquivalentTo(new Line(new Point(3.0, 3.0, 0.0), new Point(5.0, 5.0, 0.0))));
        }