FastLED 3.9.12
Loading...
Searching...
No Matches
CRGBPalette16 Class Reference

Detailed Description

RGB color palette with 16 discrete values.

Examples
ColorPalette.ino, DemoReel100.ino, Fire2012WithPalette.ino, NoisePlusPalette.ino, Pacifica.ino, and TwinkleFox.ino.

Definition at line 1004 of file colorutils.h.

#include <colorutils.h>

Public Member Functions

 CRGBPalette16 ()
 Default constructor.
 
 CRGBPalette16 (const CRGB &c00, const CRGB &c01, const CRGB &c02, const CRGB &c03, const CRGB &c04, const CRGB &c05, const CRGB &c06, const CRGB &c07, const CRGB &c08, const CRGB &c09, const CRGB &c10, const CRGB &c11, const CRGB &c12, const CRGB &c13, const CRGB &c14, const CRGB &c15)
 Create palette from 16 CRGB values.
 
 CRGBPalette16 (const CRGBPalette16 &rhs)
 Copy constructor.
 
 CRGBPalette16 (const CRGB rhs[16])
 Create palette from array of CRGB colors.
 
CRGBPalette16operator= (const CRGBPalette16 &rhs)
 Copy constructor.
 
CRGBPalette16operator= (const CRGB rhs[16])
 Create palette from array of CRGB colors.
 
 CRGBPalette16 (const CHSVPalette16 &rhs)
 Create palette from CHSV palette.
 
 CRGBPalette16 (const CHSV rhs[16])
 Create palette from array of CHSV colors.
 
CRGBPalette16operator= (const CHSVPalette16 &rhs)
 Create palette from CHSV palette.
 
CRGBPalette16operator= (const CHSV rhs[16])
 Create palette from array of CHSV colors.
 
 CRGBPalette16 (const TProgmemRGBPalette16 &rhs)
 Create palette from palette stored in PROGMEM.
 
CRGBPalette16operator= (const TProgmemRGBPalette16 &rhs)
 Create palette from palette stored in PROGMEM.
 
bool operator== (const CRGBPalette16 &rhs) const
 Check if two palettes have the same color entries.
 
bool operator!= (const CRGBPalette16 &rhs) const
 Check if two palettes do not have the same color entries.
 
CRGBoperator[] (uint8_t x)
 Array access operator to index into the gradient entries.
 
const CRGBoperator[] (uint8_t x) const
 Array access operator to index into the gradient entries.
 
CRGBoperator[] (int x)
 Array access operator to index into the gradient entries.
 
const CRGBoperator[] (int x) const
 Array access operator to index into the gradient entries.
 
 operator CRGB * ()
 Get the underlying pointer to the CHSV entries making up the palette.
 
 CRGBPalette16 (const CHSV &c1)
 Create palette filled with one color.
 
 CRGBPalette16 (const CHSV &c1, const CHSV &c2)
 Create palette with a gradient from one color to another.
 
 CRGBPalette16 (const CHSV &c1, const CHSV &c2, const CHSV &c3)
 Create palette with three-color gradient.
 
 CRGBPalette16 (const CHSV &c1, const CHSV &c2, const CHSV &c3, const CHSV &c4)
 Create palette with four-color gradient.
 
 CRGBPalette16 (const CRGB &c1)
 Create palette filled with one color.
 
 CRGBPalette16 (const CRGB &c1, const CRGB &c2)
 Create palette with a gradient from one color to another.
 
 CRGBPalette16 (const CRGB &c1, const CRGB &c2, const CRGB &c3)
 Create palette with three-color gradient.
 
 CRGBPalette16 (const CRGB &c1, const CRGB &c2, const CRGB &c3, const CRGB &c4)
 Create palette with four-color gradient.
 
 CRGBPalette16 (TProgmemRGBGradientPalette_bytes progpal)
 Creates a palette from a gradient palette in PROGMEM.
 
CRGBPalette16operator= (TProgmemRGBGradientPalette_bytes progpal)
 Creates a palette from a gradient palette in PROGMEM.
 
CRGBPalette16loadDynamicGradientPalette (TDynamicRGBGradientPalette_bytes gpal)
 Creates a palette from a gradient palette in dynamic (heap) memory.
 

Public Attributes

CRGB entries [16]
 the color entries that make up the palette
 

Constructor & Destructor Documentation

◆ CRGBPalette16() [1/16]

CRGBPalette16::CRGBPalette16 ( )
inline

Default constructor.

Warning
Default values are UNITIALIZED!

Definition at line 1009 of file colorutils.h.

◆ CRGBPalette16() [2/16]

CRGBPalette16::CRGBPalette16 ( const CRGB & c00,
const CRGB & c01,
const CRGB & c02,
const CRGB & c03,
const CRGB & c04,
const CRGB & c05,
const CRGB & c06,
const CRGB & c07,
const CRGB & c08,
const CRGB & c09,
const CRGB & c10,
const CRGB & c11,
const CRGB & c12,
const CRGB & c13,
const CRGB & c14,
const CRGB & c15 )
inline

Create palette from 16 CRGB values.

Definition at line 1012 of file colorutils.h.

◆ CRGBPalette16() [3/16]

CRGBPalette16::CRGBPalette16 ( const CRGBPalette16 & rhs)
inline

Copy constructor.

Definition at line 1024 of file colorutils.h.

◆ CRGBPalette16() [4/16]

CRGBPalette16::CRGBPalette16 ( const CRGB rhs[16])
inline

Create palette from array of CRGB colors.

Definition at line 1029 of file colorutils.h.

◆ CRGBPalette16() [5/16]

CRGBPalette16::CRGBPalette16 ( const CHSVPalette16 & rhs)
inline

Create palette from CHSV palette.

Definition at line 1047 of file colorutils.h.

◆ CRGBPalette16() [6/16]

CRGBPalette16::CRGBPalette16 ( const CHSV rhs[16])
inline

Create palette from array of CHSV colors.

Definition at line 1054 of file colorutils.h.

◆ CRGBPalette16() [7/16]

CRGBPalette16::CRGBPalette16 ( const TProgmemRGBPalette16 & rhs)
inline

Create palette from palette stored in PROGMEM.

Definition at line 1078 of file colorutils.h.

◆ CRGBPalette16() [8/16]

CRGBPalette16::CRGBPalette16 ( const CHSV & c1)
inline

Create palette filled with one color.

Parameters
c1the color to fill the palette with

Definition at line 1140 of file colorutils.h.

◆ CRGBPalette16() [9/16]

CRGBPalette16::CRGBPalette16 ( const CHSV & c1,
const CHSV & c2 )
inline

Create palette with a gradient from one color to another.

Parameters
c1the starting color for the gradient
c2the end color for the gradient

Definition at line 1145 of file colorutils.h.

◆ CRGBPalette16() [10/16]

CRGBPalette16::CRGBPalette16 ( const CHSV & c1,
const CHSV & c2,
const CHSV & c3 )
inline

Create palette with three-color gradient.

Parameters
c1the starting color for the gradient
c2the middle color for the gradient
c3the end color for the gradient

Definition at line 1150 of file colorutils.h.

◆ CRGBPalette16() [11/16]

CRGBPalette16::CRGBPalette16 ( const CHSV & c1,
const CHSV & c2,
const CHSV & c3,
const CHSV & c4 )
inline

Create palette with four-color gradient.

Parameters
c1the starting color for the gradient
c2the first middle color for the gradient
c3the second middle color for the gradient
c4the end color for the gradient

Definition at line 1155 of file colorutils.h.

◆ CRGBPalette16() [12/16]

CRGBPalette16::CRGBPalette16 ( const CRGB & c1)
inline

Create palette filled with one color.

Parameters
c1the color to fill the palette with

Definition at line 1161 of file colorutils.h.

◆ CRGBPalette16() [13/16]

CRGBPalette16::CRGBPalette16 ( const CRGB & c1,
const CRGB & c2 )
inline

Create palette with a gradient from one color to another.

Parameters
c1the starting color for the gradient
c2the end color for the gradient

Definition at line 1166 of file colorutils.h.

