define(["./buildModuleUrl-dba4ec07","./Cartesian2-1b9b0d8a","./Cartographic-1bbcab04","./Check-3aa71481","./when-515d5295","./Rectangle-e170be8b","./Intersect-53434a77","./Math-5e38123d","./ArcType-98a7a011","./arrayRemoveDuplicates-a4c6347e","./ComponentDatatype-d430c7f7","./EllipsoidGeodesic-e5406761","./EllipsoidRhumbLine-f50fdea6","./EncodedCartesian3-d74c1b81","./GeometryAttribute-9bc31a7f","./IntersectionTests-5fa33dbd","./PrimitiveType-b38a4004","./Plane-92c15089","./WebMercatorProjection-aa5a37a5","./Event-9821f5d9","./RuntimeError-350acae3","./WebGLConstants-77a84876","./FeatureDetection-7fae0d5a","./Cartesian4-034d54d5"],(function(e,a,t,n,i,r,o,s,l,c,u,h,p,d,g,f,w,m,v,y,_,T,b,D){"use strict";function E(e){e=i.e(e,{}),this._ellipsoid=i.e(e.ellipsoid,r.n.WGS84),this._rectangle=i.e(e.rectangle,r.s.MAX_VALUE),this._projection=new o.s(this._ellipsoid),this._numberOfLevelZeroTilesX=i.e(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=i.e(e.numberOfLevelZeroTilesY,1),this._customDPI=e.customDPI,this._scaleDenominators=e.scaleDenominators,this._tileWidth=i.e(e.tileWidth,256),this._tileHeight=i.e(e.tileHeight,256),this._beginLevel=i.e(e.beginLevel,0)}Object.defineProperties(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}},beginLevel:{get:function(){return this._beginLevel}}}),E.prototype.getNumberOfXTilesAtLevel=function(e){if(i.t(this._customDPI)&&i.t(this._scaleDenominators)){var a=this.calculateResolution(e),t=this._tileWidth*a.x;return Math.ceil(this._rectangle.width/t)}return this._numberOfLevelZeroTilesX<=l&&(g=l-1);var f=(o.north-e.latitude)/h|0;return f>=c&&(f=c-1),i.t(n)?(n.x=g,n.y=f,n):new a.r(g,f)}},E.prototype.calculateResolution=function(e){var t=.0254*this._scaleDenominators[e-this._beginLevel]/this._customDPI.x,n=.0254*this._scaleDenominators[e-this._beginLevel]/this._customDPI.y,i=r.n.WGS84.maximumRadius;return new a.r(t/i,n/i)};var O=new t.a,I=new t.a,P=new t.i,L=new t.a,k=new t.a,N=new e.c,x=new E,A=[new t.i,new t.i,new t.i,new t.i],S=new a.r,H={};function C(e){t.i.fromRadians(e.east,e.north,0,A[0]),t.i.fromRadians(e.west,e.north,0,A[1]),t.i.fromRadians(e.east,e.south,0,A[2]),t.i.fromRadians(e.west,e.south,0,A[3]);var a,n=0,i=0,r=0,o=0,s=H._terrainHeightsMaxLevel;for(a=0;a<=s;++a){for(var l=!1,c=0;c<4;++c){var u=A[c];if(x.positionToTileXY(u,a,S),0===c)r=S.x,o=S.y;else if(r!==S.x||o!==S.y){l=!0;break}}if(l)break;n=r,i=o}if(0!==a)return{x:n,y:i,level:a>s?s:a-1}}H.initialize=function(){var a=H._initPromise;return i.t(a)||(a=e.t.fetchJson(e.o("Assets/approximateTerrainHeights.json")).then((function(e){H._terrainHeights=e})),H._initPromise=a),a},H.getMinimumMaximumHeights=function(e,a){if(n.n.defined("rectangle",e),!i.t(H._terrainHeights))throw new n.t("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");a=i.e(a,r.n.WGS84);var o=C(e),s=H._defaultMinTerrainHeight,l=H._defaultMaxTerrainHeight;if(i.t(o)){var c=o.level+"-"+o.x+"-"+o.y,u=H._terrainHeights[c];i.t(u)&&(s=u[0],l=u[1]),a.cartographicToCartesian(r.s.northeast(e,P),O),a.cartographicToCartesian(r.s.southwest(e,P),I),t.a.midpoint(I,O,L);var h=a.scaleToGeodeticSurface(L,k);if(i.t(h)){var p=t.a.distance(L,h);s=Math.min(s,-p)}else s=H._defaultMinTerrainHeight}return{minimumTerrainHeight:s=Math.max(H._defaultMinTerrainHeight,s),maximumTerrainHeight:l}},H.getBoundingSphere=function(a,t){if(n.n.defined("rectangle",a),!i.t(H._terrainHeights))throw new n.t("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");t=i.e(t,r.n.WGS84);var o=C(a),s=H._defaultMaxTerrainHeight;if(i.t(o)){var l=o.level+"-"+o.x+"-"+o.y,c=H._terrainHeights[l];i.t(c)&&(s=c[1])}var u=e.c.fromRectangle3D(a,t,0);return e.c.fromRectangle3D(a,t,s,N),e.c.union(u,N,u)},H._terrainHeightsMaxLevel=6,H._defaultMaxTerrainHeight=9e3,H._defaultMinTerrainHeight=-1e5,H._terrainHeights=void 0,H._initPromise=void 0,Object.defineProperties(H,{initialized:{get:function(){return i.t(H._terrainHeights)}}});var M=[o.s,v.e],R=M.length,z=Math.cos(s.n.toRadians(30)),j=Math.cos(s.n.toRadians(150));function Y(e){var a=(e=i.e(e,i.e.EMPTY_OBJECT)).positions;if(!i.t(a)||a.length<2)throw new n.t("At least two positions are required.");if(i.t(e.arcType)&&e.arcType!==l.D.GEODESIC&&e.arcType!==l.D.RHUMB)throw new n.t("Valid options for arcType are ArcType.GEODESIC and ArcType.RHUMB.");this.width=i.e(e.width,1),this._positions=a,this.granularity=i.e(e.granularity,9999),this.loop=i.e(e.loop,!1),this.arcType=i.e(e.arcType,l.D.GEODESIC),this._ellipsoid=i.e(e.ellipsoid,r.n.WGS84),this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(Y.prototype,{packedLength:{get:function(){return 1+3*this._positions.length+1+1+1+r.n.packedLength+1+1}}}),Y.setProjectionAndEllipsoid=function(e,a){for(var t=0,n=0;n65535?new Uint32Array(E):new Uint16Array(E),I=new Float64Array(3*b),P=new Float32Array(D),L=new Float32Array(D),k=new Float32Array(D),N=new Float32Array(D),x=new Float32Array(D);h&&(w=new Float32Array(D),m=new Float32Array(D),v=new Float32Array(D),y=new Float32Array(2*b));var A=c.length/2,S=0,C=Ne;C.height=0;var M=xe;M.height=0;var R=Ae,j=Se;if(h)for(f=0,p=1;pz?(ne=De(n,C,se,ae,Xe),ie=De(n,M,J,te,Ue)):1===le?(ie=De(n,M,J,te,Ue),ne.x=0,ne.y=s.n.sign(C.longitude-Math.abs(M.longitude)),ne.z=0):(ne=De(n,C,se,ae,Xe),ie.x=0,ie.y=s.n.sign(C.longitude-M.longitude),ie.z=0)}var ue=t.a.distance(oe,Z),he=d.t.fromCartesian(re,ea),pe=t.a.subtract(V,re,Ve),de=t.a.normalize(pe,Qe),ge=t.a.subtract(oe,re,Ze);ge=t.a.normalize(ge,ge);var fe=t.a.cross(de,ge,Qe);fe=t.a.normalize(fe,fe);var we=t.a.cross(ge,se,Ke);we=t.a.normalize(we,we);var me=t.a.subtract(Z,V,Je);me=t.a.normalize(me,me);var ve=t.a.cross(J,me,$e);ve=t.a.normalize(ve,ve);var _e,Te,be,Ee=ue/W,Oe=Q/W,Pe=0,ca=0,ua=0;if(h){Pe=t.a.distance(ae,te),_e=d.t.fromCartesian(ae,aa),Te=t.a.subtract(te,ae,ta);var ha=(be=t.a.normalize(Te,na)).x;be.x=be.y,be.y=-ha,ca=Pe/S,ua=$/S}for(G=0;G<8;G++){var pa=X+4*G,da=B+2*G,ga=pa+3,fa=G<4?1:-1,wa=2===G||3===G||6===G||7===G?1:-1;t.a.pack(he.high,P,pa),P[ga]=pe.x,t.a.pack(he.low,L,pa),L[ga]=pe.y,t.a.pack(we,k,pa),k[ga]=pe.z,t.a.pack(ve,N,pa),N[ga]=Ee*fa,t.a.pack(fe,x,pa);var ma=Oe*wa;0===ma&&wa<0&&(ma=Number.POSITIVE_INFINITY),x[ga]=ma,h&&(w[pa]=_e.high.x,w[pa+1]=_e.high.y,w[pa+2]=_e.low.x,w[pa+3]=_e.low.y,v[pa]=-ne.y,v[pa+1]=ne.x,v[pa+2]=ie.y,v[pa+3]=-ie.x,m[pa]=Te.x,m[pa+1]=Te.y,m[pa+2]=be.x,m[pa+3]=be.y,y[da]=ca*fa,0===(ma=ua*wa)&&wa<0&&(ma=Number.POSITIVE_INFINITY),y[da+1]=ma)}var va=We,ya=Fe,_a=Ye,Ta=Ge,ba=r.s.fromCartographicArray(ze,je),Da=H.getMinimumMaximumHeights(ba,_),Ea=Da.minimumTerrainHeight,Oa=Da.maximumTerrainHeight;ee+=Ea,ee+=Oa,Ie(re,oe,Ea,Oa,va,_a),Ie(V,Z,Ea,Oa,ya,Ta);var Ia=t.a.multiplyByScalar(fe,s.n.EPSILON5,ia);t.a.add(va,Ia,va),t.a.add(ya,Ia,ya),t.a.add(_a,Ia,_a),t.a.add(Ta,Ia,Ta),Le(va,ya),Le(_a,Ta),t.a.pack(va,I,q),t.a.pack(ya,I,q+3),t.a.pack(Ta,I,q+6),t.a.pack(_a,I,q+9),Ia=t.a.multiplyByScalar(fe,-2*s.n.EPSILON5,ia),t.a.add(va,Ia,va),t.a.add(ya,Ia,ya),t.a.add(_a,Ia,_a),t.a.add(Ta,Ia,Ta),Le(va,ya),Le(_a,Ta),t.a.pack(va,I,q+12),t.a.pack(ya,I,q+15),t.a.pack(Ta,I,q+18),t.a.pack(_a,I,q+21),F+=2,f+=3,B+=16,q+=24,X+=32,Q+=ue,$+=Pe}f=0;var Pa=0;for(p=0;pz||os.n.PI_OVER_TWO&&(c=!0,l=t.a.subtract(o,n,be),h=u.cartesianToCartographic(l,_e)),h.height=0;var p=e.project(h,r);return(r=t.a.subtract(p,i,r)).z=0,r=t.a.normalize(r,r),c&&t.a.negate(r,r),r}var Ee=new t.a,Oe=new t.a;function Ie(e,a,n,i,r,o){var s=t.a.subtract(a,e,Ee);t.a.normalize(s,s);var l=n-0,c=t.a.multiplyByScalar(s,l,Oe);t.a.add(e,c,r);var u=i-1e3;c=t.a.multiplyByScalar(s,u,Oe),t.a.add(a,c,o)}var Pe=new t.a;function Le(e,a){var n=m.n.getPointDistance(oe,e),i=m.n.getPointDistance(oe,a),r=Pe;s.n.equalsEpsilon(n,0,s.n.EPSILON2)?(r=K(a,e,r),t.a.multiplyByScalar(r,s.n.EPSILON2,r),t.a.add(e,r,e)):s.n.equalsEpsilon(i,0,s.n.EPSILON2)&&(r=K(e,a,r),t.a.multiplyByScalar(r,s.n.EPSILON2,r),t.a.add(a,r,a))}function ke(e,a){var t=Math.abs(e.longitude),n=Math.abs(a.longitude);if(s.n.equalsEpsilon(t,s.n.PI,s.n.EPSILON11)){var i=s.n.sign(a.longitude);return e.longitude=i*(t-s.n.EPSILON11),1}if(s.n.equalsEpsilon(n,s.n.PI,s.n.EPSILON11)){var r=s.n.sign(e.longitude);return a.longitude=r*(n-s.n.EPSILON11),2}return 0}var Ne=new t.i,xe=new t.i,Ae=new t.a,Se=new t.a,He=new t.a,Ce=new t.a,Me=new t.a,Re=new t.a,ze=[Ne,xe],je=new r.s,Ye=new t.a,Ge=new t.a,We=new t.a,Fe=new t.a,Be=new t.a,qe=new t.a,Xe=new t.a,Ue=new t.a,Ve=new t.a,Ze=new t.a,Je=new t.a,Qe=new t.a,Ke=new t.a,$e=new t.a,ea=new d.t,aa=new d.t,ta=new t.a,na=new t.a,ia=new t.a,ra=[new e.c,new e.c],oa=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],sa=oa.length;function la(e){return new g.r({componentDatatype:u.ComponentDatatype.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}return Y._projectNormal=De,function(e,a){return H.initialize().then((function(){return i.t(a)&&(e=Y.unpack(e,a)),Y.createGeometry(e)}))}}));