Continue lineStyle patterns between arcs and segments in SHAPE_LINE_CHAIN.

This requires us not resetting PS/PDF's lineStyles
with a "move" instruction.

Also fixes DXF to handle arcs in SHAPE_LINE_CHAINs,
even if it doesn't handle lineStyles.
This commit is contained in:
Jeff Young
2025-10-24 22:30:04 +01:00
parent fddb8f9e5a
commit 5419839a1d
6 changed files with 127 additions and 57 deletions
+6 -6
View File
@@ -607,16 +607,16 @@ void PLOTTER::ThickPoly( const SHAPE_POLY_SET& aPoly, int aWidth, void* aData )
}
void PLOTTER::PlotPoly( const SHAPE_LINE_CHAIN& aCornerList, FILL_T aFill, int aWidth, void* aData )
void PLOTTER::PlotPoly( const SHAPE_LINE_CHAIN& aLineChain, FILL_T aFill, int aWidth, void* aData )
{
std::vector<VECTOR2I> cornerList;
cornerList.reserve( aCornerList.PointCount() );
cornerList.reserve( aLineChain.PointCount() );
for( int ii = 0; ii < aCornerList.PointCount(); ii++ )
cornerList.emplace_back( aCornerList.CPoint( ii ) );
for( int ii = 0; ii < aLineChain.PointCount(); ii++ )
cornerList.emplace_back( aLineChain.CPoint( ii ) );
if( aCornerList.IsClosed() && cornerList.front() != cornerList.back() )
cornerList.emplace_back( aCornerList.CPoint( 0 ) );
if( aLineChain.IsClosed() && cornerList.front() != cornerList.back() )
cornerList.emplace_back( aLineChain.CPoint( 0 ) );
PlotPoly( cornerList, aFill, aWidth, aData );
}