PCB_TEXT::TransformTextToPolySet(): fix missing code for knockout texts.
From master branch Fixes #14473 https://gitlab.com/kicad/code/kicad/issues/14473
This commit is contained in:
parent
2ece2719d0
commit
f59626004c
|
@ -493,7 +493,22 @@ void FP_TEXT::TransformTextToPolySet( SHAPE_POLY_SET& aBuffer, PCB_LAYER_ID aLay
|
||||||
font->Draw( &callback_gal, GetShownText(), GetTextPos(), attrs );
|
font->Draw( &callback_gal, GetShownText(), GetTextPos(), attrs );
|
||||||
|
|
||||||
buffer.Simplify( SHAPE_POLY_SET::PM_FAST );
|
buffer.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
aBuffer.Append( buffer );
|
|
||||||
|
if( IsKnockout() )
|
||||||
|
{
|
||||||
|
SHAPE_POLY_SET finalPoly;
|
||||||
|
int margin = attrs.m_StrokeWidth * 1.5
|
||||||
|
+ GetKnockoutTextMargin( attrs.m_Size, attrs.m_StrokeWidth );
|
||||||
|
|
||||||
|
TransformBoundingBoxToPolygon( &finalPoly, margin );
|
||||||
|
finalPoly.BooleanSubtract( buffer, SHAPE_POLY_SET::PM_FAST );
|
||||||
|
|
||||||
|
aBuffer.Append( finalPoly );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aBuffer.Append( buffer );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -303,7 +303,7 @@ void PCB_TEXT::TransformTextToPolySet( SHAPE_POLY_SET& aBuffer, PCB_LAYER_ID aLa
|
||||||
// Stroke callback
|
// Stroke callback
|
||||||
[&]( const VECTOR2I& aPt1, const VECTOR2I& aPt2 )
|
[&]( const VECTOR2I& aPt1, const VECTOR2I& aPt2 )
|
||||||
{
|
{
|
||||||
TransformOvalToPolygon( aBuffer, aPt1, aPt2, penWidth + ( 2 * aClearance ),
|
TransformOvalToPolygon( buffer, aPt1, aPt2, penWidth + ( 2 * aClearance ),
|
||||||
aError, ERROR_INSIDE );
|
aError, ERROR_INSIDE );
|
||||||
},
|
},
|
||||||
// Triangulation callback
|
// Triangulation callback
|
||||||
|
@ -318,7 +318,23 @@ void PCB_TEXT::TransformTextToPolySet( SHAPE_POLY_SET& aBuffer, PCB_LAYER_ID aLa
|
||||||
font->Draw( &callback_gal, GetShownText(), GetTextPos(), GetAttributes() );
|
font->Draw( &callback_gal, GetShownText(), GetTextPos(), GetAttributes() );
|
||||||
|
|
||||||
buffer.Simplify( SHAPE_POLY_SET::PM_FAST );
|
buffer.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
aBuffer.Append( buffer );
|
|
||||||
|
if( IsKnockout() )
|
||||||
|
{
|
||||||
|
TEXT_ATTRIBUTES attrs = GetAttributes();
|
||||||
|
SHAPE_POLY_SET finalPoly;
|
||||||
|
int margin = attrs.m_StrokeWidth * 1.5
|
||||||
|
+ GetKnockoutTextMargin( attrs.m_Size, attrs.m_StrokeWidth );
|
||||||
|
|
||||||
|
TransformBoundingBoxToPolygon( &finalPoly, margin );
|
||||||
|
finalPoly.BooleanSubtract( buffer, SHAPE_POLY_SET::PM_FAST );
|
||||||
|
|
||||||
|
aBuffer.Append( finalPoly );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aBuffer.Append( buffer );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue