2 lines
7.3 KiB
JavaScript
2 lines
7.3 KiB
JavaScript
|
define(["./AxisAlignedBoundingBox-ebc959c9","./Transforms-0becfc64","./Matrix2-860854d4","./when-4bbc8319","./TerrainEncoding-f1aea1f9","./ComponentDatatype-8f55628c","./OrientedBoundingBox-07e6723c","./RuntimeError-1349fdaf","./WebMercatorProjection-be9aaee9","./createTaskProcessorWorker","./combine-e9466e32","./AttributeCompression-5f6be9e6","./WebGLConstants-508b9636","./EllipsoidTangentPlane-407b38a6","./IntersectionTests-1d677ce2","./Plane-0e4269ac"],(function(t,e,n,i,o,r,a,s,c,u,h,l,d,g,m,p){"use strict";const I=Uint16Array.BYTES_PER_ELEMENT,f=Int32Array.BYTES_PER_ELEMENT,E=Uint32Array.BYTES_PER_ELEMENT,T=Float32Array.BYTES_PER_ELEMENT,C=Float64Array.BYTES_PER_ELEMENT;function M(t,e,n){n=i.defaultValue(n,r.CesiumMath);const o=t.length;for(let i=0;i<o;++i)if(n.equalsEpsilon(t[i],e,r.CesiumMath.EPSILON12))return i;return-1}const x=new n.Cartographic,N=new n.Cartesian3,b=new n.Cartesian3,S=new n.Cartesian3,w=new n.Matrix4;function B(t,e,o,a,s,c,u,h,l,d,g){const m=h.length;for(let p=0;p<m;++p){const I=h[p],f=I.cartographic,E=I.index,T=t.length,C=f.longitude;let M=f.latitude;M=r.CesiumMath.clamp(M,-r.CesiumMath.PI_OVER_TWO,r.CesiumMath.PI_OVER_TWO);const b=f.height-u.skirtHeight;u.hMin=Math.min(u.hMin,b),n.Cartographic.fromRadians(C,M,b,x),d&&(x.longitude+=l),d?p===m-1?x.latitude+=g:0===p&&(x.latitude-=g):x.latitude+=l;const S=u.ellipsoid.cartographicToCartesian(x);t.push(S),e.push(b),o.push(n.Cartesian2.clone(o[E])),a.length>0&&a.push(a[E]),s.length>0&&s.push(s[E]),n.Matrix4.multiplyByPoint(u.toENU,S,N);const w=u.minimum,B=u.maximum;n.Cartesian3.minimumByComponent(N,w,w),n.Cartesian3.maximumByComponent(N,B,B);const P=u.lastBorderPoint;if(i.defined(P)){const t=P.index;c.push(t,T-1,T,T,E,t)}u.lastBorderPoint=I}}return u((function(u,h){u.ellipsoid=n.Ellipsoid.clone(u.ellipsoid),u.rectangle=n.Rectangle.clone(u.rectangle);const l=function(u,h,l,d,g,m,p,P,A,y,R){let _,W,v,F,O,Y;i.defined(d)?(_=d.west,W=d.south,v=d.east,F=d.north,O=d.width,Y=d.height):(_=r.CesiumMath.toRadians(g.west),W=r.CesiumMath.toRadians(g.south),v=r.CesiumMath.toRadians(g.east),F=r.CesiumMath.toRadians(g.north),O=r.CesiumMath.toRadians(d.width),Y=r.CesiumMath.toRadians(d.height));const U=[W,F],V=[_,v],k=e.Transforms.eastNorthUpToFixedFrame(h,l),H=n.Matrix4.inverseTransformation(k,w);let L,D;A&&(L=c.WebMercatorProjection.geodeticLatitudeToMercatorAngle(W),D=1/(c.WebMercatorProjection.geodeticLatitudeToMercatorAngle(F)-L));const G=1!==m,j=new DataView(u);let z=Number.POSITIVE_INFINITY,q=Number.NEGATIVE_INFINITY;const J=b;J.x=Number.POSITIVE_INFINITY,J.y=Number.POSITIVE_INFINITY,J.z=Number.POSITIVE_INFINITY;const K=S;K.x=Number.NEGATIVE_INFINITY,K.y=Number.NEGATIVE_INFINITY,K.z=Number.NEGATIVE_INFINITY;let Q,X,Z=0,$=0,tt=0;for(X=0;X<4;++X){let t=Z;Q=j.getUint32(t,!0),t+=E;const e=r.CesiumMath.toRadians(180*j.getFloat64(t,!0));t+=C,-1===M(V,e)&&V.push(e);const n=r.CesiumMath.toRadians(180*j.getFloat64(t,!0));t+=C,-1===M(U,n)&&U.push(n),t+=2*C;let i=j.getInt32(t,!0);t+=f,$+=i,i=j.getInt32(t,!0),tt+=3*i,Z+=Q+E}const et=[],nt=[],it=new Array($),ot=new Array($),rt=new Array($),at=A?new Array($):[],st=G?new Array($):[],ct=new Array(tt),ut=[],ht=[],lt=[],dt=[];let gt=0,mt=0;for(Z=0,X=0;X<4;++X){Q=j.getUint32(Z,!0),Z+=E;const t=Z,e=r.CesiumMath.toRadians(180*j.getFloat64(Z,!0));Z+=C;const i=r.CesiumMath.toRadians(180*j.getFloat64(Z,!0));Z+=C;const o=r.CesiumMath.toRadians(180*j.getFloat64(Z,!0)),a=.5*o;Z+=C;const u=r.CesiumMath.toRadians(180*j.getFloat64(Z,!0)),h=.5*u;Z+=C;const d=j.getInt32(Z,!0);Z+=f;const g=j.getInt32(Z,!0);Z+=f,Z+=f;const m=new Array(d);for(let t=0;t<d;++t){const s=e+j.getUint8(Z++)*o;x.longitude=s;const d=i+j.getUint8(Z++)*u;x.latitude=d;let g=j.getFloat32(Z,!0);if(Z+=T,0!==g&&g<R&&(g*=-Math.pow(2,y)),g*=6371010,x.height=g,-1!==M(V,s)||-1!==M(U,d)){const e=M(et,x,n.Cartographic);if(-1!==e){m[t]=nt[e];continue}et.push(n.Cartographic.clone(x)),nt.push(gt)}m[t]=gt,Math.abs(s-_)<a?ut.push({index:gt,cartographic:n.Cartographic.clone(x)}):Math.abs(s-v)<a?lt.push({index:gt,cartographic:n.Cartographic.clone(x)}):Math.abs(d-W)<h?ht.push({index:gt,car
|