1#define_import_path bevy_render::color_operations 3#import bevy_render::maths::FRAC_PI_3 11fn hsv_to_rgb(hsv: vec3<f32>) -> vec3<f32> { 12 let n = vec3(5.0, 3.0, 1.0); 13 let k = (n + hsv.x / FRAC_PI_3) % 6.0; 14 return hsv.z - hsv.z * hsv.y * max(vec3(0.0), min(k, min(4.0 - k, vec3(1.0)))); 23fn rgb_to_hsv(rgb: vec3<f32>) -> vec3<f32> { 24 let x_max = max(rgb.r, max(rgb.g, rgb.b)); 25 let x_min = min(rgb.r, min(rgb.g, rgb.b)); 26 let c = x_max - x_min; 28 var swizzle = vec3<f32>(0.0); 30 swizzle = vec3(rgb.gb, 0.0); 31 } else if (x_max == rgb.g) { 32 swizzle = vec3(rgb.br, 2.0); 34 swizzle = vec3(rgb.rg, 4.0); 37 let h = FRAC_PI_3 * (((swizzle.x - swizzle.y) / c + swizzle.z) % 6.0); 45 return vec3(h, s, x_max);