File tree Expand file tree Collapse file tree 3 files changed +13
-8
lines changed
src/ImageSharp.Drawing/Shapes Expand file tree Collapse file tree 3 files changed +13
-8
lines changed Original file line number Diff line number Diff line change @@ -101,7 +101,7 @@ public virtual IPath Transform(Matrix3x2 matrix)
101101
102102 ILineSegment [ ] segments = new ILineSegment [ this . lineSegments . Length ] ;
103103
104- for ( int i = 0 ; i < this . LineSegments . Count ; i ++ )
104+ for ( int i = 0 ; i < segments . Length ; i ++ )
105105 {
106106 segments [ i ] = this . lineSegments [ i ] . Transform ( matrix ) ;
107107 }
Original file line number Diff line number Diff line change @@ -465,7 +465,7 @@ private class Figure
465465
466466 public IPath Build ( )
467467 => this . IsClosed
468- ? new Polygon ( this . segments . ToArray ( ) )
468+ ? new Polygon ( this . segments . ToArray ( ) , true )
469469 : new Path ( this . segments . ToArray ( ) ) ;
470470 }
471471}
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ public Polygon(PointF[] points)
2424 /// </summary>
2525 /// <param name="segments">The segments.</param>
2626 public Polygon ( params ILineSegment [ ] segments )
27- : base ( ( IEnumerable < ILineSegment > ) segments )
27+ : base ( segments . ToArray ( ) )
2828 {
2929 }
3030
@@ -55,6 +55,11 @@ internal Polygon(Path path)
5555 {
5656 }
5757
58+ internal Polygon ( ILineSegment [ ] segments , bool owned )
59+ : base ( owned ? segments : segments . ToArray ( ) )
60+ {
61+ }
62+
5863 /// <inheritdoc />
5964 public override bool IsClosed => true ;
6065
@@ -66,13 +71,13 @@ public override IPath Transform(Matrix3x2 matrix)
6671 return this ;
6772 }
6873
69- var segments = new ILineSegment [ this . LineSegments . Count ] ;
70- int i = 0 ;
71- foreach ( ILineSegment s in this . LineSegments )
74+ ILineSegment [ ] segments = new ILineSegment [ this . LineSegments . Count ] ;
75+
76+ for ( int i = 0 ; i < segments . Length ; i ++ )
7277 {
73- segments [ i ++ ] = s . Transform ( matrix ) ;
78+ segments [ i ] = this . LineSegments [ i ] . Transform ( matrix ) ;
7479 }
7580
76- return new Polygon ( segments ) ;
81+ return new Polygon ( segments , true ) ;
7782 }
7883}
You can’t perform that action at this time.
0 commit comments