Mercurial > gemma
changeset 4850:18d5461bec5d
Fixed some golint issues.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 19 Nov 2019 12:45:52 +0100 |
parents | 8584197232ec |
children | faabfed7f0e9 |
files | pkg/common/linear.go pkg/models/colors.go |
diffstat | 2 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/common/linear.go Mon Nov 18 16:38:28 2019 +0100 +++ b/pkg/common/linear.go Tue Nov 19 12:45:52 2019 +0100 @@ -10,6 +10,7 @@ // // Author(s): // * Sascha L. Teichmann <sascha.teichmann@intevation.de> + package common // Linear constructs a function which maps x1 to y1 and x2 to y2.
--- a/pkg/models/colors.go Mon Nov 18 16:38:28 2019 +0100 +++ b/pkg/models/colors.go Tue Nov 19 12:45:52 2019 +0100 @@ -24,13 +24,18 @@ ) type ( + // ColorValue models a tuple of a floating point value and a color. ColorValue struct { Value float64 Color color.RGBA } + // ColorValues are a list of color values. + // Colors between the given ones are linear interpolated. ColorValues []ColorValue + // ClassBreak is a potential open interval of values associated + // with a color. ClassBreak struct { High float64 HasHigh bool @@ -40,6 +45,8 @@ } ) +// Color gives a HTML compatible string representation of the color +// of the class break. func (cb *ClassBreak) Color() string { return fmt.Sprintf("#%02x%02x%02x", cb.Col.R, @@ -48,6 +55,8 @@ ) } +// ClassBreaks converts a list of colors to a list of class breaks. +// The first an the last class break are open on the respective end. func (cc ColorValues) ClassBreaks() []ClassBreak { cbs := make([]ClassBreak, len(cc), len(cc)+1) @@ -71,6 +80,7 @@ return cbs } +// Heights extracts the values friom the color value pairs. func (cc ColorValues) Heights() []float64 { heights := make([]float64, len(cc)) for i := range cc { @@ -79,6 +89,9 @@ return heights } +// Clip does the same as Interpolate +// but if the value is out of bounds the value of the nearest border +// is returned. func (cc ColorValues) Clip(v float64) color.RGBA { if len(cc) == 0 { return color.RGBA{} @@ -93,6 +106,9 @@ return c } +// Interpolate interpolates the color linearly between the +// given values of the color values. +// If the value is out of bounds false is returned. func (cc ColorValues) Interpolate(v float64) (color.RGBA, bool) { if len(cc) == 0 || v < cc[0].Value || v > cc[len(cc)-1].Value { return color.RGBA{}, false @@ -148,6 +164,12 @@ return color.RGBA{}, false } +// ParseColorValues parses a string to a list of color values. +// The value/color pairs are separated by ','. +// A color/value pair is separated with ':'. +// f ':' is missing it is assumed that only the value is given. +// The missing color is interpolated from fore and aftermost +// value/colors pairs. func ParseColorValues(s string) (ColorValues, error) { var err error