UNPKG

@cearth/tools

Version:
2 lines (1 loc) 21.2 kB
(function(l,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("cesium"),require("@web-3d/tools")):typeof define=="function"&&define.amd?define(["exports","cesium","@web-3d/tools"],n):(l=typeof globalThis<"u"?globalThis:l||self,n(l.Tools={},l.cesium,l.tools))})(this,function(l,n,h){"use strict";function wt(t){return A(t)||S(t)||F(t)}function A(t){return"modelMatrix"in t}function S(t){return"position"in t}function F(t){return"positions"in t}const J={[n.WebGLConstants.BYTE]:Int8Array,[n.WebGLConstants.UNSIGNED_BYTE]:Uint8Array,[n.WebGLConstants.SHORT]:Int16Array,[n.WebGLConstants.UNSIGNED_SHORT]:Uint16Array,[n.WebGLConstants.INT]:Int32Array,[n.WebGLConstants.UNSIGNED_INT]:Uint32Array,[n.WebGLConstants.FLOAT]:Float32Array,[n.WebGLConstants.DOUBLE]:Float64Array};var N=(t=>(t[t.x=0]="x",t[t.y=1]="y",t[t.z=2]="z",t))(N||{});l.Xyz_Hpr=(t=>(t.x="roll",t.y="pitch",t.z="heading",t))(l.Xyz_Hpr||{}),(t=>{function a(r){for(let[i,s]of Object.entries(t))if(r===s)return i}t.toKey=a;function e(r){return new n.Cartesian3(r.roll,-r.pitch,-r.heading)}t.toCartesian3=e;function o(r){return new n.HeadingPitchRoll(-r[a("heading")],-r[a("pitch")],r[a("roll")])}t.toHeadingPitchRoll=o})(l.Xyz_Hpr||(l.Xyz_Hpr={}));var E=(t=>(t[t.heading=0]="heading",t[t.pitch=1]="pitch",t[t.roll=2]="roll",t))(E||{});function b(t){const a=t==null?void 0:t.world,{translation:e,rotation:o,scale:r}=a&&typeof a=="object"?a:{translation:a,rotation:a,scale:a};return{...t,worldTranslation:e,worldRotation:o,worldScale:r}}function P(t){if(t.axis){const{axis:e,angle:o}=t;return n.Quaternion.fromAxisAngle(e,o)}const a=l.Xyz_Hpr.toHeadingPitchRoll(t);return n.Quaternion.fromHeadingPitchRoll(a)}function ht(t,a,e){const o=n.Matrix3.fromQuaternion(t),r=n.Matrix4.fromRotation(o),i=n.Matrix4.inverseTransformation(a,new n.Matrix4),s=n.Matrix4.multiply(i,r,r);return Q(s)}function Q(t,a){const e=n.Matrix4.getMatrix3(t,new n.Matrix3),o=n.Quaternion.fromRotationMatrix(e);return n.HeadingPitchRoll.fromQuaternion(o,a)}function pt(t,a,e){e=e??new n.Matrix4;const o=n.Matrix4.inverse(a,new n.Matrix4);return n.Matrix4.multiply(o,t,e)}function W(t,a,e){let o=n.Quaternion.computeAxis(t,new n.Cartesian3);if(o.equals(n.Cartesian3.ZERO))return null;const r=n.Quaternion.computeAngle(t);return o=n.Matrix4.multiplyByPointAsVector(a,o,o),n.Quaternion.fromAxisAngle(o,r)}function xt(t,a,e){let o=n.Quaternion.computeAxis(t,new n.Cartesian3);if(o.equals(n.Cartesian3.ZERO))return null;const r=n.Quaternion.computeAngle(t),i=n.Matrix4.inverse(a,new n.Matrix4);return o=n.Matrix4.multiplyByPointAsVector(i,o,o),n.Quaternion.fromAxisAngle(o,r)}function O(t,a){let{translation:e,rotation:o,scale:r}=t;const{referFrame:i,worldTranslation:s,worldRotation:c,worldScale:u}=b(a);let y=null;return e&&(s||(e=n.Matrix4.multiplyByPointAsVector(i,e,new n.Cartesian3))),o&&(y=P(o),c||(y=W(y,i))),r&&(u||(r=n.Matrix4.multiplyByPointAsVector(i,r,new n.Cartesian3))),{translation:e,rotation:y,scale:r}}function q(t,a){let{translation:e,rotation:o,scale:r}=t;const{referFrame:i,worldTranslation:s,worldRotation:c,worldScale:u}=b(a),y=i?n.Matrix4.inverse(i,new n.Matrix4):null;let d=null;if(e&&s&&(e=n.Matrix4.multiplyByPointAsVector(y,e,new n.Cartesian3)),o&&(d=P(o),c)){let f=n.Quaternion.computeAxis(d,new n.Cartesian3);if(!f.equals(n.Cartesian3.ZERO)){const g=n.Quaternion.computeAngle(d);f=n.Matrix4.multiplyByPointAsVector(y,f,f),d=n.Quaternion.fromAxisAngle(f,g)}}return r&&u&&(r=n.Matrix4.multiplyByPointAsVector(y,r,new n.Cartesian3)),{translation:e,rotation:d,scale:r}}function _(t,a){const e=a==null?void 0:a.defaultMatrix;let{translation:o,rotation:r,scale:i}=O(t,a);if(e){if(o||(o=n.Matrix4.getTranslation(e,new n.Cartesian3)),!r){const c=n.Matrix4.getMatrix3(e,new n.Matrix3);r=n.Quaternion.fromRotationMatrix(c)}i||(i=n.Matrix4.getScale(e,new n.Cartesian3))}const s=new n.TranslationRotationScale(o??void 0,r??void 0,i??void 0);return n.Matrix4.fromTranslationRotationScale(s)}function Tt(t){const{translation:a,rotation:e,scale:o}=t,r=e?P(e):void 0,i=new n.TranslationRotationScale(a??void 0,r,o??void 0);return n.Matrix4.fromTranslationRotationScale(i)}function k(t,a,e){const o=n.Cartesian3.subtract(a,t,new n.Cartesian3),r=n.Cartesian3.subtract(e,t,new n.Cartesian3),i=n.Cartesian3.cross(o,r,o);return n.Cartesian3.normalize(i,o)}function Ct(t,a,e){const o=k(t,a,e);return n.Plane.fromPointNormal(o,t)}function*Rt(t,a=!0,e,o){const r=t.length,i=a?r:r-1,s=e||o?n.Cartesian3.prototype.equalsEpsilon:n.Cartesian3.prototype.equals;for(let c=0;c<i;c++){const u=t[c];let y=(c+1)%r,d=t[y],f=c;for(;s.call(u,d,e,o);){if(y=(++f+1)%r,y===c)return;d=t[y]}c=f,yield[u,d]}}function v(t,a,e){e=e??new n.Matrix4;const o=n.Matrix4.inverse(a,new n.Matrix4),r=n.Matrix4.multiply(t,o,o);return n.Matrix4.multiply(a,r,e)}function Pt(t,a,e,o){o=o??new n.Matrix4;const r=n.Matrix4.inverse(e,new n.Matrix4);let i=n.Matrix4.multiply(r,t,r);return i=n.Matrix4.multiply(a,i,i),n.Matrix4.multiply(e,i,o)}function vt(t,a,e){const o=n.Matrix4.fromTranslation(t);return v(o,a,e)}function Dt(t,a,e,o){const r=n.Quaternion.fromAxisAngle(t,a),i=n.Matrix3.fromQuaternion(r),s=n.Matrix4.fromRotation(i);return v(s,e,o)}function mt(t,a,e){const o=n.Matrix4.fromScale(t);return v(o,a,e)}function At(t,a,e){const o=n.Matrix3.fromScale(a);if(e)for(const r of t)n.Cartesian3.subtract(r,e,r),n.Matrix3.multiplyByVector(o,r,r),n.Cartesian3.add(r,e,r);else{const r=n.Matrix3.fromScale(a);for(const i of t)n.Matrix3.multiplyByVector(r,i,i)}return t}function St(t,a){const{translation:e,rotation:o,scale:r}=t;let i;if(o){const{axis:c,angle:u}=o;i=n.Quaternion.fromAxisAngle(c,u)}const s=new n.TranslationRotationScale(e??void 0,i,r??void 0);return n.Matrix4.fromTranslationRotationScale(s,a??void 0)}function Ot(t){let a=t.boundingSphere;if(a)return a;let e=t.geometryInstances;if(e){e=Array.isArray(e)?e:[e];const r=e.map(i=>i.geometry.boundingSphere);return n.BoundingSphere.fromBoundingSpheres(r)}const o=t.positions;return(o==null?void 0:o.length)>0?n.BoundingSphere.fromPoints(o):null}function It(t,a){a=a??new n.Cartesian3;const e=t.position;if(e)return e instanceof n.Cartesian3?e:e.getValue(n.JulianDate.now(),a);const o=t.modelMatrix;if(o)return n.Matrix4.getTranslation(o,a);const r=t.positions;return(r==null?void 0:r.length)>0?n.BoundingSphere.fromPoints(r).center:null}function Vt(t,a,e){let{translation:o,rotation:r,scale:i}=O(a,e);const s=new n.TranslationRotationScale(o??void 0,r??void 0,i??void 0),c=n.Matrix4.fromTranslationRotationScale(s);return j(t,c)}function j(t,a){const e=t.modelMatrix;if(e)return n.Matrix4.multiply(a,e,e),t.modelMatrix=e,!0;const o=t.position;if(o){if("scale"in t){const i=n.Matrix4.getTranslation(a,new n.Cartesian3);n.Cartesian3.add(o,i,o);const s=t.scale??1,c=n.Matrix4.getScale(a,new n.Cartesian3);t.scale=n.Cartesian3.maximumComponent(c)*s}else n.Matrix4.multiplyByPoint(a,o,o);return t.position=o,!0}const r=t.positions;if((r==null?void 0:r.length)>0){for(const i of r)n.Matrix4.multiplyByPoint(a,i,i);return t.positions=r,!0}return!1}function Bt(t,a,e){const o=Y(t),r=_(a,{...e,defaultMatrix:o});return U(t,r)}function U(t,a){if(A(t))return t.modelMatrix=a,!0;const e=n.Matrix4.getTranslation(a,new n.Cartesian3);if(S(t)){if(t.position=e,"scale"in t){const r=n.Matrix4.getScale(a,new n.Cartesian3);t.scale=n.Cartesian3.maximumComponent(r)}return!0}const o=t.positions;if((o==null?void 0:o.length)>0){const r=n.BoundingSphere.fromPoints(o);n.Cartesian3.subtract(e,r.center,e);for(const i of o)n.Cartesian3.add(i,e,i);return t.positions=o,!0}return!1}function Y(t){if(A(t))return t.modelMatrix;if(S(t)){const e=t.position,o=t.scale??1,r=new n.TranslationRotationScale(e,void 0,new n.Cartesian3(o,o,o));return n.Matrix4.fromTranslationRotationScale(r)}const a=t.positions;if((a==null?void 0:a.length)>0){const e=n.BoundingSphere.fromPoints(a);return n.Matrix4.fromTranslation(e.center)}return null}function bt(t,a){var B,m;let{translation:e,rotation:o,scale:r}=O(a,a);const{reset:i,referFrame:s}=a,c=n.JulianDate.now(),u=!i;if(o){let x=o;if(u){const w=(B=t.orientation)==null?void 0:B.getValue(c);w&&(x=n.Quaternion.multiply(o,w,w))}t.orientation=x}if(e){let x=e;if(u){const w=(m=t.position)==null?void 0:m.getValue(c);w&&(x=n.Cartesian3.add(w,e,w))}t.position=x}if(!s)return;const{translation:y,rotation:d,scale:f}=q(a,a),g=new n.TranslationRotationScale(y??void 0,d??void 0,f??void 0);let M=n.Matrix4.fromTranslationRotationScale(g);if(M=v(M,s,M),f){const x=t.box;x&&X(x,f);const w=t.cylinder;w&&Z(w,f);const ut=t.ellipse;ut&&K(ut,f);const yt=t.ellipsoid;yt&&$(yt,f);const gt=t.model;gt&&tt(gt,f,i);const Mt=t.plane;Mt&&nt(Mt,f)}const p=t.corridor;p&&at(p,M,f);const T=t.polygon;T&&et(T,M,f);const C=t.polyline;C&&ot(C,M,f);const R=t.polylineVolume;R&&rt(R,M,f);const D=t.wall;D&&it(D,M,f)}function X(t,a){var r;const e=n.JulianDate.now(),o=(r=t.dimensions)==null?void 0:r.getValue(e);o&&(t.dimensions=n.Cartesian3.multiplyComponents(o,a,o))}function Z(t,a){var u,y,d;const e=n.JulianDate.now(),o=(u=t.length)==null?void 0:u.getValue(e);o!=null&&(t.length=o*a.z);const r=Math.max(a.x,a.y),i=(y=t.topRadius)==null?void 0:y.getValue(e);i!=null&&(t.topRadius=i*r);const s=a.z,c=(d=t.bottomRadius)==null?void 0:d.getValue(e);c!=null&&(t.bottomRadius=c*s)}function K(t,a){var y,d,f,g;const e=n.JulianDate.now(),o=Math.max(a.x,a.y),r=a.z,i=(y=t.semiMajorAxis)==null?void 0:y.getValue(e);i!=null&&(t.semiMajorAxis=i*o);const s=(d=t.semiMinorAxis)==null?void 0:d.getValue(e);s!=null&&(t.semiMinorAxis=s*o);const c=(f=t.height)==null?void 0:f.getValue(e);c!=null&&(t.height=c*r);const u=(g=t.extrudedHeight)==null?void 0:g.getValue(e);u!=null&&(t.extrudedHeight=u*r)}function $(t,a){var i,s;const e=n.JulianDate.now(),o=(i=t.radii)==null?void 0:i.getValue(e);o!=null&&(t.radii=n.Cartesian3.multiplyComponents(o,a,o));const r=(s=t.innerRadii)==null?void 0:s.getValue(e);r!=null&&(t.innerRadii=n.Cartesian3.multiplyComponents(r,a,r))}function tt(t,a,e){var r;let o=n.Cartesian3.maximumComponent(a);if(!e){const i=n.JulianDate.now(),s=((r=t.scale)==null?void 0:r.getValue(i))??1;o*=s}t.scale=o}function nt(t,a){var i;const e=n.JulianDate.now(),o=n.Cartesian2.fromCartesian3(a),r=(i=t.dimensions)==null?void 0:i.getValue(e);r&&(t.dimensions=n.Cartesian2.multiplyComponents(r,o,r))}function at(t,a,e){var f,g,M;const o=n.JulianDate.now(),r=new n.Cartesian3,i=(f=t.positions)==null?void 0:f.getValue(o);if((i==null?void 0:i.length)>0){for(const p of i)n.Matrix4.multiplyByPoint(a,p,p);t.dimensions=i}const s=e??n.Matrix4.getScale(a,r),c=Math.max(s.x,s.y);((g=t.width)==null?void 0:g.getValue(o))!=null&&(t.width=c*scale);const y=(M=t.height)==null?void 0:M.getValue(o),d=s.z;y!=null&&(t.height=y*d)}function et(t,a,e){var d,f,g;const o=n.JulianDate.now(),r=new n.Cartesian3,i=(d=t.hierarchy)==null?void 0:d.getValue(o);i&&(G(i,a),t.hierarchy=i);const c=(e??n.Matrix4.getScale(a,r)).z,u=(f=t.height)==null?void 0:f.getValue(o);u!=null&&(t.height=u*c);const y=(g=t.extrudedHeight)==null?void 0:g.getValue(o);y!=null&&(t.extrudedHeight=y*c)}function G(t,a){const{positions:e,holes:o}=t;for(const r of e)n.Matrix4.multiplyByPoint(a,r,r);t.positions=e;for(const r of o)G(r,a)}function ot(t,a,e){var y,d;const o=n.JulianDate.now(),r=new n.Cartesian3,i=(y=t.positions)==null?void 0:y.getValue(o);if((i==null?void 0:i.length)>0){for(const f of i)n.Matrix4.multiplyByPoint(a,f,f);t.positions=i}const s=e??n.Matrix4.getScale(a,r),c=Math.max(s.x,s.y);((d=t.width)==null?void 0:d.getValue(o))!=null&&(t.width=c*scale)}function rt(t,a,e){var y,d;const o=n.JulianDate.now(),r=new n.Cartesian3,i=(y=t.positions)==null?void 0:y.getValue(o);if((i==null?void 0:i.length)>0){for(const f of i)n.Matrix4.multiplyByPoint(a,f,f);t.positions=i}const s=e??n.Matrix4.getScale(a,r),c=n.Cartesian2.fromCartesian3(s),u=(d=t.shape)==null?void 0:d.getValue(o);if(u!=null){for(const f of u)n.Cartesian2.multiplyComponents(f,c,f);t.shape=u}}function it(t,a,e){var d,f,g;const o=n.JulianDate.now(),r=new n.Cartesian3,i=(d=t.positions)==null?void 0:d.getValue(o);if((i==null?void 0:i.length)>0){for(const M of i)n.Matrix4.multiplyByPoint(a,M,M);t.positions=i}const c=(e??n.Matrix4.getScale(a,r)).z,u=(f=t.minimumHeights)==null?void 0:f.getValue(o);u!=null&&(graphicsgraphics.minimumHeights=u.map(M=>M*c));const y=(g=t.maximumHeights)==null?void 0:g.getValue(o);y!=null&&(graphicsgraphics.maximumHeights=y.map(M=>M*c))}function Qt(t,a,e){var T,C,R,D;const o=n.JulianDate.now(),r=(T=t.position)==null?void 0:T.getValue(o);if(!r)return null;const i=(C=t.orientation)==null?void 0:C.getValue(o),s=((D=(R=t.model)==null?void 0:R.scale)==null?void 0:D.getValue(o))??1,c=new n.Cartesian3(s,s,s),u=a(r,e),y=n.Matrix4.inverse(u,new n.Matrix4),d=n.Matrix4.multiplyByPoint(y,r,new n.Cartesian3),f={translation:d,position:r,scale:c,rotation:new n.Cartesian3};let g;if(i){const B=n.Matrix3.fromQuaternion(i),m=n.Matrix4.fromRotation(B),x=n.Matrix4.multiply(y,m,m),w=Q(x);g=l.Xyz_Hpr.toCartesian3(w),f.rotation=g}const M=new n.TranslationRotationScale(d??void 0,g?P(g):void 0,c??void 0);let p=n.Matrix4.fromTranslationRotationScale(M);return f.matrix=p,f}function Gt(t){return t.values.length/t.componentsPerAttribute}function Ht(t){return n.ComponentDatatype.getSizeInBytes(t.componentDatatype)*t.componentsPerAttribute}function zt(t){const{componentDatatype:a,vertexBuffer:e}=t,o=J[a];if(!o)throw new Error("不支持的数据类型");const r=e.sizeInBytes,i=n.ComponentDatatype.getSizeInBytes(a),s=r/i;let c=new o(s);return e.getBufferData(c,0,0,r),c}new n.Cartesian2,new n.Cartesian3,new n.Cartesian4;const H=[new n.Cartesian2,new n.Cartesian2,new n.Cartesian2,new n.Cartesian2],I=[new n.Cartesian3,new n.Cartesian3,new n.Cartesian3,new n.Cartesian3];new n.Cartesian4,new n.Cartesian4,new n.Cartesian4,new n.Cartesian4;const Lt=[new n.Cartographic,new n.Cartographic,new n.Cartographic,new n.Cartographic];new n.Rectangle,new n.Rectangle,new n.Rectangle,new n.Rectangle,new n.Matrix2,new n.Matrix2,new n.Matrix2,new n.Matrix2,new n.Matrix3,new n.Matrix3,new n.Matrix3,new n.Matrix3,new n.Matrix4,new n.Matrix4,new n.Matrix4,new n.Matrix4,new n.Quaternion,new n.Quaternion,new n.Quaternion,new n.Quaternion,new n.HeadingPitchRoll,new n.HeadingPitchRoll,new n.HeadingPitchRoll,new n.HeadingPitchRoll;function Ft(t,a=[]){const{stride:e,vertexArray:o}=t,r=o.length/e,i=I[0];for(let s=0;s<r;s++)t.encoding.decodePosition(o,s,i),n.Cartesian3.pack(i,a,a.length);return a}function Jt(t,a,e){return t.encoding.decodePosition(t.vertexArray,a,e)}function lt(t){const{stride:a,vertices:e,indices:o,encoding:r}=t,i=e.length/a,s=I[0],c=new Float32Array(i*3),u=H[0],y=new Float32Array(i*2),d=new Float32Array(i);for(let f=0;f<i;f++){r.decodePosition(e,f,s),n.Cartesian3.pack(s,c,f*3);const g=r.decodeHeight(e,f);d[f]=g,r.decodeTextureCoordinates(e,f,u),n.Cartesian2.pack(u,y,f*2)}return{attributes:{position:{array:c,vectorSize:3},uv:{array:y,vectorSize:2},height:{array:d,vectorSize:1}},indices:o.slice(),count:i}}function z(t,a){const e=t._surface._tilesToRender,o=[],r=new n.Rectangle;for(const i of e){const{rectangle:s}=i;n.Rectangle.intersection(a,s,r)&&o.push(i)}return o}function Nt(t){const a=t._surface._tilesToRender;return st(a)}function st(t){const a=new Set;for(const i of t)a.add(i.level);const e=[...a],o=Math.min.apply(Math,e),r=Math.max.apply(Math,e);return{min:o,max:r}}function L(t){return t.map(a=>{const{mesh:e,terrainData:o}=a.data,r=lt(e),{x:i,y:s,level:c}=a,u=[o._minimumHeight,o._maximumHeight];return{data:r,encoding:e.encoding,rectangle:a.rectangle,heightRange:u,x:i,y:s,level:c}})}function Et(t){const{x:a,y:e,level:o}=t;return t.data.terrainData.upsample(t.tilingScheme,a,e,o,a,e,o)}function ft(t,a,e){const{east:o,north:r,south:i,west:s}=a,c=Lt[0];c.longitude=s,c.latitude=i;const u=t.positionToTileXY(c,e,H[0]);c.longitude=o,c.latitude=r;const y=t.positionToTileXY(c,e,H[1]),[d,f]=u.x<y.x?[u.x,y.x]:[y.x,u.x],[g,M]=u.y<y.y?[u.y,y.y]:[y.y,u.y];return{min:[d,g],max:[f,M]}}const Wt=32767;function qt(t,a=new n.Cartesian3){return n.Matrix3.getScale(t.halfAxes,a),n.Cartesian3.multiplyByScalar(a,2*Wt,a),a}function V(t,a,e){return e=t.getLocalCurvature(a,e),e.x=1/e.x,e.y=1/e.y,e}function _t(t,a,e){e=V(t,a,e);const o=Math.PI/180;return n.Cartesian2.multiplyByScalar(e,o,e)}function ct(t){const{_quantizedVertices:a,_indices:e}=t,o=a.length/3,r={type:"Float32Array",start:0,vectorSize:1},i={type:"Float32Array",start:o,vectorSize:1},s={type:"Float32Array",start:o*2,vectorSize:1};return{array:new Float32Array(a),attributes:{u:r,v:i,height:s},count:o,indices:e}}async function kt(t,a,e,o){const r=await t.requestTileGeometry(a,e,o);if(!r)return null;const i=ct(r),s=[data._minimumHeight,data._maximumHeight],c=t.tilingScheme.tileXYToRectangle(a,e,o),u=h.getMatrixOfQuantizedMeshTerrainData(c,s),y=n.Matrix4.fromArray(u,void 0),d=["u","v","height"],f=new h.Geometry({...i,positionNames:d}),g=new n.Cartesian3;return f.mapForAggregate(d,(M,p)=>(n.Cartesian3.fromArray(M,0,g),n.Matrix4.multiplyByPoint(y,g,g),new n.Cartographic(g.x,g.y,g.z)))}async function jt(t,a,e){const{min:o,max:r}=ft(t.tilingScheme,a,e),i=[],s=[];for(let u=o[0];u<=r[0];u++)for(let y=o[1];y<=r[1];y++){const d=dt(t,u,y,e);d&&(i.push(d),s.push({x:u,y}))}return(await Promise.all(i)).map(function(u,y){const{x:d,y:f}=s[y];return{x:d,y:f,level:e,data:u}})}async function dt(t,a,e,o){return t.getTileDataAvailable(a,e,o)?(await t.loadTileDataAvailability(a,e,o),t.requestTileGeometry(a,e,o)):Promise.reject("不可用")}async function Ut(t,a){const e=n.Rectangle.fromCartesianArray(a),o=n.Cartographic.toCartesian(n.Rectangle.center(e)),r=V(t.ellipsoid,o),i=[r.x,r.y,1],s=z(t,e),c=L(s),u=n.Transforms.eastNorthUpToFixedFrame(o);n.Matrix4.inverseTransformation(u,u);const y=a.map(g=>{const M=n.Matrix4.multiplyByPoint(u,g,I[2]);return[M.x,M.y]});let d=0;const f=c.map(async g=>{const{data:M,...p}=g,{position:T,uv:C,height:R}=M.attributes;d+=await h.workerApi.computeRelationAreaOfPolygon2Terrain({args:[{...M,...p,positionNames:["position"],region:y,matrix:n.Matrix4.pack(u,[]),relation:h.GeometricRelation.Contain|h.GeometricRelation.Intersect,scale:i}],transfer:[T.array.buffer,C.array.buffer,R.array.buffer,M.indices.buffer]})});if(await Promise.all(f),d===0||isNaN(d)){console.warn("贴地面积计算异常,已回退到椭球面投影面积",d);const g=a.map(M=>n.Cartesian3.pack(M,[]));return d=h.computeSignAreaOfPolygon3(g),Math.abs(d)}return d}function Yt(t,a){const e=n.Rectangle.fromCartesianArray(a),o=n.Cartographic.toCartesian(n.Rectangle.center(e)),r=V(t.ellipsoid,o),i=[r.x,r.y,1],s=z(t,e),c=L(s),u=n.Transforms.eastNorthUpToFixedFrame(o);n.Matrix4.inverseTransformation(u,u);const y=a.map(f=>{const g=n.Matrix4.multiplyByPoint(u,f,I[2]);return[g.x,g.y]});let d=0;for(const f of c){const{data:g,...M}=f;d+=h.computeRelationAreaOfPolygon2Terrain({...g,...M,positionNames:["position"],region:y,matrix:n.Matrix4.pack(u,[]),relation:h.GeometricRelation.Contain|h.GeometricRelation.Intersect,scale:i})}if(d===0||isNaN(d)){console.warn("贴地面积计算异常,已回退到椭球面投影面积",d);const f=a.map(g=>n.Cartesian3.pack(g,[]));return d=h.computeSignAreaOfPolygon3(f),Math.abs(d)}return d}l.CartesianAxis=N,l.HeadingPitchRollComponent=E,l.applyMatrixReferFrame=Pt,l.applyTransformInPrimitive=j,l.applyTransformInfoPrimitive=Vt,l.componentDatatypeTypedArrayMap=J,l.computeAttributeSizeInBytes=Ht,l.computeNormalOfCoplanars=k,l.computeTerrainAreaOfPolygon=Yt,l.computeTerrainAreaOfPolygon_worker=Ut,l.computeVertexNumOfAttribute=Gt,l.createPlaneOfCoplanars=Ct,l.flatTransformInfoOptions=b,l.getAttributeData=zt,l.getBoundingSphere=Ot,l.getDecodePositionsOfTerrainMesh=Ft,l.getEntityInfo=Qt,l.getGeometryDataOfQuantizedMeshTerrainData=ct,l.getGeometryDataOfTerrainMesh=lt,l.getLevelRangeOfQuadtreeTiles=st,l.getLocalCurvatureRadius=V,l.getLocalSizePerDegrees=_t,l.getLocalTransformInfo=q,l.getMatrix4OfTransformInfo=St,l.getNeighborPairs=Rt,l.getPosition=It,l.getPositionOfTerrainMesh=Jt,l.getRenderedQuadtreeTilesOfIntersectRectangle=z,l.getRenderedTileLevelRange=Nt,l.getScaleOfTerrainDataByOrientedBoundingBox=qt,l.getTerrainData=dt,l.getTerrainDataOfQuadtreeTile=Et,l.getTerrainDatasOfIntersectRectangle=jt,l.getTerrainDatasOfQuadtreeTiles=L,l.getTileRangeOfIntersectRectangle=ft,l.getTransform=Y,l.getWorldDataOfQuantizedMeshTerrainData=kt,l.getWorldMatrix=_,l.getWorldTransformInfo=O,l.isMatrixPrimitive=A,l.isPositionListPrimitive=F,l.isPositionPrimitive=S,l.isPrimitiveObject=wt,l.localQuaternionToWorld=W,l.makeMatrixReferFrame=v,l.matrix4ToHeadingPitchRoll=Q,l.quaternionToHeadingPitchRoll=ht,l.resetTransformInPrimitive=U,l.resetTransformInfoPrimitive=Bt,l.rotateMatrixReferFrame=Dt,l.rotationInfoToQuaternion=P,l.scaleBoxGraphics=X,l.scaleCylinderGraphics=Z,l.scaleEllipseGraphics=K,l.scaleEllipsoidGraphics=$,l.scaleMatrixReferFrame=mt,l.scaleModelGraphics=tt,l.scalePlaneGraphics=nt,l.scalePoints=At,l.transformCorridorGraphics=at,l.transformEntity=bt,l.transformInfoToMatrix=Tt,l.transformPolygonGraphics=et,l.transformPolygonHierarchy=G,l.transformPolylineGraphics=ot,l.transformPolylineVolumeGraphics=rt,l.transformWallGraphics=it,l.translationMatrixReferFrame=vt,l.worldMatrixToLocal=pt,l.worldQuaternionToLocal=xt,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});