earthsdk3-cesium 3.0.7-beta.5 → 3.0.7-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/dist/earthsdk3-cesium.iife.js +3 -3
  2. package/dist/earthsdk3-cesium.js +9 -5
  3. package/dist/earthsdk3-cesium.umd.cjs +3 -3
  4. package/dist/types/CzmObjects/general/CzmESRtsTileset/index.d.ts.map +1 -1
  5. package/package.json +1 -1
  6. package/dist/types/CzmObjects/base/InnerClass/XbsjGroundPolylinePrimitive/GroundPolylinePrimitive.d.ts +0 -148
  7. package/dist/types/CzmObjects/general/CzmESSignalTransmission/XbsjPolyline/XbsjPolylineGeometry.d.ts +0 -3
  8. package/dist/types/CzmObjects/general/CzmESSignalTransmission/XbsjPolyline/xbsjCreateODLinesPrimitive.d.ts +0 -29
  9. package/dist/types/CzmObjects/general/CzmESVideoFusion/XbsjCameraVideo/XbsjCameraVideo.d.ts +0 -18
  10. package/dist/types/CzmObjects/general/CzmESViewShed/XbsjViewshed/XbsjViewshed.d.ts +0 -16
  11. package/dist/types/ESCesiumViewer/BackGroundImage/BackGroundImage.d.ts +0 -5
  12. package/dist/types/ESCesiumViewer/LocalSkyBox/SkyAtmosphere.d.ts +0 -14
  13. package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/GaussianSplatPipelineStage.d.ts +0 -12
  14. package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/GaussianSplatTexturePipelineStage.d.ts +0 -11
  15. package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/temp_wasm/pkg/wasm_splats.d.ts +0 -75
  16. package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/temp_wasm/pkg/wasm_splats_bg.wasm.d.ts +0 -27
  17. package/dist/types/ESCesiumViewer/initCesiumViewer/fixGoogleEarth/cesiumFixGoogleEarth.d.ts +0 -1
  18. package/dist/types/__declares/cesium.d.ts +0 -405
  19. package/dist/types/utils/czmUtils/todo/generateCartesianArc/czm/generateCartesianArc.d.ts +0 -8
  20. package/dist/types/utils/generalUtils/geoPolylineToBezierSpline/bezierSpline/index.d.ts +0 -37
  21. package/dist/types/utils/generalUtils/geoPolylineToBezierSpline/bezierSpline/lib/spline.d.ts +0 -62
@@ -4871,7 +4871,7 @@ void main()
4871
4871
  {
4872
4872
  gl_Position = czm_modelViewProjection * vec4(position, 1.0);
4873
4873
  }
