1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-18 20:59:39 +02:00
Maybe/vendor/javascript/d3-geo.js

5 lines
43 KiB
JavaScript
Raw Normal View History

// d3-geo@3.1.1 downloaded from https://ga.jspm.io/npm:d3-geo@3.1.1/src/index.js
import{Adder as n,merge as t,range as r}from"d3-array";var e=1e-6;var i=1e-12;var o=Math.PI;var a=o/2;var c=o/4;var u=o*2;var l=180/o;var s=o/180;var f=Math.abs;var p=Math.atan;var g=Math.atan2;var h=Math.cos;var d=Math.ceil;var v=Math.exp;Math.floor;var m=Math.hypot;var E=Math.log;var S=Math.pow;var y=Math.sin;var R=Math.sign||function(n){return n>0?1:n<0?-1:0};var w=Math.sqrt;var P=Math.tan;function acos(n){return n>1?0:n<-1?o:Math.acos(n)}function asin(n){return n>1?a:n<-1?-a:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&M.hasOwnProperty(n.type)&&M[n.type](n,t)}var j={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=0?1:-1,i=e*r,o=h(t),a=y(t),u=$*a,l=q*o+u*h(i),f=u*e*y(i);b.add(g(f,l));C=n,q=o,$=a}function area(t){_=new n;geoStream(t,N);return _*2}function spherical(n){return[g(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=h(r);return[e*h(t),e*y(t),y(r)]}function cartesianDot(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function cartesianCross(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function cartesianAddInPlace(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function cartesianScale(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function cartesianNormalizeInPlace(n){var t=w(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var I,A,z,F,T,U,G,k,H,W,D;var O={point:boundsPoint$1,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){O.point=boundsRingPoint;O.lineStart=boundsRingStart;O.lineEnd=boundsRingEnd;H=new n;N.polygonStart()},polygonEnd:function(){N.polygonEnd();O.point=boundsPoint$1;O.lineStart=boundsLineStart;O.lineEnd=boundsLineEnd;b<0?(I=-(z=180),A=-(F=90)):H>e?F=90:H<-e&&(A=-90);D[0]=I,D[1]=z},sphere:function(){I=-(z=180),A=-(F=90)}};function boundsPoint$1(n,t){W.push(D=[I=n,z=n]);t<A&&(A=t);t>F&&(F=t)}function linePoint(n,t){var r=cartesian([n*s,t*s]);if(k){var e=cartesianCross(k,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a,c=n-T,u=c>0?1:-1,p=o[0]*l*u,g=f(c)>180;if(g^(u*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(z=n)}else n>T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n)}else W.push(D=[I=n,z=n]);t<A&&(A=t);t>F&&(F=t);k=r,T=n}function boundsLineStart(){O.point=linePoint}function boundsLineEnd(){D[0]=I,D[1]=z;O.point=bo