@u-gis/cesium 3.6.4 → 3.6.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.
@@ -3773,7 +3773,7 @@ void main()
3773
3773
  {
3774
3774
  out_FragColor = u_color;
3775
3775
  }
3776
- `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},ut,t)}class v8 extends c.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{const s=this._getStartInfo(r.pointerEvent);if(s&&s.currentPlaneType!=="none"){const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[pi.rotationNum[a]]=0,this.owner.selfRotation=l;return}this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(c.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=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:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:u}=i;if(u==="none")return;const A=this.owner.getPlane(u);if(!i.currentV)return;const h=A.pick(l);if(!h||!this.owner.cartesian)return;const d=w.Cartesian3.subtract(i.currentV,this.owner.cartesian,new w.Cartesian3);w.Cartesian3.normalize(d,d);const f=w.Cartesian3.subtract(h,this.owner.cartesian,new w.Cartesian3);if(w.Cartesian3.normalize(f,f),!A.normal||!A.origin)return;const p=fv(d,f,A.normal),g=fv(A.origin,d,A.normal),v=fv(A.origin,f,A.normal);{const y=[...this.owner.selfRotation];y[pi.rotationNum[u]]=i.startRotation+p,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await c.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const u=w.Cartesian3.distance(s,l),A=r/4,h=A*3/128;if(!(u>=A-h&&u<=A+h))return;const f=w.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=f||(n.currentPlaneType=i,n.currentD2c=f,n.currentV=l,n.startRotation=a[pi.rotationNum[i]])}_getStartInfo(n){var A;const{czmViewer:e}=this.owner,i=(A=e.viewer)==null?void 0:A.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Ni(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",a,o),this._pickPlane(u,i,"pitch",a,o),this._pickPlane(u,i,"roll",a,o),u}}function fv(t,n,e){const i=w.Cartesian3.cross(n,t,new w.Cartesian3);if(i.equals(w.Cartesian3.ZERO))return 0;w.Cartesian3.normalize(i,i);const o=w.Cartesian3.dot(i,e);let r=Math.acos(w.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const gs=class gs extends zn{constructor(e){super();U(this,"_hoveredPlaneType",this.disposeVar(c.react("none")));U(this,"_movingPlaneType",this.disposeVar(c.react("none")));U(this,"_circles");U(this,"_czmCameraModel");U(this,"_cartesian");U(this,"_planes",{heading:this.disposeVar(new f8(this)),pitch:this.disposeVar(new p8(this)),roll:this.disposeVar(new g8(this))});U(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new c.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new v8(this)})),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&&Ye(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 jt(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(c.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(c.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(c.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=lt({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=w.Matrix4.toArray(o))};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 o=this.ad(new Ra(e));this.dispose(c.track([o,"position"],[this,"position"])),this.dispose(c.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(c.track([o,"debug"],[this,"debug"])),this.dispose(c.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=gs.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[gs.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,u=[0,0,0,s||a?1:.8];u[gs.rotationNum[i]]=1,o.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};U(gs,"rotationNum",{heading:0,pitch:1,roll:2}),U(gs,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let pi=gs;(t=>{t.createDefaultProps=()=>({...zn.createDefaultProps(),rotation:c.reactArray([0,0,0]),selfRotation:c.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(pi||(pi={})),c.extendClassProps(pi.prototype,pi.createDefaultProps);const ms=class ms extends c.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??ms.defaults.positions[0],this.stopPosition??ms.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??ms.defaults.positions[0],n??ms.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new Wn(n,e));this.ad(c.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(c.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};U(ms,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let ss=ms;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:c.reactPositions(t.defaults.positions),width:10,color:c.reactArray([1,0,0,1])})})(ss||(ss={})),c.extendClassProps(ss.prototype,ss.createDefaultProps);class cr extends zn{constructor(e){super();U(this,"_lastPosition");U(this,"_opInfo",{step:this.ad(c.react(!1)),moved:this.ad(c.react(!1)),constraintMode:this.disposeVar(c.react("none")),originPosition:this.disposeVar(c.reactArray([0,0,0])),originHeading:this.disposeVar(c.react(0)),originDimensions:this.disposeVar(c.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(c.reactArray([0,0,0])),movingPosition:this.disposeVar(c.reactArray([0,0,0])),targetPosition:this.disposeVar(c.reactArray([0,0,0])),targetHeading:this.disposeVar(c.react(0))});U(this,"_scaleAxis");U(this,"_pickingXYProcessing",e=>this.disposeVar(new c.Processing((i,o,r)=>{const s=[0,0,0],a=new w.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=oi(c.getDomEventCurrentTargetPos(l.pointerEvent));if(!vs(e.viewer.scene,u,this._opInfo.originPosition.value[2],a))return;mo(a,s),this._opInfo.constraintMode.value==="x"?vo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?vo(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const A=[0,0,0];c.geoRhumbDestination(s,r,o,A),this._opInfo.targetPosition.value=A;let h=this.scale[0],d=this.scale[1];const f=c.geoDistance(A,this._opInfo.originPosition.value)-c.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...A];const p=this._opInfo.originDimensions.value[0]/100;f!=0&&this._opInfo.constraintMode.value==="y"&&(f>0?h+=p:h-=p),f!=0&&this._opInfo.constraintMode.value==="x"&&(f>0?d+=p:d-=p),h<=0&&(h+=p),d<=0&&(d+=p),this.scale=[h??1,d??1,this.scale[2]??1]})})));U(this,"_pickingZProcessing",e=>this.disposeVar(new c.Processing(()=>{const i=new w.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=oi(c.getDomEventCurrentTargetPos(r.pointerEvent));if(!Ch(e.viewer.scene,Ye(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Me(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let u=this.scale[2];const A=o[2]-this._lastPosition[2];this._lastPosition=[...o];const h=this._opInfo.originDimensions.value[0]/100;A!=0&&(A>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:o}=i;this.ad(new xf(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 r=()=>{if(!this._scaleAxis)return;const{zAxis:s,yAxis:a,xAxis:l}=this._scaleAxis,u=this._opInfo.constraintMode.value,A=this._opInfo.step;s.color=[0,0,1,.99],a.color=[0,1,0,.99],l.color=[1,0,0,.99],u==="x"?l.color=A?[1,1,0,.8]:[1,1,0,.99]:u==="y"?a.color=A?[1,1,0,.8]:[1,1,0,.99]:u==="z"&&(s.color=A?[1,1,0,.8]:[1,1,0,.99])};r(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(r)),this.dispose(this._opInfo.step.changed.disposableOn(r))}{const r=()=>{if(!this._scaleAxis)return;const{position:a=cr.defaults.position}=this,{zAxis:l,yAxis:u,xAxis:A}=this._scaleAxis;l.startPosition=u.startPosition=A.startPosition=a;const[h,d,f]=a;l.stopPosition=[h,d,f+this._opInfo.originDimensions.value[2]];const p=c.geoRhumbDestination(a,this._opInfo.originDimensions.value[0],90);p&&(A.stopPosition=p);const g=c.geoRhumbDestination(a,this._opInfo.originDimensions.value[1],0);g&&(u.stopPosition=g)};r();const s=this.ad(c.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(s.don(r))}{const r=()=>{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((s,a)=>s===this._opInfo.targetPosition.value[a])){this._opInfo.moved.value=!0;return}};r(),this.dispose(this._opInfo.originHeading.changed.disposableOn(r)),this.dispose(this._opInfo.originPosition.changed.disposableOn(r)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(r)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(r))}{const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=()=>{const d=[...this.position??cr.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d},l={constraintMode:"none",startDragPos:[0,0,0]},u=d=>{if(!this.position)return;const f={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};cf(d,o,f,this.axisSnapPixelSize,l),this._opInfo.constraintMode.value=l.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=l.startDragPos},A=this.disposeVar(c.createProcessingFromAsyncFunc(async d=>{this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",d.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await c.step(d,async f=>{f.disposer.dispose((a(),this.positionChanged.disposableOn(a))),f.disposer.dispose(e.pointerMoveEvent.disposableOn(p=>{p.pointerEvent&&u(p.pointerEvent)})),await c.step(f,p=>new Promise((g,v)=>{p.disposer.dispose(v),p.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&u(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&l.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await c.step(d,async f=>{if(e.incrementDisabledInputStack(),f.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const p=c.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),g=c.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,p,g),f.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),f.disposer.dispose(()=>s.cancel()));await c.step(f,p=>new Promise((g,v)=>{p.disposer.dispose(v),p.disposer.dispose(e.pointerUpEvent.don(()=>{g()})),p.disposer.dispose(e.pointerOutEvent.don(()=>{g()}))})),this._lastPosition=void 0}),A.restart()})),h=()=>{this.enabled?A.restart():A.isRunning&&A.cancel()};h(),this.dispose(this.enabledChanged.disposableOn(h))}}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new ss(e));return o.width=10,this.ad(c.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...zn.createDefaultProps(),scale:c.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(cr||(cr={})),c.extendClassProps(cr.prototype,cr.createDefaultProps);const go=class go extends kn{constructor(e){super();U(this,"_editingPoints",this.disposeVar(new c.ObservableArray));U(this,"_cancelEvent",this.disposeVar(new c.Event));U(this,"_currentProcess");U(this,"_menuPoiEnabled",this.disposeVar(c.react(!1)));U(this,"_status",this.disposeVar(c.react("None")));U(this,"_positionsChanged",this.ad(new c.Event));U(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:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).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(()=>{var o;((o=i.pointerEvent)==null?void 0:o.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??go.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??go.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 Je(e));this.ad(c.track([i,"color"],[this,"polylineColor"])),this.ad(c.track([i,"width"],[this,"polylineWidth"])),this.ad(c.track([i,"show"],[this,"polylineShow"])),this.ad(c.track([i,"arcType"],[this,"polylineArcType"])),this.ad(c.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new c.CursorInfo(e.container,c.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};U(go,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),U(go,"defaults",{...kn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:go.baseImageUrl+"point-green.png",otherControlPointImageUrl:go.baseImageUrl+"point-yellow.png"});let ei=go;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:c.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})})(ei||(ei={})),c.extendClassProps(ei.prototype,ei.createDefaultProps);let w8=0;class BS extends c.Destroyable{constructor(e,i){super();U(this,"_position",this.disposeVar(c.reactArrayWithUndefined(void 0)));U(this,"_id",w8++);U(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 o=this._menuPoi=this.ad(new Ps(e.czmViewer));o.enabled=!1,this.ad(c.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??ei.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??ei.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 TS extends BS{constructor(n,e){super(n,e)}}class Pt extends ei{constructor(e){super(e);U(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new c.Event));U(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new Oi(e));i.enabled=!1,this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(c.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.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(o=>new TS(this,o)):[];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??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=c.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1,await o.promise(c.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new b8(this,r)));const A=a.disposer.disposeVar(new _8(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>A.do())),await a.promise(new Promise(h=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(d=>{d?(r++,h(!0)):h(!1)})),a.disposer.dispose(A.overEvent.disposableOnce(d=>{d?(r--,h(!0)):h(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))}))&&i.restart()});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...ei.createDefaultProps()})})(Pt||(Pt={})),c.extendClassProps(Pt.prototype,Pt.createDefaultProps);class b8 extends c.Destroyable{constructor(e,i){super();U(this,"_overEvent",this.disposeVar(new c.Event));const{placeEditing:o}=e;let r=new TS(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.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(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(c.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function x8(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 _8 extends c.Destroyable{constructor(e,i){super();U(this,"_overEvent",this.disposeVar(new c.Event));U(this,"_doEvent",this.disposeVar(new c.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(x8(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class IS extends Pt{constructor(n){super(n),this.loop=!1}}class kS extends Pt{constructor(n){super(n),this.loop=!0}}class Wd extends BS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",nt.baseImageUrl+"add.png"],["delete","删除当前控制点","",nt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",nt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new yi(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??nt.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 o=()=>{i.enabled=i.show=!1},r=()=>{var f;if(!(n.enabled??nt.defaults.enabled))return o();const s=n.editingPoints.indexOf(this),a=n.editingPoints,l=a.length;if(s===-1||l===0||!(n.loop??nt.defaults.loop)&&s+1>=l)return o();const u=this.position;if(!u)return o();const A=(f=a.get((s+1)%l))==null?void 0:f.position;if(!A)return o();const h=ff(u,A);if(!h)return o();h[2]-=n.czmViewer.editingHeightOffset??0,i.position=h;const d=l<(n.maxPointsNum??nt.defaults.maxPointsNum);i.enabled=i.show=d};r(),this.dispose(n.positionsChanged.disposableOn(r)),this.dispose(n.loopChanged.disposableOn(r)),this.dispose(n.enabledChanged.disposableOn(r))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??nt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new Wd(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class nt extends ei{constructor(e){super(e);U(this,"_menuPoiCommand",this.disposeVar(new c.Event));U(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));U(this,"_overEvent",this.disposeVar(new c.Event));U(this,"translationEditing");{const r=this.ad(c.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new c.ObjResettingWithEvent(r,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new C8(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new ur(e));i.enabled=!1;const o=async(r,s)=>{if((this.debug??nt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",s=await r.promise(c.step(r,async a=>{const l=a.disposer,u=l.ad(new S8(this));return l.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&u.modify(this.editingPoints.get(s===-1||s>=this.editingPoints.length?0:s)),l.dispose(this.cancelEvent.disposableOn(()=>u.cancel())),l.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>u.modify(h))),await a.promise(new Promise(h=>{l.dispose(u.overEvent.disposableOnce(d=>{h(d)}))}))})),s===-1)(this.debug??nt.defaults.debug)&&console.log("退出编辑状态");else{if(this.editingPoints.length>=(this.maxPointsNum??nt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??nt.defaults.loop;const l=this.editingPoints.get(s-1).position;if(!l)return;let u=s%this.editingPoints.length;const h=this.editingPoints.get(u).position;if(!h)return;const d=ff(l,h);if(!d)return;d&&(d[2]+=this.czmViewer.editingHeightOffset??0);let f=new Wd(this,d);this.editingPoints.splice(s,0,f),await o(r,s)}};this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async r=>{r.disposer.dispose(()=>{(this.debug??nt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),await o(r,-1),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(o=>new Wd(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...ei.createDefaultProps(),moveWithFirstPosition:!1})})(nt||(nt={})),c.extendClassProps(nt.prototype,nt.createDefaultProps);class C8 extends c.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class S8 extends c.Destroyable{constructor(e){super();U(this,"_overEvent",this.disposeVar(new c.Event));U(this,"_cancelEvent",this.disposeVar(new c.Event));U(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new E8(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),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 E8 extends c.Destroyable{constructor(e,i){super();U(this,"_overEvent",this.disposeVar(new c.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(c.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class FS extends nt{constructor(n){super(n),this.loop=!1}}class MS extends nt{constructor(n){super(n),this.loop=!0}}class Ua extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=c.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,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=c.geoHeading(this.startPosition,this.endPosition),o=c.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([90,0,0]),distance:c.react(1)})})(Ua||(Ua={})),c.extendClassProps(Ua.prototype,Ua.createDefaultProps);class as extends nt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=c.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,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=()=>{var a;if(!((a=this.positions)!=null&&a.length))return this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];if(this.startPosition=this.positions[0],this.positions.length==1)return this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",nt.baseImageUrl+"add.png"],["delete","删除当前控制点","",nt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",nt.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",nt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",nt.baseImageUrl+"modify.png"]];const i=c.geoDistance(this.startPosition,this.endPosition);if(Math.abs(i)<=0)return this.rotation=[90,0,0],this.distance=1;const o=c.geoHeading(this.startPosition,this.endPosition),r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/i)*180/Math.PI;this.rotation=[o,s,0],this.distance=Math.hypot(i,r)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...nt.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([0,0,0]),distance:c.react(0)})})(as||(as={})),c.extendClassProps(as.prototype,as.createDefaultProps);class DS extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class RS extends nt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Oa extends Pt{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(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new li(n));e.topOrBottom="bottom",this.ad(c.track([e,"color"],[this,"polylineColor"])),this.ad(c.track([e,"width"],[this,"polylineWidth"])),this.ad(c.track([e,"show"],[this,"polylineShow"])),this.ad(c.track([e,"arcType"],[this,"polylineArcType"])),this.ad(c.track([e,"loop"],[this,"loop"])),this.ad(c.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(Oa||(Oa={})),c.extendClassProps(Oa.prototype,Oa.createDefaultProps);class La extends nt{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(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new li(n));e.topOrBottom="bottom",this.ad(c.track([e,"color"],[this,"polylineColor"])),this.ad(c.track([e,"width"],[this,"polylineWidth"])),this.ad(c.track([e,"show"],[this,"polylineShow"])),this.ad(c.track([e,"arcType"],[this,"polylineArcType"])),this.ad(c.track([e,"loop"],[this,"loop"])),this.ad(c.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...nt.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(La||(La={})),c.extendClassProps(La.prototype,La.createDefaultProps);class US extends as{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 cn extends c.EngineObject{constructor(e,i,o){super(e,i,o??!0);U(this,"_currentEditing",this.disposeVar(c.react(void 0)));this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing)if(this.currentEditing instanceof Pt&&((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 this.currentEditing instanceof Oi&&this.currentEditing.enabled&&(e.position=[0,0,0])}))}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const rh=class rh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Oi(e));if(this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)})),Reflect.has(n,"position")){const o=n;this.ad(c.bind([i,"position"],[o,"position"])),i.enabled=!i.position||c.equalsN3(i.position,[0,0,0])}else throw new Error(`PlaceEditingWrapper:${n.typeName} 坐标属性无法绑定位置编辑`)}};U(rh,"type",rh.registerEditing("ESCesiumViewer",c.ESJEditingMode.Place,rh));let pv=rh;const oh=class oh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new pi(e));if(i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),n instanceof c.ES3DTileset)c.engineObjectCreatedUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(c.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(c.bind([i,"selfRotation"],[n,"rotation"])))});else if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){const o=n;this.ad(c.bind([i,"position"],[o,"position"])),this.ad(c.bind([i,"selfRotation"],[o,"rotation"]))}else throw new Error(`RotationEditingWrapper:${n.typeName} 旋转属性无法绑定旋转编辑`)}};U(oh,"type",oh.registerEditing("ESCesiumViewer",c.ESJEditingMode.Rotation,oh));let gv=oh;const sh=class sh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new cr(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"position")&&Reflect.has(n,"scale")){const o=n;this.ad(c.bind([i,"position"],[o,"position"])),this.ad(c.bind([i,"scale"],[o,"scale"]))}else throw new Error(`ScaleEditingWrapper:${n.typeName} 缩放属性无法绑定缩放编辑`)}};U(sh,"type",sh.registerEditing("ESCesiumViewer",c.ESJEditingMode.Scale,sh));let mv=sh;const ah=class ah extends cn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new ur(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=c.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=wn({originPosition:s},[r])[0][0];n.forEach(l=>{const u=l;if(Reflect.has(l,"position")){const A=wn({originPosition:s},[u.position])[0][0];u.position=Sr({originPosition:s},[[A[0]+a[0],A[1]+a[1],A[2]+a[2]]])[0][0]}else if(Reflect.has(u,"points")&&u.points){const A=wn({originPosition:s},u.points)[0];u.points=Sr({originPosition:s},A.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}))}else if(Reflect.has(n,"position"))this.ad(c.bind([i,"position"],[n,"position"]));else if(n instanceof c.ES3DTileset)c.engineObjectCreatedUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(c.bind([i,"position"],[o.czm3DTiles,"position"]))});else if(Reflect.has(n,"points")){const o=n;if(o.points===void 0||o.points.length===0){this.destroy();return}i.position=c.getMinMaxCorner(o.points).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(r===void 0||s===void 0||o.points===void 0||o.points.length===0){this.destroy();return}var a=wn({originPosition:s},[r])[0][0];const l=wn({originPosition:s},o.points)[0];o.points=Sr({originPosition:s},l.map(u=>[u[0]+a[0],u[1]+a[1],u[2]+a[2]]))[0]}))}else throw new Error(`TranslationEditingWrapper:${n.typeName} 坐标属性无法绑定平移编辑`)}};U(ah,"type",ah.registerEditing("ESCesiumViewer",c.ESJEditingMode.Translation,ah));let jd=ah;const lh=class lh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ua(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"position")){const o=n;if(this.ad(c.bind([i,"startPosition"],[o,"position"])),this.ad(Dt([i,"rotation"],[o,"rotation"])),Reflect.has(o,"far"))this.ad(c.bind([i,"distance"],[o,"far"]));else if(Reflect.has(o,"radius"))this.ad(c.bind([i,"distance"],[o,"radius"]));else if(Reflect.has(o,"distance"))this.ad(c.bind([i,"distance"],[o,"distance"]));else{const r=Ye(o.position);if(w.Cartesian3.ZERO.equals(r)||!e.viewer)return;i.distance=Ni(e.viewer.scene,r,100)??1}}else if(Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`DoublePointsAppendEditingWrapper:${n.typeName} 坐标属性无法绑定双点追加编辑`);i.startPosition&&!c.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};U(lh,"type",lh.registerEditing("ESCesiumViewer",c.ESJEditingMode.DoublePointsAppend,lh));let yv=lh;const uh=class uh extends cn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new as(e));if(Reflect.has(n,"position")){const r=n;if(this.ad(c.bind([i,"startPosition"],[r,"position"])),this.ad(Dt([i,"rotation"],[r,"rotation"])),Reflect.has(r,"far"))this.ad(c.bind([i,"distance"],[r,"far"]));else if(Reflect.has(r,"radius"))this.ad(c.bind([i,"distance"],[r,"radius"]));else if(Reflect.has(r,"distance"))this.ad(c.bind([i,"distance"],[r,"distance"]));else{const s=Ye(r.position);if(w.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Ni(e.viewer.scene,s,100)??1}}else if(Reflect.has(n,"points")){const r=n;if(r.points.length!=2)throw new Error(`DoublePointsModifyEditingWrapper:${n.typeName} 坐标属性无法绑定双点修改编辑`);i.moveWithFirstPosition=!1;const s=()=>i.positions=r.points??[];s(),this.ad(r.pointsChanged.don(()=>!i.enabled&&s())),this.ad(c.track([r,"points"],[i,"positions"]))}else throw new Error(`DoublePointsModifyEditingWrapper:${n.typeName} 坐标属性无法绑定双点修改编辑`);i.init(),i.enabled=!0;const o=this.ad(c.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||c.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};U(uh,"type",uh.registerEditing("ESCesiumViewer",c.ESJEditingMode.DoublePointsModify,uh));let vv=uh;const ch=class ch extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new kS(e));this.ad(i.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));const o=n;if(Reflect.has(o,"points")){const r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`CircularAppendEditingWrapper:${o.typeName} 坐标属性无法绑定环形追加编辑`)}};U(ch,"type",ch.registerEditing("ESCesiumViewer",c.ESJEditingMode.CircularAppend,ch));let wv=ch;const hh=class hh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new MS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`CircularInsertEditingWrapper:${n.typeName} 坐标属性无法绑定环形插值编辑`)}};U(hh,"type",hh.registerEditing("ESCesiumViewer",c.ESJEditingMode.CircularInsert,hh));let bv=hh;const Ah=class Ah extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new IS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`LineStringAppendEditingWrapper:${n.typeName} 坐标属性无法绑定线段追加编辑`)}};U(Ah,"type",Ah.registerEditing("ESCesiumViewer",c.ESJEditingMode.LineStringAppend,Ah));let xv=Ah;const dh=class dh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new FS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`LineStringInsertEditingWrapper:${n.typeName} 坐标属性无法绑定线段插入编辑`)}};U(dh,"type",dh.registerEditing("ESCesiumViewer",c.ESJEditingMode.LineStringInsert,dh));let _v=dh;const fh=class fh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new DS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`ScatterAppendEditingWrapper:${n.typeName} 坐标属性无法绑定散点追加编辑`)}};U(fh,"type",fh.registerEditing("ESCesiumViewer",c.ESJEditingMode.ScatterAppend,fh));let Cv=fh;const ph=class ph extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new RS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`ScatterModifyEditingWrapper:${n.typeName} 坐标属性无法绑定散点修改编辑`)}};U(ph,"type",ph.registerEditing("ESCesiumViewer",c.ESJEditingMode.ScatterModify,ph));let Sv=ph;const gh=class gh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Oa(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`VisibilityAppendEditingWrapper:${n.typeName} 坐标属性无法绑定可见性追加编辑`)}};U(gh,"type",gh.registerEditing("ESCesiumViewer",c.ESJEditingMode.VisibilityAppend,gh));let Ev=gh;const mh=class mh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new La(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`VisibilityModifyEditingWrapper:${n.typeName} 坐标属性无法绑定可见性修改编辑`)}};U(mh,"type",mh.registerEditing("ESCesiumViewer",c.ESJEditingMode.VisibilityModify,mh));let Pv=mh;const yh=class yh extends cn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new US(e));if(Reflect.has(n,"points")){const r=n,s=Reflect.has(r,"extrudedHeight"),a=Reflect.has(r,"height"),l=Reflect.has(r,"perPositionHeight")?r.perPositionHeight:!s,u=[c.ESClassification,c.ESPolygonFence,c.ESSunshineAnalysis].some(p=>r instanceof p);let A=c.getMinMaxCorner(r.points).center;A[2]=r.points[0][2];let h=[...A],d=u?r.points[0][2]:0;l?s?h[2]=r.extrudedHeight:h[2]=r.height+d:(a&&(A[2]=r.height),s&&(h[2]=r.extrudedHeight)),i.startPosition=A,i.distance=h[2]-A[2],i.moveWithFirstPosition=!1;let f=[...A];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(l?(r.points=r.points.map(p=>[p[0],p[1],p[2]+i.positions[0][2]-f[2]]),s?r.extrudedHeight=i.positions[1][2]:a&&(r.height=i.positions[1][2]-(u?i.positions[0][2]:0))):(a&&(r.height=i.positions[0][2]),s&&(r.extrudedHeight=i.positions[1][2])),f=[...i.positions[0]])}))}else throw new Error(`HeightModifyEditingWrapper:${n.typeName} 坐标属性无法绑定高度修改编辑`);i.init(),i.enabled=!0;const o=this.ad(c.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||c.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};U(yh,"type",yh.registerEditing("ESCesiumViewer",c.ESJEditingMode.HeightModify,yh));let Bv=yh;const Gt=class Gt extends c.Destroyable{constructor(e,i,o,r=!0){super();U(this,"editingModes",[]);U(this,"editingID");U(this,"useKeyToSwitch");U(this,"currentIndex",0);U(this,"currentEditingMode");U(this,"currentEditingWrapper");U(this,"_notSupportedEditCount",this.disposeVar(c.react(0)));U(this,"_onEditEnd",()=>{this._cleanupCurrentWrapper(),this.notSupportedEditCount<this.editingModes.length&&c.nextAnimateFrame(()=>this._createEditingMode(this.currentIndex+1))});this.czmViewer=e,this.sceneObject=i;const s=(Array.isArray(o)?o:[o]).filter(a=>i.supportEditingModes().includes(a));if(this.editingModes=s,this.editingID=i.editingID,this.useKeyToSwitch=r,this.editingModes.length)console.log("[ESEditMode] 可用的编辑模式",s);else{console.warn("[ESEditMode] 无可用的编辑模式");return}if(!this.useKeyToSwitch){const a=this.editingModes.indexOf(this.czmViewer.editingMode);a===-1&&(this.czmViewer.editingMode=this.editingModes[0]),this.currentIndex=Math.max(0,a)}this._bindEvents(),this._createEditingMode(this.currentIndex),this._emitEditingEvent("start",{modes:this.editingModes})}get notSupportedEditCount(){return this._notSupportedEditCount.value}set notSupportedEditCount(e){this._notSupportedEditCount.value=e}get notSupportedEditCountChanged(){return this._notSupportedEditCount.changed}_emitEditingEvent(e,i){this.czmViewer.editingEvent.emit({objectIDs:[this.sceneObject.parentID],editingID:this.editingID,type:e,add:i})}_bindEvents(){this.ad(this.sceneObject.toDestroyEvent.don(Gt.stop)),this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===Gt.KEY_ESCAPE&&Gt.stop())),this.ad(this.czmViewer.dblclickEvent.don(e=>{var i;return((i=e.pointerEvent)==null?void 0:i.button)===Gt.MOUSE_LEFT&&c.nextAnimateFrame(()=>{Gt.stop()})})),this.useKeyToSwitch?this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===Gt.KEY_SPACE&&this._onEditEnd())):this.czmViewer.editingModeChanged&&this.ad(this.czmViewer.editingModeChanged.don(()=>{this.czmViewer.editingMode!==void 0&&(this._cleanupCurrentWrapper(),c.nextAnimateFrame(()=>this._createEditingMode(Math.max(0,this.editingModes.indexOf(this.czmViewer.editingMode)))))})),this.ad(()=>this._cleanupCurrentWrapper()),this.ad(this.notSupportedEditCountChanged.don(()=>{this.notSupportedEditCount>=this.editingModes.length&&Gt.stop()}))}_cleanupCurrentWrapper(){this.currentEditingWrapper&&!this.currentEditingWrapper.isDestroyed()&&this.currentEditingWrapper.destroy(),this.currentEditingWrapper=void 0}_createEditingMode(e){if(this.editingModes.length){e>=this.editingModes.length&&(e=0),this.currentIndex=e,this.currentEditingMode=this.editingModes[e];try{const i=c.EngineObject.contextEditing.getEngineObjConstructor(this.currentEditingMode,this.czmViewer.typeName);if(!i){this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd();return}this.currentEditingWrapper=new i(this.sceneObject,this.czmViewer),this._emitEditingEvent("changed",{cMode:this.currentEditingMode,cIndex:e}),this.notSupportedEditCount=0}catch(i){this.useKeyToSwitch&&this.notSupportedEditCount++,console.error(`[ESEditMode] 创建编辑模式${this.currentEditingMode}失败`,i),this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd()}}}static create(e,i,o,r=!0){Gt.stop(),Gt.esEditModeInstance=new Gt(e,i,o,r)}static stop(){const e=Gt.esEditModeInstance;if(e&&!e.isDestroyed()){const{czmViewer:i,sceneObject:o,editingID:r,editingModes:s}=e;e.destroy(),i.editingMode=void 0,i.editingEvent.emit({objectIDs:[o.parentID],editingID:r,type:"end",add:{modes:s}})}Gt.esEditModeInstance=void 0}};U(Gt,"KEY_ESCAPE","Escape"),U(Gt,"KEY_SPACE","Space"),U(Gt,"MOUSE_LEFT",0),U(Gt,"esEditModeInstance");let Kd=Gt;function OS(){const t=c.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};n.disposer.ad(e.keyDownEvent.don(s));const a=new jd(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}class P8 extends c.Destroyable{constructor(n,e){super(),this._czmViewer=n,c.engineObjectCreatedUpdate(this,e,()=>{let i;const o=n.getEngineObject(e);e instanceof c.ESBoxClipping&&(i=o.czmBoxClippingPlanes),!(!i||!("computedClippingPlanes"in i)||!("computedClippingPlanesChanged"in i))&&(this.dispose(c.track([this._czmViewer,"sceneGlobeClippingPlanes"],[i,"computedClippingPlanes"])),this.dispose(()=>this._czmViewer.sceneGlobeClippingPlanes=void 0))})}}class B8 extends c.Destroyable{constructor(e){super();U(this,"_clippingPlanesSceneObjectWithId",this.disposeVar(new c.ESSceneObjectWithId));this.dispose(c.track([this._clippingPlanesSceneObjectWithId,"id"],[e,"sceneGlobeClippingPlanesId"])),this.disposeVar(new c.ObjResettingWithEvent(this._clippingPlanesSceneObjectWithId.sceneObjectChanged,()=>{const{sceneObject:i}=this._clippingPlanesSceneObjectWithId;if(i)return new P8(e,i)}))}}class T8 extends c.Destroyable{constructor(n){super(),this.dv(new c.ObjResettingWithEvent(n.sceneGlobeClippingPolygonsIdChanged,(e,i)=>{if(!(!e||e===i||e&&e.length===0))return new I8(n)}))}}class I8 extends c.Destroyable{constructor(n){super(),this._czmViewer=n,this.d(()=>this._czmViewer.sceneGlobeClippingPolygons=void 0);const e=this._czmViewer.sceneGlobeClippingPolygonsId,i=o=>{if(!o)return;const r=this.dv(c.createNextAnimateFrameEvent(o.positionsChanged,o.reverseChanged,o.enabledChanged,o.showHelperChanged));this.dv(new c.ObjResettingWithEvent(r,()=>{if(o)return new k8(n,o)}))};for(let o=0;o<e.length;o++){const r=e[o],s=c.ESSceneObject.getSceneObjById(r);if(!s)return;let a;s instanceof c.ESExcavate?c.engineObjectCreatedUpdate(this,s,()=>{a=n.getEngineObject(s).czmPolygonClipping,i(a)}):s instanceof c.ESHole&&c.engineObjectCreatedUpdate(this,s.excavate,()=>{a=n.getEngineObject(s.excavate).czmPolygonClipping,i(a)})}}}class k8 extends c.Destroyable{constructor(n,e){super(),this._czmViewer=n;const i=this._czmViewer.sceneGlobeClippingPolygonsId,o=e.enabled?e.reverse:void 0;if(i&&i.length>0){const r={polygons:[],enabled:!0,inverse:!1};for(let s=0;s<i.length;s++){const a=i[s],l=c.ESSceneObject.getSceneObjById(a);if(!l)return;let u;if(l instanceof c.ESExcavate?u=n.getEngineObject(l).czmPolygonClipping:l instanceof c.ESHole&&(u=n.getEngineObject(l.excavate).czmPolygonClipping),!u)return;u&&u.positions&&u.positions.length>=3&&u.enabled&&(r.polygons[s]={positions:u.positions},r.inverse=o??u.reverse)}this._czmViewer.sceneGlobeClippingPolygons=r}}}class F8 extends c.Destroyable{constructor(n,e){var s;super(),this._viewer=n;const i=(s=this._viewer.extensions)==null?void 0:s.pickingManager;if(!i)return;const{objectsToExclude:o}=i,r=Array.isArray(e)?[...e]:[e];for(const a of r){if(o.includes(a))throw new Error("objectsToExclude.includes(p)");o.push(a)}this.dispose(()=>{for(let a of r){const l=o.indexOf(a);if(l===-1)throw new Error("-1 === objectsToExclude.indexOf(p)");o.splice(l,1)}})}}class M8 extends c.Destroyable{constructor(e){var s;super();U(this,"_czmGlobeMaterial");this._czmViewer=e,this._czmGlobeMaterial=this.dv(new Go(e)),this._czmGlobeMaterial.show=!0;let i=Object.assign({},at.defaults.terrainShader,this._czmViewer.terrainShader),o=(s=this._czmViewer.viewer)==null?void 0:s.scene.preUpdate.addEventListener(()=>{var l;const a=i.elevationContour.show&&(((l=this._czmViewer.getCameraInfo())==null?void 0:l.position[2])??0)<=i.elevationContour.spacing*1e3;this._czmGlobeMaterial.enableContour!==a&&(this._czmGlobeMaterial.enableContour=a)});this.d(()=>{o&&o()});const r=()=>{i=Object.assign({},at.defaults.terrainShader,this._czmViewer.terrainShader),this._czmGlobeMaterial.shadingMode="none",i.aspect.show&&(this._czmGlobeMaterial.shadingMode="aspect"),i.slope.show&&(this._czmGlobeMaterial.shadingMode="slope"),i.elevationRamp.show&&(this._czmGlobeMaterial.shadingMode="elevation"),this._czmGlobeMaterial.contourSpacing=i.elevationContour.spacing,this._czmGlobeMaterial.contourWidth=i.elevationContour.width,this._czmGlobeMaterial.contourColor=i.elevationContour.color,this._czmGlobeMaterial.elevationParam={minHeight:i.elevationRamp.minHeight,maxHeight:i.elevationRamp.maxHeight,color:i.elevationRamp.color}};r(),this.d(this._czmViewer.terrainShaderChanged.don(r))}get czmGlobeMaterial(){return this._czmGlobeMaterial}}async function D8(t,n){const e={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,navigationInstructionsInitiallyVisible:!1,scene3DOnly:!0,...n??{}},i=new w.Viewer(t,e);return i.imageryLayers.removeAll(),i.extend(w.viewerCesiumInspectorMixin),i.cesiumInspector.container.style.display="none",i.extend(w.viewerCesium3DTilesInspectorMixin),i.cesium3DTilesInspector.container.style.display="none",i.cesium3DTilesInspector.viewModel.picking=!1,i.clock.currentTime=w.JulianDate.fromDate(new Date("2022-04-19T20:00:53.10067292911116965Z")),i.scene.screenSpaceCameraController.lookEventTypes=[{eventType:w.CameraEventType.RIGHT_DRAG}],i.scene.screenSpaceCameraController.zoomEventTypes=[w.CameraEventType.WHEEL,w.CameraEventType.PINCH,{eventType:w.CameraEventType.RIGHT_DRAG,modifier:w.KeyboardEventModifier.SHIFT}],i.scene.screenSpaceCameraController.tiltEventTypes=[w.CameraEventType.MIDDLE_DRAG,w.CameraEventType.PINCH,{eventType:w.CameraEventType.LEFT_DRAG,modifier:w.KeyboardEventModifier.CTRL},{eventType:w.CameraEventType.RIGHT_DRAG,modifier:w.KeyboardEventModifier.CTRL}],i.screenSpaceEventHandler.removeInputAction(w.ScreenSpaceEventType.LEFT_CLICK),i.screenSpaceEventHandler.removeInputAction(w.ScreenSpaceEventType.LEFT_DOUBLE_CLICK),i._cesiumWidget._creditContainer.style.display="none",i}function R8(){w.Cesium3DTile.prototype.updateTransform=function(t,n){t=t??w.Matrix4.IDENTITY;const e=w.Matrix4.multiplyTransformation(t,this.transform,new w.Matrix4),i=!w.Matrix4.equals(e,this.computedTransform),o=w.defined(n)&&(this._verticalExaggeration!==n.verticalExaggeration||this._verticalExaggerationRelativeHeight!==n.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&w.Matrix4.clone(e,this.computedTransform),o&&(this._verticalExaggeration=n.verticalExaggeration,this._verticalExaggerationRelativeHeight=n.verticalExaggerationRelativeHeight);const r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform),w.defined(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform)),w.defined(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()}}function U8(){Reflect.getOwnPropertyDescriptor(w.Camera.prototype,"_currentFlight")||Object.defineProperties(w.Camera.prototype,{_currentFlight:{get:function(){return this._vtxf_currentFlight},set:function(t){if(this._vtxf_currentFlight!==t){this._vtxf_currentFlight=t;var n=this._vtxf_currentFlight,e=t;this.currentFlightEvent.raiseEvent(e,n)}}},currentFlightEvent:{get:function(){return typeof this._vtxf_currentFlightEvent>"u"&&(this._vtxf_currentFlightEvent=new w.Event),this._vtxf_currentFlightEvent}}})}function O8(){const t=new w.Matrix4;function n(i,o){const r=i.positionWC;w.Matrix4.clone(i.transform,t),i.lookAtTransform(w.Matrix4.IDENTITY),i.look(r,o),i.lookAtTransform(t)}const e=Math.PI/60;w.Camera.prototype.lookLeft=function(i){i=i??e,this._mode!==w.SceneMode.SCENE2D&&n(this,-i)},w.Camera.prototype.lookRight=function(i){this.lookLeft(-i)}}function L8(){if(!w.DepthPlane.xbsjFixed){w.DepthPlane.xbsjFixed=!0;var t=w.DepthPlane.prototype.update;w.DepthPlane.prototype.update=function(){t.bind(this)(...arguments);var n=arguments[0];if(!this.hasXbsjIndexBuffer&&this._va){this.hasXbsjIndexBuffer=!0;var e=n.context,i=new w.Geometry({attributes:{position:new w.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:new Float32Array(15)})},indices:[0,1,4,1,3,4,3,2,4,2,0,4],primitiveType:w.PrimitiveType.TRIANGLES});this._va=w.VertexArray.fromGeometry({context:e,geometry:i,attributeLocations:{position:0},bufferUsage:w.BufferUsage.DYNAMIC_DRAW}),this._command.vertexArray=this._va}}}}function z8(t){const n=t.BoundingSphere,e=t.Cartesian3,i=t.defined,o=t.OrientedBoundingBox,r=t.Rectangle,s=t.TaskProcessor,a=t.TerrainData,l=t.TerrainEncoding,u=t.TerrainMesh,A=t.GoogleEarthEnterpriseTerrainData,h="createVerticesFromGoogleEarthEnterpriseBuffer",d=new s(h),f=new s(h,a.maximumAsynchronousTasks),p=new r,g=new r;A.prototype.createMesh=function(v){v=v??$e.Frozen.EMPTY_OBJECT;const y=v.tilingScheme,m=v.x,_=v.y,x=v.level,E=v.exaggeration??1,B=v.exaggerationRelativeHeight??0,P=v.throttle??!0,I=y.ellipsoid;y.tileXYToNativeRectangle(m,_,x,p),y.tileXYToRectangle(m,_,x,g);const M=I.cartographicToCartesian(r.center(g));this._skirtHeight=1.9134410999999999e6;const S=(P?f:d).scheduleTask({buffer:this._buffer,nativeRectangle:p,rectangle:r.clone(g),relativeToCenter:M,ellipsoid:I,skirtHeight:this._skirtHeight,exaggeration:E,exaggerationRelativeHeight:B,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!i(S))return;const T=this;return S.then(function(b){return T._mesh=new u(M,new Float32Array(b.vertices),new Uint16Array(b.indices),b.indexCountWithoutSkirts,b.vertexCountWithoutSkirts,b.minimumHeight,b.maximumHeight,n.clone(b.boundingSphere3D),e.clone(b.occludeePointInScaledSpace),b.numberOfAttributes,o.clone(b.orientedBoundingBox),l.clone(b.encoding),b.westIndicesSouthToNorth,b.southIndicesEastToWest,b.eastIndicesNorthToSouth,b.northIndicesWestToEast),T._minimumHeight=b.minimumHeight,T._maximumHeight=b.maximumHeight,T._buffer=void 0,T._mesh})}}function Q8(){return w.VERSION.split(".").map(n=>parseInt(n))}let Tv;function V8(){return Tv||(Tv=Q8()),Tv}function H8(){const t=V8();t[0]===1&&t[1]>=92?z8(w):console.warn(`don't need to fixGoogleEarth, cesium version is ${t.join(".")}`)}function N8(){const t=w.Resource.prototype.fetchJson,n=w.Resource.prototype.fetchArrayBuffer;w.Resource.prototype.fetchJson=function(...e){if(this.url.startsWith(`https://${c.defaultLocalFileServer.prefix}`)){const i=this.url.substring(8);return c.defaultLocalFileServer.getJson(i)}else return t.call(this,...e)},w.Resource.prototype.fetchArrayBuffer=function(...e){if(this.url.startsWith(`https://${c.defaultLocalFileServer.prefix}`)){const i=this.url.substring(8);return c.defaultLocalFileServer.getArrayBuffer(i).then(o=>{if(!o)throw new Error("result is undefined!");return o})}else return n.call(this,...e)}}function G8(){const t=w.ModelSceneGraph.prototype.buildDrawCommands;w.ModelSceneGraph.prototype.buildDrawCommands=function(...n){const e=this._model,i=e.modelMatrix;e.modelMatrix=w.Matrix4.IDENTITY;const o=t.call(this,...n);return e.modelMatrix=i,o}}function W8(){const t=w.ShaderSource._czmBuiltinsAndUniforms;t.czm_materialInput.indexOf("vec4 color")===-1&&(t.czm_materialInput=t.czm_materialInput.replace("float aspect;","float aspect; vec4 color;"))}const j8=`#ifdef GL_OES_standard_derivatives
3776
+ `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},ut,t)}class v8 extends c.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{const s=this._getStartInfo(r.pointerEvent);if(s&&s.currentPlaneType!=="none"){const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[pi.rotationNum[a]]=0,this.owner.selfRotation=l;return}this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(c.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=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:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:u}=i;if(u==="none")return;const A=this.owner.getPlane(u);if(!i.currentV)return;const h=A.pick(l);if(!h||!this.owner.cartesian)return;const d=w.Cartesian3.subtract(i.currentV,this.owner.cartesian,new w.Cartesian3);w.Cartesian3.normalize(d,d);const f=w.Cartesian3.subtract(h,this.owner.cartesian,new w.Cartesian3);if(w.Cartesian3.normalize(f,f),!A.normal||!A.origin)return;const p=fv(d,f,A.normal),g=fv(A.origin,d,A.normal),v=fv(A.origin,f,A.normal);{const y=[...this.owner.selfRotation];y[pi.rotationNum[u]]=i.startRotation+p,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await c.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const u=w.Cartesian3.distance(s,l),A=r/4,h=A*3/128;if(!(u>=A-h&&u<=A+h))return;const f=w.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=f||(n.currentPlaneType=i,n.currentD2c=f,n.currentV=l,n.startRotation=a[pi.rotationNum[i]])}_getStartInfo(n){var A;const{czmViewer:e}=this.owner,i=(A=e.viewer)==null?void 0:A.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Ni(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",a,o),this._pickPlane(u,i,"pitch",a,o),this._pickPlane(u,i,"roll",a,o),u}}function fv(t,n,e){const i=w.Cartesian3.cross(n,t,new w.Cartesian3);if(i.equals(w.Cartesian3.ZERO))return 0;w.Cartesian3.normalize(i,i);const o=w.Cartesian3.dot(i,e);let r=Math.acos(w.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const gs=class gs extends zn{constructor(e){super();U(this,"_hoveredPlaneType",this.disposeVar(c.react("none")));U(this,"_movingPlaneType",this.disposeVar(c.react("none")));U(this,"_circles");U(this,"_czmCameraModel");U(this,"_cartesian");U(this,"_planes",{heading:this.disposeVar(new f8(this)),pitch:this.disposeVar(new p8(this)),roll:this.disposeVar(new g8(this))});U(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new c.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new v8(this)})),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&&Ye(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 jt(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(c.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(c.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(c.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=lt({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=w.Matrix4.toArray(o))};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 o=this.ad(new Ra(e));this.dispose(c.track([o,"position"],[this,"position"])),this.dispose(c.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(c.track([o,"debug"],[this,"debug"])),this.dispose(c.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=gs.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[gs.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,u=[0,0,0,s||a?1:.8];u[gs.rotationNum[i]]=1,o.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};U(gs,"rotationNum",{heading:0,pitch:1,roll:2}),U(gs,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let pi=gs;(t=>{t.createDefaultProps=()=>({...zn.createDefaultProps(),rotation:c.reactArray([0,0,0]),selfRotation:c.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(pi||(pi={})),c.extendClassProps(pi.prototype,pi.createDefaultProps);const ms=class ms extends c.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??ms.defaults.positions[0],this.stopPosition??ms.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??ms.defaults.positions[0],n??ms.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new Wn(n,e));this.ad(c.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(c.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};U(ms,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let ss=ms;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:c.reactPositions(t.defaults.positions),width:10,color:c.reactArray([1,0,0,1])})})(ss||(ss={})),c.extendClassProps(ss.prototype,ss.createDefaultProps);class cr extends zn{constructor(e){super();U(this,"_lastPosition");U(this,"_opInfo",{step:this.ad(c.react(!1)),moved:this.ad(c.react(!1)),constraintMode:this.disposeVar(c.react("none")),originPosition:this.disposeVar(c.reactArray([0,0,0])),originHeading:this.disposeVar(c.react(0)),originDimensions:this.disposeVar(c.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(c.reactArray([0,0,0])),movingPosition:this.disposeVar(c.reactArray([0,0,0])),targetPosition:this.disposeVar(c.reactArray([0,0,0])),targetHeading:this.disposeVar(c.react(0))});U(this,"_scaleAxis");U(this,"_pickingXYProcessing",e=>this.disposeVar(new c.Processing((i,o,r)=>{const s=[0,0,0],a=new w.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=oi(c.getDomEventCurrentTargetPos(l.pointerEvent));if(!vs(e.viewer.scene,u,this._opInfo.originPosition.value[2],a))return;mo(a,s),this._opInfo.constraintMode.value==="x"?vo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?vo(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const A=[0,0,0];c.geoRhumbDestination(s,r,o,A),this._opInfo.targetPosition.value=A;let h=this.scale[0],d=this.scale[1];const f=c.geoDistance(A,this._opInfo.originPosition.value)-c.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...A];const p=this._opInfo.originDimensions.value[0]/100;f!=0&&this._opInfo.constraintMode.value==="y"&&(f>0?h+=p:h-=p),f!=0&&this._opInfo.constraintMode.value==="x"&&(f>0?d+=p:d-=p),h<=0&&(h+=p),d<=0&&(d+=p),this.scale=[h??1,d??1,this.scale[2]??1]})})));U(this,"_pickingZProcessing",e=>this.disposeVar(new c.Processing(()=>{const i=new w.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=oi(c.getDomEventCurrentTargetPos(r.pointerEvent));if(!Ch(e.viewer.scene,Ye(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Me(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let u=this.scale[2];const A=o[2]-this._lastPosition[2];this._lastPosition=[...o];const h=this._opInfo.originDimensions.value[0]/100;A!=0&&(A>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:o}=i;this.ad(new xf(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 r=()=>{if(!this._scaleAxis)return;const{zAxis:s,yAxis:a,xAxis:l}=this._scaleAxis,u=this._opInfo.constraintMode.value,A=this._opInfo.step;s.color=[0,0,1,.99],a.color=[0,1,0,.99],l.color=[1,0,0,.99],u==="x"?l.color=A?[1,1,0,.8]:[1,1,0,.99]:u==="y"?a.color=A?[1,1,0,.8]:[1,1,0,.99]:u==="z"&&(s.color=A?[1,1,0,.8]:[1,1,0,.99])};r(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(r)),this.dispose(this._opInfo.step.changed.disposableOn(r))}{const r=()=>{if(!this._scaleAxis)return;const{position:a=cr.defaults.position}=this,{zAxis:l,yAxis:u,xAxis:A}=this._scaleAxis;l.startPosition=u.startPosition=A.startPosition=a;const[h,d,f]=a;l.stopPosition=[h,d,f+this._opInfo.originDimensions.value[2]];const p=c.geoRhumbDestination(a,this._opInfo.originDimensions.value[0],90);p&&(A.stopPosition=p);const g=c.geoRhumbDestination(a,this._opInfo.originDimensions.value[1],0);g&&(u.stopPosition=g)};r();const s=this.ad(c.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(s.don(r))}{const r=()=>{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((s,a)=>s===this._opInfo.targetPosition.value[a])){this._opInfo.moved.value=!0;return}};r(),this.dispose(this._opInfo.originHeading.changed.disposableOn(r)),this.dispose(this._opInfo.originPosition.changed.disposableOn(r)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(r)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(r))}{const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=()=>{const d=[...this.position??cr.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d},l={constraintMode:"none",startDragPos:[0,0,0]},u=d=>{if(!this.position)return;const f={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};cf(d,o,f,this.axisSnapPixelSize,l),this._opInfo.constraintMode.value=l.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=l.startDragPos},A=this.disposeVar(c.createProcessingFromAsyncFunc(async d=>{this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",d.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await c.step(d,async f=>{f.disposer.dispose((a(),this.positionChanged.disposableOn(a))),f.disposer.dispose(e.pointerMoveEvent.disposableOn(p=>{p.pointerEvent&&u(p.pointerEvent)})),await c.step(f,p=>new Promise((g,v)=>{p.disposer.dispose(v),p.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&u(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&l.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await c.step(d,async f=>{if(e.incrementDisabledInputStack(),f.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const p=c.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),g=c.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,p,g),f.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),f.disposer.dispose(()=>s.cancel()));await c.step(f,p=>new Promise((g,v)=>{p.disposer.dispose(v),p.disposer.dispose(e.pointerUpEvent.don(()=>{g()})),p.disposer.dispose(e.pointerOutEvent.don(()=>{g()}))})),this._lastPosition=void 0}),A.restart()})),h=()=>{this.enabled?A.restart():A.isRunning&&A.cancel()};h(),this.dispose(this.enabledChanged.disposableOn(h))}}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new ss(e));return o.width=10,this.ad(c.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...zn.createDefaultProps(),scale:c.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(cr||(cr={})),c.extendClassProps(cr.prototype,cr.createDefaultProps);const go=class go extends kn{constructor(e){super();U(this,"_editingPoints",this.disposeVar(new c.ObservableArray));U(this,"_cancelEvent",this.disposeVar(new c.Event));U(this,"_currentProcess");U(this,"_menuPoiEnabled",this.disposeVar(c.react(!1)));U(this,"_status",this.disposeVar(c.react("None")));U(this,"_positionsChanged",this.ad(new c.Event));U(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:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).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(()=>{var o;((o=i.pointerEvent)==null?void 0:o.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??go.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??go.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 Je(e));this.ad(c.track([i,"color"],[this,"polylineColor"])),this.ad(c.track([i,"width"],[this,"polylineWidth"])),this.ad(c.track([i,"show"],[this,"polylineShow"])),this.ad(c.track([i,"arcType"],[this,"polylineArcType"])),this.ad(c.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new c.CursorInfo(e.container,c.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};U(go,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),U(go,"defaults",{...kn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:go.baseImageUrl+"point-green.png",otherControlPointImageUrl:go.baseImageUrl+"point-yellow.png"});let ei=go;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:c.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})})(ei||(ei={})),c.extendClassProps(ei.prototype,ei.createDefaultProps);let w8=0;class BS extends c.Destroyable{constructor(e,i){super();U(this,"_position",this.disposeVar(c.reactArrayWithUndefined(void 0)));U(this,"_id",w8++);U(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 o=this._menuPoi=this.ad(new Ps(e.czmViewer));o.enabled=!1,this.ad(c.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??ei.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??ei.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 TS extends BS{constructor(n,e){super(n,e)}}class Pt extends ei{constructor(e){super(e);U(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new c.Event));U(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new Oi(e));i.enabled=!1,this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(c.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.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(o=>new TS(this,o)):[];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??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=c.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1,await o.promise(c.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new b8(this,r)));const A=a.disposer.disposeVar(new _8(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>A.do())),await a.promise(new Promise(h=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(d=>{d?(r++,h(!0)):h(!1)})),a.disposer.dispose(A.overEvent.disposableOnce(d=>{d?(r--,h(!0)):h(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))}))&&i.restart()});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...ei.createDefaultProps()})})(Pt||(Pt={})),c.extendClassProps(Pt.prototype,Pt.createDefaultProps);class b8 extends c.Destroyable{constructor(e,i){super();U(this,"_overEvent",this.disposeVar(new c.Event));const{placeEditing:o}=e;let r=new TS(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.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(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(c.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function x8(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 _8 extends c.Destroyable{constructor(e,i){super();U(this,"_overEvent",this.disposeVar(new c.Event));U(this,"_doEvent",this.disposeVar(new c.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(x8(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class IS extends Pt{constructor(n){super(n),this.loop=!1}}class kS extends Pt{constructor(n){super(n),this.loop=!0}}class Wd extends BS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",nt.baseImageUrl+"add.png"],["delete","删除当前控制点","",nt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",nt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new yi(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??nt.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 o=()=>{i.enabled=i.show=!1},r=()=>{var f;if(!(n.enabled??nt.defaults.enabled))return o();const s=n.editingPoints.indexOf(this),a=n.editingPoints,l=a.length;if(s===-1||l===0||!(n.loop??nt.defaults.loop)&&s+1>=l)return o();const u=this.position;if(!u)return o();const A=(f=a.get((s+1)%l))==null?void 0:f.position;if(!A)return o();const h=ff(u,A);if(!h)return o();h[2]-=n.czmViewer.editingHeightOffset??0,i.position=h;const d=l<(n.maxPointsNum??nt.defaults.maxPointsNum);i.enabled=i.show=d};r(),this.dispose(n.positionsChanged.disposableOn(r)),this.dispose(n.loopChanged.disposableOn(r)),this.dispose(n.enabledChanged.disposableOn(r))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??nt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new Wd(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class nt extends ei{constructor(e){super(e);U(this,"_menuPoiCommand",this.disposeVar(new c.Event));U(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));U(this,"_overEvent",this.disposeVar(new c.Event));U(this,"translationEditing");{const r=this.ad(c.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new c.ObjResettingWithEvent(r,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new C8(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new ur(e));i.enabled=!1;const o=async(r,s)=>{if((this.debug??nt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",s=await r.promise(c.step(r,async a=>{const l=a.disposer,u=l.ad(new S8(this));return l.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&u.modify(this.editingPoints.get(s===-1||s>=this.editingPoints.length?0:s)),l.dispose(this.cancelEvent.disposableOn(()=>u.cancel())),l.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>u.modify(h))),await a.promise(new Promise(h=>{l.dispose(u.overEvent.disposableOnce(d=>{h(d)}))}))})),s===-1)(this.debug??nt.defaults.debug)&&console.log("退出编辑状态");else{if(this.editingPoints.length>=(this.maxPointsNum??nt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??nt.defaults.loop;const l=this.editingPoints.get(s-1).position;if(!l)return;let u=s%this.editingPoints.length;const h=this.editingPoints.get(u).position;if(!h)return;const d=ff(l,h);if(!d)return;d&&(d[2]+=this.czmViewer.editingHeightOffset??0);let f=new Wd(this,d);this.editingPoints.splice(s,0,f),await o(r,s)}};this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async r=>{r.disposer.dispose(()=>{(this.debug??nt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),await o(r,-1),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(o=>new Wd(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...ei.createDefaultProps(),moveWithFirstPosition:!1})})(nt||(nt={})),c.extendClassProps(nt.prototype,nt.createDefaultProps);class C8 extends c.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class S8 extends c.Destroyable{constructor(e){super();U(this,"_overEvent",this.disposeVar(new c.Event));U(this,"_cancelEvent",this.disposeVar(new c.Event));U(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new E8(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),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 E8 extends c.Destroyable{constructor(e,i){super();U(this,"_overEvent",this.disposeVar(new c.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(c.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class FS extends nt{constructor(n){super(n),this.loop=!1}}class MS extends nt{constructor(n){super(n),this.loop=!0}}class Ua extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=c.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,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=c.geoHeading(this.startPosition,this.endPosition),o=c.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([90,0,0]),distance:c.react(1)})})(Ua||(Ua={})),c.extendClassProps(Ua.prototype,Ua.createDefaultProps);class as extends nt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=c.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,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=()=>{var a;if(!((a=this.positions)!=null&&a.length))return this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];if(this.startPosition=this.positions[0],this.positions.length==1)return this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",nt.baseImageUrl+"add.png"],["delete","删除当前控制点","",nt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",nt.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",nt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",nt.baseImageUrl+"modify.png"]];const i=c.geoDistance(this.startPosition,this.endPosition);if(Math.abs(i)<=0)return this.rotation=[90,0,0],this.distance=1;const o=c.geoHeading(this.startPosition,this.endPosition),r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/i)*180/Math.PI;this.rotation=[o,s,0],this.distance=Math.hypot(i,r)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...nt.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([0,0,0]),distance:c.react(0)})})(as||(as={})),c.extendClassProps(as.prototype,as.createDefaultProps);class DS extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class RS extends nt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Oa extends Pt{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(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new li(n));e.topOrBottom="bottom",this.ad(c.track([e,"color"],[this,"polylineColor"])),this.ad(c.track([e,"width"],[this,"polylineWidth"])),this.ad(c.track([e,"show"],[this,"polylineShow"])),this.ad(c.track([e,"arcType"],[this,"polylineArcType"])),this.ad(c.track([e,"loop"],[this,"loop"])),this.ad(c.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(Oa||(Oa={})),c.extendClassProps(Oa.prototype,Oa.createDefaultProps);class La extends nt{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(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new li(n));e.topOrBottom="bottom",this.ad(c.track([e,"color"],[this,"polylineColor"])),this.ad(c.track([e,"width"],[this,"polylineWidth"])),this.ad(c.track([e,"show"],[this,"polylineShow"])),this.ad(c.track([e,"arcType"],[this,"polylineArcType"])),this.ad(c.track([e,"loop"],[this,"loop"])),this.ad(c.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...nt.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(La||(La={})),c.extendClassProps(La.prototype,La.createDefaultProps);class US extends as{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 cn extends c.EngineObject{constructor(e,i,o){super(e,i,o??!0);U(this,"_currentEditing",this.disposeVar(c.react(void 0)));this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing)if(this.currentEditing instanceof Pt&&((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 this.currentEditing instanceof Oi&&this.currentEditing.enabled&&(e.position=[0,0,0])}))}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const rh=class rh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Oi(e));if(this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)})),Reflect.has(n,"position")){const o=n;this.ad(c.bind([i,"position"],[o,"position"])),i.enabled=!i.position||c.equalsN3(i.position,[0,0,0])}else throw new Error(`PlaceEditingWrapper:${n.typeName} 坐标属性无法绑定位置编辑`)}};U(rh,"type",rh.registerEditing("ESCesiumViewer",c.ESJEditingMode.Place,rh));let pv=rh;const oh=class oh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new pi(e));if(i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),n instanceof c.ES3DTileset)c.engineObjectCreatedUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(c.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(c.bind([i,"selfRotation"],[n,"rotation"])))});else if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){const o=n;this.ad(c.bind([i,"position"],[o,"position"])),this.ad(c.bind([i,"selfRotation"],[o,"rotation"]))}else throw new Error(`RotationEditingWrapper:${n.typeName} 旋转属性无法绑定旋转编辑`)}};U(oh,"type",oh.registerEditing("ESCesiumViewer",c.ESJEditingMode.Rotation,oh));let gv=oh;const sh=class sh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new cr(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"position")&&Reflect.has(n,"scale")){const o=n;this.ad(c.bind([i,"position"],[o,"position"])),this.ad(c.bind([i,"scale"],[o,"scale"]))}else throw new Error(`ScaleEditingWrapper:${n.typeName} 缩放属性无法绑定缩放编辑`)}};U(sh,"type",sh.registerEditing("ESCesiumViewer",c.ESJEditingMode.Scale,sh));let mv=sh;const ah=class ah extends cn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new ur(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=c.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=wn({originPosition:s},[r])[0][0];n.forEach(l=>{const u=l;if(Reflect.has(l,"position")){const A=wn({originPosition:s},[u.position])[0][0];u.position=Sr({originPosition:s},[[A[0]+a[0],A[1]+a[1],A[2]+a[2]]])[0][0]}else if(Reflect.has(u,"points")&&u.points){const A=wn({originPosition:s},u.points)[0];u.points=Sr({originPosition:s},A.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}))}else if(Reflect.has(n,"position"))this.ad(c.bind([i,"position"],[n,"position"]));else if(n instanceof c.ES3DTileset)c.engineObjectCreatedUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(c.bind([i,"position"],[o.czm3DTiles,"position"]))});else if(Reflect.has(n,"points")){const o=n;if(o.points===void 0||o.points.length===0){this.destroy();return}i.position=c.getMinMaxCorner(o.points).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(r===void 0||s===void 0||o.points===void 0||o.points.length===0){this.destroy();return}var a=wn({originPosition:s},[r])[0][0];const l=wn({originPosition:s},o.points)[0];o.points=Sr({originPosition:s},l.map(u=>[u[0]+a[0],u[1]+a[1],u[2]+a[2]]))[0]}))}else throw new Error(`TranslationEditingWrapper:${n.typeName} 坐标属性无法绑定平移编辑`)}};U(ah,"type",ah.registerEditing("ESCesiumViewer",c.ESJEditingMode.Translation,ah));let jd=ah;const lh=class lh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ua(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"position")){const o=n;if(this.ad(c.bind([i,"startPosition"],[o,"position"])),this.ad(Dt([i,"rotation"],[o,"rotation"])),Reflect.has(o,"far"))this.ad(c.bind([i,"distance"],[o,"far"]));else if(Reflect.has(o,"radius"))this.ad(c.bind([i,"distance"],[o,"radius"]));else if(Reflect.has(o,"distance"))this.ad(c.bind([i,"distance"],[o,"distance"]));else{const r=Ye(o.position);if(w.Cartesian3.ZERO.equals(r)||!e.viewer)return;i.distance=Ni(e.viewer.scene,r,100)??1}}else if(Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`DoublePointsAppendEditingWrapper:${n.typeName} 坐标属性无法绑定双点追加编辑`);i.startPosition&&!c.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};U(lh,"type",lh.registerEditing("ESCesiumViewer",c.ESJEditingMode.DoublePointsAppend,lh));let yv=lh;const uh=class uh extends cn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new as(e));if(Reflect.has(n,"position")){const r=n;if(this.ad(c.bind([i,"startPosition"],[r,"position"])),this.ad(Dt([i,"rotation"],[r,"rotation"])),Reflect.has(r,"far"))this.ad(c.bind([i,"distance"],[r,"far"]));else if(Reflect.has(r,"radius"))this.ad(c.bind([i,"distance"],[r,"radius"]));else if(Reflect.has(r,"distance"))this.ad(c.bind([i,"distance"],[r,"distance"]));else{const s=Ye(r.position);if(w.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Ni(e.viewer.scene,s,100)??1}}else if(Reflect.has(n,"points")){const r=n;if(r.points.length!=2)throw new Error(`DoublePointsModifyEditingWrapper:${n.typeName} 坐标属性无法绑定双点修改编辑`);i.moveWithFirstPosition=!1;const s=()=>i.positions=r.points??[];s(),this.ad(r.pointsChanged.don(()=>!i.enabled&&s())),this.ad(c.track([r,"points"],[i,"positions"]))}else throw new Error(`DoublePointsModifyEditingWrapper:${n.typeName} 坐标属性无法绑定双点修改编辑`);i.init(),i.enabled=!0;const o=this.ad(c.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||c.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};U(uh,"type",uh.registerEditing("ESCesiumViewer",c.ESJEditingMode.DoublePointsModify,uh));let vv=uh;const ch=class ch extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new kS(e));this.ad(i.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));const o=n;if(Reflect.has(o,"points")){const r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`CircularAppendEditingWrapper:${o.typeName} 坐标属性无法绑定环形追加编辑`)}};U(ch,"type",ch.registerEditing("ESCesiumViewer",c.ESJEditingMode.CircularAppend,ch));let wv=ch;const hh=class hh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new MS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`CircularInsertEditingWrapper:${n.typeName} 坐标属性无法绑定环形插值编辑`)}};U(hh,"type",hh.registerEditing("ESCesiumViewer",c.ESJEditingMode.CircularInsert,hh));let bv=hh;const Ah=class Ah extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new IS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`LineStringAppendEditingWrapper:${n.typeName} 坐标属性无法绑定线段追加编辑`)}};U(Ah,"type",Ah.registerEditing("ESCesiumViewer",c.ESJEditingMode.LineStringAppend,Ah));let xv=Ah;const dh=class dh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new FS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`LineStringInsertEditingWrapper:${n.typeName} 坐标属性无法绑定线段插入编辑`)}};U(dh,"type",dh.registerEditing("ESCesiumViewer",c.ESJEditingMode.LineStringInsert,dh));let _v=dh;const fh=class fh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new DS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`ScatterAppendEditingWrapper:${n.typeName} 坐标属性无法绑定散点追加编辑`)}};U(fh,"type",fh.registerEditing("ESCesiumViewer",c.ESJEditingMode.ScatterAppend,fh));let Cv=fh;const ph=class ph extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new RS(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`ScatterModifyEditingWrapper:${n.typeName} 坐标属性无法绑定散点修改编辑`)}};U(ph,"type",ph.registerEditing("ESCesiumViewer",c.ESJEditingMode.ScatterModify,ph));let Sv=ph;const gh=class gh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Oa(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`VisibilityAppendEditingWrapper:${n.typeName} 坐标属性无法绑定可见性追加编辑`)}};U(gh,"type",gh.registerEditing("ESCesiumViewer",c.ESJEditingMode.VisibilityAppend,gh));let Ev=gh;const mh=class mh extends cn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new La(e));if(this.ad(i.enabledChanged.don(o=>{!o&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(n,"points")){const o=n,r=()=>i.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!i.enabled&&r())),i.enabled=!0,this.ad(c.track([o,"points"],[i,"positions"]))}else throw new Error(`VisibilityModifyEditingWrapper:${n.typeName} 坐标属性无法绑定可见性修改编辑`)}};U(mh,"type",mh.registerEditing("ESCesiumViewer",c.ESJEditingMode.VisibilityModify,mh));let Pv=mh;const yh=class yh extends cn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new US(e));if(Reflect.has(n,"points")){const r=n,s=Reflect.has(r,"extrudedHeight"),a=Reflect.has(r,"height"),l=Reflect.has(r,"perPositionHeight")?r.perPositionHeight:!s,u=[c.ESClassification,c.ESPolygonFence,c.ESSunshineAnalysis].some(p=>r instanceof p);let A=c.getMinMaxCorner(r.points).center;A[2]=r.points[0][2];let h=[...A],d=u?r.points[0][2]:0;l?s?h[2]=r.extrudedHeight:h[2]=r.height+d:(a&&(A[2]=r.height),s&&(h[2]=r.extrudedHeight)),i.startPosition=A,i.distance=h[2]-A[2],i.moveWithFirstPosition=!1;let f=[...A];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(l?(r.points=r.points.map(p=>[p[0],p[1],p[2]+i.positions[0][2]-f[2]]),s?r.extrudedHeight=i.positions[1][2]:a&&(r.height=i.positions[1][2]-(u?i.positions[0][2]:0))):(a&&(r.height=i.positions[0][2]),s&&(r.extrudedHeight=i.positions[1][2])),f=[...i.positions[0]])}))}else throw new Error(`HeightModifyEditingWrapper:${n.typeName} 坐标属性无法绑定高度修改编辑`);i.init(),i.enabled=!0;const o=this.ad(c.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||c.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};U(yh,"type",yh.registerEditing("ESCesiumViewer",c.ESJEditingMode.HeightModify,yh));let Bv=yh;const Gt=class Gt extends c.Destroyable{constructor(e,i,o,r=!0){super();U(this,"editingModes",[]);U(this,"editingID");U(this,"useKeyToSwitch");U(this,"currentIndex",0);U(this,"currentEditingMode");U(this,"currentEditingWrapper");U(this,"_notSupportedEditCount",this.disposeVar(c.react(0)));U(this,"_onEditEnd",()=>{this._cleanupCurrentWrapper(),this.notSupportedEditCount<this.editingModes.length&&c.nextAnimateFrame(()=>this._createEditingMode(this.currentIndex+1))});this.czmViewer=e,this.sceneObject=i;const s=(Array.isArray(o)?o:[o]).filter(a=>i.supportEditingModes().includes(a));if(this.editingModes=s,this.editingID=i.editingID,this.useKeyToSwitch=r,this.editingModes.length)console.log("[ESEditMode] 可用的编辑模式",s);else{console.warn("[ESEditMode] 无可用的编辑模式");return}if(!this.useKeyToSwitch){const a=this.editingModes.indexOf(this.czmViewer.editingMode);a===-1&&(this.czmViewer.editingMode=this.editingModes[0]),this.currentIndex=Math.max(0,a)}this._bindEvents(),this._createEditingMode(this.currentIndex),this._emitEditingEvent("start",{modes:this.editingModes})}get notSupportedEditCount(){return this._notSupportedEditCount.value}set notSupportedEditCount(e){this._notSupportedEditCount.value=e}get notSupportedEditCountChanged(){return this._notSupportedEditCount.changed}_emitEditingEvent(e,i){this.czmViewer.editingEvent.emit({objectIDs:[this.sceneObject.parentID],editingID:this.editingID,type:e,add:i})}_bindEvents(){this.ad(this.sceneObject.toDestroyEvent.don(Gt.stop)),this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===Gt.KEY_ESCAPE&&Gt.stop())),this.ad(this.czmViewer.dblclickEvent.don(e=>{var i;return((i=e.pointerEvent)==null?void 0:i.button)===Gt.MOUSE_LEFT&&c.nextAnimateFrame(()=>{Gt.stop()})})),this.useKeyToSwitch?this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===Gt.KEY_SPACE&&this._onEditEnd())):this.czmViewer.editingModeChanged&&this.ad(this.czmViewer.editingModeChanged.don(()=>{this._cleanupCurrentWrapper(),this.czmViewer.editingMode!==void 0&&c.nextAnimateFrame(()=>this._createEditingMode(Math.max(0,this.editingModes.indexOf(this.czmViewer.editingMode))))})),this.ad(()=>this._cleanupCurrentWrapper()),this.ad(this.notSupportedEditCountChanged.don(()=>{this.notSupportedEditCount>=this.editingModes.length&&Gt.stop()}))}_cleanupCurrentWrapper(){this.currentEditingWrapper&&!this.currentEditingWrapper.isDestroyed()&&this.currentEditingWrapper.destroy(),this.currentEditingWrapper=void 0}_createEditingMode(e){if(this.editingModes.length){e>=this.editingModes.length&&(e=0),this.currentIndex=e,this.currentEditingMode=this.editingModes[e];try{const i=c.EngineObject.contextEditing.getEngineObjConstructor(this.currentEditingMode,this.czmViewer.typeName);if(!i){this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd();return}this.currentEditingWrapper=new i(this.sceneObject,this.czmViewer),this._emitEditingEvent("changed",{cMode:this.currentEditingMode,cIndex:e}),this.notSupportedEditCount=0}catch(i){this.useKeyToSwitch&&this.notSupportedEditCount++,console.error(`[ESEditMode] 创建编辑模式${this.currentEditingMode}失败`,i),this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd()}}}static create(e,i,o,r=!0){Gt.stop(),Gt.esEditModeInstance=new Gt(e,i,o,r)}static stop(){const e=Gt.esEditModeInstance;if(e&&!e.isDestroyed()){const{czmViewer:i,sceneObject:o,editingID:r,editingModes:s}=e;e.destroy(),i.editingMode=void 0,i.editingEvent.emit({objectIDs:[o.parentID],editingID:r,type:"end",add:{modes:s}})}Gt.esEditModeInstance=void 0}};U(Gt,"KEY_ESCAPE","Escape"),U(Gt,"KEY_SPACE","Space"),U(Gt,"MOUSE_LEFT",0),U(Gt,"esEditModeInstance");let Kd=Gt;function OS(){const t=c.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};n.disposer.ad(e.keyDownEvent.don(s));const a=new jd(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}class P8 extends c.Destroyable{constructor(n,e){super(),this._czmViewer=n,c.engineObjectCreatedUpdate(this,e,()=>{let i;const o=n.getEngineObject(e);e instanceof c.ESBoxClipping&&(i=o.czmBoxClippingPlanes),!(!i||!("computedClippingPlanes"in i)||!("computedClippingPlanesChanged"in i))&&(this.dispose(c.track([this._czmViewer,"sceneGlobeClippingPlanes"],[i,"computedClippingPlanes"])),this.dispose(()=>this._czmViewer.sceneGlobeClippingPlanes=void 0))})}}class B8 extends c.Destroyable{constructor(e){super();U(this,"_clippingPlanesSceneObjectWithId",this.disposeVar(new c.ESSceneObjectWithId));this.dispose(c.track([this._clippingPlanesSceneObjectWithId,"id"],[e,"sceneGlobeClippingPlanesId"])),this.disposeVar(new c.ObjResettingWithEvent(this._clippingPlanesSceneObjectWithId.sceneObjectChanged,()=>{const{sceneObject:i}=this._clippingPlanesSceneObjectWithId;if(i)return new P8(e,i)}))}}class T8 extends c.Destroyable{constructor(n){super(),this.dv(new c.ObjResettingWithEvent(n.sceneGlobeClippingPolygonsIdChanged,(e,i)=>{if(!(!e||e===i||e&&e.length===0))return new I8(n)}))}}class I8 extends c.Destroyable{constructor(n){super(),this._czmViewer=n,this.d(()=>this._czmViewer.sceneGlobeClippingPolygons=void 0);const e=this._czmViewer.sceneGlobeClippingPolygonsId,i=o=>{if(!o)return;const r=this.dv(c.createNextAnimateFrameEvent(o.positionsChanged,o.reverseChanged,o.enabledChanged,o.showHelperChanged));this.dv(new c.ObjResettingWithEvent(r,()=>{if(o)return new k8(n,o)}))};for(let o=0;o<e.length;o++){const r=e[o],s=c.ESSceneObject.getSceneObjById(r);if(!s)return;let a;s instanceof c.ESExcavate?c.engineObjectCreatedUpdate(this,s,()=>{a=n.getEngineObject(s).czmPolygonClipping,i(a)}):s instanceof c.ESHole&&c.engineObjectCreatedUpdate(this,s.excavate,()=>{a=n.getEngineObject(s.excavate).czmPolygonClipping,i(a)})}}}class k8 extends c.Destroyable{constructor(n,e){super(),this._czmViewer=n;const i=this._czmViewer.sceneGlobeClippingPolygonsId,o=e.enabled?e.reverse:void 0;if(i&&i.length>0){const r={polygons:[],enabled:!0,inverse:!1};for(let s=0;s<i.length;s++){const a=i[s],l=c.ESSceneObject.getSceneObjById(a);if(!l)return;let u;if(l instanceof c.ESExcavate?u=n.getEngineObject(l).czmPolygonClipping:l instanceof c.ESHole&&(u=n.getEngineObject(l.excavate).czmPolygonClipping),!u)return;u&&u.positions&&u.positions.length>=3&&u.enabled&&(r.polygons[s]={positions:u.positions},r.inverse=o??u.reverse)}this._czmViewer.sceneGlobeClippingPolygons=r}}}class F8 extends c.Destroyable{constructor(n,e){var s;super(),this._viewer=n;const i=(s=this._viewer.extensions)==null?void 0:s.pickingManager;if(!i)return;const{objectsToExclude:o}=i,r=Array.isArray(e)?[...e]:[e];for(const a of r){if(o.includes(a))throw new Error("objectsToExclude.includes(p)");o.push(a)}this.dispose(()=>{for(let a of r){const l=o.indexOf(a);if(l===-1)throw new Error("-1 === objectsToExclude.indexOf(p)");o.splice(l,1)}})}}class M8 extends c.Destroyable{constructor(e){var s;super();U(this,"_czmGlobeMaterial");this._czmViewer=e,this._czmGlobeMaterial=this.dv(new Go(e)),this._czmGlobeMaterial.show=!0;let i=Object.assign({},at.defaults.terrainShader,this._czmViewer.terrainShader),o=(s=this._czmViewer.viewer)==null?void 0:s.scene.preUpdate.addEventListener(()=>{var l;const a=i.elevationContour.show&&(((l=this._czmViewer.getCameraInfo())==null?void 0:l.position[2])??0)<=i.elevationContour.spacing*1e3;this._czmGlobeMaterial.enableContour!==a&&(this._czmGlobeMaterial.enableContour=a)});this.d(()=>{o&&o()});const r=()=>{i=Object.assign({},at.defaults.terrainShader,this._czmViewer.terrainShader),this._czmGlobeMaterial.shadingMode="none",i.aspect.show&&(this._czmGlobeMaterial.shadingMode="aspect"),i.slope.show&&(this._czmGlobeMaterial.shadingMode="slope"),i.elevationRamp.show&&(this._czmGlobeMaterial.shadingMode="elevation"),this._czmGlobeMaterial.contourSpacing=i.elevationContour.spacing,this._czmGlobeMaterial.contourWidth=i.elevationContour.width,this._czmGlobeMaterial.contourColor=i.elevationContour.color,this._czmGlobeMaterial.elevationParam={minHeight:i.elevationRamp.minHeight,maxHeight:i.elevationRamp.maxHeight,color:i.elevationRamp.color}};r(),this.d(this._czmViewer.terrainShaderChanged.don(r))}get czmGlobeMaterial(){return this._czmGlobeMaterial}}async function D8(t,n){const e={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,navigationInstructionsInitiallyVisible:!1,scene3DOnly:!0,...n??{}},i=new w.Viewer(t,e);return i.imageryLayers.removeAll(),i.extend(w.viewerCesiumInspectorMixin),i.cesiumInspector.container.style.display="none",i.extend(w.viewerCesium3DTilesInspectorMixin),i.cesium3DTilesInspector.container.style.display="none",i.cesium3DTilesInspector.viewModel.picking=!1,i.clock.currentTime=w.JulianDate.fromDate(new Date("2022-04-19T20:00:53.10067292911116965Z")),i.scene.screenSpaceCameraController.lookEventTypes=[{eventType:w.CameraEventType.RIGHT_DRAG}],i.scene.screenSpaceCameraController.zoomEventTypes=[w.CameraEventType.WHEEL,w.CameraEventType.PINCH,{eventType:w.CameraEventType.RIGHT_DRAG,modifier:w.KeyboardEventModifier.SHIFT}],i.scene.screenSpaceCameraController.tiltEventTypes=[w.CameraEventType.MIDDLE_DRAG,w.CameraEventType.PINCH,{eventType:w.CameraEventType.LEFT_DRAG,modifier:w.KeyboardEventModifier.CTRL},{eventType:w.CameraEventType.RIGHT_DRAG,modifier:w.KeyboardEventModifier.CTRL}],i.screenSpaceEventHandler.removeInputAction(w.ScreenSpaceEventType.LEFT_CLICK),i.screenSpaceEventHandler.removeInputAction(w.ScreenSpaceEventType.LEFT_DOUBLE_CLICK),i._cesiumWidget._creditContainer.style.display="none",i}function R8(){w.Cesium3DTile.prototype.updateTransform=function(t,n){t=t??w.Matrix4.IDENTITY;const e=w.Matrix4.multiplyTransformation(t,this.transform,new w.Matrix4),i=!w.Matrix4.equals(e,this.computedTransform),o=w.defined(n)&&(this._verticalExaggeration!==n.verticalExaggeration||this._verticalExaggerationRelativeHeight!==n.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&w.Matrix4.clone(e,this.computedTransform),o&&(this._verticalExaggeration=n.verticalExaggeration,this._verticalExaggerationRelativeHeight=n.verticalExaggerationRelativeHeight);const r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform),w.defined(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform)),w.defined(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()}}function U8(){Reflect.getOwnPropertyDescriptor(w.Camera.prototype,"_currentFlight")||Object.defineProperties(w.Camera.prototype,{_currentFlight:{get:function(){return this._vtxf_currentFlight},set:function(t){if(this._vtxf_currentFlight!==t){this._vtxf_currentFlight=t;var n=this._vtxf_currentFlight,e=t;this.currentFlightEvent.raiseEvent(e,n)}}},currentFlightEvent:{get:function(){return typeof this._vtxf_currentFlightEvent>"u"&&(this._vtxf_currentFlightEvent=new w.Event),this._vtxf_currentFlightEvent}}})}function O8(){const t=new w.Matrix4;function n(i,o){const r=i.positionWC;w.Matrix4.clone(i.transform,t),i.lookAtTransform(w.Matrix4.IDENTITY),i.look(r,o),i.lookAtTransform(t)}const e=Math.PI/60;w.Camera.prototype.lookLeft=function(i){i=i??e,this._mode!==w.SceneMode.SCENE2D&&n(this,-i)},w.Camera.prototype.lookRight=function(i){this.lookLeft(-i)}}function L8(){if(!w.DepthPlane.xbsjFixed){w.DepthPlane.xbsjFixed=!0;var t=w.DepthPlane.prototype.update;w.DepthPlane.prototype.update=function(){t.bind(this)(...arguments);var n=arguments[0];if(!this.hasXbsjIndexBuffer&&this._va){this.hasXbsjIndexBuffer=!0;var e=n.context,i=new w.Geometry({attributes:{position:new w.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:new Float32Array(15)})},indices:[0,1,4,1,3,4,3,2,4,2,0,4],primitiveType:w.PrimitiveType.TRIANGLES});this._va=w.VertexArray.fromGeometry({context:e,geometry:i,attributeLocations:{position:0},bufferUsage:w.BufferUsage.DYNAMIC_DRAW}),this._command.vertexArray=this._va}}}}function z8(t){const n=t.BoundingSphere,e=t.Cartesian3,i=t.defined,o=t.OrientedBoundingBox,r=t.Rectangle,s=t.TaskProcessor,a=t.TerrainData,l=t.TerrainEncoding,u=t.TerrainMesh,A=t.GoogleEarthEnterpriseTerrainData,h="createVerticesFromGoogleEarthEnterpriseBuffer",d=new s(h),f=new s(h,a.maximumAsynchronousTasks),p=new r,g=new r;A.prototype.createMesh=function(v){v=v??$e.Frozen.EMPTY_OBJECT;const y=v.tilingScheme,m=v.x,_=v.y,x=v.level,E=v.exaggeration??1,B=v.exaggerationRelativeHeight??0,P=v.throttle??!0,I=y.ellipsoid;y.tileXYToNativeRectangle(m,_,x,p),y.tileXYToRectangle(m,_,x,g);const M=I.cartographicToCartesian(r.center(g));this._skirtHeight=1.9134410999999999e6;const S=(P?f:d).scheduleTask({buffer:this._buffer,nativeRectangle:p,rectangle:r.clone(g),relativeToCenter:M,ellipsoid:I,skirtHeight:this._skirtHeight,exaggeration:E,exaggerationRelativeHeight:B,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!i(S))return;const T=this;return S.then(function(b){return T._mesh=new u(M,new Float32Array(b.vertices),new Uint16Array(b.indices),b.indexCountWithoutSkirts,b.vertexCountWithoutSkirts,b.minimumHeight,b.maximumHeight,n.clone(b.boundingSphere3D),e.clone(b.occludeePointInScaledSpace),b.numberOfAttributes,o.clone(b.orientedBoundingBox),l.clone(b.encoding),b.westIndicesSouthToNorth,b.southIndicesEastToWest,b.eastIndicesNorthToSouth,b.northIndicesWestToEast),T._minimumHeight=b.minimumHeight,T._maximumHeight=b.maximumHeight,T._buffer=void 0,T._mesh})}}function Q8(){return w.VERSION.split(".").map(n=>parseInt(n))}let Tv;function V8(){return Tv||(Tv=Q8()),Tv}function H8(){const t=V8();t[0]===1&&t[1]>=92?z8(w):console.warn(`don't need to fixGoogleEarth, cesium version is ${t.join(".")}`)}function N8(){const t=w.Resource.prototype.fetchJson,n=w.Resource.prototype.fetchArrayBuffer;w.Resource.prototype.fetchJson=function(...e){if(this.url.startsWith(`https://${c.defaultLocalFileServer.prefix}`)){const i=this.url.substring(8);return c.defaultLocalFileServer.getJson(i)}else return t.call(this,...e)},w.Resource.prototype.fetchArrayBuffer=function(...e){if(this.url.startsWith(`https://${c.defaultLocalFileServer.prefix}`)){const i=this.url.substring(8);return c.defaultLocalFileServer.getArrayBuffer(i).then(o=>{if(!o)throw new Error("result is undefined!");return o})}else return n.call(this,...e)}}function G8(){const t=w.ModelSceneGraph.prototype.buildDrawCommands;w.ModelSceneGraph.prototype.buildDrawCommands=function(...n){const e=this._model,i=e.modelMatrix;e.modelMatrix=w.Matrix4.IDENTITY;const o=t.call(this,...n);return e.modelMatrix=i,o}}function W8(){const t=w.ShaderSource._czmBuiltinsAndUniforms;t.czm_materialInput.indexOf("vec4 color")===-1&&(t.czm_materialInput=t.czm_materialInput.replace("float aspect;","float aspect; vec4 color;"))}const j8=`#ifdef GL_OES_standard_derivatives
3777
3777
  #extension GL_OES_standard_derivatives : enable
