Compare commits

...

2 Commits

Author SHA1 Message Date
fe40294f52
rename variables 2020-03-22 14:41:54 -05:00
adc8b72e0e
add some default color constructors 2020-03-22 14:40:41 -05:00

View File

@ -30,40 +30,50 @@ type (
) )
const ( const (
WhiteCandlelight = 1500 KelvinCandlelight = 1500
WhiteSunset = 2000 KelvinSunset = 2000
WhiteUltraWarm = 2500 KelvinUltraWarm = 2500
WhiteIncandescent = 2700 KelvinIncandescent = 2700
WhiteWarm = 3000 KelvinWarm = 3000
WhiteCool = 4000 KelvinCool = 4000
WhiteCoolDaylight = 4500 KelvinCoolDaylight = 4500
WhiteSoftDaylight = 5000 KelvinSoftDaylight = 5000
WhiteDaylight = 5600 KelvinDaylight = 5600
WhiteNoonDaylight = 6000 KelvinNoonDaylight = 6000
WhiteBrightDaylight = 6500 KelvinBrightDaylight = 6500
WhiteCloudDaylight = 7000 KelvinCloudDaylight = 7000
WhiteBlueDaylight = 7500 KelvinBlueDaylight = 7500
WhiteBlueOvercast = 8000 KelvinBlueOvercast = 8000
WhiteBlueIce = 9000 KelvinBlueIce = 9000
HueWhite = 0
HueRed = 0
HueOrange = 36
HueYellow = 60
HueGreen = 120
HueCyan = 180
HueBlue = 250
HuePurple = 280
HuePink = 325
) )
var ( var (
DefaultWhites = map[string]int{ DefaultWhites = map[string]int{
"candlelight": WhiteCandlelight, "candlelight": KelvinCandlelight,
"sunset": WhiteSunset, "sunset": KelvinSunset,
"ultrawarm": WhiteUltraWarm, "ultrawarm": KelvinUltraWarm,
"incandesent": WhiteIncandescent, "incandesent": KelvinIncandescent,
"warm": WhiteWarm, "warm": KelvinWarm,
"cool": WhiteCool, "cool": KelvinCool,
"cooldaylight": WhiteCoolDaylight, "cooldaylight": KelvinCoolDaylight,
"softdaylight": WhiteSoftDaylight, "softdaylight": KelvinSoftDaylight,
"daylight": WhiteDaylight, "daylight": KelvinDaylight,
"noondaylight": WhiteNoonDaylight, "noondaylight": KelvinNoonDaylight,
"brightdaylight": WhiteBrightDaylight, "brightdaylight": KelvinBrightDaylight,
"clouddaylight": WhiteCloudDaylight, "clouddaylight": KelvinCloudDaylight,
"bluedaylight": WhiteBlueDaylight, "bluedaylight": KelvinBlueDaylight,
"blueovercast": WhiteBlueOvercast, "blueovercast": KelvinBlueOvercast,
"blueice": WhiteBlueIce, "blueice": KelvinBlueIce,
} }
) )
@ -71,6 +81,24 @@ func NewRGBColor(r, g, b uint8) (*RGBColor, error) {
return &RGBColor{R: r, G: g, B: b}, nil return &RGBColor{R: r, G: g, B: b}, nil
} }
func NewHSColor(h, s float32) (HSBKColor, error) {
var c HSBKColor
if h < 0 || h > 360 {
return c, errors.New("hue must be between 0.0-360.0")
}
if s < 0 || s > 1 {
return c, errors.New("saturation must be between 0.0-1.0")
}
c = HSBKColor{
H: Float32Ptr(h),
S: Float32Ptr(s),
}
return c, nil
}
func NewHSBColor(h, s, b float32) (HSBKColor, error) { func NewHSBColor(h, s, b float32) (HSBKColor, error) {
var c HSBKColor var c HSBKColor
@ -93,6 +121,14 @@ func NewHSBColor(h, s, b float32) (HSBKColor, error) {
return c, nil return c, nil
} }
func NewRed() (HSBKColor, error) { return NewHSColor(HueRed, 1) }
func NewOrange() (HSBKColor, error) { return NewHSColor(HueOrange, 1) }
func NewYellow() (HSBKColor, error) { return NewHSColor(HueYellow, 1) }
func NewGreen() (HSBKColor, error) { return NewHSColor(HueGreen, 1) }
func NewCyan() (HSBKColor, error) { return NewHSColor(HueCyan, 1) }
func NewPurple() (HSBKColor, error) { return NewHSColor(HuePurple, 1) }
func NewPink() (HSBKColor, error) { return NewHSColor(HuePink, 1) }
func NewWhite(k int16) (HSBKColor, error) { func NewWhite(k int16) (HSBKColor, error) {
var c HSBKColor var c HSBKColor
@ -101,7 +137,7 @@ func NewWhite(k int16) (HSBKColor, error) {
} }
c = HSBKColor{ c = HSBKColor{
H: Float32Ptr(0.0), H: Float32Ptr(HueWhite),
S: Float32Ptr(0.0), S: Float32Ptr(0.0),
K: Int16Ptr(k), K: Int16Ptr(k),
} }