2023-07-18 09:04:15 +08:00
! function ( t , e ) { "object" == typeof exports && "undefined" != typeof module ? e ( exports ) : "function" == typeof define && define . amd ? define ( [ "exports" ] , e ) : e ( ( t = "undefined" != typeof globalThis ? globalThis : t || self ) . turf = { } ) } ( this , ( function ( t ) { "use strict" ; var e = 6371008.8 , n = { centimeters : 637100880 , centimetres : 637100880 , degrees : 57.22891354143274 , feet : 20902260.511392 , inches : 39.37 * e , kilometers : 6371.0088 , kilometres : 6371.0088 , meters : e , metres : e , miles : 3958.761333810546 , millimeters : 6371008800 , millimetres : 6371008800 , nauticalmiles : e / 1852 , radians : 1 , yards : 6967335.223679999 } , r = { centimeters : 100 , centimetres : 100 , degrees : 1 / 111325 , feet : 3.28084 , inches : 39.37 , kilometers : . 001 , kilometres : . 001 , meters : 1 , metres : 1 , miles : 1 / 1609.344 , millimeters : 1e3 , millimetres : 1e3 , nauticalmiles : 1 / 1852 , radians : 1 / e , yards : 1.0936133 } , i = { acres : 247105e-9 , centimeters : 1e4 , centimetres : 1e4 , feet : 10.763910417 , hectares : 1e-4 , inches : 1550.003100006 , kilometers : 1e-6 , kilometres : 1e-6 , meters : 1 , metres : 1 , miles : 386e-9 , millimeters : 1e6 , millimetres : 1e6 , yards : 1.195990046 } ; function o ( t , e , n ) { void 0 === n && ( n = { } ) ; var r = { type : "Feature" } ; return ( 0 === n . id || n . id ) && ( r . id = n . id ) , n . bbox && ( r . bbox = n . bbox ) , r . properties = e || { } , r . geometry = t , r } function s ( t , e , n ) { switch ( t ) { case "Point" : return a ( e ) . geometry ; case "LineString" : return h ( e ) . geometry ; case "Polygon" : return l ( e ) . geometry ; case "MultiPoint" : return d ( e ) . geometry ; case "MultiLineString" : return g ( e ) . geometry ; case "MultiPolygon" : return y ( e ) . geometry ; default : throw new Error ( t + " is invalid" ) } } function a ( t , e , n ) { if ( void 0 === n && ( n = { } ) , ! t ) throw new Error ( "coordinates is required" ) ; if ( ! Array . isArray ( t ) ) throw new Error ( "coordinates must be an Array" ) ; if ( t . length < 2 ) throw new Error ( "coordinates must be at least 2 numbers long" ) ; if ( ! C ( t [ 0 ] ) || ! C ( t [ 1 ] ) ) throw new Error ( "coordinates must contain numbers" ) ; return o ( { type : "Point" , coordinates : t } , e , n ) } function u ( t , e , n ) { return void 0 === n && ( n = { } ) , f ( t . map ( ( function ( t ) { return a ( t , e ) } ) ) , n ) } function l ( t , e , n ) { void 0 === n && ( n = { } ) ; for ( var r = 0 , i = t ; r < i . length ; r ++ ) { var s = i [ r ] ; if ( s . length < 4 ) throw new Error ( "Each LinearRing of a Polygon must have 4 or more Positions." ) ; for ( var a = 0 ; a < s [ s . length - 1 ] . length ; a ++ ) if ( s [ s . length - 1 ] [ a ] !== s [ 0 ] [ a ] ) throw new Error ( "First and last Position are not equivalent." ) } return o ( { type : "Polygon" , coordinates : t } , e , n ) } function c ( t , e , n ) { return void 0 === n && ( n = { } ) , f ( t . map ( ( function ( t ) { return l ( t , e ) } ) ) , n ) } function h ( t , e , n ) { if ( void 0 === n && ( n = { } ) , t . length < 2 ) throw new Error ( "coordinates must be an array of two or more positions" ) ; return o ( { type : "LineString" , coordinates : t } , e , n ) } function p ( t , e , n ) { return void 0 === n && ( n = { } ) , f ( t . map ( ( function ( t ) { return h ( t , e ) } ) ) , n ) } function f ( t , e ) { void 0 === e && ( e = { } ) ; var n = { type : "FeatureCollection" } ; return e . id && ( n . id = e . id ) , e . bbox && ( n . bbox = e . bbox ) , n . features = t , n } function g ( t , e , n ) { return void 0 === n && ( n = { } ) , o ( { type : "MultiLineString" , coordinates : t } , e , n ) } function d ( t , e , n ) { return void 0 === n && ( n = { } ) , o ( { type : "MultiPoint" , coordinates : t } , e , n ) } function y ( t , e , n ) { return void 0 === n && ( n = { } ) , o ( { type : "MultiPolygon" , coordinates : t } , e , n ) } function v ( t , e , n ) { return void 0 === n && ( n = { } ) , o ( { type : "GeometryCollection" , geometries : t } , e , n ) } function _ ( t , e ) { if ( void 0 === e && ( e = 0 ) , e && ! ( e >= 0 ) ) throw new Error ( "precision must be a positive number" ) ; var n = Math . pow ( 10 , e || 0 ) ; return Math . round ( t * n ) / n } function m ( t , e ) { void 0 === e && ( e = "kilometers" ) ; var r = n [ e ] ; if ( ! r ) throw new Error ( e + " units is invalid" ) ; return t * r } function x ( t , e ) { void 0 === e && ( e = "kilometers" ) ; var r = n [ e ] ; if ( ! r ) throw new Error ( e + " units is invalid" ) ; return t / r } function E ( t , e ) { return w ( x ( t , e ) ) } function b ( t ) { var e = t % 360 ; return e < 0 && ( e += 360 ) , e } function w ( t ) { return 180 * ( t % ( 2 * Math . PI ) ) / Math . PI } function I ( t ) { return t % 360 * Math . PI / 180 } function N ( t , e , n ) { if ( void 0 === e && ( e = "kilometers" ) , void 0 === n && ( n = "kilometers" ) , ! ( t >= 0 ) ) throw new Error ( "length must be a positive number" ) ; return m ( x ( t , e ) , n ) } function S ( t , e , n ) { if ( void 0 === e && ( e = "meters" ) , void 0 === n && ( n = "kilometers" ) , ! ( t >= 0 ) ) throw new Error ( "area must be a positive number" ) ; var r = i [ e ] ; if ( ! r ) throw new Error ( "invalid original units" ) ; var o = i [ n ] ; if ( ! o ) throw new Error ( "invalid final units" ) ; return t / r * o } function C ( t ) { return ! isNaN ( t ) && null !== t && ! Array . isArray ( t ) } function P ( t ) { r
/ *
object - assign
( c ) Sindre Sorhus
@ license MIT
* / f u n c t i o n l t ( t ) { i f ( n u l l = = t ) t h r o w n e w T y p e E r r o r ( " O b j e c t . a s s i g n c a n n o t b e c a l l e d w i t h n u l l o r u n d e f i n e d " ) ; r e t u r n O b j e c t ( t ) } v a r c t = f u n c t i o n ( ) { t r y { i f ( ! O b j e c t . a s s i g n ) r e t u r n ! 1 ; v a r t = n e w S t r i n g ( " a b c " ) ; i f ( t [ 5 ] = " d e " , " 5 " = = = O b j e c t . g e t O w n P r o p e r t y N a m e s ( t ) [ 0 ] ) r e t u r n ! 1 ; f o r ( v a r e = { } , n = 0 ; n < 1 0 ; n + + ) e [ " _ " + S t r i n g . f r o m C h a r C o d e ( n ) ] = n ; i f ( " 0 1 2 3 4 5 6 7 8 9 " ! = = O b j e c t . g e t O w n P r o p e r t y N a m e s ( e ) . m a p ( ( f u n c t i o n ( t ) { r e t u r n e [ t ] } ) ) . j o i n ( " " ) ) r e t u r n ! 1 ; v a r r = { } ; r e t u r n " a b c d e f g h i j k l m n o p q r s t " . s p l i t ( " " ) . f o r E a c h ( ( f u n c t i o n ( t ) { r [ t ] = t } ) ) , " a b c d e f g h i j k l m n o p q r s t " = = = O b j e c t . k e y s ( O b j e c t . a s s i g n ( { } , r ) ) . j o i n ( " " ) } c a t c h ( t ) { r e t u r n ! 1 } } ( ) ? O b j e c t . a s s i g n : f u n c t i o n ( t , e ) { f o r ( v a r n , r , i = l t ( t ) , o = 1 ; o < a r g u m e n t s . l e n g t h ; o + + ) { f o r ( v a r s i n n = O b j e c t ( a r g u m e n t s [ o ] ) ) a t . c a l l ( n , s ) & & ( i [ s ] = n [ s ] ) ; i f ( s t ) { r = s t ( n ) ; f o r ( v a r a = 0 ; a < r . l e n g t h ; a + + ) u t . c a l l ( n , r [ a ] ) & & ( i [ r [ a ] ] = n [ r [ a ] ] ) } } r e t u r n i } , h t = { s u c c e s s C a l l b a c k : n u l l , v e r b o s e : ! 1 } , p t = { } ;
/ * *
* @ license GNU Affero General Public License .
* Copyright ( c ) 2015 , 2015 Ronny Lorenz < ronny @ tbi . univie . ac . at >
* v . 1.2 . 0
* https : //github.com/RaumZeit/MarchingSquares.js
*
* MarchingSquaresJS is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* MarchingSquaresJS is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Affero General Public License for more details .
*
* As additional permission under GNU Affero General Public License version 3
* section 7 , third - party projects ( personal or commercial ) may distribute ,
* include , or link against UNMODIFIED VERSIONS of MarchingSquaresJS without the
* requirement that said third - party project for that reason alone becomes
* subject to any requirement of the GNU Affero General Public License version 3.
* Any modifications to MarchingSquaresJS , however , must be shared with the public
* and made available .
*
* In summary this :
* - allows you to use MarchingSquaresJS at no cost
* - allows you to use MarchingSquaresJS for both personal and commercial purposes
* - allows you to distribute UNMODIFIED VERSIONS of MarchingSquaresJS under any
* license as long as this license notice is included
* - enables you to keep the source code of your program that uses MarchingSquaresJS
* undisclosed
* - forces you to share any modifications you have made to MarchingSquaresJS ,
* e . g . bug - fixes
*
* You should have received a copy of the GNU Affero General Public License
* along with MarchingSquaresJS . If not , see < http : //www.gnu.org/licenses/>.
* / f u n c t i o n f t ( t , e , n ) { n = n | | { } ; f o r ( v a r r = O b j e c t . k e y s ( h t ) , i = 0 ; i < r . l e n g t h ; i + + ) { v a r o = r [ i ] , s = n [ o ] ; s = n u l l ! = s ? s : h t [ o ] , p t [ o ] = s } p t . v e r b o s e & & c o n s o l e . l o g ( " M a r c h i n g S q u a r e s J S - i s o C o n t o u r s : c o m p u t i n g i s o c o n t o u r f o r " + e ) ; v a r a = f u n c t i o n ( t ) { v a r e = [ ] , n = 0 , r = 1 e - 7 ; r e t u r n t . c e l l s . f o r E a c h ( ( f u n c t i o n ( i , o ) { i . f o r E a c h ( ( f u n c t i o n ( i , s ) { i f ( v o i d 0 ! = = i & & ( 5 ! = = ( f = i ) . c v a l & & 1 0 ! = = f . c v a l ) & & ! d t ( i ) ) { v a r a = f u n c t i o n ( t , e , n ) { v a r r , i , o = t . l e n g t h , s = [ ] , a = [ 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , - 1 , 0 , 1 , 1 , - 1 , 0 , - 1 , 0 ] , u = [ 0 , - 1 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , - 1 , 0 , 0 , 0 , - 1 , 0 , 0 ] , l = [ " n o n e " , " l e f t " , " b o t t o m " , " l e f t " , " r i g h t " , " n o n e " , " b o t t o m " , " l e f t " , " t o p " , " t o p " , " n o n e " , " t o p " , " r i g h t " , " r i g h t " , " b o t t o m " , " n o n e " ] , c = [ " n o n e " , " b o t t o m " , " r i g h t " , " r i g h t " , " t o p " , " t o p " , " t o p " , " t o p " , " l e f t " , " b o t t o m " , " r i g h t " , " r i g h t " , " l e f t " , " b o t t o m " , " l e f t " , " n o n e " ] , h = t [ e ] [ n ] , p = h . c v a l , f = l [ p ] , g = v t ( h , f ) ; s . p u s h ( [ n + g [ 0 ] , e + g [ 1 ] ] ) , f = c [ p ] , g = v t ( h , f ) , s . p u s h ( [ n + g [ 0 ] , e + g [ 1 ] ] ) , y t ( h ) ; v a r d = n + a [ p ] , y = e + u [ p ] , v = p ; f o r ( ; d > = 0 & & y > = 0 & & y < o & & ( d ! = n | | y ! = e ) & & v o i d 0 ! = = ( h = t [ y ] [ d ] ) ; ) { i f ( 0 = = = ( p = h . c v a l ) | | 1 5 = = = p ) r e t u r n { p a t h : s , i n f o : " m e r g e a b l e " } ; f = c [ p ] , r = a [ p ] , i = u [ p ] , 5 ! = = p & & 1 0 ! = = p | | ( 5 = = = p ? h . f l i p p e d ? - 1 = = = u [ v ] ? ( f = " l e f t " , r = - 1 , i = 0 ) : ( f = " r i g h t " , r = 1 , i = 0 ) : - 1 = = = a [ v ] & & ( f = " b o t t o m " , r = 0 , i = - 1 ) : 1 0 = = = p & & ( h . f l i p p e d ? - 1 = = = a [ v ] ? ( f = " t o p " , r = 0 , i = 1 ) : ( f = " b o t t o m " , r = 0 , i = - 1 ) : 1 = = = u [ v ] & & ( f = " l e f t " , r = - 1 , i = 0 ) ) ) , g = v t ( h , f ) , s . p u s h ( [ d + g [ 0 ] , y + g [ 1 ] ] ) , y t ( h ) , d + = r , y + = i , v = p } r e t u r n { p a t h : s , i n f o : " c l o s e d " } } ( t . c e l l s , o , s ) , u = ! 1 ; i f ( " m e r g e a b l e " = = = a . i n f o ) f o r ( v a r l = a . p a t h [ a . p a t h . l e n g t h - 1 ] [ 0 ] , c = a . p a t h [ a . p a t h . l e n g t h - 1 ] [ 1 ] , h = n - 1 ; h > = 0 ; h - - ) i f ( M a t h . a b s ( e [ h ] [ 0 ] [ 0 ] - l ) < = r & & M a t h . a b s ( e [ h ] [ 0 ] [ 1 ] - c ) < = r ) { f o r ( v a r p = a . p a t h . l e n g t h - 2 ; p > = 0 ; - - p ) e [ h ] . u n s h i f t ( a . p a t h [ p ] ) ; u = ! 0 ; b r e a k } u | | ( e [ n + + ] = a . p a t h ) } v a r f } ) ) } ) ) , e } ( f u n c t i o n ( t , e ) { f o r ( v a r n = t . l e n g t h - 1 , r = t [ 0 ] . l e n g t h - 1 , i = { r o w s : n , c o l s : r , c e l l s : [ ] } , o = 0 ; o < n ; + + o ) { i . c e l l s [ o ] = [ ] ; f o r ( v a r s = 0 ; s < r ; + + s ) { v a r a = 0 , u = t [ o + 1 ] [ s ] , l = t [ o + 1 ] [ s + 1 ] , c = t [ o ] [ s + 1 ] , h = t [ o ] [ s ] ; i f ( ! ( i s N a N ( u ) | | i s N a N ( l ) | | i s N a N ( c ) | | i s N a N ( h ) ) ) { a | = u > = e ? 8 : 0 , a | = l > = e ? 4 : 0 , a | = c > = e ? 2 : 0 ; v a r p , f , g , d , y = ! 1 ; i f ( 5 = = = ( a | = h > = e ? 1 : 0 ) | | 1 0 = = = a ) { v a r v = ( u + l + c + h ) / 4 ; 5 = = = a & & v < e ? ( a = 1 0 , y = ! 0 ) : 1 0 = = = a & & v < e & & ( a = 5 , y = ! 0 ) } i f ( 0 ! = = a & & 1 5 ! = = a ) p = f = g = d = . 5 , 1 = = = a ? ( g = 1 - g t ( e , u , h ) , f = 1 - g t ( e , c , h ) ) : 2 = = = a ? ( f = g t ( e , h , c ) , d = 1 - g t ( e , l , c ) ) : 3 = = = a ? ( g = 1 - g t ( e , u , h ) , d = 1 - g t ( e , l , c ) ) : 4 = = = a ? ( p = g t ( e , u , l ) , d = g t ( e , c , l ) ) : 5 = = = a ? ( p = g t ( e , u , l ) , d = g t ( e , c , l ) , f = 1 - g t ( e , c , h ) , g = 1 - g t ( e , u , h ) ) : 6 = = = a ? ( f = g t ( e , h , c ) , p = g t ( e , u , l ) ) : 7 = = = a ? ( g = 1 - g t ( e , u , h ) , p = g t ( e , u , l ) ) : 8 = = = a ? ( g = g t ( e , h , u ) , p = 1 - g t ( e , l , u ) ) : 9 = = = a ? ( f = 1 - g t ( e , c , h ) , p = 1 - g t ( e , l , u ) ) : 1 0 = = = a ? ( p = 1 - g t ( e , l , u ) , d = 1 - g t ( e , l , c ) , f = g t ( e , h , c ) , g = g t ( e , h , u ) ) : 1 1 = = = a ? ( p = 1 - g t ( e , l , u ) , d = 1 - g t ( e , l , c ) ) : 1 2 = = = a ? ( g = g t ( e , h , u ) , d = g t ( e , c , l ) ) : 1 3 = = = a ? ( f = 1 - g t ( e , c , h ) , d = g t ( e , c , l ) ) : 1 4 = = = a ? ( g = g t ( e , h , u ) , f = g t ( e , h , c ) ) : c o n s o l e . l o g ( " M a r c h i n g S q u a r e s J S - i s o C o n t o u r s : I l l e g a l c v a l d e t e c t e d : " + a ) , i . c e l l s [ o ] [ s ] = { c v a l : a , f l i p p e d : y , t o p : p , r i g h t : d , b o t t o m : f , l e f t : g } } } } r e t u r n i } ( t , e ) ) ; r e t u r n " f u n c t i o n " = = t y p e o f p t . s u c c e s s C a l l b a c k & & p t . s u c c e s s C a l l b a c k ( a ) , a } f u n c t i o n g t ( t , e , n ) { r e t u r n ( t - e ) / ( n - e ) } f u n c t i o n d t ( t ) { r e t u r n 0 = = = t . c v a l | | 1 5 = = = t . c v a l } f u n c t i o n y t ( t ) { d t ( t ) | | 5 = = = t . c v a l | | 1 0 = = = t . c v a l | | ( t . c v a l = 1 5 ) } f u n c t i o n v t ( t , e ) { r e t u r n " t o p " = = = e ? [ t . t o p , 1 ] : " b o t t o m " = = = e ? [ t . b o t t o m , 0 ] : " r i g h t " = = = e ? [ 1 , t . r i g h t ] : " l e f t " = = = e ? [ 0 , t . l e f t ] : v o i d 0 } f u n c t i o n _ t ( t , e ) { i f ( ! P ( e = e | | { } ) ) t h r o w n e w E r r o r ( " o p t i o n s i s i n v a l i d " ) ; v a r n = e . z P r o p e r t y | | " e l e v a t i o n " , r = e . f l i p , i = e . f l a g s ; n t ( t , " P o i n t " , " i n p u t m u s t c o n t a i n P o i n t s " ) ; f o r ( v a r o = f u n c t i o n ( t , e ) { v a r n = { } ; r e t u r n F ( t , ( f u n c t i o n ( t ) { v a r e = Q ( t ) [ 1 ] ; n [ e ] | | ( n [ e ] = [ ] ) , n [ e ] . p u s h ( t ) } ) ) , O b j e c t . k e y s ( n ) . m a p ( ( f u n c t i o n ( t ) { r e t u r n n [ t ] . s o r t ( ( f u n c t i o n ( t , e ) { r e t u r n Q ( t ) [ 0 ] - Q ( e ) [ 0 ] } ) ) } ) ) . s o r t ( ( f u n c t i o n ( t , n ) { r e t u r n e ? Q ( t [ 0 ] ) [ 1 ] - Q ( n [ 0 ] ) [ 1 ] : Q ( n [ 0 ] ) [ 1 ] - Q ( t [ 0 ] ) [ 1 ] } ) ) } ( t , r ) , s = [ ] , a = 0 ; a < o . l e n g t h ; a + + ) { f o r ( v a r u = o [ a ] , l = [ ] , c = 0 ; c < u . l e n g t h ; c + + ) { v a r h = u [ c ] ; h . p r o p e r t i e s [ n ] ? l . p u s h ( h . p r o p e r t i e s [ n ] ) : l . p u s h ( 0 ) , ! 0 = = = i & & ( h . p r o p e r t i e s . m a t r i x P o s i t i o n = [ a , c ] ) } s . p u s h ( l ) } r e t u r n s } v a r m t = E t , x t = E t ; f u n c t i o n E t ( t , e , n , r , i ) { b t ( t , e , n | | 0 , r | | t . l e n g t h - 1 , i | | I t ) } f u n c t i o n b t ( t , e , n , r , i ) { f o r ( ; r > n ; ) { i f ( r - n > 6 0 0 ) { v a r o = r - n + 1 , s = e - n + 1 , a = M a t h . l o g ( o ) , u = . 5 * M a t h . e x p ( 2 * a / 3 ) , l = . 5 * M a t h . s q r t ( a * u * ( o - u ) / o ) * ( s - o / 2 < 0 ? - 1 : 1 ) ; b t ( t , e , M a t h . m a x ( n , M a t h . f l o o r ( e - s * u / o + l ) ) , M a t h . m i n ( r , M a t h . f l o o r ( e + ( o - s ) * u / o + l ) ) , i ) } v a r c = t [ e ] , h = n , p = r ; f o r ( w t ( t , n , e ) , i ( t [ r ] , c ) > 0 & & w t ( t , n , r ) ; h < p ; ) { f o r ( w t ( t , h , p ) , h + + , p - - ; i ( t [ h ] , c ) < 0 ; ) h + + ; f o r ( ; i ( t [ p ] , c ) > 0 ; ) p - - } 0 = = = i ( t [ n ] , c ) ? w t ( t , n , p ) : w t ( t , + + p , r
/ * !
* @ license GNU Affero General Public License .
* Copyright ( c ) 2015 , 2015 Ronny Lorenz < ronny @ tbi . univie . ac . at >
* v . 1.2 . 0
* https : //github.com/RaumZeit/MarchingSquares.js
*
* MarchingSquaresJS is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* MarchingSquaresJS is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Affero General Public License for more details .
*
* As additional permission under GNU Affero General Public License version 3
* section 7 , third - party projects ( personal or commercial ) may distribute ,
* include , or link against UNMODIFIED VERSIONS of MarchingSquaresJS without the
* requirement that said third - party project for that reason alone becomes
* subject to any requirement of the GNU Affero General Public License version 3.
* Any modifications to MarchingSquaresJS , however , must be shared with the public
* and made available .
*
* In summary this :
* - allows you to use MarchingSquaresJS at no cost
* - allows you to use MarchingSquaresJS for both personal and commercial purposes
* - allows you to distribute UNMODIFIED VERSIONS of MarchingSquaresJS under any
* license as long as this license notice is included
* - enables you to keep the source code of your program that uses MarchingSquaresJS
* undisclosed
* - forces you to share any modifications you have made to MarchingSquaresJS ,
* e . g . bug - fixes
*
* You should have received a copy of the GNU Affero General Public License
* along with MarchingSquaresJS . If not , see < http : //www.gnu.org/licenses/>.
* / ( t , r ) , s = [ ] , a = 0 ; a < o . l e n g t h ; a + + ) { f o r ( v a r u = o [ a ] , l = [ ] , c = 0 ; c < u . l e n g t h ; c + + ) { v a r h = u [ c ] ; h . p r o p e r t i e s [ n ] ? l . p u s h ( h . p r o p e r t i e s [ n ] ) : l . p u s h ( 0 ) , ! 0 = = = i & & ( h . p r o p e r t i e s . m a t r i x P o s i t i o n = [ a , c ] ) } s . p u s h ( l ) } r e t u r n s } v a r K i = { s u c c e s s C a l l b a c k : n u l l , v e r b o s e : ! 1 , p o l y g o n s : ! 1 } , Q i = { } ; f u n c t i o n $ i ( t , e , n , r ) { r = r | | { } ; f o r ( v a r i = O b j e c t . k e y s ( K i ) , o = 0 ; o < i . l e n g t h ; o + + ) { v a r s = i [ o ] , a = r [ s ] ; a = n u l l ! = a ? a : K i [ s ] , Q i [ s ] = a } Q i . v e r b o s e & & c o n s o l e . l o g ( " M a r c h i n g S q u a r e s J S - i s o B a n d s : c o m p u t i n g i s o b a n d s f o r [ " + e + " : " + ( e + n ) + " ] " ) ; v a r u , l = f u n c t i o n ( t , e , n ) { f o r ( v a r r = t . l e n g t h - 1 , i = t [ 0 ] . l e n g t h - 1 , o = { r o w s : r , c o l s : i , c e l l s : [ ] } , s = e + M a t h . a b s ( n ) , a = 0 ; a < r ; + + a ) { o . c e l l s [ a ] = [ ] ; f o r ( v a r u = 0 ; u < i ; + + u ) { v a r l = 0 , c = t [ a + 1 ] [ u ] , h = t [ a + 1 ] [ u + 1 ] , p = t [ a ] [ u + 1 ] , f = t [ a ] [ u ] ; i f ( ! ( i s N a N ( c ) | | i s N a N ( h ) | | i s N a N ( p ) | | i s N a N ( f ) ) ) { l | = c < e ? 0 : c > s ? 1 2 8 : 6 4 , l | = h < e ? 0 : h > s ? 3 2 : 1 6 , l | = p < e ? 0 : p > s ? 8 : 4 ; v a r g = + ( l | = f < e ? 0 : f > s ? 2 : 1 ) , d = 0 ; i f ( 1 7 = = = l | | 1 8 = = = l | | 3 3 = = = l | | 3 4 = = = l | | 3 8 = = = l | | 6 8 = = = l | | 7 2 = = = l | | 9 8 = = = l | | 1 0 2 = = = l | | 1 3 2 = = = l | | 1 3 6 = = = l | | 1 3 7 = = = l | | 1 5 2 = = = l | | 1 5 3 = = = l ) { v a r y = ( c + h + p + f ) / 4 ; d = y > s ? 2 : y < e ? 0 : 1 , 3 4 = = = l ? 1 = = = d ? l = 3 5 : 0 = = = d & & ( l = 1 3 6 ) : 1 3 6 = = = l ? 1 = = = d ? ( l = 3 5 , d = 4 ) : 0 = = = d & & ( l = 3 4 ) : 1 7 = = = l ? 1 = = = d ? ( l = 1 5 5 , d = 4 ) : 0 = = = d & & ( l = 1 5 3 ) : 6 8 = = = l ? 1 = = = d ? ( l = 1 0 3 , d = 4 ) : 0 = = = d & & ( l = 1 0 2 ) : 1 5 3 = = = l ? 1 = = = d & & ( l = 1 5 5 ) : 1 0 2 = = = l ? 1 = = = d & & ( l = 1 0 3 ) : 1 5 2 = = = l ? d < 2 & & ( l = 1 5 6 , d = 1 ) : 1 3 7 = = = l ? d < 2 & & ( l = 1 3 9 , d = 1 ) : 9 8 = = = l ? d < 2 & & ( l = 9 9 , d = 1 ) : 3 8 = = = l ? d < 2 & & ( l = 3 9 , d = 1 ) : 1 8 = = = l ? d > 0 ? ( l = 1 5 6 , d = 4 ) : l = 1 5 2 : 3 3 = = = l ? d > 0 ? ( l = 1 3 9 , d = 4 ) : l = 1 3 7 : 7 2 = = = l ? d > 0 ? ( l = 9 9 , d = 4 ) : l = 9 8 : 1 3 2 = = = l & & ( d > 0 ? ( l = 3 9 , d = 4 ) : l = 3 8 ) } i f ( 0 ! = l & & 1 7 0 ! = l ) { v a r v , _ , m , x , E , b , w , I ; v = _ = m = x = E = b = w = I = . 5 ; v a r N = [ ] ; 1 = = = l ? ( m = 1 - V o ( e , p , f ) , I = 1 - V o ( e , c , f ) , N . p u s h ( G o [ l ] ) ) : 1 6 9 = = = l ? ( m = V o ( s , f , p ) , I = V o ( s , f , c ) , N . p u s h ( G o [ l ] ) ) : 4 = = = l ? ( b = 1 - V o ( e , h , p ) , x = V o ( e , f , p ) , N . p u s h ( F o [ l ] ) ) : 1 6 6 = = = l ? ( b = V o ( s , p , h ) , x = 1 - V o ( s , p , f ) , N . p u s h ( F o [ l ] ) ) : 1 6 = = = l ? ( E = V o ( e , p , h ) , _ = V o ( e , c , h ) , N . p u s h ( D o [ l ] ) ) : 1 5 4 = = = l ? ( E = 1 - V o ( s , h , p ) , _ = 1 - V o ( s , h , c ) , N . p u s h ( D o [ l ] ) ) : 6 4 = = = l ? ( w = V o ( e , f , c ) , v = 1 - V o ( e , h , c ) , N . p u s h ( B o [ l ] ) ) : 1 0 6 = = = l ? ( w = 1 - V o ( s , c , f ) , v = V o ( s , c , h ) , N . p u s h ( B o [ l ] ) ) : 1 6 8 = = = l ? ( x = V o ( s , f , p ) , m = V o ( e , f , p ) , I = V o ( e , f , c ) , w = V o ( s , f , c ) , N . p u s h ( k o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 2 = = = l ? ( x = 1 - V o ( e , p , f ) , m = 1 - V o ( s , p , f ) , I = 1 - V o ( s , c , f ) , w = 1 - V o ( e , c , f ) , N . p u s h ( k o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 1 6 2 = = = l ? ( E = V o ( s , p , h ) , b = V o ( e , p , h ) , x = 1 - V o ( e , p , f ) , m = 1 - V o ( s , p , f ) , N . p u s h ( k o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 8 = = = l ? ( E = 1 - V o ( e , h , p ) , b = 1 - V o ( s , h , p ) , x = V o ( s , f , p ) , m = V o ( e , f , p ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 1 3 8 = = = l ? ( E = 1 - V o ( e , h , p ) , b = 1 - V o ( s , h , p ) , v = 1 - V o ( s , h , c ) , _ = 1 - V o ( e , h , c ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 3 2 = = = l ? ( E = V o ( s , p , h ) , b = V o ( e , p , h ) , v = V o ( e , c , h ) , _ = V o ( s , c , h ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 4 2 = = = l ? ( I = 1 - V o ( s , c , f ) , w = 1 - V o ( e , c , f ) , v = V o ( e , c , h ) , _ = V o ( s , c , h ) , N . p u s h ( q o [ l ] ) , N . p u s h ( B o [ l ] ) ) : 1 2 8 = = = l & & ( I = V o ( e , f , c ) , w = V o ( s , f , c ) , v = 1 - V o ( s , h , c ) , _ = 1 - V o ( e , h , c ) , N . p u s h ( q o [ l ] ) , N . p u s h ( B o [ l ] ) ) , 5 = = = l ? ( b = 1 - V o ( e , h , p ) , I = 1 - V o ( e , c , f ) , N . p u s h ( F o [ l ] ) ) : 1 6 5 = = = l ? ( b = V o ( s , p , h ) , I = V o ( s , f , c ) , N . p u s h ( F o [ l ] ) ) : 2 0 = = = l ? ( x = V o ( e , f , p ) , _ = V o ( e , c , h ) , N . p u s h ( k o [ l ] ) ) : 1 5 0 = = = l ? ( x = 1 - V o ( s , p , f ) , _ = 1 - V o ( s , h , c ) , N . p u s h ( k o [ l ] ) ) : 8 0 = = = l ? ( E = V o ( e , p , h ) , w = V o ( e , f , c ) , N . p u s h ( D o [ l ] ) ) : 9 0 = = = l ? ( E = 1 - V o ( s , h , p ) , w = 1 - V o ( s , c , f ) , N . p u s h ( D o [ l ] ) ) : 6 5 = = = l ? ( m = 1 - V o ( e , p , f ) , v = 1 - V o ( e , h , c ) , N . p u s h ( G o [ l ] ) ) : 1 0 5 = = = l ? ( m = V o ( s , f , p ) , v = V o ( s , c , h ) , N . p u s h ( G o [ l ] ) ) : 1 6 0 = = = l ? ( E = V o ( s , p , h ) , b = V o ( e , p , h ) , I = V o ( e , f , c ) , w = V o ( s , f , c ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 1 0 = = = l ? ( E = 1 - V o ( e , h , p ) , b = 1 - V o ( s , h , p ) , I = 1 - V o ( s , c , f ) , w = 1 - V o ( e , c , f ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 1 3 0 = = = l ? ( x = 1 - V o ( e , p , f ) , m = 1 - V o ( s , p , f ) , v = 1 - V o ( s , h , c ) , _ = 1 - V o ( e , h , c ) , N . p u s h ( k o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 4 0 = = = l ? ( x = V o ( s , f , p ) , m = V o ( e , f , p ) , v = V o ( e , c , h ) , _ = V o ( s , c , h ) , N . p u s h ( k o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 1 0 1 = = = l ? ( b = V o ( s , p , h ) , v = V o ( s , c , h ) , N . p u s h ( F o [ l ] ) ) : 6 9 = = = l ? ( b = 1 - V o ( e , h , p ) , v = 1 - V o ( e , h , c ) , N . p u s h ( F o [ l ] ) ) : 1 4 9 = = = l ? ( I = V o ( s , f , c ) , _ = 1 - V o ( s , h , c ) , N . p u s h ( q o [ l ] ) ) : 2 1 = = = l ? ( I = 1 - V o ( e , c , f ) , _ = V o ( e , c , h ) , N . p u s h ( q o [ l ] ) ) : 8 6 = = = l ? ( x = 1 - V o ( s , p , f ) , w = 1 - V o ( s , c , f ) , N . p u s h ( k o [ l ] ) ) : 8 4 = = = l ? ( x = V o ( e , f , p ) , w = V o ( e , f , c ) , N . p u s h ( k o [ l ] ) ) : 8 9 = = = l ? ( E = 1 - V o ( s , h , p ) , m = V o ( s , f , p ) , N . p u s h ( G o [ l ] ) ) : 8 1 = = = l ? ( E = V o ( e , p , h ) , m = 1 - V o ( e , p , f ) , N . p u s h ( G o [ l ] ) ) : 9 6 = = = l ? ( E = V o ( s , p , h ) , b = V o ( e , p , h ) , w = V o ( e , f , c ) , v = V o ( s , c , h ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 7 4 = = = l ? ( E = 1 - V o ( e , h , p ) , b = 1 - V o ( s , h , p ) , w = 1 - V o ( s , c , f ) , v = 1 - V o ( e , h , c ) , N . p u s h ( D o [ l ] ) , N . p u s h ( F o [ l ] ) ) : 2 4 = = = l ? ( E = 1 - V o ( s , h , p ) , x = V o ( s , f , p ) , m = V o ( e , f , p ) , _ = V o ( e , c , h ) , N . p u s h ( D o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 1 4 6 = = = l ? ( E = V o ( e , p , h ) , x = 1 - V o ( e , p , f ) , m = 1 - V o ( s , p , f ) , _ = 1 - V o ( s , h , c ) , N . p u s h ( D o [ l ] ) , N . p u s h ( G o [ l ] ) ) : 6 = = = l ? ( b = 1 - V o ( e , h , p ) , x = 1 - V o ( s , p , f ) , I =
/ * *
* splaytree v3 . 1.0
* Fast Splay tree for Node and browser
*
* @ author Alexander Milevski < info @ w8r . name >
* @ license MIT
* @ preserve
* / f u n c t i o n f u ( t , e ) { r e t u r n t > e ? 1 : t < e ? - 1 : 0 } f u n c t i o n g u ( t , e , n ) { f o r ( v a r r = n e w p u ( n u l l , n u l l ) , i = r , o = r ; ; ) { v a r s = n ( t , e . k e y ) ; i f ( s < 0 ) { i f ( n u l l = = = e . l e f t ) b r e a k ; i f ( n ( t , e . l e f t . k e y ) < 0 ) { v a r a = e . l e f t ; i f ( e . l e f t = a . r i g h t , a . r i g h t = e , n u l l = = = ( e = a ) . l e f t ) b r e a k } o . l e f t = e , o = e , e = e . l e f t } e l s e { i f ( ! ( s > 0 ) ) b r e a k ; i f ( n u l l = = = e . r i g h t ) b r e a k ; i f ( n ( t , e . r i g h t . k e y ) > 0 ) { a = e . r i g h t ; i f ( e . r i g h t = a . l e f t , a . l e f t = e , n u l l = = = ( e = a ) . r i g h t ) b r e a k } i . r i g h t = e , i = e , e = e . r i g h t } } r e t u r n i . r i g h t = e . l e f t , o . l e f t = e . r i g h t , e . l e f t = r . r i g h t , e . r i g h t = r . l e f t , e } f u n c t i o n d u ( t , e , n , r ) { v a r i = n e w p u ( t , e ) ; i f ( n u l l = = = n ) r e t u r n i . l e f t = i . r i g h t = n u l l , i ; v a r o = r ( t , ( n = g u ( t , n , r ) ) . k e y ) ; r e t u r n o < 0 ? ( i . l e f t = n . l e f t , i . r i g h t = n , n . l e f t = n u l l ) : o > = 0 & & ( i . r i g h t = n . r i g h t , i . l e f t = n , n . r i g h t = n u l l ) , i } f u n c t i o n y u ( t , e , n ) { v a r r = n u l l , i = n u l l ; i f ( e ) { v a r o = n ( ( e = g u ( t , e , n ) ) . k e y , t ) ; 0 = = = o ? ( r = e . l e f t , i = e . r i g h t ) : o < 0 ? ( i = e . r i g h t , e . r i g h t = n u l l , r = e ) : ( r = e . l e f t , e . l e f t = n u l l , i = e ) } r e t u r n { l e f t : r , r i g h t : i } } f u n c t i o n v u ( t , e , n , r , i ) { i f ( t ) { r ( e + ( n ? " └ ─ ─ " : " ├ ─ ─ " ) + i ( t ) + " \ n " ) ; v a r o = e + ( n ? " " : " │ " ) ; t . l e f t & & v u ( t . l e f t , o , ! 1 , r , i ) , t . r i g h t & & v u ( t . r i g h t , o , ! 0 , r , i ) } } v a r _ u = f u n c t i o n ( ) { f u n c t i o n t ( t ) { v o i d 0 = = = t & & ( t = f u ) , t h i s . _ r o o t = n u l l , t h i s . _ s i z e = 0 , t h i s . _ c o m p a r a t o r = t } r e t u r n t . p r o t o t y p e . i n s e r t = f u n c t i o n ( t , e ) { r e t u r n t h i s . _ s i z e + + , t h i s . _ r o o t = d u ( t , e , t h i s . _ r o o t , t h i s . _ c o m p a r a t o r ) } , t . p r o t o t y p e . a d d = f u n c t i o n ( t , e ) { v a r n = n e w p u ( t , e ) ; n u l l = = = t h i s . _ r o o t & & ( n . l e f t = n . r i g h t = n u l l , t h i s . _ s i z e + + , t h i s . _ r o o t = n ) ; v a r r = t h i s . _ c o m p a r a t o r , i = g u ( t , t h i s . _ r o o t , r ) , o = r ( t , i . k e y ) ; r e t u r n 0 = = = o ? t h i s . _ r o o t = i : ( o < 0 ? ( n . l e f t = i . l e f t , n . r i g h t = i , i . l e f t = n u l l ) : o > 0 & & ( n . r i g h t = i . r i g h t , n . l e f t = i , i . r i g h t = n u l l ) , t h i s . _ s i z e + + , t h i s . _ r o o t = n ) , t h i s . _ r o o t } , t . p r o t o t y p e . r e m o v e = f u n c t i o n ( t ) { t h i s . _ r o o t = t h i s . _ r e m o v e ( t , t h i s . _ r o o t , t h i s . _ c o m p a r a t o r ) } , t . p r o t o t y p e . _ r e m o v e = f u n c t i o n ( t , e , n ) { v a r r ; r e t u r n n u l l = = = e ? n u l l : 0 = = = n ( t , ( e = g u ( t , e , n ) ) . k e y ) ? ( n u l l = = = e . l e f t ? r = e . r i g h t : ( r = g u ( t , e . l e f t , n ) ) . r i g h t = e . r i g h t , t h i s . _ s i z e - - , r ) : e } , t . p r o t o t y p e . p o p = f u n c t i o n ( ) { v a r t = t h i s . _ r o o t ; i f ( t ) { f o r ( ; t . l e f t ; ) t = t . l e f t ; r e t u r n t h i s . _ r o o t = g u ( t . k e y , t h i s . _ r o o t , t h i s . _ c o m p a r a t o r ) , t h i s . _ r o o t = t h i s . _ r e m o v e ( t . k e y , t h i s . _ r o o t , t h i s . _ c o m p a r a t o r ) , { k e y : t . k e y , d a t a : t . d a t a } } r e t u r n n u l l } , t . p r o t o t y p e . f i n d S t a t i c = f u n c t i o n ( t ) { f o r ( v a r e = t h i s . _ r o o t , n = t h i s . _ c o m p a r a t o r ; e ; ) { v a r r = n ( t , e . k e y ) ; i f ( 0 = = = r ) r e t u r n e ; e = r < 0 ? e . l e f t : e . r i g h t } r e t u r n n u l l } , t . p r o t o t y p e . f i n d = f u n c t i o n ( t ) { r e t u r n t h i s . _ r o o t & & ( t h i s . _ r o o t = g u ( t , t h i s . _ r o o t , t h i s . _ c o m p a r a t o r ) , 0 ! = = t h i s . _ c o m p a r a t o r ( t , t h i s . _ r o o t . k e y ) ) ? n u l l : t h i s . _ r o o t } , t . p r o t o t y p e . c o n t a i n s = f u n c t i o n ( t ) { f o r ( v a r e = t h i s . _ r o o t , n = t h i s . _ c o m p a r a t o r ; e ; ) { v a r r = n ( t , e . k e y ) ; i f ( 0 = = = r ) r e t u r n ! 0 ; e = r < 0 ? e . l e f t : e . r i g h t } r e t u r n ! 1 } , t . p r o t o t y p e . f o r E a c h = f u n c t i o n ( t , e ) { f o r ( v a r n = t h i s . _ r o o t , r = [ ] , i = ! 1 ; ! i ; ) n u l l ! = = n ? ( r . p u s h ( n ) , n = n . l e f t ) : 0 ! = = r . l e n g t h ? ( n = r . p o p ( ) , t . c a l l ( e , n ) , n = n . r i g h t ) : i = ! 0 ; r e t u r n t h i s } , t . p r o t o t y p e . r a n g e = f u n c t i o n ( t , e , n , r ) { f o r ( v a r i = [ ] , o = t h i s . _ c o m p a r a t o r , s = t h i s . _ r o o t ; 0 ! = = i . l e n g t h | | s ; ) i f ( s ) i . p u s h ( s ) , s = s . l e f t ; e l s e { i f ( o ( ( s = i . p o p ( ) ) . k e y , e ) > 0 ) b r e a k ; i f ( o ( s . k e y , t ) > = 0 & & n . c a l l ( r , s ) ) r e t u r n t h i s ; s = s . r i g h t } r e t u r n t h i s } , t . p r o t o t y p e . k e y s = f u n c t i o n ( ) { v a r t = [ ] ; r e t u r n t h i s . f o r E a c h ( ( f u n c t i o n ( e ) { v a r n = e . k e y ; r e t u r n t . p u s h ( n ) } ) ) , t } , t . p r o t o t y p e . v a l u e s = f u n c t i o n ( ) { v a r t = [ ] ; r e t u r n t h i s . f o r E a c h ( ( f u n c t i o n ( e ) { v a r n = e . d a t a ; r e t u r n t . p u s h ( n ) } ) ) , t } , t . p r o t o t y p e . m i n = f u n c t i o n ( ) { r e t u r n t h i s . _ r o o t ? t h i s . m i n N o d e ( t h i s . _ r o o t ) . k e y : n u l l } , t . p r o t o t y p e . m a x = f u n c t i o n ( ) { r e t u r n t h i s . _ r o o t ? t h i s . m a x N o d e ( t h i s . _ r o o t ) . k e y : n u l l } , t . p r o t o t y p e . m i n N o d e = f u n c t i o n ( t ) { i f ( v o i d 0 = = = t & & ( t = t h i s . _ r o o t ) , t ) f o r ( ; t . l e f t ; ) t = t . l e f t ; r e t u r n t } , t . p r o t o t y p e . m a x N o d e = f u n c t i o n ( t ) { i f ( v o i d 0 = = = t & & ( t = t h i s . _ r o o t ) , t ) f o r ( ; t . r i g h t ; ) t = t . r i g h t ; r e t u r n t } , t . p r o t o t y p e . a t = f u n c t i o n ( t ) { f o r ( v a r e = t h i s . _ r o o t , n = ! 1 , r = 0 , i = [ ] ; ! n ; ) i f ( e ) i . p u s h ( e ) , e = e . l e f t ; e l s e i f ( i . l e n g t h > 0 ) { i f ( e = i . p o p ( ) , r = = = t ) r e t u r n e ; r + + , e = e . r i g h t } e l s e n = ! 0 ; r e t u r n n u l l } , t . p r o t o t y p e . n e x t = f u n c t i o n ( t ) { v a r e = t h i s . _ r o o t , n = n u l l ; i f ( t . r i g h t ) { f o r ( n = t . r i g h t ; n . l e f t ; ) n = n . l e f t ; r e t u r n n } f o r ( v a r r = t h i s . _ c o m p a r a t o r ; e ; ) { v a r i = r ( t . k e y , e . k e y ) ; i f ( 0 = = = i ) b r e a k ; i < 0 ? ( n = e , e = e . l e f t ) : e = e . r i g h t } r e t u r n n } , t . p r o t o t y p e . p r e v = f u n c t i o n ( t ) { v a r e = t h i s . _ r o o t , n = n u l l ; i f ( n u l l ! = = t . l e f t ) { f o r ( n = t . l e f t ; n . r i g h t ; ) n = n . r i g h t ; r e t u r n n } f o r ( v a r r = t h i s . _ c o m p a r a t o r ; e ; ) { v a r i = r ( t . k e y , e . k e y ) ; i f ( 0 = = = i ) b r e a k ; i < 0 ? e = e . l e f t : ( n = e , e = e . r i g h t ) } r e t u r n n } , t . p r o t o t y p e . c l e a r = f u n c t i o n ( ) { r e t u r n t h i s . _ r o o t = n u l