wangzhibo
2021-09-07 89da62649161571834d3f8df7ce36f9967e6ba04
lib/Cesium/Workers/createVectorTileClampedPolylines.js
@@ -1 +1 @@
define(["./AttributeCompression-a99f24b9","./Cartesian2-5b63e672","./IndexDatatype-4e56bcfa","./Math-b53708b3","./createTaskProcessorWorker","./Check-64f87f7d","./when-ca391574","./WebGLConstants-95ceb4e9"],function(B,R,U,T,a,e,t,r){"use strict";var V=32767,i=Math.cos(T.CesiumMath.toRadians(150)),W=new R.Cartographic,q=new R.Cartesian3;var z=new R.Cartographic,L=new R.Cartographic;function _(a){var e=8*a,t=3*e,r=4*e;this.startEllipsoidNormals=new Float32Array(t),this.endEllipsoidNormals=new Float32Array(t),this.startPositionAndHeights=new Float32Array(r),this.startFaceNormalAndVertexCornerIds=new Float32Array(r),this.endPositionAndHeights=new Float32Array(r),this.endFaceNormalAndHalfWidths=new Float32Array(r),this.vertexBatchIds=new Uint16Array(e),this.indices=U.IndexDatatype.createTypedArray(e,36*a),this.vec3Offset=0,this.vec4Offset=0,this.batchIdOffset=0,this.indexOffset=0,this.volumeStartIndex=0}var o=new R.Cartesian3,d=new R.Cartesian3;function H(a,e,t,r,s){var n=R.Cartesian3.subtract(t,e,d),t=R.Cartesian3.subtract(e,a,o);return R.Cartesian3.normalize(n,n),R.Cartesian3.normalize(t,t),R.Cartesian3.dot(n,t)<i&&(t=R.Cartesian3.multiplyByScalar(t,-1,o)),R.Cartesian3.add(n,t,s),R.Cartesian3.equals(s,R.Cartesian3.ZERO)&&(s=R.Cartesian3.subtract(a,e)),R.Cartesian3.cross(s,r,s),R.Cartesian3.cross(r,s,s),R.Cartesian3.normalize(s,s),s}var O=[0,2,6,0,6,4,0,1,3,0,3,2,0,4,5,0,5,1,5,3,1,5,7,3,7,5,4,7,4,6,7,6,2,7,2,3],P=O.length,S=new R.Cartesian3,D=new R.Cartesian3,M=new R.Cartesian3,G=new R.Cartesian3,Z=new R.Cartesian3;_.prototype.addVolume=function(a,e,t,r,s,n,i,o,d,l){for(var c=R.Cartesian3.add(e,d,S),h=l.geodeticSurfaceNormal(c,D),c=R.Cartesian3.add(t,d,S),f=l.geodeticSurfaceNormal(c,G),u=H(a,e,t,h,M),C=H(r,t,e,f,Z),p=this.startEllipsoidNormals,m=this.endEllipsoidNormals,b=this.startPositionAndHeights,A=this.startFaceNormalAndVertexCornerIds,v=this.endPositionAndHeights,w=this.endFaceNormalAndHalfWidths,g=this.vertexBatchIds,N=this.batchIdOffset,y=this.vec3Offset,k=this.vec4Offset,I=0;I<8;I++)R.Cartesian3.pack(h,p,y),R.Cartesian3.pack(f,m,y),R.Cartesian3.pack(e,b,k),b[k+3]=s,R.Cartesian3.pack(t,v,k),v[k+3]=n,R.Cartesian3.pack(u,A,k),A[k+3]=I,R.Cartesian3.pack(C,w,k),w[k+3]=i,g[N++]=o,y+=3,k+=4;this.batchIdOffset=N,this.vec3Offset=y,this.vec4Offset=k;var x=this.indices,E=this.volumeStartIndex,F=this.indexOffset;for(I=0;I<P;I++)x[F+I]=O[I]+E;this.volumeStartIndex+=8,this.indexOffset+=P};var Y=new R.Rectangle,j=new R.Ellipsoid,J=new R.Cartesian3,K=new R.Cartesian3,Q=new R.Cartesian3,X=new R.Cartesian3,$=new R.Cartesian3;return a(function(a,e){var t=new Uint16Array(a.positions),r=new Uint16Array(a.widths),s=new Uint32Array(a.counts),n=new Uint16Array(a.batchIds),i=Y,o=j,d=J,l=new Float64Array(a.packedBuffer),c=0,h=l[c++],f=l[c++];R.Rectangle.unpack(l,2,i),c+=R.Rectangle.packedLength,R.Ellipsoid.unpack(l,c,o),c+=R.Ellipsoid.packedLength,R.Cartesian3.unpack(l,c,d);var a=t.length/3,l=t.subarray(0,a),c=t.subarray(a,2*a),u=t.subarray(2*a,3*a);B.AttributeCompression.zigZagDeltaDecode(l,c,u),function(a,e,t,r){for(var s=r.length,n=a.length,i=new Uint8Array(n),o=z,d=L,l=0,c=0;c<s;c++){for(var h=r[c],f=h,u=1;u<h;u++){var C=l+u,p=C-1;d.longitude=a[C],d.latitude=e[C],o.longitude=a[p],o.latitude=e[p],R.Cartographic.equals(d,o)&&(f--,i[p]=1)}r[c]=f,l+=h}for(var m=0,b=0;b<n;b++)1!==i[b]&&(a[m]=a[b],e[m]=e[b],t[m]=t[b],m++)}(l,c,u,s);for(var C=s.length,p=0,m=0;m<C;m++)p+=s[m]-1;var b=new _(p),A=function(a,e,t,r,s,n,i,o){for(var d=a.length,l=new Float32Array(3*d),c=0;c<d;++c){var h=a[c],f=e[c],u=t[c],h=T.CesiumMath.lerp(r.west,r.east,h/V),f=T.CesiumMath.lerp(r.south,r.north,f/V),u=T.CesiumMath.lerp(s,n,u/V),u=R.Cartographic.fromRadians(h,f,u,W),u=i.cartographicToCartesian(u,q),u=R.Cartesian3.subtract(u,o,q);R.Cartesian3.pack(u,l,3*c)}return l}(l,c,u,i,h,f,o,d),v=0,w=0;for(m=0;m<C;m++){for(var g=s[m]-1,N=.5*r[m],y=n[m],k=v,I=0;I<g;I++){var x=R.Cartesian3.unpack(A,v,Q),E=R.Cartesian3.unpack(A,v+3,X),F=u[w],H=u[w+1],F=T.CesiumMath.lerp(h,f,F/V),H=T.CesiumMath.lerp(h,f,H/V);w++;var O,P,S,D=K,M=$;0===I?(O=k+3*g,P=R.Cartesian3.unpack(A,O,K),R.Cartesian3.equals(P,x)?R.Cartesian3.unpack(A,O-3,D):(S=R.Cartesian3.subtract(x,E,K),D=R.Cartesian3.add(S,x,K))):R.Cartesian3.unpack(A,v-3,D),I===g-1?(S=R.Cartesian3.unpack(A,k,$),R.Cartesian3.equals(S,E)?R.Cartesian3.unpack(A,k+3,M):(S=R.Cartesian3.subtract(E,x,$),M=R.Cartesian3.add(S,E,$))):R.Cartesian3.unpack(A,v+6,M),b.addVolume(D,x,E,M,F,H,N,y,d,o),v+=3}v+=3,w++}return i=b.indices,e.push(b.startEllipsoidNormals.buffer),e.push(b.endEllipsoidNormals.buffer),e.push(b.startPositionAndHeights.buffer),e.push(b.startFaceNormalAndVertexCornerIds.buffer),e.push(b.endPositionAndHeights.buffer),e.push(b.endFaceNormalAndHalfWidths.buffer),e.push(b.vertexBatchIds.buffer),e.push(i.buffer),{indexDatatype:2===i.BYTES_PER_ELEMENT?U.IndexDatatype.UNSIGNED_SHORT:U.IndexDatatype.UNSIGNED_INT,startEllipsoidNormals:b.startEllipsoidNormals.buffer,endEllipsoidNormals:b.endEllipsoidNormals.buffer,startPositionAndHeights:b.startPositionAndHeights.buffer,startFaceNormalAndVertexCornerIds:b.startFaceNormalAndVertexCornerIds.buffer,endPositionAndHeights:b.endPositionAndHeights.buffer,endFaceNormalAndHalfWidths:b.endFaceNormalAndHalfWidths.buffer,vertexBatchIds:b.vertexBatchIds.buffer,indices:i.buffer}})});
define(["./AttributeCompression-56959beb","./Cartesian2-40b13f31","./combine-83aa7971","./IndexDatatype-b42089ce","./Math-87254c13","./createTaskProcessorWorker","./Check-3917d765","./when-7b580518","./WebGLConstants-4e26b85a"],function(R,T,V,W,z,a,e,t,r){"use strict";var q=32767,i=Math.cos(z.CesiumMath.toRadians(150)),L=new T.Cartographic,_=new T.Cartesian3;var G=new T.Cartographic,Z=new T.Cartographic;function Y(a){var e=8*a,t=3*e,r=4*e;this.startEllipsoidNormals=new Float32Array(t),this.endEllipsoidNormals=new Float32Array(t),this.startPositionAndHeights=new Float32Array(r),this.startFaceNormalAndVertexCornerIds=new Float32Array(r),this.endPositionAndHeights=new Float32Array(r),this.endFaceNormalAndHalfWidths=new Float32Array(r),this.vertexBatchIds=new Uint16Array(e),this.indices=W.IndexDatatype.createTypedArray(e,36*a),this.vec3Offset=0,this.vec4Offset=0,this.batchIdOffset=0,this.indexOffset=0,this.volumeStartIndex=0}var o=new T.Cartesian3,d=new T.Cartesian3;function H(a,e,t,r,s){var n=T.Cartesian3.subtract(t,e,d),t=T.Cartesian3.subtract(e,a,o);return T.Cartesian3.normalize(n,n),T.Cartesian3.normalize(t,t),T.Cartesian3.dot(n,t)<i&&(t=T.Cartesian3.multiplyByScalar(t,-1,o)),T.Cartesian3.add(n,t,s),T.Cartesian3.equals(s,T.Cartesian3.ZERO)&&(s=T.Cartesian3.subtract(a,e)),T.Cartesian3.cross(s,r,s),T.Cartesian3.cross(r,s,s),T.Cartesian3.normalize(s,s),s}var O=[0,2,6,0,6,4,0,1,3,0,3,2,0,4,5,0,5,1,5,3,1,5,7,3,7,5,4,7,4,6,7,6,2,7,2,3],P=O.length,D=new T.Cartesian3,S=new T.Cartesian3,M=new T.Cartesian3,U=new T.Cartesian3,B=new T.Cartesian3;Y.prototype.addVolume=function(a,e,t,r,s,n,i,o,d,l){for(var f=T.Cartesian3.add(e,d,D),c=l.geodeticSurfaceNormal(f,S),f=T.Cartesian3.add(t,d,D),h=l.geodeticSurfaceNormal(f,U),u=H(a,e,t,c,M),C=H(r,t,e,h,B),p=this.startEllipsoidNormals,b=this.endEllipsoidNormals,m=this.startPositionAndHeights,A=this.startFaceNormalAndVertexCornerIds,v=this.endPositionAndHeights,w=this.endFaceNormalAndHalfWidths,g=this.vertexBatchIds,y=this.batchIdOffset,N=this.vec3Offset,k=this.vec4Offset,I=0;I<8;I++)T.Cartesian3.pack(c,p,N),T.Cartesian3.pack(h,b,N),T.Cartesian3.pack(e,m,k),m[k+3]=s,T.Cartesian3.pack(t,v,k),v[k+3]=n,T.Cartesian3.pack(u,A,k),A[k+3]=I,T.Cartesian3.pack(C,w,k),w[k+3]=i,g[y++]=o,N+=3,k+=4;this.batchIdOffset=y,this.vec3Offset=N,this.vec4Offset=k;var x=this.indices,E=this.volumeStartIndex,F=this.indexOffset;for(I=0;I<P;I++)x[F+I]=O[I]+E;this.volumeStartIndex+=8,this.indexOffset+=P};var j=new T.Rectangle,J=new T.Ellipsoid,K=new T.Cartesian3,Q=new T.Cartesian3,X=new T.Cartesian3,$=new T.Cartesian3,aa=new T.Cartesian3;return a(function(a,e){var t=new Uint16Array(a.positions),r=new Uint16Array(a.widths),s=new Uint32Array(a.counts),n=new Uint16Array(a.batchIds),i=j,o=J,d=K,l=new Float64Array(a.packedBuffer),f=0,c=l[f++],h=l[f++];T.Rectangle.unpack(l,2,i),f+=T.Rectangle.packedLength,T.Ellipsoid.unpack(l,f,o),f+=T.Ellipsoid.packedLength,T.Cartesian3.unpack(l,f,d);var u=t.length/3,l=t.subarray(0,u),f=t.subarray(u,2*u),C=t.subarray(2*u,3*u);R.AttributeCompression.zigZagDeltaDecode(l,f,C),function(a,e,t,r){for(var s=r.length,n=a.length,i=new Uint8Array(n),o=G,d=Z,l=0,f=0;f<s;f++){for(var c=r[f],h=c,u=1;u<c;u++){var C=l+u,p=C-1;d.longitude=a[C],d.latitude=e[C],o.longitude=a[p],o.latitude=e[p],T.Cartographic.equals(d,o)&&(h--,i[p]=1)}r[f]=h,l+=c}for(var b=0,m=0;m<n;m++)1!==i[m]&&(a[b]=a[m],e[b]=e[m],t[b]=t[m],b++)}(l,f,C,s);for(var p=s.length,b=0,m=0;m<p;m++)b+=s[m]-1;var A=new Y(b),v=function(a,e,t,r,s,n,i){for(var o=a.length,d=new Float64Array(3*o),l=0;l<o;++l){var f=a[l],c=e[l],h=t[l],f=z.CesiumMath.lerp(r.west,r.east,f/q),c=z.CesiumMath.lerp(r.south,r.north,c/q),h=z.CesiumMath.lerp(s,n,h/q),h=T.Cartographic.fromRadians(f,c,h,L),h=i.cartographicToCartesian(h,_);T.Cartesian3.pack(h,d,3*l)}return d}(l,f,C,i,c,h,o),u=l.length,w=new Float32Array(3*u);for(m=0;m<u;++m)w[3*m]=v[3*m]-d.x,w[3*m+1]=v[3*m+1]-d.y,w[3*m+2]=v[3*m+2]-d.z;var g=0,y=0;for(m=0;m<p;m++){for(var N=s[m]-1,k=.5*r[m],I=n[m],x=g,E=0;E<N;E++){var F=T.Cartesian3.unpack(w,g,X),H=T.Cartesian3.unpack(w,g+3,$),O=C[y],P=C[y+1],O=z.CesiumMath.lerp(c,h,O/q),P=z.CesiumMath.lerp(c,h,P/q);y++;var D,S,M,U=Q,B=aa;0===E?(S=T.Cartesian3.unpack(w,D=x+3*N,Q),T.Cartesian3.equals(S,F)?T.Cartesian3.unpack(w,D-3,U):(M=T.Cartesian3.subtract(F,H,Q),U=T.Cartesian3.add(M,F,Q))):T.Cartesian3.unpack(w,g-3,U),E===N-1?(M=T.Cartesian3.unpack(w,x,aa),T.Cartesian3.equals(M,H)?T.Cartesian3.unpack(w,x+3,B):(M=T.Cartesian3.subtract(H,F,aa),B=T.Cartesian3.add(M,H,aa))):T.Cartesian3.unpack(w,g+6,B),A.addVolume(U,F,H,B,O,P,k,I,d,o),g+=3}g+=3,y++}return l=A.indices,e.push(A.startEllipsoidNormals.buffer),e.push(A.endEllipsoidNormals.buffer),e.push(A.startPositionAndHeights.buffer),e.push(A.startFaceNormalAndVertexCornerIds.buffer),e.push(A.endPositionAndHeights.buffer),e.push(A.endFaceNormalAndHalfWidths.buffer),e.push(A.vertexBatchIds.buffer),e.push(l.buffer),l={indexDatatype:2===l.BYTES_PER_ELEMENT?W.IndexDatatype.UNSIGNED_SHORT:W.IndexDatatype.UNSIGNED_INT,startEllipsoidNormals:A.startEllipsoidNormals.buffer,endEllipsoidNormals:A.endEllipsoidNormals.buffer,startPositionAndHeights:A.startPositionAndHeights.buffer,startFaceNormalAndVertexCornerIds:A.startFaceNormalAndVertexCornerIds.buffer,endPositionAndHeights:A.endPositionAndHeights.buffer,endFaceNormalAndHalfWidths:A.endFaceNormalAndHalfWidths.buffer,vertexBatchIds:A.vertexBatchIds.buffer,indices:l.buffer},a.keepDecodedPositions&&(a=function(a){for(var e=a.length,t=new Uint32Array(e+1),r=0,s=0;s<e;++s)t[s]=r,r+=a[s];return t[e]=r,t}(s),e.push(v.buffer,a.buffer),l=V.combine(l,{decodedPositions:v.buffer,decodedPositionOffsets:a.buffer})),l})});