4874
- `,this._customPrimitive.uniformMap={u_color:[1,1,0,1]},this.dispose(S.track([this._customPrimitive,"show"],[this,"show"])),this.dispose(S.track([this._geoPolyline,"show"],[this,"show"])),this.dispose(S.bind([this._geoPolyline,"positions"],[this,"positions"])),this.dispose(S.bind([this._geoPolyline,"width"],[this,"outlineWidth"])),this.dispose(S.bind([this._geoPolyline,"color"],[this,"outlineColor"]));{const r=()=>{let o="暂无分析结果";this.totalArea&&(o=`表面积: ${(this.totalArea??0).toFixed(2)}平方米`),this._geoDivPoi&&(this._geoDivPoi.innerHTML=Wo(o,24))};r(),this.dispose(this.totalAreaChanged.don(r)),this.dispose(S.track([this._geoDivPoi,"show"],[this,"show"])),this.dispose(this.positionsChanged.don(()=>{this._geoDivPoi&&(this.positions&&this.positions.length>=3?this._geoDivPoi.position=pS(this.positions):this._geoDivPoi.position=void 0)}))}{const r=()=>{if((!this.positions||this.positions.length<3)&&this.customPrimitive){this.totalArea=0,this.customPrimitive.position=void 0,this.customPrimitive.attributes=void 0,this.customPrimitive.indexTypedArray=void 0,this.customPrimitive.show=!1;return}const o=this.interpolationDistance??Fa.defaults.interpolationDistance,s=this.interpolation??Fa.defaults.interpolation,l=this.offsetHeight??Fa.defaults.offsetHeight,u=this.drillDepth??Fa.defaults.drillDepth,f=[];if(this.positions)for(let M=0;M<this.positions.length;++M){const D=k.Cartesian3.fromDegrees(this.positions[M][0],this.positions[M][1],this.positions[M][2]);f.push(D)}var h=H9(f);if(isNaN(h.x)||isNaN(h.y)||isNaN(h.z)){console.warn("法向量计算错误!");return}var y=j9(f),m=k.Cartesian3.normalize(y,new k.Cartesian3),A=k.Cartesian3.dot(m,h);A<0&&(h=i2(h),f.reverse());let p=k.Transforms.eastNorthUpToFixedFrame(y),d=k.Matrix4.inverseTransformation(p,new k.Matrix4);if(Math.abs(A)<.999){const M=G9(h,m);var g=i2(y),c=k.Matrix4.fromTranslation(g,new k.Matrix4);d=k.Matrix4.multiply(M,c,c),p=k.Matrix4.inverse(d,new k.Matrix4)}var v=nl(f,d),b=[],w=[],_=[];if(s&&o>0){var E=W9(v),C=q9(v),x=Z9(C,E,o);const M=w0(x,p,d,h,a.scene,l,u);var P=Y9(v,o);const D=w0(P,p,d,h,a.scene,l,u);_.push(...M.world_cartesian),b.push(...M.local),w.push(...M.world),_.push(...D.world_cartesian),b.push(...D.local),w.push(...D.world),v.forEach(R=>{var U=w0([R],p,d,h,a.scene,l,u);if(U.local.length>0)b.push(...U.local),w.push(...U.world),_.push(...U.world_cartesian);else{b.push(R);var z=nl([R],p);for(let V=0;V<z.length;++V){_.push(z[V]);var N=k.Cartographic.fromCartesian(z[V]);w.push([N.longitude,N.latitude,N.height+l])}}})}else{b=v,_=nl(v,p);for(let M=0;M<_.length;++M){var T=k.Cartographic.fromCartesian(_[M]);w.push([T.longitude,T.latitude,T.height+l])}}var I=K9(b);const B=X9(_,I);this.totalArea=B;const F=[];b.forEach(M=>{const D=[M.x,M.y,M.z];D&&F.push(...D)});const O={position:{typedArray:new Float32Array(F),componentsPerAttribute:3}};if(this.customPrimitive){this.customPrimitive.modelMatrix=k.Matrix4.toArray(p),this.customPrimitive.attributes=O;const M=Q9([...I]);this.customPrimitive.indexTypedArray=new Uint32Array(M),this.customPrimitive.show=!0}};this.dispose(this.startEvent.don(r))}}get pickedEvent(){return this._pickedEvent}get startEvent(){return this._startEvent}start(){this._startEvent.emit()}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get geoPolyline(){return this._geoPolyline}get customPrimitive(){return this._customPrimitive}get geoDivPoi(){return this._geoDivPoi}};L(Fa,"defaults",{positions:[],totalArea:0,interpolation:!0,interpolationDistance:.5,offsetHeight:0,drillDepth:3,outlineWidth:2,outlineColor:[1,1,1,1]});let Ca=Fa;(t=>{t.createDefaultProps=()=>({positions:S.reactArrayWithUndefined(void 0),show:void 0,totalArea:void 0,interpolationDistance:void 0,interpolation:void 0,offsetHeight:void 0,drillDepth:void 0,outlineWidth:void 0,outlineColor:S.reactArray([1,1,1,1])})})(Ca||(Ca={})),S.extendClassProps(Ca.prototype,Ca.createDefaultProps);function Q9(t){t.length%3!==0&&console.warn("当前传入的索引不是3的倍数,可能不是三角片的索引!");const n=t.length/3|0,e=new Array(n*6);for(let i=0;i<n;++i)e[i*6+0]=t[i*3+0],e[i*6+1]=t[i*3+1],e[i*6+2]=t[i*3+2],e[i*6+3]=t[i*3+1],e[i*6+4]=t[i*3+2],e[i*6+5]=t[i*3+0];return e}function H9(t){var n=new k.Cartesian3(0,0,0),e=new k.Cartesian3(0,0,0),i=new k.Cartesian3(0,0,0),a=new k.Cartesian3(0,0,0);t[0].equals(t[t.length-1])&&t.pop();var r=t.length;for(let u=0;u<r;++u){var o=t[u],s;u==0?s=t[t.length-1]:s=t[u-1];var l;u==t.length-1?l=t[0]:l=t[u+1],n=k.Cartesian3.subtract(o,s,n),e=k.Cartesian3.subtract(o,l,e),i=k.Cartesian3.cross(n,e,i),i=k.Cartesian3.normalize(i,i),a=k.Cartesian3.add(a,i,a)}return i.x=a.x/r,i.y=a.y/r,i.z=a.z/r,i}function j9(t){var n=new k.Cartesian3(0,0,0),e=t.length;for(let a=0;a<e;++a){var i=t[a];n=k.Cartesian3.add(n,i,n)}return n.x=n.x/e,n.y=n.y/e,n.z=n.z/e,n}function i2(t){return new k.Cartesian3(-1*t.x,-1*t.y,-1*t.z)}function G9(t,n){var e=k.Cartesian3.cross(t,n,new k.Cartesian3);e=k.Cartesian3.normalize(e,e);var i=k.Cartesian3.cross(t,e,new k.Cartesian3);i=k.Cartesian3.normalize(i,i);var a=t,r=new k.Matrix4(e.x,e.y,e.z,0,i.x,i.y,i.z,0,a.x,a.y,a.z,0,0,0,0,1);return r}function nl(t,n){var e=[];for(let r=0;r<t.length;++r){var i=t[r],a=k.Matrix4.multiplyByPoint(n,i,new k.Cartesian3);e.push(a)}return e}function W9(t){var n=t[0].x,e=t[0].y,i=t[0].x,a=t[0].y;return t.forEach(r=>{n=Math.min(n,r.x),e=Math.min(e,r.y),i=Math.max(i,r.x),a=Math.max(a,r.y)}),{minx:n,miny:e,maxx:i,maxy:a}}function q9(t){var n=[];return t.forEach(e=>{n.push([e.x,e.y])}),n.push(n[0]),n}function K9(t){var n=[];t.forEach(i=>{const a=[i.x,i.y];n.push(a)});var e=m0.from(n).triangles;return e.reverse()}function X9(t,n){for(var e=0,i=0;i<n.length;i+=3){const a=[t[n[i]],t[n[i+1]],t[n[i+2]]];e+=$9(a)}return e}function $9(t){var n=k.Cartesian3.distance(t[0],t[1]),e=k.Cartesian3.distance(t[1],t[2]),i=k.Cartesian3.distance(t[2],t[0]),a=(n+e+i)/2,r=Math.sqrt(a*(a-n)*(a-e)*(a-i));return r}function Z9(t,n,e){for(var i=[],a=n.minx;a<n.maxx;a+=e)for(var r=n.miny;r<n.maxy;r+=e)ej([a,r],t)&&i.push(new k.Cartesian3(a,r,0));return i}function Y9(t,n){var e=[];for(let o=0;o<t.length;++o){var i=t[o],a;o==t.length-1?a=t[0]:a=t[o+1];var r=J9(i,a,n);e.push(...r)}return e}function J9(t,n,e){var i=[],a=k.Cartesian3.distance(t,n),r=k.Cartesian3.subtract(n,t,new k.Cartesian3);r=k.Cartesian3.normalize(r,r);for(var o=e;o<a;){var s=new k.Cartesian3(r.x*o,r.y*o,r.z*o),l=k.Cartesian3.add(t,s,new k.Cartesian3);i.push(l),o+=e}return i}function ej(t,n){var e=Po(t);if(!J7(Po(n[0]),Po(n[n.length-1])))return!1;var i=[];i.push(n);var a=On(i);return Rn(e,a)}function w0(t,n,e,i,a,r,o){var s=[];t.forEach(b=>{var w=b.clone();w.z=1e5,s.push(w)});var l=nl(s,n),u=new k.Cartesian3(-1*i.x,-1*i.y,-1*i.z),f=[],h=[],y=[];for(let b=0;b<l.length;++b){var m=l[b],A=new k.Ray(m,u),p=[];try{p=a.drillPickFromRay(A,o)}catch{}if(p.length===0){A=new k.Ray(m,i);try{p=a.drillPickFromRay(A,o)}catch{}}if(p.length!==0){for(var d,g=0;g<p.length;g++){var c=p[g];if((!c.object||c.object.content)&&c.position){d=c.position;break}}if(!(!d||!d.x||isNaN(d.x))){var v=nl([d],e);v.forEach(w=>{w.z+=r}),d=nl(v,n)[0],y.push(d),d=k.Cartographic.fromCartesian(d),f.push([d.longitude,d.latitude,d.height]),h.push(t[b])}}}return{local:h,world:f,world_cartesian:y}}const lh=class lh extends Gn{constructor(e,i){super(e,i);L(this,"_czmAreaMeasurement");if(this._czmAreaMeasurement=this.disposeVar(new Ca(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmAreaMeasurement;this.dispose(S.track([r,"show"],[e,"show"])),this.dispose(S.bind([r,"positions"],[e,"points"])),this.dispose(S.track([r,"interpolationDistance"],[e,"interpolation"])),this.dispose(S.track([r,"offsetHeight"],[e,"offsetHeight"]));{const o=()=>{if(this.geoPolygon&&(this.geoPolygon.outline=!1),e.stroked)r.outlineWidth=e.strokeWidth;else{r.outlineWidth=0;return}r.outlineWidth=e.strokeWidth,r.outlineColor=e.strokeColor};o();const s=this.disposeVar(S.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(s.disposableOn(o))}this.dispose(e.startEvent.don(()=>{this._czmAreaMeasurement.start()}))}get czmAreaMeasurement(){return this._czmAreaMeasurement}flyTo(e,i){const{sceneObject:a,czmViewer:r,czmAreaMeasurement:o}=this;return r.actived?a.flyToParam||a.flyInParam?super.flyTo(e,i):(o.positions&&ze(r,a,i,o.positions,e),!0):!1}flyIn(e,i){const{sceneObject:a,czmViewer:r,czmAreaMeasurement:o}=this;return r.actived?a.flyInParam?super.flyIn(e,i):(o.positions&&ze(r,a,i,o.positions,e),!0):!1}};L(lh,"type",lh.register("ESCesiumViewer",Q.ESSurfaceAreaMeasurement.type,lh));let b0=lh;async function tj(t){navigator.clipboard.writeText(t).then(function(){console.log("复制成功")},function(n){console.log("复制失败")})}const uh=class uh extends Q.EngineObject{constructor(e,i){super(e,i);L(this,"_customDiv");if(this._customDiv=this.disposeVar(new Q.ESCustomDiv(e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._customDiv;i.add(r),this.dispose(()=>i.delete(r)),r.instanceClass=class extends S.Destroyable{constructor(s,l,u){if(super(),this._subContainer=s,!u||!(u instanceof lt))return;u.extensions.cursorPositionInfo.enabled=!0;const f=document.createElement("div");this._subContainer.appendChild(f),this.dispose(()=>this._subContainer.removeChild(f)),f.style.width="100%",f.style.position="absolute",f.style.height=`${Q.ESViewerStatusBar.defaults.height}px`,f.style.left="0",f.style.bottom="0",f.style.color="#fff",f.style.padding="0 20px 0 0",f.style.boxSizing="border-box",f.style.lineHeight=`${Q.ESViewerStatusBar.defaults.height}px`,f.style.zIndex="100",f.style.alignContent="center",f.style.justifyContent="space-between";const h=document.createElement("span");f.appendChild(h),this.dispose(()=>f.removeChild(h));const y=document.createElement("span");h.appendChild(y),this.dispose(()=>h.removeChild(y));const m=document.createElement("span");h.appendChild(m),m.addEventListener("dblclick",function(){let p=m.innerHTML;p.startsWith("鼠标位置")&&(p=p.slice(5)),tj(p)}),m.style.cursor="pointer",this.dispose(()=>h.removeChild(m));const A=document.createElement("span");f.appendChild(A),this.dispose(()=>f.removeChild(A));{const p=()=>{f.style.height=(e.height??Q.ESViewerStatusBar.defaults.height)+"px",f.style.lineHeight=(e.height??Q.ESViewerStatusBar.defaults.height)+"px"};this.dispose(e.heightChanged.disposableOn(p)),p()}{const p=()=>{f.style.fontSize=(e.fontSize??Q.ESViewerStatusBar.defaults.fontSize)+"px"};this.dispose(e.fontSizeChanged.disposableOn(p)),p()}{const p=()=>{e.bgColor?f.style.background=`rgba(${e.bgColor[0]*255},${e.bgColor[1]*255},${e.bgColor[2]*255},${e.bgColor[3]})`:f.style.background=`rgba(${Q.ESViewerStatusBar.defaults.bgColor[0]},${Q.ESViewerStatusBar.defaults.bgColor[1]},${Q.ESViewerStatusBar.defaults.bgColor[2]},${Q.ESViewerStatusBar.defaults.bgColor[3]})`};this.dispose(e.bgColorChanged.disposableOn(p)),p()}{A.innerText=`Cesium 版本 : ${k.VERSION} `;let p;const d=()=>{e.show?(f.style.display="flex",p=this.disposeVar(S.createAnimateFrameWithStartValues(()=>{var w;let g="",c="";const v=u.getCameraInfo();if(v){const _=(C,x)=>v.position[C].toFixed(x),E=(C,x)=>v.rotation[C].toFixed(x);g=`帧率:${u.getFPS()}FPS 经度: ${_(0,5)}° 纬度: ${_(1,5)}° 高度: ${_(2,2)}米 偏航角: ${E(0,2)}° 俯仰角: ${E(1,2)}° 翻滚角:${E(2,2)}° `}y.innerText=g;const b=(w=u.extensions)==null?void 0:w.cursorPositionInfo.cursorPosition;if(b){const _=(E,C)=>b[E].toFixed(C);c=`鼠标位置:${_(0,5)}° ${_(1,5)}° ${_(2,2)}m`}else c="暂时无法获取鼠标位置...";m.innerText=c})),p.start()):(f.style.display="none",p.destroy())};this.dispose(e.showChanged.disposableOn(d)),d()}}}}get customDiv(){return this._customDiv}};L(uh,"type",uh.register("ESCesiumViewer",Q.ESViewerStatusBar.type,uh));let _0=uh;const ch=class ch extends Q.EngineObject{constructor(e,i){super(e,i);L(this,"_customDiv");if(this._customDiv=this.disposeVar(new Q.ESCustomDiv(e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._customDiv;i.add(r),this.dispose(()=>i.delete(r)),this.dispose(S.track([r,"show"],[e,"show"])),r.instanceClass=class extends S.Destroyable{constructor(s,l,u){if(super(),this._subContainer=s,!u||!(u instanceof lt))return;u.extensions.cursorPositionInfo.enabled=!0;const f=document.createElement("div");this._subContainer.appendChild(f),this.dispose(()=>this._subContainer.removeChild(f));const h=document.createElement("div");f.appendChild(h),h.style.width="100%",h.className="ESViewerStatusBarScale",h.style.position="absolute",h.style.display="flex",h.style.height=`${Q.ESViewerStatusBarScale.defaults.height}px`,h.style.left="0",h.style.bottom="0",h.style.color="#fff",h.style.padding="0 20px 0 0",h.style.boxSizing="border-box",h.style.lineHeight=`${Q.ESViewerStatusBarScale.defaults.height}px`,h.style.zIndex="100",h.style.alignContent="center",h.style.justifyContent="space-between";const y=document.createElement("div");h.appendChild(y);const m=document.createElement("div");y.appendChild(m);const A=document.createElement("div");y.appendChild(A);const p=document.createElement("div");h.appendChild(p);const d=document.createElement("div");p.appendChild(d);const g=document.createElement("div");d.appendChild(g);const c=document.createElement("div");d.appendChild(c);const v=document.createElement("span");p.appendChild(v);{const C=()=>{h.style.height=(e.height??Q.ESViewerStatusBarScale.defaults.height)+"px",h.style.lineHeight=(e.height??Q.ESViewerStatusBarScale.defaults.height)+"px"};this.dispose(e.heightChanged.disposableOn(C)),C()}{const C=()=>{h.style.fontSize=(e.fontSize??Q.ESViewerStatusBarScale.defaults.fontSize)+"px"};this.dispose(e.fontSizeChanged.disposableOn(C)),C()}{const C=()=>{e.bgColor?h.style.background=`rgba(${e.bgColor[0]*255},${e.bgColor[1]*255},${e.bgColor[2]*255},${e.bgColor[3]})`:h.style.background=`rgba(${Q.ESViewerStatusBarScale.defaults.bgColor[0]},${Q.ESViewerStatusBarScale.defaults.bgColor[1]},${Q.ESViewerStatusBarScale.defaults.bgColor[2]},${Q.ESViewerStatusBarScale.defaults.bgColor[3]})`};this.dispose(e.bgColorChanged.disposableOn(C)),C()}y.style.display="flex",m.style.fontWeight="bold",m.style.padding="0 0 0 25px";let b="EarthSDK";m.innerText=b,A.style.fontWeight="";let w="——免费开源地球可视化开发包";A.innerText=w,p.style.width="550px",d.style.position="fixed",d.style.width="125px",d.style.height="30px",d.style.padding="0 5px",d.style.display="flex",d.style.justifyContent="flex-end",d.style.pointerEvents="auto",d.style.zIndex="101",g.style.width="125px",g.style.display="inline-block",g.style.textAlign="center",g.style.fontSize="14px",g.style.fontWeight="lighter",g.style.lineHeight="30px",g.style.color="#fff",g.innerHTML="1000km",c.style.borderRight="1px solid #fff",c.style.borderLeft="1px solid #fff",c.style.borderBottom="1px solid #fff",c.style.position="absolute",c.style.height="10px",c.style.top="15px",c.style.width="75px",c.style.right="30px",v.style.display="flex",v.style.zIndex="101",v.style.justifyContent="flex-end",v.style.right="0";const _=()=>{const C=i.viewerLegend.legend.computedLengthInMeters;if(e.show===!1||C&&C>1e6)d.style.display="none";else{d.style.display="block";const x=i.viewerLegend.legend.computedLengthInStr;x&&(g.innerHTML=x);const P=i.viewerLegend.legend.computedLengthInPixels;if(P){c.style.width=`${P}px`;const T=(135-P)/2;c.style.left=`${T}px`}}};_();const E=setInterval(()=>{_()},200);this.dispose(()=>clearInterval(E));{let C;const x=()=>{e.show?(f.style.display="block",C=this.disposeVar(S.createAnimateFrameWithStartValues(()=>{var B;let P="";const T=u.getCameraInfo();if(T){const F=(O,M)=>T.position[O].toFixed(M);P+=`帧率:${u.getFPS()}FPS 相机: ${F(2,2)}米 `}const I=(B=u.extensions)==null?void 0:B.cursorPositionInfo.cursorPosition;if(I){const F=(O,M)=>I[O].toFixed(M);P+=`位置:${F(0,5)}° ${F(1,5)}° ${F(2,2)}米`}else P+="暂时无法获取鼠标位置...";v.innerText=P})),C.start()):(f.style.display="none",C.destroy())};this.dispose(e.showChanged.disposableOn(x)),x()}}}}get customDiv(){return this._customDiv}};L(ch,"type",ch.register("ESCesiumViewer",Q.ESViewerStatusBarScale.type,ch));let x0=ch;const o2=k.Math.toDegrees,nj=new k.Cartographic;function a2(t,n,e){const i=k.Cartesian3.fromDegrees(t[0],t[1],t[2]),a=k.Cartesian3.fromDegrees(n[0],n[1],n[2]),r=k.Cartesian3.subtract(a,i,new k.Cartesian3);k.Cartesian3.normalize(r,r);const o=new k.Ray(i,r),s=e.pickFromRay(o),l=e.globe.pick(o,e);var u;if(s&&s.position&&l){const A=k.Cartesian3.distance(i,s.position),p=k.Cartesian3.distance(i,l);u=A<p?s.position:l}else s&&s.position?u=s.position:l&&(u=l);if(!u)return;const f=k.Cartesian3.distance(i,a),y=k.Cartesian3.distance(i,u)>f?a:u,m=k.Cartographic.fromCartesian(y,void 0,nj);return[o2(m.longitude),o2(m.latitude),m.height]}const hh=class hh extends kn{constructor(e,i){super(e,i);L(this,"_hideGeoPolylines",this.disposeVar(new Hn(this.czmViewer,this.sceneObject.id)));L(this,"_visibleGeoPolylines",this.disposeVar(new Hn(this.czmViewer,this.sceneObject.id)));const a=i.viewer;if(!a){console.warn("viewer is undefined!");return}const r=this._hideGeoPolylines,o=this._visibleGeoPolylines;this.d(S.track([r,"show"],[e,"show"])),this.d(S.track([o,"show"],[e,"show"])),this.d(S.track([o,"color"],[e,"visibleColor"])),this.d(S.track([r,"color"],[e,"invisibleColor"]));{const s=()=>{const u=e.points,f=e.heightOffset;if(!u||u.length<2||u[0].toString()===u[1].toString()){r.positions=void 0,o.positions=void 0;return}const h=[],y=[],[m,A,p]=u[0],d=[m,A,p+f];try{u.forEach((g,c)=>{if(c===0)return;const v=a2(d,g,a.scene);v?(h.push([g,v]),y.push([d,v])):y.push([d,g])}),r.positions=h,o.positions=y}catch(g){console.warn(g)}};s();const l=this.dv(S.createNextAnimateFrameEvent(e.pointsChanged,e.heightOffsetChanged));this.d(l.don(s))}}get hideGeoPolylines(){return this._hideGeoPolylines}get visibleGeoPolylines(){return this._visibleGeoPolylines}flyTo(e,i){const{sceneObject:a,czmViewer:r}=this;if(!r.actived)return!1;if(a.flyToParam||a.flyInParam)return super.flyTo(e,i);{let o=[];return this.visibleGeoPolylines.positions&&(o=[...this.visibleGeoPolylines.positions.flat()]),this.hideGeoPolylines.positions&&(o=[...o,...this.hideGeoPolylines.positions.flat()]),ze(r,a,i,o,e),!0}}flyIn(e,i){const{sceneObject:a,czmViewer:r}=this;if(!r.actived)return!1;if(a.flyInParam)return super.flyIn(e,i);{let o=[];return this.visibleGeoPolylines.positions&&(o=[...this.visibleGeoPolylines.positions.flat()]),this.hideGeoPolylines.positions&&(o=[...o,...this.hideGeoPolylines.positions.flat()]),ze(r,a,i,o,e),!0}}};L(hh,"type",hh.register("ESCesiumViewer",Q.ESVisibilityAnalysis.type,hh));let C0=hh;class Lu extends S.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.dv(new S.Event));L(this,"_enableEvent",this.dv(new S.Event));L(this,"_clearEvent",this.dv(new S.Event));L(this,"_gridPoints",this.dv(S.reactJson([])));L(this,"excavationPolylines");L(this,"fillPolylines");const a=e.viewer;if(!a){console.warn("viewer is undefined!");return}const r=this.dv(new Hn(e,i)),o=this.dv(new Hn(e,i));this.excavationPolylines=r,this.fillPolylines=o;const s=r;s.color=[1,1,0,1],this.d(S.track([s,"show"],[this,"show"])),s.show=!1,s.depthTest=!0;const l=o;l.color=[0,0,1,1],this.d(S.track([l,"show"],[this,"show"])),l.show=!1;{const m=this.ad(new Hr(e,i));this.d(S.track([m,"show"],[this,"show"])),this.d(S.bind([m,"allowPicking"],[this,"allowPicking"])),this.d(S.bind([m,"positions"],[this,"positions"])),this.d(S.bind([m,"depthTest"],[this,"depthTest"])),this.d(S.bind([m,"outlineWidth"],[this,"outlineWidth"])),this.d(S.bind([m,"outlineColor"],[this,"outlineColor"])),this.d(S.bind([m,"outline"],[this,"outline"])),this.d(S.bind([m,"color"],[this,"fillColor"])),this.d(S.bind([m,"fill"],[this,"filled"])),this.d(S.bind([m,"strokeGround"],[this,"strokeGround"])),this.d(S.bind([m,"ground"],[this,"fillGround"])),this.d(this.flyToEvent.don(d=>{m.flyTo(d)}));const A=()=>{m.positions=this.positions};A();const p=this.dv(S.createNextAnimateFrameEvent(this.positionsChanged));this.d(p.don(A))}const u=()=>{if(!this.positions||!this.positions.length)return;const{minPos:m,maxPos:A}=Q.getMinMaxCorner(this.positions),p=m[0],d=m[1],g=A[0],c=A[1],b={type:"Polygon",coordinates:[[...this.positions.map(I=>[I[0],I[1]])]]},w=[p,d,g,c],_=this.gridWidth,x=AE(w,_,{units:"meters",mask:b}).features.map(I=>I.geometry.coordinates),P=k.Math.toRadians;return x.map(I=>new k.Cartographic(P(I[0]),P(I[1])))},f=()=>{s.positions=[],l.positions=[],this.area=0,this.cutVolume=0,this.fillVolume=0,this.cutAndFillVolume=0,s.depthTest=!0},h=this.dv(S.createProcessingFromAsyncFunc(async m=>{const A=u();let p=0,d=300;const g=Math.ceil(A.length/d),c=[];do{let v=[];p===g-1?v=A.slice(p*d):v=A.slice(p*d,(p+1)*d);const b=a.scene.sampleHeightMostDetailed(v),w=await m.promise(b);if(p===g-1?this.progress=Math.round(this.progress+100/g):this.progress+=100/g,w&&w.length){const _=k.Math.toDegrees,E=w.map(C=>[_(C.longitude),_(C.latitude),C.height]);c.push(...E)}p++}while(p<g);!c||!c.length||(this.gridPoints=c)}));let y=null;{const m=()=>{if(!this.positions||!this.positions.length||!this.gridPoints)return;let A=0;const p=[];let d=0;const g=[];this.gridPoints.forEach(c=>{const v=this.positions;c[2]>v[0][2]?(A+=this.gridWidth*this.gridWidth*(c[2]-v[0][2]),p.push([c,[c[0],c[1],v[0][2]]])):(d+=this.gridWidth*this.gridWidth*(v[0][2]-c[2]),g.push([c,[c[0],c[1],v[0][2]]]))}),s.positions=p,l.positions=g,s.show=!0,l.show=!0,this.area=dS(this.positions),this.cutVolume=A,this.fillVolume=d,this.cutAndFillVolume=d-A,y&&clearTimeout(y),y=setTimeout(()=>{s.depthTest=!1},200)};m(),this.d(this.gridPointsChanged.don(m)),this.d(()=>clearTimeout(y))}{const m=()=>{if(!this.positions||!this.positions.length){this.planeHeight=void 0;return}this.planeHeight=this.positions[0][2]};m(),this.d(this.positionsChanged.don(m))}{const m=()=>{if(!this.planeHeight||!this.positions||!this.positions.length)return;const A=JSON.parse(JSON.stringify(this.positions.slice(1)));A.unshift([this.positions[0][0],this.positions[0][1],this.planeHeight]),this.positions=A};m(),this.d(this.planeHeightChanged.don(m))}this.d(this.enableEvent.don(()=>{f(),this.gridPoints=[],this.progress=0,h.restart()})),this.d(this.clearEvent.don(()=>{f()}))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get enableEvent(){return this._enableEvent}enableEmit(){this._enableEvent.emit()}get clearEvent(){return this._clearEvent}clearEmit(){this._clearEvent.emit()}get gridPoints(){return this._gridPoints.value}set gridPoints(e){this._gridPoints.value=e}get gridPointsChanged(){return this._gridPoints.changed}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:S.reactPositions(void 0),planeHeight:S.react(void 0),gridWidth:1,area:0,cutVolume:0,fillVolume:0,cutAndFillVolume:0,progress:0,depthTest:!1,outlineWidth:2,outlineColor:[1,1,1,1],outline:!0,filled:!1,fillColor:[1,1,1,1],fillGround:!1,strokeGround:!1})})(Lu||(Lu={})),S.extendClassProps(Lu.prototype,Lu.createDefaultProps);const fh=class fh extends Gn{constructor(e,i){super(e,i);L(this,"_geoVolumeMeasurement");if(this._geoVolumeMeasurement=this.dv(new Lu(this.czmViewer,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoVolumeMeasurement;this.d(S.track([r,"show"],[e,"show"])),this.d(S.bind([r,"positions"],[e,"points"])),this.d(S.track([r,"allowPicking"],[e,"allowPicking"])),this.d(S.bind([r,"planeHeight"],[e,"planeHeight"])),this.d(S.track([r,"gridWidth"],[e,"gridWidth"])),this.d(S.track([e,"cutVolume"],[r,"cutVolume"])),this.d(S.track([e,"fillVolume"],[r,"fillVolume"])),this.d(S.track([e,"cutAndFillVolume"],[r,"cutAndFillVolume"])),this.d(S.bind([e,"progress"],[r,"progress"])),this.d(S.track([r,"depthTest"],[e,"depthTest"])),this.d(S.track([r,"outline"],[e,"stroked"])),this.d(S.track([r,"outlineWidth"],[e,"strokeWidth"])),this.d(S.track([r,"outlineColor"],[e,"strokeColor"])),this.d(S.track([r,"filled"],[e,"filled"])),this.d(S.track([r,"fillColor"],[e,"fillColor"])),this.d(S.track([r,"fillGround"],[e,"fillGround"])),this.d(S.track([r,"strokeGround"],[e,"strokeGround"])),this.d(e.startEvent.don(()=>{r.enableEmit()})),this.d(e.clearEvent.don(()=>{r.clearEmit()}))}get geoVolumeMeasurement(){return this._geoVolumeMeasurement}flyTo(e,i){const{sceneObject:a,czmViewer:r,geoVolumeMeasurement:o}=this;return r.actived?a.flyToParam||a.flyInParam?super.flyTo(e,i):o.positions?(ze(r,a,i,o.positions,e),!0):!1:!1}};L(fh,"type",fh.register("ESCesiumViewer",Q.ESVolumeMeasurement.type,fh));let S0=fh;const dh=class dh extends Gn{constructor(e,i){super(e,i);L(this,"czmEntity");L(this,"czmPolyline",this.ad(new Q.ESGeoLineString));const a=i.viewer;if(!a){console.warn("viewer is undefined!");return}const r=this.czmPolyline;i.add(r),this.ad(()=>i.delete(r)),this.ad(S.bind([r,"show"],[e,"show"])),this.ad(S.bind([r,"allowPicking"],[e,"allowPicking"])),this.ad(S.bind([r,"stroked"],[e,"stroked"])),this.ad(S.bind([r,"strokeColor"],[e,"strokeColor"])),this.ad(S.bind([r,"strokeWidth"],[e,"strokeWidth"])),this.ad(S.bind([r,"strokeGround"],[e,"strokeGround"]));{const u=()=>{if(!e.points||e.points.length<2)r.points=e.points;else{const h=structuredClone(e.points);h.push(h[0]),e.perPositionHeight?r.points=h:r.points=h.map(y=>(y[2]=e.height??Q.ESGeoExtrudedPolygon.defaults.height,y))}};u();const f=this.ad(S.createNextAnimateFrameEvent(e.pointsChanged,e.heightChanged,e.perPositionHeightChanged));this.ad(f.don(u))}const o=this.czmEntity=a.entities.add({polygon:{}});k.Entity.prototype&&(o.ESSceneObjectID=e.id),this.dispose(()=>a.entities.remove(o));let s=new k.PolygonHierarchy;o.polygon&&(o.polygon.hierarchy=new k.CallbackProperty(()=>s,!1));const l=()=>{if(!e.points)return;const u=sn(e.points);if(u.length<2){s=new k.PolygonHierarchy;return}s=new k.PolygonHierarchy(u)};l(),this.dispose(e.pointsChanged.disposableOn(l));{const u=()=>{o.show=e.show&&e.filled,this.geoPolygon&&(this.geoPolygon.show=e.show&&!o.show&&e.filled)};u();const f=this.ad(S.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.ad(f.don(u))}{const u=()=>{o.polygon&&(o.polygon.perPositionHeight=new k.ConstantProperty(e.perPositionHeight),l())};u(),this.ad(e.perPositionHeightChanged.don(u))}{const u=()=>{o.polygon&&(o.polygon.height=new k.ConstantProperty(e.height??Q.ESGeoExtrudedPolygon.defaults.height))};u(),this.dispose(e.heightChanged.disposableOn(u))}{const u=()=>{o.polygon&&(o.polygon.extrudedHeight=new k.ConstantProperty(e.extrudedHeight??Q.ESGeoExtrudedPolygon.defaults.extrudedHeight))};u(),this.dispose(e.extrudedHeightChanged.disposableOn(u))}{const u=()=>{const f=k.Color.fromCartesian4(k.Cartesian4.fromArray(e.fillColor));o.polygon&&(o.polygon.material=f)};u(),this.dispose(e.fillColorChanged.disposableOn(u))}this.disposeVar(new S.ObjResettingWithEvent(e.allowPickingChanged,()=>{if(!e.allowPicking)return new lt.ObjectsToExcludeWrapper(i,o)}))}getMinAndMaxheight(){const{sceneObject:e}=this;if(e.points){const{minPos:i,maxPos:a}=Q.getMinMaxCorner(e.points);return[i[2],a[2]]}return[0,0]}};L(dh,"type",dh.register("ESCesiumViewer",Q.ESGeoExtrudedPolygon.type,dh));let E0=dh;const ph=class ph extends Q.EngineObject{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}const{human:a,poi:r}=n;this.dispose(S.bind([a,"position"],[n,"position"])),this.dispose(S.bind([a,"rotation"],[n,"rotation"])),this.ad(S.bind([a,"scale"],[n,"scale"])),this.ad(S.track([r,"scale"],[n,"scale"])),this.dispose(S.track([r,"rotation"],[n,"rotation"]));const o=()=>{const l=n.position;r.position=[l[0],l[1],l[2]+n.poiOffsetHeight]};o();const s=this.dv(S.createNextAnimateFrameEvent(n.positionChanged,n.poiOffsetHeightChanged));this.d(s.don(o))}};L(ph,"type",ph.register("ESCesiumViewer",Q.ESHumanPoi.type,ph));let P0=ph;const Ah=class Ah extends Q.EngineObject{constructor(n,e){super(n,e);const i=e.viewer;if(!i){console.warn("viewer is undefined!");return}const a=i.scene.postProcessStages,r=a.add(k.PostProcessStageLibrary.createSilhouetteStage());r.uniforms.color=k.Color.LIME,r.selected=[],this.d(()=>{r.selected=[],a.remove(r)}),this.d(n.highlightInner3DtilesetEvent.don(o=>{r.selected=[];const s=o.d(o.tilesetReady.donce(f=>{f.allTilesLoaded.addEventListener(()=>{var y,m,A,p;const h=(p=(A=(m=(y=f==null?void 0:f._root)==null?void 0:y._content)==null?void 0:m._model)==null?void 0:A._featureTables[0])==null?void 0:p._features[0];h?r.selected=[h]:console.warn("tileset?._root?._content?._model?._featureTables[0]?._features[0] is undefined !",f),s()})})),l=o.url,u=Date.now();l.includes("?reload=")?o.url=l.replace(/\?reload=\d+/,`?reload=${u}`):o.url=l+`?reload=${u}`})),this.d(n.removeHighlightInner3DtilesetEvent.don(o=>{r.selected=[]})),this.d(n.es3DTileset.tilesetReady.don(o=>{const s=()=>{const u=n.layerConfig;if(!u){o.style=void 0;return}const f=n.colorBlendMode,h=(A,p)=>{try{const d=A.getProperty("layer"),g=A.getProperty("dataset"),c=d.toString(),v=g.toString(),b=u.find(w=>w.dataset.toString()===v&&w.layer.toString()===c);if(b&&b.value.color){const w=b.value.color;return k.Color.fromCssColorString(w,p)}else return k.Color.clone(k.Color.WHITE,p)}catch(d){return console.warn(d),k.Color.clone(k.Color.WHITE,p)}},y=A=>{try{const p=A.getProperty("layer"),d=A.getProperty("dataset"),g=p.toString(),c=d.toString(),v=u.find(b=>b.dataset.toString()===c&&b.layer.toString()===g);return!(v&&v.value.visible===!1)}catch(p){return console.warn(p),!0}};let m;f!=="HIGHLIGHT"?m=new k.Cesium3DTileStyle({color:{evaluateColor:function(A,p){return h(A,p)}},show:{evaluate:function(A){return y(A)}}}):m=new k.Cesium3DTileStyle({show:{evaluate:function(A){return y(A)}}}),o.style=m};s();const l=this.dv(S.createNextAnimateFrameEvent(n.layerConfigChanged,n.colorBlendModeChanged));this.d(l.don(()=>{s()}))}))}};L(Ah,"type",Ah.register("ESCesiumViewer",Q.ESRtsTileset.type,Ah));let T0=Ah;const yh=class yh extends Ls{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}}};L(yh,"type",yh.register("ESCesiumViewer",Q.ESRtsFeatureEditing.type,yh));let B0=yh;const gh=class gh extends Ls{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}}};L(gh,"type",gh.register("ESCesiumViewer",Q.ESMsTileset.type,gh));let I0=gh;const mh=class mh extends Xe{constructor(e,i){super(e,i);L(this,"_czmGeoPoint");if(this._czmGeoPoint=this.disposeVar(new Jn(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmGeoPoint;this.dispose(S.track([r,"show"],[e,"show"])),this.dispose(S.bind([r,"position"],[e,"position"]))}get czmGeoPoint(){return this._czmGeoPoint}flyTo(e,i){const{sceneObject:a,czmViewer:r,czmGeoPoint:o}=this;return r.actived?a.flyToParam||a.flyInParam?super.flyTo(e,i):(o.flyTo(e),a.flyOverEvent.emit(i,"over",r),!0):!1}};L(mh,"type",mh.register("ESCesiumViewer",Q.ESStaticMesh.type,mh));let F0=mh;const ka=class ka extends _n{constructor(e){super();L(this,"_config",this.disposeVar(S.react(ka.defaultConfig)));L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_pointerEventFilterFunc",this.disposeVar(S.react(ka.defaultPointerEventFilterFunc)));if(!!e.viewer){{const i=()=>{const{config:a}=this;a.clickEnabled!==void 0&&(this.clickEnabled=a.clickEnabled),a.dblClickEnabled!==void 0&&(this.dblClickEnabled=a.dblClickEnabled)};i(),this.dispose(this.configChanged.disposableOn(i))}{const i=this.ad(new Jn(e));i.pixelSize=4,i.outlineColor=[0,0,.8,1],i.outlineWidth=2,i.allowPicking=!1;{const a=()=>{if(!this.position)return;const r=[...this.position];e.editingHeightOffset&&(r[2]-=e.editingHeightOffset),i.position=r,i.show=!!this.position};a(),this.dispose(this.positionChanged.disposableOn(a))}}this.ad(new S.ObjResettingWithEvent(this.enabledChanged,()=>this.enabled?new rj(e,this):void 0))}}get config(){return this._config.value}set config(e){this._config.value=e}get configChanged(){return this._config.changed}get overEvent(){return this._overEvent}over(){this._overEvent.emit()}get pointerEventFilterFunc(){return this._pointerEventFilterFunc.value}set pointerEventFilterFunc(e){this._pointerEventFilterFunc.value=e}get pointerEventFilterFuncChanged(){return this._pointerEventFilterFunc.changed}};L(ka,"defaultConfig",{clickEnabled:!0,dblClickEnabled:!1}),L(ka,"defaultPointerEventFilterFunc",e=>e.button===0),L(ka,"defaults",{..._n.defaults,position:[116.39,39.9,0]});let _r=ka;(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),position:S.reactArrayWithUndefined(void 0),virtualHeight:void 0,clickEnabled:!0,dblClickEnabled:!1})})(_r||(_r={})),S.extendClassProps(_r.prototype,_r.createDefaultProps);class rj extends S.Destroyable{constructor(e,i){super();L(this,"_doings",[]);L(this,"initDoings",this.ad(()=>{this._doings.forEach(e=>e.destroy()),this._doings.length=0}));this._czmViewer=e,this._placeEditing=i;{const a=(r,o)=>{o=="click"&&(!i.clickEnabled||!i.pointerEventFilterFunc(r))||o=="dblclick"&&(!i.dblClickEnabled||!i.pointerEventFilterFunc(r))||(i.over(),i.enabled=!1)};this.ad(e.clickEvent.don(r=>{r.pointerEvent&&a(r.pointerEvent,"click")})),this.ad(e.dblclickEvent.don(r=>{r.pointerEvent&&a(r.pointerEvent,"dblclick")}))}this.ad(e.pointerMoveEvent.don(a=>{if(!a.pointerEvent)return;const r=new ij(this,a.pointerEvent,o=>{if(!o||o[2]<-1e5){i.position=void 0;return}const s=[...o];e.editingHeightOffset&&(s[2]+=e.editingHeightOffset),i.position=s,this._doings.splice(0,this._doings.indexOf(r)+1).forEach(u=>u.destroy())});this._doings.push(r)}))}get czmViewer(){return this._czmViewer}get placeEditing(){return this._placeEditing}}class ij extends S.Destroyable{constructor(n,e,i){super(),this._owner=n;const{czmViewer:a}=this._owner,r=uw(a,e,this._owner.placeEditing.virtualHeight),[o]=S.getEventFromPromise(r);this.dispose(o.disposableOn(i))}}class qn extends _n{constructor(){super()}}L(qn,"defaults",{..._n.defaults,position:[116.39,39.9,0]}),(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),position:S.reactArrayWithUndefined(void 0)})})(qn||(qn={})),S.extendClassProps(qn.prototype,qn.createDefaultProps);function k0(t,n){const e=new rt(t);return e.hasArrow=!0,e.arcType="RHUMB",e.width=10,e.color=n,e}const ur=class ur extends S.Destroyable{constructor(n){if(super(),!n.viewer)return;const e=this.disposeVar(k0(n,ur.defaults.xAxisColor)),i=this.disposeVar(k0(n,ur.defaults.yAxisColor)),a=this.disposeVar(k0(n,ur.defaults.zAxisColor));{const r=()=>{e.show=this.xAxisShow&&this.show,i.show=this.yAxisShow&&this.show,a.show=this.zAxisShow&&this.show};r();const o=this.ad(S.createNextAnimateFrameEvent(this.showChanged,this.xAxisShowChanged,this.yAxisShowChanged,this.zAxisShowChanged));this.dispose(o.disposableOn(r))}{const r=()=>{const{position:s=ur.defaults.position,heading:l=ur.defaults.heading}=this,[u,f,h]=s,{dimensions:y=ur.defaults.dimensions}=this;a.positions=[s,[u,f,h+y[2]]];const m=Q.geoRhumbDestination(s,y[0],90+l);m&&(e.positions=[s,m]);const A=Q.geoRhumbDestination(s,y[1],0+l);A&&(i.positions=[s,A])};r();const o=this.disposeVar(S.createNextAnimateFrameEvent(this.positionChanged,this.dimensionsChanged,this.headingChanged));this.dispose(o.disposableOn(r))}{const r=()=>{e.color=this.xAxisColor??ur.defaults.xAxisColor,i.color=this.yAxisColor??ur.defaults.yAxisColor,a.color=this.zAxisColor??ur.defaults.zAxisColor};r();const o=this.disposeVar(S.createNextAnimateFrameEvent(this.xAxisColorChanged,this.yAxisColorChanged,this.zAxisColorChanged));this.dispose(o.disposableOn(r))}}};L(ur,"defaults",{position:[116.39,39.9,0],heading:0,dimensions:[1e3,1e3,1e3],xAxisColor:[1,0,0,1],yAxisColor:[0,1,0,1],zAxisColor:[0,0,1,1]});let ko=ur;(t=>{t.createDefaultProps=()=>({show:!0,position:S.reactArrayWithUndefined(void 0),heading:0,dimensions:S.reactArray([1e3,1e3,1e3]),xAxisColor:S.reactArray([1,0,0,1]),yAxisColor:S.reactArray([0,1,0,1]),zAxisColor:S.reactArray([0,0,1,1]),xAxisShow:!0,yAxisShow:!0,zAxisShow:!0})})(ko||(ko={})),S.extendClassProps(ko.prototype,ko.createDefaultProps);const Uo=class Uo extends qn{constructor(e){super();L(this,"_opInfo",{step:this.ad(S.react(!1)),moved:this.ad(S.react(!1)),constraintMode:this.ad(S.react("none")),originPosition:this.disposeVar(S.reactArray(qn.defaults.position)),originHeading:this.disposeVar(S.react(0)),originDimensions:this.disposeVar(S.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(S.reactArray([0,0,0])),movingPosition:this.disposeVar(S.reactArray([0,0,0])),targetPosition:this.disposeVar(S.reactArray([0,0,0])),targetHeading:this.disposeVar(S.react(0))});L(this,"_createCoordinates",e=>{const i=this.ad(new ko(e));this.dispose(this._opInfo.step.changed.disposableOn(()=>{s2(i,this._opInfo.constraintMode.value,this._opInfo.step.value)}));{const a=()=>{const o=[...this.position??Uo.defaults.position];e.editingHeightOffset&&(o[2]-=e.editingHeightOffset),i.position=o};a(),this.dispose(this.positionChanged.disposableOn(a))}{const a=()=>{i.heading=this.heading??0};a(),this.dispose(this.headingChanged.disposableOn(a))}{const a=()=>{i.dimensions=this._opInfo.originDimensions.value};a(),this.dispose(this._opInfo.originDimensions.changed.disposableOn(a))}return i});L(this,"_createOriginCoordinates",e=>{const i=this.ad(new ko(e));i.xAxisColor=[1,0,0,.5],i.yAxisColor=[0,1,0,.5],i.zAxisColor=[0,0,1,.5];const{originPosition:a,originHeading:r,originDimensions:o}=this._opInfo;{const s=()=>{i.position=a.value};s(),this.dispose(a.changed.disposableOn(s))}{const s=()=>{i.heading=r.value??0};s(),this.dispose(r.changed.disposableOn(s))}{const s=()=>{i.dimensions=o.value};s(),this.dispose(o.changed.disposableOn(s))}return i});L(this,"_createGrid",e=>{const i=this.ad(new Ar(e));{const a=()=>{const o=this._opInfo.originPosition.value,s=this._opInfo.originHeading.value,l=this._opInfo.originDimensions.value[0],u=[];for(let f=-4;f<5;++f){const h=Q.geoRhumbDestination(o,l*.2*f,s+90);if(h){const y=Q.geoRhumbDestination(h,l,s+180),m=Q.geoRhumbDestination(h,l,s);y&&m&&u.push([y,h,m])}}for(let f=-4;f<5;++f){const h=Q.geoRhumbDestination(o,l*.2*f,s);if(h){const y=Q.geoRhumbDestination(h,l,s-90),m=Q.geoRhumbDestination(h,l,s+90);y&&m&&u.push([y,h,m])}}i.positions=u};a();const r=this.disposeVar(S.createNextAnimateFrameEvent(this._opInfo.originPosition.changed,this._opInfo.originHeading.changed,this._opInfo.originDimensions.changed));this.dispose(r.disposableOn(a))}return i});L(this,"_createHelpLine",e=>{const i=this.ad(new rt(e));i.hasDash=!0,i.arcType="RHUMB",i.color=[1,1,0,.99];{const a=()=>{i.positions=[this._opInfo.originPosition.value,this._opInfo.targetPosition.value]},r=this.ad(S.createNextAnimateFrameEvent(this._opInfo.originPosition.changed,this._opInfo.targetPosition.changed));this.ad(r.don(a))}return i});L(this,"_createCircle",e=>{const i=this.ad(new Ar(e));i.arcType="RHUMB",i.width=2,i.hasDash=!0;const a=this.disposeVar(S.createNextAnimateFrameEvent(this._opInfo.originPosition.changed,this._opInfo.originDimensions.changed)),r=()=>{const o=this._opInfo.originPosition.value,s=this._opInfo.originDimensions.value[0],l=[],u=32;for(let f=0;f<=u;++f){const h=Q.geoRhumbDestination(o,s,f*360/u);h&&l.push(h)}i.positions=[l]};return r(),this.dispose(a.disposableOn(r)),i});L(this,"_pickingXYProcessing",e=>this.ad(new S.Processing((i,a,r)=>{const o=[0,0,0],s=new k.Cartographic;return e.pointerMoveEvent.don(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hr(S.getDomEventCurrentTargetPos(l.pointerEvent));if(!La(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ra(s,o),this._opInfo.constraintMode.value==="x"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,o,o):this._opInfo.constraintMode.value==="y"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value,o,o):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=o;const f=[0,0,0];Q.geoRhumbDestination(o,r,a,f),this._opInfo.targetPosition.value=f})})));L(this,"_pickingZProcessing",e=>this.ad(new S.Processing(()=>{const i=new k.Cartesian3,a=[0,0,0];return e.pointerMoveEvent.don(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!Nh(e.viewer.scene,Et(this._opInfo.originPosition.value),o,i))return;const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ve(i,a)){this._opInfo.movingPosition.value=a;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],a[2]+s]}})})));L(this,"_pickingZAxisProcessing",e=>this.ad(new S.Processing(()=>{const i=[0,0,0],a=new k.Cartographic;return e.pointerMoveEvent.don(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!La(e.viewer.scene,o,this._opInfo.originPosition.value[2],a))return;Ra(a,i);const s=Q.geoRhumbHeading(this._opInfo.originPosition.value,this._opInfo.draggingStartPosition.value),u=Q.geoRhumbHeading(this._opInfo.originPosition.value,i)-s;let f=this._opInfo.originHeading.value+u;f=k.Math.toDegrees(k.Math.negativePiToPi(k.Math.toRadians(f))),this._opInfo.movingPosition.value=i,this.heading=this._opInfo.targetHeading.value=f})})));if(!e.viewer)return;const i=this.ad(S.reactArray([1,1,1]));this.ad(e.dblclickEvent.don(()=>this.enabled=!1)),this.ad(new Rp(e,this.positionReact,i,this.axisPixelSize));{this.ad(this._opInfo.targetPosition.changed.don(r=>{if(this._opInfo.moved){const o=[...r];e.editingHeightOffset&&(o[2]+=e.editingHeightOffset),this.position=o}})),this.ad(this._opInfo.targetHeading.changed.don(r=>this._opInfo.moved&&(this.heading=r)));const a=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((r,o)=>r===this._opInfo.targetPosition.value[o])){this._opInfo.moved.value=!0;return}};a(),this.dispose(this._opInfo.originHeading.changed.disposableOn(a)),this.dispose(this._opInfo.originPosition.changed.disposableOn(a)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(a)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(a))}{const a=this._createCoordinates(e),r=this._createOriginCoordinates(e),o=this._createGrid(e),s=this._createHelpLine(e),l=this._createCircle(e);{const A=()=>{l.show=o.show=this.enabled&&this.showCircle,s.show=this.enabled&&this.showCircle&&this._opInfo.moved.value,a.show=this.enabled&&this.showCoordinates,r.show=this.enabled&&this.showCoordinates&&this._opInfo.moved.value};A();const p=this.ad(S.createNextAnimateFrameEvent(this.enabledChanged,this.showCircleChanged,this.showCoordinatesChanged,this._opInfo.moved.changed));this.ad(p.don(A))}{const A=()=>{a.xAxisShow=r.xAxisShow=this.xAxisShow,a.yAxisShow=r.yAxisShow=this.yAxisShow,a.zAxisShow=r.zAxisShow=this.zAxisShow};A();const p=this.ad(S.createNextAnimateFrameEvent(this.xAxisShowChanged,this.yAxisShowChanged,this.zAxisShowChanged));this.ad(p.don(A))}{const A=()=>{o.color=this._opInfo.constraintMode.value!=="none"?[1,1,0,.6]:[1,1,0,.3],l.color=this._opInfo.constraintMode.value==="zAxis"?[1,1,0,.99]:[1,1,0,.5],s2(a,this._opInfo.constraintMode.value,this._opInfo.step.value)};A(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(A))}const u=this._pickingXYProcessing(e),f=this._pickingZProcessing(e),h=this._pickingZAxisProcessing(e),y=this.ad(S.createProcessingFromAsyncFunc(async A=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",A.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await S.step(A,async p=>{const d=()=>{const w=[...this.position??Uo.defaults.position];e.editingHeightOffset&&(w[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=w},g=()=>this._opInfo.targetHeading.value=this._opInfo.originHeading.value=this.heading,c=()=>this._opInfo.originDimensions.value=i.value;p.disposer.dispose((d(),this.positionChanged.don(d))),p.disposer.dispose((g(),this.headingChanged.don(g))),p.disposer.dispose((c(),i.changed.don(c)));const v={constraintMode:"none",startDragPos:[0,0,0]},b=w=>{const _={position:a.position??Uo.defaults.position,heading:a.heading??Uo.defaults.heading,dimensions:a.dimensions??Uo.defaults.dimensions};e.viewer&&Cp(w,e.viewer.scene,_,this.axisSnapPixelSize,v,{x:this.disableX,y:this.disableY,z:this.disableZ,xy:this.disableXY,zAxis:this.disableZAxis}),this._opInfo.constraintMode.value=v.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=v.startDragPos};p.disposer.dispose(e.pointerMoveEvent.don(w=>{w.pointerEvent&&b(w.pointerEvent)})),await S.step(p,w=>new Promise((_,E)=>{w.disposer.dispose(E),w.disposer.dispose(e.pointerDownEvent.don(C=>{C.pointerEvent&&b(C.pointerEvent),C.pointerEvent&&C.pointerEvent.button===0&&v.constraintMode!=="none"&&_()}))}))}),this._opInfo.step.value=!1,await S.step(A,async p=>{if(e.incrementDisabledInputStack(),p.disposer.dispose(()=>{e.decrementDisabledInputStack()}),["xy","x","y"].includes(this._opInfo.constraintMode.value)){const d=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),g=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);u.restart(void 0,d,g),p.disposer.dispose(()=>u.cancel())}else this._opInfo.constraintMode.value==="z"?(f.restart(),p.disposer.dispose(()=>f.cancel())):this._opInfo.constraintMode.value==="zAxis"?(h.restart(),p.disposer.dispose(()=>h.cancel())):console.warn(`pickingInfo.constraintMode error! ${this._opInfo.constraintMode.value}`);await S.step(p,d=>new Promise((g,c)=>{d.disposer.dispose(c),d.disposer.dispose(e.pointerUpEvent.don(()=>{g()})),d.disposer.dispose(e.pointerOutEvent.don(()=>g()))}))});while(!0)})),m=()=>{this.enabled?y.restart():y.isRunning&&y.cancel()};m(),this.ad(this.enabledChanged.don(m))}}};L(Uo,"defaults",{...qn.defaults,heading:0,dimensions:[1e3,1e3,1e3],xAxisColor:[1,0,0,1],yAxisColor:[0,1,0,1],zAxisColor:[0,0,1,1]});let Ti=Uo;(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),heading:0,axisPixelSize:100,axisSnapPixelSize:5,showCoordinates:!0,showCircle:!0,disableX:!1,disableY:!1,disableZ:!1,disableXY:!1,disableZAxis:!1,xAxisShow:!0,yAxisShow:!0,zAxisShow:!0})})(Ti||(Ti={})),S.extendClassProps(Ti.prototype,Ti.createDefaultProps);function s2(t,n,e){t.xAxisColor=[1,0,0,.99],t.yAxisColor=[0,1,0,.99],t.zAxisColor=[0,0,1,.99],n==="x"?t.xAxisColor=e?[1,1,0,.8]:[1,1,0,.99]:n==="y"?t.yAxisColor=e?[1,1,0,.8]:[1,1,0,.99]:n==="z"?t.zAxisColor=e?[1,1,0,.8]:[1,1,0,.99]:n==="xy"&&(t.xAxisColor=e?[1,1,0,.8]:[1,1,0,.99],t.yAxisColor=e?[1,1,0,.8]:[1,1,0,.99])}class M0 extends S.HasOwner{constructor(e){super(e);L(this,"_valid",!1);L(this,"_normal",new k.Cartesian3(0,0,0));L(this,"_origin",new k.Cartesian3(0,0,0))}get viewer(){return this.owner.czmViewer.viewer}get scene(){return this.viewer.scene}get sceneObject(){return this.owner}get valid(){return this._valid}get normal(){return this._normal}get origin(){return this._valid&&this._origin}pick(e){if(!this.normal||!this.owner.cartesian)return;const i=this.owner.cartesian,a=hr(e);return cw(this.scene,i,this.normal,a)}}class oj extends M0{constructor(n){super(n);{const e=()=>{const a=dt({position:this.sceneObject.position,rotation:this.sceneObject.rotation});this._valid=!!a,a&&(this._origin.x=a[4],this._origin.y=a[5],this._origin.z=a[6],this._normal.x=a[8],this._normal.y=a[9],this._normal.z=a[10])};e();const i=this.ad(S.createNextAnimateFrameEvent(this.sceneObject.positionChanged,this.sceneObject.rotationChanged));this.ad(i.don(e))}}}class aj extends M0{constructor(n){super(n);const e=()=>{const i=dt({rotation:[this.sceneObject.selfRotation[0],0,0]});if(!i)throw new Error("PitchPlane: rm is undefined");const a=dt({position:this.sceneObject.position,rotation:this.sceneObject.rotation,localModelMatrix:k.Matrix4.toArray(i)});if(this._valid=!!a,!!a){{const r=this._normal;r.x=-a[0],r.y=-a[1],r.z=-a[2]}{const r=this._origin;r.x=a[4],r.y=a[5],r.z=a[6]}}};e(),this.dispose(this.sceneObject.positionChanged.disposableOn(e)),this.dispose(this.sceneObject.rotationChanged.disposableOn(e)),this.dispose(this.sceneObject.selfRotationChanged.disposableOn(e))}}class sj extends M0{constructor(n){super(n);const e=()=>{const i=dt({rotation:[this.sceneObject.selfRotation[0],this.sceneObject.selfRotation[1],0]});if(!i)throw new Error("PitchPlane: rm is undefined");const a=dt({position:this.sceneObject.position,rotation:this.sceneObject.rotation,localModelMatrix:k.Matrix4.toArray(i)});if(this._valid=!!a,!!a){{const r=this._normal;r.x=-a[4],r.y=-a[5],r.z=-a[6]}{const r=this._origin;r.x=a[8],r.y=a[9],r.z=a[10]}}};e(),this.dispose(this.sceneObject.positionChanged.disposableOn(e)),this.dispose(this.sceneObject.rotationChanged.disposableOn(e)),this.dispose(this.sceneObject.selfRotationChanged.disposableOn(e))}}class rl extends S.Destroyable{constructor(e){super();L(this,"_czmTexture");L(this,"_customPrimitiveForCircle");L(this,"_circleCanvas");L(this,"_debugAxis");e.viewer&&(this._czmTexture=this.disposeVar(new gt(e)),this._czmTexture.uri="",this._createCircleCanvas(e),this._createCustomPrimitiveForCircle(e),this._createDebugAxis(e))}get czmTexture(){return this._czmTexture}get customPrimitiveForCircle(){return this._customPrimitiveForCircle}get circleCanvas(){return this._circleCanvas}get debugAxis(){return this._debugAxis}_createCircleCanvas(e){let i=this.disposeVar(S.react(!1));const a=document.createElement("canvas");a.width=a.height=256,this._circleCanvas=a.getContext("2d");{const o=()=>{const l={rotation:this.circleRotation*Math.PI/180,startRotation:this.circleStartRotation*Math.PI/180,endRotation:this.circleEndRotation*Math.PI/180},u=this._circleCanvas,f=this.color,h=`rgba(${f[0]*255|0}, ${f[1]*255|0}, ${f[2]*255|0}, ${f[3]})`;u.clearRect(0,0,256,256),u.lineWidth=6,u.beginPath(),u.arc(128,128,64,0,Math.PI*2,!1),u.strokeStyle=`rgba(0,0,0,${f[3]})`,u.stroke(),u.lineWidth=4,u.beginPath(),u.arc(128,128,64,0,Math.PI*2,!1),u.strokeStyle=h,u.stroke();{u.lineWidth=1,u.beginPath();let A=k.Math.zeroToTwoPi(l.startRotation),p=k.Math.zeroToTwoPi(l.endRotation);p<A&&(p+=k.Math.TWO_PI),(A!==p||A!==0)&&(u.moveTo(128,128),u.arc(128,128,64,A,p,p-A>Math.PI),u.lineTo(128,128),u.strokeStyle="rgba(255, 255, 0, 1.0)",u.stroke())}let y=k.Math.negativePiToPi(l.rotation);u.lineWidth=3,u.beginPath(),u.moveTo(128,128),u.arc(128,128,64,0,y,k.Math.negativePiToPi(y-0)<0),u.lineTo(128,128),u.fillStyle=`rgba(${f[0]*255|0}, ${f[1]*255|0}, ${f[2]*255|0}, 0.5)`,u.fill();{u.save(),u.font="16px console",u.textBaseline="middle";const d=`${(k.Math.negativePiToPi(y-0)*180/Math.PI*10|0)/10}°`;var m=u.measureText(d).width;u.translate(128,128),u.rotate(Math.PI*.5),y=k.Math.negativePiToPi(y-0)+0,u.rotate((y+0)*.5),u.scale(i.value?-1:1,1),u.translate(-128,-128),u.fillStyle="white",u.fillText(d,128-m*.5,54),u.lineWidth=1,u.restore()}this.czmTexture&&this.czmTexture.copyFromCanvas(a)};o();const s=this.ad(S.createNextAnimateFrameEvent(this.colorChanged,this.circleRotationChanged,this.circleStartRotationChanged,this.circleEndRotationChanged,i.changed));this.ad(s.don(o)),this.czmTexture&&this.ad(this.czmTexture.readyEvent.don(o))}{const r=()=>{const s=dt({rotation:this.selfRotation});if(!s)return;const l=dt({position:this.position,rotation:this.rotation,localModelMatrix:k.Matrix4.toArray(s)});if(!l)return;const{viewer:u}=e;if(!u)return;const f=k.Cartesian3.dot(u.scene.camera.directionWC,new k.Cartesian3(l[8],l[9],l[10]));i.value=f>0};r();const o=this.ad(S.createNextAnimateFrameEvent(e.cameraChanged,this.positionChanged,this.rotationChanged,this.selfRotationChanged));this.ad(o.don(r))}}_createCustomPrimitiveForCircle(e){this._customPrimitiveForCircle=this.disposeVar(lj(e)),this.dispose(S.track([this._customPrimitiveForCircle,"show"],[this,"show"])),this.dispose(S.track([this._customPrimitiveForCircle,"position"],[this,"position"])),this.dispose(S.track([this._customPrimitiveForCircle,"rotation"],[this,"rotation"])),this.dispose(S.track([this._customPrimitiveForCircle,"pixelSize"],[this,"pixelSize"]));{const i=()=>{const a=dt({rotation:this.selfRotation});this._customPrimitiveForCircle&&(this._customPrimitiveForCircle.localModelMatrix=a&&k.Matrix4.toArray(a)||void 0)};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.customPrimitiveForCircle&&this.czmTexture&&(this.customPrimitiveForCircle.uniformMap={u_image:{type:"texture",id:this.czmTexture.id},u_color:this.color})};i(),this.dispose(this.colorChanged.disposableOn(i))}}_createDebugAxis(e){this._debugAxis=this.ad(uj(e)),this.dispose(S.track([this._debugAxis,"pixelSize"],[this,"pixelSize"])),this.dispose(S.track([this._debugAxis,"position"],[this,"position"])),this.dispose(S.track([this._debugAxis,"rotation"],[this,"rotation"])),this.dispose(S.track([this._debugAxis,"show"],[this,"debug"]));{const i=()=>{const a=dt({rotation:this.selfRotation});this._debugAxis&&(this._debugAxis.localModelMatrix=a&&k.Matrix4.toArray(a)||void 0)};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this._debugAxis&&(this._debugAxis.uniformMap={u_color:this.color})};i(),this.dispose(this.colorChanged.disposableOn(i))}}}L(rl,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,editing:!1,position:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([0,0,0]),selfRotation:S.reactArray([0,0,0]),pixelSize:300,color:S.reactArray([1,1,1,1]),circleRotation:0,circleStartRotation:0,circleEndRotation:0,debug:!1})})(rl||(rl={})),S.extendClassProps(rl.prototype,rl.createDefaultProps);function lj(t){return Vp({type:"CzmCustomPrimitive",allowPicking:!0,positionEditing:!1,pixelSize:100,boundingVolume:{type:"LocalAxisedBoundingBox",data:{min:[0,-1,0],max:[1,0,0]}},renderState:{depthTest:{enabled:!1},cull:{enabled:!1,face:1029},depthMask:!1,blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},localPosition:[-.5,-.5,0],localRotation:[-90,0,0]},pt,t)}function uj(t){return Vp({type:"CzmCustomPrimitive",allowPicking:!0,positionEditing:!1,position:[114.86128105686282,40.86825802653499,0],primitiveType:"LINES",vertexShaderSource:`in vec3 position;
4874
+ `,this._customPrimitive.uniformMap={u_color:[1,1,0,1]},this.dispose(S.track([this._customPrimitive,"show"],[this,"show"])),this.dispose(S.track([this._geoPolyline,"show"],[this,"show"])),this.dispose(S.bind([this._geoPolyline,"positions"],[this,"positions"])),this.dispose(S.bind([this._geoPolyline,"width"],[this,"outlineWidth"])),this.dispose(S.bind([this._geoPolyline,"color"],[this,"outlineColor"]));{const r=()=>{let o="暂无分析结果";this.totalArea&&(o=`表面积: ${(this.totalArea??0).toFixed(2)}平方米`),this._geoDivPoi&&(this._geoDivPoi.innerHTML=Wo(o,24))};r(),this.dispose(this.totalAreaChanged.don(r)),this.dispose(S.track([this._geoDivPoi,"show"],[this,"show"])),this.dispose(this.positionsChanged.don(()=>{this._geoDivPoi&&(this.positions&&this.positions.length>=3?this._geoDivPoi.position=pS(this.positions):this._geoDivPoi.position=void 0)}))}{const r=()=>{if((!this.positions||this.positions.length<3)&&this.customPrimitive){this.totalArea=0,this.customPrimitive.position=void 0,this.customPrimitive.attributes=void 0,this.customPrimitive.indexTypedArray=void 0,this.customPrimitive.show=!1;return}const o=this.interpolationDistance??Fa.defaults.interpolationDistance,s=this.interpolation??Fa.defaults.interpolation,l=this.offsetHeight??Fa.defaults.offsetHeight,u=this.drillDepth??Fa.defaults.drillDepth,f=[];if(this.positions)for(let M=0;M<this.positions.length;++M){const D=k.Cartesian3.fromDegrees(this.positions[M][0],this.positions[M][1],this.positions[M][2]);f.push(D)}var h=H9(f);if(isNaN(h.x)||isNaN(h.y)||isNaN(h.z)){console.warn("法向量计算错误!");return}var y=j9(f),m=k.Cartesian3.normalize(y,new k.Cartesian3),A=k.Cartesian3.dot(m,h);A<0&&(h=i2(h),f.reverse());let p=k.Transforms.eastNorthUpToFixedFrame(y),d=k.Matrix4.inverseTransformation(p,new k.Matrix4);if(Math.abs(A)<.999){const M=G9(h,m);var g=i2(y),c=k.Matrix4.fromTranslation(g,new k.Matrix4);d=k.Matrix4.multiply(M,c,c),p=k.Matrix4.inverse(d,new k.Matrix4)}var v=nl(f,d),b=[],w=[],_=[];if(s&&o>0){var E=W9(v),C=q9(v),x=Z9(C,E,o);const M=w0(x,p,d,h,a.scene,l,u);var P=Y9(v,o);const D=w0(P,p,d,h,a.scene,l,u);_.push(...M.world_cartesian),b.push(...M.local),w.push(...M.world),_.push(...D.world_cartesian),b.push(...D.local),w.push(...D.world),v.forEach(R=>{var U=w0([R],p,d,h,a.scene,l,u);if(U.local.length>0)b.push(...U.local),w.push(...U.world),_.push(...U.world_cartesian);else{b.push(R);var z=nl([R],p);for(let V=0;V<z.length;++V){_.push(z[V]);var N=k.Cartographic.fromCartesian(z[V]);w.push([N.longitude,N.latitude,N.height+l])}}})}else{b=v,_=nl(v,p);for(let M=0;M<_.length;++M){var T=k.Cartographic.fromCartesian(_[M]);w.push([T.longitude,T.latitude,T.height+l])}}var I=K9(b);const B=X9(_,I);this.totalArea=B;const F=[];b.forEach(M=>{const D=[M.x,M.y,M.z];D&&F.push(...D)});const O={position:{typedArray:new Float32Array(F),componentsPerAttribute:3}};if(this.customPrimitive){this.customPrimitive.modelMatrix=k.Matrix4.toArray(p),this.customPrimitive.attributes=O;const M=Q9([...I]);this.customPrimitive.indexTypedArray=new Uint32Array(M),this.customPrimitive.show=!0}};this.dispose(this.startEvent.don(r))}}get pickedEvent(){return this._pickedEvent}get startEvent(){return this._startEvent}start(){this._startEvent.emit()}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get geoPolyline(){return this._geoPolyline}get customPrimitive(){return this._customPrimitive}get geoDivPoi(){return this._geoDivPoi}};L(Fa,"defaults",{positions:[],totalArea:0,interpolation:!0,interpolationDistance:.5,offsetHeight:0,drillDepth:3,outlineWidth:2,outlineColor:[1,1,1,1]});let Ca=Fa;(t=>{t.createDefaultProps=()=>({positions:S.reactArrayWithUndefined(void 0),show:void 0,totalArea:void 0,interpolationDistance:void 0,interpolation:void 0,offsetHeight:void 0,drillDepth:void 0,outlineWidth:void 0,outlineColor:S.reactArray([1,1,1,1])})})(Ca||(Ca={})),S.extendClassProps(Ca.prototype,Ca.createDefaultProps);function Q9(t){t.length%3!==0&&console.warn("当前传入的索引不是3的倍数,可能不是三角片的索引!");const n=t.length/3|0,e=new Array(n*6);for(let i=0;i<n;++i)e[i*6+0]=t[i*3+0],e[i*6+1]=t[i*3+1],e[i*6+2]=t[i*3+2],e[i*6+3]=t[i*3+1],e[i*6+4]=t[i*3+2],e[i*6+5]=t[i*3+0];return e}function H9(t){var n=new k.Cartesian3(0,0,0),e=new k.Cartesian3(0,0,0),i=new k.Cartesian3(0,0,0),a=new k.Cartesian3(0,0,0);t[0].equals(t[t.length-1])&&t.pop();var r=t.length;for(let u=0;u<r;++u){var o=t[u],s;u==0?s=t[t.length-1]:s=t[u-1];var l;u==t.length-1?l=t[0]:l=t[u+1],n=k.Cartesian3.subtract(o,s,n),e=k.Cartesian3.subtract(o,l,e),i=k.Cartesian3.cross(n,e,i),i=k.Cartesian3.normalize(i,i),a=k.Cartesian3.add(a,i,a)}return i.x=a.x/r,i.y=a.y/r,i.z=a.z/r,i}function j9(t){var n=new k.Cartesian3(0,0,0),e=t.length;for(let a=0;a<e;++a){var i=t[a];n=k.Cartesian3.add(n,i,n)}return n.x=n.x/e,n.y=n.y/e,n.z=n.z/e,n}function i2(t){return new k.Cartesian3(-1*t.x,-1*t.y,-1*t.z)}function G9(t,n){var e=k.Cartesian3.cross(t,n,new k.Cartesian3);e=k.Cartesian3.normalize(e,e);var i=k.Cartesian3.cross(t,e,new k.Cartesian3);i=k.Cartesian3.normalize(i,i);var a=t,r=new k.Matrix4(e.x,e.y,e.z,0,i.x,i.y,i.z,0,a.x,a.y,a.z,0,0,0,0,1);return r}function nl(t,n){var e=[];for(let r=0;r<t.length;++r){var i=t[r],a=k.Matrix4.multiplyByPoint(n,i,new k.Cartesian3);e.push(a)}return e}function W9(t){var n=t[0].x,e=t[0].y,i=t[0].x,a=t[0].y;return t.forEach(r=>{n=Math.min(n,r.x),e=Math.min(e,r.y),i=Math.max(i,r.x),a=Math.max(a,r.y)}),{minx:n,miny:e,maxx:i,maxy:a}}function q9(t){var n=[];return t.forEach(e=>{n.push([e.x,e.y])}),n.push(n[0]),n}function K9(t){var n=[];t.forEach(i=>{const a=[i.x,i.y];n.push(a)});var e=m0.from(n).triangles;return e.reverse()}function X9(t,n){for(var e=0,i=0;i<n.length;i+=3){const a=[t[n[i]],t[n[i+1]],t[n[i+2]]];e+=$9(a)}return e}function $9(t){var n=k.Cartesian3.distance(t[0],t[1]),e=k.Cartesian3.distance(t[1],t[2]),i=k.Cartesian3.distance(t[2],t[0]),a=(n+e+i)/2,r=Math.sqrt(a*(a-n)*(a-e)*(a-i));return r}function Z9(t,n,e){for(var i=[],a=n.minx;a<n.maxx;a+=e)for(var r=n.miny;r<n.maxy;r+=e)ej([a,r],t)&&i.push(new k.Cartesian3(a,r,0));return i}function Y9(t,n){var e=[];for(let o=0;o<t.length;++o){var i=t[o],a;o==t.length-1?a=t[0]:a=t[o+1];var r=J9(i,a,n);e.push(...r)}return e}function J9(t,n,e){var i=[],a=k.Cartesian3.distance(t,n),r=k.Cartesian3.subtract(n,t,new k.Cartesian3);r=k.Cartesian3.normalize(r,r);for(var o=e;o<a;){var s=new k.Cartesian3(r.x*o,r.y*o,r.z*o),l=k.Cartesian3.add(t,s,new k.Cartesian3);i.push(l),o+=e}return i}function ej(t,n){var e=Po(t);if(!J7(Po(n[0]),Po(n[n.length-1])))return!1;var i=[];i.push(n);var a=On(i);return Rn(e,a)}function w0(t,n,e,i,a,r,o){var s=[];t.forEach(b=>{var w=b.clone();w.z=1e5,s.push(w)});var l=nl(s,n),u=new k.Cartesian3(-1*i.x,-1*i.y,-1*i.z),f=[],h=[],y=[];for(let b=0;b<l.length;++b){var m=l[b],A=new k.Ray(m,u),p=[];try{p=a.drillPickFromRay(A,o)}catch{}if(p.length===0){A=new k.Ray(m,i);try{p=a.drillPickFromRay(A,o)}catch{}}if(p.length!==0){for(var d,g=0;g<p.length;g++){var c=p[g];if((!c.object||c.object.content)&&c.position){d=c.position;break}}if(!(!d||!d.x||isNaN(d.x))){var v=nl([d],e);v.forEach(w=>{w.z+=r}),d=nl(v,n)[0],y.push(d),d=k.Cartographic.fromCartesian(d),f.push([d.longitude,d.latitude,d.height]),h.push(t[b])}}}return{local:h,world:f,world_cartesian:y}}const lh=class lh extends Gn{constructor(e,i){super(e,i);L(this,"_czmAreaMeasurement");if(this._czmAreaMeasurement=this.disposeVar(new Ca(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmAreaMeasurement;this.dispose(S.track([r,"show"],[e,"show"])),this.dispose(S.bind([r,"positions"],[e,"points"])),this.dispose(S.track([r,"interpolationDistance"],[e,"interpolation"])),this.dispose(S.track([r,"offsetHeight"],[e,"offsetHeight"]));{const o=()=>{if(this.geoPolygon&&(this.geoPolygon.outline=!1),e.stroked)r.outlineWidth=e.strokeWidth;else{r.outlineWidth=0;return}r.outlineWidth=e.strokeWidth,r.outlineColor=e.strokeColor};o();const s=this.disposeVar(S.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(s.disposableOn(o))}this.dispose(e.startEvent.don(()=>{this._czmAreaMeasurement.start()}))}get czmAreaMeasurement(){return this._czmAreaMeasurement}flyTo(e,i){const{sceneObject:a,czmViewer:r,czmAreaMeasurement:o}=this;return r.actived?a.flyToParam||a.flyInParam?super.flyTo(e,i):(o.positions&&ze(r,a,i,o.positions,e),!0):!1}flyIn(e,i){const{sceneObject:a,czmViewer:r,czmAreaMeasurement:o}=this;return r.actived?a.flyInParam?super.flyIn(e,i):(o.positions&&ze(r,a,i,o.positions,e),!0):!1}};L(lh,"type",lh.register("ESCesiumViewer",Q.ESSurfaceAreaMeasurement.type,lh));let b0=lh;async function tj(t){navigator.clipboard.writeText(t).then(function(){console.log("复制成功")},function(n){console.log("复制失败")})}const uh=class uh extends Q.EngineObject{constructor(e,i){super(e,i);L(this,"_customDiv");if(this._customDiv=this.disposeVar(new Q.ESCustomDiv(e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._customDiv;i.add(r),this.dispose(()=>i.delete(r)),r.instanceClass=class extends S.Destroyable{constructor(s,l,u){if(super(),this._subContainer=s,!u||!(u instanceof lt))return;u.extensions.cursorPositionInfo.enabled=!0;const f=document.createElement("div");this._subContainer.appendChild(f),this.dispose(()=>this._subContainer.removeChild(f)),f.style.width="100%",f.style.position="absolute",f.style.height=`${Q.ESViewerStatusBar.defaults.height}px`,f.style.left="0",f.style.bottom="0",f.style.color="#fff",f.style.padding="0 20px 0 0",f.style.boxSizing="border-box",f.style.lineHeight=`${Q.ESViewerStatusBar.defaults.height}px`,f.style.zIndex="100",f.style.alignContent="center",f.style.justifyContent="space-between";const h=document.createElement("span");f.appendChild(h),this.dispose(()=>f.removeChild(h));const y=document.createElement("span");h.appendChild(y),this.dispose(()=>h.removeChild(y));const m=document.createElement("span");h.appendChild(m),m.addEventListener("dblclick",function(){let p=m.innerHTML;p.startsWith("鼠标位置")&&(p=p.slice(5)),tj(p)}),m.style.cursor="pointer",this.dispose(()=>h.removeChild(m));const A=document.createElement("span");f.appendChild(A),this.dispose(()=>f.removeChild(A));{const p=()=>{f.style.height=(e.height??Q.ESViewerStatusBar.defaults.height)+"px",f.style.lineHeight=(e.height??Q.ESViewerStatusBar.defaults.height)+"px"};this.dispose(e.heightChanged.disposableOn(p)),p()}{const p=()=>{f.style.fontSize=(e.fontSize??Q.ESViewerStatusBar.defaults.fontSize)+"px"};this.dispose(e.fontSizeChanged.disposableOn(p)),p()}{const p=()=>{e.bgColor?f.style.background=`rgba(${e.bgColor[0]*255},${e.bgColor[1]*255},${e.bgColor[2]*255},${e.bgColor[3]})`:f.style.background=`rgba(${Q.ESViewerStatusBar.defaults.bgColor[0]},${Q.ESViewerStatusBar.defaults.bgColor[1]},${Q.ESViewerStatusBar.defaults.bgColor[2]},${Q.ESViewerStatusBar.defaults.bgColor[3]})`};this.dispose(e.bgColorChanged.disposableOn(p)),p()}{A.innerText=`Cesium 版本 : ${k.VERSION} `;let p;const d=()=>{e.show?(f.style.display="flex",p=this.disposeVar(S.createAnimateFrameWithStartValues(()=>{var w;let g="",c="";const v=u.getCameraInfo();if(v){const _=(C,x)=>v.position[C].toFixed(x),E=(C,x)=>v.rotation[C].toFixed(x);g=`帧率:${u.getFPS()}FPS 经度: ${_(0,5)}° 纬度: ${_(1,5)}° 高度: ${_(2,2)}米 偏航角: ${E(0,2)}° 俯仰角: ${E(1,2)}° 翻滚角:${E(2,2)}° `}y.innerText=g;const b=(w=u.extensions)==null?void 0:w.cursorPositionInfo.cursorPosition;if(b){const _=(E,C)=>b[E].toFixed(C);c=`鼠标位置:${_(0,5)}° ${_(1,5)}° ${_(2,2)}m`}else c="暂时无法获取鼠标位置...";m.innerText=c})),p.start()):(f.style.display="none",p.destroy())};this.dispose(e.showChanged.disposableOn(d)),d()}}}}get customDiv(){return this._customDiv}};L(uh,"type",uh.register("ESCesiumViewer",Q.ESViewerStatusBar.type,uh));let _0=uh;const ch=class ch extends Q.EngineObject{constructor(e,i){super(e,i);L(this,"_customDiv");if(this._customDiv=this.disposeVar(new Q.ESCustomDiv(e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._customDiv;i.add(r),this.dispose(()=>i.delete(r)),this.dispose(S.track([r,"show"],[e,"show"])),r.instanceClass=class extends S.Destroyable{constructor(s,l,u){if(super(),this._subContainer=s,!u||!(u instanceof lt))return;u.extensions.cursorPositionInfo.enabled=!0;const f=document.createElement("div");this._subContainer.appendChild(f),this.dispose(()=>this._subContainer.removeChild(f));const h=document.createElement("div");f.appendChild(h),h.style.width="100%",h.className="ESViewerStatusBarScale",h.style.position="absolute",h.style.display="flex",h.style.height=`${Q.ESViewerStatusBarScale.defaults.height}px`,h.style.left="0",h.style.bottom="0",h.style.color="#fff",h.style.padding="0 20px 0 0",h.style.boxSizing="border-box",h.style.lineHeight=`${Q.ESViewerStatusBarScale.defaults.height}px`,h.style.zIndex="100",h.style.alignContent="center",h.style.justifyContent="space-between";const y=document.createElement("div");h.appendChild(y);const m=document.createElement("div");y.appendChild(m);const A=document.createElement("div");y.appendChild(A);const p=document.createElement("div");h.appendChild(p);const d=document.createElement("div");p.appendChild(d);const g=document.createElement("div");d.appendChild(g);const c=document.createElement("div");d.appendChild(c);const v=document.createElement("span");p.appendChild(v);{const C=()=>{h.style.height=(e.height??Q.ESViewerStatusBarScale.defaults.height)+"px",h.style.lineHeight=(e.height??Q.ESViewerStatusBarScale.defaults.height)+"px"};this.dispose(e.heightChanged.disposableOn(C)),C()}{const C=()=>{h.style.fontSize=(e.fontSize??Q.ESViewerStatusBarScale.defaults.fontSize)+"px"};this.dispose(e.fontSizeChanged.disposableOn(C)),C()}{const C=()=>{e.bgColor?h.style.background=`rgba(${e.bgColor[0]*255},${e.bgColor[1]*255},${e.bgColor[2]*255},${e.bgColor[3]})`:h.style.background=`rgba(${Q.ESViewerStatusBarScale.defaults.bgColor[0]},${Q.ESViewerStatusBarScale.defaults.bgColor[1]},${Q.ESViewerStatusBarScale.defaults.bgColor[2]},${Q.ESViewerStatusBarScale.defaults.bgColor[3]})`};this.dispose(e.bgColorChanged.disposableOn(C)),C()}y.style.display="flex",m.style.fontWeight="bold",m.style.padding="0 0 0 25px";let b="EarthSDK";m.innerText=b,A.style.fontWeight="";let w="——免费开源地球可视化开发包";A.innerText=w,p.style.width="550px",d.style.position="fixed",d.style.width="125px",d.style.height="30px",d.style.padding="0 5px",d.style.display="flex",d.style.justifyContent="flex-end",d.style.pointerEvents="auto",d.style.zIndex="101",g.style.width="125px",g.style.display="inline-block",g.style.textAlign="center",g.style.fontSize="14px",g.style.fontWeight="lighter",g.style.lineHeight="30px",g.style.color="#fff",g.innerHTML="1000km",c.style.borderRight="1px solid #fff",c.style.borderLeft="1px solid #fff",c.style.borderBottom="1px solid #fff",c.style.position="absolute",c.style.height="10px",c.style.top="15px",c.style.width="75px",c.style.right="30px",v.style.display="flex",v.style.zIndex="101",v.style.justifyContent="flex-end",v.style.right="0";const _=()=>{const C=i.viewerLegend.legend.computedLengthInMeters;if(e.show===!1||C&&C>1e6)d.style.display="none";else{d.style.display="block";const x=i.viewerLegend.legend.computedLengthInStr;x&&(g.innerHTML=x);const P=i.viewerLegend.legend.computedLengthInPixels;if(P){c.style.width=`${P}px`;const T=(135-P)/2;c.style.left=`${T}px`}}};_();const E=setInterval(()=>{_()},200);this.dispose(()=>clearInterval(E));{let C;const x=()=>{e.show?(f.style.display="block",C=this.disposeVar(S.createAnimateFrameWithStartValues(()=>{var B;let P="";const T=u.getCameraInfo();if(T){const F=(O,M)=>T.position[O].toFixed(M);P+=`帧率:${u.getFPS()}FPS 相机: ${F(2,2)}米 `}const I=(B=u.extensions)==null?void 0:B.cursorPositionInfo.cursorPosition;if(I){const F=(O,M)=>I[O].toFixed(M);P+=`位置:${F(0,5)}° ${F(1,5)}° ${F(2,2)}米`}else P+="暂时无法获取鼠标位置...";v.innerText=P})),C.start()):(f.style.display="none",C.destroy())};this.dispose(e.showChanged.disposableOn(x)),x()}}}}get customDiv(){return this._customDiv}};L(ch,"type",ch.register("ESCesiumViewer",Q.ESViewerStatusBarScale.type,ch));let x0=ch;const o2=k.Math.toDegrees,nj=new k.Cartographic;function a2(t,n,e){const i=k.Cartesian3.fromDegrees(t[0],t[1],t[2]),a=k.Cartesian3.fromDegrees(n[0],n[1],n[2]),r=k.Cartesian3.subtract(a,i,new k.Cartesian3);k.Cartesian3.normalize(r,r);const o=new k.Ray(i,r),s=e.pickFromRay(o),l=e.globe.pick(o,e);var u;if(s&&s.position&&l){const A=k.Cartesian3.distance(i,s.position),p=k.Cartesian3.distance(i,l);u=A<p?s.position:l}else s&&s.position?u=s.position:l&&(u=l);if(!u)return;const f=k.Cartesian3.distance(i,a),y=k.Cartesian3.distance(i,u)>f?a:u,m=k.Cartographic.fromCartesian(y,void 0,nj);return[o2(m.longitude),o2(m.latitude),m.height]}const hh=class hh extends kn{constructor(e,i){super(e,i);L(this,"_hideGeoPolylines",this.disposeVar(new Hn(this.czmViewer,this.sceneObject.id)));L(this,"_visibleGeoPolylines",this.disposeVar(new Hn(this.czmViewer,this.sceneObject.id)));const a=i.viewer;if(!a){console.warn("viewer is undefined!");return}const r=this._hideGeoPolylines,o=this._visibleGeoPolylines;this.d(S.track([r,"show"],[e,"show"])),this.d(S.track([o,"show"],[e,"show"])),this.d(S.track([o,"color"],[e,"visibleColor"])),this.d(S.track([r,"color"],[e,"invisibleColor"]));{const s=()=>{const u=e.points,f=e.heightOffset;if(!u||u.length<2||u[0].toString()===u[1].toString()){r.positions=void 0,o.positions=void 0;return}const h=[],y=[],[m,A,p]=u[0],d=[m,A,p+f];try{u.forEach((g,c)=>{if(c===0)return;const v=a2(d,g,a.scene);v?(h.push([g,v]),y.push([d,v])):y.push([d,g])}),r.positions=h,o.positions=y}catch(g){console.warn(g)}};s();const l=this.dv(S.createNextAnimateFrameEvent(e.pointsChanged,e.heightOffsetChanged));this.d(l.don(s))}}get hideGeoPolylines(){return this._hideGeoPolylines}get visibleGeoPolylines(){return this._visibleGeoPolylines}flyTo(e,i){const{sceneObject:a,czmViewer:r}=this;if(!r.actived)return!1;if(a.flyToParam||a.flyInParam)return super.flyTo(e,i);{let o=[];return this.visibleGeoPolylines.positions&&(o=[...this.visibleGeoPolylines.positions.flat()]),this.hideGeoPolylines.positions&&(o=[...o,...this.hideGeoPolylines.positions.flat()]),ze(r,a,i,o,e),!0}}flyIn(e,i){const{sceneObject:a,czmViewer:r}=this;if(!r.actived)return!1;if(a.flyInParam)return super.flyIn(e,i);{let o=[];return this.visibleGeoPolylines.positions&&(o=[...this.visibleGeoPolylines.positions.flat()]),this.hideGeoPolylines.positions&&(o=[...o,...this.hideGeoPolylines.positions.flat()]),ze(r,a,i,o,e),!0}}};L(hh,"type",hh.register("ESCesiumViewer",Q.ESVisibilityAnalysis.type,hh));let C0=hh;class Lu extends S.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.dv(new S.Event));L(this,"_enableEvent",this.dv(new S.Event));L(this,"_clearEvent",this.dv(new S.Event));L(this,"_gridPoints",this.dv(S.reactJson([])));L(this,"excavationPolylines");L(this,"fillPolylines");const a=e.viewer;if(!a){console.warn("viewer is undefined!");return}const r=this.dv(new Hn(e,i)),o=this.dv(new Hn(e,i));this.excavationPolylines=r,this.fillPolylines=o;const s=r;s.color=[1,1,0,1],this.d(S.track([s,"show"],[this,"show"])),s.show=!1,s.depthTest=!0;const l=o;l.color=[0,0,1,1],this.d(S.track([l,"show"],[this,"show"])),l.show=!1;{const m=this.ad(new Hr(e,i));this.d(S.track([m,"show"],[this,"show"])),this.d(S.bind([m,"allowPicking"],[this,"allowPicking"])),this.d(S.bind([m,"positions"],[this,"positions"])),this.d(S.bind([m,"depthTest"],[this,"depthTest"])),this.d(S.bind([m,"outlineWidth"],[this,"outlineWidth"])),this.d(S.bind([m,"outlineColor"],[this,"outlineColor"])),this.d(S.bind([m,"outline"],[this,"outline"])),this.d(S.bind([m,"color"],[this,"fillColor"])),this.d(S.bind([m,"fill"],[this,"filled"])),this.d(S.bind([m,"strokeGround"],[this,"strokeGround"])),this.d(S.bind([m,"ground"],[this,"fillGround"])),this.d(this.flyToEvent.don(d=>{m.flyTo(d)}));const A=()=>{m.positions=this.positions};A();const p=this.dv(S.createNextAnimateFrameEvent(this.positionsChanged));this.d(p.don(A))}const u=()=>{if(!this.positions||!this.positions.length)return;const{minPos:m,maxPos:A}=Q.getMinMaxCorner(this.positions),p=m[0],d=m[1],g=A[0],c=A[1],b={type:"Polygon",coordinates:[[...this.positions.map(I=>[I[0],I[1]])]]},w=[p,d,g,c],_=this.gridWidth,x=AE(w,_,{units:"meters",mask:b}).features.map(I=>I.geometry.coordinates),P=k.Math.toRadians;return x.map(I=>new k.Cartographic(P(I[0]),P(I[1])))},f=()=>{s.positions=[],l.positions=[],this.area=0,this.cutVolume=0,this.fillVolume=0,this.cutAndFillVolume=0,s.depthTest=!0},h=this.dv(S.createProcessingFromAsyncFunc(async m=>{const A=u();let p=0,d=300;const g=Math.ceil(A.length/d),c=[];do{let v=[];p===g-1?v=A.slice(p*d):v=A.slice(p*d,(p+1)*d);const b=a.scene.sampleHeightMostDetailed(v),w=await m.promise(b);if(p===g-1?this.progress=Math.round(this.progress+100/g):this.progress+=100/g,w&&w.length){const _=k.Math.toDegrees,E=w.map(C=>[_(C.longitude),_(C.latitude),C.height]);c.push(...E)}p++}while(p<g);!c||!c.length||(this.gridPoints=c)}));let y=null;{const m=()=>{if(!this.positions||!this.positions.length||!this.gridPoints)return;let A=0;const p=[];let d=0;const g=[];this.gridPoints.forEach(c=>{const v=this.positions;c[2]>v[0][2]?(A+=this.gridWidth*this.gridWidth*(c[2]-v[0][2]),p.push([c,[c[0],c[1],v[0][2]]])):(d+=this.gridWidth*this.gridWidth*(v[0][2]-c[2]),g.push([c,[c[0],c[1],v[0][2]]]))}),s.positions=p,l.positions=g,s.show=!0,l.show=!0,this.area=dS(this.positions),this.cutVolume=A,this.fillVolume=d,this.cutAndFillVolume=d-A,y&&clearTimeout(y),y=setTimeout(()=>{s.depthTest=!1},200)};m(),this.d(this.gridPointsChanged.don(m)),this.d(()=>clearTimeout(y))}{const m=()=>{if(!this.positions||!this.positions.length){this.planeHeight=void 0;return}this.planeHeight=this.positions[0][2]};m(),this.d(this.positionsChanged.don(m))}{const m=()=>{if(!this.planeHeight||!this.positions||!this.positions.length)return;const A=JSON.parse(JSON.stringify(this.positions.slice(1)));A.unshift([this.positions[0][0],this.positions[0][1],this.planeHeight]),this.positions=A};m(),this.d(this.planeHeightChanged.don(m))}this.d(this.enableEvent.don(()=>{f(),this.gridPoints=[],this.progress=0,h.restart()})),this.d(this.clearEvent.don(()=>{f()}))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get enableEvent(){return this._enableEvent}enableEmit(){this._enableEvent.emit()}get clearEvent(){return this._clearEvent}clearEmit(){this._clearEvent.emit()}get gridPoints(){return this._gridPoints.value}set gridPoints(e){this._gridPoints.value=e}get gridPointsChanged(){return this._gridPoints.changed}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:S.reactPositions(void 0),planeHeight:S.react(void 0),gridWidth:1,area:0,cutVolume:0,fillVolume:0,cutAndFillVolume:0,progress:0,depthTest:!1,outlineWidth:2,outlineColor:[1,1,1,1],outline:!0,filled:!1,fillColor:[1,1,1,1],fillGround:!1,strokeGround:!1})})(Lu||(Lu={})),S.extendClassProps(Lu.prototype,Lu.createDefaultProps);const fh=class fh extends Gn{constructor(e,i){super(e,i);L(this,"_geoVolumeMeasurement");if(this._geoVolumeMeasurement=this.dv(new Lu(this.czmViewer,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoVolumeMeasurement;this.d(S.track([r,"show"],[e,"show"])),this.d(S.bind([r,"positions"],[e,"points"])),this.d(S.track([r,"allowPicking"],[e,"allowPicking"])),this.d(S.bind([r,"planeHeight"],[e,"planeHeight"])),this.d(S.track([r,"gridWidth"],[e,"gridWidth"])),this.d(S.track([e,"cutVolume"],[r,"cutVolume"])),this.d(S.track([e,"fillVolume"],[r,"fillVolume"])),this.d(S.track([e,"cutAndFillVolume"],[r,"cutAndFillVolume"])),this.d(S.bind([e,"progress"],[r,"progress"])),this.d(S.track([r,"depthTest"],[e,"depthTest"])),this.d(S.track([r,"outline"],[e,"stroked"])),this.d(S.track([r,"outlineWidth"],[e,"strokeWidth"])),this.d(S.track([r,"outlineColor"],[e,"strokeColor"])),this.d(S.track([r,"filled"],[e,"filled"])),this.d(S.track([r,"fillColor"],[e,"fillColor"])),this.d(S.track([r,"fillGround"],[e,"fillGround"])),this.d(S.track([r,"strokeGround"],[e,"strokeGround"])),this.d(e.startEvent.don(()=>{r.enableEmit()})),this.d(e.clearEvent.don(()=>{r.clearEmit()}))}get geoVolumeMeasurement(){return this._geoVolumeMeasurement}flyTo(e,i){const{sceneObject:a,czmViewer:r,geoVolumeMeasurement:o}=this;return r.actived?a.flyToParam||a.flyInParam?super.flyTo(e,i):o.positions?(ze(r,a,i,o.positions,e),!0):!1:!1}};L(fh,"type",fh.register("ESCesiumViewer",Q.ESVolumeMeasurement.type,fh));let S0=fh;const dh=class dh extends Gn{constructor(e,i){super(e,i);L(this,"czmEntity");L(this,"czmPolyline",this.ad(new Q.ESGeoLineString));const a=i.viewer;if(!a){console.warn("viewer is undefined!");return}const r=this.czmPolyline;i.add(r),this.ad(()=>i.delete(r)),this.ad(S.bind([r,"show"],[e,"show"])),this.ad(S.bind([r,"allowPicking"],[e,"allowPicking"])),this.ad(S.bind([r,"stroked"],[e,"stroked"])),this.ad(S.bind([r,"strokeColor"],[e,"strokeColor"])),this.ad(S.bind([r,"strokeWidth"],[e,"strokeWidth"])),this.ad(S.bind([r,"strokeGround"],[e,"strokeGround"]));{const u=()=>{if(!e.points||e.points.length<2)r.points=e.points;else{const h=structuredClone(e.points);h.push(h[0]),e.perPositionHeight?r.points=h:r.points=h.map(y=>(y[2]=e.height??Q.ESGeoExtrudedPolygon.defaults.height,y))}};u();const f=this.ad(S.createNextAnimateFrameEvent(e.pointsChanged,e.heightChanged,e.perPositionHeightChanged));this.ad(f.don(u))}const o=this.czmEntity=a.entities.add({polygon:{}});k.Entity.prototype&&(o.ESSceneObjectID=e.id),this.dispose(()=>a.entities.remove(o));let s=new k.PolygonHierarchy;o.polygon&&(o.polygon.hierarchy=new k.CallbackProperty(()=>s,!1));const l=()=>{if(!e.points)return;const u=sn(e.points);if(u.length<2){s=new k.PolygonHierarchy;return}s=new k.PolygonHierarchy(u)};l(),this.dispose(e.pointsChanged.disposableOn(l));{const u=()=>{o.show=e.show&&e.filled,this.geoPolygon&&(this.geoPolygon.show=e.show&&!o.show&&e.filled)};u();const f=this.ad(S.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.ad(f.don(u))}{const u=()=>{o.polygon&&(o.polygon.perPositionHeight=new k.ConstantProperty(e.perPositionHeight),l())};u(),this.ad(e.perPositionHeightChanged.don(u))}{const u=()=>{o.polygon&&(o.polygon.height=new k.ConstantProperty(e.height??Q.ESGeoExtrudedPolygon.defaults.height))};u(),this.dispose(e.heightChanged.disposableOn(u))}{const u=()=>{o.polygon&&(o.polygon.extrudedHeight=new k.ConstantProperty(e.extrudedHeight??Q.ESGeoExtrudedPolygon.defaults.extrudedHeight))};u(),this.dispose(e.extrudedHeightChanged.disposableOn(u))}{const u=()=>{const f=k.Color.fromCartesian4(k.Cartesian4.fromArray(e.fillColor));o.polygon&&(o.polygon.material=f)};u(),this.dispose(e.fillColorChanged.disposableOn(u))}this.disposeVar(new S.ObjResettingWithEvent(e.allowPickingChanged,()=>{if(!e.allowPicking)return new lt.ObjectsToExcludeWrapper(i,o)}))}getMinAndMaxheight(){const{sceneObject:e}=this;if(e.points){const{minPos:i,maxPos:a}=Q.getMinMaxCorner(e.points);return[i[2],a[2]]}return[0,0]}};L(dh,"type",dh.register("ESCesiumViewer",Q.ESGeoExtrudedPolygon.type,dh));let E0=dh;const ph=class ph extends Q.EngineObject{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}const{human:a,poi:r}=n;this.dispose(S.bind([a,"position"],[n,"position"])),this.dispose(S.bind([a,"rotation"],[n,"rotation"])),this.ad(S.bind([a,"scale"],[n,"scale"])),this.ad(S.track([r,"scale"],[n,"scale"])),this.dispose(S.track([r,"rotation"],[n,"rotation"]));const o=()=>{const l=n.position;r.position=[l[0],l[1],l[2]+n.poiOffsetHeight]};o();const s=this.dv(S.createNextAnimateFrameEvent(n.positionChanged,n.poiOffsetHeightChanged));this.d(s.don(o))}};L(ph,"type",ph.register("ESCesiumViewer",Q.ESHumanPoi.type,ph));let P0=ph;const Ah=class Ah extends Q.EngineObject{constructor(n,e){super(n,e);const i=e.viewer;if(!i){console.warn("viewer is undefined!");return}const a=i.scene.postProcessStages,r=a.add(k.PostProcessStageLibrary.createSilhouetteStage());r.uniforms.color=k.Color.LIME,r.selected=[],this.d(()=>{r.selected=[],a.remove(r)}),this.d(n.highlightInner3DtilesetEvent.don(o=>{r.selected=[];const s=o.d(o.tilesetReady.donce(f=>{f.allTilesLoaded.addEventListener(()=>{var y,m,A,p;const h=(p=(A=(m=(y=f==null?void 0:f._root)==null?void 0:y._content)==null?void 0:m._model)==null?void 0:A._featureTables[0])==null?void 0:p._features[0];h?r.selected=[h]:console.warn("tileset?._root?._content?._model?._featureTables[0]?._features[0] is undefined !",f),s()})})),l=o.url,u=Date.now();l.includes("?reload=")?o.url=l.replace(/\?reload=\d+/,`?reload=${u}`):o.url=l+`?reload=${u}`})),this.d(n.removeHighlightInner3DtilesetEvent.don(o=>{r.selected=[]})),this.d(n.es3DTileset.tilesetReady.don(o=>{const s=()=>{const u=n.layerConfig;if(!u){o.style=void 0;return}const f=n.colorBlendMode,h=(A,p)=>{try{if(A.getPropertyIds().includes("materialName"))return k.Color.clone(k.Color.WHITE,p);const d=A.getProperty("layer"),g=A.getProperty("dataset"),c=d.toString(),v=g.toString(),b=u.find(w=>w.dataset.toString()===v&&w.layer.toString()===c);if(b&&b.value.color){const w=b.value.color;return k.Color.fromCssColorString(w,p)}else return k.Color.clone(k.Color.WHITE,p)}catch(d){return console.warn(d),k.Color.clone(k.Color.WHITE,p)}},y=A=>{try{if(A.getPropertyIds().includes("materialName"))return!0;const p=A.getProperty("layer"),d=A.getProperty("dataset"),g=p.toString(),c=d.toString(),v=u.find(b=>b.dataset.toString()===c&&b.layer.toString()===g);return!(v&&v.value.visible===!1)}catch(p){return console.warn(p),!0}};let m;f!=="HIGHLIGHT"?m=new k.Cesium3DTileStyle({color:{evaluateColor:function(A,p){return h(A,p)}},show:{evaluate:function(A){return y(A)}}}):m=new k.Cesium3DTileStyle({show:{evaluate:function(A){return y(A)}}}),o.style=m};s();const l=this.dv(S.createNextAnimateFrameEvent(n.layerConfigChanged,n.colorBlendModeChanged));this.d(l.don(()=>{s()}))}))}};L(Ah,"type",Ah.register("ESCesiumViewer",Q.ESRtsTileset.type,Ah));let T0=Ah;const yh=class yh extends Ls{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}}};L(yh,"type",yh.register("ESCesiumViewer",Q.ESRtsFeatureEditing.type,yh));let B0=yh;const gh=class gh extends Ls{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}}};L(gh,"type",gh.register("ESCesiumViewer",Q.ESMsTileset.type,gh));let I0=gh;const mh=class mh extends Xe{constructor(e,i){super(e,i);L(this,"_czmGeoPoint");if(this._czmGeoPoint=this.disposeVar(new Jn(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmGeoPoint;this.dispose(S.track([r,"show"],[e,"show"])),this.dispose(S.bind([r,"position"],[e,"position"]))}get czmGeoPoint(){return this._czmGeoPoint}flyTo(e,i){const{sceneObject:a,czmViewer:r,czmGeoPoint:o}=this;return r.actived?a.flyToParam||a.flyInParam?super.flyTo(e,i):(o.flyTo(e),a.flyOverEvent.emit(i,"over",r),!0):!1}};L(mh,"type",mh.register("ESCesiumViewer",Q.ESStaticMesh.type,mh));let F0=mh;const ka=class ka extends _n{constructor(e){super();L(this,"_config",this.disposeVar(S.react(ka.defaultConfig)));L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_pointerEventFilterFunc",this.disposeVar(S.react(ka.defaultPointerEventFilterFunc)));if(!!e.viewer){{const i=()=>{const{config:a}=this;a.clickEnabled!==void 0&&(this.clickEnabled=a.clickEnabled),a.dblClickEnabled!==void 0&&(this.dblClickEnabled=a.dblClickEnabled)};i(),this.dispose(this.configChanged.disposableOn(i))}{const i=this.ad(new Jn(e));i.pixelSize=4,i.outlineColor=[0,0,.8,1],i.outlineWidth=2,i.allowPicking=!1;{const a=()=>{if(!this.position)return;const r=[...this.position];e.editingHeightOffset&&(r[2]-=e.editingHeightOffset),i.position=r,i.show=!!this.position};a(),this.dispose(this.positionChanged.disposableOn(a))}}this.ad(new S.ObjResettingWithEvent(this.enabledChanged,()=>this.enabled?new rj(e,this):void 0))}}get config(){return this._config.value}set config(e){this._config.value=e}get configChanged(){return this._config.changed}get overEvent(){return this._overEvent}over(){this._overEvent.emit()}get pointerEventFilterFunc(){return this._pointerEventFilterFunc.value}set pointerEventFilterFunc(e){this._pointerEventFilterFunc.value=e}get pointerEventFilterFuncChanged(){return this._pointerEventFilterFunc.changed}};L(ka,"defaultConfig",{clickEnabled:!0,dblClickEnabled:!1}),L(ka,"defaultPointerEventFilterFunc",e=>e.button===0),L(ka,"defaults",{..._n.defaults,position:[116.39,39.9,0]});let _r=ka;(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),position:S.reactArrayWithUndefined(void 0),virtualHeight:void 0,clickEnabled:!0,dblClickEnabled:!1})})(_r||(_r={})),S.extendClassProps(_r.prototype,_r.createDefaultProps);class rj extends S.Destroyable{constructor(e,i){super();L(this,"_doings",[]);L(this,"initDoings",this.ad(()=>{this._doings.forEach(e=>e.destroy()),this._doings.length=0}));this._czmViewer=e,this._placeEditing=i;{const a=(r,o)=>{o=="click"&&(!i.clickEnabled||!i.pointerEventFilterFunc(r))||o=="dblclick"&&(!i.dblClickEnabled||!i.pointerEventFilterFunc(r))||(i.over(),i.enabled=!1)};this.ad(e.clickEvent.don(r=>{r.pointerEvent&&a(r.pointerEvent,"click")})),this.ad(e.dblclickEvent.don(r=>{r.pointerEvent&&a(r.pointerEvent,"dblclick")}))}this.ad(e.pointerMoveEvent.don(a=>{if(!a.pointerEvent)return;const r=new ij(this,a.pointerEvent,o=>{if(!o||o[2]<-1e5){i.position=void 0;return}const s=[...o];e.editingHeightOffset&&(s[2]+=e.editingHeightOffset),i.position=s,this._doings.splice(0,this._doings.indexOf(r)+1).forEach(u=>u.destroy())});this._doings.push(r)}))}get czmViewer(){return this._czmViewer}get placeEditing(){return this._placeEditing}}class ij extends S.Destroyable{constructor(n,e,i){super(),this._owner=n;const{czmViewer:a}=this._owner,r=uw(a,e,this._owner.placeEditing.virtualHeight),[o]=S.getEventFromPromise(r);this.dispose(o.disposableOn(i))}}class qn extends _n{constructor(){super()}}L(qn,"defaults",{..._n.defaults,position:[116.39,39.9,0]}),(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),position:S.reactArrayWithUndefined(void 0)})})(qn||(qn={})),S.extendClassProps(qn.prototype,qn.createDefaultProps);function k0(t,n){const e=new rt(t);return e.hasArrow=!0,e.arcType="RHUMB",e.width=10,e.color=n,e}const ur=class ur extends S.Destroyable{constructor(n){if(super(),!n.viewer)return;const e=this.disposeVar(k0(n,ur.defaults.xAxisColor)),i=this.disposeVar(k0(n,ur.defaults.yAxisColor)),a=this.disposeVar(k0(n,ur.defaults.zAxisColor));{const r=()=>{e.show=this.xAxisShow&&this.show,i.show=this.yAxisShow&&this.show,a.show=this.zAxisShow&&this.show};r();const o=this.ad(S.createNextAnimateFrameEvent(this.showChanged,this.xAxisShowChanged,this.yAxisShowChanged,this.zAxisShowChanged));this.dispose(o.disposableOn(r))}{const r=()=>{const{position:s=ur.defaults.position,heading:l=ur.defaults.heading}=this,[u,f,h]=s,{dimensions:y=ur.defaults.dimensions}=this;a.positions=[s,[u,f,h+y[2]]];const m=Q.geoRhumbDestination(s,y[0],90+l);m&&(e.positions=[s,m]);const A=Q.geoRhumbDestination(s,y[1],0+l);A&&(i.positions=[s,A])};r();const o=this.disposeVar(S.createNextAnimateFrameEvent(this.positionChanged,this.dimensionsChanged,this.headingChanged));this.dispose(o.disposableOn(r))}{const r=()=>{e.color=this.xAxisColor??ur.defaults.xAxisColor,i.color=this.yAxisColor??ur.defaults.yAxisColor,a.color=this.zAxisColor??ur.defaults.zAxisColor};r();const o=this.disposeVar(S.createNextAnimateFrameEvent(this.xAxisColorChanged,this.yAxisColorChanged,this.zAxisColorChanged));this.dispose(o.disposableOn(r))}}};L(ur,"defaults",{position:[116.39,39.9,0],heading:0,dimensions:[1e3,1e3,1e3],xAxisColor:[1,0,0,1],yAxisColor:[0,1,0,1],zAxisColor:[0,0,1,1]});let ko=ur;(t=>{t.createDefaultProps=()=>({show:!0,position:S.reactArrayWithUndefined(void 0),heading:0,dimensions:S.reactArray([1e3,1e3,1e3]),xAxisColor:S.reactArray([1,0,0,1]),yAxisColor:S.reactArray([0,1,0,1]),zAxisColor:S.reactArray([0,0,1,1]),xAxisShow:!0,yAxisShow:!0,zAxisShow:!0})})(ko||(ko={})),S.extendClassProps(ko.prototype,ko.createDefaultProps);const Uo=class Uo extends qn{constructor(e){super();L(this,"_opInfo",{step:this.ad(S.react(!1)),moved:this.ad(S.react(!1)),constraintMode:this.ad(S.react("none")),originPosition:this.disposeVar(S.reactArray(qn.defaults.position)),originHeading:this.disposeVar(S.react(0)),originDimensions:this.disposeVar(S.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(S.reactArray([0,0,0])),movingPosition:this.disposeVar(S.reactArray([0,0,0])),targetPosition:this.disposeVar(S.reactArray([0,0,0])),targetHeading:this.disposeVar(S.react(0))});L(this,"_createCoordinates",e=>{const i=this.ad(new ko(e));this.dispose(this._opInfo.step.changed.disposableOn(()=>{s2(i,this._opInfo.constraintMode.value,this._opInfo.step.value)}));{const a=()=>{const o=[...this.position??Uo.defaults.position];e.editingHeightOffset&&(o[2]-=e.editingHeightOffset),i.position=o};a(),this.dispose(this.positionChanged.disposableOn(a))}{const a=()=>{i.heading=this.heading??0};a(),this.dispose(this.headingChanged.disposableOn(a))}{const a=()=>{i.dimensions=this._opInfo.originDimensions.value};a(),this.dispose(this._opInfo.originDimensions.changed.disposableOn(a))}return i});L(this,"_createOriginCoordinates",e=>{const i=this.ad(new ko(e));i.xAxisColor=[1,0,0,.5],i.yAxisColor=[0,1,0,.5],i.zAxisColor=[0,0,1,.5];const{originPosition:a,originHeading:r,originDimensions:o}=this._opInfo;{const s=()=>{i.position=a.value};s(),this.dispose(a.changed.disposableOn(s))}{const s=()=>{i.heading=r.value??0};s(),this.dispose(r.changed.disposableOn(s))}{const s=()=>{i.dimensions=o.value};s(),this.dispose(o.changed.disposableOn(s))}return i});L(this,"_createGrid",e=>{const i=this.ad(new Ar(e));{const a=()=>{const o=this._opInfo.originPosition.value,s=this._opInfo.originHeading.value,l=this._opInfo.originDimensions.value[0],u=[];for(let f=-4;f<5;++f){const h=Q.geoRhumbDestination(o,l*.2*f,s+90);if(h){const y=Q.geoRhumbDestination(h,l,s+180),m=Q.geoRhumbDestination(h,l,s);y&&m&&u.push([y,h,m])}}for(let f=-4;f<5;++f){const h=Q.geoRhumbDestination(o,l*.2*f,s);if(h){const y=Q.geoRhumbDestination(h,l,s-90),m=Q.geoRhumbDestination(h,l,s+90);y&&m&&u.push([y,h,m])}}i.positions=u};a();const r=this.disposeVar(S.createNextAnimateFrameEvent(this._opInfo.originPosition.changed,this._opInfo.originHeading.changed,this._opInfo.originDimensions.changed));this.dispose(r.disposableOn(a))}return i});L(this,"_createHelpLine",e=>{const i=this.ad(new rt(e));i.hasDash=!0,i.arcType="RHUMB",i.color=[1,1,0,.99];{const a=()=>{i.positions=[this._opInfo.originPosition.value,this._opInfo.targetPosition.value]},r=this.ad(S.createNextAnimateFrameEvent(this._opInfo.originPosition.changed,this._opInfo.targetPosition.changed));this.ad(r.don(a))}return i});L(this,"_createCircle",e=>{const i=this.ad(new Ar(e));i.arcType="RHUMB",i.width=2,i.hasDash=!0;const a=this.disposeVar(S.createNextAnimateFrameEvent(this._opInfo.originPosition.changed,this._opInfo.originDimensions.changed)),r=()=>{const o=this._opInfo.originPosition.value,s=this._opInfo.originDimensions.value[0],l=[],u=32;for(let f=0;f<=u;++f){const h=Q.geoRhumbDestination(o,s,f*360/u);h&&l.push(h)}i.positions=[l]};return r(),this.dispose(a.disposableOn(r)),i});L(this,"_pickingXYProcessing",e=>this.ad(new S.Processing((i,a,r)=>{const o=[0,0,0],s=new k.Cartographic;return e.pointerMoveEvent.don(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hr(S.getDomEventCurrentTargetPos(l.pointerEvent));if(!La(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ra(s,o),this._opInfo.constraintMode.value==="x"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,o,o):this._opInfo.constraintMode.value==="y"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value,o,o):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=o;const f=[0,0,0];Q.geoRhumbDestination(o,r,a,f),this._opInfo.targetPosition.value=f})})));L(this,"_pickingZProcessing",e=>this.ad(new S.Processing(()=>{const i=new k.Cartesian3,a=[0,0,0];return e.pointerMoveEvent.don(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!Nh(e.viewer.scene,Et(this._opInfo.originPosition.value),o,i))return;const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ve(i,a)){this._opInfo.movingPosition.value=a;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],a[2]+s]}})})));L(this,"_pickingZAxisProcessing",e=>this.ad(new S.Processing(()=>{const i=[0,0,0],a=new k.Cartographic;return e.pointerMoveEvent.don(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!La(e.viewer.scene,o,this._opInfo.originPosition.value[2],a))return;Ra(a,i);const s=Q.geoRhumbHeading(this._opInfo.originPosition.value,this._opInfo.draggingStartPosition.value),u=Q.geoRhumbHeading(this._opInfo.originPosition.value,i)-s;let f=this._opInfo.originHeading.value+u;f=k.Math.toDegrees(k.Math.negativePiToPi(k.Math.toRadians(f))),this._opInfo.movingPosition.value=i,this.heading=this._opInfo.targetHeading.value=f})})));if(!e.viewer)return;const i=this.ad(S.reactArray([1,1,1]));this.ad(e.dblclickEvent.don(()=>this.enabled=!1)),this.ad(new Rp(e,this.positionReact,i,this.axisPixelSize));{this.ad(this._opInfo.targetPosition.changed.don(r=>{if(this._opInfo.moved){const o=[...r];e.editingHeightOffset&&(o[2]+=e.editingHeightOffset),this.position=o}})),this.ad(this._opInfo.targetHeading.changed.don(r=>this._opInfo.moved&&(this.heading=r)));const a=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((r,o)=>r===this._opInfo.targetPosition.value[o])){this._opInfo.moved.value=!0;return}};a(),this.dispose(this._opInfo.originHeading.changed.disposableOn(a)),this.dispose(this._opInfo.originPosition.changed.disposableOn(a)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(a)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(a))}{const a=this._createCoordinates(e),r=this._createOriginCoordinates(e),o=this._createGrid(e),s=this._createHelpLine(e),l=this._createCircle(e);{const A=()=>{l.show=o.show=this.enabled&&this.showCircle,s.show=this.enabled&&this.showCircle&&this._opInfo.moved.value,a.show=this.enabled&&this.showCoordinates,r.show=this.enabled&&this.showCoordinates&&this._opInfo.moved.value};A();const p=this.ad(S.createNextAnimateFrameEvent(this.enabledChanged,this.showCircleChanged,this.showCoordinatesChanged,this._opInfo.moved.changed));this.ad(p.don(A))}{const A=()=>{a.xAxisShow=r.xAxisShow=this.xAxisShow,a.yAxisShow=r.yAxisShow=this.yAxisShow,a.zAxisShow=r.zAxisShow=this.zAxisShow};A();const p=this.ad(S.createNextAnimateFrameEvent(this.xAxisShowChanged,this.yAxisShowChanged,this.zAxisShowChanged));this.ad(p.don(A))}{const A=()=>{o.color=this._opInfo.constraintMode.value!=="none"?[1,1,0,.6]:[1,1,0,.3],l.color=this._opInfo.constraintMode.value==="zAxis"?[1,1,0,.99]:[1,1,0,.5],s2(a,this._opInfo.constraintMode.value,this._opInfo.step.value)};A(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(A))}const u=this._pickingXYProcessing(e),f=this._pickingZProcessing(e),h=this._pickingZAxisProcessing(e),y=this.ad(S.createProcessingFromAsyncFunc(async A=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",A.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await S.step(A,async p=>{const d=()=>{const w=[...this.position??Uo.defaults.position];e.editingHeightOffset&&(w[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=w},g=()=>this._opInfo.targetHeading.value=this._opInfo.originHeading.value=this.heading,c=()=>this._opInfo.originDimensions.value=i.value;p.disposer.dispose((d(),this.positionChanged.don(d))),p.disposer.dispose((g(),this.headingChanged.don(g))),p.disposer.dispose((c(),i.changed.don(c)));const v={constraintMode:"none",startDragPos:[0,0,0]},b=w=>{const _={position:a.position??Uo.defaults.position,heading:a.heading??Uo.defaults.heading,dimensions:a.dimensions??Uo.defaults.dimensions};e.viewer&&Cp(w,e.viewer.scene,_,this.axisSnapPixelSize,v,{x:this.disableX,y:this.disableY,z:this.disableZ,xy:this.disableXY,zAxis:this.disableZAxis}),this._opInfo.constraintMode.value=v.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=v.startDragPos};p.disposer.dispose(e.pointerMoveEvent.don(w=>{w.pointerEvent&&b(w.pointerEvent)})),await S.step(p,w=>new Promise((_,E)=>{w.disposer.dispose(E),w.disposer.dispose(e.pointerDownEvent.don(C=>{C.pointerEvent&&b(C.pointerEvent),C.pointerEvent&&C.pointerEvent.button===0&&v.constraintMode!=="none"&&_()}))}))}),this._opInfo.step.value=!1,await S.step(A,async p=>{if(e.incrementDisabledInputStack(),p.disposer.dispose(()=>{e.decrementDisabledInputStack()}),["xy","x","y"].includes(this._opInfo.constraintMode.value)){const d=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),g=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);u.restart(void 0,d,g),p.disposer.dispose(()=>u.cancel())}else this._opInfo.constraintMode.value==="z"?(f.restart(),p.disposer.dispose(()=>f.cancel())):this._opInfo.constraintMode.value==="zAxis"?(h.restart(),p.disposer.dispose(()=>h.cancel())):console.warn(`pickingInfo.constraintMode error! ${this._opInfo.constraintMode.value}`);await S.step(p,d=>new Promise((g,c)=>{d.disposer.dispose(c),d.disposer.dispose(e.pointerUpEvent.don(()=>{g()})),d.disposer.dispose(e.pointerOutEvent.don(()=>g()))}))});while(!0)})),m=()=>{this.enabled?y.restart():y.isRunning&&y.cancel()};m(),this.ad(this.enabledChanged.don(m))}}};L(Uo,"defaults",{...qn.defaults,heading:0,dimensions:[1e3,1e3,1e3],xAxisColor:[1,0,0,1],yAxisColor:[0,1,0,1],zAxisColor:[0,0,1,1]});let Ti=Uo;(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),heading:0,axisPixelSize:100,axisSnapPixelSize:5,showCoordinates:!0,showCircle:!0,disableX:!1,disableY:!1,disableZ:!1,disableXY:!1,disableZAxis:!1,xAxisShow:!0,yAxisShow:!0,zAxisShow:!0})})(Ti||(Ti={})),S.extendClassProps(Ti.prototype,Ti.createDefaultProps);function s2(t,n,e){t.xAxisColor=[1,0,0,.99],t.yAxisColor=[0,1,0,.99],t.zAxisColor=[0,0,1,.99],n==="x"?t.xAxisColor=e?[1,1,0,.8]:[1,1,0,.99]:n==="y"?t.yAxisColor=e?[1,1,0,.8]:[1,1,0,.99]:n==="z"?t.zAxisColor=e?[1,1,0,.8]:[1,1,0,.99]:n==="xy"&&(t.xAxisColor=e?[1,1,0,.8]:[1,1,0,.99],t.yAxisColor=e?[1,1,0,.8]:[1,1,0,.99])}class M0 extends S.HasOwner{constructor(e){super(e);L(this,"_valid",!1);L(this,"_normal",new k.Cartesian3(0,0,0));L(this,"_origin",new k.Cartesian3(0,0,0))}get viewer(){return this.owner.czmViewer.viewer}get scene(){return this.viewer.scene}get sceneObject(){return this.owner}get valid(){return this._valid}get normal(){return this._normal}get origin(){return this._valid&&this._origin}pick(e){if(!this.normal||!this.owner.cartesian)return;const i=this.owner.cartesian,a=hr(e);return cw(this.scene,i,this.normal,a)}}class oj extends M0{constructor(n){super(n);{const e=()=>{const a=dt({position:this.sceneObject.position,rotation:this.sceneObject.rotation});this._valid=!!a,a&&(this._origin.x=a[4],this._origin.y=a[5],this._origin.z=a[6],this._normal.x=a[8],this._normal.y=a[9],this._normal.z=a[10])};e();const i=this.ad(S.createNextAnimateFrameEvent(this.sceneObject.positionChanged,this.sceneObject.rotationChanged));this.ad(i.don(e))}}}class aj extends M0{constructor(n){super(n);const e=()=>{const i=dt({rotation:[this.sceneObject.selfRotation[0],0,0]});if(!i)throw new Error("PitchPlane: rm is undefined");const a=dt({position:this.sceneObject.position,rotation:this.sceneObject.rotation,localModelMatrix:k.Matrix4.toArray(i)});if(this._valid=!!a,!!a){{const r=this._normal;r.x=-a[0],r.y=-a[1],r.z=-a[2]}{const r=this._origin;r.x=a[4],r.y=a[5],r.z=a[6]}}};e(),this.dispose(this.sceneObject.positionChanged.disposableOn(e)),this.dispose(this.sceneObject.rotationChanged.disposableOn(e)),this.dispose(this.sceneObject.selfRotationChanged.disposableOn(e))}}class sj extends M0{constructor(n){super(n);const e=()=>{const i=dt({rotation:[this.sceneObject.selfRotation[0],this.sceneObject.selfRotation[1],0]});if(!i)throw new Error("PitchPlane: rm is undefined");const a=dt({position:this.sceneObject.position,rotation:this.sceneObject.rotation,localModelMatrix:k.Matrix4.toArray(i)});if(this._valid=!!a,!!a){{const r=this._normal;r.x=-a[4],r.y=-a[5],r.z=-a[6]}{const r=this._origin;r.x=a[8],r.y=a[9],r.z=a[10]}}};e(),this.dispose(this.sceneObject.positionChanged.disposableOn(e)),this.dispose(this.sceneObject.rotationChanged.disposableOn(e)),this.dispose(this.sceneObject.selfRotationChanged.disposableOn(e))}}class rl extends S.Destroyable{constructor(e){super();L(this,"_czmTexture");L(this,"_customPrimitiveForCircle");L(this,"_circleCanvas");L(this,"_debugAxis");e.viewer&&(this._czmTexture=this.disposeVar(new gt(e)),this._czmTexture.uri="",this._createCircleCanvas(e),this._createCustomPrimitiveForCircle(e),this._createDebugAxis(e))}get czmTexture(){return this._czmTexture}get customPrimitiveForCircle(){return this._customPrimitiveForCircle}get circleCanvas(){return this._circleCanvas}get debugAxis(){return this._debugAxis}_createCircleCanvas(e){let i=this.disposeVar(S.react(!1));const a=document.createElement("canvas");a.width=a.height=256,this._circleCanvas=a.getContext("2d");{const o=()=>{const l={rotation:this.circleRotation*Math.PI/180,startRotation:this.circleStartRotation*Math.PI/180,endRotation:this.circleEndRotation*Math.PI/180},u=this._circleCanvas,f=this.color,h=`rgba(${f[0]*255|0}, ${f[1]*255|0}, ${f[2]*255|0}, ${f[3]})`;u.clearRect(0,0,256,256),u.lineWidth=6,u.beginPath(),u.arc(128,128,64,0,Math.PI*2,!1),u.strokeStyle=`rgba(0,0,0,${f[3]})`,u.stroke(),u.lineWidth=4,u.beginPath(),u.arc(128,128,64,0,Math.PI*2,!1),u.strokeStyle=h,u.stroke();{u.lineWidth=1,u.beginPath();let A=k.Math.zeroToTwoPi(l.startRotation),p=k.Math.zeroToTwoPi(l.endRotation);p<A&&(p+=k.Math.TWO_PI),(A!==p||A!==0)&&(u.moveTo(128,128),u.arc(128,128,64,A,p,p-A>Math.PI),u.lineTo(128,128),u.strokeStyle="rgba(255, 255, 0, 1.0)",u.stroke())}let y=k.Math.negativePiToPi(l.rotation);u.lineWidth=3,u.beginPath(),u.moveTo(128,128),u.arc(128,128,64,0,y,k.Math.negativePiToPi(y-0)<0),u.lineTo(128,128),u.fillStyle=`rgba(${f[0]*255|0}, ${f[1]*255|0}, ${f[2]*255|0}, 0.5)`,u.fill();{u.save(),u.font="16px console",u.textBaseline="middle";const d=`${(k.Math.negativePiToPi(y-0)*180/Math.PI*10|0)/10}°`;var m=u.measureText(d).width;u.translate(128,128),u.rotate(Math.PI*.5),y=k.Math.negativePiToPi(y-0)+0,u.rotate((y+0)*.5),u.scale(i.value?-1:1,1),u.translate(-128,-128),u.fillStyle="white",u.fillText(d,128-m*.5,54),u.lineWidth=1,u.restore()}this.czmTexture&&this.czmTexture.copyFromCanvas(a)};o();const s=this.ad(S.createNextAnimateFrameEvent(this.colorChanged,this.circleRotationChanged,this.circleStartRotationChanged,this.circleEndRotationChanged,i.changed));this.ad(s.don(o)),this.czmTexture&&this.ad(this.czmTexture.readyEvent.don(o))}{const r=()=>{const s=dt({rotation:this.selfRotation});if(!s)return;const l=dt({position:this.position,rotation:this.rotation,localModelMatrix:k.Matrix4.toArray(s)});if(!l)return;const{viewer:u}=e;if(!u)return;const f=k.Cartesian3.dot(u.scene.camera.directionWC,new k.Cartesian3(l[8],l[9],l[10]));i.value=f>0};r();const o=this.ad(S.createNextAnimateFrameEvent(e.cameraChanged,this.positionChanged,this.rotationChanged,this.selfRotationChanged));this.ad(o.don(r))}}_createCustomPrimitiveForCircle(e){this._customPrimitiveForCircle=this.disposeVar(lj(e)),this.dispose(S.track([this._customPrimitiveForCircle,"show"],[this,"show"])),this.dispose(S.track([this._customPrimitiveForCircle,"position"],[this,"position"])),this.dispose(S.track([this._customPrimitiveForCircle,"rotation"],[this,"rotation"])),this.dispose(S.track([this._customPrimitiveForCircle,"pixelSize"],[this,"pixelSize"]));{const i=()=>{const a=dt({rotation:this.selfRotation});this._customPrimitiveForCircle&&(this._customPrimitiveForCircle.localModelMatrix=a&&k.Matrix4.toArray(a)||void 0)};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.customPrimitiveForCircle&&this.czmTexture&&(this.customPrimitiveForCircle.uniformMap={u_image:{type:"texture",id:this.czmTexture.id},u_color:this.color})};i(),this.dispose(this.colorChanged.disposableOn(i))}}_createDebugAxis(e){this._debugAxis=this.ad(uj(e)),this.dispose(S.track([this._debugAxis,"pixelSize"],[this,"pixelSize"])),this.dispose(S.track([this._debugAxis,"position"],[this,"position"])),this.dispose(S.track([this._debugAxis,"rotation"],[this,"rotation"])),this.dispose(S.track([this._debugAxis,"show"],[this,"debug"]));{const i=()=>{const a=dt({rotation:this.selfRotation});this._debugAxis&&(this._debugAxis.localModelMatrix=a&&k.Matrix4.toArray(a)||void 0)};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this._debugAxis&&(this._debugAxis.uniformMap={u_color:this.color})};i(),this.dispose(this.colorChanged.disposableOn(i))}}}L(rl,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,editing:!1,position:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([0,0,0]),selfRotation:S.reactArray([0,0,0]),pixelSize:300,color:S.reactArray([1,1,1,1]),circleRotation:0,circleStartRotation:0,circleEndRotation:0,debug:!1})})(rl||(rl={})),S.extendClassProps(rl.prototype,rl.createDefaultProps);function lj(t){return Vp({type:"CzmCustomPrimitive",allowPicking:!0,positionEditing:!1,pixelSize:100,boundingVolume:{type:"LocalAxisedBoundingBox",data:{min:[0,-1,0],max:[1,0,0]}},renderState:{depthTest:{enabled:!1},cull:{enabled:!1,face:1029},depthMask:!1,blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},localPosition:[-.5,-.5,0],localRotation:[-90,0,0]},pt,t)}function uj(t){return Vp({type:"CzmCustomPrimitive",allowPicking:!0,positionEditing:!1,position:[114.86128105686282,40.86825802653499,0],primitiveType:"LINES",vertexShaderSource:`in vec3 position;
4875
4875
  void main()
