diff --git a/pcbnew/pcb_painter.cpp b/pcbnew/pcb_painter.cpp index e14b269d03..4b7759497b 100644 --- a/pcbnew/pcb_painter.cpp +++ b/pcbnew/pcb_painter.cpp @@ -1147,18 +1147,29 @@ void PCB_PAINTER::draw( const MODULE* aModule, int aLayer ) { if( aLayer == LAYER_ANCHOR ) { - const COLOR4D color = m_pcbSettings.GetColor( aModule, LAYER_ANCHOR ); + const COLOR4D color = m_pcbSettings.GetColor( aModule, aLayer ); + + // Keep the size and width constant, not related to the scale because the anchor + // is just a marker on screen + double anchorSize = 5.0 / m_gal->GetWorldScale(); // 5 pixels size + double anchorThickness = 2.0 / m_gal->GetWorldScale(); // 2 pixels width // Draw anchor + m_gal->SetIsFill( false ); + m_gal->SetIsStroke( true ); m_gal->SetStrokeColor( color ); - m_gal->SetLineWidth( m_pcbSettings.m_outlineWidth ); - - // Keep the size constant, not related to the scale - double anchorSize = 5.0 / m_gal->GetWorldScale(); + m_gal->SetLineWidth( anchorThickness ); VECTOR2D center = aModule->GetPosition(); m_gal->DrawLine( center - VECTOR2D( anchorSize, 0 ), center + VECTOR2D( anchorSize, 0 ) ); m_gal->DrawLine( center - VECTOR2D( 0, anchorSize ), center + VECTOR2D( 0, anchorSize ) ); + +#if 0 // For debug purpose only: draw the bounding box + double bboxThickness = 1.0 / m_gal->GetWorldScale(); + m_gal->SetLineWidth( bboxThickness ); + EDA_RECT rect = aModule->GetBoundingBoxBase(); + m_gal->DrawRectangle( VECTOR2D( rect.GetOrigin() ), VECTOR2D( rect.GetEnd() ) ); +#endif } }