diff --git a/pcbnew/convert_shape_list_to_polygon.cpp b/pcbnew/convert_shape_list_to_polygon.cpp index 825b76e55c..4acdfee86e 100644 --- a/pcbnew/convert_shape_list_to_polygon.cpp +++ b/pcbnew/convert_shape_list_to_polygon.cpp @@ -185,7 +185,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE contours.emplace_back(); - int ii = contours.size() - 1; + SHAPE_LINE_CHAIN& currContour = contours.back(); bool firstPt = true; // Circles, rects and polygons are closed shapes unto themselves (and do not combine @@ -207,7 +207,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE RotatePoint( pt, orientation ); pt += offset; - contours[ ii ].Append( pt ); + currContour.Append( pt ); if( firstPt ) firstPt = false; @@ -217,7 +217,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE prevPt = pt; } - contours[ ii ].SetClosed( true ); + currContour.SetClosed( true ); } else if( graphic->GetShape() == SHAPE_T::CIRCLE ) { @@ -234,7 +234,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE { nextPt = start; RotatePoint( nextPt, center, ANGLE_360 * step / steps ); - contours[ ii ].Append( nextPt ); + currContour.Append( nextPt ); if( firstPt ) firstPt = false; @@ -244,7 +244,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE prevPt = nextPt; } - contours[ ii ].SetClosed( true ); + currContour.SetClosed( true ); } else if( graphic->GetShape() == SHAPE_T::RECT ) { @@ -252,7 +252,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE for( const VECTOR2I& pt : pts ) { - contours[ ii ].Append( pt ); + currContour.Append( pt ); if( firstPt ) firstPt = false; @@ -262,7 +262,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE prevPt = pt; } - contours[ ii ].SetClosed( true ); + currContour.SetClosed( true ); } else { @@ -271,7 +271,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE VECTOR2I startPt = graphic->GetEnd(); prevPt = startPt; - contours[ ii ].Append( prevPt ); + currContour.Append( prevPt ); // do not append the other end point yet, this first 'graphic' might be an arc for(;;) @@ -307,7 +307,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE else nextPt = graphic->GetStart(); - contours[ ii ].Append( nextPt ); + currContour.Append( nextPt ); shapeOwners[ std::make_pair( prevPt, nextPt ) ] = graphic; prevPt = nextPt; } @@ -340,13 +340,13 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE RotatePoint( pt, pcenter, rotation ); - contours[ ii ].Append( pt ); + currContour.Append( pt ); shapeOwners[ std::make_pair( prevPt, pt ) ] = graphic; prevPt = pt; } // Append the last arc end point - contours[ ii ].Append( pend ); + currContour.Append( pend ); shapeOwners[ std::make_pair( prevPt, pend ) ] = graphic; prevPt = pend; } @@ -377,7 +377,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE for( int jj = graphic->GetBezierPoints().size()-1; jj >= 0; jj-- ) { const VECTOR2I& pt = graphic->GetBezierPoints()[jj]; - contours[ ii ].Append( pt ); + currContour.Append( pt ); shapeOwners[ std::make_pair( prevPt, pt ) ] = graphic; prevPt = pt; } @@ -386,7 +386,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE { for( const VECTOR2I& pt : graphic->GetBezierPoints() ) { - contours[ ii ].Append( pt ); + currContour.Append( pt ); shapeOwners[ std::make_pair( prevPt, pt ) ] = graphic; prevPt = pt; } @@ -418,7 +418,7 @@ bool ConvertOutlineToPolygon( std::vector& aShapeList, SHAPE_POLY_SE if( close_enough( startPt, prevPt, aChainingEpsilon ) ) { - contours[ ii ].SetClosed( true ); + currContour.SetClosed( true ); break; } else if( nextGraphic ) // encountered already-used segment, but not at the start