3778
3778
  #endif
3779
3779
 
package/dist/cesium.js CHANGED
@@ -43980,7 +43980,7 @@ const _t = class _t extends k {
43980
43980
  _t.stop();
43981
43981
  });
43982
43982
  })), this.useKeyToSwitch ? this.ad(this.czmViewer.keyDownEvent.don((e) => e.code === _t.KEY_SPACE && this._onEditEnd())) : this.czmViewer.editingModeChanged && this.ad(this.czmViewer.editingModeChanged.don(() => {
43983
- this.czmViewer.editingMode !== void 0 && (this._cleanupCurrentWrapper(), Wt(() => this._createEditingMode(Math.max(0, this.editingModes.indexOf(this.czmViewer.editingMode)))));
43983
+ this._cleanupCurrentWrapper(), this.czmViewer.editingMode !== void 0 && Wt(() => this._createEditingMode(Math.max(0, this.editingModes.indexOf(this.czmViewer.editingMode))));
43984
43984
  })), this.ad(() => this._cleanupCurrentWrapper()), this.ad(this.notSupportedEditCountChanged.don(() => {
43985
43985
  this.notSupportedEditCount >= this.editingModes.length && _t.stop();
43986
43986
  }));
@@ -1922,7 +1922,7 @@ void main()
1922
1922
  {
1923
1923
  out_FragColor = u_color;
1924
1924
  }
