@@ -196,60 +196,6 @@ function plotOne(gd, plotinfo, cd) {
196196 } ;
197197 }
198198
199- // get interpolated bin value. Returns {bin0:closest bin, frac:fractional dist to next, bin1:next bin}
200- function findInterp ( pixel , pixArray ) {
201- var maxBin = pixArray . length - 2 ;
202- var bin = Lib . constrain ( Lib . findBin ( pixel , pixArray ) , 0 , maxBin ) ;
203- var pix0 = pixArray [ bin ] ;
204- var pix1 = pixArray [ bin + 1 ] ;
205- var interp = Lib . constrain ( bin + ( pixel - pix0 ) / ( pix1 - pix0 ) - 0.5 , 0 , maxBin ) ;
206- var bin0 = Math . round ( interp ) ;
207- var frac = Math . abs ( interp - bin0 ) ;
208-
209- if ( ! interp || interp === maxBin || ! frac ) {
210- return {
211- bin0 : bin0 ,
212- bin1 : bin0 ,
213- frac : 0
214- } ;
215- }
216- return {
217- bin0 : bin0 ,
218- frac : frac ,
219- bin1 : Math . round ( bin0 + frac / ( interp - bin0 ) )
220- } ;
221- }
222-
223- function findInterpFromCenters ( pixel , centerPixArray ) {
224- // if(pixel <= centerPixArray[0]) return {bin0: 0, bin1: 0, frac: 0};
225- var maxBin = centerPixArray . length - 1 ;
226- // if(pixel >= centerPixArray[lastCenter]) return {bin0: lastCenter, bin1: lastCenter, frac: 0};
227-
228- var bin = Lib . constrain ( Lib . findBin ( pixel , centerPixArray ) , 0 , maxBin ) ;
229- var pix0 = centerPixArray [ bin ] ;
230- var pix1 = centerPixArray [ bin + 1 ] ;
231- var frac = ( ( pixel - pix0 ) / ( pix1 - pix0 ) ) || 0 ;
232- if ( frac <= 0 ) {
233- return {
234- bin0 : bin ,
235- bin1 : bin ,
236- frac : 0
237- } ;
238- }
239- if ( frac < 0.5 ) {
240- return {
241- bin0 : bin ,
242- bin1 : bin + 1 ,
243- frac : frac
244- } ;
245- }
246- return {
247- bin0 : bin + 1 ,
248- bin1 : bin ,
249- frac : 1 - frac
250- } ;
251- }
252-
253199 // build the pixel map brick-by-brick
254200 // cruise through z-matrix row-by-row
255201 // build a brick at each z-matrix value
@@ -281,13 +227,6 @@ function plotOne(gd, plotinfo, cd) {
281227 return [ 0 , 0 , 0 , 0 ] ;
282228 }
283229
284- function putColor ( pixels , pxIndex , c ) {
285- pixels [ pxIndex ] = c [ 0 ] ;
286- pixels [ pxIndex + 1 ] = c [ 1 ] ;
287- pixels [ pxIndex + 2 ] = c [ 2 ] ;
288- pixels [ pxIndex + 3 ] = Math . round ( c [ 3 ] * 255 ) ;
289- }
290-
291230 function interpColor ( r0 , r1 , xinterp , yinterp ) {
292231 var z00 = r0 [ xinterp . bin0 ] ;
293232 if ( z00 === undefined ) return setColor ( undefined , 1 ) ;
@@ -444,3 +383,64 @@ function plotOne(gd, plotinfo, cd) {
444383
445384 image3 . exit ( ) . remove ( ) ;
446385}
386+
387+ // get interpolated bin value. Returns {bin0:closest bin, frac:fractional dist to next, bin1:next bin}
388+ function findInterp ( pixel , pixArray ) {
389+ var maxBin = pixArray . length - 2 ;
390+ var bin = Lib . constrain ( Lib . findBin ( pixel , pixArray ) , 0 , maxBin ) ;
391+ var pix0 = pixArray [ bin ] ;
392+ var pix1 = pixArray [ bin + 1 ] ;
393+ var interp = Lib . constrain ( bin + ( pixel - pix0 ) / ( pix1 - pix0 ) - 0.5 , 0 , maxBin ) ;
394+ var bin0 = Math . round ( interp ) ;
395+ var frac = Math . abs ( interp - bin0 ) ;
396+
397+ if ( ! interp || interp === maxBin || ! frac ) {
398+ return {
399+ bin0 : bin0 ,
400+ bin1 : bin0 ,
401+ frac : 0
402+ } ;
403+ }
404+ return {
405+ bin0 : bin0 ,
406+ frac : frac ,
407+ bin1 : Math . round ( bin0 + frac / ( interp - bin0 ) )
408+ } ;
409+ }
410+
411+ function findInterpFromCenters ( pixel , centerPixArray ) {
412+ // if(pixel <= centerPixArray[0]) return {bin0: 0, bin1: 0, frac: 0};
413+ var maxBin = centerPixArray . length - 1 ;
414+ // if(pixel >= centerPixArray[lastCenter]) return {bin0: lastCenter, bin1: lastCenter, frac: 0};
415+
416+ var bin = Lib . constrain ( Lib . findBin ( pixel , centerPixArray ) , 0 , maxBin ) ;
417+ var pix0 = centerPixArray [ bin ] ;
418+ var pix1 = centerPixArray [ bin + 1 ] ;
419+ var frac = ( ( pixel - pix0 ) / ( pix1 - pix0 ) ) || 0 ;
420+ if ( frac <= 0 ) {
421+ return {
422+ bin0 : bin ,
423+ bin1 : bin ,
424+ frac : 0
425+ } ;
426+ }
427+ if ( frac < 0.5 ) {
428+ return {
429+ bin0 : bin ,
430+ bin1 : bin + 1 ,
431+ frac : frac
432+ } ;
433+ }
434+ return {
435+ bin0 : bin + 1 ,
436+ bin1 : bin ,
437+ frac : 1 - frac
438+ } ;
439+ }
440+
441+ function putColor ( pixels , pxIndex , c ) {
442+ pixels [ pxIndex ] = c [ 0 ] ;
443+ pixels [ pxIndex + 1 ] = c [ 1 ] ;
444+ pixels [ pxIndex + 2 ] = c [ 2 ] ;
445+ pixels [ pxIndex + 3 ] = Math . round ( c [ 3 ] * 255 ) ;
446+ }
0 commit comments