KiCad PCB EDA Suite
KIGFX::PCB_RENDER_SETTINGS Class Reference

Class PCB_RENDER_SETTINGS Stores PCB specific render settings. More...

#include <pcb_painter.h>

Inheritance diagram for KIGFX::PCB_RENDER_SETTINGS:
KIGFX::RENDER_SETTINGS

Public Types

enum  CLEARANCE_MODE {
  CL_NONE = 0x00, CL_PADS = 0x01, CL_VIAS = 0x02, CL_TRACKS = 0x04,
  CL_NEW = 0x08, CL_EDITED = 0x10, CL_EXISTING = 0x20
}
 

Flags to control clearance lines visibility

More...
 
enum  DISPLAY_ZONE_MODE { DZ_HIDE_FILLED = 0, DZ_SHOW_FILLED, DZ_SHOW_OUTLINED }
 

Determines how zones should be displayed

More...
 

Public Member Functions

 PCB_RENDER_SETTINGS ()
 
void ImportLegacyColors (const COLORS_DESIGN_SETTINGS *aSettings) override
 Function ImportLegacyColors Loads a list of color settings for layers. More...
 
void LoadDisplayOptions (const PCB_DISPLAY_OPTIONS *aOptions)
 Function LoadDisplayOptions Loads settings related to display options (high-contrast mode, full or outline modes for vias/pads/tracks and so on). More...
 
virtual const COLOR4DGetColor (const VIEW_ITEM *aItem, int aLayer) const override
 Function GetColor Returns the color that should be used to draw the specific VIEW_ITEM on the specific layer using currently used render settings. More...
 
void SetSketchMode (int aItemLayer, bool aEnabled)
 Function SetSketchMode Turns on/off sketch mode for given item layer. More...
 
bool GetSketchMode (int aItemLayer) const
 Function GetSketchMode Returns sketch mode setting for a given item layer. More...
 
bool IsBackgroundDark () const
 
