1 |
- define(["./when-92c6cf3c","./Rectangle-bab7abf0","./buildModuleUrl-3d15f25c","./Cartographic-67e73ef9","./ComponentDatatype-81047f82","./Check-52a7d806","./GeometryAttribute-ef657318","./GeometryAttributes-7f66ea53","./IndexDatatype-4c0e98b8","./Math-92c3b5f7","./PrimitiveType-cdfe443e","./VertexFormat-f496a3f1","./WallGeometryLibrary-74484942","./Intersect-b97e930a","./Event-3390cd7d","./RuntimeError-c6a62a80","./WebGLConstants-71f10989","./Cartesian2-6033fa5d","./FeatureDetection-067cb23c","./Cartesian4-ad128b5d","./arrayRemoveDuplicates-f7eaafa2","./PolylinePipeline-c0932bf7","./EllipsoidGeodesic-04ac0e77","./EllipsoidRhumbLine-8847d1a1","./IntersectionTests-a42760d9","./Plane-f8d22530"],(function(t,e,n,i,a,o,r,s,m,p,u,l,c,h,g,d,v,y,f,w,_,b,A,x,k,C){"use strict";var L=new i.t,E=new i.t,F=new i.t,P=new i.t,D=new i.t,H=new i.t,T=new i.t,G=new i.t;function O(n){var a=(n=t.u(n,t.u.EMPTY_OBJECT)).positions,r=n.maximumHeights,s=n.minimumHeights;if(!t.e(a))throw new o.t("options.positions is required.");if(t.e(r)&&r.length!==a.length)throw new o.t("options.positions and options.maximumHeights must have the same length.");if(t.e(s)&&s.length!==a.length)throw new o.t("options.positions and options.minimumHeights must have the same length.");var m=t.u(n.vertexFormat,l.n.DEFAULT),u=t.u(n.granularity,p.e.RADIANS_PER_DEGREE),c=t.u(n.ellipsoid,e.t.WGS84);this._positions=a,this._minimumHeights=s,this._maximumHeights=r,this._vertexFormat=l.n.clone(m),this._granularity=u,this._ellipsoid=e.t.clone(c),this._enuCenter=n.enuCenter,this._workerName="createWallGeometry";var h=1+a.length*i.t.packedLength+2;t.e(s)&&(h+=s.length),t.e(r)&&(h+=r.length),this.packedLength=h+e.t.packedLength+l.n.packedLength+1,this.packedLength+=i.t.packedLength}O.pack=function(n,a,r){if(!t.e(n))throw new o.t("value is required");if(!t.e(a))throw new o.t("array is required");r=t.u(r,0);var s,m=n._positions,p=m.length;for(a[r++]=p,s=0;s<p;++s,r+=i.t.packedLength)i.t.pack(m[s],a,r);var u=n._minimumHeights;if(p=t.e(u)?u.length:0,a[r++]=p,t.e(u))for(s=0;s<p;++s)a[r++]=u[s];var c=n._maximumHeights;if(p=t.e(c)?c.length:0,a[r++]=p,t.e(c))for(s=0;s<p;++s)a[r++]=c[s];return e.t.pack(n._ellipsoid,a,r),r+=e.t.packedLength,l.n.pack(n._vertexFormat,a,r),r+=l.n.packedLength,a[r++]=n._granularity,t.e(n._enuCenter)?i.t.pack(n._enuCenter,a,r):i.t.pack(i.t.ZERO,a,r),a};var z=e.t.clone(e.t.UNIT_SPHERE),R=new l.n,I={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:z,vertexFormat:R,granularity:void 0,enuCenter:void 0};return O.unpack=function(n,a,r){if(!t.e(n))throw new o.t("array is required");a=t.u(a,0);var s,m,p,u=n[a++],c=new Array(u);for(s=0;s<u;++s,a+=i.t.packedLength)c[s]=i.t.unpack(n,a);if((u=n[a++])>0)for(m=new Array(u),s=0;s<u;++s)m[s]=n[a++];if((u=n[a++])>0)for(p=new Array(u),s=0;s<u;++s)p[s]=n[a++];var h=e.t.unpack(n,a,z);a+=e.t.packedLength;var g=l.n.unpack(n,a,R);a+=l.n.packedLength;var d=n[a++],v=i.t.unpack(n,a);return i.t.equals(v,i.t.ZERO)&&(v=void 0),t.e(r)?(r._positions=c,r._minimumHeights=m,r._maximumHeights=p,r._ellipsoid=e.t.clone(h,r._ellipsoid),r._vertexFormat=l.n.clone(g,r._vertexFormat),r._granularity=d,r._enuCenter=v,r):(I.positions=c,I.minimumHeights=m,I.maximumHeights=p,I.granularity=d,I.enuCenter=v,new O(I))},O.fromConstantHeights=function(e){var n=(e=t.u(e,t.u.EMPTY_OBJECT)).positions;if(!t.e(n))throw new o.t("options.positions is required.");var i,a,r=e.minimumHeight,s=e.maximumHeight,m=t.e(r),p=t.e(s);if(m||p){var u=n.length;i=m?new Array(u):void 0,a=p?new Array(u):void 0;for(var l=0;l<u;++l)m&&(i[l]=r),p&&(a[l]=s)}return new O({positions:n,maximumHeights:a,minimumHeights:i,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat})},O.createGeometry=function(e){var o=e._positions,l=e._minimumHeights,h=e._maximumHeights,g=e._vertexFormat,d=e._granularity,v=e._ellipsoid,y=e._enuCenter,f=c.D.computePositions(v,o,h,l,d,!0,y);if(t.e(f.pos)){var w;t.e(y)&&(w=r.m.eastNorthUpToFixedFrame(y));var _,b=f.pos.bottomPositions,A=f.pos.topPositions,x=f.pos.numCorners,k=A.length,C=2*k,O=g.position?new Float64Array(C):void 0,z=g.normal?new Float32Array(C):void 0,R=g.tangent?new Float32Array(C):void 0,I=g.bitangent?new Float32Array(C):void 0,S=g.st?new Float32Array(C/3*2):void 0,q=0,N=0,U=0,B=0,M=0,W=G,Z=T,J=H,V=!0,Y=0,j=1/((k/=3)-o.length+1);for(_=0;_<k;++_){var K=3*_,Q=i.t.fromArray(A,K,L),X=i.t.fromArray(b,K,E);if(g.position&&(O[q++]=X.x,O[q++]=X.y,O[q++]=X.z,O[q++]=Q.x,O[q++]=Q.y,O[q++]=Q.z),g.st&&(S[M++]=Y,S[M++]=0,S[M++]=Y,S[M++]=1),g.normal||g.tangent||g.bitangent){var $,tt=i.t.clone(i.t.ZERO,D),et=v.scaleToGeodeticSurface(i.t.fromArray(A,K,E),E);if(_+1<k&&($=v.scaleToGeodeticSurface(i.t.fromArray(A,K+3,F),F),tt=i.t.fromArray(A,K+3,D)),V){var nt=i.t.subtract(tt,Q,P),it=i.t.subtract(et,Q,L);W=i.t.normalize(i.t.cross(it,nt,W),W),V=!1}i.t.equalsEpsilon($,et,p.e.EPSILON10)?V=!0:(Y+=j,g.tangent&&(Z=i.t.normalize(i.t.subtract($,et,Z),Z)),g.bitangent&&(J=i.t.normalize(i.t.cross(W,Z,J),J))),g.normal&&(t.e(y)&&(u.y.multiplyByPoint(w,W,W),i.t.normalize(W,W)),z[N++]=W.x,z[N++]=W.y,z[N++]=W.z,z[N++]=W.x,z[N++]=W.y,z[N++]=W.z),g.tangent&&(R[B++]=Z.x,R[B++]=Z.y,R[B++]=Z.z,R[B++]=Z.x,R[B++]=Z.y,R[B++]=Z.z),g.bitangent&&(I[U++]=J.x,I[U++]=J.y,I[U++]=J.z,I[U++]=J.x,I[U++]=J.y,I[U++]=J.z)}}var at=new s.a;g.position&&(at.position=new r.o({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:O})),g.normal&&(at.normal=new r.o({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:z})),g.tangent&&(at.tangent=new r.o({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:R})),g.bitangent&&(at.bitangent=new r.o({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:I})),g.st&&(at.st=new r.o({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:S}));var ot=C/3;C-=6*(x+1);var rt=m.IndexDatatype.createTypedArray(ot,C),st=0;for(_=0;_<ot-2;_+=2){var mt=_,pt=_+2,ut=i.t.fromArray(O,3*mt,L),lt=i.t.fromArray(O,3*pt,E);if(!i.t.equalsEpsilon(ut,lt,p.e.EPSILON10)){var ct=_+1,ht=_+3;rt[st++]=ct,rt[st++]=mt,rt[st++]=ht,rt[st++]=ht,rt[st++]=mt,rt[st++]=pt}}var gt=new r.I({attributes:at,indices:rt,primitiveType:u._0x29ba75.TRIANGLES,boundingSphere:new n.i.fromVertices(O)});return t.e(e._enuCenter)&&(gt.attributes.position.values.set(f.localPos.topPositions,0),gt.attributes.position.values.set(f.localPos.bottomPositions,gt.attributes.position.values.length/2),gt.attributes.position.componentDatatype=a.ComponentDatatype.FLOAT),gt}},function(n,i){return t.e(i)&&(n=O.unpack(n,i)),n._ellipsoid=e.t.clone(n._ellipsoid),O.createGeometry(n)}}));
|