2 lines
26 KiB
JavaScript
2 lines
26 KiB
JavaScript
|
|
define(["./Cartesian2-697a9954","./AxisAlignedBoundingBox-dcfdb7a9","./Transforms-251ff661","./when-54335d57","./Check-f3fec9b0","./TerrainEncoding-24b5ef86","./Math-737a2579","./OrientedBoundingBox-d1fd9cf8","./WebMercatorProjection-6a6458e9","./RuntimeError-88a32665","./createTaskProcessorWorker","./AttributeCompression-ab5c33b7","./ComponentDatatype-417761a2","./WebGLConstants-4739ce15","./EllipsoidTangentPlane-ae33ec6a","./IntersectionTests-3e34a0aa","./Plane-d4cb7bb3"],function(Ce,Fe,Le,Ne,e,Oe,Re,ze,He,r,t,a,i,n,s,l,o){"use strict";var f=Object.freeze({NONE:0,LERC:1}),_e={};_e.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var Ye=new Ce.Cartesian3,We=new Le.Matrix4,Xe=new Ce.Cartesian3,Ze=new Ce.Cartesian3;_e.computeVertices=function(e){var t,a,i,r=Math.cos,n=Math.sin,s=Math.sqrt,l=Math.atan,o=Math.exp,f=Re.CesiumMath.PI_OVER_TWO,u=Re.CesiumMath.toRadians,c=e.heightmap,d=e.width,h=e.height,m=e.skirtHeight,g=0<m,p=Ne.defaultValue(e.isGeographic,!0),x=Ne.defaultValue(e.ellipsoid,Ce.Ellipsoid.WGS84),w=1/x.maximumRadius,k=Ce.Rectangle.clone(e.nativeRectangle),y=Ce.Rectangle.clone(e.rectangle),I=Ne.defined(y)?(t=y.west,a=y.south,i=y.east,y.north):p?(t=u(k.west),a=u(k.south),i=u(k.east),u(k.north)):(t=k.west*w,a=f-2*l(o(-k.south*w)),i=k.east*w,f-2*l(o(-k.north*w))),b=e.relativeToCenter,U=Ne.defined(b),b=U?b:Ce.Cartesian3.ZERO,v=Ne.defaultValue(e.includeWebMercatorT,!1),T=Ne.defaultValue(e.exaggeration,1),M=Ne.defaultValue(e.exaggerationRelativeHeight,0),V=1!==T,e=Ne.defaultValue(e.structure,_e.DEFAULT_STRUCTURE),A=Ne.defaultValue(e.heightScale,_e.DEFAULT_STRUCTURE.heightScale),B=Ne.defaultValue(e.heightOffset,_e.DEFAULT_STRUCTURE.heightOffset),D=Ne.defaultValue(e.elementsPerHeight,_e.DEFAULT_STRUCTURE.elementsPerHeight),S=Ne.defaultValue(e.stride,_e.DEFAULT_STRUCTURE.stride),P=Ne.defaultValue(e.elementMultiplier,_e.DEFAULT_STRUCTURE.elementMultiplier),E=Ne.defaultValue(e.isBigEndian,_e.DEFAULT_STRUCTURE.isBigEndian),C=Ce.Rectangle.computeWidth(k),F=Ce.Rectangle.computeHeight(k),L=C/(d-1),N=F/(h-1);p||(C*=w,F*=w);var O,R,e=x.radiiSquared,z=e.x,H=e.y,_=e.z,Y=65536,W=-65536,e=Le.Transforms.eastNorthUpToFixedFrame(b,x),X=Le.Matrix4.inverseTransformation(e,We);v&&(O=He.WebMercatorProjection.geodeticLatitudeToMercatorAngle(a),R=1/(He.WebMercatorProjection.geodeticLatitudeToMercatorAngle(I)-O));var Z=Xe;Z.x=Number.POSITIVE_INFINITY,Z.y=Number.POSITIVE_INFINITY,Z.z=Number.POSITIVE_INFINITY;var j=Ze;j.x=Number.NEGATIVE_INFINITY,j.y=Number.NEGATIVE_INFINITY,j.z=Number.NEGATIVE_INFINITY;var G=Number.POSITIVE_INFINITY,q=d*h,Q=q+(0<m?2*d+2*h:0),J=new Array(Q),K=new Array(Q),$=new Array(Q),ee=v?new Array(Q):[],te=V?new Array(Q):[],ae=0,ie=h,re=0,ne=d;g&&(--ae,++ie,--re,++ne);for(var se=ae;se<ie;++se){var le=se;h<=(le=le<0?0:le)&&(le=h-1);var oe=k.north-N*le,oe=p?u(oe):f-2*l(o(-oe*w)),fe=Re.CesiumMath.clamp(fe=(oe-a)/(I-a),0,1),ue=se===ae,ce=se===ie-1;0<m&&(ue?oe+=1e-5*F:ce&&(oe-=1e-5*F));var de,he=r(oe),me=n(oe),ge=_*me;v&&(de=(He.WebMercatorProjection.geodeticLatitudeToMercatorAngle(oe)-O)*R);for(var pe=re;pe<ne;++pe){var xe=pe,we=le*(d*S)+(xe=d<=(xe=xe<0?0:xe)?d-1:xe)*S;if(1===D)ye=c[we];else{var ke,ye=0;if(E)for(ke=0;ke<D;++ke)ye=ye*P+c[we+ke];else for(ke=D-1;0<=ke;--ke)ye=ye*P+c[we+ke]}ye=ye*A+B;var W=Math.max(W,ye),Y=Math.min(Y,ye),Ie=k.west+L*xe;p?Ie=u(Ie):Ie*=w;var be=Re.CesiumMath.clamp(be=(Ie-t)/(i-t),0,1),Ue=le*d+xe;if(0<m){var ve=pe===re,Te=pe===ne-1,Me=ue||ce||ve||Te;if((ue||ce)&&(ve||Te))continue;Me&&(ye-=m,ve?(Ue=h-le-1+q,Ie-=1e-5*C):ce?Ue=q+h+(d-xe-1):Te?(Ue=q+h+d+le,Ie+=1e-5*C):ue&&(Ue=q+h+d+h+xe))}var Ve=he*r(Ie),Me=he*n(Ie),ve=z*Ve,Te=H*Me,xe=1/s(ve*Ve+Te*Me+ge*me),Ie=ve*xe,ve=Te*xe,Te=ge*xe,xe=new Ce.Cartesian3;xe.x=Ie+Ve*ye,xe.y=ve+Me*ye,xe.z=Te+me*ye,Le.Matrix4.multiplyByPoint(X,xe,Ye),Ce.Cartesian3.minimumByComponent(Ye,Z,Z),Ce.Cartesian3.maximumByComponent(Ye,j,j),G=Math.min(G,ye),J[Ue]=xe,$[Ue]=new Ce.Cartesian2(be,fe),K[Ue]=ye,v&&(ee[Ue]=de),V&&(te[Ue]=x.geodeticSurfaceNormal(xe))}}var Ae,Be,g=Le.BoundingSphere.fromPoints(J);Ne
|