router: fix arc drawing in ROUTER_PREVIEW_ITEM
This commit is contained in:
parent
149d34fbe1
commit
e5fff302a3
|
@ -154,9 +154,21 @@ const BOX2I ROUTER_PREVIEW_ITEM::ViewBBox() const
|
||||||
|
|
||||||
void ROUTER_PREVIEW_ITEM::drawLineChain( const SHAPE_LINE_CHAIN& aL, KIGFX::GAL* gal ) const
|
void ROUTER_PREVIEW_ITEM::drawLineChain( const SHAPE_LINE_CHAIN& aL, KIGFX::GAL* gal ) const
|
||||||
{
|
{
|
||||||
|
gal->SetIsFill( false );
|
||||||
|
|
||||||
for( int s = 0; s < aL.SegmentCount(); s++ )
|
for( int s = 0; s < aL.SegmentCount(); s++ )
|
||||||
gal->DrawLine( aL.CSegment( s ).A, aL.CSegment( s ).B );
|
gal->DrawLine( aL.CSegment( s ).A, aL.CSegment( s ).B );
|
||||||
|
|
||||||
|
for( size_t s = 0; s < aL.ArcCount(); s++ )
|
||||||
|
{
|
||||||
|
auto arc = aL.CArcs()[s];
|
||||||
|
|
||||||
|
auto start_angle = DEG2RAD( arc.GetStartAngle() );
|
||||||
|
auto angle = DEG2RAD( arc.GetCentralAngle() );
|
||||||
|
|
||||||
|
gal->DrawArc( arc.GetCenter(), arc.GetRadius(), start_angle, start_angle + angle);
|
||||||
|
}
|
||||||
|
|
||||||
if( aL.IsClosed() )
|
if( aL.IsClosed() )
|
||||||
gal->DrawLine( aL.CSegment( -1 ).B, aL.CSegment( 0 ).A );
|
gal->DrawLine( aL.CSegment( -1 ).B, aL.CSegment( 0 ).A );
|
||||||
}
|
}
|
||||||
|
@ -293,9 +305,32 @@ void ROUTER_PREVIEW_ITEM::ViewDraw( int aLayer, KIGFX::VIEW* aView ) const
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SH_ARC:
|
||||||
|
{
|
||||||
|
const auto arc = static_cast<const SHAPE_ARC*>( m_shape );
|
||||||
|
|
||||||
|
auto start_angle = DEG2RAD( arc->GetStartAngle() );
|
||||||
|
auto angle = DEG2RAD( arc->GetCentralAngle() );
|
||||||
|
|
||||||
|
gal->SetIsFill( false );
|
||||||
|
gal->SetIsStroke( true );
|
||||||
|
|
||||||
|
if( m_showTrackClearance && m_clearance > 0 )
|
||||||
|
{
|
||||||
|
gal->SetLineWidth( m_width + 2 * m_clearance );
|
||||||
|
gal->DrawArc( arc->GetCenter(), arc->GetRadius(), start_angle, start_angle + angle );
|
||||||
|
}
|
||||||
|
|
||||||
|
gal->SetLayerDepth( m_depth );
|
||||||
|
gal->SetStrokeColor( m_color );
|
||||||
|
gal->SetFillColor( m_color );
|
||||||
|
gal->SetLineWidth( m_width );
|
||||||
|
gal->DrawArc( arc->GetCenter(), arc->GetRadius(), start_angle, start_angle + angle );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case SH_POLY_SET:
|
case SH_POLY_SET:
|
||||||
case SH_COMPOUND:
|
case SH_COMPOUND:
|
||||||
case SH_ARC:
|
|
||||||
break; // Not yet in use
|
break; // Not yet in use
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue