HSLToRGB.js 892 B

123456789101112131415161718192021222324252627282930313233
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "/**\n\
  3. * Converts an HSL color (hue, saturation, lightness) to RGB\n\
  4. * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html}\n\
  5. *\n\
  6. * @name czm_HSLToRGB\n\
  7. * @glslFunction\n\
  8. * \n\
  9. * @param {vec3} rgb The color in HSL.\n\
  10. *\n\
  11. * @returns {vec3} The color in RGB.\n\
  12. *\n\
  13. * @example\n\
  14. * vec3 hsl = czm_RGBToHSL(rgb);\n\
  15. * hsl.z *= 0.1;\n\
  16. * rgb = czm_HSLToRGB(hsl);\n\
  17. */\n\
  18. \n\
  19. vec3 hueToRGB(float hue)\n\
  20. {\n\
  21. float r = abs(hue * 6.0 - 3.0) - 1.0;\n\
  22. float g = 2.0 - abs(hue * 6.0 - 2.0);\n\
  23. float b = 2.0 - abs(hue * 6.0 - 4.0);\n\
  24. return clamp(vec3(r, g, b), 0.0, 1.0);\n\
  25. }\n\
  26. \n\
  27. vec3 czm_HSLToRGB(vec3 hsl)\n\
  28. {\n\
  29. vec3 rgb = hueToRGB(hsl.x);\n\
  30. float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;\n\
  31. return (rgb - 0.5) * c + hsl.z;\n\
  32. }\n\
  33. ";