Make sure parent pos is factored in for polygons.
Fixes https://gitlab.com/kicad/code/kicad/issues/11945
This commit is contained in:
parent
30a72101f3
commit
6cfbf895fc
|
@ -2001,31 +2001,31 @@ void PCB_PAINTER::draw( const FP_TEXTBOX* aTextBox, int aLayer )
|
|||
m_gal->SetIsFill( true );
|
||||
m_gal->SetIsStroke( false );
|
||||
|
||||
if( lineStyle <= PLOT_DASH_TYPE::FIRST_TYPE )
|
||||
if( thickness > 0 )
|
||||
{
|
||||
if( thickness > 0 )
|
||||
if( lineStyle <= PLOT_DASH_TYPE::FIRST_TYPE )
|
||||
{
|
||||
std::vector<VECTOR2I> pts = aTextBox->GetCorners();
|
||||
|
||||
for( size_t ii = 0; ii < pts.size(); ++ii )
|
||||
m_gal->DrawSegment( pts[ ii ], pts[ (ii + 1) % pts.size() ], thickness );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<SHAPE*> shapes = aTextBox->MakeEffectiveShapes( true );
|
||||
|
||||
for( SHAPE* shape : shapes )
|
||||
else
|
||||
{
|
||||
STROKE_PARAMS::Stroke( shape, lineStyle, thickness, &m_pcbSettings,
|
||||
[&]( const VECTOR2I& a, const VECTOR2I& b )
|
||||
{
|
||||
m_gal->DrawSegment( a, b, thickness );
|
||||
} );
|
||||
}
|
||||
std::vector<SHAPE*> shapes = aTextBox->MakeEffectiveShapes( true );
|
||||
|
||||
for( SHAPE* shape : shapes )
|
||||
delete shape;
|
||||
for( SHAPE* shape : shapes )
|
||||
{
|
||||
STROKE_PARAMS::Stroke( shape, lineStyle, thickness, &m_pcbSettings,
|
||||
[&]( const VECTOR2I& a, const VECTOR2I& b )
|
||||
{
|
||||
m_gal->DrawSegment( a, b, thickness );
|
||||
} );
|
||||
}
|
||||
|
||||
for( SHAPE* shape : shapes )
|
||||
delete shape;
|
||||
}
|
||||
}
|
||||
|
||||
wxString resolvedText( aTextBox->GetShownText() );
|
||||
|
|
|
@ -105,8 +105,10 @@ std::vector<VECTOR2I> PCB_SHAPE::GetCorners() const
|
|||
}
|
||||
else if( GetShape() == SHAPE_T::POLY )
|
||||
{
|
||||
VECTOR2I offset = getParentPosition();
|
||||
|
||||
for( const VECTOR2I& pt : GetPolyShape().Outline( 0 ).CPoints() )
|
||||
pts.emplace_back( pt );
|
||||
pts.emplace_back( pt + offset );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue