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

Detailed Description

RGB color palette with 16 discrete values.

Examples
ColorPalette.ino, and Fire2012WithPalette.ino.

Definition at line 997 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 1002 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 1005 of file colorutils.h.

◆ CRGBPalette16() [3/16]

CRGBPalette16::CRGBPalette16 ( const CRGBPalette16 & rhs)
inline

Copy constructor.

Definition at line 1017 of file colorutils.h.

◆ CRGBPalette16() [4/16]

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

Create palette from array of CRGB colors.

Definition at line 1022 of file colorutils.h.

◆ CRGBPalette16() [5/16]

CRGBPalette16::CRGBPalette16 ( const CHSVPalette16 & rhs)
inline

Create palette from CHSV palette.

Definition at line 1040 of file colorutils.h.

◆ CRGBPalette16() [6/16]

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

Create palette from array of CHSV colors.

Definition at line 1047 of file colorutils.h.

◆ CRGBPalette16() [7/16]

CRGBPalette16::CRGBPalette16 ( const TProgmemRGBPalette16 & rhs)
inline

Create palette from palette stored in PROGMEM.

Definition at line 1071 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 1133 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 1138 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 1143 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 1148 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 1154 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 1159 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 1164 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 1169 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 1203 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 1252 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 1127 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 1100 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 1062 of file colorutils.h.

◆ operator=() [2/6]

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

Create palette from CHSV palette.

Definition at line 1054 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 1033 of file colorutils.h.

◆ operator=() [4/6]

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

Copy constructor.

Definition at line 1027 of file colorutils.h.

◆ operator=() [5/6]

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

Create palette from palette stored in PROGMEM.

Definition at line 1078 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 1208 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 1087 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 1116 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 1121 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 1105 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 1110 of file colorutils.h.

Member Data Documentation

◆ entries

CRGB CRGBPalette16::entries[16]

the color entries that make up the palette

Definition at line 999 of file colorutils.h.


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