You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
26 KiB
2 lines
26 KiB
3 years ago
|
define(["./when-54c2dc71","./Check-6c0211bc","./Math-fc8cecf5","./Cartesian2-bddc1162","./Transforms-d07bb42c","./RuntimeError-2109023a","./WebGLConstants-76bb35d1","./ComponentDatatype-6d99a1ee","./AttributeCompression-9fc99391","./IntersectionTests-8abf6dba","./Plane-c8971487","./WebMercatorProjection-df58d479","./createTaskProcessorWorker","./EllipsoidTangentPlane-0a0e472c","./OrientedBoundingBox-2c275398","./TerrainEncoding-d6aef4ae"],function(Se,e,Pe,Ee,Ce,n,t,a,i,r,s,Fe,l,Le,Oe,Ne){"use strict";var o=Object.freeze({NONE:0,LERC:1}),ze={};ze.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var Re=new Ee.Cartesian3,_e=new Ce.Matrix4,He=new Ee.Cartesian3,Ye=new Ee.Cartesian3;ze.computeVertices=function(e){var t,a,i,r=Math.cos,n=Math.sin,s=Math.sqrt,l=Math.atan,o=Math.exp,f=Pe.CesiumMath.PI_OVER_TWO,u=Pe.CesiumMath.toRadians,c=e.heightmap,d=e.width,h=e.height,m=e.skirtHeight,g=Se.defaultValue(e.isGeographic,!0),p=Se.defaultValue(e.ellipsoid,Ee.Ellipsoid.WGS84),w=1/p.maximumRadius,x=e.nativeRectangle,k=e.rectangle,y=Se.defined(k)?(t=k.west,a=k.south,i=k.east,k.north):g?(t=u(x.west),a=u(x.south),i=u(x.east),u(x.north)):(t=x.west*w,a=f-2*l(o(-x.south*w)),i=x.east*w,f-2*l(o(-x.north*w))),I=e.relativeToCenter,b=Se.defined(I),I=b?I:Ee.Cartesian3.ZERO,U=Se.defaultValue(e.exaggeration,1),v=Se.defaultValue(e.includeWebMercatorT,!1),T=Se.defaultValue(e.structure,ze.DEFAULT_STRUCTURE),M=Se.defaultValue(T.heightScale,ze.DEFAULT_STRUCTURE.heightScale),V=Se.defaultValue(T.heightOffset,ze.DEFAULT_STRUCTURE.heightOffset),A=Se.defaultValue(T.elementsPerHeight,ze.DEFAULT_STRUCTURE.elementsPerHeight),B=Se.defaultValue(T.stride,ze.DEFAULT_STRUCTURE.stride),D=Se.defaultValue(T.elementMultiplier,ze.DEFAULT_STRUCTURE.elementMultiplier),S=Se.defaultValue(T.isBigEndian,ze.DEFAULT_STRUCTURE.isBigEndian),P=Ee.Rectangle.computeWidth(x),E=Ee.Rectangle.computeHeight(x),C=P/(d-1),F=E/(h-1);g||(P*=w,E*=w);var L,O,e=p.radiiSquared,N=e.x,z=e.y,R=e.z,_=65536,H=-65536,T=Ce.Transforms.eastNorthUpToFixedFrame(I,p),Y=Ce.Matrix4.inverseTransformation(T,_e);v&&(L=Fe.WebMercatorProjection.geodeticLatitudeToMercatorAngle(a),O=1/(Fe.WebMercatorProjection.geodeticLatitudeToMercatorAngle(y)-L));var W=He;W.x=Number.POSITIVE_INFINITY,W.y=Number.POSITIVE_INFINITY,W.z=Number.POSITIVE_INFINITY;var X=Ye;X.x=Number.NEGATIVE_INFINITY,X.y=Number.NEGATIVE_INFINITY,X.z=Number.NEGATIVE_INFINITY;var Z=Number.POSITIVE_INFINITY,j=d*h,G=j+(0<m?2*d+2*h:0),q=new Array(G),Q=new Array(G),J=new Array(G),K=v?new Array(G):[],$=0,ee=h,te=0,ae=d;0<m&&(--$,++ee,--te,++ae);for(var ie=$;ie<ee;++ie){var re=ie;re<0&&(re=0),h<=re&&(re=h-1);var ne=x.north-F*re,se=((ne=g?u(ne):f-2*l(o(-ne*w)))-a)/(y-a),se=Pe.CesiumMath.clamp(se,0,1),le=ie===$,oe=ie===ee-1;0<m&&(le?ne+=1e-5*E:oe&&(ne-=1e-5*E));var fe,ue=r(ne),ce=n(ne),de=R*ce;v&&(fe=(Fe.WebMercatorProjection.geodeticLatitudeToMercatorAngle(ne)-L)*O);for(var he=te;he<ae;++he){var me=he;me<0&&(me=0),d<=me&&(me=d-1);var ge=re*(d*B)+me*B;if(1===A)we=c[ge];else{var pe,we=0;if(S)for(pe=0;pe<A;++pe)we=we*D+c[ge+pe];else for(pe=A-1;0<=pe;--pe)we=we*D+c[ge+pe]}we=(we*M+V)*U,H=Math.max(H,we),_=Math.min(_,we);var xe=x.west+C*me;g?xe=u(xe):xe*=w;var ke=(xe-t)/(i-t),ke=Pe.CesiumMath.clamp(ke,0,1),ye=re*d+me;if(0<m){var Ie=he===te,be=he===ae-1,Ue=le||oe||Ie||be;if((le||oe)&&(Ie||be))continue;Ue&&(we-=m,Ie?(ye=h-re-1+j,xe-=1e-5*P):oe?ye=j+h+(d-me-1):be?(ye=j+h+d+re,xe+=1e-5*P):le&&(ye=j+h+d+h+me))}var ve=ue*r(xe),Ue=ue*n(xe),Ie=N*ve,be=z*Ue,me=1/s(Ie*ve+be*Ue+de*ce),xe=Ie*me,Ie=be*me,be=de*me,me=new Ee.Cartesian3;me.x=xe+ve*we,me.y=Ie+Ue*we,me.z=be+ce*we,q[ye]=me,Q[ye]=we,J[ye]=new Ee.Cartesian2(ke,se),v&&(K[ye]=fe),Ce.Matrix4.multiplyByPoint(Y,me,Re),Ee.Cartesian3.minimumByComponent(Re,W,W),Ee.Cartesian3.maximumByComponent(Re,X,X),Z=Math.min(Z,we)}}var Te,Me,e=Ce.BoundingSphere.fromPoints(q);Se.defined(k)&&(Te=Oe.OrientedBoundingBox.fromRectangle(k,_,H,p)),b&&(Me=new Ne.EllipsoidalOccluder(p).computeHorizonCullingPointPossiblyUnderEllipsoid(I,q,_));for(var I=new Le.AxisAlignedBound
|