2 lines
19 KiB
JavaScript
2 lines
19 KiB
JavaScript
/* 2020-9-22 15:23:24 | 版权所有 军懋国兴 */
|
|
define(["./when-cbf8cd21","./Check-35e1a91d","./Math-69007a69","./Cartesian2-43e3a3be","./Transforms-2d1ac5ec","./RuntimeError-f4c64df1","./WebGLConstants-95ceb4e9","./ComponentDatatype-607c9a0c","./GeometryAttribute-2303bbfb","./EncodedCartesian3-29a09d7b","./IntersectionTests-459f6f08","./Plane-46b5436f","./WebMercatorProjection-3da37aae","./arrayRemoveDuplicates-d96adeb6","./ArcType-2b58731c","./EllipsoidRhumbLine-357c11e7","./EllipsoidGeodesic-007422da"],function(G,d,ze,Be,Ge,e,a,je,Ve,Ye,j,i,t,V,Y,q,M){"use strict";function r(e){e=G.defaultValue(e,G.defaultValue.EMPTY_OBJECT),this._ellipsoid=G.defaultValue(e.ellipsoid,Be.Ellipsoid.WGS84),this._rectangle=G.defaultValue(e.rectangle,Be.Rectangle.MAX_VALUE),this._projection=new Ge.GeographicProjection(this._ellipsoid),this._numberOfLevelZeroTilesX=G.defaultValue(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=G.defaultValue(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(r.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}}),r.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e},r.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e},r.prototype.rectangleToNativeRectangle=function(e,a){d.Check.defined("rectangle",e);var t=ze.CesiumMath.toDegrees(e.west),r=ze.CesiumMath.toDegrees(e.south),n=ze.CesiumMath.toDegrees(e.east),i=ze.CesiumMath.toDegrees(e.north);return G.defined(a)?(a.west=t,a.south=r,a.east=n,a.north=i,a):new Be.Rectangle(t,r,n,i)},r.prototype.tileXYToNativeRectangle=function(e,a,t,r){var n=this.tileXYToRectangle(e,a,t,r);return n.west=ze.CesiumMath.toDegrees(n.west),n.south=ze.CesiumMath.toDegrees(n.south),n.east=ze.CesiumMath.toDegrees(n.east),n.north=ze.CesiumMath.toDegrees(n.north),n},r.prototype.tileXYToRectangle=function(e,a,t,r){var n=this._rectangle,i=this.getNumberOfXTilesAtLevel(t),s=this.getNumberOfYTilesAtLevel(t),o=n.width/i,l=e*o+n.west,u=(e+1)*o+n.west,c=n.height/s,C=n.north-a*c,p=n.north-(a+1)*c;return G.defined(r)||(r=new Be.Rectangle(l,p,u,C)),r.west=l,r.south=p,r.east=u,r.north=C,r},r.prototype.positionToTileXY=function(e,a,t){var r=this._rectangle;if(Be.Rectangle.contains(r,e)){var n=this.getNumberOfXTilesAtLevel(a),i=this.getNumberOfYTilesAtLevel(a),s=r.width/n,o=r.height/i,l=e.longitude;r.east<r.west&&(l+=ze.CesiumMath.TWO_PI);var u=(l-r.west)/s|0;n<=u&&(u=n-1);var c=(r.north-e.latitude)/o|0;return(i<=c&&(c=i-1),G.defined(t))?(t.x=u,t.y=c,t):new Be.Cartesian2(u,c)}};var u=new Be.Cartesian3,c=new Be.Cartesian3,C=new Be.Cartographic,p=new Be.Cartesian3,h=new Be.Cartesian3,o=new Ge.BoundingSphere,g=new r,f=[new Be.Cartographic,new Be.Cartographic,new Be.Cartographic,new Be.Cartographic],m=new Be.Cartesian2,qe={};function w(e){Be.Cartographic.fromRadians(e.east,e.north,0,f[0]),Be.Cartographic.fromRadians(e.west,e.north,0,f[1]),Be.Cartographic.fromRadians(e.east,e.south,0,f[2]),Be.Cartographic.fromRadians(e.west,e.south,0,f[3]);for(var a=0,t=0,r=0,n=0,i=qe._terrainHeightsMaxLevel,s=0;s<=i;++s){for(var o=!1,l=0;l<4;++l){var u=f[l];if(g.positionToTileXY(u,s,m),0===l)r=m.x,n=m.y;else if(r!==m.x||n!==m.y){o=!0;break}}if(o)break;a=r,t=n}if(0!==s)return{x:a,y:t,level:i<s?i:s-1}}qe.initialize=function(){var e=qe._initPromise;return G.defined(e)?e:(e=Ge.Resource.fetchJson(Ge.buildModuleUrl("Assets/approximateTerrainHeights.json")).then(function(e){qe._terrainHeights=e}),qe._initPromise=e)},qe.getMinimumMaximumHeights=function(e,a){if(d.Check.defined("rectangle",e),!G.defined(qe._terrainHeights))throw new d.DeveloperError("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");a=G.defaultValue(a,Be.Ellipsoid.WGS84);var t,r,n,i,s=w(e),o=qe._defaultMinTerrainHeight,l=qe._defaultMaxTerrainHeight;return G.defined(s)&&(t=s.level+"-"+s.x+"-"+s.y,r=qe._terrainHeights[t],G.defined(r)&&(o=r[0],l=r[1]),a.cartographicToCartesian(Be.Rectangle.northeast(e,C),u),a.cartographicToCartesian(Be.Rectangle.southwest(e,C),c),Be.Cartesian3.midpoint(c,u,p),n=a.scaleToGeodeticSurface(p,h),o=G.defined(n)?(i=Be.Cartesian3.distance(p,n),Math.min(o,-i)):qe._defaultMinTerrainHeight),{minimumTerrainHeight:o=Math.max(qe._defaultMinTerrainHeight,o),maximumTerrainHeight:l}},qe.getBoundingSphere=function(e,a){if(d.Check.defined("rectangle",e),!G.defined(qe._terrainHeights))throw new d.DeveloperError("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");a=G.defaultValue(a,Be.Ellipsoid.WGS84);var t,r,n=w(e),i=qe._defaultMaxTerrainHeight;G.defined(n)&&(t=n.level+"-"+n.x+"-"+n.y,r=qe._terrainHeights[t],G.defined(r)&&(i=r[1]));var s=Ge.BoundingSphere.fromRectangle3D(e,a,0);return Ge.BoundingSphere.fromRectangle3D(e,a,i,o),Ge.BoundingSphere.union(s,o,s)},qe._terrainHeightsMaxLevel=6,qe._defaultMaxTerrainHeight=9e3,qe._defaultMinTerrainHeight=-1e5,qe._terrainHeights=void 0,qe._initPromise=void 0,Object.defineProperties(qe,{initialized:{get:function(){return G.defined(qe._terrainHeights)}}});var F=[Ge.GeographicProjection,t.WebMercatorProjection],n=F.length,Fe=Math.cos(ze.CesiumMath.toRadians(30)),v=Math.cos(ze.CesiumMath.toRadians(150)),X=0,U=1e3;function y(e){var a=(e=G.defaultValue(e,G.defaultValue.EMPTY_OBJECT)).positions;if(!G.defined(a)||a.length<2)throw new d.DeveloperError("At least two positions are required.");if(G.defined(e.arcType)&&e.arcType!==Y.ArcType.GEODESIC&&e.arcType!==Y.ArcType.RHUMB)throw new d.DeveloperError("Valid options for arcType are ArcType.GEODESIC and ArcType.RHUMB.");this.width=G.defaultValue(e.width,1),this._positions=a,this.granularity=G.defaultValue(e.granularity,9999),this.loop=G.defaultValue(e.loop,!1),this.arcType=G.defaultValue(e.arcType,Y.ArcType.GEODESIC),this._ellipsoid=Be.Ellipsoid.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+Be.Ellipsoid.packedLength+1+1}}}),y.setProjectionAndEllipsoid=function(e,a){for(var t=0,r=0;r<n;r++)if(a instanceof F[r]){t=r;break}e._projectionIndex=t,e._ellipsoid=a.ellipsoid};var T=new Be.Cartesian3,E=new Be.Cartesian3,_=new Be.Cartesian3;function W(e,a,t,r,n){var i=J(r,e,0,T),s=J(r,e,t,E),o=J(r,a,0,_),l=Xe(s,i,E),u=Xe(o,i,_);return Be.Cartesian3.cross(u,l,n),Be.Cartesian3.normalize(n,n)}var O=new Be.Cartographic,b=new Be.Cartesian3,A=new Be.Cartesian3,k=new Be.Cartesian3;function Z(e,a,t,r,n,i,s,o,l,u,c){if(0!==n){var C;i===Y.ArcType.GEODESIC?C=new M.EllipsoidGeodesic(e,a,s):i===Y.ArcType.RHUMB&&(C=new q.EllipsoidRhumbLine(e,a,s));var p=C.surfaceDistance;if(!(p<n))for(var d=W(e,a,r,s,k),h=Math.ceil(p/n),g=p/h,f=g,m=h-1,w=o.length,v=0;v<m;v++){var y=C.interpolateUsingSurfaceDistance(f,O),T=J(s,y,t,b),E=J(s,y,r,A);Be.Cartesian3.pack(d,o,w),Be.Cartesian3.pack(T,l,w),Be.Cartesian3.pack(E,u,w),c.push(y.latitude),c.push(y.longitude),w+=3,f+=g}}}var s=new Be.Cartographic;function J(e,a,t,r){return Be.Cartographic.clone(a,s),s.height=t,Be.Cartographic.toCartesian(s,e,r)}function Xe(e,a,t){return Be.Cartesian3.subtract(e,a,t),Be.Cartesian3.normalize(t,t),t}function P(e,a,t,r){return r=Xe(e,a,r),r=Be.Cartesian3.cross(r,t,r),r=Be.Cartesian3.normalize(r,r),r=Be.Cartesian3.cross(t,r,r)}y.pack=function(e,a,t){d.Check.typeOf.object("value",e),d.Check.defined("array",a);var r=G.defaultValue(t,0),n=e._positions,i=n.length;a[r++]=i;for(var s=0;s<i;++s){var o=n[s];Be.Cartesian3.pack(o,a,r),r+=3}return a[r++]=e.granularity,a[r++]=e.loop?1:0,a[r++]=e.arcType,Be.Ellipsoid.pack(e._ellipsoid,a,r),r+=Be.Ellipsoid.packedLength,a[r++]=e._projectionIndex,a[r++]=e._scene3DOnly?1:0,a},y.unpack=function(e,a,t){d.Check.defined("array",e);for(var r=G.defaultValue(a,0),n=e[r++],i=new Array(n),s=0;s<n;s++)i[s]=Be.Cartesian3.unpack(e,r),r+=3;var o=e[r++],l=1===e[r++],u=e[r++],c=Be.Ellipsoid.unpack(e,r);r+=Be.Ellipsoid.packedLength;var C=e[r++],p=1===e[r++];return G.defined(t)||(t=new y({positions:i})),t._positions=i,t.granularity=o,t.loop=l,t.arcType=u,t._ellipsoid=c,t._projectionIndex=C,t._scene3DOnly=p,t};var S=new Be.Cartesian3,L=new Be.Cartesian3,I=new Be.Cartesian3,x=new Be.Cartesian3;function Q(e,a,t,r,n){var i=Xe(t,a,x),s=P(e,a,i,S),o=P(r,a,i,L);if(ze.CesiumMath.equalsEpsilon(Be.Cartesian3.dot(s,o),-1,ze.CesiumMath.EPSILON5))return n=Be.Cartesian3.cross(i,s,n),n=Be.Cartesian3.normalize(n,n);n=Be.Cartesian3.add(o,s,n),n=Be.Cartesian3.normalize(n,n);var l=Be.Cartesian3.cross(i,n,I);return Be.Cartesian3.dot(o,l)<0&&(n=Be.Cartesian3.negate(n,n)),n}var K=i.Plane.fromPointNormal(Be.Cartesian3.ZERO,Be.Cartesian3.UNIT_Y),$=new Be.Cartesian3,ee=new Be.Cartesian3,ae=new Be.Cartesian3,te=new Be.Cartesian3,re=new Be.Cartesian3,ne=new Be.Cartesian3,ie=new Be.Cartographic,se=new Be.Cartographic,oe=new Be.Cartographic;y.createGeometry=function(e){var a,t,r,n,i,s=!e._scene3DOnly,o=e.loop,l=e._ellipsoid,u=e.granularity,c=e.arcType,C=new F[e._projectionIndex](l),p=X,d=U,h=e._positions,g=h.length;2===g&&(o=!1);for(var f,m,w,v=new q.EllipsoidRhumbLine(void 0,void 0,l),y=[h[0]],T=0;T<g-1;T++)t=h[T],r=h[T+1],f=j.IntersectionTests.lineSegmentPlane(t,r,K,ne),!G.defined(f)||Be.Cartesian3.equalsEpsilon(f,t,ze.CesiumMath.EPSILON7)||Be.Cartesian3.equalsEpsilon(f,r,ze.CesiumMath.EPSILON7)||(e.arcType===Y.ArcType.GEODESIC?y.push(Be.Cartesian3.clone(f)):e.arcType===Y.ArcType.RHUMB&&(w=l.cartesianToCartographic(f,ie).longitude,n=l.cartesianToCartographic(t,ie),i=l.cartesianToCartographic(r,se),v.setEndPoints(n,i),m=v.findIntersectionWithLongitude(w,oe),f=l.cartographicToCartesian(m,ne),!G.defined(f)||Be.Cartesian3.equalsEpsilon(f,t,ze.CesiumMath.EPSILON7)||Be.Cartesian3.equalsEpsilon(f,r,ze.CesiumMath.EPSILON7)||y.push(Be.Cartesian3.clone(f)))),y.push(r);o&&(t=h[g-1],r=h[0],f=j.IntersectionTests.lineSegmentPlane(t,r,K,ne),!G.defined(f)||Be.Cartesian3.equalsEpsilon(f,t,ze.CesiumMath.EPSILON7)||Be.Cartesian3.equalsEpsilon(f,r,ze.CesiumMath.EPSILON7)||(e.arcType===Y.ArcType.GEODESIC?y.push(Be.Cartesian3.clone(f)):e.arcType===Y.ArcType.RHUMB&&(w=l.cartesianToCartographic(f,ie).longitude,n=l.cartesianToCartographic(t,ie),i=l.cartesianToCartographic(r,se),v.setEndPoints(n,i),m=v.findIntersectionWithLongitude(w,oe),f=l.cartographicToCartesian(m,ne),!G.defined(f)||Be.Cartesian3.equalsEpsilon(f,t,ze.CesiumMath.EPSILON7)||Be.Cartesian3.equalsEpsilon(f,r,ze.CesiumMath.EPSILON7)||y.push(Be.Cartesian3.clone(f)))));var E=y.length,M=new Array(E);for(T=0;T<E;T++){var _=Be.Cartographic.fromCartesian(y[T],l);_.height=0,M[T]=_}if(!((E=(M=V.arrayRemoveDuplicates(M,Be.Cartographic.equalsEpsilon)).length)<2)){var O=[],b=[],A=[],k=[],P=$,S=ee,L=ae,I=te,x=re,D=M[0],N=M[1];for(P=J(l,M[E-1],p,P),I=J(l,N,p,I),S=J(l,D,p,S),L=J(l,D,d,L),x=o?Q(P,S,L,I,x):W(D,N,d,l,x),Be.Cartesian3.pack(x,b,0),Be.Cartesian3.pack(S,A,0),Be.Cartesian3.pack(L,k,0),O.push(D.latitude),O.push(D.longitude),Z(D,N,p,d,u,c,l,b,A,k,O),T=1;T<E-1;++T){P=Be.Cartesian3.clone(S,P),S=Be.Cartesian3.clone(I,S);var R=M[T];J(l,R,d,L),J(l,M[T+1],p,I),Q(P,S,L,I,x),a=b.length,Be.Cartesian3.pack(x,b,a),Be.Cartesian3.pack(S,A,a),Be.Cartesian3.pack(L,k,a),O.push(R.latitude),O.push(R.longitude),Z(M[T],M[T+1],p,d,u,c,l,b,A,k,O)}var H,z=M[E-1],B=M[E-2],S=J(l,z,p,S),L=J(l,z,d,L);if(x=o?(H=M[0],Q(P=J(l,B,p,P),S,L,I=J(l,H,p,I),x)):W(B,z,d,l,x),a=b.length,Be.Cartesian3.pack(x,b,a),Be.Cartesian3.pack(S,A,a),Be.Cartesian3.pack(L,k,a),O.push(z.latitude),O.push(z.longitude),o){for(Z(z,D,p,d,u,c,l,b,A,k,O),a=b.length,T=0;T<3;++T)b[a+T]=b[T],A[a+T]=A[T],k[a+T]=k[T];O.push(D.latitude),O.push(D.longitude)}return function(e,a,t,r,n,i,s){var o,l,u,c,C,p,d=a._ellipsoid,h=t.length/3-1,g=8*h,f=4*g,m=36*h,w=new(65535<g?Uint32Array:Uint16Array)(m),v=new Float64Array(3*g),y=new Float32Array(f),T=new Float32Array(f),E=new Float32Array(f),M=new Float32Array(f),_=new Float32Array(f);s&&(u=new Float32Array(f),c=new Float32Array(f),C=new Float32Array(f),p=new Float32Array(2*g));var O=i.length/2,b=0,A=Qe;A.height=0;var k=Ke;k.height=0;var P=$e,S=ea;if(s)for(l=0,o=1;o<O;o++)A.latitude=i[l],A.longitude=i[l+1],k.latitude=i[l+2],k.longitude=i[l+3],P=a.project(A,P),S=a.project(k,S),b+=Be.Cartesian3.distance(P,S),l+=2;var L=r.length/3;S=Be.Cartesian3.unpack(r,0,S);var I,x=0;for(l=3,o=1;o<L;o++)P=Be.Cartesian3.clone(S,P),S=Be.Cartesian3.unpack(r,l,S),x+=Be.Cartesian3.distance(P,S),l+=3;l=3;var D=0,N=0,R=0,H=0,z=!1,B=Be.Cartesian3.unpack(t,0,ta),G=Be.Cartesian3.unpack(r,0,ea),j=Be.Cartesian3.unpack(n,0,na);{var V;e&&(V=Be.Cartesian3.unpack(t,t.length-6,aa),Ue(j,V,B,G)&&(j=Be.Cartesian3.negate(j,j)))}var Y,q,F,X,U,W,Z,J=0,Q=0,K=0;for(o=0;o<h;o++){var $,ee,ae=Be.Cartesian3.clone(B,aa),te=Be.Cartesian3.clone(G,$e),re=Be.Cartesian3.clone(j,ra);z&&(re=Be.Cartesian3.negate(re,re)),B=Be.Cartesian3.unpack(t,l,ta),G=Be.Cartesian3.unpack(r,l,ea),j=Be.Cartesian3.unpack(n,l,na),z=Ue(j,ae,B,G),A.latitude=i[D],A.longitude=i[D+1],k.latitude=i[D+2],k.longitude=i[D+3],s&&($=function(e,a){var t=Math.abs(e.longitude),r=Math.abs(a.longitude);{if(ze.CesiumMath.equalsEpsilon(t,ze.CesiumMath.PI,ze.CesiumMath.EPSILON11)){var n=ze.CesiumMath.sign(a.longitude);return e.longitude=n*(t-ze.CesiumMath.EPSILON11),1}if(ze.CesiumMath.equalsEpsilon(r,ze.CesiumMath.PI,ze.CesiumMath.EPSILON11)){var i=ze.CesiumMath.sign(e.longitude);return a.longitude=i*(r-ze.CesiumMath.EPSILON11),2}}return 0}(A,k),Y=a.project(A,Ca),(ee=Xe(q=a.project(k,pa),Y,Ma)).y=Math.abs(ee.y),F=da,X=ha,0===$||Be.Cartesian3.dot(ee,Be.Cartesian3.UNIT_Y)>Fe?(F=We(a,A,re,Y,da),X=We(a,k,j,q,ha)):1===$?(X=We(a,k,j,q,ha),F.x=0,F.y=ze.CesiumMath.sign(A.longitude-Math.abs(k.longitude)),F.z=0):(F=We(a,A,re,Y,da),X.x=0,X.y=ze.CesiumMath.sign(A.longitude-k.longitude),X.z=0));var ne=Be.Cartesian3.distance(te,G),ie=Ye.EncodedCartesian3.fromCartesian(ae,Ta),se=Be.Cartesian3.subtract(B,ae,ga),oe=Be.Cartesian3.normalize(se,wa),le=Be.Cartesian3.subtract(te,ae,fa);le=Be.Cartesian3.normalize(le,le);var ue=Be.Cartesian3.cross(oe,le,wa);ue=Be.Cartesian3.normalize(ue,ue);var ce=Be.Cartesian3.cross(le,re,va);ce=Be.Cartesian3.normalize(ce,ce);var Ce=Be.Cartesian3.subtract(G,B,ma);Ce=Be.Cartesian3.normalize(Ce,Ce);var pe=Be.Cartesian3.cross(j,Ce,ya);pe=Be.Cartesian3.normalize(pe,pe);var de,he=ne/x,ge=J/x,fe=0,me=0,we=0;for(s&&(fe=Be.Cartesian3.distance(Y,q),U=Ye.EncodedCartesian3.fromCartesian(Y,Ea),W=Be.Cartesian3.subtract(q,Y,Ma),de=(Z=Be.Cartesian3.normalize(W,_a)).x,Z.x=Z.y,Z.y=-de,me=fe/b,we=Q/b),I=0;I<8;I++){var ve=H+4*I,ye=N+2*I,Te=ve+3,Ee=I<4?1:-1,Me=2===I||3===I||6===I||7===I?1:-1;Be.Cartesian3.pack(ie.high,y,ve),y[Te]=se.x,Be.Cartesian3.pack(ie.low,T,ve),T[Te]=se.y,Be.Cartesian3.pack(ce,E,ve),E[Te]=se.z,Be.Cartesian3.pack(pe,M,ve),M[Te]=he*Ee,Be.Cartesian3.pack(ue,_,ve);var _e=ge*Me;0===_e&&Me<0&&(_e=9),_[Te]=_e,s&&(u[ve]=U.high.x,u[ve+1]=U.high.y,u[ve+2]=U.low.x,u[ve+3]=U.low.y,C[ve]=-F.y,C[ve+1]=F.x,C[ve+2]=X.y,C[ve+3]=-X.x,c[ve]=W.x,c[ve+1]=W.y,c[ve+2]=Z.x,c[ve+3]=Z.y,p[ye]=me*Ee,0===(_e=we*Me)&&Me<0&&(_e=9),p[ye+1]=_e)}var Oe=ua,be=ca,Ae=oa,ke=la,Pe=Be.Rectangle.fromCartographicArray(ia,sa),Se=qe.getMinimumMaximumHeights(Pe,d),Le=Se.minimumTerrainHeight,Ie=Se.maximumTerrainHeight;K+=Le,K+=Ie,Ze(ae,te,Le,Ie,Oe,Ae),Ze(B,G,Le,Ie,be,ke);var xe=Be.Cartesian3.multiplyByScalar(ue,ze.CesiumMath.EPSILON5,Oa);Be.Cartesian3.add(Oe,xe,Oe),Be.Cartesian3.add(be,xe,be),Be.Cartesian3.add(Ae,xe,Ae),Be.Cartesian3.add(ke,xe,ke),Je(Oe,be),Je(Ae,ke),Be.Cartesian3.pack(Oe,v,R),Be.Cartesian3.pack(be,v,R+3),Be.Cartesian3.pack(ke,v,R+6),Be.Cartesian3.pack(Ae,v,R+9),xe=Be.Cartesian3.multiplyByScalar(ue,-2*ze.CesiumMath.EPSILON5,Oa),Be.Cartesian3.add(Oe,xe,Oe),Be.Cartesian3.add(be,xe,be),Be.Cartesian3.add(Ae,xe,Ae),Be.Cartesian3.add(ke,xe,ke),Je(Oe,be),Je(Ae,ke),Be.Cartesian3.pack(Oe,v,R+12),Be.Cartesian3.pack(be,v,R+15),Be.Cartesian3.pack(ke,v,R+18),Be.Cartesian3.pack(Ae,v,R+21),D+=2,l+=3,N+=16,R+=24,H+=32,J+=ne,Q+=fe}var De=l=0;for(o=0;o<h;o++){for(I=0;I<ka;I++)w[l+I]=Aa[I]+De;De+=8,l+=ka}var Ne=ba;Ge.BoundingSphere.fromVertices(t,Be.Cartesian3.ZERO,3,Ne[0]),Ge.BoundingSphere.fromVertices(r,Be.Cartesian3.ZERO,3,Ne[1]);var Re=Ge.BoundingSphere.fromBoundingSpheres(Ne);Re.radius+=K/(2*h);var He={position:new Ve.GeometryAttribute({componentDatatype:je.ComponentDatatype.DOUBLE,componentsPerAttribute:3,normalize:!1,values:v}),startHiAndForwardOffsetX:Pa(y),startLoAndForwardOffsetY:Pa(T),startNormalAndForwardOffsetZ:Pa(E),endNormalAndTextureCoordinateNormalizationX:Pa(M),rightNormalAndTextureCoordinateNormalizationY:Pa(_)};s&&(He.startHiLo2D=Pa(u),He.offsetAndRight2D=Pa(c),He.startEndNormals2D=Pa(C),He.texcoordNormalization2D=new Ve.GeometryAttribute({componentDatatype:je.ComponentDatatype.FLOAT,componentsPerAttribute:2,normalize:!1,values:p}));return new Ve.Geometry({attributes:He,indices:w,boundingSphere:Re})}(o,C,A,k,b,O,s)}};var D=new Be.Cartesian3,N=new Ge.Matrix3,R=new Ge.Quaternion;function Ue(e,a,t,r){var n=Xe(t,a,D),i=Be.Cartesian3.dot(n,e);if(Fe<i||i<v){var s=Xe(r,t,x),o=i<v?ze.CesiumMath.PI_OVER_TWO:-ze.CesiumMath.PI_OVER_TWO,l=Ge.Quaternion.fromAxisAngle(s,o,R),u=Ge.Matrix3.fromQuaternion(l,N);return Ge.Matrix3.multiplyByVector(u,e,e),!0}return!1}var H=new Be.Cartographic,z=new Be.Cartesian3,B=new Be.Cartesian3;function We(e,a,t,r,n){var i=Be.Cartographic.toCartesian(a,e._ellipsoid,z),s=Be.Cartesian3.add(i,t,B),o=!1,l=e._ellipsoid,u=l.cartesianToCartographic(s,H);Math.abs(a.longitude-u.longitude)>ze.CesiumMath.PI_OVER_TWO&&(o=!0,s=Be.Cartesian3.subtract(i,t,B),u=l.cartesianToCartographic(s,H)),u.height=0;var c=e.project(u,n);return(n=Be.Cartesian3.subtract(c,r,n)).z=0,n=Be.Cartesian3.normalize(n,n),o&&Be.Cartesian3.negate(n,n),n}var le=new Be.Cartesian3,ue=new Be.Cartesian3;function Ze(e,a,t,r,n,i){var s=Be.Cartesian3.subtract(a,e,le);Be.Cartesian3.normalize(s,s);var o=t-X,l=Be.Cartesian3.multiplyByScalar(s,o,ue);Be.Cartesian3.add(e,l,n);var u=r-U,l=Be.Cartesian3.multiplyByScalar(s,u,ue);Be.Cartesian3.add(a,l,i)}var l=new Be.Cartesian3;function Je(e,a){var t=i.Plane.getPointDistance(K,e),r=i.Plane.getPointDistance(K,a),n=l;ze.CesiumMath.equalsEpsilon(t,0,ze.CesiumMath.EPSILON2)?(n=Xe(a,e,n),Be.Cartesian3.multiplyByScalar(n,ze.CesiumMath.EPSILON2,n),Be.Cartesian3.add(e,n,e)):ze.CesiumMath.equalsEpsilon(r,0,ze.CesiumMath.EPSILON2)&&(n=Xe(e,a,n),Be.Cartesian3.multiplyByScalar(n,ze.CesiumMath.EPSILON2,n),Be.Cartesian3.add(a,n,a))}var Qe=new Be.Cartographic,Ke=new Be.Cartographic,$e=new Be.Cartesian3,ea=new Be.Cartesian3,aa=new Be.Cartesian3,ta=new Be.Cartesian3,ra=new Be.Cartesian3,na=new Be.Cartesian3,ia=[Qe,Ke],sa=new Be.Rectangle,oa=new Be.Cartesian3,la=new Be.Cartesian3,ua=new Be.Cartesian3,ca=new Be.Cartesian3,Ca=new Be.Cartesian3,pa=new Be.Cartesian3,da=new Be.Cartesian3,ha=new Be.Cartesian3,ga=new Be.Cartesian3,fa=new Be.Cartesian3,ma=new Be.Cartesian3,wa=new Be.Cartesian3,va=new Be.Cartesian3,ya=new Be.Cartesian3,Ta=new Ye.EncodedCartesian3,Ea=new Ye.EncodedCartesian3,Ma=new Be.Cartesian3,_a=new Be.Cartesian3,Oa=new Be.Cartesian3,ba=[new Ge.BoundingSphere,new Ge.BoundingSphere],Aa=[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],ka=Aa.length;function Pa(e){return new Ve.GeometryAttribute({componentDatatype:je.ComponentDatatype.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}return y._projectNormal=We,function(e,a){return qe.initialize().then(function(){return G.defined(a)&&(e=y.unpack(e,a)),y.createGeometry(e)})}}); |