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 (
WhiteCandlelight = 1500
WhiteSunset = 2000
WhiteUltraWarm = 2500
WhiteIncandescent = 2700
WhiteWarm = 3000
WhiteCool = 4000
WhiteCoolDaylight = 4500
WhiteSoftDaylight = 5000
WhiteDaylight = 5600
WhiteNoonDaylight = 6000
WhiteBrightDaylight = 6500
WhiteCloudDaylight = 7000
WhiteBlueDaylight = 7500
WhiteBlueOvercast = 8000
WhiteBlueIce = 9000
KelvinCandlelight = 1500
KelvinSunset = 2000
KelvinUltraWarm = 2500
KelvinIncandescent = 2700
KelvinWarm = 3000
KelvinCool = 4000
KelvinCoolDaylight = 4500
KelvinSoftDaylight = 5000
KelvinDaylight = 5600
KelvinNoonDaylight = 6000
KelvinBrightDaylight = 6500
KelvinCloudDaylight = 7000
KelvinBlueDaylight = 7500
KelvinBlueOvercast = 8000
KelvinBlueIce = 9000
HueWhite = 0
HueRed = 0
HueOrange = 36
HueYellow = 60
HueGreen = 120
HueCyan = 180
HueBlue = 250
HuePurple = 280
HuePink = 325
)
var (
DefaultWhites = map[string]int{
"candlelight": WhiteCandlelight,
"sunset": WhiteSunset,
"ultrawarm": WhiteUltraWarm,
"incandesent": WhiteIncandescent,
"warm": WhiteWarm,
"cool": WhiteCool,
"cooldaylight": WhiteCoolDaylight,
"softdaylight": WhiteSoftDaylight,
"daylight": WhiteDaylight,
"noondaylight": WhiteNoonDaylight,
"brightdaylight": WhiteBrightDaylight,
"clouddaylight": WhiteCloudDaylight,
"bluedaylight": WhiteBlueDaylight,
"blueovercast": WhiteBlueOvercast,
"blueice": WhiteBlueIce,
"candlelight": KelvinCandlelight,
"sunset": KelvinSunset,
"ultrawarm": KelvinUltraWarm,
"incandesent": KelvinIncandescent,
"warm": KelvinWarm,
"cool": KelvinCool,
"cooldaylight": KelvinCoolDaylight,
"softdaylight": KelvinSoftDaylight,
"daylight": KelvinDaylight,
"noondaylight": KelvinNoonDaylight,
"brightdaylight": KelvinBrightDaylight,
"clouddaylight": KelvinCloudDaylight,
"bluedaylight": KelvinBlueDaylight,
"blueovercast": KelvinBlueOvercast,
"blueice": KelvinBlueIce,
}
)
@ -71,6 +81,24 @@ func NewRGBColor(r, g, b uint8) (*RGBColor, error) {
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) {
var c HSBKColor
@ -93,6 +121,14 @@ func NewHSBColor(h, s, b float32) (HSBKColor, error) {
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) {
var c HSBKColor
@ -101,7 +137,7 @@ func NewWhite(k int16) (HSBKColor, error) {
}
c = HSBKColor{
H: Float32Ptr(0.0),
H: Float32Ptr(HueWhite),
S: Float32Ptr(0.0),
K: Int16Ptr(k),
}