Hello everyone!

Wanted to build a double gradient color map (really just a pair of simpleColorMap delegated) but I am stumped by the ColorMap interface.

1) If everything has to return a color no matter what, why not just have one getColor()? Why do we need a getRGB() + getAlpha() too?

2) Why do we need validLevel() and defaultValue()? can't they both be part of getColor()?

3) In what order are the methods called? does validLevel()+defaultValue() override getColor()? Should getColor() delegate to getRGB() or viceversa?

Basically it seems to me that ColorMap should really just be a         Function<Double,Color>

What am I not understanding?