Implemented special rules for plotting assembly layers

- Reference is visible on silk and the corresponding assembly layer
- Reference is shown on assembly always on the component insertion point

Hidden references are not forced shown in assembly plots (there is
already a user option for that)
This commit is contained in:
Lorenzo Marcantonio 2014-09-08 19:57:39 +02:00
parent 9fca82c23f
commit 032b7cb71b
1 changed files with 13 additions and 1 deletions

View File

@ -124,6 +124,13 @@ bool BRDITEMS_PLOTTER::PlotAllTextsModule( MODULE* aModule )
if( textLayer > LAYER_ID_COUNT ) // how will this ever be true? if( textLayer > LAYER_ID_COUNT ) // how will this ever be true?
return false; return false;
// Special rule: assembly always shows reference from the silk layer
if( (m_layerMask[F_Fab]) && (textLayer == F_SilkS) )
trace_ref = true;
if( (m_layerMask[B_Fab]) && (textLayer == B_SilkS) )
trace_ref = true;
if( !m_layerMask[textLayer] ) if( !m_layerMask[textLayer] )
trace_val = false; trace_val = false;
@ -216,7 +223,12 @@ void BRDITEMS_PLOTTER::PlotTextModule( TEXTE_MODULE* pt_texte, EDA_COLOR_T aColo
// calculate some text parameters : // calculate some text parameters :
size = pt_texte->GetSize(); size = pt_texte->GetSize();
pos = pt_texte->GetTextPosition();
// Assembly drawings always have the reference on the origin
if( m_layerMask[F_Fab] || m_layerMask[B_Fab] )
pos = static_cast<MODULE*>( pt_texte->GetParent() )->GetPosition();
else
pos = pt_texte->GetTextPosition();
orient = pt_texte->GetDrawRotation(); orient = pt_texte->GetDrawRotation();