SBDColorPalette Class Reference

The SBDColorPalette class is a base class for color palettes. More...

Public Types

enum  ColorPaletteType {
  Custom,
  Qualitative,
  Sequential,
  Diverging
}
 

Constructors and destructors

 SBDColorPalette ()
 Default constructor.
 
virtual ~SBDColorPalette ()
 

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.
 

Clone function

virtual SBDColorPaletteclone () const
 Clones the palette.
 

Palette info

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.
 

Palette functions

virtual void getColor (float *color, float value) const
 Computes RGB color color based on the palette and an intensity value value which should be in the range [0.0, 1.0]. More...
 
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...
 

Useful functions

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...
 

Palette parameters

ColorPaletteType paletteType
 Palette's type.
 
std::string * name
 Palette's name.
 

Detailed Description

This class is a base class for color palettes in SAMSON. Please refer to this page for more information.

See also
Color schemes

Member Enumeration Documentation

◆ ColorPaletteType

The three different types of palettes (qualitative, sequential, and diverging) are all constructed by combining three different types of trajectories (constant, linear, triangular) for the three different coordinates in the given color space (e.h.: hue H, chroma C, luminance L)

Enumerator
Custom 

The undefined type - a custom color palette which does not fall into any of other categories.

Qualitative 

A qualitative color palette type - for coding categorical information, i.e., where no particular ordering of categories is available and every color should receive the same perceptual weight.

Sequential 

A sequential color palette type - for coding ordered/numeric information, i.e., going from high to low (or vice versa).

Diverging 

A diverging color palette type - for coding ordered/numeric information around a central neutral value, i.e., where colors diverge from neutral to two extremes.

Member Function Documentation

◆ getColor()

void SBDColorPalette::getColor ( float *  color,
float  value 
) const
virtual

SBDColorPalette::getColor - Computes RGB color color based on the palette and an intensity value value.

Parameters
color- an array for color coordinates (float[3]).
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 in SBDColorPaletteDiverging, SBDColorPaletteSequential, SBDColorPaletteQualitative, SBDColorPaletteDivergingHCL, SBDColorPaletteSequentialHCL, and SBDColorPaletteQualitativeHCL.

◆ getColorInPaletteColorSpace()

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

SBDColorPalette::getColorInPaletteColorSpace - Computes color coordinates color in this palette's color space for the given intensity value value.

Parameters
color- an array for color coordinates (float[3]).
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 in SBDColorPaletteDiverging, SBDColorPaletteSequential, SBDColorPaletteQualitative, SBDColorPaletteDivergingHCL, SBDColorPaletteSequentialHCL, and SBDColorPaletteQualitativeHCL.

◆ getValueAlongLinearTrajectory()

float SBDColorPalette::getValueAlongLinearTrajectory ( float  y1,
float  y2,
float  power,
float  x 
) const
protected

SBDColorPalette::getValueAlongLinearTrajectory - Returns the value corresponding to x along the "linear" trajectory starting.

Parameters
y1- the start of the trajectory
y2- the end of the trajectory
power- a power parameter for the value x; if the power is equal to 1.0 the trajectory is linear, else it is a power-transformed curve
x- a value, should be in the range [0.0, 1.0].
Returns
The value along the "linear" trajectory

◆ getValueAlongTriangularTrajectory()

float SBDColorPalette::getValueAlongTriangularTrajectory ( float  y1,
float  ymax,
float  y2,
float  power,
float  x 
) const
protected

SBDColorPalette::getValueAlongTriangularTrajectory - Returns the value corresponding to x along the "triangular" trajectory starting.

Parameters
y1- the start of the trajectory
ymax- the max value on the trajectory that defines the triangular shape. If it is smaller than y1 or y2 then it defaults to the linear trajectory between y1 and y2.
y2- the end of the trajectory
power- a power parameter for the value x; if the power is equal to 1.0 the trajectories that constitute the triangular trajectory are linear, else they are power-transformed curves
x- a value, should be in the range [0.0, 1.0].
Returns
The value along the "triangular" trajectory