function brettel(srgb, t, severity) {
var rgb = Array(3);
rgb[0] = sRGB_to_linearRGB_Lookup[srgb[0]];
rgb[1] = sRGB_to_linearRGB_Lookup[srgb[1]];
rgb[2] = sRGB_to_linearRGB_Lookup[srgb[2]];
var params = brettel_params[t];
var separationPlaneNormal = params["separationPlaneNormal"];
var rgbCvdFromRgb_1 = params["rgbCvdFromRgb_1"];
var rgbCvdFromRgb_2 = params["rgbCvdFromRgb_2"];
var dotWithSepPlane =
rgb[0] * separationPlaneNormal[0] +
rgb[1] * separationPlaneNormal[1] +
rgb[2] * separationPlaneNormal[2];
var rgbCvdFromRgb =
dotWithSepPlane >= 0 ? rgbCvdFromRgb_1 : rgbCvdFromRgb_2;
var rgb_cvd = Array(3);
rgb_cvd[0] =
rgbCvdFromRgb[0] * rgb[0] +
rgbCvdFromRgb[1] * rgb[1] +
rgbCvdFromRgb[2] * rgb[2];
rgb_cvd[1] =
rgbCvdFromRgb[3] * rgb[0] +
rgbCvdFromRgb[4] * rgb[1] +
rgbCvdFromRgb[5] * rgb[2];
rgb_cvd[2] =
rgbCvdFromRgb[6] * rgb[0] +
rgbCvdFromRgb[7] * rgb[1] +
rgbCvdFromRgb[8] * rgb[2];
rgb_cvd[0] = rgb_cvd[0] * severity + rgb[0] * (1.0 - severity);
rgb_cvd[1] = rgb_cvd[1] * severity + rgb[1] * (1.0 - severity);
rgb_cvd[2] = rgb_cvd[2] * severity + rgb[2] * (1.0 - severity);
return [
sRGB_from_linearRGB(rgb_cvd[0]),
sRGB_from_linearRGB(rgb_cvd[1]),
sRGB_from_linearRGB(rgb_cvd[2]),
];
}