KiCad PCB EDA Suite
Loading...
Searching...
No Matches
COLOR4D Class Reference

A color representation with 4 components: red, green, blue, alpha. More...

#include <color4d.h>

Public Member Functions

 COLOR4D ()
 
 COLOR4D (double aRed, double aGreen, double aBlue, double aAlpha)
 
 COLOR4D (EDA_COLOR_T aColor)
 
 COLOR4D (const wxString &aColorStr)
 Defines a color from a CSS or HTML-type string.
 
 COLOR4D (const wxColour &aColor)
 
COLOR4DFromCSSRGBA (int aRed, int aGreen, int aBlue, double aAlpha=1.0)
 Initialize the color from a RGBA value with 0-255 red/green/blue and 0-1 alpha.
 
bool SetFromWxString (const wxString &aColorString)
 Set color values by parsing a string using wxColour::Set().
 
wxString ToCSSString () const
 
bool SetFromHexString (const wxString &aColorString)
 
wxString ToHexString () const
 
wxColour ToColour () const
 
COLOR4D LegacyMix (const COLOR4D &aColor) const
 Mix this COLOR4D with an input COLOR4D using the OR-mixing of legacy canvas.
 
void ToHSL (double &aOutHue, double &aOutSaturation, double &aOutLightness) const
 Converts current color (stored in RGB) to HSL format.
 
void FromHSL (double aInHue, double aInSaturation, double aInLightness)
 Change currently used color to the one given by hue, saturation and lightness parameters.
 
COLOR4DBrighten (double aFactor)
 Makes the color brighter by a given factor.
 
COLOR4DDarken (double aFactor)
 Makes the color darker by a given factor.
 
COLOR4DInvert ()
 Makes the color inverted, alpha remains the same.
 
COLOR4DSaturate (double aFactor)
 Saturates the color to a given factor (in HSV model)
 
COLOR4DDesaturate ()
 Removes color (in HSL model)
 
COLOR4D Brightened (double aFactor) const
 Return a color that is brighter by a given factor, without modifying object.
 
COLOR4D Darkened (double aFactor) const
 Return a color that is darker by a given factor, without modifying object.
 
COLOR4D Mix (const COLOR4D &aColor, double aFactor) const
 Return a color that is mixed with the input by a factor.
 
COLOR4D WithAlpha (double aAlpha) const
 Return a color with the same color, but the given alpha.
 
COLOR4D Inverted () const
 Returns an inverted color, alpha remains the same.
 
double GetBrightness () const
 Returns the brightness value of the color ranged from 0.0 to 1.0.
 
