on fb21e21 help sign in
elk/core-js/Graphics/Color.js
86 lines 2.7 kB history raw
1Elm.Color = function() {
3function Color_0(a1) {
4 return function(a2) {
5 return function(a3) {
6 return function(a4) {
7 return["Color", a1, a2, a3, a4]
8 }
9 }
10 }
12var rgba_1 = Color_0;
13var red_3 = ["Color",255,0,0,1];
14var green_4 = ["Color",0,255,0,1];
15var blue_5 = ["Color",0,0,255,1];
16var yellow_6 = ["Color",255,255,0,1];
17var cyan_7 = ["Color",0,255,255,1];
18var magenta_8 = ["Color",255,0,255,1];
19var black_9 = ["Color",0,0,0,1];
20var white_10 = ["Color",255,255,255,1];
21var gray_11 = ["Color",128,128,128,1];
22var grey_12 = ["Color",128,128,128,1];
23function rgb_2(r_13) {
24 return function(g_14) {
25 return function(b_15) {
26 return ["Color",r_13,g_14,b_15,1]
27 }
28 }
30function extract(c) {
31 if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
32 return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
34function complement(rgb) {
35 var hsv = toHSV(rgb);
36 hsv.hue = (hsv.hue + 180) % 360;
37 return toRGB(hsv);
40function hsva(h) { return function(s) { return function(v) { return function(a) {
41 var clr = toRGB({hue:h, saturation:s, value:v});
42 clr[4] = a;
43 return clr;
44 }; }; };
47function hsv(h) { return function(s) { return function(v) {
48 return toRGB({hue:h, saturation:s, value:v}); }; }; }
50function toHSV(rgb) {
51 var hsv = {};
52 var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
53 var M = Math.max(r,g,b);
54 var m = Math.min(r,g,b);
55 var c = M - m;
57 var h = 0;
58 if (c === 0) { h = 0; }
59 else if (M === r) { h = ((g - b) / c) % 6; }
60 else if (M === g) { h = ((b - r) / c) + 2; }
61 else if (M === b) { h = ((r - g) / c) + 4; }
62 h *= 60;
64 return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
67function between(lo,hi,x) { return lo <= x && x < hi; }
68function norm(n) { return Math.round(n*255); }
70function toRGB(hsv) {
71 var c = hsv.value * hsv.saturation;
72 var hue = hsv.hue / 60;
73 var x = c * (1 - Math.abs((hue % 2) - 1));
74 var r = 0, g = 0, b = 0;
75 if (between(0,1,hue)) { r = c; g = x; b = 0; }
76 else if (between(1,2,hue)) { r = x; g = c; b = 0; }
77 else if (between(2,3,hue)) { r = 0; g = c; b = x; }
78 else if (between(3,4,hue)) { r = 0; g = x; b = c; }
79 else if (between(4,5,hue)) { r = x; g = 0; b = c; }
80 else if (between(5,6,hue)) { r = c; g = 0; b = x; }
82 var m = hsv.value - c;
83 return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
85 return{rgba:rgba_1, rgb:rgb_2, hsva:hsva, hsv:hsv, red:red_3, green:green_4, blue:blue_5, yellow:yellow_6, cyan:cyan_7, magenta:magenta_8, black:black_9, white:white_10, gray:gray_11, grey:grey_12,complement:complement,extract:extract}
86}();