锦水三维代码
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 years ago
define(["./Cartesian2-8417ca3d","./EllipsoidTangentPlane-9123a53b","./Transforms-a73b3b3b","./when-208fe5b0","./Check-d18af7c4","./TerrainEncoding-73cbc4e6","./Math-4e53b694","./OrientedBoundingBox-18b4901f","./WebMercatorProjection-ffb6b9f8","./RuntimeError-7f634f5d","./createTaskProcessorWorker","./IntersectionTests-7d224a2f","./Plane-4aa8974d","./AttributeCompression-f02ec82f","./ComponentDatatype-9204e9f6","./WebGLConstants-76bb35d1"],function(Se,Pe,Ee,Ce,e,Fe,Le,Oe,Ne,r,t,a,i,n,s,l){"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 Se.Cartesian3,_e=new Ee.Matrix4,He=new Se.Cartesian3,Ye=new Se.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=Le.CesiumMath.PI_OVER_TWO,u=Le.CesiumMath.toRadians,c=e.heightmap,d=e.width,h=e.height,m=e.skirtHeight,g=Ce.defaultValue(e.isGeographic,!0),p=Ce.defaultValue(e.ellipsoid,Se.Ellipsoid.WGS84),w=1/p.maximumRadius,x=e.nativeRectangle,k=e.rectangle,y=Ce.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))),b=e.relativeToCenter,I=Ce.defined(b),b=I?b:Se.Cartesian3.ZERO,U=Ce.defaultValue(e.exaggeration,1),v=Ce.defaultValue(e.includeWebMercatorT,!1),T=Ce.defaultValue(e.structure,ze.DEFAULT_STRUCTURE),M=Ce.defaultValue(T.heightScale,ze.DEFAULT_STRUCTURE.heightScale),V=Ce.defaultValue(T.heightOffset,ze.DEFAULT_STRUCTURE.heightOffset),A=Ce.defaultValue(T.elementsPerHeight,ze.DEFAULT_STRUCTURE.elementsPerHeight),B=Ce.defaultValue(T.stride,ze.DEFAULT_STRUCTURE.stride),D=Ce.defaultValue(T.elementMultiplier,ze.DEFAULT_STRUCTURE.elementMultiplier),S=Ce.defaultValue(T.isBigEndian,ze.DEFAULT_STRUCTURE.isBigEndian),P=Se.Rectangle.computeWidth(x),E=Se.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=Ee.Transforms.eastNorthUpToFixedFrame(b,p),Y=Ee.Matrix4.inverseTransformation(T,_e);v&&(L=Ne.WebMercatorProjection.geodeticLatitudeToMercatorAngle(a),O=1/(Ne.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;h<=(re=re<0?0:re)&&(re=h-1);var ne=x.north-F*re,ne=g?u(ne):f-2*l(o(-ne*w)),se=Le.CesiumMath.clamp(se=(ne-a)/(y-a),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=(Ne.WebMercatorProjection.geodeticLatitudeToMercatorAngle(ne)-L)*O);for(var he=te;he<ae;++he){var me=he,ge=re*(d*B)+(me=d<=(me=me<0?0:me)?d-1: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;var H=Math.max(H,we),_=Math.min(_,we),xe=x.west+C*me;g?xe=u(xe):xe*=w;var ke=Le.CesiumMath.clamp(ke=(xe-t)/(i-t),0,1),ye=re*d+me;if(0<m){var be=he===te,Ie=he===ae-1,Ue=le||oe||be||Ie;if((le||oe)&&(be||Ie))continue;Ue&&(we-=m,be?(ye=h-re-1+j,xe-=1e-5*P):oe?ye=j+h+(d-me-1):Ie?(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),be=N*ve,Ie=z*Ue,me=1/s(be*ve+Ie*Ue+de*ce),xe=be*me,be=Ie*me,Ie=de*me,me=new Se.Cartesian3;me.x=xe+ve*we,me.y=be+Ue*we,me.z=Ie+ce*we,q[ye]=me,Q[ye]=we,J[ye]=new Se.Cartesian2(ke,se),v&&(K[ye]=fe),Ee.Matrix4.multiplyByPoint(Y,me,Re),Se.Cartesian3.minimumByComponent(Re,W,W),Se.Cartesian3.maximumByComponent(Re,X,X),Z=Math.min(Z,we)}}var Te,Me,e=Ee.BoundingSphere.fromPoints(q);Ce.defined(k)&&(Te=Oe.OrientedBoundingBox.fromRectangle(k,_,H,p)),I&&(Me=new Fe.EllipsoidalOccluder(p).computeHorizonCullingPointPossiblyUnderEllipsoid(b,q,_));for(var b=new Pe.AxisAlignedBoundingBox(W,X,b