-
-
Notifications
You must be signed in to change notification settings - Fork 266
HslColor object API
HslColor represents a color object that is represented by Hue, Saturation, Lightness component values. The primary use of this class is for easy definitions of color. See Wikipedia article on HSL color space
NOTE: HslColor has no concept of RGB or W channels. It can be converted to RGB, but when converted to RGBW, RGBWW, and RGBWWW the W channels will always be empty.
There are three properties that represent the component values Hue, Saturation, and Lightness. The values range from 0.0f to 1.0f.
H is the primary color component and represents a color wheel. Often you will see examples of this being between 0 and 360, but this library is between 0.0f and 1.0f inclusive.
L should be generally limited to between (0.0 - 0.5)
float H;
float S;
float L;
Constructs a HslColor using Hue, Saturation, and Lightness color component values.
- h - value for Hue component (0.0f - 1.0f).
- s - value for Saturation component (0.0f - 1.0f).
- l - value for Lightness component (0.0f - 1.0f).
Construct a HslColor using RgbColor, converting the Rgb to Hsl
- color - a RgbColor object.
Construct a HslColor that will have its values set in latter operations.
CAUTION: The H,S,L members are not initialized and may not be consistent until set.
template <typename T_NEOHUEBLEND> static HslColor LinearBlend(HslColor left, HslColor right, float progress)
This will blend between two colors by the amount defined by the progress variable.
T_NEOHUEBLEND - a NeoHueBlend object, that will define how the colors are blended.
- left - the color to start the blend at.
- right - the color to end the blend at.
- progress - (0.0f - 1.0f) value where 0.0f will return left and 1.0f will return right and a value between will blend the color weighted linearly between them.
This is a static function, which means you need to call it scoped to the object class and not an instance like...
HslColor results = HslColor::LinearBlend<NeoHueBlendShortestDistance>(HslColor(0.88f,1.0f,0.5f), HslColor(0.12f,1.0f,0.5f), 0.33f);