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?