import javax.vecmath.Color3f;

/**
 * A colormap similar to Jet in Matlab.
 */
public class Jet implements ColorMap {
    public Jet() {}
    public void getColor(float x, Color3f result) {
	float a; // alpha
	if(x < 0.f) 
	    result.set(0.f,0.f,0.f);
	else if (x < 0.125f) {
	    a = x/0.125f;
	    result.set(0.f, 0.f, 0.5f+0.5f*a);
	}
	else if (x < 0.375f) {
	    a = (x - 0.125f)/0.25f;
	    result.set(0.f, a, 1.f);
	}
	else if (x < 0.625f) {
	    a = (x - 0.375f)/0.25f;
	    result.set(a, 1.f, 1.f-a);
	}
	else if (x < 0.875f) {
	    a = (x - 0.625f)/0.25f;
	    result.set(1.f, 1.f-a, 0.f);
	}
	else if (x <= 1.0f) {
	    a = (x - 0.875f)/0.125f;
	    result.set(1.f-0.5f*a, 0.f, 0.f);
	}
	else {
	    result.set(1.f,1.f,1.f);
	}
    }
}
