Simplified color computation.
This commit is contained in:
parent
8ab98ae60b
commit
e050133c07
|
@ -57,7 +57,7 @@ RENDER_SETTINGS::~RENDER_SETTINGS()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RENDER_SETTINGS::Update()
|
void RENDER_SETTINGS::update()
|
||||||
{
|
{
|
||||||
m_hiContrastColor = COLOR4D( m_hiContrastFactor, m_hiContrastFactor, m_highlightFactor,
|
m_hiContrastColor = COLOR4D( m_hiContrastFactor, m_hiContrastFactor, m_highlightFactor,
|
||||||
m_layerOpacity );
|
m_layerOpacity );
|
||||||
|
|
|
@ -59,13 +59,6 @@ public:
|
||||||
RENDER_SETTINGS();
|
RENDER_SETTINGS();
|
||||||
virtual ~RENDER_SETTINGS();
|
virtual ~RENDER_SETTINGS();
|
||||||
|
|
||||||
/**
|
|
||||||
* Function Update
|
|
||||||
* Precalculates extra colors for layers (eg. highlighted, darkened and any needed version
|
|
||||||
* of base colors).
|
|
||||||
*/
|
|
||||||
virtual void Update();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ImportLegacyColors
|
* Function ImportLegacyColors
|
||||||
* Loads a list of color settings for layers.
|
* Loads a list of color settings for layers.
|
||||||
|
@ -122,6 +115,13 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
/**
|
||||||
|
* Function update
|
||||||
|
* Precalculates extra colors for layers (eg. highlighted, darkened and any needed version
|
||||||
|
* of base colors).
|
||||||
|
*/
|
||||||
|
virtual void update();
|
||||||
|
|
||||||
std::set<unsigned int> m_activeLayers; /// Stores active layers number
|
std::set<unsigned int> m_activeLayers; /// Stores active layers number
|
||||||
|
|
||||||
/// Parameters for display modes
|
/// Parameters for display modes
|
||||||
|
@ -138,8 +138,7 @@ protected:
|
||||||
COLOR4D m_selectionBorderColor; /// Color of selection box border
|
COLOR4D m_selectionBorderColor; /// Color of selection box border
|
||||||
|
|
||||||
float m_selectFactor; /// Specifies how color of selected items is changed
|
float m_selectFactor; /// Specifies how color of selected items is changed
|
||||||
float m_layerOpacity; /// Determines opacity of all layers, so every can be seen
|
float m_layerOpacity; /// Determines opacity of all layers
|
||||||
/// at the same time
|
|
||||||
float m_outlineWidth; /// Line width used when drawing outlines
|
float m_outlineWidth; /// Line width used when drawing outlines
|
||||||
|
|
||||||
/// Map of colors that were usually used for display
|
/// Map of colors that were usually used for display
|
||||||
|
@ -226,16 +225,6 @@ public:
|
||||||
virtual const COLOR4D& GetColor( const VIEW_ITEM* aItem, int aLayer ) = 0;
|
virtual const COLOR4D& GetColor( const VIEW_ITEM* aItem, int aLayer ) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
|
||||||
* Function getLayerColor
|
|
||||||
* is used for obtaining color that should be used for specific layer/net
|
|
||||||
* combination using stored color settings.
|
|
||||||
* @param aLayer is the layer number that is being drawn.
|
|
||||||
* @param aNetCode is a number of the net that is being drawn.
|
|
||||||
* @param aHighlighted says if the item is marked as highlighted.
|
|
||||||
*/
|
|
||||||
virtual const COLOR4D& getLayerColor( int aLayer, int aNetCode, bool aHighlighted ) const = 0;
|
|
||||||
|
|
||||||
/// Instance of graphic abstraction layer that gives an interface to call
|
/// Instance of graphic abstraction layer that gives an interface to call
|
||||||
/// commands used to draw (eg. DrawLine, DrawCircle, etc.)
|
/// commands used to draw (eg. DrawLine, DrawCircle, etc.)
|
||||||
GAL* m_gal;
|
GAL* m_gal;
|
||||||
|
|
|
@ -51,7 +51,7 @@ PCB_RENDER_SETTINGS::PCB_RENDER_SETTINGS()
|
||||||
m_sketchModeSelect[i] = false;
|
m_sketchModeSelect[i] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,26 +64,26 @@ void PCB_RENDER_SETTINGS::ImportLegacyColors( COLORS_DESIGN_SETTINGS* aSettings
|
||||||
|
|
||||||
for( int i = 0; i < END_PCB_VISIBLE_LIST; i++ )
|
for( int i = 0; i < END_PCB_VISIBLE_LIST; i++ )
|
||||||
{
|
{
|
||||||
m_itemColors[i] = m_legacyColorMap[aSettings->GetItemColor( i )];
|
m_layerColors[ITEM_GAL_LAYER( i )] = m_legacyColorMap[aSettings->GetItemColor( i )];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default colors for specific layers
|
// Default colors for specific layers
|
||||||
m_itemColors[VIAS_HOLES_VISIBLE] = COLOR4D( 0.5, 0.4, 0.0, 1.0 );
|
m_layerColors[ITEM_GAL_LAYER( VIAS_HOLES_VISIBLE )] = COLOR4D( 0.5, 0.4, 0.0, 1.0 );
|
||||||
m_itemColors[PADS_HOLES_VISIBLE] = COLOR4D( 0.0, 0.5, 0.5, 1.0 );
|
m_layerColors[ITEM_GAL_LAYER( PADS_HOLES_VISIBLE )] = COLOR4D( 0.0, 0.5, 0.5, 1.0 );
|
||||||
m_itemColors[VIAS_VISIBLE] = COLOR4D( 0.7, 0.7, 0.7, 1.0 );
|
m_layerColors[ITEM_GAL_LAYER( VIAS_VISIBLE )] = COLOR4D( 0.7, 0.7, 0.7, 1.0 );
|
||||||
m_itemColors[PADS_VISIBLE] = COLOR4D( 0.7, 0.7, 0.7, 1.0 );
|
m_layerColors[ITEM_GAL_LAYER( PADS_VISIBLE )] = COLOR4D( 0.7, 0.7, 0.7, 1.0 );
|
||||||
m_itemColors[PADS_NETNAMES_VISIBLE] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
m_layerColors[ITEM_GAL_LAYER( PADS_NETNAMES_VISIBLE )] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
||||||
m_itemColors[PAD_FR_NETNAMES_VISIBLE] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
m_layerColors[ITEM_GAL_LAYER( PAD_FR_NETNAMES_VISIBLE )] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
||||||
m_itemColors[PAD_BK_NETNAMES_VISIBLE] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
m_layerColors[ITEM_GAL_LAYER( PAD_BK_NETNAMES_VISIBLE )] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
||||||
|
|
||||||
// Netnames for copper layers
|
// Netnames for copper layers
|
||||||
for( LAYER_NUM layer = FIRST_COPPER_LAYER; layer <= LAST_COPPER_LAYER; ++layer )
|
for( LAYER_NUM layer = FIRST_COPPER_LAYER; layer <= LAST_COPPER_LAYER; ++layer )
|
||||||
{
|
{
|
||||||
// Quick, dirty hack, netnames layers should be stored in usual layers
|
// Quick, dirty hack, netnames layers should be stored in usual layers
|
||||||
m_itemColors[GetNetnameLayer( layer ) - NB_LAYERS] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
m_layerColors[GetNetnameLayer( layer )] = COLOR4D( 0.8, 0.8, 0.8, 0.7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update();
|
||||||
Update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,10 +137,10 @@ void PCB_RENDER_SETTINGS::LoadDisplayOptions( const DISPLAY_OPTIONS& aOptions )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_RENDER_SETTINGS::Update()
|
void PCB_RENDER_SETTINGS::update()
|
||||||
{
|
{
|
||||||
// Calculate darkened/highlighted variants of layer colors
|
// Calculate darkened/highlighted variants of layer colors
|
||||||
for( int i = 0; i < NB_LAYERS; i++ )
|
for( int i = 0; i < TOTAL_LAYER_COUNT; i++ )
|
||||||
{
|
{
|
||||||
m_layerColors[i].a = m_layerOpacity;
|
m_layerColors[i].a = m_layerOpacity;
|
||||||
m_layerColorsHi[i] = m_layerColors[i].Brightened( m_highlightFactor );
|
m_layerColorsHi[i] = m_layerColors[i].Brightened( m_highlightFactor );
|
||||||
|
@ -148,14 +148,6 @@ void PCB_RENDER_SETTINGS::Update()
|
||||||
m_layerColorsSel[i] = m_layerColors[i].Brightened( m_selectFactor );
|
m_layerColorsSel[i] = m_layerColors[i].Brightened( m_selectFactor );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( int i = 0; i < END_PCB_VISIBLE_LIST; i++ )
|
|
||||||
{
|
|
||||||
m_itemColors[i].a = m_layerOpacity;
|
|
||||||
m_itemColorsHi[i] = m_itemColors[i].Brightened( m_highlightFactor );
|
|
||||||
m_itemColorsDark[i] = m_itemColors[i].Darkened( 1.0 - m_highlightFactor );
|
|
||||||
m_itemColorsSel[i] = m_itemColors[i].Brightened( m_selectFactor );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_hiContrastColor = COLOR4D( m_hiContrastFactor, m_hiContrastFactor, m_hiContrastFactor,
|
m_hiContrastColor = COLOR4D( m_hiContrastFactor, m_hiContrastFactor, m_hiContrastFactor,
|
||||||
m_layerOpacity );
|
m_layerOpacity );
|
||||||
}
|
}
|
||||||
|
@ -169,36 +161,29 @@ PCB_PAINTER::PCB_PAINTER( GAL* aGal ) :
|
||||||
|
|
||||||
const COLOR4D& PCB_PAINTER::GetColor( const VIEW_ITEM* aItem, int aLayer )
|
const COLOR4D& PCB_PAINTER::GetColor( const VIEW_ITEM* aItem, int aLayer )
|
||||||
{
|
{
|
||||||
int netCode = 0;
|
int netCode = -1;
|
||||||
|
|
||||||
// Try to obtain the netcode for the item
|
if( aItem )
|
||||||
const BOARD_CONNECTED_ITEM* item = dynamic_cast<const BOARD_CONNECTED_ITEM*>( aItem );
|
{
|
||||||
if( item )
|
if( static_cast<const EDA_ITEM*>( aItem )->IsSelected() )
|
||||||
netCode = item->GetNet();
|
{
|
||||||
|
return m_pcbSettings->m_layerColorsSel[aLayer];
|
||||||
|
}
|
||||||
|
|
||||||
return getLayerColor( aLayer, netCode,
|
// Try to obtain the netcode for the item
|
||||||
static_cast<const BOARD_ITEM*>( aItem )->IsSelected() );
|
const BOARD_CONNECTED_ITEM* item = dynamic_cast<const BOARD_CONNECTED_ITEM*>( aItem );
|
||||||
}
|
if( item )
|
||||||
|
netCode = item->GetNet();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const COLOR4D& PCB_PAINTER::getLayerColor( int aLayer, int aNetCode, bool aSelected ) const
|
|
||||||
{
|
|
||||||
// Return grayish color for non-highlighted layers in the high contrast mode
|
// Return grayish color for non-highlighted layers in the high contrast mode
|
||||||
if( m_pcbSettings->m_hiContrastEnabled && m_pcbSettings->m_activeLayers.count( aLayer ) == 0 )
|
if( m_pcbSettings->m_hiContrastEnabled && m_pcbSettings->m_activeLayers.count( aLayer ) == 0 )
|
||||||
return m_pcbSettings->m_hiContrastColor;
|
return m_pcbSettings->m_hiContrastColor;
|
||||||
|
|
||||||
// For item layers (vias, texts, and so on)
|
|
||||||
if( aLayer >= NB_LAYERS )
|
|
||||||
return getItemColor( aLayer - NB_LAYERS, aNetCode, aSelected );
|
|
||||||
|
|
||||||
// Highlight per item basis
|
|
||||||
if( aSelected )
|
|
||||||
return m_pcbSettings->m_layerColorsHi[aLayer];
|
|
||||||
|
|
||||||
// Single net highlight mode
|
// Single net highlight mode
|
||||||
if( m_pcbSettings->m_highlightEnabled )
|
if( m_pcbSettings->m_highlightEnabled )
|
||||||
{
|
{
|
||||||
if( aNetCode == m_pcbSettings->m_highlightNetcode )
|
if( netCode == m_pcbSettings->m_highlightNetcode )
|
||||||
return m_pcbSettings->m_layerColorsHi[aLayer];
|
return m_pcbSettings->m_layerColorsHi[aLayer];
|
||||||
else
|
else
|
||||||
return m_pcbSettings->m_layerColorsDark[aLayer];
|
return m_pcbSettings->m_layerColorsDark[aLayer];
|
||||||
|
@ -209,29 +194,12 @@ const COLOR4D& PCB_PAINTER::getLayerColor( int aLayer, int aNetCode, bool aSelec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const COLOR4D& PCB_PAINTER::getItemColor( int aItemType, int aNetCode, bool aSelected ) const
|
|
||||||
{
|
|
||||||
// Highlight per item basis
|
|
||||||
if( aSelected )
|
|
||||||
return m_pcbSettings->m_itemColorsHi[aItemType];
|
|
||||||
|
|
||||||
if( m_pcbSettings->m_highlightEnabled )
|
|
||||||
{
|
|
||||||
if( aNetCode == m_pcbSettings->m_highlightNetcode )
|
|
||||||
return m_pcbSettings->m_itemColorsHi[aItemType];
|
|
||||||
else
|
|
||||||
return m_pcbSettings->m_itemColorsDark[aItemType];
|
|
||||||
}
|
|
||||||
|
|
||||||
// No special modificators enabled
|
|
||||||
return m_pcbSettings->m_itemColors[aItemType];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer )
|
bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer )
|
||||||
{
|
{
|
||||||
|
const BOARD_ITEM* item = static_cast<const BOARD_ITEM*>( aItem );
|
||||||
|
|
||||||
// the "cast" applied in here clarifies which overloaded draw() is called
|
// the "cast" applied in here clarifies which overloaded draw() is called
|
||||||
switch( static_cast<const BOARD_ITEM*>( aItem )->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case PCB_ZONE_T:
|
case PCB_ZONE_T:
|
||||||
case PCB_TRACE_T:
|
case PCB_TRACE_T:
|
||||||
|
@ -308,9 +276,8 @@ void PCB_PAINTER::draw( const TRACK* aTrack, int aLayer )
|
||||||
double textSize = std::min( static_cast<double>( width ), length / netName.length() );
|
double textSize = std::min( static_cast<double>( width ), length / netName.length() );
|
||||||
|
|
||||||
// Set a proper color for the label
|
// Set a proper color for the label
|
||||||
color = getLayerColor( aTrack->GetLayer(), aTrack->GetNet(),
|
color = GetColor( aTrack, aTrack->GetLayer() );
|
||||||
aTrack->IsSelected() );
|
COLOR4D labelColor = GetColor( NULL, aLayer );
|
||||||
COLOR4D labelColor = getLayerColor( aLayer, 0, aTrack->IsSelected() );
|
|
||||||
|
|
||||||
if( color.GetBrightness() > 0.5 )
|
if( color.GetBrightness() > 0.5 )
|
||||||
m_gal->SetStrokeColor( labelColor.Inverted() );
|
m_gal->SetStrokeColor( labelColor.Inverted() );
|
||||||
|
@ -330,7 +297,7 @@ void PCB_PAINTER::draw( const TRACK* aTrack, int aLayer )
|
||||||
else if( IsCopperLayer( aLayer ))
|
else if( IsCopperLayer( aLayer ))
|
||||||
{
|
{
|
||||||
// Draw a regular track
|
// Draw a regular track
|
||||||
color = getLayerColor( aLayer, netNumber, aTrack->IsSelected() );
|
color = GetColor( aTrack, aLayer );
|
||||||
m_gal->SetStrokeColor( color );
|
m_gal->SetStrokeColor( color );
|
||||||
m_gal->SetIsStroke( true );
|
m_gal->SetIsStroke( true );
|
||||||
|
|
||||||
|
@ -369,7 +336,7 @@ void PCB_PAINTER::draw( const SEGVIA* aVia, int aLayer )
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
color = getLayerColor( aLayer, aVia->GetNet(), aVia->IsSelected() );
|
color = GetColor( aVia, aLayer );
|
||||||
|
|
||||||
if( m_pcbSettings->m_sketchModeSelect[VIAS_VISIBLE] )
|
if( m_pcbSettings->m_sketchModeSelect[VIAS_VISIBLE] )
|
||||||
{
|
{
|
||||||
|
@ -448,9 +415,8 @@ void PCB_PAINTER::draw( const D_PAD* aPad, int aLayer )
|
||||||
m_gal->SetMirrored( false );
|
m_gal->SetMirrored( false );
|
||||||
|
|
||||||
// Set a proper color for the label
|
// Set a proper color for the label
|
||||||
color = getLayerColor( aPad->GetParent()->GetLayer(), aPad->GetNet(),
|
color = GetColor( aPad, aPad->GetLayer() );
|
||||||
aPad->IsSelected() );
|
COLOR4D labelColor = GetColor( NULL, aLayer );
|
||||||
COLOR4D labelColor = getLayerColor( aLayer, 0, aPad->IsSelected() );
|
|
||||||
|
|
||||||
if( color.GetBrightness() > 0.5 )
|
if( color.GetBrightness() > 0.5 )
|
||||||
m_gal->SetStrokeColor( labelColor.Inverted() );
|
m_gal->SetStrokeColor( labelColor.Inverted() );
|
||||||
|
@ -495,7 +461,8 @@ void PCB_PAINTER::draw( const D_PAD* aPad, int aLayer )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
color = getLayerColor( aLayer, aPad->GetNet(), aPad->IsSelected() );
|
// Pad drawing
|
||||||
|
color = GetColor( aPad, aLayer );
|
||||||
if( m_pcbSettings->m_sketchModeSelect[PADS_VISIBLE] )
|
if( m_pcbSettings->m_sketchModeSelect[PADS_VISIBLE] )
|
||||||
{
|
{
|
||||||
// Outline mode
|
// Outline mode
|
||||||
|
@ -618,7 +585,7 @@ void PCB_PAINTER::draw( const D_PAD* aPad, int aLayer )
|
||||||
|
|
||||||
void PCB_PAINTER::draw( const DRAWSEGMENT* aSegment )
|
void PCB_PAINTER::draw( const DRAWSEGMENT* aSegment )
|
||||||
{
|
{
|
||||||
COLOR4D color = getLayerColor( aSegment->GetLayer(), 0, aSegment->IsSelected() );
|
COLOR4D color = GetColor( NULL, aSegment->GetLayer() );
|
||||||
|
|
||||||
m_gal->SetIsFill( false );
|
m_gal->SetIsFill( false );
|
||||||
m_gal->SetIsStroke( true );
|
m_gal->SetIsStroke( true );
|
||||||
|
@ -692,7 +659,7 @@ void PCB_PAINTER::draw( const TEXTE_PCB* aText )
|
||||||
if( aText->GetText().Length() == 0 )
|
if( aText->GetText().Length() == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
COLOR4D strokeColor = getLayerColor( aText->GetLayer(), 0, aText->IsSelected() );
|
COLOR4D strokeColor = GetColor( NULL, aText->GetLayer() );
|
||||||
VECTOR2D position( aText->GetTextPosition().x, aText->GetTextPosition().y );
|
VECTOR2D position( aText->GetTextPosition().x, aText->GetTextPosition().y );
|
||||||
double orientation = aText->GetOrientation() * M_PI / 1800.0;
|
double orientation = aText->GetOrientation() * M_PI / 1800.0;
|
||||||
|
|
||||||
|
@ -708,13 +675,13 @@ void PCB_PAINTER::draw( const TEXTE_MODULE* aText, int aLayer )
|
||||||
if( aText->GetLength() == 0 )
|
if( aText->GetLength() == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
COLOR4D strokeColor = getLayerColor( aLayer, 0, aText->IsSelected() );
|
COLOR4D strokeColor = GetColor( NULL, aLayer );
|
||||||
VECTOR2D position( aText->GetTextPosition().x, aText->GetTextPosition().y);
|
VECTOR2D position( aText->GetTextPosition().x, aText->GetTextPosition().y);
|
||||||
double orientation = aText->GetDrawRotation() * M_PI / 1800.0;
|
double orientation = aText->GetDrawRotation() * M_PI / 1800.0;
|
||||||
|
|
||||||
m_gal->PushDepth();
|
m_gal->PushDepth();
|
||||||
|
|
||||||
if(aText->IsSelected())
|
/*if(aText->IsSelected())
|
||||||
{
|
{
|
||||||
EDA_RECT bb (aText->GetBoundingBox());
|
EDA_RECT bb (aText->GetBoundingBox());
|
||||||
VECTOR2D s (bb.GetOrigin());
|
VECTOR2D s (bb.GetOrigin());
|
||||||
|
@ -725,7 +692,7 @@ void PCB_PAINTER::draw( const TEXTE_MODULE* aText, int aLayer )
|
||||||
m_gal->SetIsStroke(true);
|
m_gal->SetIsStroke(true);
|
||||||
m_gal->SetLineWidth(0);
|
m_gal->SetLineWidth(0);
|
||||||
m_gal->DrawRectangle(s, e);
|
m_gal->DrawRectangle(s, e);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
m_gal->AdvanceDepth();
|
m_gal->AdvanceDepth();
|
||||||
|
|
||||||
|
@ -741,8 +708,7 @@ void PCB_PAINTER::draw( const TEXTE_MODULE* aText, int aLayer )
|
||||||
|
|
||||||
void PCB_PAINTER::draw( const ZONE_CONTAINER* aZone )
|
void PCB_PAINTER::draw( const ZONE_CONTAINER* aZone )
|
||||||
{
|
{
|
||||||
COLOR4D color = getLayerColor( aZone->GetLayer(), aZone->GetNet(),
|
COLOR4D color = GetColor( NULL, aZone->GetLayer() );
|
||||||
aZone->IsSelected() );
|
|
||||||
std::deque<VECTOR2D> corners;
|
std::deque<VECTOR2D> corners;
|
||||||
PCB_RENDER_SETTINGS::DisplayZonesMode displayMode = m_pcbSettings->m_displayZoneMode;
|
PCB_RENDER_SETTINGS::DisplayZonesMode displayMode = m_pcbSettings->m_displayZoneMode;
|
||||||
|
|
||||||
|
@ -811,8 +777,7 @@ void PCB_PAINTER::draw( const ZONE_CONTAINER* aZone )
|
||||||
|
|
||||||
void PCB_PAINTER::draw( const DIMENSION* aDimension )
|
void PCB_PAINTER::draw( const DIMENSION* aDimension )
|
||||||
{
|
{
|
||||||
COLOR4D strokeColor = getLayerColor( aDimension->GetLayer(), 0,
|
COLOR4D strokeColor = GetColor( NULL, aDimension->GetLayer() );
|
||||||
aDimension->IsSelected() );
|
|
||||||
|
|
||||||
m_gal->SetStrokeColor( strokeColor );
|
m_gal->SetStrokeColor( strokeColor );
|
||||||
m_gal->SetIsFill( false );
|
m_gal->SetIsFill( false );
|
||||||
|
@ -835,7 +800,7 @@ 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, aTarget->IsSelected() );
|
COLOR4D strokeColor = GetColor( NULL, aTarget->GetLayer() );
|
||||||
VECTOR2D position( aTarget->GetPosition() );
|
VECTOR2D position( aTarget->GetPosition() );
|
||||||
double size, radius;
|
double size, radius;
|
||||||
|
|
||||||
|
|
|
@ -27,10 +27,8 @@
|
||||||
#define __CLASS_PCB_PAINTER_H
|
#define __CLASS_PCB_PAINTER_H
|
||||||
|
|
||||||
#include <layers_id_colors_and_visibility.h>
|
#include <layers_id_colors_and_visibility.h>
|
||||||
|
|
||||||
#include <painter.h>
|
#include <painter.h>
|
||||||
|
|
||||||
|
|
||||||
class EDA_ITEM;
|
class EDA_ITEM;
|
||||||
class COLORS_DESIGN_SETTINGS;
|
class COLORS_DESIGN_SETTINGS;
|
||||||
class DISPLAY_OPTIONS;
|
class DISPLAY_OPTIONS;
|
||||||
|
@ -76,9 +74,6 @@ public:
|
||||||
|
|
||||||
PCB_RENDER_SETTINGS();
|
PCB_RENDER_SETTINGS();
|
||||||
|
|
||||||
/// @copydoc RENDER_SETTINGS::Update()
|
|
||||||
void Update();
|
|
||||||
|
|
||||||
/// @copydoc RENDER_SETTINGS::ImportLegacyColors()
|
/// @copydoc RENDER_SETTINGS::ImportLegacyColors()
|
||||||
void ImportLegacyColors( COLORS_DESIGN_SETTINGS* aSettings );
|
void ImportLegacyColors( COLORS_DESIGN_SETTINGS* aSettings );
|
||||||
|
|
||||||
|
@ -91,23 +86,24 @@ public:
|
||||||
void LoadDisplayOptions( const DISPLAY_OPTIONS& aOptions );
|
void LoadDisplayOptions( const DISPLAY_OPTIONS& aOptions );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/// Colors for all layers (including special, highlighted & darkened versions)
|
/// @copydoc RENDER_SETTINGS::Update()
|
||||||
COLOR4D m_layerColors [NB_LAYERS];
|
void update();
|
||||||
COLOR4D m_layerColorsHi [NB_LAYERS];
|
|
||||||
COLOR4D m_layerColorsSel [NB_LAYERS];
|
|
||||||
COLOR4D m_layerColorsDark[NB_LAYERS];
|
|
||||||
COLOR4D m_itemColors [END_PCB_VISIBLE_LIST];
|
|
||||||
COLOR4D m_itemColorsHi [END_PCB_VISIBLE_LIST];
|
|
||||||
COLOR4D m_itemColorsSel [END_PCB_VISIBLE_LIST];
|
|
||||||
COLOR4D m_itemColorsDark [END_PCB_VISIBLE_LIST];
|
|
||||||
|
|
||||||
bool m_sketchModeSelect[END_PCB_VISIBLE_LIST];
|
/// Colors for all layers (including special, highlighted & darkened versions)
|
||||||
|
COLOR4D m_layerColors [TOTAL_LAYER_COUNT];
|
||||||
|
COLOR4D m_layerColorsHi [TOTAL_LAYER_COUNT];
|
||||||
|
COLOR4D m_layerColorsSel [TOTAL_LAYER_COUNT];
|
||||||
|
COLOR4D m_layerColorsDark[TOTAL_LAYER_COUNT];
|
||||||
|
|
||||||
|
bool m_sketchModeSelect[TOTAL_LAYER_COUNT];
|
||||||
bool m_padNumbers;
|
bool m_padNumbers;
|
||||||
bool m_netNamesOnPads;
|
bool m_netNamesOnPads;
|
||||||
bool m_netNamesOnTracks;
|
bool m_netNamesOnTracks;
|
||||||
|
|
||||||
|
/// Maximum font size for netnames (and other dynamically shown strings)
|
||||||
static const double MAX_FONT_SIZE = 100000000;
|
static const double MAX_FONT_SIZE = 100000000;
|
||||||
|
|
||||||
|
/// Option for different display modes for zones
|
||||||
DisplayZonesMode m_displayZoneMode;
|
DisplayZonesMode m_displayZoneMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -131,7 +127,7 @@ public:
|
||||||
PAINTER::ApplySettings( aSettings );
|
PAINTER::ApplySettings( aSettings );
|
||||||
|
|
||||||
// Store PCB specific render settings
|
// Store PCB specific render settings
|
||||||
m_pcbSettings = dynamic_cast<PCB_RENDER_SETTINGS*> ( aSettings );
|
m_pcbSettings = dynamic_cast<PCB_RENDER_SETTINGS*>( aSettings );
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @copydoc PAINTER::GetColor()
|
/// @copydoc PAINTER::GetColor()
|
||||||
|
@ -140,17 +136,6 @@ public:
|
||||||
protected:
|
protected:
|
||||||
PCB_RENDER_SETTINGS* m_pcbSettings;
|
PCB_RENDER_SETTINGS* m_pcbSettings;
|
||||||
|
|
||||||
/// @copydoc PAINTER::getLayerColor()
|
|
||||||
const COLOR4D& getLayerColor( int aLayer, int aNetCode, bool aHighlighted ) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function getItemColor
|
|
||||||
* Returns color for a special layer (eg. vias/pads holes, texts on front/bottom layer, etc.)
|
|
||||||
* @param aItemType Layer number of the item to be drawn.
|
|
||||||
* @param aNetCode Net number of the item to be drawn.
|
|
||||||
*/
|
|
||||||
const COLOR4D& getItemColor( int aItemType, int aNetCode, bool aHighlighted ) const;
|
|
||||||
|
|
||||||
// Drawing functions for various types of PCB-specific items
|
// Drawing functions for various types of PCB-specific items
|
||||||
void draw( const TRACK*, int );
|
void draw( const TRACK*, int );
|
||||||
void draw( const SEGVIA*, int );
|
void draw( const SEGVIA*, int );
|
||||||
|
|
Loading…
Reference in New Issue