1 |
- define(["exports","./when-b60132fc","./Check-7b2a090c","./buildModuleUrl-8cce5713","./ArcType-f8a754c5","./Cartesian4-b0ddc4ba","./FeatureDetection-ab6f364c","./EllipsoidRhumbLine-3ee4574a","./GeometryAttribute-923c2729","./GeometryAttributes-252e9929","./GeometryPipeline-54076c24","./IndexDatatype-3565e02d","./Math-31e539c2","./PolygonPipeline-f2f37e26"],(function(e,t,i,r,a,n,o,s,u,l,h,c,f,d){"use strict";function p(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(p.prototype,{length:{get:function(){return this._length}}}),p.prototype.enqueue=function(e){this._array.push(e),this._length++},p.prototype.dequeue=function(){if(0!==this._length){var e=this._array,t=this._offset,i=e[t];return e[t]=void 0,++t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,i}},p.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},p.prototype.contains=function(e){return-1!==this._array.indexOf(e)},p.prototype.clear=function(){this._array.length=this._offset=this._length=0},p.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var y={computeHierarchyPackedLength:function(e){for(var i=0,r=[e];r.length>0;){var a=r.pop();if(t.defined(a)){i+=2;var o=a.positions,s=a.holes;if(t.defined(o)&&(i+=o.length*n.Cartesian3.packedLength),t.defined(s))for(var u=s.length,l=0;l<u;++l)r.push(s[l])}}return i},packPolygonHierarchy:function(e,i,r){for(var a=[e];a.length>0;){var o=a.pop();if(t.defined(o)){var s=o.positions,u=o.holes;if(i[r++]=t.defined(s)?s.length:0,i[r++]=t.defined(u)?u.length:0,t.defined(s))for(var l=s.length,h=0;h<l;++h,r+=3)n.Cartesian3.pack(s[h],i,r);if(t.defined(u))for(var c=u.length,f=0;f<c;++f)a.push(u[f])}}return r},unpackPolygonHierarchy:function(e,t){for(var i=e[t++],r=e[t++],a=new Array(i),o=r>0?new Array(r):void 0,s=0;s<i;++s,t+=n.Cartesian3.packedLength)a[s]=n.Cartesian3.unpack(e,t);for(var u=0;u<r;++u)o[u]=y.unpackPolygonHierarchy(e,t),t=o[u].startingIndex,delete o[u].startingIndex;return{positions:a,holes:o,startingIndex:t}}},g=new n.Cartesian3;function v(e,t,i,r){return n.Cartesian3.subtract(t,e,g),n.Cartesian3.multiplyByScalar(g,i/r,g),n.Cartesian3.add(e,g,g),[g.x,g.y,g.z]}y.subdivideLineCount=function(e,t,i){var r=n.Cartesian3.distance(e,t)/i,a=Math.max(0,Math.ceil(f.Math3D.log2(r)));return Math.pow(2,a)};var m=new n.Cartographic,C=new n.Cartographic,b=new n.Cartographic,I=new n.Cartesian3;y.subdivideRhumbLineCount=function(e,t,i,r){var a=e.cartesianToCartographic(t,m),n=e.cartesianToCartographic(i,C),o=new s.EllipsoidRhumbLine(a,n,e).surfaceDistance/r,u=Math.max(0,Math.ceil(f.Math3D.log2(o)));return Math.pow(2,u)},y.subdivideLine=function(e,i,r,a){var o=y.subdivideLineCount(e,i,r),s=n.Cartesian3.distance(e,i),u=s/o;t.defined(a)||(a=[]);var l=a;l.length=3*o;for(var h=0,c=0;c<o;c++){var f=v(e,i,c*u,s);l[h++]=f[0],l[h++]=f[1],l[h++]=f[2]}return l},y.subdivideRhumbLine=function(e,i,r,a,n){var o=e.cartesianToCartographic(i,m),u=e.cartesianToCartographic(r,C),l=new s.EllipsoidRhumbLine(o,u,e),h=l.surfaceDistance/a,c=Math.max(0,Math.ceil(f.Math3D.log2(h))),d=Math.pow(2,c),p=l.surfaceDistance/d;t.defined(n)||(n=[]);var y=n;y.length=3*d;for(var g=0,v=0;v<d;v++){var T=l.interpolateUsingSurfaceDistance(v*p,b),w=e.cartographicToCartesian(T,I);y[g++]=w.x,y[g++]=w.y,y[g++]=w.z}return y};var T=new n.Cartesian3,w=new n.Cartesian3,E=new n.Cartesian3,x=new n.Cartesian3;y.scaleToGeodeticHeightExtruded=function(e,i,a,o,s){o=t.defaultValue(o,r.Ellipsoid.WGS84);var u=T,l=w,h=E,c=x;if(t.defined(e)&&t.defined(e.attributes)&&t.defined(e.attributes.position))for(var f=e.attributes.position.values,d=f.length/2,p=0;p<d;p+=3)n.Cartesian3.fromArray(f,p,h),o.geodeticSurfaceNormal(h,u),c=o.scaleToGeodeticSurface(h,c),l=n.Cartesian3.multiplyByScalar(u,a,l),l=n.Cartesian3.add(c,l,l),f[p+d]=l.x,f[p+1+d]=l.y,f[p+2+d]=l.z,s&&(c=n.Cartesian3.clone(h,c)),l=n.Cartesian3.multiplyByScalar(u,i,l),l=n.Cartesian3.add(c,l,l),f[p]=l.x,f[p+1]=l.y,f[p+2]=l.z;return e},y.polygonOutlinesFromHierarchy=function(e,i,r){var o,s,u,l=[],h=new p;for(h.enqueue(e);0!==h.length;){var c=h.dequeue(),f=c.positions;if(i)for(u=f.length,o=0;o<u;o++)r.scaleToGeodeticSurface(f[o],f[o]);if(!((f=a.arrayRemoveDuplicates(f,n.Cartesian3.equalsEpsilon,!0)).length<3)){var d=c.holes?c.holes.length:0;for(o=0;o<d;o++){var y=c.holes[o],g=y.positions;if(i)for(u=g.length,s=0;s<u;++s)r.scaleToGeodeticSurface(g[s],g[s]);if(!((g=a.arrayRemoveDuplicates(g,n.Cartesian3.equalsEpsilon,!0)).length<3)){l.push(g);var v=0;for(t.defined(y.holes)&&(v=y.holes.length),s=0;s<v;s++)h.enqueue(y.holes[s])}}l.push(f)}}return l};var M=new n.Cartesian3(6378137,6378137,6378137);y.polygonsFromHierarchy=function(e,i,r,o){var s=[],u=[],l=new p;for(l.enqueue(e);0!==l.length;){var h,c,y,g=l.dequeue(),v=g.positions,m=g.holes,C=v.slice();if(r)for(c=v.length,h=0;h<c;h++)o.scaleToGeodeticSurface(v[h],C[h]);if(t.defined(o)&&!n.Cartesian3.equals(o._radii,M)&&(y=f.Math3D.EPSILON7),!((v=a.arrayRemoveDuplicates(C,n.Cartesian3.equalsEpsilon,!0,y)).length<3)){var b=i(v);if(t.defined(b)){var I=[],T=d.PolygonPipeline.computeWindingOrder2D(b);T===d.WindingOrder.CLOCKWISE&&(b.reverse(),v=v.slice().reverse());var w,E=v.slice(),x=t.defined(m)?m.length:0,P=[];for(h=0;h<x;h++){var D=m[h],_=D.positions;if(r)for(c=_.length,w=0;w<c;++w)o.scaleToGeodeticSurface(_[w],_[w]);if(!((_=a.arrayRemoveDuplicates(_,n.Cartesian3.equalsEpsilon,!0,f.Math3D.EPSILON7)).length<3)){var A=i(_);if(t.defined(A)){(T=d.PolygonPipeline.computeWindingOrder2D(A))===d.WindingOrder.CLOCKWISE&&(A.reverse(),_=_.slice().reverse()),P.push(_),I.push(E.length),E=E.concat(_),b=b.concat(A);var G=0;for(t.defined(D.holes)&&(G=D.holes.length),w=0;w<G;w++)l.enqueue(D.holes[w])}}}s.push({outerRing:v,holes:P}),u.push({positions:E,positions2D:b,holes:I})}}}return{hierarchy:s,polygons:u}};var P=new r.Cartesian2,D=new n.Cartesian3,_=new u.Quaternion,A=new r.Matrix3;y.computeBoundingRectangle=function(e,i,a,o,s){for(var l=u.Quaternion.fromAxisAngle(e,o,_),h=r.Matrix3.fromQuaternion(l,A),c=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY,y=a.length,g=0;g<y;++g){var v=n.Cartesian3.clone(a[g],D);r.Matrix3.multiplyByVector(h,v,v);var m=i(v,P);t.defined(m)&&(c=Math.min(c,m.x),f=Math.max(f,m.x),d=Math.min(d,m.y),p=Math.max(p,m.y))}return s.x=c,s.y=d,s.width=f-c,s.height=p-d,s},y.createGeometryFromPositions=function(e,t,i,n,s,l){var c=d.PolygonPipeline.triangulate(t.positions2D,t.holes);c.length<3&&(c=[0,1,2]);var f=t.positions;if(n){for(var p=f.length,y=new Array(3*p),g=0,v=0;v<p;v++){var m=f[v];y[g++]=m.x,y[g++]=m.y,y[g++]=m.z}var C=new u.Geometry({attributes:{position:new u.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:y})},indices:c,primitiveType:r.PrimitiveType.TRIANGLES});return s.normal?h.GeometryPipeline.computeNormal(C):C}return l===a.ArcType.GEODESIC?d.PolygonPipeline.computeSubdivision(e,f,c,i):l===a.ArcType.RHUMB?d.PolygonPipeline.computeRhumbLineSubdivision(e,f,c,i):void 0};var G=[],L=new n.Cartesian3,S=new n.Cartesian3;y.computeWallGeometry=function(e,t,i,s,h){var d,p,g,v,m,C=e.length,b=0;if(s)for(p=3*C*2,d=new Array(2*p),g=0;g<C;g++)v=e[g],m=e[(g+1)%C],d[b]=d[b+p]=v.x,d[++b]=d[b+p]=v.y,d[++b]=d[b+p]=v.z,d[++b]=d[b+p]=m.x,d[++b]=d[b+p]=m.y,d[++b]=d[b+p]=m.z,++b;else{var I=f.Math3D.chordLength(i,t.maximumRadius),T=0;if(h===a.ArcType.GEODESIC)for(g=0;g<C;g++)T+=y.subdivideLineCount(e[g],e[(g+1)%C],I);else if(h===a.ArcType.RHUMB)for(g=0;g<C;g++)T+=y.subdivideRhumbLineCount(t,e[g],e[(g+1)%C],I);for(p=3*(T+C),d=new Array(2*p),g=0;g<C;g++){var w;v=e[g],m=e[(g+1)%C],h===a.ArcType.GEODESIC?w=y.subdivideLine(v,m,I,G):h===a.ArcType.RHUMB&&(w=y.subdivideRhumbLine(t,v,m,I,G));for(var E=w.length,x=0;x<E;++x,++b)d[b]=w[x],d[b+p]=w[x];d[b]=m.x,d[b+p]=m.x,d[++b]=m.y,d[b+p]=m.y,d[++b]=m.z,d[b+p]=m.z,++b}}C=d.length;var M=c.IndexDatatype.createTypedArray(C/3,C-6*e.length),P=0;for(C/=6,g=0;g<C;g++){var D=g,_=D+1,A=D+C,N=A+1;v=n.Cartesian3.fromArray(d,3*D,L),m=n.Cartesian3.fromArray(d,3*_,S),n.Cartesian3.equalsEpsilon(v,m,f.Math3D.EPSILON10,f.Math3D.EPSILON10)||(M[P++]=D,M[P++]=A,M[P++]=_,M[P++]=_,M[P++]=A,M[P++]=N)}return new u.Geometry({attributes:new l.GeometryAttributes({position:new u.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:d})}),indices:M,primitiveType:r.PrimitiveType.TRIANGLES})},e.GeometryInstance=function(e){e=t.defaultValue(e,t.defaultValue.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=r.Matrix4.clone(t.defaultValue(e.modelMatrix,r.Matrix4.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=t.defaultValue(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0},e.PolygonGeometryLibrary=y}));
|