◆ CRGBPalette16() [14/16]

CRGBPalette16::CRGBPalette16 ( const CRGB & c1,
const CRGB & c2,
const CRGB & c3 )
inline

Create palette with three-color gradient.

Parameters
c1the starting color for the gradient
c2the middle color for the gradient
c3the end color for the gradient

Definition at line 1171 of file colorutils.h.

◆ CRGBPalette16() [15/16]

CRGBPalette16::CRGBPalette16 ( const CRGB & c1,
const CRGB & c2,
const CRGB & c3,
const CRGB & c4 )
inline

Create palette with four-color gradient.

Parameters
c1the starting color for the gradient
c2the first middle color for the gradient
c3the second middle color for the gradient
c4the end color for the gradient

Definition at line 1176 of file colorutils.h.

◆ CRGBPalette16() [16/16]

CRGBPalette16::CRGBPalette16 ( TProgmemRGBGradientPalette_bytes progpal)
inline

Creates a palette from a gradient palette in PROGMEM.

Gradient palettes are loaded into CRGBPalettes in such a way that, if possible, every color represented in the gradient palette is also represented in the CRGBPalette.

For example, consider a gradient palette that is all black except for a single, one-element-wide (1/256th!) spike of red in the middle:

0, 0,0,0
124, 0,0,0
125, 255,0,0 // one 1/256th-palette-wide red stripe
126, 0,0,0
255, 0,0,0

A naive conversion of this 256-element palette to a 16-element palette might accidentally completely eliminate the red spike, rendering the palette completely black.

However, the conversions provided here would attempt to include a the red stripe in the output, more-or-less as faithfully as possible. So in this case, the resulting CRGBPalette16 palette would have a red stripe in the middle which was 1/16th of a palette wide – the narrowest possible in a CRGBPalette16.

This means that the relative width of stripes in a CRGBPalette16 will be, by definition, different from the widths in the gradient palette. This code attempts to preserve "all the colors", rather than the exact stripe widths at the expense of dropping some colors.

Definition at line 1210 of file colorutils.h.

Member Function Documentation

◆ loadDynamicGradientPalette()

CRGBPalette16 & CRGBPalette16::loadDynamicGradientPalette ( TDynamicRGBGradientPalette_bytes gpal)
inline

Creates a palette from a gradient palette in dynamic (heap) memory.

Gradient palettes are loaded into CRGBPalettes in such a way that, if possible, every color represented in the gradient palette is also represented in the CRGBPalette.

For example, consider a gradient palette that is all black except for a single, one-element-wide (1/256th!) spike of red in the middle:

0, 0,0,0
124, 0,0,0
125, 255,0,0 // one 1/256th-palette-wide red stripe
126, 0,0,0
255, 0,0,0

A naive conversion of this 256-element palette to a 16-element palette might accidentally completely eliminate the red spike, rendering the palette completely black.

However, the conversions provided here would attempt to include a the red stripe in the output, more-or-less as faithfully as possible. So in this case, the resulting CRGBPalette16 palette would have a red stripe in the middle which was 1/16th of a palette wide – the narrowest possible in a CRGBPalette16.

This means that the relative width of stripes in a CRGBPalette16 will be, by definition, different from the widths in the gradient palette. This code attempts to preserve "all the colors", rather than the exact stripe widths at the expense of dropping some colors.

Definition at line 1259 of file colorutils.h.

◆ operator CRGB *()

CRGBPalette16::operator CRGB * ( )
inline

Get the underlying pointer to the CHSV entries making up the palette.

Definition at line 1134 of file colorutils.h.

◆ operator!=()

bool CRGBPalette16::operator!= ( const CRGBPalette16 & rhs) const
inline

Check if two palettes do not have the same color entries.

Definition at line 1107 of file colorutils.h.

◆ operator=() [1/6]

CRGBPalette16 & CRGBPalette16::operator= ( const CHSV rhs[16])
inline

Create palette from array of CHSV colors.

Definition at line 1069 of file colorutils.h.

◆ operator=() [2/6]

CRGBPalette16 & CRGBPalette16::operator= ( const CHSVPalette16 & rhs)
inline

Create palette from CHSV palette.

Definition at line 1061 of file colorutils.h.

◆ operator=() [3/6]

CRGBPalette16 & CRGBPalette16::operator= ( const CRGB rhs[16])
inline

Create palette from array of CRGB colors.

Definition at line 1040 of file colorutils.h.

◆ operator=() [4/6]

CRGBPalette16 & CRGBPalette16::operator= ( const CRGBPalette16 & rhs)
inline

Copy constructor.

Definition at line 1034 of file colorutils.h.

◆ operator=() [5/6]

CRGBPalette16 & CRGBPalette16::operator= ( const TProgmemRGBPalette16 & rhs)
inline

Create palette from palette stored in PROGMEM.

Definition at line 1085 of file colorutils.h.

◆ operator=() [6/6]

CRGBPalette16 & CRGBPalette16::operator= ( TProgmemRGBGradientPalette_bytes progpal)
inline

Creates a palette from a gradient palette in PROGMEM.

Gradient palettes are loaded into CRGBPalettes in such a way that, if possible, every color represented in the gradient palette is also represented in the CRGBPalette.

For example, consider a gradient palette that is all black except for a single, one-element-wide (1/256th!) spike of red in the middle:

0, 0,0,0
124, 0,0,0
125, 255,0,0 // one 1/256th-palette-wide red stripe
126, 0,0,0
255, 0,0,0

A naive conversion of this 256-element palette to a 16-element palette might accidentally completely eliminate the red spike, rendering the palette completely black.

However, the conversions provided here would attempt to include a the red stripe in the output, more-or-less as faithfully as possible. So in this case, the resulting CRGBPalette16 palette would have a red stripe in the middle which was 1/16th of a palette wide – the narrowest possible in a CRGBPalette16.

This means that the relative width of stripes in a CRGBPalette16 will be, by definition, different from the widths in the gradient palette. This code attempts to preserve "all the colors", rather than the exact stripe widths at the expense of dropping some colors.

Definition at line 1215 of file colorutils.h.

◆ operator==()

bool CRGBPalette16::operator== ( const CRGBPalette16 & rhs) const
inline

Check if two palettes have the same color entries.

Definition at line 1094 of file colorutils.h.

◆ operator[]() [1/4]

CRGB & CRGBPalette16::operator[] ( int x)
inline

Array access operator to index into the gradient entries.

Parameters
xthe index to retrieve
Returns
reference to an entry in the palette's color array
Note
This does not perform any interpolation like ColorFromPalette(), it accesses the underlying entries that make up the gradient. Beware of bounds issues!

Definition at line 1123 of file colorutils.h.

◆ operator[]() [2/4]

const CRGB & CRGBPalette16::operator[] ( int x) const
inline

Array access operator to index into the gradient entries.

Parameters
xthe index to retrieve
Returns
reference to an entry in the palette's color array
Note
This does not perform any interpolation like ColorFromPalette(), it accesses the underlying entries that make up the gradient. Beware of bounds issues!

Definition at line 1128 of file colorutils.h.

◆ operator[]() [3/4]

CRGB & CRGBPalette16::operator[] ( uint8_t x)
inline

Array access operator to index into the gradient entries.

Parameters
xthe index to retrieve
Returns
reference to an entry in the palette's color array
Note
This does not perform any interpolation like ColorFromPalette(), it accesses the underlying entries that make up the gradient. Beware of bounds issues!

Definition at line 1112 of file colorutils.h.

◆ operator[]() [4/4]

const CRGB & CRGBPalette16::operator[] ( uint8_t x) const
inline

Array access operator to index into the gradient entries.

Parameters
xthe index to retrieve
Returns
reference to an entry in the palette's color array
Note
This does not perform any interpolation like ColorFromPalette(), it accesses the underlying entries that make up the gradient. Beware of bounds issues!

Definition at line 1117 of file colorutils.h.

Member Data Documentation

◆ entries

CRGB CRGBPalette16::entries[16]

the color entries that make up the palette

Definition at line 1006 of file colorutils.h.


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