bmh_cesium/public/lib/cesiumjs/CesiumUnminified/Workers/createRectangleGeometry.js
2025-03-10 07:23:50 +08:00

2 lines
16 KiB
JavaScript

/* 2020-9-22 15:23:25 | 版权所有 军懋国兴 */
define(["./when-cbf8cd21","./Check-35e1a91d","./Math-69007a69","./Cartesian2-43e3a3be","./Transforms-2d1ac5ec","./RuntimeError-f4c64df1","./WebGLConstants-95ceb4e9","./ComponentDatatype-607c9a0c","./GeometryAttribute-2303bbfb","./GeometryAttributes-90846c5f","./AttributeCompression-ea810287","./GeometryPipeline-1ea64cde","./EncodedCartesian3-29a09d7b","./IndexDatatype-79bb407c","./IntersectionTests-459f6f08","./Plane-46b5436f","./GeometryOffsetAttribute-9c676324","./VertexFormat-fe64931e","./GeometryInstance-6264cc0f","./EllipsoidRhumbLine-357c11e7","./PolygonPipeline-2ee85025","./RectangleGeometryLibrary-f62aa487"],function(mt,g,pt,gt,I,t,e,dt,yt,r,a,ft,n,ht,o,i,vt,bt,_t,s,At,H){"use strict";var wt=new gt.Cartesian3,xt=new gt.Cartesian3,Ct=new gt.Cartesian3,Rt=new gt.Cartesian3,_=new gt.Rectangle,z=new gt.Cartesian2,A=new I.BoundingSphere,w=new I.BoundingSphere;function Et(t,e){var a=new yt.Geometry({attributes:new r.GeometryAttributes,primitiveType:yt.PrimitiveType.TRIANGLES});return a.attributes.position=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:e.positions}),t.normal&&(a.attributes.normal=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e.normals})),t.tangent&&(a.attributes.tangent=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e.tangents})),t.bitangent&&(a.attributes.bitangent=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e.bitangents})),a}var Ft=new gt.Cartesian3,Gt=new gt.Cartesian3;function Pt(t,e){var a=t._vertexFormat,r=t._ellipsoid,n=e.height,o=e.width,i=e.northCap,s=e.southCap,l=0,u=n,c=n,m=0;i&&(--c,m+=l=1),s&&(--u,--c,m+=1),m+=o*c;for(var p=a.position?new Float64Array(3*m):void 0,g=a.st?new Float32Array(2*m):void 0,d=0,y=0,f=wt,h=z,v=Number.MAX_VALUE,b=Number.MAX_VALUE,_=-Number.MAX_VALUE,A=-Number.MAX_VALUE,w=l;w<u;++w)for(var x=0;x<o;++x)H.RectangleGeometryLibrary.computePosition(e,r,a.st,w,x,f,h),p[d++]=f.x,p[d++]=f.y,p[d++]=f.z,a.st&&(g[y++]=h.x,g[y++]=h.y,v=Math.min(v,h.x),b=Math.min(b,h.y),_=Math.max(_,h.x),A=Math.max(A,h.y));if(i&&(H.RectangleGeometryLibrary.computePosition(e,r,a.st,0,0,f,h),p[d++]=f.x,p[d++]=f.y,p[d++]=f.z,a.st&&(g[y++]=h.x,g[y++]=h.y,v=h.x,b=h.y,_=h.x,A=h.y)),s&&(H.RectangleGeometryLibrary.computePosition(e,r,a.st,n-1,0,f,h),p[d++]=f.x,p[d++]=f.y,p[d]=f.z,a.st&&(g[y++]=h.x,g[y]=h.y,v=Math.min(v,h.x),b=Math.min(b,h.y),_=Math.max(_,h.x),A=Math.max(A,h.y))),a.st&&(v<0||b<0||1<_||1<A))for(var C=0;C<g.length;C+=2)g[C]=(g[C]-v)/(_-v),g[C+1]=(g[C+1]-b)/(A-b);var R=function(t,e,a,r){var n=t.length,o=e.normal?new Float32Array(n):void 0,i=e.tangent?new Float32Array(n):void 0,s=e.bitangent?new Float32Array(n):void 0,l=0,u=Rt,c=Ct,m=xt;if(e.normal||e.tangent||e.bitangent)for(var p=0;p<n;p+=3){var g=gt.Cartesian3.fromArray(t,p,wt),d=l+1,y=l+2,m=a.geodeticSurfaceNormal(g,m);(e.tangent||e.bitangent)&&(gt.Cartesian3.cross(gt.Cartesian3.UNIT_Z,m,c),I.Matrix3.multiplyByVector(r,c,c),gt.Cartesian3.normalize(c,c),e.bitangent&&gt.Cartesian3.normalize(gt.Cartesian3.cross(m,c,u),u)),e.normal&&(o[l]=m.x,o[d]=m.y,o[y]=m.z),e.tangent&&(i[l]=c.x,i[d]=c.y,i[y]=c.z),e.bitangent&&(s[l]=u.x,s[d]=u.y,s[y]=u.z),l+=3}return Et(e,{positions:t,normals:o,tangents:i,bitangents:s})}(p,a,r,e.tangentRotationMatrix),E=6*(o-1)*(c-1);i&&(E+=3*(o-1)),s&&(E+=3*(o-1));for(var F=ht.IndexDatatype.createTypedArray(m,E),G=0,P=0,V=0;V<c-1;++V){for(var D=0;D<o-1;++D){var L=G+o,M=L+1,O=G+1;F[P++]=G,F[P++]=L,F[P++]=O,F[P++]=O,F[P++]=L,F[P++]=M,++G}++G}if(i||s){var T,N,k=m-1,S=m-1;if(i&&s&&(k=m-2),G=0,i)for(V=0;V<o-1;V++)N=(T=G)+1,F[P++]=k,F[P++]=T,F[P++]=N,++G;if(s)for(G=(c-1)*o,V=0;V<o-1;V++)N=(T=G)+1,F[P++]=T,F[P++]=S,F[P++]=N,++G}return R.indices=F,a.st&&(R.attributes.st=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:g})),R}function Vt(t,e,a,r,n){return t[e++]=r[a],t[e++]=r[a+1],t[e++]=r[a+2],t[e++]=n[a],t[e++]=n[a+1],t[e]=n[a+2],t}function Dt(t,e,a,r){return t[e++]=r[a],t[e++]=r[a+1],t[e++]=r[a],t[e]=r[a+1],t}var Lt=new bt.VertexFormat;function x(t,e){var a,r=t._shadowVolume,n=t._offsetAttribute,o=t._vertexFormat,i=t._extrudedHeight,s=t._surfaceHeight,l=t._ellipsoid,u=e.height,c=e.width;r&&((a=bt.VertexFormat.clone(o,Lt)).normal=!0,t._vertexFormat=a);var m=Pt(t,e);r&&(t._vertexFormat=o);var p=At.PolygonPipeline.scaleToGeodeticHeight(m.attributes.position.values,s,l,!1),g=2*(st=(p=new Float64Array(p)).length),d=new Float64Array(g);d.set(p);var y=At.PolygonPipeline.scaleToGeodeticHeight(m.attributes.position.values,i,l);d.set(y,st),m.attributes.position.values=d;var f,h,v,b=o.normal?new Float32Array(g):void 0,_=o.tangent?new Float32Array(g):void 0,A=o.bitangent?new Float32Array(g):void 0,w=o.st?new Float32Array(g/3*2):void 0;if(o.normal){for(h=m.attributes.normal.values,b.set(h),C=0;C<st;C++)h[C]=-h[C];b.set(h,st),m.attributes.normal.values=b}if(r){h=m.attributes.normal.values,o.normal||(m.attributes.normal=void 0);for(var x=new Float32Array(g),C=0;C<st;C++)h[C]=-h[C];x.set(h,st),m.attributes.extrudeDirection=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:x})}var R,E,F,G=mt.defined(n);if(G&&(R=st/3*2,E=new Uint8Array(R),E=n===vt.GeometryOffsetAttribute.TOP?vt.arrayFill(E,1,0,R/2):(v=n===vt.GeometryOffsetAttribute.NONE?0:1,vt.arrayFill(E,v)),m.attributes.applyOffset=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})),o.tangent){var P=m.attributes.tangent.values;for(_.set(P),C=0;C<st;C++)P[C]=-P[C];_.set(P,st),m.attributes.tangent.values=_}o.bitangent&&(F=m.attributes.bitangent.values,A.set(F),A.set(F,st),m.attributes.bitangent.values=A),o.st&&(f=m.attributes.st.values,w.set(f),w.set(f,st/3*2),m.attributes.st.values=w);var V=m.indices,D=V.length,L=st/3,M=ht.IndexDatatype.createTypedArray(g/3,2*D);for(M.set(V),C=0;C<D;C+=3)M[C+D]=V[C+2]+L,M[C+1+D]=V[C+1]+L,M[C+2+D]=V[C]+L;m.indices=M;var O=e.northCap,T=e.southCap,N=u,k=2,S=0,I=4,H=4;O&&(--k,--N,S+=1,I-=2,--H),T&&(--k,--N,S+=1,I-=2,--H);var z=2*((S+=k*c+2*N-I)+H),B=new Float64Array(3*z),U=r?new Float32Array(3*z):void 0,q=G?new Uint8Array(z):void 0,Y=o.st?new Float32Array(2*z):void 0,j=n===vt.GeometryOffsetAttribute.TOP;G&&!j&&(v=n===vt.GeometryOffsetAttribute.ALL?1:0,q=vt.arrayFill(q,v));var X=0,Q=0,W=0,J=0,Z=c*N;for(C=0;C<Z;C+=c)B=Vt(B,X,$=3*C,p,y),X+=6,o.st&&(Y=Dt(Y,Q,2*C,f),Q+=4),r&&(W+=3,U[W++]=h[$],U[W++]=h[$+1],U[W++]=h[$+2]),j&&(q[J++]=1,J+=1);if(T){var K=O?1+Z:Z,$=3*K;for(C=0;C<2;C++)B=Vt(B,X,$,p,y),X+=6,o.st&&(Y=Dt(Y,Q,2*K,f),Q+=4),r&&(W+=3,U[W++]=h[$],U[W++]=h[$+1],U[W++]=h[$+2]),j&&(q[J++]=1,J+=1)}else for(C=Z-c;C<Z;C++)B=Vt(B,X,$=3*C,p,y),X+=6,o.st&&(Y=Dt(Y,Q,2*C,f),Q+=4),r&&(W+=3,U[W++]=h[$],U[W++]=h[$+1],U[W++]=h[$+2]),j&&(q[J++]=1,J+=1);for(C=Z-1;0<C;C-=c)B=Vt(B,X,$=3*C,p,y),X+=6,o.st&&(Y=Dt(Y,Q,2*C,f),Q+=4),r&&(W+=3,U[W++]=h[$],U[W++]=h[$+1],U[W++]=h[$+2]),j&&(q[J++]=1,J+=1);if(O){var tt=Z;for($=3*tt,C=0;C<2;C++)B=Vt(B,X,$,p,y),X+=6,o.st&&(Y=Dt(Y,Q,2*tt,f),Q+=4),r&&(W+=3,U[W++]=h[$],U[W++]=h[$+1],U[W++]=h[$+2]),j&&(q[J++]=1,J+=1)}else for(C=c-1;0<=C;C--)B=Vt(B,X,$=3*C,p,y),X+=6,o.st&&(Y=Dt(Y,Q,2*C,f),Q+=4),r&&(W+=3,U[W++]=h[$],U[W++]=h[$+1],U[W++]=h[$+2]),j&&(q[J++]=1,J+=1);var et=function(t,e,a){var r=t.length,n=e.normal?new Float32Array(r):void 0,o=e.tangent?new Float32Array(r):void 0,i=e.bitangent?new Float32Array(r):void 0,s=0,l=0,u=0,c=!0,m=Rt,p=Ct,g=xt;if(e.normal||e.tangent||e.bitangent)for(var d=0;d<r;d+=6){var y,f=gt.Cartesian3.fromArray(t,d,wt),h=gt.Cartesian3.fromArray(t,(d+6)%r,Ft);c&&(y=gt.Cartesian3.fromArray(t,(d+3)%r,Gt),gt.Cartesian3.subtract(h,f,h),gt.Cartesian3.subtract(y,f,y),g=gt.Cartesian3.normalize(gt.Cartesian3.cross(y,h,g),g),c=!1),gt.Cartesian3.equalsEpsilon(h,f,pt.CesiumMath.EPSILON10)&&(c=!0),(e.tangent||e.bitangent)&&(m=a.geodeticSurfaceNormal(f,m),e.tangent&&(p=gt.Cartesian3.normalize(gt.Cartesian3.cross(m,g,p),p))),e.normal&&(n[s++]=g.x,n[s++]=g.y,n[s++]=g.z,n[s++]=g.x,n[s++]=g.y,n[s++]=g.z),e.tangent&&(o[l++]=p.x,o[l++]=p.y,o[l++]=p.z,o[l++]=p.x,o[l++]=p.y,o[l++]=p.z),e.bitangent&&(i[u++]=m.x,i[u++]=m.y,i[u++]=m.z,i[u++]=m.x,i[u++]=m.y,i[u++]=m.z)}return Et(e,{positions:t,normals:n,tangents:o,bitangents:i})}(B,o,l);o.st&&(et.attributes.st=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:Y})),r&&(et.attributes.extrudeDirection=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:U})),G&&(et.attributes.applyOffset=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:q}));var at,rt,nt,ot,it=ht.IndexDatatype.createTypedArray(z,6*S),st=B.length/3,lt=0;for(C=0;C<st-1;C+=2){ot=((at=C)+2)%st;var ut=gt.Cartesian3.fromArray(B,3*at,Ft),ct=gt.Cartesian3.fromArray(B,3*ot,Gt);gt.Cartesian3.equalsEpsilon(ut,ct,pt.CesiumMath.EPSILON10)||(nt=(2+(rt=(at+1)%st))%st,it[lt++]=at,it[lt++]=rt,it[lt++]=ot,it[lt++]=ot,it[lt++]=rt,it[lt++]=nt)}return et.indices=it,(et=ft.GeometryPipeline.combineInstances([new _t.GeometryInstance({geometry:m}),new _t.GeometryInstance({geometry:et})]))[0]}var u=[new gt.Cartesian3,new gt.Cartesian3,new gt.Cartesian3,new gt.Cartesian3],C=new gt.Cartographic,R=new gt.Cartographic;function y(t,e,a,r,n){if(0===a)return gt.Rectangle.clone(t,n);var o=H.RectangleGeometryLibrary.computeOptions(t,e,a,0,_,C),i=o.height,s=o.width,l=u;return H.RectangleGeometryLibrary.computePosition(o,r,!1,0,0,l[0]),H.RectangleGeometryLibrary.computePosition(o,r,!1,0,s-1,l[1]),H.RectangleGeometryLibrary.computePosition(o,r,!1,i-1,0,l[2]),H.RectangleGeometryLibrary.computePosition(o,r,!1,i-1,s-1,l[3]),gt.Rectangle.fromCartesianArray(l,r,n)}function d(t){var e=(t=mt.defaultValue(t,mt.defaultValue.EMPTY_OBJECT)).rectangle;if(g.Check.typeOf.object("rectangle",e),gt.Rectangle.validate(e),e.north<e.south)throw new g.DeveloperError("options.rectangle.north must be greater than or equal to options.rectangle.south");var a=mt.defaultValue(t.height,0),r=mt.defaultValue(t.extrudedHeight,a);this._rectangle=gt.Rectangle.clone(e),this._granularity=mt.defaultValue(t.granularity,pt.CesiumMath.RADIANS_PER_DEGREE),this._ellipsoid=gt.Ellipsoid.clone(mt.defaultValue(t.ellipsoid,gt.Ellipsoid.WGS84)),this._surfaceHeight=Math.max(a,r),this._rotation=mt.defaultValue(t.rotation,0),this._stRotation=mt.defaultValue(t.stRotation,0),this._vertexFormat=bt.VertexFormat.clone(mt.defaultValue(t.vertexFormat,bt.VertexFormat.DEFAULT)),this._extrudedHeight=Math.min(a,r),this._shadowVolume=mt.defaultValue(t.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=t.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}d.packedLength=gt.Rectangle.packedLength+gt.Ellipsoid.packedLength+bt.VertexFormat.packedLength+7,d.pack=function(t,e,a){return g.Check.typeOf.object("value",t),g.Check.defined("array",e),a=mt.defaultValue(a,0),gt.Rectangle.pack(t._rectangle,e,a),a+=gt.Rectangle.packedLength,gt.Ellipsoid.pack(t._ellipsoid,e,a),a+=gt.Ellipsoid.packedLength,bt.VertexFormat.pack(t._vertexFormat,e,a),a+=bt.VertexFormat.packedLength,e[a++]=t._granularity,e[a++]=t._surfaceHeight,e[a++]=t._rotation,e[a++]=t._stRotation,e[a++]=t._extrudedHeight,e[a++]=t._shadowVolume?1:0,e[a]=mt.defaultValue(t._offsetAttribute,-1),e};var f=new gt.Rectangle,h=gt.Ellipsoid.clone(gt.Ellipsoid.UNIT_SPHERE),v={rectangle:f,ellipsoid:h,vertexFormat:Lt,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};d.unpack=function(t,e,a){g.Check.defined("array",t),e=mt.defaultValue(e,0);var r=gt.Rectangle.unpack(t,e,f);e+=gt.Rectangle.packedLength;var n=gt.Ellipsoid.unpack(t,e,h);e+=gt.Ellipsoid.packedLength;var o=bt.VertexFormat.unpack(t,e,Lt);e+=bt.VertexFormat.packedLength;var i=t[e++],s=t[e++],l=t[e++],u=t[e++],c=t[e++],m=1===t[e++],p=t[e];return mt.defined(a)?(a._rectangle=gt.Rectangle.clone(r,a._rectangle),a._ellipsoid=gt.Ellipsoid.clone(n,a._ellipsoid),a._vertexFormat=bt.VertexFormat.clone(o,a._vertexFormat),a._granularity=i,a._surfaceHeight=s,a._rotation=l,a._stRotation=u,a._extrudedHeight=c,a._shadowVolume=m,a._offsetAttribute=-1===p?void 0:p,a):(v.granularity=i,v.height=s,v.rotation=l,v.stRotation=u,v.extrudedHeight=c,v.shadowVolume=m,v.offsetAttribute=-1===p?void 0:p,new d(v))},d.computeRectangle=function(t,e){var a=(t=mt.defaultValue(t,mt.defaultValue.EMPTY_OBJECT)).rectangle;if(g.Check.typeOf.object("rectangle",a),gt.Rectangle.validate(a),a.north<a.south)throw new g.DeveloperError("options.rectangle.north must be greater than or equal to options.rectangle.south");var r=mt.defaultValue(t.granularity,pt.CesiumMath.RADIANS_PER_DEGREE),n=mt.defaultValue(t.ellipsoid,gt.Ellipsoid.WGS84);return y(a,r,mt.defaultValue(t.rotation,0),n,e)};var E=new I.Matrix3,F=new I.Quaternion,G=new gt.Cartographic;d.createGeometry=function(t){if(!pt.CesiumMath.equalsEpsilon(t._rectangle.north,t._rectangle.south,pt.CesiumMath.EPSILON10)&&!pt.CesiumMath.equalsEpsilon(t._rectangle.east,t._rectangle.west,pt.CesiumMath.EPSILON10)){var e,a,r=t._rectangle,n=t._ellipsoid,o=t._rotation,i=t._stRotation,s=t._vertexFormat,l=H.RectangleGeometryLibrary.computeOptions(r,t._granularity,o,i,_,C,R),u=E;0!==i||0!==o?(e=gt.Rectangle.center(r,G),a=n.geodeticSurfaceNormalCartographic(e,Ft),I.Quaternion.fromAxisAngle(a,-i,F),I.Matrix3.fromQuaternion(F,u)):I.Matrix3.clone(I.Matrix3.IDENTITY,u);var c,m,p,g,d,y,f,h=t._surfaceHeight,v=t._extrudedHeight,b=!pt.CesiumMath.equalsEpsilon(h,v,0,pt.CesiumMath.EPSILON2);return l.lonScalar=1/t._rectangle.width,l.latScalar=1/t._rectangle.height,l.tangentRotationMatrix=u,r=t._rectangle,p=b?(f=x(t,l),c=I.BoundingSphere.fromRectangle3D(r,n,h,w),m=I.BoundingSphere.fromRectangle3D(r,n,v,A),I.BoundingSphere.union(c,m)):((f=Pt(t,l)).attributes.position.values=At.PolygonPipeline.scaleToGeodeticHeight(f.attributes.position.values,h,n,!1),mt.defined(t._offsetAttribute)&&(g=f.attributes.position.values.length,d=new Uint8Array(g/3),y=t._offsetAttribute===vt.GeometryOffsetAttribute.NONE?0:1,vt.arrayFill(d,y),f.attributes.applyOffset=new yt.GeometryAttribute({componentDatatype:dt.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})),I.BoundingSphere.fromRectangle3D(r,n,h)),s.position||delete f.attributes.position,new yt.Geometry({attributes:f.attributes,indices:f.indices,primitiveType:f.primitiveType,boundingSphere:p,offsetAttribute:t._offsetAttribute})}},d.createShadowVolume=function(t,e,a){var r=t._granularity,n=t._ellipsoid,o=e(r,n),i=a(r,n);return new d({rectangle:t._rectangle,rotation:t._rotation,ellipsoid:n,stRotation:t._stRotation,granularity:r,extrudedHeight:i,height:o,vertexFormat:bt.VertexFormat.POSITION_ONLY,shadowVolume:!0})};var b=new gt.Rectangle,P=[new gt.Cartesian2,new gt.Cartesian2,new gt.Cartesian2],V=new yt.Matrix2,D=new gt.Cartographic;return Object.defineProperties(d.prototype,{rectangle:{get:function(){return mt.defined(this._rotatedRectangle)||(this._rotatedRectangle=y(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return mt.defined(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=function(t){if(0===t._stRotation)return[0,0,0,1,1,0];var e=gt.Rectangle.clone(t._rectangle,b),a=t._granularity,r=t._ellipsoid,n=y(e,a,t._rotation-t._stRotation,r,b),o=P;o[0].x=n.west,o[0].y=n.south,o[1].x=n.west,o[1].y=n.north,o[2].x=n.east,o[2].y=n.south;for(var i=t.rectangle,s=yt.Matrix2.fromRotation(t._stRotation,V),l=gt.Rectangle.center(i,D),u=0;u<3;++u){var c=o[u];c.x-=l.longitude,c.y-=l.latitude,yt.Matrix2.multiplyByVector(s,c,c),c.x+=l.longitude,c.y+=l.latitude,c.x=(c.x-i.west)/i.width,c.y=(c.y-i.south)/i.height}var m=o[0],p=o[1],g=o[2],d=new Array(6);return gt.Cartesian2.pack(m,d),gt.Cartesian2.pack(p,d,2),gt.Cartesian2.pack(g,d,4),d}(this)),this._textureCoordinateRotationPoints}}}),function(t,e){return mt.defined(e)&&(t=d.unpack(t,e)),t._ellipsoid=gt.Ellipsoid.clone(t._ellipsoid),t._rectangle=gt.Rectangle.clone(t._rectangle),d.createGeometry(t)}});