void ToHSV (double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
 Convert current color (stored in RGB) to HSV format.
 
void FromHSV (double aInH, double aInS, double aInV)
 Changes currently used color to the one given by hue, saturation and value parameters.
 
double Distance (const COLOR4D &other) const
 Returns the distance (in RGB space) between two colors.
 
int Compare (const COLOR4D &aRhs) const
 
double RelativeLuminance () const
 Compute the relative luminance of a color using the formula from WCAG21.
 

Static Public Member Functions

static double ContrastRatio (const COLOR4D &aLeft, const COLOR4D &aRight)
 Compute the contrast ration between two colors using the formula from WCAG21.
 
static EDA_COLOR_T FindNearestLegacyColor (int aR, int aG, int aB)
 Returns a legacy color ID that is closest to the given 8-bit RGB values.
 

Public Attributes

double r
 Red component.
 
double g
 Green component.
 
double b
 Blue component.
 
double a
 Alpha component.
 

Static Public Attributes

static const COLOR4D UNSPECIFIED
 For legacy support; used as a value to indicate color hasn't been set yet.
 
static const COLOR4D WHITE
 
static const COLOR4D BLACK
 
static const COLOR4D CLEAR
 

Detailed Description

A color representation with 4 components: red, green, blue, alpha.

Definition at line 103 of file color4d.h.

Constructor & Destructor Documentation

◆ COLOR4D() [1/5]

KIGFX::COLOR4D::COLOR4D ( )
inline

Definition at line 107 of file color4d.h.

◆ COLOR4D() [2/5]

KIGFX::COLOR4D::COLOR4D ( double aRed,
double aGreen,
double aBlue,
double aAlpha )
inline
Parameters
aRedis the red component [0.0 .. 1.0].
aGreenis the green component [0.0 .. 1.0].
aBlueis the blue component [0.0 .. 1.0].
aAlphais the alpha value [0.0 .. 1.0].

Definition at line 121 of file color4d.h.

◆ COLOR4D() [3/5]

COLOR4D::COLOR4D ( EDA_COLOR_T aColor)
Parameters
aColoris one of KiCad's palette colors.
See also
EDA_COLOR_T

Definition at line 84 of file color4d.cpp.

◆ COLOR4D() [4/5]

COLOR4D::COLOR4D ( const wxString & aColorStr)

Defines a color from a CSS or HTML-type string.

Parameters
aColorStrinput string

Definition at line 113 of file color4d.cpp.

◆ COLOR4D() [5/5]

COLOR4D::COLOR4D ( const wxColour & aColor)
Parameters
aColoris the color type used by wxWidgets.

Definition at line 120 of file color4d.cpp.

Member Function Documentation

◆ Brighten()

COLOR4D & KIGFX::COLOR4D::Brighten ( double aFactor)
inline

Makes the color brighter by a given factor.

Parameters
aFactorSpecifies how bright the color should become (valid values: 0.0 .. 1.0).
Returns
COLOR4D& Brightened color.

Definition at line 209 of file color4d.h.

◆ Brightened()

COLOR4D KIGFX::COLOR4D::Brightened ( double aFactor) const
inline

Return a color that is brighter by a given factor, without modifying object.

Parameters
aFactorSpecifies how bright the color should become (valid values: 0.0 .. 1.0).
Returns
COLOR4D Highlighted color.

Definition at line 268 of file color4d.h.

◆ Compare()

int COLOR4D::Compare ( const COLOR4D & aRhs) const

Definition at line 588 of file color4d.cpp.

◆ ContrastRatio()

double COLOR4D::ContrastRatio ( const COLOR4D & aLeft,
const COLOR4D & aRight )
static

Compute the contrast ration between two colors using the formula from WCAG21.

Parameters
aLeftis the first color to use in the ratio
aRightis the second color to use in the ratio
Returns
contrast ratio between 1.0:1 and 21.0:1 between the two colors.

Definition at line 617 of file color4d.cpp.

◆ Darken()

COLOR4D & KIGFX::COLOR4D::Darken ( double aFactor)
inline

Makes the color darker by a given factor.

Parameters
aFactorSpecifies how dark the color should become (valid values: 0.0 .. 1.0).
Returns
COLOR4D& Darkened color.

Definition at line 226 of file color4d.h.

◆ Darkened()

COLOR4D KIGFX::COLOR4D::Darkened ( double aFactor) const
inline

Return a color that is darker by a given factor, without modifying object.

Parameters
aFactorSpecifies how dark the color should become (valid values: 0.0 .. 1.0).
Returns
COLOR4D Darkened color.

Definition at line 282 of file color4d.h.

◆ Desaturate()

COLOR4D & COLOR4D::Desaturate ( )

Removes color (in HSL model)

Returns
greyscale version of color

Definition at line 511 of file color4d.cpp.

◆ Distance()

double COLOR4D::Distance ( const COLOR4D & other) const

Returns the distance (in RGB space) between two colors.

Definition at line 532 of file color4d.cpp.

◆ FindNearestLegacyColor()

EDA_COLOR_T COLOR4D::FindNearestLegacyColor ( int aR,
int aG,
int aB )
static

Returns a legacy color ID that is closest to the given 8-bit RGB values.

Definition at line 540 of file color4d.cpp.

Referenced by getDXFColorName().

◆ FromCSSRGBA()

COLOR4D & COLOR4D::FromCSSRGBA ( int aRed,
int aGreen,
int aBlue,
double aAlpha = 1.0 )

Initialize the color from a RGBA value with 0-255 red/green/blue and 0-1 alpha.

Suitable for taking the values directly from the "CSS syntax" from ToWxString.

Returns
this color.

Definition at line 577 of file color4d.cpp.

◆ FromHSL()

void COLOR4D::FromHSL ( double aInHue,
double aInSaturation,
double aInLightness )

Change currently used color to the one given by hue, saturation and lightness parameters.

Parameters
aInHueis hue component, in degrees (0.0 - 360.0).
aInSaturationis saturation component (0.0 - 1.0).
aInLightnessis lightness component (0.0 - 1.0).

Definition at line 327 of file color4d.cpp.

◆ FromHSV()

void COLOR4D::FromHSV ( double aInH,
double aInS,
double aInV )

Changes currently used color to the one given by hue, saturation and value parameters.

Parameters
aInHis hue component, in degrees.
aInSis saturation component.
aInVis value component.

Definition at line 422 of file color4d.cpp.

◆ GetBrightness()

double KIGFX::COLOR4D::GetBrightness ( ) const
inline

Returns the brightness value of the color ranged from 0.0 to 1.0.

Returns
The brightness value.

Definition at line 333 of file color4d.h.

◆ Invert()

COLOR4D & KIGFX::COLOR4D::Invert ( )
inline

Makes the color inverted, alpha remains the same.

Returns
COLOR4D& Inverted color.

Definition at line 242 of file color4d.h.

◆ Inverted()

COLOR4D KIGFX::COLOR4D::Inverted ( ) const
inline

Returns an inverted color, alpha remains the same.

Returns
COLOR4D& Inverted color.

Definition at line 323 of file color4d.h.

◆ LegacyMix()

COLOR4D COLOR4D::LegacyMix ( const COLOR4D & aColor) const

Mix this COLOR4D with an input COLOR4D using the OR-mixing of legacy canvas.

Can be removed once legacy canvas is removed. Depends on wxColour for simplicity, but could be re-written to avoid this dependency if desired.

Parameters
aColorThe color to mix with this one

Definition at line 231 of file color4d.cpp.

◆ Mix()

COLOR4D KIGFX::COLOR4D::Mix ( const COLOR4D & aColor,
double aFactor ) const
inline

Return a color that is mixed with the input by a factor.

Parameters
aFactorSpecifies how much of the original color to keep (valid values: 0.0 .. 1.0).
Returns
COLOR4D Mixed color.

Definition at line 295 of file color4d.h.

◆ RelativeLuminance()

double COLOR4D::RelativeLuminance ( ) const

Compute the relative luminance of a color using the formula from WCAG21.

Returns
relative luminance between 0 and 1 where 0 is darkest black and 1 is lightest white.

Definition at line 606 of file color4d.cpp.

◆ Saturate()

COLOR4D & COLOR4D::Saturate ( double aFactor)

Saturates the color to a given factor (in HSV model)

Definition at line 496 of file color4d.cpp.

◆ SetFromHexString()

bool COLOR4D::SetFromHexString ( const wxString & aColorString)

Definition at line 177 of file color4d.cpp.

◆ SetFromWxString()

bool COLOR4D::SetFromWxString ( const wxString & aColorString)

Set color values by parsing a string using wxColour::Set().

Parameters
aColorStringis a color string that wxColour can understand.
Returns
true if color was set successfully.

Definition at line 129 of file color4d.cpp.

◆ ToColour()

wxColour COLOR4D::ToColour ( ) const

Definition at line 220 of file color4d.cpp.

◆ ToCSSString()

wxString COLOR4D::ToCSSString ( ) const

Definition at line 147 of file color4d.cpp.

◆ ToHexString()

wxString COLOR4D::ToHexString ( ) const

Definition at line 210 of file color4d.cpp.

◆ ToHSL()

void COLOR4D::ToHSL ( double & aOutHue,
double & aOutSaturation,
double & aOutLightness ) const

Converts current color (stored in RGB) to HSL format.

Parameters
aOutHueis the conversion result for hue component, in degrees 0 ... 360.0.
aOutSaturationis the conversion result for saturation component (0 ... 1.0).
aOutLightnessis conversion result for value component (0 ... 1.0).
Note
saturation is set to 0.0 for black color if r = g = b,

Definition at line 296 of file color4d.cpp.

◆ ToHSV()

void COLOR4D::ToHSV ( double & aOutHue,
double & aOutSaturation,
double & aOutValue,
bool aAlwaysDefineHue = false ) const

Convert current color (stored in RGB) to HSV format.

Parameters
aOutHueis the conversion result for hue component, in degrees 0 ... 360.0.
aOutSaturationis the conversion result for saturation component (0 ... 1.0).
aOutValueis conversion result for value component (0 ... 1.0).
aAlwaysDefineHuecontrols the way hue is defined when r = v = b
Note
saturation is set to 0.0 for black color (r = v = b = 0), and if r = v = b, hue is set to 0.0 if aAlwaysDefineHue = true, and set to NAN if aAlwaysDefineHue = false. this option is useful to convert a 4D color to a legacy color, because Red has hue = 0, therefore aAlwaysDefineHue = false makes difference between Red and Gray colors.

Definition at line 368 of file color4d.cpp.

◆ WithAlpha()

COLOR4D KIGFX::COLOR4D::WithAlpha ( double aAlpha) const
inline

Return a color with the same color, but the given alpha.

Parameters
aAlphaspecifies the alpha of the new color
Returns
COLOR4D color with that alpha

Definition at line 311 of file color4d.h.

Member Data Documentation

◆ a

double KIGFX::COLOR4D::a

Alpha component.

Definition at line 395 of file color4d.h.

◆ b

double KIGFX::COLOR4D::b

Blue component.

Definition at line 394 of file color4d.h.

◆ BLACK

◆ CLEAR

const COLOR4D COLOR4D::CLEAR
static

Definition at line 403 of file color4d.h.

◆ g

double KIGFX::COLOR4D::g

Green component.

Definition at line 393 of file color4d.h.

◆ r

double KIGFX::COLOR4D::r

Red component.

Definition at line 392 of file color4d.h.

◆ UNSPECIFIED

const COLOR4D COLOR4D::UNSPECIFIED
static

For legacy support; used as a value to indicate color hasn't been set yet.

Definition at line 398 of file color4d.h.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddPolygon(), GRAPHICS_IMPORTER_SCH::AddPolygon(), GERBER_LAYER_WIDGET::CollectCurrentColorSettings(), RULE_AREA_CREATE_HELPER::createNewRuleArea(), CONVERT_TOOL::CreatePolys(), PANEL_FP_EDITOR_COLOR_SETTINGS::createSwatches(), DIALOG_COLOR_PICKER::DIALOG_COLOR_PICKER(), DIALOG_FIELD_PROPERTIES::DIALOG_FIELD_PROPERTIES(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), PNS_KICAD_IFACE::DisplayRatline(), DRAWING_TOOL::drawArc(), BITMAP_BASE::DrawBitmap(), LAYER_PRESENTATION::DrawColorSwatch(), DRAWING_TOOL::drawOneBezier(), DRAWING_TOOL::drawShape(), DS_DATA_ITEM_TEXT::DS_DATA_ITEM_TEXT(), EESCHEMA_SETTINGS::EESCHEMA_SETTINGS(), EDA_TEXT::Format(), DS_DATA_MODEL_IO::format(), GENDRILL_WRITER_BASE::genDrillMapFile(), SCH_BUS_ENTRY_BASE::GetBusEntryColor(), COLOR_SETTINGS::GetColor(), SCH_FIELD::GetFieldColor(), SCH_JUNCTION::GetJunctionColor(), SCH_LABEL_BASE::GetLabelColor(), LAYER_WIDGET::GetLayerColor(), SCH_LINE::GetLineColor(), COLOR_SWATCH::GetNewSwatchColor(), NETCLASS::GetPcbColor(), DIALOG_PLOT_SCHEMATIC::getPlotOptions(), LAYER_WIDGET::GetRenderColor(), NETCLASS::GetSchematicColor(), GERBVIEW_FRAME::GetVisibleElementColor(), GRResetPenAndBrush(), GRSetColorPen(), NETCLASS::HasPcbColor(), SVG_IMPORT_PLUGIN::Import(), LAYER_WIDGET::insertRenderRow(), PCB_EDIT_FRAME::LoadProjectSettings(), NET_SETTINGS::makeEffectiveNetclass(), NETCLASS::NETCLASS(), DIALOG_SHAPE_PROPERTIES::onBorderSwatch(), DIALOG_SHAPE_PROPERTIES::onFillRadioButton(), APPEARANCE_CONTROLS::onNetclassContextMenu(), PANE_ZONE_VIEWER::PANE_ZONE_VIEWER(), PANEL_EESCHEMA_EDITING_OPTIONS::PANEL_EESCHEMA_EDITING_OPTIONS(), SCH_IO_KICAD_SEXPR_PARSER::parseEDA_TEXT(), SCH_IO_KICAD_SEXPR_PARSER::parseFill(), DRAWING_SHEET_PARSER::parseText(), PCB_PLOT_PARAMS::PCB_PLOT_PARAMS(), LIB_SYMBOL::Plot(), SCH_BUS_ENTRY_BASE::Plot(), SCH_FIELD::Plot(), SCH_JUNCTION::Plot(), SCH_LABEL_BASE::Plot(), SCH_LINE::Plot(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), SCH_SHEET::Plot(), SCH_TABLE::Plot(), SCH_TEXT::Plot(), SCH_TEXTBOX::Plot(), PlotDrawingSheet(), LIB_SYMBOL::PlotFields(), plotPdfBackground(), SCH_PIN::PlotPinTexts(), SCH_PIN::PlotPinType(), PlotStandardLayer(), GRAPHICS_IMPORTER_BUFFER::PostprocessNestedPolygons(), DS_DRAW_ITEM_TEXT::PrintWsItem(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), PROPERTIES_FRAME::PROPERTIES_FRAME(), NET_GRID_TABLE::Rebuild(), APPEARANCE_CONTROLS::rebuildLayers(), APPEARANCE_CONTROLS::rebuildNets(), APPEARANCE_CONTROLS::rebuildObjects(), GERBER_LAYER_WIDGET::ReFillRender(), COLOR_SWATCH::RenderToDC(), DRAWING_TOOL::Reset(), DIALOG_JUNCTION_PROPS::resetDefaults(), DIALOG_LINE_PROPERTIES::resetDefaults(), DIALOG_WIRE_BUS_PROPERTIES::resetDefaults(), NETCLASS::ResetParameters(), LAYER_WIDGET::ROW::ROW(), LAYER_WIDGET::ROW::ROW(), SCH_IO_KICAD_LEGACY::saveLine(), SCH_BUS_BUS_ENTRY::SCH_BUS_BUS_ENTRY(), SCH_BUS_ENTRY_BASE::SCH_BUS_ENTRY_BASE(), SCH_BUS_WIRE_ENTRY::SCH_BUS_WIRE_ENTRY(), SCH_BUS_WIRE_ENTRY::SCH_BUS_WIRE_ENTRY(), SCH_JUNCTION::SCH_JUNCTION(), SCH_LINE::SCH_LINE(), SCH_SHEET::SCH_SHEET(), NETCLASS::Serialize(), SetLibShapeLine(), SCH_LINE::SetLineColor(), PCBNEW_PRINTOUT::setupViewLayers(), PANEL_COLOR_SETTINGS::ShowColorContextMenu(), DIALOG_TABLECELL_PROPERTIES::TransferDataFromWindow(), DIALOG_JUNCTION_PROPS::TransferDataToWindow(), DIALOG_LINE_PROPERTIES::TransferDataToWindow(), DIALOG_SHAPE_PROPERTIES::TransferDataToWindow(), DIALOG_SHEET_PROPERTIES::TransferDataToWindow(), DIALOG_TABLECELL_PROPERTIES::TransferDataToWindow(), DIALOG_WIRE_BUS_PROPERTIES::TransferDataToWindow(), NET_GRID_TABLE::updateNetColor(), and RATSNEST_VIEW_ITEM::ViewDraw().

◆ WHITE


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