|
10 | 10 |
|
11 | 11 | var d3 = require('d3'); |
12 | 12 | var Lib = require('../../lib'); |
13 | | -var isNumeric = require('fast-isnumeric'); |
14 | 13 | var xmlnsNamespaces = require('../../constants/xmlns_namespaces'); |
15 | 14 | var constants = require('./constants'); |
16 | 15 |
|
17 | | -function scale(zero, factor, min, max) { |
18 | | - return function(c) { |
19 | | - c = (c - zero) * factor; |
20 | | - c = Lib.constrain(c, min, max); |
21 | | - return c; |
22 | | - }; |
23 | | -} |
24 | | - |
25 | | -function constrain(min, max) { |
26 | | - return function(c) { return Lib.constrain(c, min, max);}; |
27 | | -} |
28 | | - |
29 | | -// Generate a function to scale color components according to zmin/zmax and the colormodel |
30 | | -var makeScaler = function(trace) { |
31 | | - var colormodel = trace.colormodel; |
32 | | - var n = colormodel.length; |
33 | | - var cr = constants.colormodel[colormodel]; |
34 | | - |
35 | | - var s = []; |
36 | | - // Loop over all color components |
37 | | - for(var k = 0; k < n; k++) { |
38 | | - if(cr.min[k] !== trace.zmin[k] || cr.max[k] !== trace.zmax[k]) { |
39 | | - s.push(scale( |
40 | | - trace.zmin[k], |
41 | | - (cr.max[k] - cr.min[k]) / (trace.zmax[k] - trace.zmin[k]), |
42 | | - cr.min[k], |
43 | | - cr.max[k] |
44 | | - )); |
45 | | - } else { |
46 | | - s.push(constrain(cr.min[k], cr.max[k])); |
47 | | - } |
48 | | - } |
49 | | - |
50 | | - return function(pixel) { |
51 | | - var c = pixel.slice(0, n); |
52 | | - for(var k = 0; k < n; k++) { |
53 | | - var ck = c[k]; |
54 | | - if(!isNumeric(ck)) return false; |
55 | | - c[k] = s[k](ck); |
56 | | - } |
57 | | - return c; |
58 | | - }; |
59 | | -}; |
60 | | - |
61 | 16 | module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { |
62 | 17 | var xa = plotinfo.xaxis; |
63 | 18 | var ya = plotinfo.yaxis; |
@@ -136,7 +91,6 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) { |
136 | 91 | var ipx = function(i) {return Lib.constrain(Math.round(xa.c2p(x0 + i * dx) - left), 0, imageWidth);}; |
137 | 92 | var jpx = function(j) {return Lib.constrain(Math.round(ya.c2p(y0 + j * dy) - top), 0, imageHeight);}; |
138 | 93 |
|
139 | | - trace._scaler = makeScaler(trace); |
140 | 94 | var fmt = constants.colormodel[trace.colormodel].fmt; |
141 | 95 | var c; |
142 | 96 | for(i = 0; i < cd0.w; i++) { |
|
0 commit comments