void SetActiveLayer (int aLayerId, bool aEnabled=true)
 Function SetActiveLayer Sets the specified layer as active - it means that it can be drawn in a specific mode (eg. More...
 
const std::set< unsigned int > GetActiveLayers ()
 Function GetActiveLayers() Returns the set of currently active layers. More...
 
void ClearActiveLayers ()
 Function ClearActiveLayers Clears the list of active layers. More...
 
bool IsActiveLayer (int aLayerId) const
 Function IsActiveLayer Returns information whether the queried layer is marked as active. More...
 
bool IsHighlightEnabled () const
 Function IsHighlightEnabled Returns current highlight setting. More...
 
int GetHighlightNetCode () const
 Function GetHighlightNetCode Returns netcode of currently highlighted net. More...
 
void SetHighlight (bool aEnabled, int aNetcode=-1)
 Function SetHighlight Turns on/off highlighting - it may be done for the active layer or the specified net. More...
 
void SetHighContrast (bool aEnabled)
 Function SetHighContrast Turns on/off high contrast display mode. More...
 
bool GetHighContrast () const
 Function GetHighContrast Returns information about high contrast display mode. More...
 
float GetWorksheetLineWidth () const
 
const COLOR4DGetBackgroundColor () const
 Function GetBackgroundColor Returns current background color settings. More...
 
void SetBackgroundColor (const COLOR4D &aColor)
 Function SetBackgroundColor Sets new color for background. More...
 
const COLOR4DGetLayerColor (int aLayer) const
 Function GetLayerColor Returns the color used to draw a layer. More...
 
void SetLayerColor (int aLayer, const COLOR4D &aColor)
 Function SetLayerColor Changes the color used to draw a layer. More...
 

Protected Member Functions

virtual void update ()
 Function update Precalculates extra colors for layers (e.g. More...
 

Protected Attributes

bool m_sketchMode [GAL_LAYER_ID_END]
 

Flag determining if items on a given layer should be drawn as an outline or a filled item

More...
 
bool m_sketchBoardGfx
 

Flag determining if board graphic items should be outlined or stroked

More...
 
bool m_sketchFpGfx
 

Flag determining if footprint graphic items should be outlined or stroked

More...
 
bool m_padNumbers
 

Flag determining if pad numbers should be visible

More...
 
bool m_netNamesOnPads
 

Flag determining if net names should be visible for pads

More...
 
bool m_netNamesOnTracks
 

Flag determining if net names should be visible for tracks

More...
 
bool m_netNamesOnVias = true
 

Flag determining if net names should be visible for vias

More...
 
DISPLAY_ZONE_MODE m_displayZone
 

Option for different display modes for zones

More...
 
int m_clearance
 

Clearance visibility settings

More...
 
COLOR4D m_selectionCandidateColor
 

Color used for highlighting selection candidates

More...
 
std::set< unsigned int > m_activeLayers
 Stores active layers number. More...
 
COLOR4D m_layerColors [LAYER_ID_COUNT]
 

Colors for all layers (normal)

More...
 
COLOR4D m_layerColorsHi [LAYER_ID_COUNT]
 

Colors for all layers (highlighted)

More...
 
COLOR4D m_layerColorsSel [LAYER_ID_COUNT]
 

Colors for all layers (selected)

More...
 
COLOR4D m_layerColorsDark [LAYER_ID_COUNT]
 

Colors for all layers (darkened)

More...
 
bool m_hiContrastEnabled
 Parameters for display modes. More...
 
COLOR4D m_hiContrastColor
 Color used for high contrast display mode. More...
 
float m_hiContrastFactor
 Factor used for computing high contrast color. More...
 
bool m_highlightEnabled
 Highlight display mode on/off. More...
 
int m_highlightNetcode
 Net number that is displayed in highlight -1 means that there is no specific net, and whole active layer is highlighted. More...
 
float m_highlightFactor
 Factor used for computing hightlight color. More...
 
float m_selectFactor
 Specifies how color of selected items is changed. More...
 
float m_layerOpacity
 Determines opacity of all layers. More...
 
float m_outlineWidth
 Line width used when drawing outlines. More...
 
float m_worksheetLineWidth
 Line width used when drawing worksheet. More...
 
COLOR4D m_backgroundColor
 The background color. More...
 

Static Protected Attributes

static const double MAX_FONT_SIZE = Millimeter2iu( 10.0 )
 

Maximum font size for netnames (and other dynamically shown strings)

More...
 

Friends

class PCB_PAINTER
 

Detailed Description

Class PCB_RENDER_SETTINGS Stores PCB specific render settings.

Definition at line 62 of file pcb_painter.h.

Member Enumeration Documentation

Flags to control clearance lines visibility

Enumerator
CL_NONE 
CL_PADS 
CL_VIAS 
CL_TRACKS 
CL_NEW 
CL_EDITED 
CL_EXISTING 

Definition at line 68 of file pcb_painter.h.

Determines how zones should be displayed

Enumerator
DZ_HIDE_FILLED 
DZ_SHOW_FILLED 
DZ_SHOW_OUTLINED 

Definition at line 84 of file pcb_painter.h.

Constructor & Destructor Documentation

PCB_RENDER_SETTINGS::PCB_RENDER_SETTINGS ( )

Definition at line 48 of file pcb_painter.cpp.

References CL_NONE, DZ_SHOW_FILLED, FRAME_PCB, ImportLegacyColors(), KIGFX::RENDER_SETTINGS::m_backgroundColor, m_clearance, m_displayZone, m_netNamesOnPads, m_netNamesOnTracks, m_padNumbers, m_selectionCandidateColor, m_sketchBoardGfx, m_sketchFpGfx, m_sketchMode, PCB_LAYER_ID_COUNT, and KIGFX::RENDER_SETTINGS::update().

49 {
50  m_backgroundColor = COLOR4D( 0.0, 0.0, 0.0, 1.0 );
51  m_padNumbers = true;
52  m_netNamesOnPads = true;
53  m_netNamesOnTracks = true;
56  m_sketchBoardGfx = false;
57  m_sketchFpGfx = false;
58  m_selectionCandidateColor = COLOR4D( 0.0, 1.0, 0.0, 0.75 );
59 
60  // By default everything should be displayed as filled
61  for( unsigned int i = 0; i < PCB_LAYER_ID_COUNT; ++i )
62  {
63  m_sketchMode[i] = false;
64  }
65 
67  ImportLegacyColors( &dummyCds );
68 
69  update();
70 }
bool m_sketchMode[GAL_LAYER_ID_END]
Flag determining if items on a given layer should be drawn as an outline or a filled item ...
Definition: pcb_painter.h:138
bool m_padNumbers
Flag determining if pad numbers should be visible
Definition: pcb_painter.h:147
bool m_sketchBoardGfx
Flag determining if board graphic items should be outlined or stroked
Definition: pcb_painter.h:141
DISPLAY_ZONE_MODE m_displayZone
Option for different display modes for zones
Definition: pcb_painter.h:162
COLOR4D m_selectionCandidateColor
Color used for highlighting selection candidates
Definition: pcb_painter.h:168
void ImportLegacyColors(const COLORS_DESIGN_SETTINGS *aSettings) override
Function ImportLegacyColors Loads a list of color settings for layers.
Definition: pcb_painter.cpp:73
bool m_netNamesOnPads
Flag determining if net names should be visible for pads
Definition: pcb_painter.h:150
virtual void update()
Function update Precalculates extra colors for layers (e.g.
Definition: painter.cpp:52
bool m_sketchFpGfx
Flag determining if footprint graphic items should be outlined or stroked
Definition: pcb_painter.h:144
bool m_netNamesOnTracks
Flag determining if net names should be visible for tracks
Definition: pcb_painter.h:153
COLOR4D m_backgroundColor
The background color.
Definition: painter.h:262
int m_clearance
Clearance visibility settings
Definition: pcb_painter.h:165
Class COLORS_DESIGN_SETTINGS is a list of color settings for designs in Pcbnew.
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39

Member Function Documentation

void KIGFX::RENDER_SETTINGS::ClearActiveLayers ( )
inlineinherited

Function ClearActiveLayers Clears the list of active layers.

Definition at line 98 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_activeLayers.

Referenced by GERBVIEW_DRAW_PANEL_GAL::SetHighContrastLayer(), PCB_DRAW_PANEL_GAL::SetHighContrastLayer(), and EDA_DRAW_PANEL_GAL::SetHighContrastLayer().

99  {
100  m_activeLayers.clear();
101  }
std::set< unsigned int > m_activeLayers
Stores active layers number.
Definition: painter.h:232
const std::set<unsigned int> KIGFX::RENDER_SETTINGS::GetActiveLayers ( )
inlineinherited

Function GetActiveLayers() Returns the set of currently active layers.

Returns
The set of currently active layers.

Definition at line 89 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_activeLayers.

90  {
91  return m_activeLayers;
92  }
std::set< unsigned int > m_activeLayers
Stores active layers number.
Definition: painter.h:232
const COLOR4D& KIGFX::RENDER_SETTINGS::GetBackgroundColor ( ) const
inlineinherited

Function GetBackgroundColor Returns current background color settings.

Returns
Background color.

Definition at line 186 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_backgroundColor.

Referenced by KIGFX::PCB_PAINTER::draw(), and EDA_DRAW_PANEL_GAL::onPaint().

187  {
188  return m_backgroundColor;
189  }
COLOR4D m_backgroundColor
The background color.
Definition: painter.h:262
const COLOR4D & PCB_RENDER_SETTINGS::GetColor ( const VIEW_ITEM aItem,
int  aLayer 
) const
overridevirtual

Function GetColor Returns the color that should be used to draw the specific VIEW_ITEM on the specific layer using currently used render settings.

Parameters
aItemis the VIEW_ITEM.
aLayeris the layer.
Returns
The color.

Implements KIGFX::RENDER_SETTINGS.

Definition at line 212 of file pcb_painter.cpp.

References EDA_ITEM::IsBrightened(), EDA_ITEM::IsSelected(), KIGFX::RENDER_SETTINGS::m_activeLayers, KIGFX::RENDER_SETTINGS::m_hiContrastColor, KIGFX::RENDER_SETTINGS::m_hiContrastEnabled, KIGFX::RENDER_SETTINGS::m_highlightEnabled, KIGFX::RENDER_SETTINGS::m_highlightNetcode, KIGFX::RENDER_SETTINGS::m_layerColors, KIGFX::RENDER_SETTINGS::m_layerColorsDark, KIGFX::RENDER_SETTINGS::m_layerColorsHi, KIGFX::RENDER_SETTINGS::m_layerColorsSel, and m_selectionCandidateColor.

Referenced by KIGFX::PCB_PAINTER::draw().

213 {
214  int netCode = -1;
215  const EDA_ITEM* item = static_cast<const EDA_ITEM*>( aItem );
216 
217  if( item )
218  {
219  // Selection disambiguation
220  if( item->IsBrightened() )
221  {
223  }
224 
225  if( item->IsSelected() )
226  {
227  return m_layerColorsSel[aLayer];
228  }
229 
230  // Try to obtain the netcode for the item
231  if( const BOARD_CONNECTED_ITEM* conItem = dyn_cast<const BOARD_CONNECTED_ITEM*> ( item ) )
232  netCode = conItem->GetNetCode();
233  }
234 
235  // Single net highlight mode
236  if( m_highlightEnabled && netCode == m_highlightNetcode )
237  return m_layerColorsHi[aLayer];
238 
239  // Return grayish color for non-highlighted layers in the high contrast mode
240  if( m_hiContrastEnabled && m_activeLayers.count( aLayer ) == 0 )
241  return m_hiContrastColor;
242 
243  // Catch the case when highlight and high-contraste modes are enabled
244  // and we are drawing a not highlighted track
245  if( m_highlightEnabled )
246  return m_layerColorsDark[aLayer];
247 
248  // No special modificators enabled
249  return m_layerColors[aLayer];
250 }
COLOR4D m_hiContrastColor
Color used for high contrast display mode.
Definition: painter.h:248
bool IsBrightened() const
Definition: base_struct.h:238
COLOR4D m_layerColorsHi[LAYER_ID_COUNT]
Colors for all layers (highlighted)
Definition: painter.h:238
COLOR4D m_layerColors[LAYER_ID_COUNT]
Colors for all layers (normal)
Definition: painter.h:235
bool IsSelected() const
Definition: base_struct.h:235
bool m_highlightEnabled
Highlight display mode on/off.
Definition: painter.h:251
COLOR4D m_selectionCandidateColor
Color used for highlighting selection candidates
Definition: pcb_painter.h:168
Class BOARD_CONNECTED_ITEM is a base class derived from BOARD_ITEM for items that can be connected an...
std::set< unsigned int > m_activeLayers
Stores active layers number.
Definition: painter.h:232
COLOR4D m_layerColorsDark[LAYER_ID_COUNT]
Colors for all layers (darkened)
Definition: painter.h:244
bool m_hiContrastEnabled
Parameters for display modes.
Definition: painter.h:247
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:165
int m_highlightNetcode
Net number that is displayed in highlight -1 means that there is no specific net, and whole active la...
Definition: painter.h:252
COLOR4D m_layerColorsSel[LAYER_ID_COUNT]
Colors for all layers (selected)
Definition: painter.h:241
bool KIGFX::RENDER_SETTINGS::GetHighContrast ( ) const
inlineinherited

Function GetHighContrast Returns information about high contrast display mode.

Returns
True if the high contrast mode is on, false otherwise.

Definition at line 161 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_hiContrastEnabled.

Referenced by SELECTION_TOOL::selectable().

162  {
163  return m_hiContrastEnabled;
164  }
bool m_hiContrastEnabled
Parameters for display modes.
Definition: painter.h:247
int KIGFX::RENDER_SETTINGS::GetHighlightNetCode ( ) const
inlineinherited

Function GetHighlightNetCode Returns netcode of currently highlighted net.

Returns
Netcode of currently highlighted net.

Definition at line 128 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_highlightNetcode.

129  {
130  return m_highlightNetcode;
131  }
int m_highlightNetcode
Net number that is displayed in highlight -1 means that there is no specific net, and whole active la...
Definition: painter.h:252
const COLOR4D& KIGFX::RENDER_SETTINGS::GetLayerColor ( int  aLayer) const
inlineinherited

Function GetLayerColor Returns the color used to draw a layer.

Parameters
aLayeris the layer number.

Definition at line 206 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_layerColors.

Referenced by ROUTER_PREVIEW_ITEM::getLayerColor(), and EDA_DRAW_PANEL_GAL::onPaint().

207  {
208  return m_layerColors[aLayer];
209  }
COLOR4D m_layerColors[LAYER_ID_COUNT]
Colors for all layers (normal)
Definition: painter.h:235
bool KIGFX::PCB_RENDER_SETTINGS::GetSketchMode ( int  aItemLayer) const
inline

Function GetSketchMode Returns sketch mode setting for a given item layer.

Parameters
aItemLayeris the item layer that is changed.

Definition at line 124 of file pcb_painter.h.

References m_sketchMode.

Referenced by MODULE_EDITOR_TOOLS::ModuleEdgeOutlines(), and MODULE_EDITOR_TOOLS::ModuleTextOutlines().

125  {
126  return m_sketchMode[aItemLayer];
127  }
bool m_sketchMode[GAL_LAYER_ID_END]
Flag determining if items on a given layer should be drawn as an outline or a filled item ...
Definition: pcb_painter.h:138
float KIGFX::RENDER_SETTINGS::GetWorksheetLineWidth ( ) const
inlineinherited

Definition at line 176 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_worksheetLineWidth.

177  {
178  return m_worksheetLineWidth;
179  }
float m_worksheetLineWidth
Line width used when drawing worksheet.
Definition: painter.h:260
void PCB_RENDER_SETTINGS::ImportLegacyColors ( const COLORS_DESIGN_SETTINGS aSettings)
overridevirtual

Function ImportLegacyColors Loads a list of color settings for layers.

Parameters
aSettingsis a list of color settings.

Implements KIGFX::RENDER_SETTINGS.

Definition at line 73 of file pcb_painter.cpp.

References KIGFX::COLOR4D::a, LSET::AllCuMask(), B_SilkS, cu, F_SilkS, GAL_LAYER_ID_END, GAL_LAYER_ID_START, COLORS_DESIGN_SETTINGS::GetItemColor(), COLORS_DESIGN_SETTINGS::GetLayerColor(), GetNetnameLayer(), KIGFX::COLOR4D::Inverted(), LAYER_DRC, LAYER_MOD_TEXT_BK, LAYER_MOD_TEXT_FR, LAYER_PAD_BK_NETNAMES, LAYER_PAD_FR_NETNAMES, LAYER_PADS, LAYER_PADS_HOLES, LAYER_PADS_NETNAMES, LAYER_PCB_BACKGROUND, LAYER_VIAS_HOLES, KIGFX::RENDER_SETTINGS::m_layerColors, PCB_LAYER_ID_COUNT, KIGFX::RENDER_SETTINGS::SetBackgroundColor(), and KIGFX::RENDER_SETTINGS::update().

Referenced by PCB_RENDER_SETTINGS(), and PCB_DRAW_PANEL_GAL::UseColorScheme().

74 {
75  // Init board layers colors:
76  for( int i = 0; i < PCB_LAYER_ID_COUNT; i++ )
77  {
78  m_layerColors[i] = aSettings->GetLayerColor( i );
79 
80  // Guard: if the alpah channel is too small, the layer is not visible.
81  // clamp it to 0.2
82  if( m_layerColors[i].a < 0.2 )
83  m_layerColors[i].a = 0.2;
84  }
85 
86  // Init specific graphic layers colors:
87  for( int i = GAL_LAYER_ID_START; i < GAL_LAYER_ID_END; i++ )
88  m_layerColors[i] = aSettings->GetItemColor( i );
89 
90  // Default colors for specific layers (not really board layers).
91  m_layerColors[LAYER_VIAS_HOLES] = COLOR4D( 0.5, 0.4, 0.0, 0.8 );
92  m_layerColors[LAYER_PADS_HOLES] = COLOR4D( 0.0, 0.0, 0.0, 1.0 );
93  m_layerColors[LAYER_PADS] = COLOR4D( 0.6, 0.6, 0.0, 0.8 );
94  m_layerColors[LAYER_PADS_NETNAMES] = COLOR4D( 1.0, 1.0, 1.0, 0.9 );
95  m_layerColors[LAYER_PAD_FR_NETNAMES] = COLOR4D( 1.0, 1.0, 1.0, 0.9 );
96  m_layerColors[LAYER_PAD_BK_NETNAMES] = COLOR4D( 1.0, 1.0, 1.0, 0.9 );
97  m_layerColors[LAYER_DRC] = COLOR4D( 1.0, 0.0, 0.0, 0.8 );
98 
99  // LAYER_NON_PLATED, LAYER_ANCHOR],LAYER_RATSNEST,
100  // LAYER_VIA_THROUGH], LAYER_VIA_BBLIND, LAYER_VIA_MICROVIA
101  // are initialized from aSettings
102 
103  // These colors are not actually used. Set just in case...
106 
107  // Netnames for copper layers
108  for( LSEQ cu = LSET::AllCuMask().CuStack(); cu; ++cu )
109  {
110  const COLOR4D lightLabel( 0.8, 0.8, 0.8, 0.7 );
111  const COLOR4D darkLabel = lightLabel.Inverted();
112  PCB_LAYER_ID layer = *cu;
113 
114  if( m_layerColors[layer].GetBrightness() > 0.5 )
115  m_layerColors[GetNetnameLayer( layer )] = darkLabel;
116  else
117  m_layerColors[GetNetnameLayer( layer )] = lightLabel;
118  }
119 
121 
122  update();
123 }
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Function AllCuMask returns a mask holding the requested number of Cu PCB_LAYER_IDs.
Definition: lset.cpp:646
int GetNetnameLayer(int aLayer)
Returns a netname layer corresponding to the given layer.
COLOR4D m_layerColors[LAYER_ID_COUNT]
Colors for all layers (normal)
Definition: painter.h:235
to draw via holes (pad holes do not use this layer)
Add new GAL layers here.
#define cu(a)
Definition: auxiliary.h:88
COLOR4D GetItemColor(int aItemIdx) const
Function GetItemColor.
PCB_LAYER_ID
A quick note on layer IDs:
double a
Alpha component.
Definition: color4d.h:289
virtual void update()
Function update Precalculates extra colors for layers (e.g.
Definition: painter.cpp:52
multilayer pads, usually with holes
to draw pad holes (plated or not plated)
Class LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
COLOR4D Inverted() const
Function Inverted Returns an inverted color, alpha remains the same.
Definition: color4d.h:244
COLOR4D GetLayerColor(LAYER_NUM aLayer) const
Function GetLayerColor.
void SetBackgroundColor(const COLOR4D &aColor)
Function SetBackgroundColor Sets new color for background.
Definition: painter.h:196
Additional netnames layers (not associated with a PCB layer)
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
bool KIGFX::RENDER_SETTINGS::IsActiveLayer ( int  aLayerId) const
inlineinherited

Function IsActiveLayer Returns information whether the queried layer is marked as active.

Returns
True if the queried layer is marked as active.

Definition at line 108 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_activeLayers.

109  {
110  return ( m_activeLayers.count( aLayerId ) > 0 );
111  }
std::set< unsigned int > m_activeLayers
Stores active layers number.
Definition: painter.h:232
bool KIGFX::PCB_RENDER_SETTINGS::IsBackgroundDark ( ) const
inline

Definition at line 129 of file pcb_painter.h.

References KIGFX::COLOR4D::GetBrightness(), LAYER_PCB_BACKGROUND, and KIGFX::RENDER_SETTINGS::m_layerColors.

Referenced by KIGFX::PREVIEW::SELECTION_AREA::ViewDraw().

130  {
132 
133  return luma < 0.5;
134  }
COLOR4D m_layerColors[LAYER_ID_COUNT]
Colors for all layers (normal)
Definition: painter.h:235
double GetBrightness() const
Function GetBrightness Returns the brightness value of the color ranged from 0.0 to 1...
Definition: color4d.h:254
bool KIGFX::RENDER_SETTINGS::IsHighlightEnabled ( ) const
inlineinherited

Function IsHighlightEnabled Returns current highlight setting.

Returns
True if highlight is enabled, false otherwise.

Definition at line 118 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_highlightEnabled.

119  {
120  return m_highlightEnabled;
121  }
bool m_highlightEnabled
Highlight display mode on/off.
Definition: painter.h:251
void PCB_RENDER_SETTINGS::LoadDisplayOptions ( const PCB_DISPLAY_OPTIONS aOptions)

Function LoadDisplayOptions Loads settings related to display options (high-contrast mode, full or outline modes for vias/pads/tracks and so on).

Parameters
aOptionsare settings that you want to use for displaying items.

Definition at line 126 of file pcb_painter.cpp.

References CL_EDITED, CL_EXISTING, CL_NEW, CL_NONE, CL_PADS, CL_TRACKS, CL_VIAS, PCB_DISPLAY_OPTIONS::DO_NOT_SHOW_CLEARANCE, DZ_HIDE_FILLED, DZ_SHOW_FILLED, DZ_SHOW_OUTLINED, LAYER_PADS, LAYER_TRACKS, LAYER_VIA_BBLIND, LAYER_VIA_MICROVIA, LAYER_VIA_THROUGH, m_clearance, PCB_DISPLAY_OPTIONS::m_ContrastModeDisplay, PCB_DISPLAY_OPTIONS::m_DisplayDrawItemsFill, PCB_DISPLAY_OPTIONS::m_DisplayModEdgeFill, PCB_DISPLAY_OPTIONS::m_DisplayNetNamesMode, PCB_DISPLAY_OPTIONS::m_DisplayPadFill, PCB_DISPLAY_OPTIONS::m_DisplayPadIsol, PCB_DISPLAY_OPTIONS::m_DisplayPadNum, PCB_DISPLAY_OPTIONS::m_DisplayPcbTrackFill, PCB_DISPLAY_OPTIONS::m_DisplayViaFill, m_displayZone, PCB_DISPLAY_OPTIONS::m_DisplayZonesMode, KIGFX::RENDER_SETTINGS::m_hiContrastEnabled, m_netNamesOnPads, m_netNamesOnTracks, m_padNumbers, PCB_DISPLAY_OPTIONS::m_ShowTrackClearanceMode, m_sketchBoardGfx, m_sketchFpGfx, m_sketchMode, PCB_DISPLAY_OPTIONS::SHOW_CLEARANCE_ALWAYS, PCB_DISPLAY_OPTIONS::SHOW_CLEARANCE_NEW_AND_EDITED_TRACKS_AND_VIA_AREAS, PCB_DISPLAY_OPTIONS::SHOW_CLEARANCE_NEW_TRACKS, and PCB_DISPLAY_OPTIONS::SHOW_CLEARANCE_NEW_TRACKS_AND_VIA_AREAS.

Referenced by DIALOG_DISPLAY_OPTIONS::TransferDataFromWindow(), and KIGFX::PCB_VIEW::UpdateDisplayOptions().

127 {
128  if( aOptions == NULL )
129  return;
130 
132  m_padNumbers = aOptions->m_DisplayPadNum;
134  m_sketchFpGfx = !aOptions->m_DisplayModEdgeFill;
135 
136  // Whether to draw tracks, vias & pads filled or as outlines
142 
143  // Net names display settings
144  switch( aOptions->m_DisplayNetNamesMode )
145  {
146  case 0:
147  m_netNamesOnPads = false;
148  m_netNamesOnTracks = false;
149  break;
150 
151  case 1:
152  m_netNamesOnPads = true;
153  m_netNamesOnTracks = false;
154  break;
155 
156  case 2:
157  m_netNamesOnPads = false;
158  m_netNamesOnTracks = true;
159  break;
160 
161  case 3:
162  m_netNamesOnPads = true;
163  m_netNamesOnTracks = true;
164  break;
165  }
166 
167  // Zone display settings
168  switch( aOptions->m_DisplayZonesMode )
169  {
170  case 0:
172  break;
173 
174  case 1:
176  break;
177 
178  case 2:
180  break;
181  }
182 
183  // Clearance settings
184  switch( aOptions->m_ShowTrackClearanceMode )
185  {
188  break;
189 
192  break;
193 
196  break;
197 
200  break;
201 
204  break;
205  }
206 
207  if( aOptions->m_DisplayPadIsol )
208  m_clearance |= CL_PADS;
209 }
to draw blind/buried vias
bool m_sketchMode[GAL_LAYER_ID_END]
Flag determining if items on a given layer should be drawn as an outline or a filled item ...
Definition: pcb_painter.h:138
bool m_padNumbers
Flag determining if pad numbers should be visible
Definition: pcb_painter.h:147
bool m_sketchBoardGfx
Flag determining if board graphic items should be outlined or stroked
Definition: pcb_painter.h:141
DISPLAY_ZONE_MODE m_displayZone
Option for different display modes for zones
Definition: pcb_painter.h:162
bool m_netNamesOnPads
Flag determining if net names should be visible for pads
Definition: pcb_painter.h:150
TRACE_CLEARANCE_DISPLAY_MODE_T m_ShowTrackClearanceMode
How trace clearances are displayed.
bool m_hiContrastEnabled
Parameters for display modes.
Definition: painter.h:247
multilayer pads, usually with holes
to draw usual through hole vias
bool m_sketchFpGfx
Flag determining if footprint graphic items should be outlined or stroked
Definition: pcb_painter.h:144
bool m_netNamesOnTracks
Flag determining if net names should be visible for tracks
Definition: pcb_painter.h:153
int m_clearance
Clearance visibility settings
Definition: pcb_painter.h:165
void KIGFX::RENDER_SETTINGS::SetActiveLayer ( int  aLayerId,
bool  aEnabled = true 
)
inlineinherited

Function SetActiveLayer Sets the specified layer as active - it means that it can be drawn in a specific mode (eg.

highlighted, so it differs from other layers).

Parameters
aLayerIdis a layer number that should be displayed in a specific mode.
aEnabledis the new layer state ( true = active or false = not active).

Definition at line 76 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_activeLayers.

Referenced by GERBVIEW_DRAW_PANEL_GAL::SetHighContrastLayer(), PCB_DRAW_PANEL_GAL::SetHighContrastLayer(), and EDA_DRAW_PANEL_GAL::SetHighContrastLayer().

77  {
78  if( aEnabled )
79  m_activeLayers.insert( aLayerId );
80  else
81  m_activeLayers.erase( aLayerId );
82  }
std::set< unsigned int > m_activeLayers
Stores active layers number.
Definition: painter.h:232
void KIGFX::RENDER_SETTINGS::SetBackgroundColor ( const COLOR4D aColor)
inlineinherited

Function SetBackgroundColor Sets new color for background.

Parameters
aColoris the new background color.

Definition at line 196 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_backgroundColor.

Referenced by ImportLegacyColors().

197  {
198  m_backgroundColor = aColor;
199  }
COLOR4D m_backgroundColor
The background color.
Definition: painter.h:262
void KIGFX::RENDER_SETTINGS::SetHighContrast ( bool  aEnabled)
inlineinherited

Function SetHighContrast Turns on/off high contrast display mode.

Parameters
aEnableddetermines if high contrast display mode should be enabled or not.

Definition at line 151 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_hiContrastEnabled.

152  {
153  m_hiContrastEnabled = aEnabled;
154  }
bool m_hiContrastEnabled
Parameters for display modes.
Definition: painter.h:247
void KIGFX::RENDER_SETTINGS::SetHighlight ( bool  aEnabled,
int  aNetcode = -1 
)
inlineinherited

Function SetHighlight Turns on/off highlighting - it may be done for the active layer or the specified net.

Parameters
aEnabledtells if highlighting should be enabled.
aNetcodeis optional and if specified, turns on higlighting only for the net with number given as the parameter.

Definition at line 140 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_highlightEnabled, and KIGFX::RENDER_SETTINGS::m_highlightNetcode.

Referenced by PNS::TOOL_BASE::highlightNet(), PCB_EDITOR_CONTROL::HighlightNet(), PCB_EDIT_FRAME::ListNetsAndSelect(), GERBVIEW_SELECTION_TOOL::Reset(), and SELECTION_TOOL::Reset().

141  {
142  m_highlightEnabled = aEnabled;
143  m_highlightNetcode = aEnabled ? aNetcode : -1;
144  }
bool m_highlightEnabled
Highlight display mode on/off.
Definition: painter.h:251
int m_highlightNetcode
Net number that is displayed in highlight -1 means that there is no specific net, and whole active la...
Definition: painter.h:252
void KIGFX::RENDER_SETTINGS::SetLayerColor ( int  aLayer,
const COLOR4D aColor 
)
inlineinherited

Function SetLayerColor Changes the color used to draw a layer.

Parameters
aLayeris the layer number.
aColoris the new color.

Definition at line 217 of file painter.h.

References KIGFX::RENDER_SETTINGS::m_layerColors, and KIGFX::RENDER_SETTINGS::update().

218  {
219  m_layerColors[aLayer] = aColor;
220 
221  update(); // recompute other shades of the color
222  }
COLOR4D m_layerColors[LAYER_ID_COUNT]
Colors for all layers (normal)
Definition: painter.h:235
virtual void update()
Function update Precalculates extra colors for layers (e.g.
Definition: painter.cpp:52
void KIGFX::PCB_RENDER_SETTINGS::SetSketchMode ( int  aItemLayer,
bool  aEnabled 
)
inline

Function SetSketchMode Turns on/off sketch mode for given item layer.

Parameters
aItemLayeris the item layer that is changed.
aEnableddecides if it is drawn in sketch mode (true for sketched mode, false for filled mode).

Definition at line 114 of file pcb_painter.h.

References m_sketchMode.

Referenced by MODULE_EDITOR_TOOLS::ModuleEdgeOutlines(), and MODULE_EDITOR_TOOLS::ModuleTextOutlines().

115  {
116  m_sketchMode[aItemLayer] = aEnabled;
117  }
bool m_sketchMode[GAL_LAYER_ID_END]
Flag determining if items on a given layer should be drawn as an outline or a filled item ...
Definition: pcb_painter.h:138
void RENDER_SETTINGS::update ( )
protectedvirtualinherited

Function update Precalculates extra colors for layers (e.g.

highlighted, darkened and any needed version of base colors).

Definition at line 52 of file painter.cpp.

References KIGFX::COLOR4D::Brightened(), KIGFX::COLOR4D::Darkened(), LAYER_ID_COUNT, KIGFX::RENDER_SETTINGS::m_hiContrastColor, KIGFX::RENDER_SETTINGS::m_hiContrastFactor, KIGFX::RENDER_SETTINGS::m_highlightFactor, KIGFX::RENDER_SETTINGS::m_layerColors, KIGFX::RENDER_SETTINGS::m_layerColorsDark, KIGFX::RENDER_SETTINGS::m_layerColorsHi, KIGFX::RENDER_SETTINGS::m_layerColorsSel, KIGFX::RENDER_SETTINGS::m_layerOpacity, and KIGFX::RENDER_SETTINGS::m_selectFactor.

Referenced by KIGFX::GERBVIEW_RENDER_SETTINGS::GERBVIEW_RENDER_SETTINGS(), KIGFX::GERBVIEW_RENDER_SETTINGS::ImportLegacyColors(), ImportLegacyColors(), KIGFX::GERBVIEW_RENDER_SETTINGS::LoadDisplayOptions(), PCB_RENDER_SETTINGS(), KIGFX::GERBVIEW_RENDER_SETTINGS::SetLayerColor(), and KIGFX::RENDER_SETTINGS::SetLayerColor().

53 {
56 
57  // Calculate darkened/highlighted variants of layer colors
58  for( int i = 0; i < LAYER_ID_COUNT; i++ )
59  {
63  }
64 }
COLOR4D m_hiContrastColor
Color used for high contrast display mode.
Definition: painter.h:248
COLOR4D m_layerColorsHi[LAYER_ID_COUNT]
Colors for all layers (highlighted)
Definition: painter.h:238
COLOR4D m_layerColors[LAYER_ID_COUNT]
Colors for all layers (normal)
Definition: painter.h:235
float m_highlightFactor
Factor used for computing hightlight color.
Definition: painter.h:255
COLOR4D Brightened(double aFactor) const
Function Brightened Returns a color that is brighter by a given factor, without modifying object...
Definition: color4d.h:200
COLOR4D m_layerColorsDark[LAYER_ID_COUNT]
Colors for all layers (darkened)
Definition: painter.h:244
float m_layerOpacity
Determines opacity of all layers.
Definition: painter.h:258
#define LAYER_ID_COUNT
Must update this if you add any enums after GerbView!
float m_hiContrastFactor
Factor used for computing high contrast color.
Definition: painter.h:249
COLOR4D Darkened(double aFactor) const
Function Darkened Returns a color that is darker by a given factor, without modifying object...
Definition: color4d.h:216
float m_selectFactor
Specifies how color of selected items is changed.
Definition: painter.h:257
COLOR4D m_layerColorsSel[LAYER_ID_COUNT]
Colors for all layers (selected)
Definition: painter.h:241
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39

Friends And Related Function Documentation

friend class PCB_PAINTER
friend

Definition at line 65 of file pcb_painter.h.

Member Data Documentation

std::set<unsigned int> KIGFX::RENDER_SETTINGS::m_activeLayers
protectedinherited
COLOR4D KIGFX::RENDER_SETTINGS::m_backgroundColor
protectedinherited
int KIGFX::PCB_RENDER_SETTINGS::m_clearance
protected

Clearance visibility settings

Definition at line 165 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

DISPLAY_ZONE_MODE KIGFX::PCB_RENDER_SETTINGS::m_displayZone
protected

Option for different display modes for zones

Definition at line 162 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

COLOR4D KIGFX::RENDER_SETTINGS::m_hiContrastColor
protectedinherited

Color used for high contrast display mode.

Definition at line 248 of file painter.h.

Referenced by KIGFX::GERBVIEW_RENDER_SETTINGS::GetColor(), GetColor(), and KIGFX::RENDER_SETTINGS::update().

bool KIGFX::RENDER_SETTINGS::m_hiContrastEnabled
protectedinherited
float KIGFX::RENDER_SETTINGS::m_hiContrastFactor
protectedinherited

Factor used for computing high contrast color.

Definition at line 249 of file painter.h.

Referenced by KIGFX::RENDER_SETTINGS::RENDER_SETTINGS(), and KIGFX::RENDER_SETTINGS::update().

bool KIGFX::RENDER_SETTINGS::m_highlightEnabled
protectedinherited
float KIGFX::RENDER_SETTINGS::m_highlightFactor
protectedinherited

Factor used for computing hightlight color.

Definition at line 255 of file painter.h.

Referenced by KIGFX::RENDER_SETTINGS::RENDER_SETTINGS(), and KIGFX::RENDER_SETTINGS::update().

int KIGFX::RENDER_SETTINGS::m_highlightNetcode
protectedinherited

Net number that is displayed in highlight -1 means that there is no specific net, and whole active layer is highlighted.

Definition at line 252 of file painter.h.

Referenced by GetColor(), KIGFX::RENDER_SETTINGS::GetHighlightNetCode(), KIGFX::RENDER_SETTINGS::RENDER_SETTINGS(), and KIGFX::RENDER_SETTINGS::SetHighlight().

COLOR4D KIGFX::RENDER_SETTINGS::m_layerColorsDark[LAYER_ID_COUNT]
protectedinherited
COLOR4D KIGFX::RENDER_SETTINGS::m_layerColorsHi[LAYER_ID_COUNT]
protectedinherited
COLOR4D KIGFX::RENDER_SETTINGS::m_layerColorsSel[LAYER_ID_COUNT]
protectedinherited
float KIGFX::RENDER_SETTINGS::m_layerOpacity
protectedinherited

Determines opacity of all layers.

Definition at line 258 of file painter.h.

Referenced by KIGFX::RENDER_SETTINGS::RENDER_SETTINGS(), and KIGFX::RENDER_SETTINGS::update().

bool KIGFX::PCB_RENDER_SETTINGS::m_netNamesOnPads
protected

Flag determining if net names should be visible for pads

Definition at line 150 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

bool KIGFX::PCB_RENDER_SETTINGS::m_netNamesOnTracks
protected

Flag determining if net names should be visible for tracks

Definition at line 153 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

bool KIGFX::PCB_RENDER_SETTINGS::m_netNamesOnVias = true
protected

Flag determining if net names should be visible for vias

Definition at line 156 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw().

bool KIGFX::PCB_RENDER_SETTINGS::m_padNumbers
protected

Flag determining if pad numbers should be visible

Definition at line 147 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

float KIGFX::RENDER_SETTINGS::m_selectFactor
protectedinherited

Specifies how color of selected items is changed.

Definition at line 257 of file painter.h.

Referenced by KIGFX::RENDER_SETTINGS::RENDER_SETTINGS(), and KIGFX::RENDER_SETTINGS::update().

COLOR4D KIGFX::PCB_RENDER_SETTINGS::m_selectionCandidateColor
protected

Color used for highlighting selection candidates

Definition at line 168 of file pcb_painter.h.

Referenced by GetColor(), and PCB_RENDER_SETTINGS().

bool KIGFX::PCB_RENDER_SETTINGS::m_sketchBoardGfx
protected

Flag determining if board graphic items should be outlined or stroked

Definition at line 141 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

bool KIGFX::PCB_RENDER_SETTINGS::m_sketchFpGfx
protected

Flag determining if footprint graphic items should be outlined or stroked

Definition at line 144 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), LoadDisplayOptions(), and PCB_RENDER_SETTINGS().

bool KIGFX::PCB_RENDER_SETTINGS::m_sketchMode[GAL_LAYER_ID_END]
protected

Flag determining if items on a given layer should be drawn as an outline or a filled item

Definition at line 138 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw(), GetSketchMode(), LoadDisplayOptions(), PCB_RENDER_SETTINGS(), and SetSketchMode().

float KIGFX::RENDER_SETTINGS::m_worksheetLineWidth
protectedinherited

Line width used when drawing worksheet.

Definition at line 260 of file painter.h.

Referenced by KIGFX::RENDER_SETTINGS::GetWorksheetLineWidth(), and KIGFX::RENDER_SETTINGS::RENDER_SETTINGS().

const double PCB_RENDER_SETTINGS::MAX_FONT_SIZE = Millimeter2iu( 10.0 )
staticprotected

Maximum font size for netnames (and other dynamically shown strings)

Definition at line 159 of file pcb_painter.h.

Referenced by KIGFX::PCB_PAINTER::draw().


The documentation for this class was generated from the following files: