SBDColorPaletteSequentialHCL Class Reference

The SBDColorPaletteSequentialHCL class is a class for the sequential HCL (Hue-Chroma-Luminance) color palette. More...

Constructors and destructors

 SBDColorPaletteSequentialHCL ()
 Default constructor.
 
 SBDColorPaletteSequentialHCL (int hue1, int hue2, int chroma1=50, int maximumChroma=50, int chroma2=50, int luminance1=70, int luminance2=70, float chromaPower=1.0f, float luminancePower=1.0f, std::string name=std::string(""))
 
 SBDColorPaletteSequentialHCL (const SBDColorPaletteSequentialHCL *const otherColorPalette)
 Copy constructor.
 
virtual ~SBDColorPaletteSequentialHCL ()
 

Serialization

bool isSerializable () const
 Returns true.
 
virtual void serialize (SBCSerializer *serializer, const SBNodeIndexer &nodeIndexer, const SBVersionNumber &sdkVersionNumber=SB_SDK_VERSION_NUMBER, const SBVersionNumber &classVersionNumber=SBVersionNumber(1, 0, 0)) const
 Serializes the document.
 
virtual void unserialize (SBCSerializer *serializer, const SBNodeIndexer &nodeIndexer, const SBVersionNumber &sdkVersionNumber=SB_SDK_VERSION_NUMBER, const SBVersionNumber &classVersionNumber=SBVersionNumber(1, 0, 0))
 Unserializes the document.
 

Getter and setter functions

virtual SBDColorPaletteSequentialHCLclone () const
 Clones the color palette.
 

Palette functions

void getColor (float *color, float value) const
 Computes sRGB color color based on this palette for the given intensity value value which should be in the range [0.0, 1.0].
 
virtual void getColorInPaletteColorSpace (float *color, float &value) const
 Computes color coordinates color in this palette's color space for the given intensity value value which should be in the range [0.0, 1.0]. More...
 

Additional Inherited Members

- Public Types inherited from SBDColorPalette
enum  ColorPaletteType {
  Custom,
  Qualitative,
  Sequential,
  Diverging
}
 
- Public Member Functions inherited from SBDColorPaletteSequential
 SBDColorPaletteSequential ()
 Default constructor.
 
 SBDColorPaletteSequential (int hue1, int hue2, int chroma1=50, int maximumChroma=50, int chroma2=50, int luminance1=70, int luminance2=70, float chromaPower=1.0f, float luminancePower=1.0f, std::string name=std::string(""))
 
 SBDColorPaletteSequential (const SBDColorPaletteSequential *const otherColorPalette)
 Copy constructor.
 
virtual ~SBDColorPaletteSequential ()
 
bool isSerializable () const
 Returns true.
 
int getHue1 () const
 Returns the starting value for the first coordinate.
 
void setHue1 (int hue1)
 Sets the starting value for the first coordinate.
 
int getHue2 () const
 Returns the end value for the first coordinate.
 
void setHue2 (int hue2)
 Sets the end value for the first coordinate.
 
void setHue (int hue1, int hue2)
 Sets the starting and end values for the first coordinate.
 
int getChroma1 () const
 Returns the starting value for the second coordinate.
 
void setChroma1 (int chroma1)
 Sets the starting value for the second coordinate.
 
int getChroma2 () const
 Returns the end value for the second coordinate.
 
void setChroma2 (int chroma2)
 Sets the end value for the second coordinate.
 
int getMaximumChroma () const
 Returns the max value for the second coordinate for the triangular trajectory.
 
void setMaximumChroma (int maximumChroma)
 Sets the max value for the second coordinate for the triangular trajectory, if it is less the chroma1 or c2 then it is not used and the linear trajectory is computed.
 
float getChromaPower () const
 Returns the power of the intensity value for the computation of the second coordinate.
 
void setChromaPower (float chromaPower)
 Sets the power of the intensity value for the computation of the second coordinate, the power should be > 0.0.
 
void setChroma (int chroma1, int maximumChroma, int chroma2, float chromaPower=1.0f)
 Sets the parameters for the second coordinate.
 
int getLuminance1 () const
 Returns the starting value for the third coordinate.
 
void setLuminance1 (int luminance1)
 Sets the starting value for the third coordinate.
 
int getLuminance2 () const
 Returns the end value for the third coordinate.
 
void setLuminance2 (int luminance2)
 Sets the end value for the third coordinate.
 
float getLuminancePower () const
 Returns the power of the intensity value for the computation of the third coordinate.
 
void setLuminancePower (float luminancePower)
 Sets the power of the intensity value for the computation of the third coordinate, the power should be > 0.0.
 
void setLuminance (int luminance1, int luminance2, float luminancePower=1.0f)
 Sets the parameters for the third coordinate.
 
- Public Member Functions inherited from SBDColorPalette
 SBDColorPalette ()
 Default constructor.
 
virtual ~SBDColorPalette ()
 
bool isSerializable () const
 Returns true.
 
ColorPaletteType getType () const
 Returns the type of the color palette.
 
void setType (SBDColorPalette::ColorPaletteType paletteType)
 Sets the type of the color palette.
 
const std::string & getName () const
 Returns the palette's name.
 
void setName (const std::string &name)
 Sets the palette's name to name.
 
- Protected Member Functions inherited from SBDColorPalette
float getValueAlongLinearTrajectory (float y1, float y2, float power, float x) const
 Returns a value along the "linear" trajectory. More...
 
float getValueAlongTriangularTrajectory (float y1, float ymax, float y2, float power, float x) const
 Returns a value along "triangular" trajectory. More...
 
- Protected Attributes inherited from SBDColorPaletteSequential
int hue1
 The starting value for the first coordinate.
 
int hue2
 The end value for the first coordinate.
 
int chroma1
 The starting value for the second coordinate.
 
int chroma2
 The end value for the second coordinate.
 
int maximumChroma
 The max value for the second coordinate for the triangular trajectory, if it is less the chroma1 or chroma2 then it is not used and the linear trajectory is computed.
 
float chromaPower
 The power of the intensity value for the computation of the second coordinate, the power should be > 0.0.
 
int luminance1
 The starting value for the third coordinate.
 
int luminance2
 The end value for the third coordinate.
 
float luminancePower
 The power of the intensity value for the computation of the third coordinate, the power should be > 0.0.
 
- Protected Attributes inherited from SBDColorPalette
ColorPaletteType paletteType
 Palette's type.
 
std::string * name
 Palette's name.
 

Detailed Description

A sequential palette is constructed in a 3D color coordinate space with coordinates named Hue, Chroma, and Luminance, that are computed as follows: hue = hue1 + i * (hue2 - hue1) if Cmax < chroma1 or maximumChroma < chroma2 then chroma is computed based on a "linear" trajectory chroma = chroma1 + i^(chromaPower) * (chroma2 - chroma1), else it is computed based on the triangular trajectory (see SBDColorPalette::getValueAlongTriangularTrajectory) luminance = luminance1 + i^(luminancePower) * (luminance2 - luminance1) where i is a value (of intensity or interestingness) based on which the colorization should be done.

Member Function Documentation

◆ getColorInPaletteColorSpace()

void SBDColorPaletteSequentialHCL::getColorInPaletteColorSpace ( float *  color,
float &  value 
) const
virtual

SBDColorPaletteSequentialHCL::getColorInPaletteColorSpace - Computes color coordinates color in the HCL color space for the given intensity value value.

Parameters
color- an array for color coordinates (float[3]) in the HCL color space.
value- an intensity value based on which the resulting color is computed, the intensity value should be in range [0.0, 1.0] where 1 corresponds to the full intensity.

Reimplemented from SBDColorPaletteSequential.