PdfSharp.Xps.Rendering.PdfContentWriter.WriteSegment C# (CSharp) Méthode

WriteSegment() private méthode

Writes the specified ArcSegment to the content stream.
private WriteSegment ( PdfSharp.Xps.XpsModel.ArcSegment seg ) : void
seg PdfSharp.Xps.XpsModel.ArcSegment
Résultat void
    internal void WriteSegment(ArcSegment seg)
    {
      if (!DevHelper.FlattenArcSegments)
      {
        int pieces;
        System.Windows.Media.PointCollection points =
          GeometryHelper.ArcToBezier(this.currentPoint.X, this.currentPoint.Y, seg.Size.Width, seg.Size.Height, seg.RotationAngle, seg.IsLargeArc,
            seg.SweepDirection == SweepDirection.Clockwise, seg.Point.X, seg.Point.Y, out pieces);
        if (pieces == 0)
        {
          // just draw single line
          WriteLiteral("{0:0.####} {1:0.####} l\n", seg.Point.X, seg.Point.Y);
          this.currentPoint = seg.Point;
          return;
        }
        else if (pieces < 0)
          return;

        int count = points.Count;
        Debug.Assert(count % 3 == 0);
        for (int idx = 0; idx < count - 2; idx += 3)
        {
          WriteLiteral("{0:0.####} {1:0.####} {2:0.####} {3:0.####} {4:0.####} {5:0.####} c\n",
            points[idx].X, points[idx].Y, points[idx + 1].X, points[idx + 1].Y, points[idx + 2].X, points[idx + 2].Y);
          this.currentPoint = new Point(points[idx + 2].X, points[idx + 2].Y);
        }
      }
      else
      {
        PolyLineSegment lseg = WpfUtils.FlattenSegment(this.currentPoint, seg);
        WriteSegment(lseg);
      }
    }

Same methods

PdfContentWriter::WriteSegment ( PdfSharp.Xps.XpsModel.PolyBezierSegment seg ) : void
PdfContentWriter::WriteSegment ( PdfSharp.Xps.XpsModel.PolyLineSegment seg ) : void
PdfContentWriter::WriteSegment ( PdfSharp.Xps.XpsModel.PolyQuadraticBezierSegment seg ) : void