UNPKG

node-red-contrib-tak-registration

Version:

A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK

10 lines (9 loc) 26.1 kB
/*! * MarchingSquaresJS * version 1.3.3 * https://github.com/RaumZeit/MarchingSquares.js * * @license GNU Affero General Public License. * Copyright (c) 2015-2019 Ronny Lorenz <ronny@tbi.univie.ac.at> */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.MarchingSquaresJS=e.MarchingSquaresJS||{})}(this,function(e){"use strict";function m(e,t,n,a){var o;return a<n&&(o=n,n=a,a=o),e<t?e<n?(n-e)/(t-e):(a-e)/(t-e):a<e?(e-a)/(e-t):(e-n)/(e-t)}function h(e,t,n,a){return e<t?(n-e)/(t-e):(e-a)/(e-t)}function b(e,t,n,a){return e<t?(a-e)/(t-e):(e-n)/(e-t)}function _(){this.successCallback=null,this.verbose=!1,this.polygons=!1,this.polygons_full=!1,this.linearRing=!0,this.noQuadTree=!1,this.noFrame=!1}function O(e,t,n,a){var o=[];return e.polygons.forEach(function(e){e.forEach(function(e){e[0]+=t,e[1]+=n}),a.linearRing&&e.push(e[0]),o.push(e)}),o}function p(e,t,n,a,o){var r=a,l=o,i=0,s=0;if(this.x=t,this.y=n,this.lowerBound=null,this.upperBound=null,this.childA=null,this.childB=null,this.childC=null,this.childD=null,1===a&&1===o)this.lowerBound=Math.min(e[n][t],e[n][t+1],e[n+1][t+1],e[n+1][t]),this.upperBound=Math.max(e[n][t],e[n][t+1],e[n+1][t+1],e[n+1][t]);else{if(1<a){for(;0!==r;)r>>=1,i++;a===1<<i-1&&i--,r=1<<i-1}if(1<o){for(;0!==l;)l>>=1,s++;o===1<<s-1&&s--,l=1<<s-1}this.childA=new p(e,t,n,r,l),this.lowerBound=this.childA.lowerBound,this.upperBound=this.childA.upperBound,0<a-r&&(this.childB=new p(e,t+r,n,a-r,l),this.lowerBound=Math.min(this.lowerBound,this.childB.lowerBound),this.upperBound=Math.max(this.upperBound,this.childB.upperBound),0<o-l&&(this.childC=new p(e,t+r,n+l,a-r,o-l),this.lowerBound=Math.min(this.lowerBound,this.childC.lowerBound),this.upperBound=Math.max(this.upperBound,this.childC.upperBound))),0<o-l&&(this.childD=new p(e,t,n+l,r,o-l),this.lowerBound=Math.min(this.lowerBound,this.childD.lowerBound),this.upperBound=Math.max(this.upperBound,this.childD.upperBound))}}function u(e){var t,n;if(!e)throw new Error("data is required");if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Error("data must be scalar field, i.e. array of arrays");if(e.length<2)throw new Error("data must contain at least two rows");if((n=e[0].length)<2)throw new Error("data must contain at least two columns");for(t=1;t<e.length;t++){if(!Array.isArray(e[t]))throw new Error("Row "+t+" is not an array");if(e[t].length!=n)throw new Error("unequal row lengths detected, please provide a regular grid")}this.data=e,this.root=new p(e,0,0,e[0].length-1,e.length-1)}p.prototype.cellsInBand=function(e,t,n){var a=[];return n=void 0===n||n,this.lowerBound>t||this.upperBound<e||(this.childA||this.childB||this.childC||this.childD?(this.childA&&(a=a.concat(this.childA.cellsInBand(e,t,n))),this.childB&&(a=a.concat(this.childB.cellsInBand(e,t,n))),this.childD&&(a=a.concat(this.childD.cellsInBand(e,t,n))),this.childC&&(a=a.concat(this.childC.cellsInBand(e,t,n)))):(n||this.lowerBound<=e||this.upperBound>=t)&&a.push({x:this.x,y:this.y})),a},p.prototype.cellsBelowThreshold=function(e,t){var n=[];return t=void 0===t||t,this.lowerBound>e||(this.childA||this.childB||this.childC||this.childD?(this.childA&&(n=n.concat(this.childA.cellsBelowThreshold(e,t))),this.childB&&(n=n.concat(this.childB.cellsBelowThreshold(e,t))),this.childD&&(n=n.concat(this.childD.cellsBelowThreshold(e,t))),this.childC&&(n=n.concat(this.childC.cellsBelowThreshold(e,t)))):(t||this.upperBound>=e)&&n.push({x:this.x,y:this.y})),n};var V={square:function(e,t,n,a,o,r){r.polygons&&e.polygons.push([[0,0],[0,1],[1,1],[1,0]])},triangle_bl:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,i],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,i],[l,0],[0,0]])},triangle_br:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[1,i]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[1,i],[1,0]])},triangle_tr:function(e,t,n,a,o,r){var l=r.interpolate(n,a,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,l],[i,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[1,l],[i,1],[1,1]])},triangle_tl:function(e,t,n,a,o,r){var l=r.interpolate(o,a,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[l,1],[0,i]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,i],[0,1],[l,1]])},tetragon_t:function(e,t,n,a,o,r){var l=r.interpolate(n,a,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,l],[0,i]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,i],[0,1],[1,1],[1,l]])},tetragon_r:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[i,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[l,0],[i,1],[1,1],[1,0]])},tetragon_b:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[1,i]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[1,i],[1,0]])},tetragon_l:function(e,t,n,a,o,r){var l=r.interpolate(o,a,r.minV,r.maxV),i=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[l,1],[i,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[l,1],[i,0]])},tetragon_bl:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,o,r.minV,r.maxV),p=r.interpolate_b(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,p],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,p],[i,0]])},tetragon_br:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(n,a,r.minV,r.maxV),p=r.interpolate_b(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[1,p]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,s],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[1,p],[1,s],[i,0]])},tetragon_tr:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rb={path:[[1,p],[l,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lt"}}),r.polygons&&e.polygons.push([[1,p],[l,1],[i,1],[1,s]])},tetragon_tl:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate_a(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.tr={path:[[i,1],[0,p]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[l,1]],move:{x:0,y:1,enter:"bl"}}),r.polygons&&e.polygons.push([[i,1],[0,p],[0,s],[l,1]])},tetragon_lr:function(e,t,n,a,o,r){var l=r.interpolate_a(t,o,r.minV,r.maxV),i=r.interpolate_b(t,o,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lt={path:[[0,i],[1,s]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,p],[0,l]],move:{x:-1,y:0,enter:"rb"}}),r.polygons&&e.polygons.push([[0,l],[0,i],[1,s],[1,p]])},tetragon_tb:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate_b(t,n,r.minV,r.maxV),p=r.interpolate_a(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.tr={path:[[i,1],[s,0]],move:{x:0,y:-1,enter:"tr"}},e.edges.bl={path:[[p,0],[l,1]],move:{x:0,y:1,enter:"bl"}}),r.polygons&&e.polygons.push([[p,0],[l,1],[i,1],[s,0]])},pentagon_tr:function(e,t,n,a,o,r){var l=r.interpolate(o,a,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[l,1],[1,i]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[l,1],[1,i],[1,0]])},pentagon_tl:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[1,1],[1,0]])},pentagon_br:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,i],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[1,1],[1,i],[l,0]])},pentagon_bl:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[i,0],[0,l]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,l],[0,1],[1,1],[1,0],[i,0]])},pentagon_tr_rl:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,p],[0,l]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,l],[0,1],[i,1],[1,s],[1,p]])},pentagon_rb_bt:function(e,t,n,a,o,r){var l=r.interpolate(n,a,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,n,r.minV,r.maxV),p=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,l],[i,0]],move:{x:0,y:-1,enter:"tr"}},e.edges.bl={path:[[s,0],[p,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[p,1],[1,1],[1,l],[i,0],[s,0]])},pentagon_bl_lr:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate_a(t,o,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[1,p]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,s],[1,p],[1,0]])},pentagon_lt_tb:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate_a(o,a,r.minV,r.maxV),s=r.interpolate_b(o,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[s,1],[p,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[s,1],[p,0]])},pentagon_bl_tb:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate_b(t,n,r.minV,r.maxV),p=r.interpolate_a(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[p,0],[0,l]],move:{x:-1,y:0,enter:"rt"}},e.edges.tl={path:[[i,1],[s,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[0,l],[0,1],[i,1],[s,0],[p,0]])},pentagon_lt_rl:function(e,t,n,a,o,r){var l=r.interpolate_a(t,o,r.minV,r.maxV),i=r.interpolate_b(t,o,r.minV,r.maxV),s=r.interpolate(o,a,r.minV,r.maxV),p=r.interpolate(n,o,r.minV,r.maxV);r.polygons_full&&(e.edges.lt={path:[[0,i],[s,1]],move:{x:0,y:1,enter:"br"}},e.edges.rt={path:[[1,p],[0,l]],move:{x:-1,y:0,enter:"rb"}}),r.polygons&&e.polygons.push([[0,l],[0,i],[s,1],[1,1],[1,p]])},pentagon_tr_bt:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate(n,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[p,0],[l,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,1],[i,1],[1,s],[1,0],[p,0]])},pentagon_rb_lr:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate_b(n,a,r.minV,r.maxV),s=r.interpolate_a(n,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[1,i]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,s],[p,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[1,i],[1,s],[p,0]])},hexagon_lt_tr:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate_a(o,a,r.minV,r.maxV),s=r.interpolate_b(o,a,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[s,1],[1,p]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[s,1],[1,p],[1,0]])},hexagon_bl_lt:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate_a(t,o,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[p,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,s],[p,1],[1,1],[1,0]])},hexagon_bl_rb:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate(t,o,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rt"}},e.edges.rt={path:[[1,p],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,1],[1,1],[1,p],[i,0]])},hexagon_tr_rb:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,p],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[i,1],[1,s],[1,p],[l,0]])},hexagon_lt_rb:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate(n,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"br"}},e.edges.rt={path:[[1,s],[p,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[1,1],[1,s],[p,0]])},hexagon_bl_tr:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV),s=r.interpolate(o,a,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rt"}},e.edges.tl={path:[[s,1],[1,p]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,1],[s,1],[1,p],[1,0]])},heptagon_tr:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,o,r.minV,r.maxV),p=r.interpolate_b(t,o,r.minV,r.maxV),g=r.interpolate(o,a,r.minV,r.maxV),m=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,p],[g,1]],move:{x:0,y:1,enter:"br"}},e.edges.rt={path:[[1,m],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,p],[g,1],[1,1],[1,m],[i,0]])},heptagon_bl:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV),s=r.interpolate_a(o,a,r.minV,r.maxV),p=r.interpolate_b(o,a,r.minV,r.maxV),g=r.interpolate_b(n,a,r.minV,r.maxV),m=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,i],[s,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[p,1],[1,g]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,m],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,i],[s,1],[p,1],[1,g],[1,m],[l,0]])},heptagon_tl:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate(t,o,r.minV,r.maxV),p=r.interpolate(o,a,r.minV,r.maxV),g=r.interpolate_b(n,a,r.minV,r.maxV),m=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rt"}},e.edges.tl={path:[[p,1],[1,g]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,m],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,1],[p,1],[1,g],[1,m],[i,0]])},heptagon_br:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate_a(t,o,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate_a(o,a,r.minV,r.maxV),g=r.interpolate_b(o,a,r.minV,r.maxV),m=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[p,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[g,1],[1,m]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,s],[p,1],[g,1],[1,m],[1,0]])},octagon:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,o,r.minV,r.maxV),p=r.interpolate_b(t,o,r.minV,r.maxV),g=r.interpolate_a(o,a,r.minV,r.maxV),m=r.interpolate_b(o,a,r.minV,r.maxV),h=r.interpolate_b(n,a,r.minV,r.maxV),b=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,p],[g,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[m,1],[1,h]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,b],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,p],[g,1],[m,1],[1,h],[1,b],[i,0]])}};function c(e,t,n,a,o,r){var l=(a+n+t+e)/4;return r<l?2:l<o?0:1}function F(e,t,n,a){var o,r,l=0,i=e[n+1][t],s=e[n+1][t+1],p=e[n][t+1],g=e[n][t],m=a.minV,h=a.maxV;if(!(isNaN(g)||isNaN(p)||isNaN(s)||isNaN(i))){switch(l|=i<m?0:h<i?128:64,l|=s<m?0:h<s?32:16,l|=p<m?0:h<p?8:4,r=0,o={cval:l=+(l|=g<m?0:h<g?2:1),polygons:[],edges:{},x0:g,x1:p,x2:s,x3:i,x:t,y:n},l){case 85:V.square(o,g,p,s,i,a);case 0:case 170:break;case 169:V.triangle_bl(o,g,p,s,i,a);break;case 166:V.triangle_br(o,g,p,s,i,a);break;case 154:V.triangle_tr(o,g,p,s,i,a);break;case 106:V.triangle_tl(o,g,p,s,i,a);break;case 1:V.triangle_bl(o,g,p,s,i,a);break;case 4:V.triangle_br(o,g,p,s,i,a);break;case 16:V.triangle_tr(o,g,p,s,i,a);break;case 64:V.triangle_tl(o,g,p,s,i,a);break;case 168:V.tetragon_bl(o,g,p,s,i,a);break;case 162:V.tetragon_br(o,g,p,s,i,a);break;case 138:V.tetragon_tr(o,g,p,s,i,a);break;case 42:V.tetragon_tl(o,g,p,s,i,a);break;case 2:V.tetragon_bl(o,g,p,s,i,a);break;case 8:V.tetragon_br(o,g,p,s,i,a);break;case 32:V.tetragon_tr(o,g,p,s,i,a);break;case 128:V.tetragon_tl(o,g,p,s,i,a);break;case 5:V.tetragon_b(o,g,p,s,i,a);break;case 20:V.tetragon_r(o,g,p,s,i,a);break;case 80:V.tetragon_t(o,g,p,s,i,a);break;case 65:V.tetragon_l(o,g,p,s,i,a);break;case 165:V.tetragon_b(o,g,p,s,i,a);break;case 150:V.tetragon_r(o,g,p,s,i,a);break;case 90:V.tetragon_t(o,g,p,s,i,a);break;case 105:V.tetragon_l(o,g,p,s,i,a);break;case 160:V.tetragon_lr(o,g,p,s,i,a);break;case 130:V.tetragon_tb(o,g,p,s,i,a);break;case 10:V.tetragon_lr(o,g,p,s,i,a);break;case 40:V.tetragon_tb(o,g,p,s,i,a);break;case 101:V.pentagon_tr(o,g,p,s,i,a);break;case 149:V.pentagon_tl(o,g,p,s,i,a);break;case 86:V.pentagon_bl(o,g,p,s,i,a);break;case 89:V.pentagon_br(o,g,p,s,i,a);break;case 69:V.pentagon_tr(o,g,p,s,i,a);break;case 21:V.pentagon_tl(o,g,p,s,i,a);break;case 84:V.pentagon_bl(o,g,p,s,i,a);break;case 81:V.pentagon_br(o,g,p,s,i,a);break;case 96:V.pentagon_tr_rl(o,g,p,s,i,a);break;case 24:V.pentagon_rb_bt(o,g,p,s,i,a);break;case 6:V.pentagon_bl_lr(o,g,p,s,i,a);break;case 129:V.pentagon_lt_tb(o,g,p,s,i,a);break;case 74:V.pentagon_tr_rl(o,g,p,s,i,a);break;case 146:V.pentagon_rb_bt(o,g,p,s,i,a);break;case 164:V.pentagon_bl_lr(o,g,p,s,i,a);break;case 41:V.pentagon_lt_tb(o,g,p,s,i,a);break;case 66:V.pentagon_bl_tb(o,g,p,s,i,a);break;case 144:V.pentagon_lt_rl(o,g,p,s,i,a);break;case 36:V.pentagon_tr_bt(o,g,p,s,i,a);break;case 9:V.pentagon_rb_lr(o,g,p,s,i,a);break;case 104:V.pentagon_bl_tb(o,g,p,s,i,a);break;case 26:V.pentagon_lt_rl(o,g,p,s,i,a);break;case 134:V.pentagon_tr_bt(o,g,p,s,i,a);break;case 161:V.pentagon_rb_lr(o,g,p,s,i,a);break;case 37:V.hexagon_lt_tr(o,g,p,s,i,a);break;case 148:V.hexagon_bl_lt(o,g,p,s,i,a);break;case 82:V.hexagon_bl_rb(o,g,p,s,i,a);break;case 73:V.hexagon_tr_rb(o,g,p,s,i,a);break;case 133:V.hexagon_lt_tr(o,g,p,s,i,a);break;case 22:V.hexagon_bl_lt(o,g,p,s,i,a);break;case 88:V.hexagon_bl_rb(o,g,p,s,i,a);break;case 97:V.hexagon_tr_rb(o,g,p,s,i,a);break;case 145:case 25:V.hexagon_lt_rb(o,g,p,s,i,a);break;case 70:case 100:V.hexagon_bl_tr(o,g,p,s,i,a);break;case 17:0===(r=c(g,p,s,i,m,h))?(V.triangle_bl(o,g,p,s,i,a),V.triangle_tr(o,g,p,s,i,a)):V.hexagon_lt_rb(o,g,p,s,i,a);break;case 68:0===(r=c(g,p,s,i,m,h))?(V.triangle_tl(o,g,p,s,i,a),V.triangle_br(o,g,p,s,i,a)):V.hexagon_bl_tr(o,g,p,s,i,a);break;case 153:2===(r=c(g,p,s,i,m,h))?(V.triangle_bl(o,g,p,s,i,a),V.triangle_tr(o,g,p,s,i,a)):V.hexagon_lt_rb(o,g,p,s,i,a);break;case 102:2===(r=c(g,p,s,i,m,h))?(V.triangle_tl(o,g,p,s,i,a),V.triangle_br(o,g,p,s,i,a)):V.hexagon_bl_tr(o,g,p,s,i,a);break;case 152:2===(r=c(g,p,s,i,m,h))?(V.triangle_tr(o,g,p,s,i,a),V.tetragon_bl(o,g,p,s,i,a)):V.heptagon_tr(o,g,p,s,i,a);break;case 137:2===(r=c(g,p,s,i,m,h))?(V.triangle_bl(o,g,p,s,i,a),V.tetragon_tr(o,g,p,s,i,a)):V.heptagon_bl(o,g,p,s,i,a);break;case 98:2===(r=c(g,p,s,i,m,h))?(V.triangle_tl(o,g,p,s,i,a),V.tetragon_br(o,g,p,s,i,a)):V.heptagon_tl(o,g,p,s,i,a);break;case 38:2===(r=c(g,p,s,i,m,h))?(V.triangle_br(o,g,p,s,i,a),V.tetragon_tl(o,g,p,s,i,a)):V.heptagon_br(o,g,p,s,i,a);break;case 18:0===(r=c(g,p,s,i,m,h))?(V.triangle_tr(o,g,p,s,i,a),V.tetragon_bl(o,g,p,s,i,a)):V.heptagon_tr(o,g,p,s,i,a);break;case 33:0===(r=c(g,p,s,i,m,h))?(V.triangle_bl(o,g,p,s,i,a),V.tetragon_tr(o,g,p,s,i,a)):V.heptagon_bl(o,g,p,s,i,a);break;case 72:0===(r=c(g,p,s,i,m,h))?(V.triangle_tl(o,g,p,s,i,a),V.tetragon_br(o,g,p,s,i,a)):V.heptagon_tl(o,g,p,s,i,a);break;case 132:0===(r=c(g,p,s,i,m,h))?(V.triangle_br(o,g,p,s,i,a),V.tetragon_tl(o,g,p,s,i,a)):V.heptagon_br(o,g,p,s,i,a);break;case 136:0===(r=c(g,p,s,i,m,h))?(V.tetragon_tl(o,g,p,s,i,a),V.tetragon_br(o,g,p,s,i,a)):1===r?V.octagon(o,g,p,s,i,a):(V.tetragon_bl(o,g,p,s,i,a),V.tetragon_tr(o,g,p,s,i,a));break;case 34:0===(r=c(g,p,s,i,m,h))?(V.tetragon_bl(o,g,p,s,i,a),V.tetragon_tr(o,g,p,s,i,a)):1===r?V.octagon(o,g,p,s,i,a):(V.tetragon_tl(o,g,p,s,i,a),V.tetragon_br(o,g,p,s,i,a))}return o}}e.isoBands=function(e,t,a,n){var o,r,l,i=!1,s=null,p=null,I=null,J=null,R=!1,g=[],W=[],Q=[];if(!e)throw new Error("data is required");if(null==t)throw new Error("lowerBound is required");if(null==a)throw new Error("bandWidth is required");if(n&&"object"!=typeof n)throw new Error("options must be an object");if(l=function(e){var t,n,a,o,r;for(o=new _,e=e||{},r=Object.keys(o),t=0;t<r.length;t++)null!=(a=e[n=r[t]])&&(o[n]=a);return o.polygons_full=!o.polygons,o.interpolate=m,o.interpolate_a=h,o.interpolate_b=b,o}(n),e instanceof u)p=(s=e).root,I=e.data,l.noQuadTree||(i=!0);else{if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Error("input is neither array of arrays nor object retrieved from 'QuadTree()'");I=e}if(Array.isArray(t)){for(R=!0,l.noQuadTree||(i=!0),o=0;o<t.length;o++)if(isNaN(+t[o]))throw new Error("lowerBound["+o+"] is not a number");if(Array.isArray(a)){if(t.length!==a.length)throw new Error("lowerBound and bandWidth have unequal lengths");for(o=0;o<a.length;o++)if(isNaN(+a[o]))throw new Error("bandWidth["+o+"] is not a number")}else{if(isNaN(+a))throw new Error("bandWidth must be a number");for(g=[],o=0;o<t.length;o++)g.push(a);a=g}}else{if(isNaN(+t))throw new Error("lowerBound must be a number");if(t=[t],isNaN(+a))throw new Error("bandWidth must be a number");a=[a]}return i&&!p&&(s=new u(I),p=s.root,I=s.data),l.verbose&&(l.polygons?console.log("MarchingSquaresJS-isoBands: returning single polygons for each grid cell"):console.log("MarchingSquaresJS-isoBands: returning polygon paths for entire data grid"),R&&console.log("MarchingSquaresJS-isoBands: multiple bands requested, returning array of band polygons instead of polygons for a single band")),t.forEach(function(e,t){if(W=[],l.minV=e,l.maxV=e+a[t],l.verbose&&console.log("MarchingSquaresJS-isoBands: computing isobands for ["+e+":"+(e+a[t])+"]"),l.polygons)if(i)p.cellsInBand(l.minV,l.maxV,!0).forEach(function(e){W=W.concat(O(F(I,e.x,e.y,l),e.x,e.y,l))});else for(r=0;r<I.length-1;++r)for(o=0;o<I[0].length-1;++o)W=W.concat(O(F(I,o,r,l),o,r,l));else{for(J=[],o=0;o<I[0].length-1;++o)J[o]=[];if(i)p.cellsInBand(l.minV,l.maxV,!1).forEach(function(e){J[e.x][e.y]=F(I,e.x,e.y,l)});else for(o=0;o<I[0].length-1;++o)for(r=0;r<I.length-1;++r)J[o][r]=F(I,o,r,l);g=J,m=l,N=[],q=(n=I).length-1,M=n[0].length-1,C=[["rt","rb"],["br","bl"],["lb","lt"],["tl","tr"]],S=[0,-1,0,1],D=[-1,0,1,0],T=["bl","lb","lt","tl","tr","rt","rb","br"],j={bl:1,br:1,lb:2,lt:2,tl:3,tr:3,rt:0,rb:0},function(e,t,n){var a,o,r,l,i;for(a=!0,o=e[0].length,r=e.length,i=0;i<r;i++)if(e[i][0]<t||e[i][0]>n||e[i][o-1]<t||e[i][o-1]>n){a=!1;break}if(a&&(e[r-1][0]<t||e[r-1][0]>n||e[r-1][o-1]<t||e[r-1][o-1]>n)&&(a=!1),a)for(l=0;l<o-1;l++)if(e[0][l]<t||e[0][l]>n||e[r-1][l]<t||e[r-1][l]>n){a=!1;break}return a}(n,m.minV,m.maxV)&&(m.linearRing?N.push([[0,0],[0,q],[M,q],[M,0],[0,0]]):N.push([[0,0],[0,q],[M,q],[M,0]])),g.forEach(function(e,p){e.forEach(function(e,t){for(h=null,_=0;_<8;_++)if(h=T[_],"object"==typeof e.edges[h]){for(b=[],u=e.edges[h],x=h,d=t,f=!1,v=[(y=p)+u.path[0][0],t+u.path[0][1]],b.push(v);!f&&"object"==typeof(k=g[y][d]).edges[x];)if(u=k.edges[x],delete k.edges[x],(E=u.path[1])[0]+=y,E[1]+=d,b.push(E),x=u.move.enter,y+=u.move.x,d+=u.move.y,void 0===g[y]||void 0===g[y][d]){if(B=w=0,y===M)y--,w=0;else if(y<0)y++,w=2;else if(d===q)d--,w=3;else{if(!(d<0))throw new Error("Left the grid somewhere in the interior!");d++,w=1}if(y===p&&d===t&&w===j[h]){f=!0,x=h;break}for(;;){if(A=!1,4<B)throw new Error("Direction change counter overflow! This should never happen!");if(void 0!==g[y]&&void 0!==g[y][d])for(k=g[y][d],V=0;V<C[w].length;V++)if(c=C[w][V],"object"==typeof k.edges[c]){u=k.edges[c],b.push((r=y,l=d,i=w,s=u.path,0===i?(r+=1,l+=s[0][1]):1===i?r+=s[0][0]:2===i?l+=s[0][1]:3===i&&(r+=s[0][0],l+=1),[r,l])),x=c,A=!0;break}if(A)break;if(b.push((n=y,a=d,0===(o=w)?n++:1===o||(2===o?a++:3===o&&(n++,a++)),[n,a])),d+=D[w],void 0!==g[y+=S[w]]&&void 0!==g[y][d]||(0===w&&d<0||1===w&&y<0||2===w&&d===q||3===w&&y===M)&&(y-=S[w],d-=D[w],w=(w+1)%4,B++),y===p&&d===t&&w===j[h]){f=!0,x=h;break}}}!m.linearRing||b[b.length-1][0]===v[0]&&b[b.length-1][1]===v[1]||b.push(v),N.push(b)}var n,a,o,r,l,i,s})}),W=N}var n,g,m,h,b,_,u,V,c,x,y,d,f,v,k,w,B,E,A,N,q,M,C,S,D,T,j;R?Q.push(W):Q=W,"function"==typeof l.successCallback&&l.successCallback(Q,e,a[t])}),Q},Object.defineProperty(e,"__esModule",{value:!0})});