Fixed drawing of PCB_TARGET items.

This commit is contained in:
Maciej Suminski 2013-04-17 13:12:54 +02:00
parent fde71bdf33
commit e799d7a06c
1 changed files with 26 additions and 10 deletions

View File

@ -550,21 +550,37 @@ void PCB_PAINTER::draw( const DIMENSION* aDimension )
void PCB_PAINTER::draw( const PCB_TARGET* aTarget ) void PCB_PAINTER::draw( const PCB_TARGET* aTarget )
{ {
COLOR4D strokeColor = getLayerColor( aTarget->GetLayer(), 0 ); COLOR4D strokeColor = getLayerColor( aTarget->GetLayer(), 0 );
double radius; VECTOR2D position( aTarget->GetPosition() );
double size, radius;
// according to PCB_TARGET::Draw() (class_mire.cpp) m_gal->SetLineWidth( aTarget->GetWidth() );
if( aTarget->GetShape() ) // shape X m_gal->SetStrokeColor( strokeColor );
m_gal->SetIsFill( false );
m_gal->SetIsStroke( true );
m_gal->Save();
m_gal->Translate( position );
if( aTarget->GetShape() )
{ {
radius = aTarget->GetSize() / 2; // shape x
m_gal->Rotate( M_PI / 4.0 );
size = 2.0 * aTarget->GetSize() / 3.0;
radius = aTarget->GetSize() / 2.0;
} }
else else
{ {
radius = aTarget->GetSize() / 3; // shape +
size = aTarget->GetSize() / 2.0;
radius = aTarget->GetSize() / 3.0;
} }
m_gal->SetStrokeColor( strokeColor ); m_gal->DrawLine( VECTOR2D( -size, 0.0 ),
m_gal->SetIsFill( true ); VECTOR2D( size, 0.0 ) );
m_gal->SetIsStroke( true ); m_gal->DrawLine( VECTOR2D( 0.0, -size ),
m_gal->DrawCircle( VECTOR2D( aTarget->GetPosition() ), radius ); VECTOR2D( 0.0, size ) );
m_gal->DrawCircle( VECTOR2D( 0.0, 0.0 ), radius );
m_gal->Restore();
} }