1925
- `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},ke,t)}class v2 extends a.HasOwner{constructor(i){super(i);const{czmViewer:e}=this.owner;let n;this.dispose(()=>this.owner.hoveredPlaneType="none");const s=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(o=>{const r=n=this._getStartInfo(o.pointerEvent);r&&(this.owner.hoveredPlaneType=r.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(o=>{n&&n.currentPlaneType!=="none"&&(s.restart(void 0,e,n),n=void 0)})),this.dispose(e.dblclickEvent.disposableOn(o=>{const r=this._getStartInfo(o.pointerEvent);if(r&&r.currentPlaneType!=="none"){const{currentPlaneType:l}=r,h=[...this.owner.selfRotation];h[wi.rotationNum[l]]=0,this.owner.selfRotation=h;return}this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(a.createProcessingFromAsyncFunc(async(i,e,n)=>{const s=this.owner.circles[n.currentPlaneType];e.incrementDisabledInputStack(),i.disposer.dispose(()=>e.decrementDisabledInputStack()),i.disposer.dispose(e.pointerMoveEvent.don(o=>{if(n&&o.pointerEvent){const{offsetX:r,offsetY:l}=o.pointerEvent,h=[r,l],{currentPlaneType:c}=n;if(c==="none")return;const u=this.owner.getPlane(c);if(!n.currentV)return;const p=u.pick(h);if(!p||!this.owner.cartesian)return;const f=d.Cartesian3.subtract(n.currentV,this.owner.cartesian,new d.Cartesian3);d.Cartesian3.normalize(f,f);const g=d.Cartesian3.subtract(p,this.owner.cartesian,new d.Cartesian3);if(d.Cartesian3.normalize(g,g),!u.normal||!u.origin)return;const v=lg(f,g,u.normal),y=lg(u.origin,f,u.normal),w=lg(u.origin,g,u.normal);{const P=[...this.owner.selfRotation];P[wi.rotationNum[c]]=n.startRotation+v,this.owner.selfRotation=P,s.circleStartRotation=y,s.circleEndRotation=w}}})),this.owner.movingPlaneType=n.currentPlaneType,i.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),i.disposer.dispose(()=>{s.circleStartRotation=0,s.circleEndRotation=0}),await a.step(i,o=>new Promise((r,l)=>{o.disposer.dispose(l),o.disposer.dispose(e.pointerUpEvent.don(()=>{r()})),o.disposer.dispose(e.pointerOutEvent.don(()=>{r()}))}))}))}_pickPlane(i,e,n,s,o){const r=this.owner.cartesian;if(!r)return;const{selfRotation:l}=this.owner,h=this.owner.getPlane(n).pick(s);if(!h)return;const c=d.Cartesian3.distance(r,h),u=o/4,p=u*3/128;if(!(c>=u-p&&c<=u+p))return;const g=d.Cartesian3.distance(e.camera.positionWC,h);i.currentD2c<=g||(i.currentPlaneType=n,i.currentD2c=g,i.currentV=h,i.startRotation=l[wi.rotationNum[n]])}_getStartInfo(i){var u;const{czmViewer:e}=this.owner,n=(u=e.viewer)==null?void 0:u.scene;if(!this.owner.position||!this.owner.cartesian)return;const s=Ui(n,this.owner.cartesian,this.owner.pixelSize);if(!s)return;const{offsetX:o,offsetY:r}=i,l=[o,r],h=i.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:h};return this._pickPlane(c,n,"heading",l,s),this._pickPlane(c,n,"pitch",l,s),this._pickPlane(c,n,"roll",l,s),c}}function lg(t,i,e){const n=d.Cartesian3.cross(i,t,new d.Cartesian3);if(n.equals(d.Cartesian3.ZERO))return 0;d.Cartesian3.normalize(n,n);const s=d.Cartesian3.dot(n,e);let o=Math.acos(d.Cartesian3.dot(t,i))*180/Math.PI;return o=s>0?o:-o,o}const Zs=class Zs extends Zt{constructor(e){super();m(this,"_hoveredPlaneType",this.disposeVar(a.react("none")));m(this,"_movingPlaneType",this.disposeVar(a.react("none")));m(this,"_circles");m(this,"_czmCameraModel");m(this,"_cartesian");m(this,"_planes",{heading:this.disposeVar(new u2(this)),pitch:this.disposeVar(new p2(this)),roll:this.disposeVar(new f2(this))});m(this,"_rotatorRunningResetting");this._czmViewer=e;const n=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new a.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new v2(this)})),this._circles={heading:this._createRotatorCircle(n,"heading"),pitch:this._createRotatorCircle(n,"pitch"),roll:this._createRotatorCircle(n,"roll")},!!n.viewer){{const o=()=>{this._cartesian=this.position&&Se(this.position)||void 0};o(),this.dispose(this.positionChanged.disposableOn(o))}this._createCameraModel(n)}}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 ht(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(a.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],n=>n*.1)),this.dispose(a.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(a.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const n=()=>{const s=Re({rotation:this.selfRotation});if(!s)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=d.Matrix4.toArray(s))};n(),this.dispose(this.selfRotationChanged.disposableOn(n))}{const n=()=>{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)};n(),this.dispose(this.enabledChanged.disposableOn(n)),this.dispose(this.showHelperChanged.disposableOn(n))}}_createRotatorCircle(e,n){const s=this.ad(new ir(e));this.dispose(a.track([s,"position"],[this,"position"])),this.dispose(a.track([s,"pixelSize"],[this,"pixelSize"])),this.dispose(a.track([s,"debug"],[this,"debug"])),this.dispose(a.track([s,"rotation"],[this,"rotation"]));{const o=()=>{s.selfRotation=Zs.rotationFuncs[n](this.selfRotation),s.circleRotation=this.selfRotation[Zs.rotationNum[n]]};o(),this.dispose(this.selfRotationChanged.disposableOn(o))}{const o=()=>{const r=this.movingPlaneType===n,l=this.hoveredPlaneType===n,c=[0,0,0,r||l?1:.8];c[Zs.rotationNum[n]]=1,s.color=c};o(),this.dispose(this.movingPlaneTypeChanged.disposableOn(o)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(o))}return s}};m(Zs,"rotationNum",{heading:0,pitch:1,roll:2}),m(Zs,"rotationFuncs",{heading:([e,n,s])=>[0,0,0],pitch:([e,n,s])=>[e,0,-90],roll:([e,n,s])=>[e,n+90,0]});let wi=Zs;(t=>{t.createDefaultProps=()=>({...Zt.createDefaultProps(),rotation:a.reactArray([0,0,0]),selfRotation:a.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(wi||(wi={})),a.extendClassProps(wi.prototype,wi.createDefaultProps);const Qs=class Qs extends a.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(i){this.positions=[i??Qs.defaults.positions[0],this.stopPosition??Qs.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(i){this.positions=[this.startPosition??Qs.defaults.positions[0],i??Qs.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(i,e){if(super(),!i.viewer)return;const s=this.ad(new xe(i,e));s.arcType="RHUMB";const o=this.ad(new ti(i,e));this.ad(a.track([s,"allowPicking"],[this,"allowPicking"])),this.ad(a.track([o,"allowPicking"],[this,"allowPicking"]));{const r=()=>{s.show=o.show=this.show};r(),this.ad(this.showChanged.don(r))}{const r=()=>{s.width=this.width/2,o.pixelSize=this.width};r(),this.ad(this.widthChanged.don(r))}{const r=()=>{s.color=o.color=this.color};r(),this.ad(this.colorChanged.don(r))}{const r=()=>{s.positions=this.positions,o.position=this.stopPosition};r(),this.dispose(this.startPositionChanged.disposableOn(r)),this.dispose(this.stopPositionChanged.disposableOn(r))}}};m(Qs,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Bs=Qs;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:a.reactPositions(t.defaults.positions),width:10,color:a.reactArray([1,0,0,1])})})(Bs||(Bs={})),a.extendClassProps(Bs.prototype,Bs.createDefaultProps);class rn extends Zt{constructor(e){super();m(this,"_lastPosition");m(this,"_opInfo",{step:this.ad(a.react(!1)),moved:this.ad(a.react(!1)),constraintMode:this.disposeVar(a.react("none")),originPosition:this.disposeVar(a.reactArray([0,0,0])),originHeading:this.disposeVar(a.react(0)),originDimensions:this.disposeVar(a.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(a.reactArray([0,0,0])),movingPosition:this.disposeVar(a.reactArray([0,0,0])),targetPosition:this.disposeVar(a.reactArray([0,0,0])),targetHeading:this.disposeVar(a.react(0))});m(this,"_scaleAxis");m(this,"_pickingXYProcessing",e=>this.disposeVar(new a.Processing((n,s,o)=>{const r=[0,0,0],l=new d.Cartographic;return e.pointerMoveEvent.disposableOn(h=>{if(!h.pointerEvent||!e.viewer)return;const c=ci(a.getDomEventCurrentTargetPos(h.pointerEvent));if(!js(e.viewer.scene,c,this._opInfo.originPosition.value[2],l))return;is(l,r),this._opInfo.constraintMode.value==="x"?ss(this._opInfo.originPosition.value,this._opInfo.originHeading.value,r,r):this._opInfo.constraintMode.value==="y"?ss(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,r,r):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=r,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const u=[0,0,0];a.geoRhumbDestination(r,o,s,u),this._opInfo.targetPosition.value=u;let p=this.scale[0],f=this.scale[1];const g=a.geoDistance(u,this._opInfo.originPosition.value)-a.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...u];const v=this._opInfo.originDimensions.value[0]/100;g!=0&&this._opInfo.constraintMode.value==="y"&&(g>0?p+=v:p-=v),g!=0&&this._opInfo.constraintMode.value==="x"&&(g>0?f+=v:f-=v),p<=0&&(p+=v),f<=0&&(f+=v),this.scale=[p??1,f??1,this.scale[2]??1]})})));m(this,"_pickingZProcessing",e=>this.disposeVar(new a.Processing(()=>{const n=new d.Cartesian3,s=[0,0,0];return e.pointerMoveEvent.disposableOn(o=>{if(!o.pointerEvent||!e.viewer)return;const r=ci(a.getDomEventCurrentTargetPos(o.pointerEvent));if(!yh(e.viewer.scene,Se(this._opInfo.originPosition.value),r,n))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const l=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(oe(n,s)){this._opInfo.movingPosition.value=s;const h=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[h[0],h[1],s[2]+l];let c=this.scale[2];const u=s[2]-this._lastPosition[2];this._lastPosition=[...s];const p=this._opInfo.originDimensions.value[0]/100;u!=0&&(u>0?c+=p:c-=p),c<=0&&(c+=p),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const n=e.viewer;if(!n)return;const{scene:s}=n;this.ad(new wc(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 o=()=>{if(!this._scaleAxis)return;const{zAxis:r,yAxis:l,xAxis:h}=this._scaleAxis,c=this._opInfo.constraintMode.value,u=this._opInfo.step;r.color=[0,0,1,.99],l.color=[0,1,0,.99],h.color=[1,0,0,.99],c==="x"?h.color=u?[1,1,0,.8]:[1,1,0,.99]:c==="y"?l.color=u?[1,1,0,.8]:[1,1,0,.99]:c==="z"&&(r.color=u?[1,1,0,.8]:[1,1,0,.99])};o(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(o)),this.dispose(this._opInfo.step.changed.disposableOn(o))}{const o=()=>{if(!this._scaleAxis)return;const{position:l=rn.defaults.position}=this,{zAxis:h,yAxis:c,xAxis:u}=this._scaleAxis;h.startPosition=c.startPosition=u.startPosition=l;const[p,f,g]=l;h.stopPosition=[p,f,g+this._opInfo.originDimensions.value[2]];const v=a.geoRhumbDestination(l,this._opInfo.originDimensions.value[0],90);v&&(u.stopPosition=v);const y=a.geoRhumbDestination(l,this._opInfo.originDimensions.value[1],0);y&&(c.stopPosition=y)};o();const r=this.ad(a.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(r.don(o))}{const o=()=>{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,l)=>r===this._opInfo.targetPosition.value[l])){this._opInfo.moved.value=!0;return}};o(),this.dispose(this._opInfo.originHeading.changed.disposableOn(o)),this.dispose(this._opInfo.originPosition.changed.disposableOn(o)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(o)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(o))}{const o=this._pickingXYProcessing(e),r=this._pickingZProcessing(e),l=()=>{const f=[...this.position??rn.defaults.position];e.editingHeightOffset&&(f[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=f},h={constraintMode:"none",startDragPos:[0,0,0]},c=f=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};ac(f,s,g,this.axisSnapPixelSize,h),this._opInfo.constraintMode.value=h.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=h.startDragPos},u=this.disposeVar(a.createProcessingFromAsyncFunc(async f=>{this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",f.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await a.step(f,async g=>{g.disposer.dispose((l(),this.positionChanged.disposableOn(l))),g.disposer.dispose(e.pointerMoveEvent.disposableOn(v=>{v.pointerEvent&&c(v.pointerEvent)})),await a.step(g,v=>new Promise((y,w)=>{v.disposer.dispose(w),v.disposer.dispose(e.pointerDownEvent.don(P=>{P.pointerEvent&&c(P.pointerEvent),P.pointerEvent&&P.pointerEvent.button===0&&h.constraintMode!=="none"&&y()}))}))}),this._opInfo.step.value=!1,await a.step(f,async g=>{if(e.incrementDisabledInputStack(),g.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const v=a.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),y=a.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);o.restart(void 0,v,y),g.disposer.dispose(()=>o.cancel())}else this._opInfo.constraintMode.value==="z"&&(r.restart(),g.disposer.dispose(()=>r.cancel()));await a.step(g,v=>new Promise((y,w)=>{v.disposer.dispose(w),v.disposer.dispose(e.pointerUpEvent.don(()=>{y()})),v.disposer.dispose(e.pointerOutEvent.don(()=>{y()}))})),this._lastPosition=void 0}),u.restart()})),p=()=>{this.enabled?u.restart():u.isRunning&&u.cancel()};p(),this.dispose(this.enabledChanged.disposableOn(p))}}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,n){const s=this.ad(new Bs(e));return s.width=10,this.ad(a.track([s,"show"],[this,"enabled"])),s}}(t=>{t.createDefaultProps=()=>({...Zt.createDefaultProps(),scale:a.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(rn||(rn={})),a.extendClassProps(rn.prototype,rn.createDefaultProps);const ts=class ts extends Ut{constructor(e){super();m(this,"_editingPoints",this.disposeVar(new a.ObservableArray));m(this,"_cancelEvent",this.disposeVar(new a.Event));m(this,"_currentProcess");m(this,"_menuPoiEnabled",this.disposeVar(a.react(!1)));m(this,"_status",this.disposeVar(a.react("None")));m(this,"_positionsChanged",this.ad(new a.Event));m(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(n=>{for(let{start:s,deleteCount:o,items:r}of n){for(const l of r)l.menuPoi.enabled=this.menuPoiEnabled??!1;for(let l=s;l<s+o;++l)this.editingPoints.get(l).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let n of this.editingPoints)n.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(n=>{this.ad(()=>{var s;((s=n.pointerEvent)==null?void 0:s.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()})})),this.dispose(this.enabledChanged.disposableOn(n=>{this._currentProcess&&(n?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const n=()=>{this.polylineShow=this.czmViewer.editingLineShow};n(),this.ad(this.czmViewer.editingLineShowChanged.don(n))}}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 n of this._editingPoints)n.position&&e.push([...n.position]);return e}resetPositions(e){if(this.enabled??ts.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const n=e||[];return!(n.length===this.editingPoints.length&&n.every((s,o)=>s.every((r,l)=>{const h=this.editingPoints.get(o);return h.position&&h.position[l]===r})))}forceResetPositions(e){(this.enabled??ts.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 n=this.ad(new xe(e));this.ad(a.track([n,"color"],[this,"polylineColor"])),this.ad(a.track([n,"width"],[this,"polylineWidth"])),this.ad(a.track([n,"show"],[this,"polylineShow"])),this.ad(a.track([n,"arcType"],[this,"polylineArcType"])),this.ad(a.track([n,"loop"],[this,"loop"]));{const s=()=>{const o=[];for(const r of this.getPositions())r[2]-=e.editingHeightOffset??0,o.push(r);n.positions=o};s(),this.ad(this.positionsChanged.don(s))}}_createCursorInfo(e){const n=this._cursorInfo=this.ad(new a.CursorInfo(e.container,a.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const s=this.status;if(n){if(!this.hideCursorInfo){n.show=!1;return}s==="Adding"?(n.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",n.show=!0):s==="Modifying"||s==="Modifying_Point"?(n.text="Esc键或左键双击:退出编辑状态",n.show=!0):s==="None"&&(n.text="",n.show=!1)}}))}};m(ts,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),m(ts,"defaults",{...Ut.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:ts.baseImageUrl+"point-green.png",otherControlPointImageUrl:ts.baseImageUrl+"point-yellow.png"});let ri=ts;(t=>{t.createDefaultProps=()=>({...Ut.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:a.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})})(ri||(ri={})),a.extendClassProps(ri.prototype,ri.createDefaultProps);let y2=0;class mC extends a.Destroyable{constructor(e,n){super();m(this,"_position",this.disposeVar(a.reactArrayWithUndefined(void 0)));m(this,"_id",y2++);m(this,"_menuPoi");n&&(this.position=n),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const s=this._menuPoi=this.ad(new ao(e.czmViewer));s.enabled=!1,this.ad(a.track([s,"show"],[e,"enabled"]));{const o=()=>{if(this.position===void 0){s.position=void 0;return}const r=[...this.position];r[2]-=e.czmViewer.editingHeightOffset??0,s.position=r,e.positionsChanged.emit()};o(),this.d(this.positionChanged.don(o))}{const o=()=>{const r=e.editingPoints.indexOf(this)+1;r!==0&&(s.title=`控制点${r}`,r===1?s.imageUri=e.firstControlPointImageUrl??ri.defaults.firstControlPointImageUrl:s.imageUri=e.otherControlPointImageUrl??ri.defaults.otherControlPointImageUrl)};o(),this.dispose(e.editingPoints.changedEvent.disposableOn(o))}}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 vC extends mC{constructor(i,e){super(i,e)}}class Xe extends ri{constructor(e){super(e);m(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new a.Event));m(this,"placeEditing");if(!e.viewer)return;const n=this.placeEditing=this.ad(new Oi(e));n.enabled=!1,this.currentProcess=this.disposeVar(a.createProcessingFromAsyncFunc(async s=>{s.disposer.dispose(()=>{(this.debug??Xe.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Xe.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await s.promise(a.step(s,async o=>{const r=o.disposer,l=r.ad(this._addingEditingProcessing());r.dispose(()=>"adding canceled!"),r.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),await o.promise(new Promise(h=>{r.dispose(l.completeEvent.disposableOnce(h))}))}))})),this.dispose(e.clickEvent.don(s=>{var o;((o=s.pointerEvent)==null?void 0:o.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const n=e?e.map(s=>new vC(this,s)):[];return this.editingPoints.splice(0,this.editingPoints.length,...n),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Xe.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},n=a.createProcessingFromAsyncFunc(async s=>{let o=this.editingPoints.length;this.menuPoiEnabled=!1,await s.promise(a.step(s,async l=>{let h;!e()&&(h=l.disposer.disposeVar(new w2(this,o)));const u=l.disposer.disposeVar(new _2(this,o));return l.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>u.do())),await l.promise(new Promise(p=>{h&&l.disposer.dispose(h.overEvent.disposableOnce(f=>{f?(o++,p(!0)):p(!1)})),l.disposer.dispose(u.overEvent.disposableOnce(f=>{f?(o--,p(!0)):p(!1)})),l.disposer.dispose(this.cancelEvent.disposableOn(()=>p(!1)))}))}))&&n.restart()});return n.start(),n}}(t=>{t.createDefaultProps=()=>({...ri.createDefaultProps()})})(Xe||(Xe={})),a.extendClassProps(Xe.prototype,Xe.createDefaultProps);class w2 extends a.Destroyable{constructor(e,n){super();m(this,"_overEvent",this.disposeVar(new a.Event));const{placeEditing:s}=e;let o=new vC(e,void 0);e.editingPoints.splice(n,0,o);const r=()=>{(e.debug??Xe.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(o);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(s.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(a.track([o,"position"],[s,"position"])),s.enabled=!0;let l=!1;const h=()=>{r(),this._overEvent.emit(!1)};this.dispose(()=>{s.enabled=!1,!l&&h()}),this.dispose(s.overEvent.disposableOnce(()=>{l=!0,o.position===void 0?h():this._overEvent.emit(!0)})),(e.debug??Xe.defaults.debug)&&console.log(`PointAdding creating! index(${n})`),this.dispose(()=>{(e.debug??Xe.defaults.debug)&&console.log(`PointAdding destroying! index(${n})`)})}get overEvent(){return this._overEvent}}function C2(t,i){const e=t.editingPoints,n=i-1;return n<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(n,1),!0)}class _2 extends a.Destroyable{constructor(e,n){super();m(this,"_overEvent",this.disposeVar(new a.Event));m(this,"_doEvent",this.disposeVar(new a.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(C2(e,n)))),(e.debug??Xe.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${n})`),this.dispose(()=>{(e.debug??Xe.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${n})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class yC extends Xe{constructor(i){super(i),this.loop=!1}}class wC extends Xe{constructor(i){super(i),this.loop=!0}}class Ud extends mC{constructor(i,e){super(i,e);{const{menuPoi:n}=this;n.commands=[["add","增加控制点","",Ee.baseImageUrl+"add.png"],["delete","删除当前控制点","",Ee.baseImageUrl+"delete.png"],["modify","修改当前控制点","",Ee.baseImageUrl+"modify.png"]],n.clickCommandName="modify",n.rightClickCommandName="delete",this.dispose(n.commandEvent.disposableOn(s=>{i.menuPoiCommand(this,s)})),this.dispose(n.dbclickEvent.disposableOn(()=>{i.menuPoiCommand(this,"dbClick")}))}if(i.middlePointShow){const n=this.ad(new _i(i.czmViewer));{n.imageUri=i.firstControlPointImageUrl??Ee.defaults.firstControlPointImageUrl,n.tooltip="点击增加一个控制点",n.bgColor=[0,0,0,.6],n.fgColor=[1,1,1,1],n.size=[8,8],n.originRatioAndOffset=[.5,.5,0,0];{const s=()=>{n.enabled=n.show=!1},o=()=>{var g;if(!(i.enabled??Ee.defaults.enabled))return s();const r=i.editingPoints.indexOf(this),l=i.editingPoints,h=l.length;if(r===-1||h===0||!(i.loop??Ee.defaults.loop)&&r+1>=h)return s();const c=this.position;if(!c)return s();const u=(g=l.get((r+1)%h))==null?void 0:g.position;if(!u)return s();const p=cc(c,u);if(!p)return s();p[2]-=i.czmViewer.editingHeightOffset??0,n.position=p;const f=h<(i.maxPointsNum??Ee.defaults.maxPointsNum);n.enabled=n.show=f};o(),this.dispose(i.positionsChanged.disposableOn(o)),this.dispose(i.loopChanged.disposableOn(o)),this.dispose(i.enabledChanged.disposableOn(o))}this.dispose(n.clickEvent.disposableOn(s=>{if(s.button!==0||i.editingPoints.length>=(i.maxPointsNum??Ee.defaults.maxPointsNum))return;const o=i.editingPoints.indexOf(this);if(o===-1)return;const r=n.position?[...n.position]:void 0;r&&(r[2]+=i.czmViewer.editingHeightOffset??0);let l=new Ud(i,r);i.editingPoints.splice(o+1,0,l),i.modify(l)}))}}}}class Ee extends ri{constructor(e){super(e);m(this,"_menuPoiCommand",this.disposeVar(new a.Event));m(this,"_forceModifyPosEditorEvent",this.disposeVar(new a.Event));m(this,"_overEvent",this.disposeVar(new a.Event));m(this,"translationEditing");{const o=this.ad(a.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new a.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new P2(this.editingPoints.get(0),this)}))}const n=this.translationEditing=this.disposeVar(new on(e));n.enabled=!1;const s=async(o,r)=>{if((this.debug??Ee.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(a.step(o,async l=>{const h=l.disposer,c=h.ad(new b2(this));return h.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&c.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),h.dispose(this.cancelEvent.disposableOn(()=>c.cancel())),h.dispose(this._forceModifyPosEditorEvent.disposableOn(p=>c.modify(p))),await l.promise(new Promise(p=>{h.dispose(c.overEvent.disposableOnce(f=>{p(f)}))}))})),r===-1)(this.debug??Ee.defaults.debug)&&console.log("退出编辑状态");else{if(this.editingPoints.length>=(this.maxPointsNum??Ee.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??Ee.defaults.loop;const h=this.editingPoints.get(r-1).position;if(!h)return;let c=r%this.editingPoints.length;const p=this.editingPoints.get(c).position;if(!p)return;const f=cc(h,p);if(!f)return;f&&(f[2]+=this.czmViewer.editingHeightOffset??0);let g=new Ud(this,f);this.editingPoints.splice(r,0,g),await s(o,r)}};this.currentProcess=this.disposeVar(a.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Ee.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),await s(o,-1),this.status="None",this.enabled=!1}))}menuPoiCommand(e,n){this._menuPoiCommand.emit(e,n)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const n=e?e.map(s=>new Ud(this,s)):[];return this.editingPoints.splice(0,this.editingPoints.length,...n),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...ri.createDefaultProps(),moveWithFirstPosition:!1})})(Ee||(Ee={})),a.extendClassProps(Ee.prototype,Ee.createDefaultProps);class P2 extends a.Destroyable{constructor(i,e){super(),this._firstPositionEditor=i,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((n,s)=>{if(n===void 0||s===void 0)return;var o=[n[0]-s[0],n[1]-s[1],n[2]-s[2]];const r=this.multiPointsModifyEditing.editingPoints.length;for(let l=1;l<r;l++){const h=this.multiPointsModifyEditing.editingPoints.get(l),c=h.position;c!==void 0&&(h.position=[c[0]+o[0],c[1]+o[1],c[2]+o[2]])}})}}class b2 extends a.Destroyable{constructor(e){super();m(this,"_overEvent",this.disposeVar(new a.Event));m(this,"_cancelEvent",this.disposeVar(new a.Event));m(this,"_forceModifyPosEditorEvent",this.disposeVar(new a.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let n;const s=()=>{n==null||n.destroy(),n=void 0,e.status="Modifying"};this.dispose(s);const o=r=>{s(),e.status="Modifying_Point",n=new S2(e,r),n.dispose(n.overEvent.disposableOn(()=>{s()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(o)),this.dispose(e._menuPoiCommand.disposableOn((r,l)=>{if(l==="delete"){if(e.editingPoints.length<=2)return;const h=e.editingPoints.indexOf(r);if(h===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(h,1)}else if(l==="modify")o(r);else if(l==="add"){const h=e.editingPoints.indexOf(r);if(h===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(h+1)}else l==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${l})`)})),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 S2 extends a.Destroyable{constructor(e,n){super();m(this,"_overEvent",this.disposeVar(new a.Event));this._modifying=e,this._posEditor=n,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:s}=this._modifying;if(s.enabled=!0,s.heading=0,this.dispose(()=>{s.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");s.position=this._posEditor.position,this.dispose(a.track([this._posEditor,"position"],[s,"position"])),this.dispose(s.enabledChanged.disposableOnce(o=>{o||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class CC extends Ee{constructor(i){super(i),this.loop=!1}}class _C extends Ee{constructor(i){super(i),this.loop=!0}}class nr extends Xe{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,s=e*Math.cos(n[1]*Math.PI/180),o=a.geoDestination(i,s,n[0]);if(!o){this.positions=[i];return}const r=e*Math.sin(n[1]*Math.PI/180);o[2]+=r,this.positions=[i,o],this.editingPoints.length==2&&(this.editingPoints.get(0).position=i,this.editingPoints.get(1).position=o)}constructor(i){super(i),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 n=a.geoHeading(this.startPosition,this.endPosition),s=a.geoDistance(this.startPosition,this.endPosition);if(s<=0){this.rotation=[90,0,0],this.distance=1;return}const o=this.endPosition[2]-this.startPosition[2],r=Math.atan(o/s)*180/Math.PI,l=Math.sqrt(s*s+o*o);this.rotation=[n,r,0],this.distance=l};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Xe.createDefaultProps(),startPosition:a.reactArrayWithUndefined(void 0),endPosition:a.reactArrayWithUndefined(void 0),rotation:a.reactArray([90,0,0]),distance:a.react(1)})})(nr||(nr={})),a.extendClassProps(nr.prototype,nr.createDefaultProps);class Vs extends Ee{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,s=e*Math.cos(n[1]*Math.PI/180),o=a.geoDestination(i,s,n[0]);if(!o){this.positions=[i];return}const r=e*Math.sin(n[1]*Math.PI/180);o[2]+=r,this.positions=[i,o],this.editingPoints.length==2&&(this.editingPoints.get(0).position=i,this.editingPoints.get(1).position=o)}constructor(i){super(i),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{var l;if(!((l=this.positions)!=null&&l.length))return this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];if(this.startPosition=this.positions[0],this.positions.length==1)return this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",Ee.baseImageUrl+"add.png"],["delete","删除当前控制点","",Ee.baseImageUrl+"delete.png"],["modify","修改当前控制点","",Ee.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;this.endPosition=this.positions[1];for(let h of this.editingPoints)h.menuPoi.commands=[["delete","删除当前控制点","",Ee.baseImageUrl+"delete.png"],["modify","修改当前控制点","",Ee.baseImageUrl+"modify.png"]];const n=a.geoDistance(this.startPosition,this.endPosition);if(Math.abs(n)<=0)return this.rotation=[90,0,0],this.distance=1;const s=a.geoHeading(this.startPosition,this.endPosition),o=this.endPosition[2]-this.startPosition[2],r=Math.atan(o/n)*180/Math.PI;this.rotation=[s,r,0],this.distance=Math.hypot(n,o)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Ee.createDefaultProps(),startPosition:a.reactArrayWithUndefined(void 0),endPosition:a.reactArrayWithUndefined(void 0),rotation:a.reactArray([0,0,0]),distance:a.react(0)})})(Vs||(Vs={})),a.extendClassProps(Vs.prototype,Vs.createDefaultProps);class PC extends Xe{constructor(i){super(i),this.loop=!1,this.polylineShow=!1}}class bC extends Ee{constructor(i){super(i),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class sr extends Xe{constructor(i){super(i),i.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const n=[...this.positions[0]];n[2]-=i.editingHeightOffset??0,this.visibilityPositions=this.positions.map(s=>(s[2]-=i.editingHeightOffset??0,[n,s]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(i){const e=this.ad(new fi(i));e.topOrBottom="bottom",this.ad(a.track([e,"color"],[this,"polylineColor"])),this.ad(a.track([e,"width"],[this,"polylineWidth"])),this.ad(a.track([e,"show"],[this,"polylineShow"])),this.ad(a.track([e,"arcType"],[this,"polylineArcType"])),this.ad(a.track([e,"loop"],[this,"loop"])),this.ad(a.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Xe.createDefaultProps(),visibilityPositions:a.reactPositionsSet(void 0)})})(sr||(sr={})),a.extendClassProps(sr.prototype,sr.createDefaultProps);class or extends Ee{constructor(i){if(super(i),!!i.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const n=[...this.positions[0]];n[2]-=i.editingHeightOffset??0,this.visibilityPositions=this.positions.map(s=>(s[2]-=i.editingHeightOffset??0,[n,s]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(i){const e=this.ad(new fi(i));e.topOrBottom="bottom",this.ad(a.track([e,"color"],[this,"polylineColor"])),this.ad(a.track([e,"width"],[this,"polylineWidth"])),this.ad(a.track([e,"show"],[this,"polylineShow"])),this.ad(a.track([e,"arcType"],[this,"polylineArcType"])),this.ad(a.track([e,"loop"],[this,"loop"])),this.ad(a.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Ee.createDefaultProps(),visibilityPositions:a.reactPositionsSet(void 0)})})(or||(or={})),a.extendClassProps(or.prototype,or.createDefaultProps);class SC extends Vs{constructor(i){super(i),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 Pt extends a.EngineObject{constructor(e,n,s){super(e,n,s??!0);m(this,"_currentEditing",this.disposeVar(a.react(void 0)));this.ad(this.toDestroyEvent.don(()=>{var o;if(this.currentEditing)if(this.currentEditing instanceof Xe&&((o=this.currentEditing.currentProcess)!=null&&o.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 this.currentEditing instanceof Oi&&this.currentEditing.enabled&&(e.position=[0,0,0])}))}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Jl=class Jl extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new Oi(e));if(this.ad(e.clickEvent.don(s=>{var o;((o=s.pointerEvent)==null?void 0:o.button)==2&&(n.enabled=!0)})),Reflect.has(i,"position")){const s=i;this.ad(a.bind([n,"position"],[s,"position"])),n.enabled=!n.position||a.equalsN3(n.position,[0,0,0])}else throw new Error(`PlaceEditingWrapper:${i.typeName} 坐标属性无法绑定位置编辑`)}};m(Jl,"type",Jl.registerEditing("ESCesiumViewer",a.ESJEditingMode.Place,Jl));let hg=Jl;const jl=class jl extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new wi(e));if(n.rotation=[90,0,0],this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),i instanceof a.ES3DTileset)a.engineObjectCreatedUpdate(this,i,()=>{const s=e.getEngineObject(i);s&&(this.ad(a.bind([n,"position"],[s.czm3DTiles,"position"])),this.ad(a.bind([n,"selfRotation"],[i,"rotation"])))});else if(Reflect.has(i,"position")&&Reflect.has(i,"rotation")){const s=i;this.ad(a.bind([n,"position"],[s,"position"])),this.ad(a.bind([n,"selfRotation"],[s,"rotation"]))}else throw new Error(`RotationEditingWrapper:${i.typeName} 旋转属性无法绑定旋转编辑`)}};m(jl,"type",jl.registerEditing("ESCesiumViewer",a.ESJEditingMode.Rotation,jl));let dg=jl;const eh=class eh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new rn(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"position")&&Reflect.has(i,"scale")){const s=i;this.ad(a.bind([n,"position"],[s,"position"])),this.ad(a.bind([n,"scale"],[s,"scale"]))}else throw new Error(`ScaleEditingWrapper:${i.typeName} 缩放属性无法绑定缩放编辑`)}};m(eh,"type",eh.registerEditing("ESCesiumViewer",a.ESJEditingMode.Scale,eh));let cg=eh;const th=class th extends Pt{constructor(i,e){super(Array.isArray(i)?i[0]:i,e,!0);const n=this.currentEditing=this.ad(new on(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Array.isArray(i)){const s=[];for(let o=0;o<i.length;o++){const r=i[o];Reflect.has(r,"position")?s.push(r.position):r.points&&s.push(...r.points)}n.position=a.getMinMaxCorner(s).center,this.ad(n.positionChanged.disposableOn((o,r)=>{if(!(!o||!r)){var l=Dt({originPosition:r},[o])[0][0];i.forEach(h=>{const c=h;if(Reflect.has(h,"position")){const u=Dt({originPosition:r},[c.position])[0][0];c.position=Cn({originPosition:r},[[u[0]+l[0],u[1]+l[1],u[2]+l[2]]])[0][0]}else if(Reflect.has(c,"points")&&c.points){const u=Dt({originPosition:r},c.points)[0];c.points=Cn({originPosition:r},u.map(p=>[p[0]+l[0],p[1]+l[1],p[2]+l[2]]))[0]}})}}))}else if(Reflect.has(i,"position"))this.ad(a.bind([n,"position"],[i,"position"]));else if(i instanceof a.ES3DTileset)a.engineObjectCreatedUpdate(this,i,()=>{const s=e.getEngineObject(i);this.ad(a.bind([n,"position"],[s.czm3DTiles,"position"]))});else if(Reflect.has(i,"points")){const s=i;if(s.points===void 0||s.points.length===0){this.destroy();return}n.position=a.getMinMaxCorner(s.points).center,this.ad(n.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||s.points===void 0||s.points.length===0){this.destroy();return}var l=Dt({originPosition:r},[o])[0][0];const h=Dt({originPosition:r},s.points)[0];s.points=Cn({originPosition:r},h.map(c=>[c[0]+l[0],c[1]+l[1],c[2]+l[2]]))[0]}))}else throw new Error(`TranslationEditingWrapper:${i.typeName} 坐标属性无法绑定平移编辑`)}};m(th,"type",th.registerEditing("ESCesiumViewer",a.ESJEditingMode.Translation,th));let Gd=th;const ih=class ih extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new nr(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"position")){const s=i;if(this.ad(a.bind([n,"startPosition"],[s,"position"])),this.ad(je([n,"rotation"],[s,"rotation"])),Reflect.has(s,"far"))this.ad(a.bind([n,"distance"],[s,"far"]));else if(Reflect.has(s,"radius"))this.ad(a.bind([n,"distance"],[s,"radius"]));else if(Reflect.has(s,"distance"))this.ad(a.bind([n,"distance"],[s,"distance"]));else{const o=Se(s.position);if(d.Cartesian3.ZERO.equals(o)||!e.viewer)return;n.distance=Ui(e.viewer.scene,o,100)??1}}else if(Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`DoublePointsAppendEditingWrapper:${i.typeName} 坐标属性无法绑定双点追加编辑`);n.startPosition&&!a.equalsN3(n.startPosition,[0,0,0])&&n.init(),n.enabled=!0}};m(ih,"type",ih.registerEditing("ESCesiumViewer",a.ESJEditingMode.DoublePointsAppend,ih));let ug=ih;const nh=class nh extends Pt{constructor(i,e){if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new Vs(e));if(Reflect.has(i,"position")){const o=i;if(this.ad(a.bind([n,"startPosition"],[o,"position"])),this.ad(je([n,"rotation"],[o,"rotation"])),Reflect.has(o,"far"))this.ad(a.bind([n,"distance"],[o,"far"]));else if(Reflect.has(o,"radius"))this.ad(a.bind([n,"distance"],[o,"radius"]));else if(Reflect.has(o,"distance"))this.ad(a.bind([n,"distance"],[o,"distance"]));else{const r=Se(o.position);if(d.Cartesian3.ZERO.equals(r)||!e.viewer)return;n.distance=Ui(e.viewer.scene,r,100)??1}}else if(Reflect.has(i,"points")){const o=i;if(o.points.length!=2)throw new Error(`DoublePointsModifyEditingWrapper:${i.typeName} 坐标属性无法绑定双点修改编辑`);n.moveWithFirstPosition=!1;const r=()=>n.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!n.enabled&&r())),this.ad(a.track([o,"points"],[n,"positions"]))}else throw new Error(`DoublePointsModifyEditingWrapper:${i.typeName} 坐标属性无法绑定双点修改编辑`);n.init(),n.enabled=!0;const s=this.ad(a.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(s.don(()=>{(!n.enabled||!n.startPosition||a.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};m(nh,"type",nh.registerEditing("ESCesiumViewer",a.ESJEditingMode.DoublePointsModify,nh));let pg=nh;const sh=class sh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new wC(e));this.ad(n.enabledChanged.don(o=>{!o&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))}));const s=i;if(Reflect.has(s,"points")){const o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`CircularAppendEditingWrapper:${s.typeName} 坐标属性无法绑定环形追加编辑`)}};m(sh,"type",sh.registerEditing("ESCesiumViewer",a.ESJEditingMode.CircularAppend,sh));let fg=sh;const oh=class oh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new _C(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`CircularInsertEditingWrapper:${i.typeName} 坐标属性无法绑定环形插值编辑`)}};m(oh,"type",oh.registerEditing("ESCesiumViewer",a.ESJEditingMode.CircularInsert,oh));let gg=oh;const rh=class rh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new yC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`LineStringAppendEditingWrapper:${i.typeName} 坐标属性无法绑定线段追加编辑`)}};m(rh,"type",rh.registerEditing("ESCesiumViewer",a.ESJEditingMode.LineStringAppend,rh));let mg=rh;const ah=class ah extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new CC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`LineStringInsertEditingWrapper:${i.typeName} 坐标属性无法绑定线段插入编辑`)}};m(ah,"type",ah.registerEditing("ESCesiumViewer",a.ESJEditingMode.LineStringInsert,ah));let vg=ah;const lh=class lh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new PC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`ScatterAppendEditingWrapper:${i.typeName} 坐标属性无法绑定散点追加编辑`)}};m(lh,"type",lh.registerEditing("ESCesiumViewer",a.ESJEditingMode.ScatterAppend,lh));let yg=lh;const hh=class hh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new bC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`ScatterModifyEditingWrapper:${i.typeName} 坐标属性无法绑定散点修改编辑`)}};m(hh,"type",hh.registerEditing("ESCesiumViewer",a.ESJEditingMode.ScatterModify,hh));let wg=hh;const dh=class dh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new sr(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`VisibilityAppendEditingWrapper:${i.typeName} 坐标属性无法绑定可见性追加编辑`)}};m(dh,"type",dh.registerEditing("ESCesiumViewer",a.ESJEditingMode.VisibilityAppend,dh));let Cg=dh;const ch=class ch extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new or(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`VisibilityModifyEditingWrapper:${i.typeName} 坐标属性无法绑定可见性修改编辑`)}};m(ch,"type",ch.registerEditing("ESCesiumViewer",a.ESJEditingMode.VisibilityModify,ch));let _g=ch;const uh=class uh extends Pt{constructor(i,e){if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new SC(e));if(Reflect.has(i,"points")){const o=i,r=Reflect.has(o,"extrudedHeight"),l=Reflect.has(o,"height"),h=Reflect.has(o,"perPositionHeight")?o.perPositionHeight:!r,c=[a.ESClassification,a.ESPolygonFence,a.ESSunshineAnalysis].some(v=>o instanceof v);let u=a.getMinMaxCorner(o.points).center;u[2]=o.points[0][2];let p=[...u],f=c?o.points[0][2]:0;h?r?p[2]=o.extrudedHeight:p[2]=o.height+f:(l&&(u[2]=o.height),r&&(p[2]=o.extrudedHeight)),n.startPosition=u,n.distance=p[2]-u[2],n.moveWithFirstPosition=!1;let g=[...u];this.ad(n.positionsChanged.don(()=>{n.positions.length===2&&(h?(o.points=o.points.map(v=>[v[0],v[1],v[2]+n.positions[0][2]-g[2]]),r?o.extrudedHeight=n.positions[1][2]:l&&(o.height=n.positions[1][2]-(c?n.positions[0][2]:0))):(l&&(o.height=n.positions[0][2]),r&&(o.extrudedHeight=n.positions[1][2])),g=[...n.positions[0]])}))}else throw new Error(`HeightModifyEditingWrapper:${i.typeName} 坐标属性无法绑定高度修改编辑`);n.init(),n.enabled=!0;const s=this.ad(a.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(s.don(()=>{(!n.enabled||!n.startPosition||a.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};m(uh,"type",uh.registerEditing("ESCesiumViewer",a.ESJEditingMode.HeightModify,uh));let Pg=uh;const at=class at extends a.Destroyable{constructor(e,n,s,o=!0){super();m(this,"editingModes",[]);m(this,"editingID");m(this,"useKeyToSwitch");m(this,"currentIndex",0);m(this,"currentEditingMode");m(this,"currentEditingWrapper");m(this,"_notSupportedEditCount",this.disposeVar(a.react(0)));m(this,"_onEditEnd",()=>{this._cleanupCurrentWrapper(),this.notSupportedEditCount<this.editingModes.length&&a.nextAnimateFrame(()=>this._createEditingMode(this.currentIndex+1))});this.czmViewer=e,this.sceneObject=n;const r=(Array.isArray(s)?s:[s]).filter(l=>n.supportEditingModes().includes(l));if(this.editingModes=r,this.editingID=n.editingID,this.useKeyToSwitch=o,this.editingModes.length)console.log("[ESEditMode] 可用的编辑模式",r);else{console.warn("[ESEditMode] 无可用的编辑模式");return}if(!this.useKeyToSwitch){const l=this.editingModes.indexOf(this.czmViewer.editingMode);l===-1&&(this.czmViewer.editingMode=this.editingModes[0]),this.currentIndex=Math.max(0,l)}this._bindEvents(),this._createEditingMode(this.currentIndex),this._emitEditingEvent("start",{modes:this.editingModes})}get notSupportedEditCount(){return this._notSupportedEditCount.value}set notSupportedEditCount(e){this._notSupportedEditCount.value=e}get notSupportedEditCountChanged(){return this._notSupportedEditCount.changed}_emitEditingEvent(e,n){this.czmViewer.editingEvent.emit({objectIDs:[this.sceneObject.parentID],editingID:this.editingID,type:e,add:n})}_bindEvents(){this.ad(this.sceneObject.toDestroyEvent.don(at.stop)),this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===at.KEY_ESCAPE&&at.stop())),this.ad(this.czmViewer.dblclickEvent.don(e=>{var n;return((n=e.pointerEvent)==null?void 0:n.button)===at.MOUSE_LEFT&&a.nextAnimateFrame(()=>{at.stop()})})),this.useKeyToSwitch?this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===at.KEY_SPACE&&this._onEditEnd())):this.czmViewer.editingModeChanged&&this.ad(this.czmViewer.editingModeChanged.don(()=>{this.czmViewer.editingMode!==void 0&&(this._cleanupCurrentWrapper(),a.nextAnimateFrame(()=>this._createEditingMode(Math.max(0,this.editingModes.indexOf(this.czmViewer.editingMode)))))})),this.ad(()=>this._cleanupCurrentWrapper()),this.ad(this.notSupportedEditCountChanged.don(()=>{this.notSupportedEditCount>=this.editingModes.length&&at.stop()}))}_cleanupCurrentWrapper(){this.currentEditingWrapper&&!this.currentEditingWrapper.isDestroyed()&&this.currentEditingWrapper.destroy(),this.currentEditingWrapper=void 0}_createEditingMode(e){if(this.editingModes.length){e>=this.editingModes.length&&(e=0),this.currentIndex=e,this.currentEditingMode=this.editingModes[e];try{const n=a.EngineObject.contextEditing.getEngineObjConstructor(this.currentEditingMode,this.czmViewer.typeName);if(!n){this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd();return}this.currentEditingWrapper=new n(this.sceneObject,this.czmViewer),this._emitEditingEvent("changed",{cMode:this.currentEditingMode,cIndex:e}),this.notSupportedEditCount=0}catch(n){this.useKeyToSwitch&&this.notSupportedEditCount++,console.error(`[ESEditMode] 创建编辑模式${this.currentEditingMode}失败`,n),this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd()}}}static create(e,n,s,o=!0){at.stop(),at.esEditModeInstance=new at(e,n,s,o)}static stop(){const e=at.esEditModeInstance;if(e&&!e.isDestroyed()){const{czmViewer:n,sceneObject:s,editingID:o,editingModes:r}=e;e.destroy(),n.editingMode=void 0,n.editingEvent.emit({objectIDs:[s.parentID],editingID:o,type:"end",add:{modes:r}})}at.esEditModeInstance=void 0}};m(at,"KEY_ESCAPE","Escape"),m(at,"KEY_SPACE","Space"),m(at,"MOUSE_LEFT",0),m(at,"esEditModeInstance");let Hd=at;function xC(){const t=a.createProcessingFromAsyncFunc(async(i,e,n,s)=>{e.editingEvent.emit({objectIDs:n.map(h=>h.parentID),editingID:s,type:"start"});const o=()=>{e.editingEvent.emit({objectIDs:n.map(h=>h.parentID),editingID:s,type:"end"}),t.isRunning&&t.cancel()};i.disposer.ad(o);const r=h=>{h.code=="Escape"&&o()};i.disposer.ad(e.keyDownEvent.don(r));const l=new Gd(n,e);i.disposer.ad(()=>{!l.isDestroyed()&&l.destroy()}),await i.promise(new Promise(h=>{l.isDestroyed()&&h(),i.disposer.ad(l.toDestroyEvent.don(()=>{console.log("移动结束"),h()})),i.disposer.ad(e.dblclickEvent.don(()=>h()))}))});return t}class x2 extends a.Destroyable{constructor(i,e){super(),this._czmViewer=i,a.engineObjectCreatedUpdate(this,e,()=>{let n;const s=i.getEngineObject(e);e instanceof a.ESBoxClipping&&(n=s.czmBoxClippingPlanes),!(!n||!("computedClippingPlanes"in n)||!("computedClippingPlanesChanged"in n))&&(this.dispose(a.track([this._czmViewer,"sceneGlobeClippingPlanes"],[n,"computedClippingPlanes"])),this.dispose(()=>this._czmViewer.sceneGlobeClippingPlanes=void 0))})}}class A2 extends a.Destroyable{constructor(e){super();m(this,"_clippingPlanesSceneObjectWithId",this.disposeVar(new a.ESSceneObjectWithId));this.dispose(a.track([this._clippingPlanesSceneObjectWithId,"id"],[e,"sceneGlobeClippingPlanesId"])),this.disposeVar(new a.ObjResettingWithEvent(this._clippingPlanesSceneObjectWithId.sceneObjectChanged,()=>{const{sceneObject:n}=this._clippingPlanesSceneObjectWithId;if(n)return new x2(e,n)}))}}class E2 extends a.Destroyable{constructor(i){super(),this.dv(new a.ObjResettingWithEvent(i.sceneGlobeClippingPolygonsIdChanged,(e,n)=>{if(!(!e||e===n||e&&e.length===0))return new T2(i)}))}}class T2 extends a.Destroyable{constructor(i){super(),this._czmViewer=i,this.d(()=>this._czmViewer.sceneGlobeClippingPolygons=void 0);const e=this._czmViewer.sceneGlobeClippingPolygonsId,n=s=>{if(!s)return;const o=this.dv(a.createNextAnimateFrameEvent(s.positionsChanged,s.reverseChanged,s.enabledChanged,s.showHelperChanged));this.dv(new a.ObjResettingWithEvent(o,()=>{if(s)return new I2(i,s)}))};for(let s=0;s<e.length;s++){const o=e[s],r=a.ESSceneObject.getSceneObjById(o);if(!r)return;let l;r instanceof a.ESExcavate?a.engineObjectCreatedUpdate(this,r,()=>{l=i.getEngineObject(r).czmPolygonClipping,n(l)}):r instanceof a.ESHole&&a.engineObjectCreatedUpdate(this,r.excavate,()=>{l=i.getEngineObject(r.excavate).czmPolygonClipping,n(l)})}}}class I2 extends a.Destroyable{constructor(i,e){super(),this._czmViewer=i;const n=this._czmViewer.sceneGlobeClippingPolygonsId,s=e.enabled?e.reverse:void 0;if(n&&n.length>0){const o={polygons:[],enabled:!0,inverse:!1};for(let r=0;r<n.length;r++){const l=n[r],h=a.ESSceneObject.getSceneObjById(l);if(!h)return;let c;if(h instanceof a.ESExcavate?c=i.getEngineObject(h).czmPolygonClipping:h instanceof a.ESHole&&(c=i.getEngineObject(h.excavate).czmPolygonClipping),!c)return;c&&c.positions&&c.positions.length>=3&&c.enabled&&(o.polygons[r]={positions:c.positions},o.inverse=s??c.reverse)}this._czmViewer.sceneGlobeClippingPolygons=o}}}class M2 extends a.Destroyable{constructor(i,e){var r;super(),this._viewer=i;const n=(r=this._viewer.extensions)==null?void 0:r.pickingManager;if(!n)return;const{objectsToExclude:s}=n,o=Array.isArray(e)?[...e]:[e];for(const l of o){if(s.includes(l))throw new Error("objectsToExclude.includes(p)");s.push(l)}this.dispose(()=>{for(let l of o){const h=s.indexOf(l);if(h===-1)throw new Error("-1 === objectsToExclude.indexOf(p)");s.splice(h,1)}})}}class D2 extends a.Destroyable{constructor(e){var r;super();m(this,"_czmGlobeMaterial");this._czmViewer=e,this._czmGlobeMaterial=this.dv(new Ss(e)),this._czmGlobeMaterial.show=!0;let n=Object.assign({},Me.defaults.terrainShader,this._czmViewer.terrainShader),s=(r=this._czmViewer.viewer)==null?void 0:r.scene.preUpdate.addEventListener(()=>{var h;const l=n.elevationContour.show&&(((h=this._czmViewer.getCameraInfo())==null?void 0:h.position[2])??0)<=n.elevationContour.spacing*1e3;this._czmGlobeMaterial.enableContour!==l&&(this._czmGlobeMaterial.enableContour=l)});this.d(()=>{s&&s()});const o=()=>{n=Object.assign({},Me.defaults.terrainShader,this._czmViewer.terrainShader),this._czmGlobeMaterial.shadingMode="none",n.aspect.show&&(this._czmGlobeMaterial.shadingMode="aspect"),n.slope.show&&(this._czmGlobeMaterial.shadingMode="slope"),n.elevationRamp.show&&(this._czmGlobeMaterial.shadingMode="elevation"),this._czmGlobeMaterial.contourSpacing=n.elevationContour.spacing,this._czmGlobeMaterial.contourWidth=n.elevationContour.width,this._czmGlobeMaterial.contourColor=n.elevationContour.color,this._czmGlobeMaterial.elevationParam={minHeight:n.elevationRamp.minHeight,maxHeight:n.elevationRamp.maxHeight,color:n.elevationRamp.color}};o(),this.d(this._czmViewer.terrainShaderChanged.don(o))}get czmGlobeMaterial(){return this._czmGlobeMaterial}}async function R2(t,i){const e={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,navigationInstructionsInitiallyVisible:!1,scene3DOnly:!0,...i??{}},n=new d.Viewer(t,e);return n.imageryLayers.removeAll(),n.extend(d.viewerCesiumInspectorMixin),n.cesiumInspector.container.style.display="none",n.extend(d.viewerCesium3DTilesInspectorMixin),n.cesium3DTilesInspector.container.style.display="none",n.cesium3DTilesInspector.viewModel.picking=!1,n.clock.currentTime=d.JulianDate.fromDate(new Date("2022-04-19T20:00:53.10067292911116965Z")),n.scene.screenSpaceCameraController.lookEventTypes=[{eventType:d.CameraEventType.RIGHT_DRAG}],n.scene.screenSpaceCameraController.zoomEventTypes=[d.CameraEventType.WHEEL,d.CameraEventType.PINCH,{eventType:d.CameraEventType.RIGHT_DRAG,modifier:d.KeyboardEventModifier.SHIFT}],n.scene.screenSpaceCameraController.tiltEventTypes=[d.CameraEventType.MIDDLE_DRAG,d.CameraEventType.PINCH,{eventType:d.CameraEventType.LEFT_DRAG,modifier:d.KeyboardEventModifier.CTRL},{eventType:d.CameraEventType.RIGHT_DRAG,modifier:d.KeyboardEventModifier.CTRL}],n.screenSpaceEventHandler.removeInputAction(d.ScreenSpaceEventType.LEFT_CLICK),n.screenSpaceEventHandler.removeInputAction(d.ScreenSpaceEventType.LEFT_DOUBLE_CLICK),n._cesiumWidget._creditContainer.style.display="none",n}function k2(){d.Cesium3DTile.prototype.updateTransform=function(t,i){t=t??d.Matrix4.IDENTITY;const e=d.Matrix4.multiplyTransformation(t,this.transform,new d.Matrix4),n=!d.Matrix4.equals(e,this.computedTransform),s=d.defined(i)&&(this._verticalExaggeration!==i.verticalExaggeration||this._verticalExaggerationRelativeHeight!==i.verticalExaggerationRelativeHeight);if(!n&&!s)return;n&&d.Matrix4.clone(e,this.computedTransform),s&&(this._verticalExaggeration=i.verticalExaggeration,this._verticalExaggerationRelativeHeight=i.verticalExaggerationRelativeHeight);const o=this._header,r=this._contentHeader;this._boundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform),d.defined(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform)),d.defined(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(o.viewerRequestVolume,this.computedTransform)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()}}function F2(){Reflect.getOwnPropertyDescriptor(d.Camera.prototype,"_currentFlight")||Object.defineProperties(d.Camera.prototype,{_currentFlight:{get:function(){return this._vtxf_currentFlight},set:function(t){if(this._vtxf_currentFlight!==t){this._vtxf_currentFlight=t;var i=this._vtxf_currentFlight,e=t;this.currentFlightEvent.raiseEvent(e,i)}}},currentFlightEvent:{get:function(){return typeof this._vtxf_currentFlightEvent>"u"&&(this._vtxf_currentFlightEvent=new d.Event),this._vtxf_currentFlightEvent}}})}function z2(){const t=new d.Matrix4;function i(n,s){const o=n.positionWC;d.Matrix4.clone(n.transform,t),n.lookAtTransform(d.Matrix4.IDENTITY),n.look(o,s),n.lookAtTransform(t)}const e=Math.PI/60;d.Camera.prototype.lookLeft=function(n){n=n??e,this._mode!==d.SceneMode.SCENE2D&&i(this,-n)},d.Camera.prototype.lookRight=function(n){this.lookLeft(-n)}}function L2(){if(!d.DepthPlane.xbsjFixed){d.DepthPlane.xbsjFixed=!0;var t=d.DepthPlane.prototype.update;d.DepthPlane.prototype.update=function(){t.bind(this)(...arguments);var i=arguments[0];if(!this.hasXbsjIndexBuffer&&this._va){this.hasXbsjIndexBuffer=!0;var e=i.context,n=new d.Geometry({attributes:{position:new d.GeometryAttribute({componentDatatype:d.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:new Float32Array(15)})},indices:[0,1,4,1,3,4,3,2,4,2,0,4],primitiveType:d.PrimitiveType.TRIANGLES});this._va=d.VertexArray.fromGeometry({context:e,geometry:n,attributeLocations:{position:0},bufferUsage:d.BufferUsage.DYNAMIC_DRAW}),this._command.vertexArray=this._va}}}}function O2(t){const i=t.BoundingSphere,e=t.Cartesian3,n=t.defined,s=t.OrientedBoundingBox,o=t.Rectangle,r=t.TaskProcessor,l=t.TerrainData,h=t.TerrainEncoding,c=t.TerrainMesh,u=t.GoogleEarthEnterpriseTerrainData,p="createVerticesFromGoogleEarthEnterpriseBuffer",f=new r(p),g=new r(p,l.maximumAsynchronousTasks),v=new o,y=new o;u.prototype.createMesh=function(w){w=w??we.Frozen.EMPTY_OBJECT;const P=w.tilingScheme,C=w.x,S=w.y,A=w.level,E=w.exaggeration??1,R=w.exaggerationRelativeHeight??0,L=w.throttle??!0,N=P.ellipsoid;P.tileXYToNativeRectangle(C,S,A,v),P.tileXYToRectangle(C,S,A,y);const B=N.cartographicToCartesian(o.center(y));this._skirtHeight=6378137*.3;const F=(L?g:f).scheduleTask({buffer:this._buffer,nativeRectangle:v,rectangle:o.clone(y),relativeToCenter:B,ellipsoid:N,skirtHeight:this._skirtHeight,exaggeration:E,exaggerationRelativeHeight:R,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!n(F))return;const O=this;return F.then(function(_){return O._mesh=new c(B,new Float32Array(_.vertices),new Uint16Array(_.indices),_.indexCountWithoutSkirts,_.vertexCountWithoutSkirts,_.minimumHeight,_.maximumHeight,i.clone(_.boundingSphere3D),e.clone(_.occludeePointInScaledSpace),_.numberOfAttributes,s.clone(_.orientedBoundingBox),h.clone(_.encoding),_.westIndicesSouthToNorth,_.southIndicesEastToWest,_.eastIndicesNorthToSouth,_.northIndicesWestToEast),O._minimumHeight=_.minimumHeight,O._maximumHeight=_.maximumHeight,O._buffer=void 0,O._mesh})}}function N2(){return d.VERSION.split(".").map(i=>parseInt(i))}let bg;function B2(){return bg||(bg=N2()),bg}function V2(){const t=B2();t[0]===1&&t[1]>=92?O2(d):console.warn(`don't need to fixGoogleEarth, cesium version is ${t.join(".")}`)}function W2(){const t=d.Resource.prototype.fetchJson,i=d.Resource.prototype.fetchArrayBuffer;d.Resource.prototype.fetchJson=function(...e){if(this.url.startsWith(`https://${a.defaultLocalFileServer.prefix}`)){const n=this.url.substring(8);return a.defaultLocalFileServer.getJson(n)}else return t.call(this,...e)},d.Resource.prototype.fetchArrayBuffer=function(...e){if(this.url.startsWith(`https://${a.defaultLocalFileServer.prefix}`)){const n=this.url.substring(8);return a.defaultLocalFileServer.getArrayBuffer(n).then(s=>{if(!s)throw new Error("result is undefined!");return s})}else return i.call(this,...e)}}function U2(){const t=d.ModelSceneGraph.prototype.buildDrawCommands;d.ModelSceneGraph.prototype.buildDrawCommands=function(...i){const e=this._model,n=e.modelMatrix;e.modelMatrix=d.Matrix4.IDENTITY;const s=t.call(this,...i);return e.modelMatrix=n,s}}function G2(){const t=d.ShaderSource._czmBuiltinsAndUniforms;t.czm_materialInput.indexOf("vec4 color")===-1&&(t.czm_materialInput=t.czm_materialInput.replace("float aspect;","float aspect; vec4 color;"))}const H2=`#ifdef GL_OES_standard_derivatives
1925
+ `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},ke,t)}class v2 extends a.HasOwner{constructor(i){super(i);const{czmViewer:e}=this.owner;let n;this.dispose(()=>this.owner.hoveredPlaneType="none");const s=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(o=>{const r=n=this._getStartInfo(o.pointerEvent);r&&(this.owner.hoveredPlaneType=r.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(o=>{n&&n.currentPlaneType!=="none"&&(s.restart(void 0,e,n),n=void 0)})),this.dispose(e.dblclickEvent.disposableOn(o=>{const r=this._getStartInfo(o.pointerEvent);if(r&&r.currentPlaneType!=="none"){const{currentPlaneType:l}=r,h=[...this.owner.selfRotation];h[wi.rotationNum[l]]=0,this.owner.selfRotation=h;return}this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(a.createProcessingFromAsyncFunc(async(i,e,n)=>{const s=this.owner.circles[n.currentPlaneType];e.incrementDisabledInputStack(),i.disposer.dispose(()=>e.decrementDisabledInputStack()),i.disposer.dispose(e.pointerMoveEvent.don(o=>{if(n&&o.pointerEvent){const{offsetX:r,offsetY:l}=o.pointerEvent,h=[r,l],{currentPlaneType:c}=n;if(c==="none")return;const u=this.owner.getPlane(c);if(!n.currentV)return;const p=u.pick(h);if(!p||!this.owner.cartesian)return;const f=d.Cartesian3.subtract(n.currentV,this.owner.cartesian,new d.Cartesian3);d.Cartesian3.normalize(f,f);const g=d.Cartesian3.subtract(p,this.owner.cartesian,new d.Cartesian3);if(d.Cartesian3.normalize(g,g),!u.normal||!u.origin)return;const v=lg(f,g,u.normal),y=lg(u.origin,f,u.normal),w=lg(u.origin,g,u.normal);{const P=[...this.owner.selfRotation];P[wi.rotationNum[c]]=n.startRotation+v,this.owner.selfRotation=P,s.circleStartRotation=y,s.circleEndRotation=w}}})),this.owner.movingPlaneType=n.currentPlaneType,i.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),i.disposer.dispose(()=>{s.circleStartRotation=0,s.circleEndRotation=0}),await a.step(i,o=>new Promise((r,l)=>{o.disposer.dispose(l),o.disposer.dispose(e.pointerUpEvent.don(()=>{r()})),o.disposer.dispose(e.pointerOutEvent.don(()=>{r()}))}))}))}_pickPlane(i,e,n,s,o){const r=this.owner.cartesian;if(!r)return;const{selfRotation:l}=this.owner,h=this.owner.getPlane(n).pick(s);if(!h)return;const c=d.Cartesian3.distance(r,h),u=o/4,p=u*3/128;if(!(c>=u-p&&c<=u+p))return;const g=d.Cartesian3.distance(e.camera.positionWC,h);i.currentD2c<=g||(i.currentPlaneType=n,i.currentD2c=g,i.currentV=h,i.startRotation=l[wi.rotationNum[n]])}_getStartInfo(i){var u;const{czmViewer:e}=this.owner,n=(u=e.viewer)==null?void 0:u.scene;if(!this.owner.position||!this.owner.cartesian)return;const s=Ui(n,this.owner.cartesian,this.owner.pixelSize);if(!s)return;const{offsetX:o,offsetY:r}=i,l=[o,r],h=i.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:h};return this._pickPlane(c,n,"heading",l,s),this._pickPlane(c,n,"pitch",l,s),this._pickPlane(c,n,"roll",l,s),c}}function lg(t,i,e){const n=d.Cartesian3.cross(i,t,new d.Cartesian3);if(n.equals(d.Cartesian3.ZERO))return 0;d.Cartesian3.normalize(n,n);const s=d.Cartesian3.dot(n,e);let o=Math.acos(d.Cartesian3.dot(t,i))*180/Math.PI;return o=s>0?o:-o,o}const Zs=class Zs extends Zt{constructor(e){super();m(this,"_hoveredPlaneType",this.disposeVar(a.react("none")));m(this,"_movingPlaneType",this.disposeVar(a.react("none")));m(this,"_circles");m(this,"_czmCameraModel");m(this,"_cartesian");m(this,"_planes",{heading:this.disposeVar(new u2(this)),pitch:this.disposeVar(new p2(this)),roll:this.disposeVar(new f2(this))});m(this,"_rotatorRunningResetting");this._czmViewer=e;const n=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new a.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new v2(this)})),this._circles={heading:this._createRotatorCircle(n,"heading"),pitch:this._createRotatorCircle(n,"pitch"),roll:this._createRotatorCircle(n,"roll")},!!n.viewer){{const o=()=>{this._cartesian=this.position&&Se(this.position)||void 0};o(),this.dispose(this.positionChanged.disposableOn(o))}this._createCameraModel(n)}}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 ht(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(a.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],n=>n*.1)),this.dispose(a.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(a.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const n=()=>{const s=Re({rotation:this.selfRotation});if(!s)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=d.Matrix4.toArray(s))};n(),this.dispose(this.selfRotationChanged.disposableOn(n))}{const n=()=>{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)};n(),this.dispose(this.enabledChanged.disposableOn(n)),this.dispose(this.showHelperChanged.disposableOn(n))}}_createRotatorCircle(e,n){const s=this.ad(new ir(e));this.dispose(a.track([s,"position"],[this,"position"])),this.dispose(a.track([s,"pixelSize"],[this,"pixelSize"])),this.dispose(a.track([s,"debug"],[this,"debug"])),this.dispose(a.track([s,"rotation"],[this,"rotation"]));{const o=()=>{s.selfRotation=Zs.rotationFuncs[n](this.selfRotation),s.circleRotation=this.selfRotation[Zs.rotationNum[n]]};o(),this.dispose(this.selfRotationChanged.disposableOn(o))}{const o=()=>{const r=this.movingPlaneType===n,l=this.hoveredPlaneType===n,c=[0,0,0,r||l?1:.8];c[Zs.rotationNum[n]]=1,s.color=c};o(),this.dispose(this.movingPlaneTypeChanged.disposableOn(o)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(o))}return s}};m(Zs,"rotationNum",{heading:0,pitch:1,roll:2}),m(Zs,"rotationFuncs",{heading:([e,n,s])=>[0,0,0],pitch:([e,n,s])=>[e,0,-90],roll:([e,n,s])=>[e,n+90,0]});let wi=Zs;(t=>{t.createDefaultProps=()=>({...Zt.createDefaultProps(),rotation:a.reactArray([0,0,0]),selfRotation:a.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(wi||(wi={})),a.extendClassProps(wi.prototype,wi.createDefaultProps);const Qs=class Qs extends a.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(i){this.positions=[i??Qs.defaults.positions[0],this.stopPosition??Qs.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(i){this.positions=[this.startPosition??Qs.defaults.positions[0],i??Qs.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(i,e){if(super(),!i.viewer)return;const s=this.ad(new xe(i,e));s.arcType="RHUMB";const o=this.ad(new ti(i,e));this.ad(a.track([s,"allowPicking"],[this,"allowPicking"])),this.ad(a.track([o,"allowPicking"],[this,"allowPicking"]));{const r=()=>{s.show=o.show=this.show};r(),this.ad(this.showChanged.don(r))}{const r=()=>{s.width=this.width/2,o.pixelSize=this.width};r(),this.ad(this.widthChanged.don(r))}{const r=()=>{s.color=o.color=this.color};r(),this.ad(this.colorChanged.don(r))}{const r=()=>{s.positions=this.positions,o.position=this.stopPosition};r(),this.dispose(this.startPositionChanged.disposableOn(r)),this.dispose(this.stopPositionChanged.disposableOn(r))}}};m(Qs,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Bs=Qs;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:a.reactPositions(t.defaults.positions),width:10,color:a.reactArray([1,0,0,1])})})(Bs||(Bs={})),a.extendClassProps(Bs.prototype,Bs.createDefaultProps);class rn extends Zt{constructor(e){super();m(this,"_lastPosition");m(this,"_opInfo",{step:this.ad(a.react(!1)),moved:this.ad(a.react(!1)),constraintMode:this.disposeVar(a.react("none")),originPosition:this.disposeVar(a.reactArray([0,0,0])),originHeading:this.disposeVar(a.react(0)),originDimensions:this.disposeVar(a.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(a.reactArray([0,0,0])),movingPosition:this.disposeVar(a.reactArray([0,0,0])),targetPosition:this.disposeVar(a.reactArray([0,0,0])),targetHeading:this.disposeVar(a.react(0))});m(this,"_scaleAxis");m(this,"_pickingXYProcessing",e=>this.disposeVar(new a.Processing((n,s,o)=>{const r=[0,0,0],l=new d.Cartographic;return e.pointerMoveEvent.disposableOn(h=>{if(!h.pointerEvent||!e.viewer)return;const c=ci(a.getDomEventCurrentTargetPos(h.pointerEvent));if(!js(e.viewer.scene,c,this._opInfo.originPosition.value[2],l))return;is(l,r),this._opInfo.constraintMode.value==="x"?ss(this._opInfo.originPosition.value,this._opInfo.originHeading.value,r,r):this._opInfo.constraintMode.value==="y"?ss(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,r,r):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=r,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const u=[0,0,0];a.geoRhumbDestination(r,o,s,u),this._opInfo.targetPosition.value=u;let p=this.scale[0],f=this.scale[1];const g=a.geoDistance(u,this._opInfo.originPosition.value)-a.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...u];const v=this._opInfo.originDimensions.value[0]/100;g!=0&&this._opInfo.constraintMode.value==="y"&&(g>0?p+=v:p-=v),g!=0&&this._opInfo.constraintMode.value==="x"&&(g>0?f+=v:f-=v),p<=0&&(p+=v),f<=0&&(f+=v),this.scale=[p??1,f??1,this.scale[2]??1]})})));m(this,"_pickingZProcessing",e=>this.disposeVar(new a.Processing(()=>{const n=new d.Cartesian3,s=[0,0,0];return e.pointerMoveEvent.disposableOn(o=>{if(!o.pointerEvent||!e.viewer)return;const r=ci(a.getDomEventCurrentTargetPos(o.pointerEvent));if(!yh(e.viewer.scene,Se(this._opInfo.originPosition.value),r,n))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const l=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(oe(n,s)){this._opInfo.movingPosition.value=s;const h=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[h[0],h[1],s[2]+l];let c=this.scale[2];const u=s[2]-this._lastPosition[2];this._lastPosition=[...s];const p=this._opInfo.originDimensions.value[0]/100;u!=0&&(u>0?c+=p:c-=p),c<=0&&(c+=p),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const n=e.viewer;if(!n)return;const{scene:s}=n;this.ad(new wc(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 o=()=>{if(!this._scaleAxis)return;const{zAxis:r,yAxis:l,xAxis:h}=this._scaleAxis,c=this._opInfo.constraintMode.value,u=this._opInfo.step;r.color=[0,0,1,.99],l.color=[0,1,0,.99],h.color=[1,0,0,.99],c==="x"?h.color=u?[1,1,0,.8]:[1,1,0,.99]:c==="y"?l.color=u?[1,1,0,.8]:[1,1,0,.99]:c==="z"&&(r.color=u?[1,1,0,.8]:[1,1,0,.99])};o(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(o)),this.dispose(this._opInfo.step.changed.disposableOn(o))}{const o=()=>{if(!this._scaleAxis)return;const{position:l=rn.defaults.position}=this,{zAxis:h,yAxis:c,xAxis:u}=this._scaleAxis;h.startPosition=c.startPosition=u.startPosition=l;const[p,f,g]=l;h.stopPosition=[p,f,g+this._opInfo.originDimensions.value[2]];const v=a.geoRhumbDestination(l,this._opInfo.originDimensions.value[0],90);v&&(u.stopPosition=v);const y=a.geoRhumbDestination(l,this._opInfo.originDimensions.value[1],0);y&&(c.stopPosition=y)};o();const r=this.ad(a.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(r.don(o))}{const o=()=>{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,l)=>r===this._opInfo.targetPosition.value[l])){this._opInfo.moved.value=!0;return}};o(),this.dispose(this._opInfo.originHeading.changed.disposableOn(o)),this.dispose(this._opInfo.originPosition.changed.disposableOn(o)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(o)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(o))}{const o=this._pickingXYProcessing(e),r=this._pickingZProcessing(e),l=()=>{const f=[...this.position??rn.defaults.position];e.editingHeightOffset&&(f[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=f},h={constraintMode:"none",startDragPos:[0,0,0]},c=f=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};ac(f,s,g,this.axisSnapPixelSize,h),this._opInfo.constraintMode.value=h.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=h.startDragPos},u=this.disposeVar(a.createProcessingFromAsyncFunc(async f=>{this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",f.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await a.step(f,async g=>{g.disposer.dispose((l(),this.positionChanged.disposableOn(l))),g.disposer.dispose(e.pointerMoveEvent.disposableOn(v=>{v.pointerEvent&&c(v.pointerEvent)})),await a.step(g,v=>new Promise((y,w)=>{v.disposer.dispose(w),v.disposer.dispose(e.pointerDownEvent.don(P=>{P.pointerEvent&&c(P.pointerEvent),P.pointerEvent&&P.pointerEvent.button===0&&h.constraintMode!=="none"&&y()}))}))}),this._opInfo.step.value=!1,await a.step(f,async g=>{if(e.incrementDisabledInputStack(),g.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const v=a.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),y=a.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);o.restart(void 0,v,y),g.disposer.dispose(()=>o.cancel())}else this._opInfo.constraintMode.value==="z"&&(r.restart(),g.disposer.dispose(()=>r.cancel()));await a.step(g,v=>new Promise((y,w)=>{v.disposer.dispose(w),v.disposer.dispose(e.pointerUpEvent.don(()=>{y()})),v.disposer.dispose(e.pointerOutEvent.don(()=>{y()}))})),this._lastPosition=void 0}),u.restart()})),p=()=>{this.enabled?u.restart():u.isRunning&&u.cancel()};p(),this.dispose(this.enabledChanged.disposableOn(p))}}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,n){const s=this.ad(new Bs(e));return s.width=10,this.ad(a.track([s,"show"],[this,"enabled"])),s}}(t=>{t.createDefaultProps=()=>({...Zt.createDefaultProps(),scale:a.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(rn||(rn={})),a.extendClassProps(rn.prototype,rn.createDefaultProps);const ts=class ts extends Ut{constructor(e){super();m(this,"_editingPoints",this.disposeVar(new a.ObservableArray));m(this,"_cancelEvent",this.disposeVar(new a.Event));m(this,"_currentProcess");m(this,"_menuPoiEnabled",this.disposeVar(a.react(!1)));m(this,"_status",this.disposeVar(a.react("None")));m(this,"_positionsChanged",this.ad(new a.Event));m(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(n=>{for(let{start:s,deleteCount:o,items:r}of n){for(const l of r)l.menuPoi.enabled=this.menuPoiEnabled??!1;for(let l=s;l<s+o;++l)this.editingPoints.get(l).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let n of this.editingPoints)n.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(n=>{this.ad(()=>{var s;((s=n.pointerEvent)==null?void 0:s.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()})})),this.dispose(this.enabledChanged.disposableOn(n=>{this._currentProcess&&(n?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const n=()=>{this.polylineShow=this.czmViewer.editingLineShow};n(),this.ad(this.czmViewer.editingLineShowChanged.don(n))}}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 n of this._editingPoints)n.position&&e.push([...n.position]);return e}resetPositions(e){if(this.enabled??ts.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const n=e||[];return!(n.length===this.editingPoints.length&&n.every((s,o)=>s.every((r,l)=>{const h=this.editingPoints.get(o);return h.position&&h.position[l]===r})))}forceResetPositions(e){(this.enabled??ts.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 n=this.ad(new xe(e));this.ad(a.track([n,"color"],[this,"polylineColor"])),this.ad(a.track([n,"width"],[this,"polylineWidth"])),this.ad(a.track([n,"show"],[this,"polylineShow"])),this.ad(a.track([n,"arcType"],[this,"polylineArcType"])),this.ad(a.track([n,"loop"],[this,"loop"]));{const s=()=>{const o=[];for(const r of this.getPositions())r[2]-=e.editingHeightOffset??0,o.push(r);n.positions=o};s(),this.ad(this.positionsChanged.don(s))}}_createCursorInfo(e){const n=this._cursorInfo=this.ad(new a.CursorInfo(e.container,a.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const s=this.status;if(n){if(!this.hideCursorInfo){n.show=!1;return}s==="Adding"?(n.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",n.show=!0):s==="Modifying"||s==="Modifying_Point"?(n.text="Esc键或左键双击:退出编辑状态",n.show=!0):s==="None"&&(n.text="",n.show=!1)}}))}};m(ts,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),m(ts,"defaults",{...Ut.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:ts.baseImageUrl+"point-green.png",otherControlPointImageUrl:ts.baseImageUrl+"point-yellow.png"});let ri=ts;(t=>{t.createDefaultProps=()=>({...Ut.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:a.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})})(ri||(ri={})),a.extendClassProps(ri.prototype,ri.createDefaultProps);let y2=0;class mC extends a.Destroyable{constructor(e,n){super();m(this,"_position",this.disposeVar(a.reactArrayWithUndefined(void 0)));m(this,"_id",y2++);m(this,"_menuPoi");n&&(this.position=n),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const s=this._menuPoi=this.ad(new ao(e.czmViewer));s.enabled=!1,this.ad(a.track([s,"show"],[e,"enabled"]));{const o=()=>{if(this.position===void 0){s.position=void 0;return}const r=[...this.position];r[2]-=e.czmViewer.editingHeightOffset??0,s.position=r,e.positionsChanged.emit()};o(),this.d(this.positionChanged.don(o))}{const o=()=>{const r=e.editingPoints.indexOf(this)+1;r!==0&&(s.title=`控制点${r}`,r===1?s.imageUri=e.firstControlPointImageUrl??ri.defaults.firstControlPointImageUrl:s.imageUri=e.otherControlPointImageUrl??ri.defaults.otherControlPointImageUrl)};o(),this.dispose(e.editingPoints.changedEvent.disposableOn(o))}}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 vC extends mC{constructor(i,e){super(i,e)}}class Xe extends ri{constructor(e){super(e);m(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new a.Event));m(this,"placeEditing");if(!e.viewer)return;const n=this.placeEditing=this.ad(new Oi(e));n.enabled=!1,this.currentProcess=this.disposeVar(a.createProcessingFromAsyncFunc(async s=>{s.disposer.dispose(()=>{(this.debug??Xe.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Xe.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await s.promise(a.step(s,async o=>{const r=o.disposer,l=r.ad(this._addingEditingProcessing());r.dispose(()=>"adding canceled!"),r.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),await o.promise(new Promise(h=>{r.dispose(l.completeEvent.disposableOnce(h))}))}))})),this.dispose(e.clickEvent.don(s=>{var o;((o=s.pointerEvent)==null?void 0:o.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const n=e?e.map(s=>new vC(this,s)):[];return this.editingPoints.splice(0,this.editingPoints.length,...n),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Xe.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},n=a.createProcessingFromAsyncFunc(async s=>{let o=this.editingPoints.length;this.menuPoiEnabled=!1,await s.promise(a.step(s,async l=>{let h;!e()&&(h=l.disposer.disposeVar(new w2(this,o)));const u=l.disposer.disposeVar(new _2(this,o));return l.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>u.do())),await l.promise(new Promise(p=>{h&&l.disposer.dispose(h.overEvent.disposableOnce(f=>{f?(o++,p(!0)):p(!1)})),l.disposer.dispose(u.overEvent.disposableOnce(f=>{f?(o--,p(!0)):p(!1)})),l.disposer.dispose(this.cancelEvent.disposableOn(()=>p(!1)))}))}))&&n.restart()});return n.start(),n}}(t=>{t.createDefaultProps=()=>({...ri.createDefaultProps()})})(Xe||(Xe={})),a.extendClassProps(Xe.prototype,Xe.createDefaultProps);class w2 extends a.Destroyable{constructor(e,n){super();m(this,"_overEvent",this.disposeVar(new a.Event));const{placeEditing:s}=e;let o=new vC(e,void 0);e.editingPoints.splice(n,0,o);const r=()=>{(e.debug??Xe.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(o);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(s.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(a.track([o,"position"],[s,"position"])),s.enabled=!0;let l=!1;const h=()=>{r(),this._overEvent.emit(!1)};this.dispose(()=>{s.enabled=!1,!l&&h()}),this.dispose(s.overEvent.disposableOnce(()=>{l=!0,o.position===void 0?h():this._overEvent.emit(!0)})),(e.debug??Xe.defaults.debug)&&console.log(`PointAdding creating! index(${n})`),this.dispose(()=>{(e.debug??Xe.defaults.debug)&&console.log(`PointAdding destroying! index(${n})`)})}get overEvent(){return this._overEvent}}function C2(t,i){const e=t.editingPoints,n=i-1;return n<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(n,1),!0)}class _2 extends a.Destroyable{constructor(e,n){super();m(this,"_overEvent",this.disposeVar(new a.Event));m(this,"_doEvent",this.disposeVar(new a.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(C2(e,n)))),(e.debug??Xe.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${n})`),this.dispose(()=>{(e.debug??Xe.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${n})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class yC extends Xe{constructor(i){super(i),this.loop=!1}}class wC extends Xe{constructor(i){super(i),this.loop=!0}}class Ud extends mC{constructor(i,e){super(i,e);{const{menuPoi:n}=this;n.commands=[["add","增加控制点","",Ee.baseImageUrl+"add.png"],["delete","删除当前控制点","",Ee.baseImageUrl+"delete.png"],["modify","修改当前控制点","",Ee.baseImageUrl+"modify.png"]],n.clickCommandName="modify",n.rightClickCommandName="delete",this.dispose(n.commandEvent.disposableOn(s=>{i.menuPoiCommand(this,s)})),this.dispose(n.dbclickEvent.disposableOn(()=>{i.menuPoiCommand(this,"dbClick")}))}if(i.middlePointShow){const n=this.ad(new _i(i.czmViewer));{n.imageUri=i.firstControlPointImageUrl??Ee.defaults.firstControlPointImageUrl,n.tooltip="点击增加一个控制点",n.bgColor=[0,0,0,.6],n.fgColor=[1,1,1,1],n.size=[8,8],n.originRatioAndOffset=[.5,.5,0,0];{const s=()=>{n.enabled=n.show=!1},o=()=>{var g;if(!(i.enabled??Ee.defaults.enabled))return s();const r=i.editingPoints.indexOf(this),l=i.editingPoints,h=l.length;if(r===-1||h===0||!(i.loop??Ee.defaults.loop)&&r+1>=h)return s();const c=this.position;if(!c)return s();const u=(g=l.get((r+1)%h))==null?void 0:g.position;if(!u)return s();const p=cc(c,u);if(!p)return s();p[2]-=i.czmViewer.editingHeightOffset??0,n.position=p;const f=h<(i.maxPointsNum??Ee.defaults.maxPointsNum);n.enabled=n.show=f};o(),this.dispose(i.positionsChanged.disposableOn(o)),this.dispose(i.loopChanged.disposableOn(o)),this.dispose(i.enabledChanged.disposableOn(o))}this.dispose(n.clickEvent.disposableOn(s=>{if(s.button!==0||i.editingPoints.length>=(i.maxPointsNum??Ee.defaults.maxPointsNum))return;const o=i.editingPoints.indexOf(this);if(o===-1)return;const r=n.position?[...n.position]:void 0;r&&(r[2]+=i.czmViewer.editingHeightOffset??0);let l=new Ud(i,r);i.editingPoints.splice(o+1,0,l),i.modify(l)}))}}}}class Ee extends ri{constructor(e){super(e);m(this,"_menuPoiCommand",this.disposeVar(new a.Event));m(this,"_forceModifyPosEditorEvent",this.disposeVar(new a.Event));m(this,"_overEvent",this.disposeVar(new a.Event));m(this,"translationEditing");{const o=this.ad(a.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new a.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new P2(this.editingPoints.get(0),this)}))}const n=this.translationEditing=this.disposeVar(new on(e));n.enabled=!1;const s=async(o,r)=>{if((this.debug??Ee.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(a.step(o,async l=>{const h=l.disposer,c=h.ad(new b2(this));return h.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&c.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),h.dispose(this.cancelEvent.disposableOn(()=>c.cancel())),h.dispose(this._forceModifyPosEditorEvent.disposableOn(p=>c.modify(p))),await l.promise(new Promise(p=>{h.dispose(c.overEvent.disposableOnce(f=>{p(f)}))}))})),r===-1)(this.debug??Ee.defaults.debug)&&console.log("退出编辑状态");else{if(this.editingPoints.length>=(this.maxPointsNum??Ee.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??Ee.defaults.loop;const h=this.editingPoints.get(r-1).position;if(!h)return;let c=r%this.editingPoints.length;const p=this.editingPoints.get(c).position;if(!p)return;const f=cc(h,p);if(!f)return;f&&(f[2]+=this.czmViewer.editingHeightOffset??0);let g=new Ud(this,f);this.editingPoints.splice(r,0,g),await s(o,r)}};this.currentProcess=this.disposeVar(a.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Ee.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),await s(o,-1),this.status="None",this.enabled=!1}))}menuPoiCommand(e,n){this._menuPoiCommand.emit(e,n)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const n=e?e.map(s=>new Ud(this,s)):[];return this.editingPoints.splice(0,this.editingPoints.length,...n),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...ri.createDefaultProps(),moveWithFirstPosition:!1})})(Ee||(Ee={})),a.extendClassProps(Ee.prototype,Ee.createDefaultProps);class P2 extends a.Destroyable{constructor(i,e){super(),this._firstPositionEditor=i,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((n,s)=>{if(n===void 0||s===void 0)return;var o=[n[0]-s[0],n[1]-s[1],n[2]-s[2]];const r=this.multiPointsModifyEditing.editingPoints.length;for(let l=1;l<r;l++){const h=this.multiPointsModifyEditing.editingPoints.get(l),c=h.position;c!==void 0&&(h.position=[c[0]+o[0],c[1]+o[1],c[2]+o[2]])}})}}class b2 extends a.Destroyable{constructor(e){super();m(this,"_overEvent",this.disposeVar(new a.Event));m(this,"_cancelEvent",this.disposeVar(new a.Event));m(this,"_forceModifyPosEditorEvent",this.disposeVar(new a.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let n;const s=()=>{n==null||n.destroy(),n=void 0,e.status="Modifying"};this.dispose(s);const o=r=>{s(),e.status="Modifying_Point",n=new S2(e,r),n.dispose(n.overEvent.disposableOn(()=>{s()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(o)),this.dispose(e._menuPoiCommand.disposableOn((r,l)=>{if(l==="delete"){if(e.editingPoints.length<=2)return;const h=e.editingPoints.indexOf(r);if(h===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(h,1)}else if(l==="modify")o(r);else if(l==="add"){const h=e.editingPoints.indexOf(r);if(h===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(h+1)}else l==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${l})`)})),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 S2 extends a.Destroyable{constructor(e,n){super();m(this,"_overEvent",this.disposeVar(new a.Event));this._modifying=e,this._posEditor=n,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:s}=this._modifying;if(s.enabled=!0,s.heading=0,this.dispose(()=>{s.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");s.position=this._posEditor.position,this.dispose(a.track([this._posEditor,"position"],[s,"position"])),this.dispose(s.enabledChanged.disposableOnce(o=>{o||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class CC extends Ee{constructor(i){super(i),this.loop=!1}}class _C extends Ee{constructor(i){super(i),this.loop=!0}}class nr extends Xe{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,s=e*Math.cos(n[1]*Math.PI/180),o=a.geoDestination(i,s,n[0]);if(!o){this.positions=[i];return}const r=e*Math.sin(n[1]*Math.PI/180);o[2]+=r,this.positions=[i,o],this.editingPoints.length==2&&(this.editingPoints.get(0).position=i,this.editingPoints.get(1).position=o)}constructor(i){super(i),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 n=a.geoHeading(this.startPosition,this.endPosition),s=a.geoDistance(this.startPosition,this.endPosition);if(s<=0){this.rotation=[90,0,0],this.distance=1;return}const o=this.endPosition[2]-this.startPosition[2],r=Math.atan(o/s)*180/Math.PI,l=Math.sqrt(s*s+o*o);this.rotation=[n,r,0],this.distance=l};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Xe.createDefaultProps(),startPosition:a.reactArrayWithUndefined(void 0),endPosition:a.reactArrayWithUndefined(void 0),rotation:a.reactArray([90,0,0]),distance:a.react(1)})})(nr||(nr={})),a.extendClassProps(nr.prototype,nr.createDefaultProps);class Vs extends Ee{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,s=e*Math.cos(n[1]*Math.PI/180),o=a.geoDestination(i,s,n[0]);if(!o){this.positions=[i];return}const r=e*Math.sin(n[1]*Math.PI/180);o[2]+=r,this.positions=[i,o],this.editingPoints.length==2&&(this.editingPoints.get(0).position=i,this.editingPoints.get(1).position=o)}constructor(i){super(i),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{var l;if(!((l=this.positions)!=null&&l.length))return this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];if(this.startPosition=this.positions[0],this.positions.length==1)return this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",Ee.baseImageUrl+"add.png"],["delete","删除当前控制点","",Ee.baseImageUrl+"delete.png"],["modify","修改当前控制点","",Ee.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;this.endPosition=this.positions[1];for(let h of this.editingPoints)h.menuPoi.commands=[["delete","删除当前控制点","",Ee.baseImageUrl+"delete.png"],["modify","修改当前控制点","",Ee.baseImageUrl+"modify.png"]];const n=a.geoDistance(this.startPosition,this.endPosition);if(Math.abs(n)<=0)return this.rotation=[90,0,0],this.distance=1;const s=a.geoHeading(this.startPosition,this.endPosition),o=this.endPosition[2]-this.startPosition[2],r=Math.atan(o/n)*180/Math.PI;this.rotation=[s,r,0],this.distance=Math.hypot(n,o)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Ee.createDefaultProps(),startPosition:a.reactArrayWithUndefined(void 0),endPosition:a.reactArrayWithUndefined(void 0),rotation:a.reactArray([0,0,0]),distance:a.react(0)})})(Vs||(Vs={})),a.extendClassProps(Vs.prototype,Vs.createDefaultProps);class PC extends Xe{constructor(i){super(i),this.loop=!1,this.polylineShow=!1}}class bC extends Ee{constructor(i){super(i),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class sr extends Xe{constructor(i){super(i),i.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const n=[...this.positions[0]];n[2]-=i.editingHeightOffset??0,this.visibilityPositions=this.positions.map(s=>(s[2]-=i.editingHeightOffset??0,[n,s]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(i){const e=this.ad(new fi(i));e.topOrBottom="bottom",this.ad(a.track([e,"color"],[this,"polylineColor"])),this.ad(a.track([e,"width"],[this,"polylineWidth"])),this.ad(a.track([e,"show"],[this,"polylineShow"])),this.ad(a.track([e,"arcType"],[this,"polylineArcType"])),this.ad(a.track([e,"loop"],[this,"loop"])),this.ad(a.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Xe.createDefaultProps(),visibilityPositions:a.reactPositionsSet(void 0)})})(sr||(sr={})),a.extendClassProps(sr.prototype,sr.createDefaultProps);class or extends Ee{constructor(i){if(super(i),!!i.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const n=[...this.positions[0]];n[2]-=i.editingHeightOffset??0,this.visibilityPositions=this.positions.map(s=>(s[2]-=i.editingHeightOffset??0,[n,s]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(i){const e=this.ad(new fi(i));e.topOrBottom="bottom",this.ad(a.track([e,"color"],[this,"polylineColor"])),this.ad(a.track([e,"width"],[this,"polylineWidth"])),this.ad(a.track([e,"show"],[this,"polylineShow"])),this.ad(a.track([e,"arcType"],[this,"polylineArcType"])),this.ad(a.track([e,"loop"],[this,"loop"])),this.ad(a.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Ee.createDefaultProps(),visibilityPositions:a.reactPositionsSet(void 0)})})(or||(or={})),a.extendClassProps(or.prototype,or.createDefaultProps);class SC extends Vs{constructor(i){super(i),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 Pt extends a.EngineObject{constructor(e,n,s){super(e,n,s??!0);m(this,"_currentEditing",this.disposeVar(a.react(void 0)));this.ad(this.toDestroyEvent.don(()=>{var o;if(this.currentEditing)if(this.currentEditing instanceof Xe&&((o=this.currentEditing.currentProcess)!=null&&o.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 this.currentEditing instanceof Oi&&this.currentEditing.enabled&&(e.position=[0,0,0])}))}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Jl=class Jl extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new Oi(e));if(this.ad(e.clickEvent.don(s=>{var o;((o=s.pointerEvent)==null?void 0:o.button)==2&&(n.enabled=!0)})),Reflect.has(i,"position")){const s=i;this.ad(a.bind([n,"position"],[s,"position"])),n.enabled=!n.position||a.equalsN3(n.position,[0,0,0])}else throw new Error(`PlaceEditingWrapper:${i.typeName} 坐标属性无法绑定位置编辑`)}};m(Jl,"type",Jl.registerEditing("ESCesiumViewer",a.ESJEditingMode.Place,Jl));let hg=Jl;const jl=class jl extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new wi(e));if(n.rotation=[90,0,0],this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),i instanceof a.ES3DTileset)a.engineObjectCreatedUpdate(this,i,()=>{const s=e.getEngineObject(i);s&&(this.ad(a.bind([n,"position"],[s.czm3DTiles,"position"])),this.ad(a.bind([n,"selfRotation"],[i,"rotation"])))});else if(Reflect.has(i,"position")&&Reflect.has(i,"rotation")){const s=i;this.ad(a.bind([n,"position"],[s,"position"])),this.ad(a.bind([n,"selfRotation"],[s,"rotation"]))}else throw new Error(`RotationEditingWrapper:${i.typeName} 旋转属性无法绑定旋转编辑`)}};m(jl,"type",jl.registerEditing("ESCesiumViewer",a.ESJEditingMode.Rotation,jl));let dg=jl;const eh=class eh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new rn(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"position")&&Reflect.has(i,"scale")){const s=i;this.ad(a.bind([n,"position"],[s,"position"])),this.ad(a.bind([n,"scale"],[s,"scale"]))}else throw new Error(`ScaleEditingWrapper:${i.typeName} 缩放属性无法绑定缩放编辑`)}};m(eh,"type",eh.registerEditing("ESCesiumViewer",a.ESJEditingMode.Scale,eh));let cg=eh;const th=class th extends Pt{constructor(i,e){super(Array.isArray(i)?i[0]:i,e,!0);const n=this.currentEditing=this.ad(new on(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Array.isArray(i)){const s=[];for(let o=0;o<i.length;o++){const r=i[o];Reflect.has(r,"position")?s.push(r.position):r.points&&s.push(...r.points)}n.position=a.getMinMaxCorner(s).center,this.ad(n.positionChanged.disposableOn((o,r)=>{if(!(!o||!r)){var l=Dt({originPosition:r},[o])[0][0];i.forEach(h=>{const c=h;if(Reflect.has(h,"position")){const u=Dt({originPosition:r},[c.position])[0][0];c.position=Cn({originPosition:r},[[u[0]+l[0],u[1]+l[1],u[2]+l[2]]])[0][0]}else if(Reflect.has(c,"points")&&c.points){const u=Dt({originPosition:r},c.points)[0];c.points=Cn({originPosition:r},u.map(p=>[p[0]+l[0],p[1]+l[1],p[2]+l[2]]))[0]}})}}))}else if(Reflect.has(i,"position"))this.ad(a.bind([n,"position"],[i,"position"]));else if(i instanceof a.ES3DTileset)a.engineObjectCreatedUpdate(this,i,()=>{const s=e.getEngineObject(i);this.ad(a.bind([n,"position"],[s.czm3DTiles,"position"]))});else if(Reflect.has(i,"points")){const s=i;if(s.points===void 0||s.points.length===0){this.destroy();return}n.position=a.getMinMaxCorner(s.points).center,this.ad(n.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||s.points===void 0||s.points.length===0){this.destroy();return}var l=Dt({originPosition:r},[o])[0][0];const h=Dt({originPosition:r},s.points)[0];s.points=Cn({originPosition:r},h.map(c=>[c[0]+l[0],c[1]+l[1],c[2]+l[2]]))[0]}))}else throw new Error(`TranslationEditingWrapper:${i.typeName} 坐标属性无法绑定平移编辑`)}};m(th,"type",th.registerEditing("ESCesiumViewer",a.ESJEditingMode.Translation,th));let Gd=th;const ih=class ih extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new nr(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"position")){const s=i;if(this.ad(a.bind([n,"startPosition"],[s,"position"])),this.ad(je([n,"rotation"],[s,"rotation"])),Reflect.has(s,"far"))this.ad(a.bind([n,"distance"],[s,"far"]));else if(Reflect.has(s,"radius"))this.ad(a.bind([n,"distance"],[s,"radius"]));else if(Reflect.has(s,"distance"))this.ad(a.bind([n,"distance"],[s,"distance"]));else{const o=Se(s.position);if(d.Cartesian3.ZERO.equals(o)||!e.viewer)return;n.distance=Ui(e.viewer.scene,o,100)??1}}else if(Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`DoublePointsAppendEditingWrapper:${i.typeName} 坐标属性无法绑定双点追加编辑`);n.startPosition&&!a.equalsN3(n.startPosition,[0,0,0])&&n.init(),n.enabled=!0}};m(ih,"type",ih.registerEditing("ESCesiumViewer",a.ESJEditingMode.DoublePointsAppend,ih));let ug=ih;const nh=class nh extends Pt{constructor(i,e){if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new Vs(e));if(Reflect.has(i,"position")){const o=i;if(this.ad(a.bind([n,"startPosition"],[o,"position"])),this.ad(je([n,"rotation"],[o,"rotation"])),Reflect.has(o,"far"))this.ad(a.bind([n,"distance"],[o,"far"]));else if(Reflect.has(o,"radius"))this.ad(a.bind([n,"distance"],[o,"radius"]));else if(Reflect.has(o,"distance"))this.ad(a.bind([n,"distance"],[o,"distance"]));else{const r=Se(o.position);if(d.Cartesian3.ZERO.equals(r)||!e.viewer)return;n.distance=Ui(e.viewer.scene,r,100)??1}}else if(Reflect.has(i,"points")){const o=i;if(o.points.length!=2)throw new Error(`DoublePointsModifyEditingWrapper:${i.typeName} 坐标属性无法绑定双点修改编辑`);n.moveWithFirstPosition=!1;const r=()=>n.positions=o.points??[];r(),this.ad(o.pointsChanged.don(()=>!n.enabled&&r())),this.ad(a.track([o,"points"],[n,"positions"]))}else throw new Error(`DoublePointsModifyEditingWrapper:${i.typeName} 坐标属性无法绑定双点修改编辑`);n.init(),n.enabled=!0;const s=this.ad(a.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(s.don(()=>{(!n.enabled||!n.startPosition||a.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};m(nh,"type",nh.registerEditing("ESCesiumViewer",a.ESJEditingMode.DoublePointsModify,nh));let pg=nh;const sh=class sh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new wC(e));this.ad(n.enabledChanged.don(o=>{!o&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))}));const s=i;if(Reflect.has(s,"points")){const o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`CircularAppendEditingWrapper:${s.typeName} 坐标属性无法绑定环形追加编辑`)}};m(sh,"type",sh.registerEditing("ESCesiumViewer",a.ESJEditingMode.CircularAppend,sh));let fg=sh;const oh=class oh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new _C(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`CircularInsertEditingWrapper:${i.typeName} 坐标属性无法绑定环形插值编辑`)}};m(oh,"type",oh.registerEditing("ESCesiumViewer",a.ESJEditingMode.CircularInsert,oh));let gg=oh;const rh=class rh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new yC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`LineStringAppendEditingWrapper:${i.typeName} 坐标属性无法绑定线段追加编辑`)}};m(rh,"type",rh.registerEditing("ESCesiumViewer",a.ESJEditingMode.LineStringAppend,rh));let mg=rh;const ah=class ah extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new CC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`LineStringInsertEditingWrapper:${i.typeName} 坐标属性无法绑定线段插入编辑`)}};m(ah,"type",ah.registerEditing("ESCesiumViewer",a.ESJEditingMode.LineStringInsert,ah));let vg=ah;const lh=class lh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new PC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`ScatterAppendEditingWrapper:${i.typeName} 坐标属性无法绑定散点追加编辑`)}};m(lh,"type",lh.registerEditing("ESCesiumViewer",a.ESJEditingMode.ScatterAppend,lh));let yg=lh;const hh=class hh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new bC(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`ScatterModifyEditingWrapper:${i.typeName} 坐标属性无法绑定散点修改编辑`)}};m(hh,"type",hh.registerEditing("ESCesiumViewer",a.ESJEditingMode.ScatterModify,hh));let wg=hh;const dh=class dh extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new sr(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`VisibilityAppendEditingWrapper:${i.typeName} 坐标属性无法绑定可见性追加编辑`)}};m(dh,"type",dh.registerEditing("ESCesiumViewer",a.ESJEditingMode.VisibilityAppend,dh));let Cg=dh;const ch=class ch extends Pt{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new or(e));if(this.ad(n.enabledChanged.don(s=>{!s&&this.ad(a.nextAnimateFrame(()=>{this.destroy()}))})),Reflect.has(i,"points")){const s=i,o=()=>n.positions=s.points??[];o(),this.ad(s.pointsChanged.don(()=>!n.enabled&&o())),n.enabled=!0,this.ad(a.track([s,"points"],[n,"positions"]))}else throw new Error(`VisibilityModifyEditingWrapper:${i.typeName} 坐标属性无法绑定可见性修改编辑`)}};m(ch,"type",ch.registerEditing("ESCesiumViewer",a.ESJEditingMode.VisibilityModify,ch));let _g=ch;const uh=class uh extends Pt{constructor(i,e){if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new SC(e));if(Reflect.has(i,"points")){const o=i,r=Reflect.has(o,"extrudedHeight"),l=Reflect.has(o,"height"),h=Reflect.has(o,"perPositionHeight")?o.perPositionHeight:!r,c=[a.ESClassification,a.ESPolygonFence,a.ESSunshineAnalysis].some(v=>o instanceof v);let u=a.getMinMaxCorner(o.points).center;u[2]=o.points[0][2];let p=[...u],f=c?o.points[0][2]:0;h?r?p[2]=o.extrudedHeight:p[2]=o.height+f:(l&&(u[2]=o.height),r&&(p[2]=o.extrudedHeight)),n.startPosition=u,n.distance=p[2]-u[2],n.moveWithFirstPosition=!1;let g=[...u];this.ad(n.positionsChanged.don(()=>{n.positions.length===2&&(h?(o.points=o.points.map(v=>[v[0],v[1],v[2]+n.positions[0][2]-g[2]]),r?o.extrudedHeight=n.positions[1][2]:l&&(o.height=n.positions[1][2]-(c?n.positions[0][2]:0))):(l&&(o.height=n.positions[0][2]),r&&(o.extrudedHeight=n.positions[1][2])),g=[...n.positions[0]])}))}else throw new Error(`HeightModifyEditingWrapper:${i.typeName} 坐标属性无法绑定高度修改编辑`);n.init(),n.enabled=!0;const s=this.ad(a.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(s.don(()=>{(!n.enabled||!n.startPosition||a.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};m(uh,"type",uh.registerEditing("ESCesiumViewer",a.ESJEditingMode.HeightModify,uh));let Pg=uh;const at=class at extends a.Destroyable{constructor(e,n,s,o=!0){super();m(this,"editingModes",[]);m(this,"editingID");m(this,"useKeyToSwitch");m(this,"currentIndex",0);m(this,"currentEditingMode");m(this,"currentEditingWrapper");m(this,"_notSupportedEditCount",this.disposeVar(a.react(0)));m(this,"_onEditEnd",()=>{this._cleanupCurrentWrapper(),this.notSupportedEditCount<this.editingModes.length&&a.nextAnimateFrame(()=>this._createEditingMode(this.currentIndex+1))});this.czmViewer=e,this.sceneObject=n;const r=(Array.isArray(s)?s:[s]).filter(l=>n.supportEditingModes().includes(l));if(this.editingModes=r,this.editingID=n.editingID,this.useKeyToSwitch=o,this.editingModes.length)console.log("[ESEditMode] 可用的编辑模式",r);else{console.warn("[ESEditMode] 无可用的编辑模式");return}if(!this.useKeyToSwitch){const l=this.editingModes.indexOf(this.czmViewer.editingMode);l===-1&&(this.czmViewer.editingMode=this.editingModes[0]),this.currentIndex=Math.max(0,l)}this._bindEvents(),this._createEditingMode(this.currentIndex),this._emitEditingEvent("start",{modes:this.editingModes})}get notSupportedEditCount(){return this._notSupportedEditCount.value}set notSupportedEditCount(e){this._notSupportedEditCount.value=e}get notSupportedEditCountChanged(){return this._notSupportedEditCount.changed}_emitEditingEvent(e,n){this.czmViewer.editingEvent.emit({objectIDs:[this.sceneObject.parentID],editingID:this.editingID,type:e,add:n})}_bindEvents(){this.ad(this.sceneObject.toDestroyEvent.don(at.stop)),this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===at.KEY_ESCAPE&&at.stop())),this.ad(this.czmViewer.dblclickEvent.don(e=>{var n;return((n=e.pointerEvent)==null?void 0:n.button)===at.MOUSE_LEFT&&a.nextAnimateFrame(()=>{at.stop()})})),this.useKeyToSwitch?this.ad(this.czmViewer.keyDownEvent.don(e=>e.code===at.KEY_SPACE&&this._onEditEnd())):this.czmViewer.editingModeChanged&&this.ad(this.czmViewer.editingModeChanged.don(()=>{this._cleanupCurrentWrapper(),this.czmViewer.editingMode!==void 0&&a.nextAnimateFrame(()=>this._createEditingMode(Math.max(0,this.editingModes.indexOf(this.czmViewer.editingMode))))})),this.ad(()=>this._cleanupCurrentWrapper()),this.ad(this.notSupportedEditCountChanged.don(()=>{this.notSupportedEditCount>=this.editingModes.length&&at.stop()}))}_cleanupCurrentWrapper(){this.currentEditingWrapper&&!this.currentEditingWrapper.isDestroyed()&&this.currentEditingWrapper.destroy(),this.currentEditingWrapper=void 0}_createEditingMode(e){if(this.editingModes.length){e>=this.editingModes.length&&(e=0),this.currentIndex=e,this.currentEditingMode=this.editingModes[e];try{const n=a.EngineObject.contextEditing.getEngineObjConstructor(this.currentEditingMode,this.czmViewer.typeName);if(!n){this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd();return}this.currentEditingWrapper=new n(this.sceneObject,this.czmViewer),this._emitEditingEvent("changed",{cMode:this.currentEditingMode,cIndex:e}),this.notSupportedEditCount=0}catch(n){this.useKeyToSwitch&&this.notSupportedEditCount++,console.error(`[ESEditMode] 创建编辑模式${this.currentEditingMode}失败`,n),this._emitEditingEvent("changedFailed",{cMode:this.currentEditingMode,cIndex:this.currentIndex}),this._onEditEnd()}}}static create(e,n,s,o=!0){at.stop(),at.esEditModeInstance=new at(e,n,s,o)}static stop(){const e=at.esEditModeInstance;if(e&&!e.isDestroyed()){const{czmViewer:n,sceneObject:s,editingID:o,editingModes:r}=e;e.destroy(),n.editingMode=void 0,n.editingEvent.emit({objectIDs:[s.parentID],editingID:o,type:"end",add:{modes:r}})}at.esEditModeInstance=void 0}};m(at,"KEY_ESCAPE","Escape"),m(at,"KEY_SPACE","Space"),m(at,"MOUSE_LEFT",0),m(at,"esEditModeInstance");let Hd=at;function xC(){const t=a.createProcessingFromAsyncFunc(async(i,e,n,s)=>{e.editingEvent.emit({objectIDs:n.map(h=>h.parentID),editingID:s,type:"start"});const o=()=>{e.editingEvent.emit({objectIDs:n.map(h=>h.parentID),editingID:s,type:"end"}),t.isRunning&&t.cancel()};i.disposer.ad(o);const r=h=>{h.code=="Escape"&&o()};i.disposer.ad(e.keyDownEvent.don(r));const l=new Gd(n,e);i.disposer.ad(()=>{!l.isDestroyed()&&l.destroy()}),await i.promise(new Promise(h=>{l.isDestroyed()&&h(),i.disposer.ad(l.toDestroyEvent.don(()=>{console.log("移动结束"),h()})),i.disposer.ad(e.dblclickEvent.don(()=>h()))}))});return t}class x2 extends a.Destroyable{constructor(i,e){super(),this._czmViewer=i,a.engineObjectCreatedUpdate(this,e,()=>{let n;const s=i.getEngineObject(e);e instanceof a.ESBoxClipping&&(n=s.czmBoxClippingPlanes),!(!n||!("computedClippingPlanes"in n)||!("computedClippingPlanesChanged"in n))&&(this.dispose(a.track([this._czmViewer,"sceneGlobeClippingPlanes"],[n,"computedClippingPlanes"])),this.dispose(()=>this._czmViewer.sceneGlobeClippingPlanes=void 0))})}}class A2 extends a.Destroyable{constructor(e){super();m(this,"_clippingPlanesSceneObjectWithId",this.disposeVar(new a.ESSceneObjectWithId));this.dispose(a.track([this._clippingPlanesSceneObjectWithId,"id"],[e,"sceneGlobeClippingPlanesId"])),this.disposeVar(new a.ObjResettingWithEvent(this._clippingPlanesSceneObjectWithId.sceneObjectChanged,()=>{const{sceneObject:n}=this._clippingPlanesSceneObjectWithId;if(n)return new x2(e,n)}))}}class E2 extends a.Destroyable{constructor(i){super(),this.dv(new a.ObjResettingWithEvent(i.sceneGlobeClippingPolygonsIdChanged,(e,n)=>{if(!(!e||e===n||e&&e.length===0))return new T2(i)}))}}class T2 extends a.Destroyable{constructor(i){super(),this._czmViewer=i,this.d(()=>this._czmViewer.sceneGlobeClippingPolygons=void 0);const e=this._czmViewer.sceneGlobeClippingPolygonsId,n=s=>{if(!s)return;const o=this.dv(a.createNextAnimateFrameEvent(s.positionsChanged,s.reverseChanged,s.enabledChanged,s.showHelperChanged));this.dv(new a.ObjResettingWithEvent(o,()=>{if(s)return new I2(i,s)}))};for(let s=0;s<e.length;s++){const o=e[s],r=a.ESSceneObject.getSceneObjById(o);if(!r)return;let l;r instanceof a.ESExcavate?a.engineObjectCreatedUpdate(this,r,()=>{l=i.getEngineObject(r).czmPolygonClipping,n(l)}):r instanceof a.ESHole&&a.engineObjectCreatedUpdate(this,r.excavate,()=>{l=i.getEngineObject(r.excavate).czmPolygonClipping,n(l)})}}}class I2 extends a.Destroyable{constructor(i,e){super(),this._czmViewer=i;const n=this._czmViewer.sceneGlobeClippingPolygonsId,s=e.enabled?e.reverse:void 0;if(n&&n.length>0){const o={polygons:[],enabled:!0,inverse:!1};for(let r=0;r<n.length;r++){const l=n[r],h=a.ESSceneObject.getSceneObjById(l);if(!h)return;let c;if(h instanceof a.ESExcavate?c=i.getEngineObject(h).czmPolygonClipping:h instanceof a.ESHole&&(c=i.getEngineObject(h.excavate).czmPolygonClipping),!c)return;c&&c.positions&&c.positions.length>=3&&c.enabled&&(o.polygons[r]={positions:c.positions},o.inverse=s??c.reverse)}this._czmViewer.sceneGlobeClippingPolygons=o}}}class M2 extends a.Destroyable{constructor(i,e){var r;super(),this._viewer=i;const n=(r=this._viewer.extensions)==null?void 0:r.pickingManager;if(!n)return;const{objectsToExclude:s}=n,o=Array.isArray(e)?[...e]:[e];for(const l of o){if(s.includes(l))throw new Error("objectsToExclude.includes(p)");s.push(l)}this.dispose(()=>{for(let l of o){const h=s.indexOf(l);if(h===-1)throw new Error("-1 === objectsToExclude.indexOf(p)");s.splice(h,1)}})}}class D2 extends a.Destroyable{constructor(e){var r;super();m(this,"_czmGlobeMaterial");this._czmViewer=e,this._czmGlobeMaterial=this.dv(new Ss(e)),this._czmGlobeMaterial.show=!0;let n=Object.assign({},Me.defaults.terrainShader,this._czmViewer.terrainShader),s=(r=this._czmViewer.viewer)==null?void 0:r.scene.preUpdate.addEventListener(()=>{var h;const l=n.elevationContour.show&&(((h=this._czmViewer.getCameraInfo())==null?void 0:h.position[2])??0)<=n.elevationContour.spacing*1e3;this._czmGlobeMaterial.enableContour!==l&&(this._czmGlobeMaterial.enableContour=l)});this.d(()=>{s&&s()});const o=()=>{n=Object.assign({},Me.defaults.terrainShader,this._czmViewer.terrainShader),this._czmGlobeMaterial.shadingMode="none",n.aspect.show&&(this._czmGlobeMaterial.shadingMode="aspect"),n.slope.show&&(this._czmGlobeMaterial.shadingMode="slope"),n.elevationRamp.show&&(this._czmGlobeMaterial.shadingMode="elevation"),this._czmGlobeMaterial.contourSpacing=n.elevationContour.spacing,this._czmGlobeMaterial.contourWidth=n.elevationContour.width,this._czmGlobeMaterial.contourColor=n.elevationContour.color,this._czmGlobeMaterial.elevationParam={minHeight:n.elevationRamp.minHeight,maxHeight:n.elevationRamp.maxHeight,color:n.elevationRamp.color}};o(),this.d(this._czmViewer.terrainShaderChanged.don(o))}get czmGlobeMaterial(){return this._czmGlobeMaterial}}async function R2(t,i){const e={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,navigationInstructionsInitiallyVisible:!1,scene3DOnly:!0,...i??{}},n=new d.Viewer(t,e);return n.imageryLayers.removeAll(),n.extend(d.viewerCesiumInspectorMixin),n.cesiumInspector.container.style.display="none",n.extend(d.viewerCesium3DTilesInspectorMixin),n.cesium3DTilesInspector.container.style.display="none",n.cesium3DTilesInspector.viewModel.picking=!1,n.clock.currentTime=d.JulianDate.fromDate(new Date("2022-04-19T20:00:53.10067292911116965Z")),n.scene.screenSpaceCameraController.lookEventTypes=[{eventType:d.CameraEventType.RIGHT_DRAG}],n.scene.screenSpaceCameraController.zoomEventTypes=[d.CameraEventType.WHEEL,d.CameraEventType.PINCH,{eventType:d.CameraEventType.RIGHT_DRAG,modifier:d.KeyboardEventModifier.SHIFT}],n.scene.screenSpaceCameraController.tiltEventTypes=[d.CameraEventType.MIDDLE_DRAG,d.CameraEventType.PINCH,{eventType:d.CameraEventType.LEFT_DRAG,modifier:d.KeyboardEventModifier.CTRL},{eventType:d.CameraEventType.RIGHT_DRAG,modifier:d.KeyboardEventModifier.CTRL}],n.screenSpaceEventHandler.removeInputAction(d.ScreenSpaceEventType.LEFT_CLICK),n.screenSpaceEventHandler.removeInputAction(d.ScreenSpaceEventType.LEFT_DOUBLE_CLICK),n._cesiumWidget._creditContainer.style.display="none",n}function k2(){d.Cesium3DTile.prototype.updateTransform=function(t,i){t=t??d.Matrix4.IDENTITY;const e=d.Matrix4.multiplyTransformation(t,this.transform,new d.Matrix4),n=!d.Matrix4.equals(e,this.computedTransform),s=d.defined(i)&&(this._verticalExaggeration!==i.verticalExaggeration||this._verticalExaggerationRelativeHeight!==i.verticalExaggerationRelativeHeight);if(!n&&!s)return;n&&d.Matrix4.clone(e,this.computedTransform),s&&(this._verticalExaggeration=i.verticalExaggeration,this._verticalExaggerationRelativeHeight=i.verticalExaggerationRelativeHeight);const o=this._header,r=this._contentHeader;this._boundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform),d.defined(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform)),d.defined(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(o.viewerRequestVolume,this.computedTransform)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()}}function F2(){Reflect.getOwnPropertyDescriptor(d.Camera.prototype,"_currentFlight")||Object.defineProperties(d.Camera.prototype,{_currentFlight:{get:function(){return this._vtxf_currentFlight},set:function(t){if(this._vtxf_currentFlight!==t){this._vtxf_currentFlight=t;var i=this._vtxf_currentFlight,e=t;this.currentFlightEvent.raiseEvent(e,i)}}},currentFlightEvent:{get:function(){return typeof this._vtxf_currentFlightEvent>"u"&&(this._vtxf_currentFlightEvent=new d.Event),this._vtxf_currentFlightEvent}}})}function z2(){const t=new d.Matrix4;function i(n,s){const o=n.positionWC;d.Matrix4.clone(n.transform,t),n.lookAtTransform(d.Matrix4.IDENTITY),n.look(o,s),n.lookAtTransform(t)}const e=Math.PI/60;d.Camera.prototype.lookLeft=function(n){n=n??e,this._mode!==d.SceneMode.SCENE2D&&i(this,-n)},d.Camera.prototype.lookRight=function(n){this.lookLeft(-n)}}function L2(){if(!d.DepthPlane.xbsjFixed){d.DepthPlane.xbsjFixed=!0;var t=d.DepthPlane.prototype.update;d.DepthPlane.prototype.update=function(){t.bind(this)(...arguments);var i=arguments[0];if(!this.hasXbsjIndexBuffer&&this._va){this.hasXbsjIndexBuffer=!0;var e=i.context,n=new d.Geometry({attributes:{position:new d.GeometryAttribute({componentDatatype:d.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:new Float32Array(15)})},indices:[0,1,4,1,3,4,3,2,4,2,0,4],primitiveType:d.PrimitiveType.TRIANGLES});this._va=d.VertexArray.fromGeometry({context:e,geometry:n,attributeLocations:{position:0},bufferUsage:d.BufferUsage.DYNAMIC_DRAW}),this._command.vertexArray=this._va}}}}function O2(t){const i=t.BoundingSphere,e=t.Cartesian3,n=t.defined,s=t.OrientedBoundingBox,o=t.Rectangle,r=t.TaskProcessor,l=t.TerrainData,h=t.TerrainEncoding,c=t.TerrainMesh,u=t.GoogleEarthEnterpriseTerrainData,p="createVerticesFromGoogleEarthEnterpriseBuffer",f=new r(p),g=new r(p,l.maximumAsynchronousTasks),v=new o,y=new o;u.prototype.createMesh=function(w){w=w??we.Frozen.EMPTY_OBJECT;const P=w.tilingScheme,C=w.x,S=w.y,A=w.level,E=w.exaggeration??1,R=w.exaggerationRelativeHeight??0,L=w.throttle??!0,N=P.ellipsoid;P.tileXYToNativeRectangle(C,S,A,v),P.tileXYToRectangle(C,S,A,y);const B=N.cartographicToCartesian(o.center(y));this._skirtHeight=6378137*.3;const F=(L?g:f).scheduleTask({buffer:this._buffer,nativeRectangle:v,rectangle:o.clone(y),relativeToCenter:B,ellipsoid:N,skirtHeight:this._skirtHeight,exaggeration:E,exaggerationRelativeHeight:R,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!n(F))return;const O=this;return F.then(function(_){return O._mesh=new c(B,new Float32Array(_.vertices),new Uint16Array(_.indices),_.indexCountWithoutSkirts,_.vertexCountWithoutSkirts,_.minimumHeight,_.maximumHeight,i.clone(_.boundingSphere3D),e.clone(_.occludeePointInScaledSpace),_.numberOfAttributes,s.clone(_.orientedBoundingBox),h.clone(_.encoding),_.westIndicesSouthToNorth,_.southIndicesEastToWest,_.eastIndicesNorthToSouth,_.northIndicesWestToEast),O._minimumHeight=_.minimumHeight,O._maximumHeight=_.maximumHeight,O._buffer=void 0,O._mesh})}}function N2(){return d.VERSION.split(".").map(i=>parseInt(i))}let bg;function B2(){return bg||(bg=N2()),bg}function V2(){const t=B2();t[0]===1&&t[1]>=92?O2(d):console.warn(`don't need to fixGoogleEarth, cesium version is ${t.join(".")}`)}function W2(){const t=d.Resource.prototype.fetchJson,i=d.Resource.prototype.fetchArrayBuffer;d.Resource.prototype.fetchJson=function(...e){if(this.url.startsWith(`https://${a.defaultLocalFileServer.prefix}`)){const n=this.url.substring(8);return a.defaultLocalFileServer.getJson(n)}else return t.call(this,...e)},d.Resource.prototype.fetchArrayBuffer=function(...e){if(this.url.startsWith(`https://${a.defaultLocalFileServer.prefix}`)){const n=this.url.substring(8);return a.defaultLocalFileServer.getArrayBuffer(n).then(s=>{if(!s)throw new Error("result is undefined!");return s})}else return i.call(this,...e)}}function U2(){const t=d.ModelSceneGraph.prototype.buildDrawCommands;d.ModelSceneGraph.prototype.buildDrawCommands=function(...i){const e=this._model,n=e.modelMatrix;e.modelMatrix=d.Matrix4.IDENTITY;const s=t.call(this,...i);return e.modelMatrix=n,s}}function G2(){const t=d.ShaderSource._czmBuiltinsAndUniforms;t.czm_materialInput.indexOf("vec4 color")===-1&&(t.czm_materialInput=t.czm_materialInput.replace("float aspect;","float aspect; vec4 color;"))}const H2=`#ifdef GL_OES_standard_derivatives
1926
1926
  #extension GL_OES_standard_derivatives : enable
1927
1927
  #endif
1928
1928
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@u-gis/cesium",
3
- "version": "3.6.4",
3
+ "version": "3.6.6",
4
4
  "description": "uGIS SDK的cesium渲染引擎插件",
5
5
  "type": "module",
6
6
  "main": "./dist/cesium.umd.cjs",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "peerDependencies": {
42
42
  "cesium": "1.134.1",
43
- "@u-gis/core": "3.6.3"
43
+ "@u-gis/core": "3.6.6"
44
44
  },
45
45
  "dependencies": {
46
46
  "@types/delaunator": "^5.0.2",