Don't double-save transform for plotting DNP.
This commit is contained in:
parent
cc78196f81
commit
d2c512f422
|
@ -2427,6 +2427,9 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter, bool aBackground, const SCH_PLOT_OPTS&
|
||||||
if( aBackground )
|
if( aBackground )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
SCH_RENDER_SETTINGS* renderSettings = getRenderSettings( aPlotter );
|
||||||
|
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
||||||
|
|
||||||
if( m_part )
|
if( m_part )
|
||||||
{
|
{
|
||||||
std::vector<LIB_PIN*> libPins;
|
std::vector<LIB_PIN*> libPins;
|
||||||
|
@ -2462,8 +2465,7 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter, bool aBackground, const SCH_PLOT_OPTS&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SCH_RENDER_SETTINGS* renderSettings = getRenderSettings( aPlotter );
|
TRANSFORM savedTransform = renderSettings->m_Transform;
|
||||||
TRANSFORM savedTransform = renderSettings->m_Transform;
|
|
||||||
renderSettings->m_Transform = GetTransform();
|
renderSettings->m_Transform = GetTransform();
|
||||||
aPlotter->StartBlock( nullptr );
|
aPlotter->StartBlock( nullptr );
|
||||||
|
|
||||||
|
@ -2481,7 +2483,18 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter, bool aBackground, const SCH_PLOT_OPTS&
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_DNP )
|
if( m_DNP )
|
||||||
PlotDNP( aPlotter );
|
{
|
||||||
|
BOX2I bbox = GetBodyAndPinsBoundingBox();
|
||||||
|
int strokeWidth = 3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS );
|
||||||
|
|
||||||
|
aPlotter->SetColor( colors->GetColor( LAYER_DNP_MARKER ) );
|
||||||
|
|
||||||
|
aPlotter->ThickSegment( bbox.GetOrigin(), bbox.GetEnd(), strokeWidth, FILLED, nullptr );
|
||||||
|
|
||||||
|
aPlotter->ThickSegment( bbox.GetOrigin() + VECTOR2I( bbox.GetWidth(), 0 ),
|
||||||
|
bbox.GetOrigin() + VECTOR2I( 0, bbox.GetHeight() ),
|
||||||
|
strokeWidth, FILLED, nullptr );
|
||||||
|
}
|
||||||
|
|
||||||
SCH_SHEET_PATH* sheet = &Schematic()->CurrentSheet();
|
SCH_SHEET_PATH* sheet = &Schematic()->CurrentSheet();
|
||||||
|
|
||||||
|
@ -2520,31 +2533,6 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter, bool aBackground, const SCH_PLOT_OPTS&
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_SYMBOL::PlotDNP( PLOTTER* aPlotter ) const
|
|
||||||
{
|
|
||||||
SCH_RENDER_SETTINGS* renderSettings = getRenderSettings( aPlotter );
|
|
||||||
TRANSFORM savedTransform = renderSettings->m_Transform;
|
|
||||||
renderSettings->m_Transform = GetTransform();
|
|
||||||
|
|
||||||
BOX2I bbox = GetBodyAndPinsBoundingBox();
|
|
||||||
|
|
||||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
|
||||||
|
|
||||||
aPlotter->SetColor( colors->GetColor( LAYER_DNP_MARKER ) );
|
|
||||||
|
|
||||||
aPlotter->ThickSegment( bbox.GetOrigin(), bbox.GetEnd(),
|
|
||||||
3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS ),
|
|
||||||
FILLED, nullptr );
|
|
||||||
|
|
||||||
aPlotter->ThickSegment( bbox.GetOrigin() + VECTOR2I( bbox.GetWidth(), 0 ),
|
|
||||||
bbox.GetOrigin() + VECTOR2I( 0, bbox.GetHeight() ),
|
|
||||||
3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS ),
|
|
||||||
FILLED, nullptr );
|
|
||||||
|
|
||||||
renderSettings->m_Transform = savedTransform;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SCH_SYMBOL::PlotPins( PLOTTER* aPlotter ) const
|
void SCH_SYMBOL::PlotPins( PLOTTER* aPlotter ) const
|
||||||
{
|
{
|
||||||
if( m_part )
|
if( m_part )
|
||||||
|
|
|
@ -813,14 +813,6 @@ public:
|
||||||
*/
|
*/
|
||||||
void PlotPins( PLOTTER* aPlotter ) const;
|
void PlotPins( PLOTTER* aPlotter ) const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Plot the red 'X' over the symbol. This is separated to allow it being used from the
|
|
||||||
* screen plot function, overlapping the pins
|
|
||||||
*
|
|
||||||
* @param aPlotter the #PLOTTER object used to draw the X
|
|
||||||
*/
|
|
||||||
void PlotDNP( PLOTTER* aPlotter ) const;
|
|
||||||
|
|
||||||
EDA_ITEM* Clone() const override;
|
EDA_ITEM* Clone() const override;
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
Loading…
Reference in New Issue