public void StrokeACubicBezierPolyLine()
            {
                var        geometry = new PathGeometry();
                PathFigure figure   = new PathFigure();

                //for pixel perfect, we need to add 0.51
                figure.StartPoint = new Point(10 + 0.51, 100 + 0.51);
                var segment = new PolyCubicBezierSegment(new[]
                {
                    new Point(0 + 0.51, 0 + 0.51),
                    new Point(200 + 0.51, 0 + 0.51),
                    new Point(300 + 0.51, 100 + 0.51),
                    new Point(300 + 0.51, 0 + 0.51),
                    new Point(400 + 0.51, 0 + 0.51),
                    new Point(600 + 0.51, 100 + 0.51)
                },
                                                         true);

                figure.Segments.Add(segment);
                figure.IsClosed = false;
                figure.IsFilled = false;
                geometry.Figures.Add(figure);
                Pen pen = new Pen(Color.Black, 1);

                CheckGeometry(geometry, null, pen, 610, 110);
            }
예제 #2
0
        /// <inheritdoc/>
        public override void PolyCubicBezierTo(ImmutableArray <PointShape> points, bool isStroked = true, bool isSmoothJoin = true)
        {
            var segment = PolyCubicBezierSegment.Create(
                points,
                isStroked,
                isSmoothJoin);

            _currentFigure.Segments = _currentFigure.Segments.Add(segment);
        }
        public void ToString_Should_Return_Path_Markup()
        {
            var target = new PolyCubicBezierSegment();

            target.Points = target.Points.Add(new PointShape());
            target.Points = target.Points.Add(new PointShape());
            target.Points = target.Points.Add(new PointShape());
            target.Points = target.Points.Add(new PointShape());
            target.Points = target.Points.Add(new PointShape());

            var actual = target.ToString();

            Assert.Equal("C0,0 0,0 0,0 0,0 0,0", actual);
        }
        public void GetPoints_Should_Return_All_Segment_Points()
        {
            var segment = new PolyCubicBezierSegment();

            segment.Points = segment.Points.Add(new PointShape());
            segment.Points = segment.Points.Add(new PointShape());
            segment.Points = segment.Points.Add(new PointShape());
            segment.Points = segment.Points.Add(new PointShape());
            segment.Points = segment.Points.Add(new PointShape());

            var target = segment.GetPoints();
            var count  = target.Count();

            Assert.Equal(5, count);

            Assert.Equal(segment.Points, target);
        }
예제 #5
0
        /// <summary>
        /// Initializes static designer context.
        /// </summary>
        /// <param name="serviceProvider">The service provider.</param>
        public static void InitializeContext(IServiceProvider serviceProvider)
        {
            // Editor

            Editor = serviceProvider.GetService <ProjectEditor>();

            // Recent Projects

            Editor.RecentProjects = Editor.RecentProjects.Add(RecentFile.Create("Test1", "Test1.project"));
            Editor.RecentProjects = Editor.RecentProjects.Add(RecentFile.Create("Test2", "Test2.project"));

            // New Project

            Editor.OnNewProject();

            // Transform

            Transform = MatrixObject.Identity;

            // Data

            var db      = Database.Create("Db");
            var fields  = new string[] { "Column0", "Column1" };
            var columns = ImmutableArray.CreateRange(fields.Select(c => Column.Create(db, c)));

            db.Columns = columns;
            var values = Enumerable.Repeat("<empty>", db.Columns.Length).Select(c => Value.Create(c));
            var record = Record.Create(
                db,
                ImmutableArray.CreateRange(values));

            db.Records       = db.Records.Add(record);
            db.CurrentRecord = record;

            Database = db;
            Data     = Context.Create(record);
            Record   = record;

            // Project

            IProjectFactory factory = new ProjectFactory();

            Project = factory.GetProject();

            Template = PageContainer.CreateTemplate();

            Page = PageContainer.CreatePage();
            var layer = Page.Layers.FirstOrDefault();

            layer.Shapes      = layer.Shapes.Add(LineShape.Create(0, 0, null, null));
            Page.CurrentLayer = layer;
            Page.CurrentShape = layer.Shapes.FirstOrDefault();
            Page.Template     = Template;

            Document = DocumentContainer.Create();
            Layer    = LayerContainer.Create();
            Options  = Options.Create();

            // State

            State = ShapeState.Create();

            // Style

            ArgbColor       = ArgbColor.Create(128, 255, 0, 0);
            ArrowStyle      = ArrowStyle.Create();
            FontStyle       = FontStyle.Create();
            LineFixedLength = LineFixedLength.Create();
            LineStyle       = LineStyle.Create();
            Style           = ShapeStyle.Create("Default");
            TextStyle       = TextStyle.Create();

            // Shapes

            Arc             = ArcShape.Create(0, 0, Style, null);
            CubicBezier     = CubicBezierShape.Create(0, 0, Style, null);
            Ellipse         = EllipseShape.Create(0, 0, Style, null);
            Group           = GroupShape.Create(Constants.DefaulGroupName);
            Image           = ImageShape.Create(0, 0, Style, null, "key");
            Line            = LineShape.Create(0, 0, Style, null);
            Path            = PathShape.Create(Style, null);
            Point           = PointShape.Create();
            QuadraticBezier = QuadraticBezierShape.Create(0, 0, Style, null);
            Rectangle       = RectangleShape.Create(0, 0, Style, null);
            Text            = TextShape.Create(0, 0, Style, null, "Text");

            // Path

            ArcSegment                 = ArcSegment.Create(PointShape.Create(), PathSize.Create(), 180, true, SweepDirection.Clockwise, true, true);
            CubicBezierSegment         = CubicBezierSegment.Create(PointShape.Create(), PointShape.Create(), PointShape.Create(), true, true);
            LineSegment                = LineSegment.Create(PointShape.Create(), true, true);
            PathFigure                 = PathFigure.Create(PointShape.Create(), false, true);
            PathGeometry               = PathGeometry.Create(ImmutableArray.Create <PathFigure>(), FillRule.EvenOdd);
            PathSize                   = PathSize.Create();
            PolyCubicBezierSegment     = PolyCubicBezierSegment.Create(ImmutableArray.Create <PointShape>(), true, true);
            PolyLineSegment            = PolyLineSegment.Create(ImmutableArray.Create <PointShape>(), true, true);
            PolyQuadraticBezierSegment = PolyQuadraticBezierSegment.Create(ImmutableArray.Create <PointShape>(), true, true);
            QuadraticBezierSegment     = QuadraticBezierSegment.Create(PointShape.Create(), PointShape.Create(), true, true);
        }
        public void Points_Not_Null()
        {
            var target = new PolyCubicBezierSegment();

            Assert.False(target.Points.IsDefault);
        }