4876
4876
  {
4877
4877
  // 如果这一句注释,要相应地注释掉attribute中的normal,也就是说顶点属性要和shader中的一一匹配!
@@ -4882,10 +4882,10 @@ void main()
4882
4882
  {
4883
4883
  out_FragColor = u_color;
4884
4884
  }
4885
- `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},pt,t)}class cj extends S.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const a=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const o=i=this._getStartInfo(r.pointerEvent);o&&(this.owner.hoveredPlaneType=o.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(a.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const o=this._getStartInfo(r.pointerEvent);if(!o||o.currentPlaneType==="none")break;const{currentPlaneType:s}=o,l=[...this.owner.selfRotation];l[xr.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(S.createProcessingFromAsyncFunc(async(n,e,i)=>{const a=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:o,offsetY:s}=r.pointerEvent,l=[o,s],{currentPlaneType:u}=i;if(u==="none")return;const f=this.owner.getPlane(u);if(!i.currentV)return;const h=f.pick(l);if(!h||!this.owner.cartesian)return;const y=k.Cartesian3.subtract(i.currentV,this.owner.cartesian,new k.Cartesian3);k.Cartesian3.normalize(y,y);const m=k.Cartesian3.subtract(h,this.owner.cartesian,new k.Cartesian3);if(k.Cartesian3.normalize(m,m),!f.normal||!f.origin)return;const A=O0(y,m,f.normal),p=O0(f.origin,y,f.normal),d=O0(f.origin,m,f.normal);{const g=[...this.owner.selfRotation];g[xr.rotationNum[u]]=i.startRotation+A,this.owner.selfRotation=g,a.circleStartRotation=p,a.circleEndRotation=d}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{a.circleStartRotation=0,a.circleEndRotation=0}),await S.step(n,r=>new Promise((o,s)=>{r.disposer.dispose(s),r.disposer.dispose(e.pointerUpEvent.don(()=>{o()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{o()}))}))}))}_pickPlane(n,e,i,a,r){const o=this.owner.cartesian;if(!o)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(i).pick(a);if(!l)return;const u=k.Cartesian3.distance(o,l),f=r/4,h=f*3/128;if(!(u>=f-h&&u<=f+h))return;const m=k.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=m||(n.currentPlaneType=i,n.currentD2c=m,n.currentV=l,n.startRotation=s[xr.rotationNum[i]])}_getStartInfo(n){var f;const{czmViewer:e}=this.owner,i=(f=e.viewer)==null?void 0:f.scene;if(!this.owner.position||!this.owner.cartesian)return;const a=ti(i,this.owner.cartesian,this.owner.pixelSize);if(!a)return;const{offsetX:r,offsetY:o}=n,s=[r,o],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",s,a),this._pickPlane(u,i,"pitch",s,a),this._pickPlane(u,i,"roll",s,a),u}}function O0(t,n,e){const i=k.Cartesian3.cross(n,t,new k.Cartesian3);if(i.equals(k.Cartesian3.ZERO))return 0;k.Cartesian3.normalize(i,i);const a=k.Cartesian3.dot(i,e);let r=Math.acos(k.Cartesian3.dot(t,n))*180/Math.PI;return r=a>0?r:-r,r}const Ma=class Ma extends qn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(S.react("none")));L(this,"_movingPlaneType",this.disposeVar(S.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new oj(this)),pitch:this.disposeVar(new aj(this)),roll:this.disposeVar(new sj(this))});L(this,"_rotatorRunningResetting",this.disposeVar(new S.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new cj(this)})));this._czmViewer=e;const i=this._czmViewer;if(this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&Et(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Yt(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(S.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(S.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(S.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const a=dt({rotation:this.selfRotation});if(!a)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=k.Matrix4.toArray(a))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const a=this.ad(new rl(e));this.dispose(S.track([a,"position"],[this,"position"])),this.dispose(S.track([a,"pixelSize"],[this,"pixelSize"])),this.dispose(S.track([a,"debug"],[this,"debug"])),this.dispose(S.track([a,"rotation"],[this,"rotation"]));{const r=()=>{a.selfRotation=Ma.rotationFuncs[i](this.selfRotation),a.circleRotation=this.selfRotation[Ma.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const o=this.movingPlaneType===i,s=this.hoveredPlaneType===i,u=[0,0,0,o||s?1:.8];u[Ma.rotationNum[i]]=1,a.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return a}};L(Ma,"rotationNum",{heading:0,pitch:1,roll:2}),L(Ma,"rotationFuncs",{heading:([e,i,a])=>[0,0,0],pitch:([e,i,a])=>[e,0,-90],roll:([e,i,a])=>[e,i+90,0]});let xr=Ma;(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),rotation:S.reactArray([0,0,0]),selfRotation:S.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(xr||(xr={})),S.extendClassProps(xr.prototype,xr.createDefaultProps);const Oa=class Oa extends S.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??Oa.defaults.positions[0],this.stopPosition??Oa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??Oa.defaults.positions[0],n??Oa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const a=this.ad(new rt(n,e));a.arcType="RHUMB";const r=this.ad(new Jn(n,e));this.ad(S.track([a,"allowPicking"],[this,"allowPicking"])),this.ad(S.track([r,"allowPicking"],[this,"allowPicking"]));{const o=()=>{a.show=r.show=this.show};o(),this.ad(this.showChanged.don(o))}{const o=()=>{a.width=this.width/2,r.pixelSize=this.width};o(),this.ad(this.widthChanged.don(o))}{const o=()=>{a.color=r.color=this.color};o(),this.ad(this.colorChanged.don(o))}{const o=()=>{a.positions=this.positions,r.position=this.stopPosition};o(),this.dispose(this.startPositionChanged.disposableOn(o)),this.dispose(this.stopPositionChanged.disposableOn(o))}}};L(Oa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Sa=Oa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:S.reactPositions(t.defaults.positions),width:10,color:S.reactArray([1,0,0,1])})})(Sa||(Sa={})),S.extendClassProps(Sa.prototype,Sa.createDefaultProps);class Bi extends qn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(S.react(!1)),moved:this.ad(S.react(!1)),constraintMode:this.disposeVar(S.react("none")),originPosition:this.disposeVar(S.reactArray([0,0,0])),originHeading:this.disposeVar(S.react(0)),originDimensions:this.disposeVar(S.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(S.reactArray([0,0,0])),movingPosition:this.disposeVar(S.reactArray([0,0,0])),targetPosition:this.disposeVar(S.reactArray([0,0,0])),targetHeading:this.disposeVar(S.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new S.Processing((i,a,r)=>{const o=[0,0,0],s=new k.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hr(S.getDomEventCurrentTargetPos(l.pointerEvent));if(!La(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ra(s,o),this._opInfo.constraintMode.value==="x"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value,o,o):this._opInfo.constraintMode.value==="y"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,o,o):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=o,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const f=[0,0,0];Q.geoRhumbDestination(o,r,a,f),this._opInfo.targetPosition.value=f;let h=this.scale[0],y=this.scale[1];const m=Q.geoDistance(f,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...f];const A=this._opInfo.originDimensions.value[0]/100;m!=0&&this._opInfo.constraintMode.value==="y"&&(m>0?h+=A:h-=A),m!=0&&this._opInfo.constraintMode.value==="x"&&(m>0?y+=A:y-=A),h<=0&&(h+=A),y<=0&&(y+=A),this.scale=[h??1,y??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new S.Processing(()=>{const i=new k.Cartesian3,a=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!Nh(e.viewer.scene,Et(this._opInfo.originPosition.value),o,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ve(i,a)){this._opInfo.movingPosition.value=a;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],a[2]+s];let u=this.scale[2];const f=a[2]-this._lastPosition[2];this._lastPosition=[...a];const h=this._opInfo.originDimensions.value[0]/100;f!=0&&(f>0?u+=h:u-=h),u<=0&&(u+=h),this.scale=[this.scale[0]??1,this.scale[1]??1,u??1]}})})));const i=e.viewer;if(!i)return;const{scene:a}=i;this.ad(new Rp(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const u=()=>{if(!this._scaleAxis)return;const{zAxis:f,yAxis:h,xAxis:y}=this._scaleAxis,m=this._opInfo.constraintMode.value,A=this._opInfo.step;f.color=[0,0,1,.99],h.color=[0,1,0,.99],y.color=[1,0,0,.99],m==="x"?y.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="y"?h.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="z"&&(f.color=A?[1,1,0,.8]:[1,1,0,.99])};u(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(u)),this.dispose(this._opInfo.step.changed.disposableOn(u))}{const u=()=>{if(!this._scaleAxis)return;const{position:h=Bi.defaults.position}=this,{zAxis:y,yAxis:m,xAxis:A}=this._scaleAxis;y.startPosition=m.startPosition=A.startPosition=h;const[p,d,g]=h;y.stopPosition=[p,d,g+this._opInfo.originDimensions.value[2]];const c=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[0],90);c&&(A.stopPosition=c);const v=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[1],0);v&&(m.stopPosition=v)};u();const f=this.ad(S.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(f.don(u))}{const u=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((f,h)=>f===this._opInfo.targetPosition.value[h])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const r=this._pickingXYProcessing(e),o=this._pickingZProcessing(e),s=this.disposeVar(S.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await S.step(u,async f=>{const h=()=>{const A=[...this.position??Bi.defaults.position];e.editingHeightOffset&&(A[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=A};f.disposer.dispose((h(),this.positionChanged.disposableOn(h)));const y={constraintMode:"none",startDragPos:[0,0,0]},m=A=>{if(!this.position)return;const p={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Cp(A,a,p,this.axisSnapPixelSize,y),this._opInfo.constraintMode.value=y.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=y.startDragPos};f.disposer.dispose(e.pointerMoveEvent.disposableOn(A=>{A.pointerEvent&&m(A.pointerEvent)})),await S.step(f,A=>new Promise((p,d)=>{A.disposer.dispose(d),A.disposer.dispose(e.pointerDownEvent.don(g=>{g.pointerEvent&&m(g.pointerEvent),g.pointerEvent&&g.pointerEvent.button===0&&y.constraintMode!=="none"&&p()}))}))}),this._opInfo.step.value=!1,await S.step(u,async f=>{if(e.incrementDisabledInputStack(),f.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const h=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),y=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,h,y),f.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(o.restart(),f.disposer.dispose(()=>o.cancel()));await S.step(f,h=>new Promise((y,m)=>{h.disposer.dispose(m),h.disposer.dispose(e.pointerUpEvent.don(()=>{y()})),h.disposer.dispose(e.pointerOutEvent.don(()=>{y()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?s.restart():s.isRunning&&s.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const a=this.ad(new Sa(e));return a.width=10,this.ad(S.track([a,"show"],[this,"enabled"])),a}}(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),scale:S.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(Bi||(Bi={})),S.extendClassProps(Bi.prototype,Bi.createDefaultProps);const Lo=class Lo extends _n{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new S.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(S.react(!1)));L(this,"_status",this.disposeVar(S.react("None")));L(this,"_positionsChanged",this.ad(new S.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:a,deleteCount:r,items:o}of i){for(const s of o)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=a;s<a+r;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(S.nextAnimateFrame(()=>{var a;((a=i.pointerEvent)==null?void 0:a.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??Lo.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((a,r)=>a.every((o,s)=>{const l=this.editingPoints.get(r);return l.position&&l.position[s]===o})))}forceResetPositions(e){(this.enabled??Lo.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new rt(e));this.ad(S.track([i,"color"],[this,"polylineColor"])),this.ad(S.track([i,"width"],[this,"polylineWidth"])),this.ad(S.track([i,"show"],[this,"polylineShow"])),this.ad(S.track([i,"arcType"],[this,"polylineArcType"])),this.ad(S.track([i,"loop"],[this,"loop"]));{const a=()=>{const r=[];for(const o of this.getPositions())o[2]-=e.editingHeightOffset??0,r.push(o);i.positions=r};a(),this.ad(this.positionsChanged.don(a))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new S.CursorInfo(e.container,S.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const a=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}a==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):a==="Modifying"||a==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):a==="None"&&(i.text="",i.show=!1)}}))}};L(Lo,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(Lo,"defaults",{..._n.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Lo.baseImageUrl+"point-green.png",otherControlPointImageUrl:Lo.baseImageUrl+"point-yellow.png"});let sr=Lo;(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:S.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(sr||(sr={})),S.extendClassProps(sr.prototype,sr.createDefaultProps);let hj=0;class l2 extends S.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(S.reactArrayWithUndefined(void 0)));L(this,"_id",hj++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const a=this._menuPoi=this.ad(new es(e.czmViewer));a.enabled=!1,this.ad(S.track([a,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){a.position=void 0;return}const o=[...this.position];o[2]-=e.czmViewer.editingHeightOffset??0,a.position=o,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const o=e.editingPoints.indexOf(this)+1;o!==0&&(a.title=`控制点${o}`,o===1?a.imageUri=e.firstControlPointImageUrl??sr.defaults.firstControlPointImageUrl:a.imageUri=e.otherControlPointImageUrl??sr.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class u2 extends l2{constructor(n,e){super(n,e)}}class Dt extends sr{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new S.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new _r(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??Dt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Dt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await a.promise(S.step(a,async r=>{const o=r.disposer,s=o.ad(this._addingEditingProcessing());o.dispose(()=>"adding canceled!"),o.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await r.promise(new Promise(l=>{o.dispose(s.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new u2(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Dt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=S.createProcessingFromAsyncFunc(async a=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await a.promise(S.step(a,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new fj(this,r)));const f=s.disposer.disposeVar(new pj(this,r));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>f.do())),await s.promise(new Promise(h=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(y=>{y?(r++,h(!0)):h(!1)})),s.disposer.dispose(f.overEvent.disposableOnce(y=>{y?(r--,h(!0)):h(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps()})})(Dt||(Dt={})),S.extendClassProps(Dt.prototype,Dt.createDefaultProps);class fj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));const{placeEditing:a}=e;let r=new u2(e,void 0);e.editingPoints.splice(i,0,r);const o=()=>{(e.debug??Dt.defaults.debug)&&console.log("delete currentPosEditor");const u=e.editingPoints.indexOf(r);if(u===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(u,1)};if(a.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(S.track([r,"position"],[a,"position"])),a.enabled=!0;let s=!1;const l=()=>{o(),this._overEvent.emit(!1)};this.dispose(()=>{a.enabled=!1,!s&&l()}),this.dispose(a.overEvent.disposableOnce(()=>{s=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Dt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function dj(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class pj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_doEvent",this.disposeVar(new S.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(dj(e,i)))),(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class c2 extends Dt{constructor(n){super(n),this.loop=!1}}class h2 extends Dt{constructor(n){super(n),this.loop=!0}}class fp extends l2{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(a=>{n.menuPoiCommand(this,a)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new kr(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??at.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const a=()=>{if(!(n.enabled??at.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const o=n.editingPoints.indexOf(this);if(o===-1)break;const s=n.editingPoints.length;if(s===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??at.defaults.loop)&&o+1>=s)break;const u=this.position;if(!u)break;let f=(o+1)%s;const y=n.editingPoints.get(f).position;if(!y)break;const m=Tp(u,y);if(!m)break;m[2]-=n.czmViewer.editingHeightOffset??0,i.position=m;const A=n.editingPoints.length<(n.maxPointsNum??at.defaults.maxPointsNum);i.enabled=A,i.show=A;return}while(!1);i.enabled=!1,i.show=!1};a(),this.dispose(n.positionsChanged.disposableOn(a)),this.dispose(n.loopChanged.disposableOn(a)),this.dispose(n.enabledChanged.disposableOn(a))}this.dispose(i.clickEvent.disposableOn(a=>{if(a.button!==0||n.editingPoints.length>=(n.maxPointsNum??at.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const o=i.position?[...i.position]:void 0;o&&(o[2]+=n.czmViewer.editingHeightOffset??0);let s=new fp(n,o);n.editingPoints.splice(r+1,0,s),n.modify(s)}))}}}}class at extends sr{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"translationEditing");{const a=this.ad(S.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new S.ObjResettingWithEvent(a,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new Aj(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new Ti(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??at.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??at.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await a.promise(S.step(a,async o=>{const s=o.disposer,l=s.ad(new yj(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(f=>l.modify(f))),await o.promise(new Promise(f=>{s.dispose(l.overEvent.disposableOnce(h=>{f(h)}))}))})),r===-1){(this.debug??at.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??at.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??at.defaults.loop;const s=this.editingPoints.get(r-1).position;if(!s)return;let l=r%this.editingPoints.length;const f=this.editingPoints.get(l).position;if(!f)return;const h=Tp(s,f);if(!h)return;h&&(h[2]+=this.czmViewer.editingHeightOffset??0);let y=new fp(this,h);this.editingPoints.splice(r,0,y)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new fp(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps(),moveWithFirstPosition:!1})})(at||(at={})),S.extendClassProps(at.prototype,at.createDefaultProps);class Aj extends S.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,a)=>{if(i===void 0||a===void 0)return;var r=[i[0]-a[0],i[1]-a[1],i[2]-a[2]];const o=this.multiPointsModifyEditing.editingPoints.length;for(let s=1;s<o;s++){const l=this.multiPointsModifyEditing.editingPoints.get(s),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class yj extends S.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const a=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(a);const r=o=>{a(),e.status="Modifying_Point",i=new gj(e,o),i.dispose(i.overEvent.disposableOn(()=>{a()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((o,s)=>{if(s==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(s==="modify")r(o);else if(s==="add"){const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else s==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${s})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class gj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:a}=this._modifying;if(a.enabled=!0,a.heading=0,this.dispose(()=>{a.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");a.position=this._posEditor.position,this.dispose(S.track([this._posEditor,"position"],[a,"position"])),this.dispose(a.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class f2 extends at{constructor(n){super(n),this.loop=!1}}class d2 extends at{constructor(n){super(n),this.loop=!0}}class il extends Dt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(a<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([90,0,0]),distance:S.react(1)})})(il||(il={})),S.extendClassProps(il.prototype,il.createDefaultProps);class Ea extends at{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(a)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([0,0,0]),distance:S.react(0)})})(Ea||(Ea={})),S.extendClassProps(Ea.prototype,Ea.createDefaultProps);class p2 extends Dt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class A2 extends at{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class ol extends Dt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(ol||(ol={})),S.extendClassProps(ol.prototype,ol.createDefaultProps);class al extends at{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(al||(al={})),S.extendClassProps(al.prototype,al.createDefaultProps);class y2 extends Ea{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class gn extends Q.EngineObject{constructor(e,i,a){super(e,i,a??!0);L(this,"_supportEditing",this.disposeVar(S.react(!0)));L(this,"_currentEditing",this.disposeVar(S.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Dt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof _r&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const vh=class vh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new _r(e));this.ad(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(vh,"type",vh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,vh));let D0=vh;const wh=class wh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new xr(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);a&&(this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(wh,"type",wh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,wh));let R0=wh;const bh=class bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Bi(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(bh,"type",bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,bh));let U0=bh;const _h=class _h extends gn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new Ti(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const a=[];for(let r=0;r<n.length;r++){const o=n[r];Reflect.has(o,"position")?a.push(o.position):o.points&&a.push(...o.points)}i.position=Q.getMinMaxCorner(a).center,this.ad(i.positionChanged.disposableOn((r,o)=>{if(!(!r||!o)){var s=Cn({originPosition:o},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=Cn({originPosition:o},[l.position])[0][0];l.position=zi({originPosition:o},[[u[0]+s[0],u[1]+s[1],u[2]+s[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const u=Cn({originPosition:o},l.points)[0];l.points=zi({originPosition:o},u.map(f=>[f[0]+s[0],f[1]+s[1],f[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((a,r)=>{if(a===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var o=Cn({originPosition:r},[a])[0][0];const s=Cn({originPosition:r},n.points)[0];n.points=zi({originPosition:r},s.map(l=>[l[0]+o[0],l[1]+o[1],l[2]+o[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(_h,"type",_h.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,_h));let dp=_h;const xh=class xh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new il(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const a=Et(n.position);if(k.Cartesian3.ZERO.equals(a)||!e.viewer)return;i.distance=ti(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(xh,"type",xh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,xh));let L0=xh;const Ch=class Ch extends gn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new Ea(e));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const o=Et(n.position);if(k.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=ti(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Ch,"type",Ch.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Ch));let z0=Ch;const Sh=class Sh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new h2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Sh,"type",Sh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Sh));let N0=Sh;const Eh=class Eh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new d2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Eh,"type",Eh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Eh));let V0=Eh;const Ph=class Ph extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new c2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ph,"type",Ph.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Ph));let Q0=Ph;const Th=class Th extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new f2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Th,"type",Th.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Th));let H0=Th;const Bh=class Bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new p2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Bh,"type",Bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Bh));let j0=Bh;const Ih=class Ih extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new A2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ih,"type",Ih.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,Ih));let G0=Ih;const Fh=class Fh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ol(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Fh,"type",Fh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Fh));let W0=Fh;const kh=class kh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new al(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(kh,"type",kh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,kh));let q0=kh;const Mh=class Mh extends gn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new y2(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),o=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let u=Q.getMinMaxCorner(n.points).center,f=[...u],h=l?n.points[0][2]:0;s?r?f[2]=n.extrudedHeight:f[2]=n.height+h:(o&&(u[2]=n.height),r&&(f[2]=n.extrudedHeight)),i.startPosition=u,i.distance=f[2]-u[2],i.moveWithFirstPosition=!1;let y=[...u];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(s?(n.points=n.points.map(m=>[m[0],m[1],m[2]+i.positions[0][2]-y[2]]),r?n.extrudedHeight=i.positions[1][2]:o&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(o&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),y=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Mh,"type",Mh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Mh));let K0=Mh;function g2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a,r=!0)=>{const o=Array.isArray(a)?[...a]:[a],s=i.editingID;e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"start",add:{modes:o}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"end",add:{modes:o}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(f=>{f.code=="Escape"&&l()}));let u=0;do{const f=o[u%o.length],h=await S.step(n,async y=>{const m=y.disposer,A=Q.EngineObject.contextEditing.getEngineObjConstructor(f,e.typeName);if(!A||!i.supportEditingModes().includes(f))return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;const p=new A(i,e);if(m.ad(()=>{!p.isDestroyed()&&p.destroy()}),p.supportEditing)e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;return await y.promise(new Promise(g=>{p.isDestroyed()&&g(!1),m.ad(p.toDestroyEvent.don(()=>{console.log(`编辑模式${f}结束`),g(!1)})),r&&(m.ad(e.keyDownEvent.don(c=>{c.code=="Space"&&(console.log(`编辑模式${f}结束`),g(!1))})),m.ad(e.dblclickEvent.don(()=>g(!0))))}))});if(r&&h||!r&&u==o.length-1||e.notSupportEditingCount==o.length)break;u++}while(!0)});return t}function m2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a)=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&r()}));const o=new dp(i,e);n.disposer.ad(()=>{!o.isDestroyed()&&o.destroy()}),await n.promise(new Promise(s=>{o.isDestroyed()&&s(),n.disposer.ad(o.toDestroyEvent.don(()=>{console.log("移动结束"),s()})),n.disposer.ad(e.dblclickEvent.don(()=>s()))}))});return t}le.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.7-beta.5",e="2025-05-23T06:11:36.000Z",i="北京西部世界科技有限公司",a="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="7f8fce6b16c93213a0d5b0ffc79fe6eb93738621",s=((Date.now()-1747980696e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${s}个小时)
4885
+ `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},pt,t)}class cj extends S.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const a=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const o=i=this._getStartInfo(r.pointerEvent);o&&(this.owner.hoveredPlaneType=o.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(a.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const o=this._getStartInfo(r.pointerEvent);if(!o||o.currentPlaneType==="none")break;const{currentPlaneType:s}=o,l=[...this.owner.selfRotation];l[xr.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(S.createProcessingFromAsyncFunc(async(n,e,i)=>{const a=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:o,offsetY:s}=r.pointerEvent,l=[o,s],{currentPlaneType:u}=i;if(u==="none")return;const f=this.owner.getPlane(u);if(!i.currentV)return;const h=f.pick(l);if(!h||!this.owner.cartesian)return;const y=k.Cartesian3.subtract(i.currentV,this.owner.cartesian,new k.Cartesian3);k.Cartesian3.normalize(y,y);const m=k.Cartesian3.subtract(h,this.owner.cartesian,new k.Cartesian3);if(k.Cartesian3.normalize(m,m),!f.normal||!f.origin)return;const A=O0(y,m,f.normal),p=O0(f.origin,y,f.normal),d=O0(f.origin,m,f.normal);{const g=[...this.owner.selfRotation];g[xr.rotationNum[u]]=i.startRotation+A,this.owner.selfRotation=g,a.circleStartRotation=p,a.circleEndRotation=d}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{a.circleStartRotation=0,a.circleEndRotation=0}),await S.step(n,r=>new Promise((o,s)=>{r.disposer.dispose(s),r.disposer.dispose(e.pointerUpEvent.don(()=>{o()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{o()}))}))}))}_pickPlane(n,e,i,a,r){const o=this.owner.cartesian;if(!o)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(i).pick(a);if(!l)return;const u=k.Cartesian3.distance(o,l),f=r/4,h=f*3/128;if(!(u>=f-h&&u<=f+h))return;const m=k.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=m||(n.currentPlaneType=i,n.currentD2c=m,n.currentV=l,n.startRotation=s[xr.rotationNum[i]])}_getStartInfo(n){var f;const{czmViewer:e}=this.owner,i=(f=e.viewer)==null?void 0:f.scene;if(!this.owner.position||!this.owner.cartesian)return;const a=ti(i,this.owner.cartesian,this.owner.pixelSize);if(!a)return;const{offsetX:r,offsetY:o}=n,s=[r,o],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",s,a),this._pickPlane(u,i,"pitch",s,a),this._pickPlane(u,i,"roll",s,a),u}}function O0(t,n,e){const i=k.Cartesian3.cross(n,t,new k.Cartesian3);if(i.equals(k.Cartesian3.ZERO))return 0;k.Cartesian3.normalize(i,i);const a=k.Cartesian3.dot(i,e);let r=Math.acos(k.Cartesian3.dot(t,n))*180/Math.PI;return r=a>0?r:-r,r}const Ma=class Ma extends qn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(S.react("none")));L(this,"_movingPlaneType",this.disposeVar(S.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new oj(this)),pitch:this.disposeVar(new aj(this)),roll:this.disposeVar(new sj(this))});L(this,"_rotatorRunningResetting",this.disposeVar(new S.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new cj(this)})));this._czmViewer=e;const i=this._czmViewer;if(this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&Et(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Yt(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(S.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(S.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(S.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const a=dt({rotation:this.selfRotation});if(!a)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=k.Matrix4.toArray(a))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const a=this.ad(new rl(e));this.dispose(S.track([a,"position"],[this,"position"])),this.dispose(S.track([a,"pixelSize"],[this,"pixelSize"])),this.dispose(S.track([a,"debug"],[this,"debug"])),this.dispose(S.track([a,"rotation"],[this,"rotation"]));{const r=()=>{a.selfRotation=Ma.rotationFuncs[i](this.selfRotation),a.circleRotation=this.selfRotation[Ma.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const o=this.movingPlaneType===i,s=this.hoveredPlaneType===i,u=[0,0,0,o||s?1:.8];u[Ma.rotationNum[i]]=1,a.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return a}};L(Ma,"rotationNum",{heading:0,pitch:1,roll:2}),L(Ma,"rotationFuncs",{heading:([e,i,a])=>[0,0,0],pitch:([e,i,a])=>[e,0,-90],roll:([e,i,a])=>[e,i+90,0]});let xr=Ma;(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),rotation:S.reactArray([0,0,0]),selfRotation:S.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(xr||(xr={})),S.extendClassProps(xr.prototype,xr.createDefaultProps);const Oa=class Oa extends S.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??Oa.defaults.positions[0],this.stopPosition??Oa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??Oa.defaults.positions[0],n??Oa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const a=this.ad(new rt(n,e));a.arcType="RHUMB";const r=this.ad(new Jn(n,e));this.ad(S.track([a,"allowPicking"],[this,"allowPicking"])),this.ad(S.track([r,"allowPicking"],[this,"allowPicking"]));{const o=()=>{a.show=r.show=this.show};o(),this.ad(this.showChanged.don(o))}{const o=()=>{a.width=this.width/2,r.pixelSize=this.width};o(),this.ad(this.widthChanged.don(o))}{const o=()=>{a.color=r.color=this.color};o(),this.ad(this.colorChanged.don(o))}{const o=()=>{a.positions=this.positions,r.position=this.stopPosition};o(),this.dispose(this.startPositionChanged.disposableOn(o)),this.dispose(this.stopPositionChanged.disposableOn(o))}}};L(Oa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Sa=Oa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:S.reactPositions(t.defaults.positions),width:10,color:S.reactArray([1,0,0,1])})})(Sa||(Sa={})),S.extendClassProps(Sa.prototype,Sa.createDefaultProps);class Bi extends qn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(S.react(!1)),moved:this.ad(S.react(!1)),constraintMode:this.disposeVar(S.react("none")),originPosition:this.disposeVar(S.reactArray([0,0,0])),originHeading:this.disposeVar(S.react(0)),originDimensions:this.disposeVar(S.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(S.reactArray([0,0,0])),movingPosition:this.disposeVar(S.reactArray([0,0,0])),targetPosition:this.disposeVar(S.reactArray([0,0,0])),targetHeading:this.disposeVar(S.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new S.Processing((i,a,r)=>{const o=[0,0,0],s=new k.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hr(S.getDomEventCurrentTargetPos(l.pointerEvent));if(!La(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ra(s,o),this._opInfo.constraintMode.value==="x"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value,o,o):this._opInfo.constraintMode.value==="y"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,o,o):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=o,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const f=[0,0,0];Q.geoRhumbDestination(o,r,a,f),this._opInfo.targetPosition.value=f;let h=this.scale[0],y=this.scale[1];const m=Q.geoDistance(f,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...f];const A=this._opInfo.originDimensions.value[0]/100;m!=0&&this._opInfo.constraintMode.value==="y"&&(m>0?h+=A:h-=A),m!=0&&this._opInfo.constraintMode.value==="x"&&(m>0?y+=A:y-=A),h<=0&&(h+=A),y<=0&&(y+=A),this.scale=[h??1,y??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new S.Processing(()=>{const i=new k.Cartesian3,a=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!Nh(e.viewer.scene,Et(this._opInfo.originPosition.value),o,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ve(i,a)){this._opInfo.movingPosition.value=a;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],a[2]+s];let u=this.scale[2];const f=a[2]-this._lastPosition[2];this._lastPosition=[...a];const h=this._opInfo.originDimensions.value[0]/100;f!=0&&(f>0?u+=h:u-=h),u<=0&&(u+=h),this.scale=[this.scale[0]??1,this.scale[1]??1,u??1]}})})));const i=e.viewer;if(!i)return;const{scene:a}=i;this.ad(new Rp(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const u=()=>{if(!this._scaleAxis)return;const{zAxis:f,yAxis:h,xAxis:y}=this._scaleAxis,m=this._opInfo.constraintMode.value,A=this._opInfo.step;f.color=[0,0,1,.99],h.color=[0,1,0,.99],y.color=[1,0,0,.99],m==="x"?y.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="y"?h.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="z"&&(f.color=A?[1,1,0,.8]:[1,1,0,.99])};u(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(u)),this.dispose(this._opInfo.step.changed.disposableOn(u))}{const u=()=>{if(!this._scaleAxis)return;const{position:h=Bi.defaults.position}=this,{zAxis:y,yAxis:m,xAxis:A}=this._scaleAxis;y.startPosition=m.startPosition=A.startPosition=h;const[p,d,g]=h;y.stopPosition=[p,d,g+this._opInfo.originDimensions.value[2]];const c=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[0],90);c&&(A.stopPosition=c);const v=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[1],0);v&&(m.stopPosition=v)};u();const f=this.ad(S.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(f.don(u))}{const u=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((f,h)=>f===this._opInfo.targetPosition.value[h])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const r=this._pickingXYProcessing(e),o=this._pickingZProcessing(e),s=this.disposeVar(S.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await S.step(u,async f=>{const h=()=>{const A=[...this.position??Bi.defaults.position];e.editingHeightOffset&&(A[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=A};f.disposer.dispose((h(),this.positionChanged.disposableOn(h)));const y={constraintMode:"none",startDragPos:[0,0,0]},m=A=>{if(!this.position)return;const p={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Cp(A,a,p,this.axisSnapPixelSize,y),this._opInfo.constraintMode.value=y.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=y.startDragPos};f.disposer.dispose(e.pointerMoveEvent.disposableOn(A=>{A.pointerEvent&&m(A.pointerEvent)})),await S.step(f,A=>new Promise((p,d)=>{A.disposer.dispose(d),A.disposer.dispose(e.pointerDownEvent.don(g=>{g.pointerEvent&&m(g.pointerEvent),g.pointerEvent&&g.pointerEvent.button===0&&y.constraintMode!=="none"&&p()}))}))}),this._opInfo.step.value=!1,await S.step(u,async f=>{if(e.incrementDisabledInputStack(),f.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const h=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),y=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,h,y),f.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(o.restart(),f.disposer.dispose(()=>o.cancel()));await S.step(f,h=>new Promise((y,m)=>{h.disposer.dispose(m),h.disposer.dispose(e.pointerUpEvent.don(()=>{y()})),h.disposer.dispose(e.pointerOutEvent.don(()=>{y()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?s.restart():s.isRunning&&s.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const a=this.ad(new Sa(e));return a.width=10,this.ad(S.track([a,"show"],[this,"enabled"])),a}}(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),scale:S.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(Bi||(Bi={})),S.extendClassProps(Bi.prototype,Bi.createDefaultProps);const Lo=class Lo extends _n{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new S.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(S.react(!1)));L(this,"_status",this.disposeVar(S.react("None")));L(this,"_positionsChanged",this.ad(new S.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:a,deleteCount:r,items:o}of i){for(const s of o)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=a;s<a+r;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(S.nextAnimateFrame(()=>{var a;((a=i.pointerEvent)==null?void 0:a.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??Lo.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((a,r)=>a.every((o,s)=>{const l=this.editingPoints.get(r);return l.position&&l.position[s]===o})))}forceResetPositions(e){(this.enabled??Lo.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new rt(e));this.ad(S.track([i,"color"],[this,"polylineColor"])),this.ad(S.track([i,"width"],[this,"polylineWidth"])),this.ad(S.track([i,"show"],[this,"polylineShow"])),this.ad(S.track([i,"arcType"],[this,"polylineArcType"])),this.ad(S.track([i,"loop"],[this,"loop"]));{const a=()=>{const r=[];for(const o of this.getPositions())o[2]-=e.editingHeightOffset??0,r.push(o);i.positions=r};a(),this.ad(this.positionsChanged.don(a))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new S.CursorInfo(e.container,S.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const a=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}a==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):a==="Modifying"||a==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):a==="None"&&(i.text="",i.show=!1)}}))}};L(Lo,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(Lo,"defaults",{..._n.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Lo.baseImageUrl+"point-green.png",otherControlPointImageUrl:Lo.baseImageUrl+"point-yellow.png"});let sr=Lo;(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:S.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(sr||(sr={})),S.extendClassProps(sr.prototype,sr.createDefaultProps);let hj=0;class l2 extends S.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(S.reactArrayWithUndefined(void 0)));L(this,"_id",hj++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const a=this._menuPoi=this.ad(new es(e.czmViewer));a.enabled=!1,this.ad(S.track([a,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){a.position=void 0;return}const o=[...this.position];o[2]-=e.czmViewer.editingHeightOffset??0,a.position=o,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const o=e.editingPoints.indexOf(this)+1;o!==0&&(a.title=`控制点${o}`,o===1?a.imageUri=e.firstControlPointImageUrl??sr.defaults.firstControlPointImageUrl:a.imageUri=e.otherControlPointImageUrl??sr.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class u2 extends l2{constructor(n,e){super(n,e)}}class Dt extends sr{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new S.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new _r(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??Dt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Dt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await a.promise(S.step(a,async r=>{const o=r.disposer,s=o.ad(this._addingEditingProcessing());o.dispose(()=>"adding canceled!"),o.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await r.promise(new Promise(l=>{o.dispose(s.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new u2(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Dt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=S.createProcessingFromAsyncFunc(async a=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await a.promise(S.step(a,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new fj(this,r)));const f=s.disposer.disposeVar(new pj(this,r));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>f.do())),await s.promise(new Promise(h=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(y=>{y?(r++,h(!0)):h(!1)})),s.disposer.dispose(f.overEvent.disposableOnce(y=>{y?(r--,h(!0)):h(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps()})})(Dt||(Dt={})),S.extendClassProps(Dt.prototype,Dt.createDefaultProps);class fj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));const{placeEditing:a}=e;let r=new u2(e,void 0);e.editingPoints.splice(i,0,r);const o=()=>{(e.debug??Dt.defaults.debug)&&console.log("delete currentPosEditor");const u=e.editingPoints.indexOf(r);if(u===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(u,1)};if(a.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(S.track([r,"position"],[a,"position"])),a.enabled=!0;let s=!1;const l=()=>{o(),this._overEvent.emit(!1)};this.dispose(()=>{a.enabled=!1,!s&&l()}),this.dispose(a.overEvent.disposableOnce(()=>{s=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Dt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function dj(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class pj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_doEvent",this.disposeVar(new S.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(dj(e,i)))),(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class c2 extends Dt{constructor(n){super(n),this.loop=!1}}class h2 extends Dt{constructor(n){super(n),this.loop=!0}}class fp extends l2{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(a=>{n.menuPoiCommand(this,a)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new kr(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??at.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const a=()=>{if(!(n.enabled??at.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const o=n.editingPoints.indexOf(this);if(o===-1)break;const s=n.editingPoints.length;if(s===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??at.defaults.loop)&&o+1>=s)break;const u=this.position;if(!u)break;let f=(o+1)%s;const y=n.editingPoints.get(f).position;if(!y)break;const m=Tp(u,y);if(!m)break;m[2]-=n.czmViewer.editingHeightOffset??0,i.position=m;const A=n.editingPoints.length<(n.maxPointsNum??at.defaults.maxPointsNum);i.enabled=A,i.show=A;return}while(!1);i.enabled=!1,i.show=!1};a(),this.dispose(n.positionsChanged.disposableOn(a)),this.dispose(n.loopChanged.disposableOn(a)),this.dispose(n.enabledChanged.disposableOn(a))}this.dispose(i.clickEvent.disposableOn(a=>{if(a.button!==0||n.editingPoints.length>=(n.maxPointsNum??at.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const o=i.position?[...i.position]:void 0;o&&(o[2]+=n.czmViewer.editingHeightOffset??0);let s=new fp(n,o);n.editingPoints.splice(r+1,0,s),n.modify(s)}))}}}}class at extends sr{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"translationEditing");{const a=this.ad(S.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new S.ObjResettingWithEvent(a,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new Aj(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new Ti(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??at.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??at.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await a.promise(S.step(a,async o=>{const s=o.disposer,l=s.ad(new yj(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(f=>l.modify(f))),await o.promise(new Promise(f=>{s.dispose(l.overEvent.disposableOnce(h=>{f(h)}))}))})),r===-1){(this.debug??at.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??at.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??at.defaults.loop;const s=this.editingPoints.get(r-1).position;if(!s)return;let l=r%this.editingPoints.length;const f=this.editingPoints.get(l).position;if(!f)return;const h=Tp(s,f);if(!h)return;h&&(h[2]+=this.czmViewer.editingHeightOffset??0);let y=new fp(this,h);this.editingPoints.splice(r,0,y)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new fp(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps(),moveWithFirstPosition:!1})})(at||(at={})),S.extendClassProps(at.prototype,at.createDefaultProps);class Aj extends S.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,a)=>{if(i===void 0||a===void 0)return;var r=[i[0]-a[0],i[1]-a[1],i[2]-a[2]];const o=this.multiPointsModifyEditing.editingPoints.length;for(let s=1;s<o;s++){const l=this.multiPointsModifyEditing.editingPoints.get(s),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class yj extends S.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const a=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(a);const r=o=>{a(),e.status="Modifying_Point",i=new gj(e,o),i.dispose(i.overEvent.disposableOn(()=>{a()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((o,s)=>{if(s==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(s==="modify")r(o);else if(s==="add"){const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else s==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${s})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class gj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:a}=this._modifying;if(a.enabled=!0,a.heading=0,this.dispose(()=>{a.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");a.position=this._posEditor.position,this.dispose(S.track([this._posEditor,"position"],[a,"position"])),this.dispose(a.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class f2 extends at{constructor(n){super(n),this.loop=!1}}class d2 extends at{constructor(n){super(n),this.loop=!0}}class il extends Dt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(a<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([90,0,0]),distance:S.react(1)})})(il||(il={})),S.extendClassProps(il.prototype,il.createDefaultProps);class Ea extends at{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(a)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([0,0,0]),distance:S.react(0)})})(Ea||(Ea={})),S.extendClassProps(Ea.prototype,Ea.createDefaultProps);class p2 extends Dt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class A2 extends at{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class ol extends Dt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(ol||(ol={})),S.extendClassProps(ol.prototype,ol.createDefaultProps);class al extends at{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(al||(al={})),S.extendClassProps(al.prototype,al.createDefaultProps);class y2 extends Ea{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class gn extends Q.EngineObject{constructor(e,i,a){super(e,i,a??!0);L(this,"_supportEditing",this.disposeVar(S.react(!0)));L(this,"_currentEditing",this.disposeVar(S.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Dt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof _r&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const vh=class vh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new _r(e));this.ad(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(vh,"type",vh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,vh));let D0=vh;const wh=class wh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new xr(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);a&&(this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(wh,"type",wh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,wh));let R0=wh;const bh=class bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Bi(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(bh,"type",bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,bh));let U0=bh;const _h=class _h extends gn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new Ti(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const a=[];for(let r=0;r<n.length;r++){const o=n[r];Reflect.has(o,"position")?a.push(o.position):o.points&&a.push(...o.points)}i.position=Q.getMinMaxCorner(a).center,this.ad(i.positionChanged.disposableOn((r,o)=>{if(!(!r||!o)){var s=Cn({originPosition:o},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=Cn({originPosition:o},[l.position])[0][0];l.position=zi({originPosition:o},[[u[0]+s[0],u[1]+s[1],u[2]+s[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const u=Cn({originPosition:o},l.points)[0];l.points=zi({originPosition:o},u.map(f=>[f[0]+s[0],f[1]+s[1],f[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((a,r)=>{if(a===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var o=Cn({originPosition:r},[a])[0][0];const s=Cn({originPosition:r},n.points)[0];n.points=zi({originPosition:r},s.map(l=>[l[0]+o[0],l[1]+o[1],l[2]+o[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(_h,"type",_h.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,_h));let dp=_h;const xh=class xh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new il(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const a=Et(n.position);if(k.Cartesian3.ZERO.equals(a)||!e.viewer)return;i.distance=ti(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(xh,"type",xh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,xh));let L0=xh;const Ch=class Ch extends gn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new Ea(e));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const o=Et(n.position);if(k.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=ti(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Ch,"type",Ch.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Ch));let z0=Ch;const Sh=class Sh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new h2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Sh,"type",Sh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Sh));let N0=Sh;const Eh=class Eh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new d2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Eh,"type",Eh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Eh));let V0=Eh;const Ph=class Ph extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new c2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ph,"type",Ph.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Ph));let Q0=Ph;const Th=class Th extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new f2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Th,"type",Th.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Th));let H0=Th;const Bh=class Bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new p2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Bh,"type",Bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Bh));let j0=Bh;const Ih=class Ih extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new A2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ih,"type",Ih.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,Ih));let G0=Ih;const Fh=class Fh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ol(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Fh,"type",Fh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Fh));let W0=Fh;const kh=class kh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new al(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(kh,"type",kh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,kh));let q0=kh;const Mh=class Mh extends gn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new y2(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),o=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let u=Q.getMinMaxCorner(n.points).center,f=[...u],h=l?n.points[0][2]:0;s?r?f[2]=n.extrudedHeight:f[2]=n.height+h:(o&&(u[2]=n.height),r&&(f[2]=n.extrudedHeight)),i.startPosition=u,i.distance=f[2]-u[2],i.moveWithFirstPosition=!1;let y=[...u];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(s?(n.points=n.points.map(m=>[m[0],m[1],m[2]+i.positions[0][2]-y[2]]),r?n.extrudedHeight=i.positions[1][2]:o&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(o&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),y=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Mh,"type",Mh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Mh));let K0=Mh;function g2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a,r=!0)=>{const o=Array.isArray(a)?[...a]:[a],s=i.editingID;e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"start",add:{modes:o}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"end",add:{modes:o}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(f=>{f.code=="Escape"&&l()}));let u=0;do{const f=o[u%o.length],h=await S.step(n,async y=>{const m=y.disposer,A=Q.EngineObject.contextEditing.getEngineObjConstructor(f,e.typeName);if(!A||!i.supportEditingModes().includes(f))return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;const p=new A(i,e);if(m.ad(()=>{!p.isDestroyed()&&p.destroy()}),p.supportEditing)e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;return await y.promise(new Promise(g=>{p.isDestroyed()&&g(!1),m.ad(p.toDestroyEvent.don(()=>{console.log(`编辑模式${f}结束`),g(!1)})),r&&(m.ad(e.keyDownEvent.don(c=>{c.code=="Space"&&(console.log(`编辑模式${f}结束`),g(!1))})),m.ad(e.dblclickEvent.don(()=>g(!0))))}))});if(r&&h||!r&&u==o.length-1||e.notSupportEditingCount==o.length)break;u++}while(!0)});return t}function m2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a)=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&r()}));const o=new dp(i,e);n.disposer.ad(()=>{!o.isDestroyed()&&o.destroy()}),await n.promise(new Promise(s=>{o.isDestroyed()&&s(),n.disposer.ad(o.toDestroyEvent.don(()=>{console.log("移动结束"),s()})),n.disposer.ad(e.dblclickEvent.don(()=>s()))}))});return t}le.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.7-beta.6",e="2025-05-23T07:29:16.000Z",i="北京西部世界科技有限公司",a="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="1edbbb82ecba0633bf8870ed4cf94b413a017f55",s=((Date.now()-1747985356e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${s}个小时)
4886
4886
  %c${a?a+`
4887
4887
  `:""}当前网站正在使用${t},此软件版权归${i}所有
4888
- `;le.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","7f8fce6b16c93213a0d5b0ffc79fe6eb93738621")},get info(){return l},get date(){return"2025-05-23T06:11:36.000Z"},get author(){return"suplyang"},get version(){return"3.0.7-beta.5"},get name(){return"earthsdk3-cesium"},get commitId(){return"7f8fce6b16c93213a0d5b0ffc79fe6eb93738621"},print(){console.info(this.info,`
4888
+ `;le.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","1edbbb82ecba0633bf8870ed4cf94b413a017f55")},get info(){return l},get date(){return"2025-05-23T07:29:16.000Z"},get author(){return"suplyang"},get version(){return"3.0.7-beta.6"},get name(){return"earthsdk3-cesium"},get commitId(){return"1edbbb82ecba0633bf8870ed4cf94b413a017f55"},print(){console.info(this.info,`
4889
4889
  font-size: 18px;
4890
4890
  font-weight: 1000;
4891
4891
  line-height: 1;