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); }
/// <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); }
/// <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); }