earthsdk3-cesium 3.0.8-beta.6 → 3.0.8-beta.7

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.
@@ -4688,10 +4688,10 @@ void main()
4688
4688
  {
4689
4689
  out_FragColor = u_color;
4690
4690
  }
4691
- `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},At,t)}class FG extends m.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 a=i=this._getStartInfo(r.pointerEvent);a&&(this.owner.hoveredPlaneType=a.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=>{do{const a=this._getStartInfo(r.pointerEvent);if(!a||a.currentPlaneType==="none")break;const{currentPlaneType:s}=a,l=[...this.owner.selfRotation];l[Ci.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(m.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:a,offsetY:s}=r.pointerEvent,l=[a,s],{currentPlaneType:u}=i;if(u==="none")return;const h=this.owner.getPlane(u);if(!i.currentV)return;const c=h.pick(l);if(!c||!this.owner.cartesian)return;const f=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(f,f);const A=C.Cartesian3.subtract(c,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(A,A),!h.normal||!h.origin)return;const d=N0(f,A,h.normal),p=N0(h.origin,f,h.normal),v=N0(h.origin,A,h.normal);{const y=[...this.owner.selfRotation];y[Ci.rotationNum[u]]=i.startRotation+d,this.owner.selfRotation=y,o.circleStartRotation=p,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 m.step(n,r=>new Promise((a,s)=>{r.disposer.dispose(s),r.disposer.dispose(e.pointerUpEvent.don(()=>{a()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{a()}))}))}))}_pickPlane(n,e,i,o,r){const a=this.owner.cartesian;if(!a)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const u=C.Cartesian3.distance(a,l),h=r/4,c=h*3/128;if(!(u>=h-c&&u<=h+c))return;const A=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=A||(n.currentPlaneType=i,n.currentD2c=A,n.currentV=l,n.startRotation=s[Ci.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=rr(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:a}=n,s=[r,a],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",s,o),this._pickPlane(u,i,"pitch",s,o),this._pickPlane(u,i,"roll",s,o),u}}function N0(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const La=class La extends Xn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(m.react("none")));L(this,"_movingPlaneType",this.disposeVar(m.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new EG(this)),pitch:this.disposeVar(new PG(this)),roll:this.disposeVar(new TG(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new m.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new FG(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&&Et(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new 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(m.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(m.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(m.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=ft({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.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 ll(e));this.dispose(m.track([o,"position"],[this,"position"])),this.dispose(m.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(m.track([o,"debug"],[this,"debug"])),this.dispose(m.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=La.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[La.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const a=this.movingPlaneType===i,s=this.hoveredPlaneType===i,u=[0,0,0,a||s?1:.8];u[La.rotationNum[i]]=1,o.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(La,"rotationNum",{heading:0,pitch:1,roll:2}),L(La,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let Ci=La;(t=>{t.createDefaultProps=()=>({...Xn.createDefaultProps(),rotation:m.reactArray([0,0,0]),selfRotation:m.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(Ci||(Ci={})),m.extendClassProps(Ci.prototype,Ci.createDefaultProps);const za=class za extends m.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??za.defaults.positions[0],this.stopPosition??za.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??za.defaults.positions[0],n??za.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new rt(n,e));o.arcType="RHUMB";const r=this.ad(new ei(n,e));this.ad(m.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(m.track([r,"allowPicking"],[this,"allowPicking"]));{const a=()=>{o.show=r.show=this.show};a(),this.ad(this.showChanged.don(a))}{const a=()=>{o.width=this.width/2,r.pixelSize=this.width};a(),this.ad(this.widthChanged.don(a))}{const a=()=>{o.color=r.color=this.color};a(),this.ad(this.colorChanged.don(a))}{const a=()=>{o.positions=this.positions,r.position=this.stopPosition};a(),this.dispose(this.startPositionChanged.disposableOn(a)),this.dispose(this.stopPositionChanged.disposableOn(a))}}};L(za,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let ka=za;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:m.reactPositions(t.defaults.positions),width:10,color:m.reactArray([1,0,0,1])})})(ka||(ka={})),m.extendClassProps(ka.prototype,ka.createDefaultProps);class kr extends Xn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(m.react(!1)),moved:this.ad(m.react(!1)),constraintMode:this.disposeVar(m.react("none")),originPosition:this.disposeVar(m.reactArray([0,0,0])),originHeading:this.disposeVar(m.react(0)),originDimensions:this.disposeVar(m.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(m.reactArray([0,0,0])),movingPosition:this.disposeVar(m.reactArray([0,0,0])),targetPosition:this.disposeVar(m.reactArray([0,0,0])),targetHeading:this.disposeVar(m.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new m.Processing((i,o,r)=>{const a=[0,0,0],s=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hi(m.getDomEventCurrentTargetPos(l.pointerEvent));if(!Ha(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Na(s,a),this._opInfo.constraintMode.value==="x"?Ho(this._opInfo.originPosition.value,this._opInfo.originHeading.value,a,a):this._opInfo.constraintMode.value==="y"?Ho(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,a,a):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=a,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];N.geoRhumbDestination(a,r,o,h),this._opInfo.targetPosition.value=h;let c=this.scale[0],f=this.scale[1];const A=N.geoDistance(h,this._opInfo.originPosition.value)-N.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const d=this._opInfo.originDimensions.value[0]/100;A!=0&&this._opInfo.constraintMode.value==="y"&&(A>0?c+=d:c-=d),A!=0&&this._opInfo.constraintMode.value==="x"&&(A>0?f+=d:f-=d),c<=0&&(c+=d),f<=0&&(f+=d),this.scale=[c??1,f??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new m.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const a=hi(m.getDomEventCurrentTargetPos(r.pointerEvent));if(!Hh(e.viewer.scene,Et(this._opInfo.originPosition.value),a,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Qe(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+s];let u=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const c=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?u+=c:u-=c),u<=0&&(u+=c),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 Qd(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const u=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:c,xAxis:f}=this._scaleAxis,A=this._opInfo.constraintMode.value,d=this._opInfo.step;h.color=[0,0,1,.99],c.color=[0,1,0,.99],f.color=[1,0,0,.99],A==="x"?f.color=d?[1,1,0,.8]:[1,1,0,.99]:A==="y"?c.color=d?[1,1,0,.8]:[1,1,0,.99]:A==="z"&&(h.color=d?[1,1,0,.8]:[1,1,0,.99])};u(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(u)),this.dispose(this._opInfo.step.changed.disposableOn(u))}{const u=()=>{if(!this._scaleAxis)return;const{position:c=kr.defaults.position}=this,{zAxis:f,yAxis:A,xAxis:d}=this._scaleAxis;f.startPosition=A.startPosition=d.startPosition=c;const[p,v,y]=c;f.stopPosition=[p,v,y+this._opInfo.originDimensions.value[2]];const g=N.geoRhumbDestination(c,this._opInfo.originDimensions.value[0],90);g&&(d.stopPosition=g);const b=N.geoRhumbDestination(c,this._opInfo.originDimensions.value[1],0);b&&(A.stopPosition=b)};u();const h=this.ad(m.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(u))}{const u=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,c)=>h===this._opInfo.targetPosition.value[c])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const r=this._pickingXYProcessing(e),a=this._pickingZProcessing(e),s=this.disposeVar(m.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await m.step(u,async h=>{const c=()=>{const d=[...this.position??kr.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};h.disposer.dispose((c(),this.positionChanged.disposableOn(c)));const f={constraintMode:"none",startDragPos:[0,0,0]},A=d=>{if(!this.position)return;const p={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Td(d,o,p,this.axisSnapPixelSize,f),this._opInfo.constraintMode.value=f.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=f.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&A(d.pointerEvent)})),await m.step(h,d=>new Promise((p,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&A(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&f.constraintMode!=="none"&&p()}))}))}),this._opInfo.step.value=!1,await m.step(u,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const c=N.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),f=N.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,c,f),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(a.restart(),h.disposer.dispose(()=>a.cancel()));await m.step(h,c=>new Promise((f,A)=>{c.disposer.dispose(A),c.disposer.dispose(e.pointerUpEvent.don(()=>{f()})),c.disposer.dispose(e.pointerOutEvent.don(()=>{f()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?s.restart():s.isRunning&&s.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new ka(e));return o.width=10,this.ad(m.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...Xn.createDefaultProps(),scale:m.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(kr||(kr={})),m.extendClassProps(kr.prototype,kr.createDefaultProps);const No=class No extends xn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new m.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new m.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(m.react(!1)));L(this,"_status",this.disposeVar(m.react("None")));L(this,"_positionsChanged",this.ad(new m.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:a}of i){for(const s of a)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=o;s<o+r;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(m.nextAnimateFrame(()=>{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??No.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((a,s)=>{const l=this.editingPoints.get(r);return l.position&&l.position[s]===a})))}forceResetPositions(e){(this.enabled??No.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new rt(e));this.ad(m.track([i,"color"],[this,"polylineColor"])),this.ad(m.track([i,"width"],[this,"polylineWidth"])),this.ad(m.track([i,"show"],[this,"polylineShow"])),this.ad(m.track([i,"arcType"],[this,"polylineArcType"])),this.ad(m.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const a of this.getPositions())a[2]-=e.editingHeightOffset??0,r.push(a);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new m.CursorInfo(e.container,m.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)}}))}};L(No,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(No,"defaults",{...xn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:No.baseImageUrl+"point-green.png",otherControlPointImageUrl:No.baseImageUrl+"point-yellow.png"});let li=No;(t=>{t.createDefaultProps=()=>({...xn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:m.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})})(li||(li={})),m.extendClassProps(li.prototype,li.createDefaultProps);let MG=0;class v2 extends m.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(m.reactArrayWithUndefined(void 0)));L(this,"_id",MG++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new rs(e.czmViewer));o.enabled=!1,this.ad(m.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const a=[...this.position];a[2]-=e.czmViewer.editingHeightOffset??0,o.position=a,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const a=e.editingPoints.indexOf(this)+1;a!==0&&(o.title=`控制点${a}`,a===1?o.imageUri=e.firstControlPointImageUrl??li.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??li.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 w2 extends v2{constructor(n,e){super(n,e)}}class Rt extends li{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new m.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new bi(e));i.enabled=!1,this.currentProcess=this.disposeVar(m.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Rt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Rt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(m.step(o,async r=>{const a=r.disposer,s=a.ad(this._addingEditingProcessing());a.dispose(()=>"adding canceled!"),a.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await r.promise(new Promise(l=>{a.dispose(s.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 w2(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??Rt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=m.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(m.step(o,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new BG(this,r)));const h=s.disposer.disposeVar(new RG(this,r));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await s.promise(new Promise(c=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(f=>{f?(r++,c(!0)):c(!1)})),s.disposer.dispose(h.overEvent.disposableOnce(f=>{f?(r--,c(!0)):c(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>c(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...li.createDefaultProps()})})(Rt||(Rt={})),m.extendClassProps(Rt.prototype,Rt.createDefaultProps);class BG extends m.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new m.Event));const{placeEditing:o}=e;let r=new w2(e,void 0);e.editingPoints.splice(i,0,r);const a=()=>{(e.debug??Rt.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(m.track([r,"position"],[o,"position"])),o.enabled=!0;let s=!1;const l=()=>{a(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!s&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{s=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Rt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Rt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function DG(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 RG extends m.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new m.Event));L(this,"_doEvent",this.disposeVar(new m.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(DG(e,i)))),(e.debug??Rt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Rt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class _2 extends Rt{constructor(n){super(n),this.loop=!1}}class b2 extends Rt{constructor(n){super(n),this.loop=!0}}class md extends v2{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",st.baseImageUrl+"add.png"],["delete","删除当前控制点","",st.baseImageUrl+"delete.png"],["modify","修改当前控制点","",st.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 Bi(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??st.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=()=>{if(!(n.enabled??st.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const a=n.editingPoints.indexOf(this);if(a===-1)break;const s=n.editingPoints.length;if(s===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??st.defaults.loop)&&a+1>=s)break;const u=this.position;if(!u)break;let h=(a+1)%s;const f=n.editingPoints.get(h).position;if(!f)break;const A=Md(u,f);if(!A)break;A[2]-=n.czmViewer.editingHeightOffset??0,i.position=A;const d=n.editingPoints.length<(n.maxPointsNum??st.defaults.maxPointsNum);i.enabled=d,i.show=d;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??st.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const a=i.position?[...i.position]:void 0;a&&(a[2]+=n.czmViewer.editingHeightOffset??0);let s=new md(n,a);n.editingPoints.splice(r+1,0,s),n.modify(s)}))}}}}class st extends li{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new m.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new m.Event));L(this,"_overEvent",this.disposeVar(new m.Event));L(this,"translationEditing");{const o=this.ad(m.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new m.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new OG(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new Ir(e));i.enabled=!1,this.currentProcess=this.disposeVar(m.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??st.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??st.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(m.step(o,async a=>{const s=a.disposer,l=s.ad(new UG(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await a.promise(new Promise(h=>{s.dispose(l.overEvent.disposableOnce(c=>{h(c)}))}))})),r===-1){(this.debug??st.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??st.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??st.defaults.loop;const s=this.editingPoints.get(r-1).position;if(!s)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const c=Md(s,h);if(!c)return;c&&(c[2]+=this.czmViewer.editingHeightOffset??0);let f=new md(this,c);this.editingPoints.splice(r,0,f)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new md(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...li.createDefaultProps(),moveWithFirstPosition:!1})})(st||(st={})),m.extendClassProps(st.prototype,st.createDefaultProps);class OG extends m.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 a=this.multiPointsModifyEditing.editingPoints.length;for(let s=1;s<a;s++){const l=this.multiPointsModifyEditing.editingPoints.get(s),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class UG extends m.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new m.Event));L(this,"_cancelEvent",this.disposeVar(new m.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new m.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=a=>{o(),e.status="Modifying_Point",i=new LG(e,a),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((a,s)=>{if(s==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(a);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(s==="modify")r(a);else if(s==="add"){const l=e.editingPoints.indexOf(a);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else s==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${s})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class LG extends m.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new m.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(m.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class C2 extends st{constructor(n){super(n),this.loop=!1}}class x2 extends st{constructor(n){super(n),this.loop=!0}}class ul extends Rt{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=N.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const a=e*Math.sin(i[1]*Math.PI/180);r[2]+=a,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=N.geoHeading(this.startPosition,this.endPosition),o=N.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],a=Math.atan(r/o)*180/Math.PI,s=Math.sqrt(o*o+r*r);this.rotation=[i,a,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Rt.createDefaultProps(),startPosition:m.reactArrayWithUndefined(void 0),endPosition:m.reactArrayWithUndefined(void 0),rotation:m.reactArray([90,0,0]),distance:m.react(1)})})(ul||(ul={})),m.extendClassProps(ul.prototype,ul.createDefaultProps);class Fa extends st{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=N.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const a=e*Math.sin(i[1]*Math.PI/180);r[2]+=a,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",st.baseImageUrl+"add.png"],["delete","删除当前控制点","",st.baseImageUrl+"delete.png"],["modify","修改当前控制点","",st.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",st.baseImageUrl+"delete.png"],["modify","修改当前控制点","",st.baseImageUrl+"modify.png"]];const i=N.geoHeading(this.startPosition,this.endPosition),o=N.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],a=Math.atan(r/o)*180/Math.PI,s=Math.sqrt(o*o+r*r);this.rotation=[i,a,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...st.createDefaultProps(),startPosition:m.reactArrayWithUndefined(void 0),endPosition:m.reactArrayWithUndefined(void 0),rotation:m.reactArray([0,0,0]),distance:m.react(0)})})(Fa||(Fa={})),m.extendClassProps(Fa.prototype,Fa.createDefaultProps);class S2 extends Rt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class E2 extends st{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class cl extends Rt{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 pi(n));e.topOrBottom="bottom",this.ad(m.track([e,"color"],[this,"polylineColor"])),this.ad(m.track([e,"width"],[this,"polylineWidth"])),this.ad(m.track([e,"show"],[this,"polylineShow"])),this.ad(m.track([e,"arcType"],[this,"polylineArcType"])),this.ad(m.track([e,"loop"],[this,"loop"])),this.ad(m.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Rt.createDefaultProps(),visibilityPositions:m.reactPositionsSet(void 0)})})(cl||(cl={})),m.extendClassProps(cl.prototype,cl.createDefaultProps);class hl extends st{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 pi(n));e.topOrBottom="bottom",this.ad(m.track([e,"color"],[this,"polylineColor"])),this.ad(m.track([e,"width"],[this,"polylineWidth"])),this.ad(m.track([e,"show"],[this,"polylineShow"])),this.ad(m.track([e,"arcType"],[this,"polylineArcType"])),this.ad(m.track([e,"loop"],[this,"loop"])),this.ad(m.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...st.createDefaultProps(),visibilityPositions:m.reactPositionsSet(void 0)})})(hl||(hl={})),m.extendClassProps(hl.prototype,hl.createDefaultProps);class P2 extends Fa{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class gn extends N.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(m.react(!0)));L(this,"_currentEditing",this.disposeVar(m.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Rt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof bi&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Sh=class Sh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new bi(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(m.bind([i,"position"],[n,"position"])),i.enabled=!i.position||N.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Sh,"type",Sh.registerEditing("ESCesiumViewer",N.ESJEditingMode.Place,Sh));let V0=Sh;const Eh=class Eh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ci(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof N.ES3DTileset){N.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(m.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(m.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(m.bind([i,"position"],[n,"position"])),this.ad(m.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Eh,"type",Eh.registerEditing("ESCesiumViewer",N.ESJEditingMode.Rotation,Eh));let H0=Eh;const Ph=class Ph extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new kr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(m.bind([i,"position"],[n,"position"])),this.ad(m.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Ph,"type",Ph.registerEditing("ESCesiumViewer",N.ESJEditingMode.Scale,Ph));let G0=Ph;const Th=class Th extends gn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new Ir(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const a=n[r];Reflect.has(a,"position")?o.push(a.position):a.points&&o.push(...a.points)}i.position=N.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,a)=>{if(!(!r||!a)){var s=En({originPosition:a},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=En({originPosition:a},[l.position])[0][0];l.position=Nr({originPosition:a},[[u[0]+s[0],u[1]+s[1],u[2]+s[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const u=En({originPosition:a},l.points)[0];l.points=Nr({originPosition:a},u.map(h=>[h[0]+s[0],h[1]+s[1],h[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(m.bind([i,"position"],[n,"position"]));break}if(n instanceof N.ES3DTileset){N.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(m.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=N.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var a=En({originPosition:r},[o])[0][0];const s=En({originPosition:r},n.points)[0];n.points=Nr({originPosition:r},s.map(l=>[l[0]+a[0],l[1]+a[1],l[2]+a[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Th,"type",Th.registerEditing("ESCesiumViewer",N.ESJEditingMode.Translation,Th));let gd=Th;const Ih=class Ih extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ul(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(m.bind([i,"startPosition"],[n,"position"])),this.ad(Vt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(m.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(m.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(m.bind([i,"distance"],[n,"distance"]));break}const o=Et(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=rr(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!N.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(Ih,"type",Ih.registerEditing("ESCesiumViewer",N.ESJEditingMode.DoublePointsAppend,Ih));let W0=Ih;const kh=class kh extends gn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new Fa(e));do{if(Reflect.has(n,"position")){this.ad(m.bind([i,"startPosition"],[n,"position"])),this.ad(Vt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(m.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(m.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(m.bind([i,"distance"],[n,"distance"]));break}const a=Et(n.position);if(C.Cartesian3.ZERO.equals(a)||!e.viewer)return;i.distance=rr(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(m.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||N.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(kh,"type",kh.registerEditing("ESCesiumViewer",N.ESJEditingMode.DoublePointsModify,kh));let q0=kh;const Fh=class Fh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new b2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Fh,"type",Fh.registerEditing("ESCesiumViewer",N.ESJEditingMode.CircularAppend,Fh));let K0=Fh;const Mh=class Mh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new x2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Mh,"type",Mh.registerEditing("ESCesiumViewer",N.ESJEditingMode.CircularInsert,Mh));let X0=Mh;const Bh=class Bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new _2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Bh,"type",Bh.registerEditing("ESCesiumViewer",N.ESJEditingMode.LineStringAppend,Bh));let $0=Bh;const Dh=class Dh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new C2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Dh,"type",Dh.registerEditing("ESCesiumViewer",N.ESJEditingMode.LineStringInsert,Dh));let Z0=Dh;const Rh=class Rh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new S2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Rh,"type",Rh.registerEditing("ESCesiumViewer",N.ESJEditingMode.ScatterAppend,Rh));let Y0=Rh;const Oh=class Oh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new E2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Oh,"type",Oh.registerEditing("ESCesiumViewer",N.ESJEditingMode.ScatterModify,Oh));let J0=Oh;const Uh=class Uh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new cl(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Uh,"type",Uh.registerEditing("ESCesiumViewer",N.ESJEditingMode.VisibilityAppend,Uh));let j0=Uh;const Lh=class Lh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new hl(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Lh,"type",Lh.registerEditing("ESCesiumViewer",N.ESJEditingMode.VisibilityModify,Lh));let ew=Lh;const zh=class zh extends gn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new P2(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),a=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof N.ESClassification||n instanceof N.ESPolygonFence;let u=N.getMinMaxCorner(n.points).center,h=[...u],c=l?n.points[0][2]:0;s?r?h[2]=n.extrudedHeight:h[2]=n.height+c:(a&&(u[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=u,i.distance=h[2]-u[2],i.moveWithFirstPosition=!1;let f=[...u];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(s?(n.points=n.points.map(A=>[A[0],A[1],A[2]+i.positions[0][2]-f[2]]),r?n.extrudedHeight=i.positions[1][2]:a&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(a&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),f=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(m.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||N.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(zh,"type",zh.registerEditing("ESCesiumViewer",N.ESJEditingMode.HeightModify,zh));let tw=zh;function T2(){const t=m.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const a=Array.isArray(o)?[...o]:[o],s=i.editingID;e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"start",add:{modes:a}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"end",add:{modes:a}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(h=>{h.code=="Escape"&&l()}));let u=0;do{const h=a[u%a.length],c=await m.step(n,async f=>{const A=f.disposer,d=N.EngineObject.contextEditing.getEngineObjConstructor(h,e.typeName);if(!d||!i.supportEditingModes().includes(h))return console.log(`未找到编辑模式或不支持当前编辑模式${h},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:h,cIndex:u}}),e.notSupportEditingCount++,!1;const p=new d(i,e);if(A.ad(()=>{!p.isDestroyed()&&p.destroy()}),p.supportEditing)e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:h,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${h},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:h,cIndex:u}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(y=>{p.isDestroyed()&&y(!1),A.ad(p.toDestroyEvent.don(()=>{console.log(`编辑模式${h}结束`),y(!1)})),r&&(A.ad(e.keyDownEvent.don(g=>{g.code=="Space"&&(console.log(`编辑模式${h}结束`),y(!1))})),A.ad(e.dblclickEvent.don(()=>y(!0))))}))});if(r&&c||!r&&u==a.length-1||e.notSupportEditingCount==a.length)break;u++}while(!0)});return t}function I2(){const t=m.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&r()}));const a=new gd(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(s=>{a.isDestroyed()&&s(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),s()})),n.disposer.ad(e.dblclickEvent.don(()=>s()))}))});return t}se.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.8-beta.6",e="2025-06-19T00:47:05.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="468c6a33b6cf9a394b5cc013cf77153920efc031",s=((Date.now()-1750294025e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${s}个小时)
4691
+ `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},At,t)}class FG extends m.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 a=i=this._getStartInfo(r.pointerEvent);a&&(this.owner.hoveredPlaneType=a.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=>{do{const a=this._getStartInfo(r.pointerEvent);if(!a||a.currentPlaneType==="none")break;const{currentPlaneType:s}=a,l=[...this.owner.selfRotation];l[Ci.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(m.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:a,offsetY:s}=r.pointerEvent,l=[a,s],{currentPlaneType:u}=i;if(u==="none")return;const h=this.owner.getPlane(u);if(!i.currentV)return;const c=h.pick(l);if(!c||!this.owner.cartesian)return;const f=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(f,f);const A=C.Cartesian3.subtract(c,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(A,A),!h.normal||!h.origin)return;const d=N0(f,A,h.normal),p=N0(h.origin,f,h.normal),v=N0(h.origin,A,h.normal);{const y=[...this.owner.selfRotation];y[Ci.rotationNum[u]]=i.startRotation+d,this.owner.selfRotation=y,o.circleStartRotation=p,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 m.step(n,r=>new Promise((a,s)=>{r.disposer.dispose(s),r.disposer.dispose(e.pointerUpEvent.don(()=>{a()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{a()}))}))}))}_pickPlane(n,e,i,o,r){const a=this.owner.cartesian;if(!a)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const u=C.Cartesian3.distance(a,l),h=r/4,c=h*3/128;if(!(u>=h-c&&u<=h+c))return;const A=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=A||(n.currentPlaneType=i,n.currentD2c=A,n.currentV=l,n.startRotation=s[Ci.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=rr(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:a}=n,s=[r,a],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",s,o),this._pickPlane(u,i,"pitch",s,o),this._pickPlane(u,i,"roll",s,o),u}}function N0(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const La=class La extends Xn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(m.react("none")));L(this,"_movingPlaneType",this.disposeVar(m.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new EG(this)),pitch:this.disposeVar(new PG(this)),roll:this.disposeVar(new TG(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new m.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new FG(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&&Et(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new 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(m.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(m.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(m.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=ft({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.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 ll(e));this.dispose(m.track([o,"position"],[this,"position"])),this.dispose(m.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(m.track([o,"debug"],[this,"debug"])),this.dispose(m.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=La.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[La.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const a=this.movingPlaneType===i,s=this.hoveredPlaneType===i,u=[0,0,0,a||s?1:.8];u[La.rotationNum[i]]=1,o.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(La,"rotationNum",{heading:0,pitch:1,roll:2}),L(La,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let Ci=La;(t=>{t.createDefaultProps=()=>({...Xn.createDefaultProps(),rotation:m.reactArray([0,0,0]),selfRotation:m.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(Ci||(Ci={})),m.extendClassProps(Ci.prototype,Ci.createDefaultProps);const za=class za extends m.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??za.defaults.positions[0],this.stopPosition??za.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??za.defaults.positions[0],n??za.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new rt(n,e));o.arcType="RHUMB";const r=this.ad(new ei(n,e));this.ad(m.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(m.track([r,"allowPicking"],[this,"allowPicking"]));{const a=()=>{o.show=r.show=this.show};a(),this.ad(this.showChanged.don(a))}{const a=()=>{o.width=this.width/2,r.pixelSize=this.width};a(),this.ad(this.widthChanged.don(a))}{const a=()=>{o.color=r.color=this.color};a(),this.ad(this.colorChanged.don(a))}{const a=()=>{o.positions=this.positions,r.position=this.stopPosition};a(),this.dispose(this.startPositionChanged.disposableOn(a)),this.dispose(this.stopPositionChanged.disposableOn(a))}}};L(za,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let ka=za;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:m.reactPositions(t.defaults.positions),width:10,color:m.reactArray([1,0,0,1])})})(ka||(ka={})),m.extendClassProps(ka.prototype,ka.createDefaultProps);class kr extends Xn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(m.react(!1)),moved:this.ad(m.react(!1)),constraintMode:this.disposeVar(m.react("none")),originPosition:this.disposeVar(m.reactArray([0,0,0])),originHeading:this.disposeVar(m.react(0)),originDimensions:this.disposeVar(m.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(m.reactArray([0,0,0])),movingPosition:this.disposeVar(m.reactArray([0,0,0])),targetPosition:this.disposeVar(m.reactArray([0,0,0])),targetHeading:this.disposeVar(m.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new m.Processing((i,o,r)=>{const a=[0,0,0],s=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hi(m.getDomEventCurrentTargetPos(l.pointerEvent));if(!Ha(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Na(s,a),this._opInfo.constraintMode.value==="x"?Ho(this._opInfo.originPosition.value,this._opInfo.originHeading.value,a,a):this._opInfo.constraintMode.value==="y"?Ho(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,a,a):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=a,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];N.geoRhumbDestination(a,r,o,h),this._opInfo.targetPosition.value=h;let c=this.scale[0],f=this.scale[1];const A=N.geoDistance(h,this._opInfo.originPosition.value)-N.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const d=this._opInfo.originDimensions.value[0]/100;A!=0&&this._opInfo.constraintMode.value==="y"&&(A>0?c+=d:c-=d),A!=0&&this._opInfo.constraintMode.value==="x"&&(A>0?f+=d:f-=d),c<=0&&(c+=d),f<=0&&(f+=d),this.scale=[c??1,f??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new m.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const a=hi(m.getDomEventCurrentTargetPos(r.pointerEvent));if(!Hh(e.viewer.scene,Et(this._opInfo.originPosition.value),a,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Qe(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+s];let u=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const c=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?u+=c:u-=c),u<=0&&(u+=c),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 Qd(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const u=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:c,xAxis:f}=this._scaleAxis,A=this._opInfo.constraintMode.value,d=this._opInfo.step;h.color=[0,0,1,.99],c.color=[0,1,0,.99],f.color=[1,0,0,.99],A==="x"?f.color=d?[1,1,0,.8]:[1,1,0,.99]:A==="y"?c.color=d?[1,1,0,.8]:[1,1,0,.99]:A==="z"&&(h.color=d?[1,1,0,.8]:[1,1,0,.99])};u(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(u)),this.dispose(this._opInfo.step.changed.disposableOn(u))}{const u=()=>{if(!this._scaleAxis)return;const{position:c=kr.defaults.position}=this,{zAxis:f,yAxis:A,xAxis:d}=this._scaleAxis;f.startPosition=A.startPosition=d.startPosition=c;const[p,v,y]=c;f.stopPosition=[p,v,y+this._opInfo.originDimensions.value[2]];const g=N.geoRhumbDestination(c,this._opInfo.originDimensions.value[0],90);g&&(d.stopPosition=g);const b=N.geoRhumbDestination(c,this._opInfo.originDimensions.value[1],0);b&&(A.stopPosition=b)};u();const h=this.ad(m.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(u))}{const u=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,c)=>h===this._opInfo.targetPosition.value[c])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const r=this._pickingXYProcessing(e),a=this._pickingZProcessing(e),s=this.disposeVar(m.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await m.step(u,async h=>{const c=()=>{const d=[...this.position??kr.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};h.disposer.dispose((c(),this.positionChanged.disposableOn(c)));const f={constraintMode:"none",startDragPos:[0,0,0]},A=d=>{if(!this.position)return;const p={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Td(d,o,p,this.axisSnapPixelSize,f),this._opInfo.constraintMode.value=f.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=f.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&A(d.pointerEvent)})),await m.step(h,d=>new Promise((p,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&A(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&f.constraintMode!=="none"&&p()}))}))}),this._opInfo.step.value=!1,await m.step(u,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const c=N.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),f=N.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,c,f),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(a.restart(),h.disposer.dispose(()=>a.cancel()));await m.step(h,c=>new Promise((f,A)=>{c.disposer.dispose(A),c.disposer.dispose(e.pointerUpEvent.don(()=>{f()})),c.disposer.dispose(e.pointerOutEvent.don(()=>{f()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?s.restart():s.isRunning&&s.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new ka(e));return o.width=10,this.ad(m.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...Xn.createDefaultProps(),scale:m.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(kr||(kr={})),m.extendClassProps(kr.prototype,kr.createDefaultProps);const No=class No extends xn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new m.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new m.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(m.react(!1)));L(this,"_status",this.disposeVar(m.react("None")));L(this,"_positionsChanged",this.ad(new m.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:a}of i){for(const s of a)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=o;s<o+r;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(m.nextAnimateFrame(()=>{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??No.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((a,s)=>{const l=this.editingPoints.get(r);return l.position&&l.position[s]===a})))}forceResetPositions(e){(this.enabled??No.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new rt(e));this.ad(m.track([i,"color"],[this,"polylineColor"])),this.ad(m.track([i,"width"],[this,"polylineWidth"])),this.ad(m.track([i,"show"],[this,"polylineShow"])),this.ad(m.track([i,"arcType"],[this,"polylineArcType"])),this.ad(m.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const a of this.getPositions())a[2]-=e.editingHeightOffset??0,r.push(a);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new m.CursorInfo(e.container,m.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)}}))}};L(No,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(No,"defaults",{...xn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:No.baseImageUrl+"point-green.png",otherControlPointImageUrl:No.baseImageUrl+"point-yellow.png"});let li=No;(t=>{t.createDefaultProps=()=>({...xn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:m.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})})(li||(li={})),m.extendClassProps(li.prototype,li.createDefaultProps);let MG=0;class v2 extends m.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(m.reactArrayWithUndefined(void 0)));L(this,"_id",MG++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new rs(e.czmViewer));o.enabled=!1,this.ad(m.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const a=[...this.position];a[2]-=e.czmViewer.editingHeightOffset??0,o.position=a,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const a=e.editingPoints.indexOf(this)+1;a!==0&&(o.title=`控制点${a}`,a===1?o.imageUri=e.firstControlPointImageUrl??li.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??li.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 w2 extends v2{constructor(n,e){super(n,e)}}class Rt extends li{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new m.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new bi(e));i.enabled=!1,this.currentProcess=this.disposeVar(m.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Rt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Rt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(m.step(o,async r=>{const a=r.disposer,s=a.ad(this._addingEditingProcessing());a.dispose(()=>"adding canceled!"),a.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await r.promise(new Promise(l=>{a.dispose(s.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 w2(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??Rt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=m.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(m.step(o,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new BG(this,r)));const h=s.disposer.disposeVar(new RG(this,r));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await s.promise(new Promise(c=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(f=>{f?(r++,c(!0)):c(!1)})),s.disposer.dispose(h.overEvent.disposableOnce(f=>{f?(r--,c(!0)):c(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>c(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...li.createDefaultProps()})})(Rt||(Rt={})),m.extendClassProps(Rt.prototype,Rt.createDefaultProps);class BG extends m.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new m.Event));const{placeEditing:o}=e;let r=new w2(e,void 0);e.editingPoints.splice(i,0,r);const a=()=>{(e.debug??Rt.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(m.track([r,"position"],[o,"position"])),o.enabled=!0;let s=!1;const l=()=>{a(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!s&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{s=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Rt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Rt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function DG(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 RG extends m.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new m.Event));L(this,"_doEvent",this.disposeVar(new m.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(DG(e,i)))),(e.debug??Rt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Rt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class _2 extends Rt{constructor(n){super(n),this.loop=!1}}class b2 extends Rt{constructor(n){super(n),this.loop=!0}}class md extends v2{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",st.baseImageUrl+"add.png"],["delete","删除当前控制点","",st.baseImageUrl+"delete.png"],["modify","修改当前控制点","",st.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 Bi(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??st.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=()=>{if(!(n.enabled??st.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const a=n.editingPoints.indexOf(this);if(a===-1)break;const s=n.editingPoints.length;if(s===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??st.defaults.loop)&&a+1>=s)break;const u=this.position;if(!u)break;let h=(a+1)%s;const f=n.editingPoints.get(h).position;if(!f)break;const A=Md(u,f);if(!A)break;A[2]-=n.czmViewer.editingHeightOffset??0,i.position=A;const d=n.editingPoints.length<(n.maxPointsNum??st.defaults.maxPointsNum);i.enabled=d,i.show=d;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??st.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const a=i.position?[...i.position]:void 0;a&&(a[2]+=n.czmViewer.editingHeightOffset??0);let s=new md(n,a);n.editingPoints.splice(r+1,0,s),n.modify(s)}))}}}}class st extends li{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new m.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new m.Event));L(this,"_overEvent",this.disposeVar(new m.Event));L(this,"translationEditing");{const o=this.ad(m.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new m.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new OG(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new Ir(e));i.enabled=!1,this.currentProcess=this.disposeVar(m.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??st.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??st.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(m.step(o,async a=>{const s=a.disposer,l=s.ad(new UG(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await a.promise(new Promise(h=>{s.dispose(l.overEvent.disposableOnce(c=>{h(c)}))}))})),r===-1){(this.debug??st.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??st.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??st.defaults.loop;const s=this.editingPoints.get(r-1).position;if(!s)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const c=Md(s,h);if(!c)return;c&&(c[2]+=this.czmViewer.editingHeightOffset??0);let f=new md(this,c);this.editingPoints.splice(r,0,f)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new md(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...li.createDefaultProps(),moveWithFirstPosition:!1})})(st||(st={})),m.extendClassProps(st.prototype,st.createDefaultProps);class OG extends m.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 a=this.multiPointsModifyEditing.editingPoints.length;for(let s=1;s<a;s++){const l=this.multiPointsModifyEditing.editingPoints.get(s),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class UG extends m.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new m.Event));L(this,"_cancelEvent",this.disposeVar(new m.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new m.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=a=>{o(),e.status="Modifying_Point",i=new LG(e,a),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((a,s)=>{if(s==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(a);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(s==="modify")r(a);else if(s==="add"){const l=e.editingPoints.indexOf(a);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else s==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${s})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class LG extends m.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new m.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(m.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class C2 extends st{constructor(n){super(n),this.loop=!1}}class x2 extends st{constructor(n){super(n),this.loop=!0}}class ul extends Rt{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=N.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const a=e*Math.sin(i[1]*Math.PI/180);r[2]+=a,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=N.geoHeading(this.startPosition,this.endPosition),o=N.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],a=Math.atan(r/o)*180/Math.PI,s=Math.sqrt(o*o+r*r);this.rotation=[i,a,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Rt.createDefaultProps(),startPosition:m.reactArrayWithUndefined(void 0),endPosition:m.reactArrayWithUndefined(void 0),rotation:m.reactArray([90,0,0]),distance:m.react(1)})})(ul||(ul={})),m.extendClassProps(ul.prototype,ul.createDefaultProps);class Fa extends st{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=N.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const a=e*Math.sin(i[1]*Math.PI/180);r[2]+=a,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",st.baseImageUrl+"add.png"],["delete","删除当前控制点","",st.baseImageUrl+"delete.png"],["modify","修改当前控制点","",st.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",st.baseImageUrl+"delete.png"],["modify","修改当前控制点","",st.baseImageUrl+"modify.png"]];const i=N.geoHeading(this.startPosition,this.endPosition),o=N.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],a=Math.atan(r/o)*180/Math.PI,s=Math.sqrt(o*o+r*r);this.rotation=[i,a,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...st.createDefaultProps(),startPosition:m.reactArrayWithUndefined(void 0),endPosition:m.reactArrayWithUndefined(void 0),rotation:m.reactArray([0,0,0]),distance:m.react(0)})})(Fa||(Fa={})),m.extendClassProps(Fa.prototype,Fa.createDefaultProps);class S2 extends Rt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class E2 extends st{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class cl extends Rt{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 pi(n));e.topOrBottom="bottom",this.ad(m.track([e,"color"],[this,"polylineColor"])),this.ad(m.track([e,"width"],[this,"polylineWidth"])),this.ad(m.track([e,"show"],[this,"polylineShow"])),this.ad(m.track([e,"arcType"],[this,"polylineArcType"])),this.ad(m.track([e,"loop"],[this,"loop"])),this.ad(m.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Rt.createDefaultProps(),visibilityPositions:m.reactPositionsSet(void 0)})})(cl||(cl={})),m.extendClassProps(cl.prototype,cl.createDefaultProps);class hl extends st{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 pi(n));e.topOrBottom="bottom",this.ad(m.track([e,"color"],[this,"polylineColor"])),this.ad(m.track([e,"width"],[this,"polylineWidth"])),this.ad(m.track([e,"show"],[this,"polylineShow"])),this.ad(m.track([e,"arcType"],[this,"polylineArcType"])),this.ad(m.track([e,"loop"],[this,"loop"])),this.ad(m.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...st.createDefaultProps(),visibilityPositions:m.reactPositionsSet(void 0)})})(hl||(hl={})),m.extendClassProps(hl.prototype,hl.createDefaultProps);class P2 extends Fa{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class gn extends N.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(m.react(!0)));L(this,"_currentEditing",this.disposeVar(m.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Rt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof bi&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Sh=class Sh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new bi(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(m.bind([i,"position"],[n,"position"])),i.enabled=!i.position||N.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Sh,"type",Sh.registerEditing("ESCesiumViewer",N.ESJEditingMode.Place,Sh));let V0=Sh;const Eh=class Eh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ci(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof N.ES3DTileset){N.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(m.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(m.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(m.bind([i,"position"],[n,"position"])),this.ad(m.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Eh,"type",Eh.registerEditing("ESCesiumViewer",N.ESJEditingMode.Rotation,Eh));let H0=Eh;const Ph=class Ph extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new kr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(m.bind([i,"position"],[n,"position"])),this.ad(m.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Ph,"type",Ph.registerEditing("ESCesiumViewer",N.ESJEditingMode.Scale,Ph));let G0=Ph;const Th=class Th extends gn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new Ir(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const a=n[r];Reflect.has(a,"position")?o.push(a.position):a.points&&o.push(...a.points)}i.position=N.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,a)=>{if(!(!r||!a)){var s=En({originPosition:a},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=En({originPosition:a},[l.position])[0][0];l.position=Nr({originPosition:a},[[u[0]+s[0],u[1]+s[1],u[2]+s[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const u=En({originPosition:a},l.points)[0];l.points=Nr({originPosition:a},u.map(h=>[h[0]+s[0],h[1]+s[1],h[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(m.bind([i,"position"],[n,"position"]));break}if(n instanceof N.ES3DTileset){N.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(m.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=N.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var a=En({originPosition:r},[o])[0][0];const s=En({originPosition:r},n.points)[0];n.points=Nr({originPosition:r},s.map(l=>[l[0]+a[0],l[1]+a[1],l[2]+a[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Th,"type",Th.registerEditing("ESCesiumViewer",N.ESJEditingMode.Translation,Th));let gd=Th;const Ih=class Ih extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ul(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(m.bind([i,"startPosition"],[n,"position"])),this.ad(Vt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(m.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(m.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(m.bind([i,"distance"],[n,"distance"]));break}const o=Et(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=rr(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!N.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(Ih,"type",Ih.registerEditing("ESCesiumViewer",N.ESJEditingMode.DoublePointsAppend,Ih));let W0=Ih;const kh=class kh extends gn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new Fa(e));do{if(Reflect.has(n,"position")){this.ad(m.bind([i,"startPosition"],[n,"position"])),this.ad(Vt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(m.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(m.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(m.bind([i,"distance"],[n,"distance"]));break}const a=Et(n.position);if(C.Cartesian3.ZERO.equals(a)||!e.viewer)return;i.distance=rr(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(m.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||N.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(kh,"type",kh.registerEditing("ESCesiumViewer",N.ESJEditingMode.DoublePointsModify,kh));let q0=kh;const Fh=class Fh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new b2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Fh,"type",Fh.registerEditing("ESCesiumViewer",N.ESJEditingMode.CircularAppend,Fh));let K0=Fh;const Mh=class Mh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new x2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Mh,"type",Mh.registerEditing("ESCesiumViewer",N.ESJEditingMode.CircularInsert,Mh));let X0=Mh;const Bh=class Bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new _2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Bh,"type",Bh.registerEditing("ESCesiumViewer",N.ESJEditingMode.LineStringAppend,Bh));let $0=Bh;const Dh=class Dh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new C2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Dh,"type",Dh.registerEditing("ESCesiumViewer",N.ESJEditingMode.LineStringInsert,Dh));let Z0=Dh;const Rh=class Rh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new S2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Rh,"type",Rh.registerEditing("ESCesiumViewer",N.ESJEditingMode.ScatterAppend,Rh));let Y0=Rh;const Oh=class Oh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new E2(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Oh,"type",Oh.registerEditing("ESCesiumViewer",N.ESJEditingMode.ScatterModify,Oh));let J0=Oh;const Uh=class Uh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new cl(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Uh,"type",Uh.registerEditing("ESCesiumViewer",N.ESJEditingMode.VisibilityAppend,Uh));let j0=Uh;const Lh=class Lh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new hl(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(m.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(m.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Lh,"type",Lh.registerEditing("ESCesiumViewer",N.ESJEditingMode.VisibilityModify,Lh));let ew=Lh;const zh=class zh extends gn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new P2(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),a=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof N.ESClassification||n instanceof N.ESPolygonFence;let u=N.getMinMaxCorner(n.points).center,h=[...u],c=l?n.points[0][2]:0;s?r?h[2]=n.extrudedHeight:h[2]=n.height+c:(a&&(u[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=u,i.distance=h[2]-u[2],i.moveWithFirstPosition=!1;let f=[...u];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(s?(n.points=n.points.map(A=>[A[0],A[1],A[2]+i.positions[0][2]-f[2]]),r?n.extrudedHeight=i.positions[1][2]:a&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(a&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),f=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(m.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||N.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(zh,"type",zh.registerEditing("ESCesiumViewer",N.ESJEditingMode.HeightModify,zh));let tw=zh;function T2(){const t=m.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const a=Array.isArray(o)?[...o]:[o],s=i.editingID;e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"start",add:{modes:a}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"end",add:{modes:a}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(h=>{h.code=="Escape"&&l()}));let u=0;do{const h=a[u%a.length],c=await m.step(n,async f=>{const A=f.disposer,d=N.EngineObject.contextEditing.getEngineObjConstructor(h,e.typeName);if(!d||!i.supportEditingModes().includes(h))return console.log(`未找到编辑模式或不支持当前编辑模式${h},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:h,cIndex:u}}),e.notSupportEditingCount++,!1;const p=new d(i,e);if(A.ad(()=>{!p.isDestroyed()&&p.destroy()}),p.supportEditing)e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:h,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${h},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:h,cIndex:u}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(y=>{p.isDestroyed()&&y(!1),A.ad(p.toDestroyEvent.don(()=>{console.log(`编辑模式${h}结束`),y(!1)})),r&&(A.ad(e.keyDownEvent.don(g=>{g.code=="Space"&&(console.log(`编辑模式${h}结束`),y(!1))})),A.ad(e.dblclickEvent.don(()=>y(!0))))}))});if(r&&c||!r&&u==a.length-1||e.notSupportEditingCount==a.length)break;u++}while(!0)});return t}function I2(){const t=m.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&r()}));const a=new gd(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(s=>{a.isDestroyed()&&s(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),s()})),n.disposer.ad(e.dblclickEvent.don(()=>s()))}))});return t}se.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.8-beta.7",e="2025-06-19T00:47:05.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="468c6a33b6cf9a394b5cc013cf77153920efc031",s=((Date.now()-1750294025e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${s}个小时)
4692
4692
  %c${o?o+`
4693
4693
  `:""}当前网站正在使用${t},此软件版权归${i}所有
4694
- `;se.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","468c6a33b6cf9a394b5cc013cf77153920efc031")},get info(){return l},get date(){return"2025-06-19T00:47:05.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.6"},get name(){return"earthsdk3-cesium"},get commitId(){return"468c6a33b6cf9a394b5cc013cf77153920efc031"},print(){console.info(this.info,`
4694
+ `;se.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","468c6a33b6cf9a394b5cc013cf77153920efc031")},get info(){return l},get date(){return"2025-06-19T00:47:05.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.7"},get name(){return"earthsdk3-cesium"},get commitId(){return"468c6a33b6cf9a394b5cc013cf77153920efc031"},print(){console.info(this.info,`
4695
4695
  font-size: 18px;
4696
4696
  font-weight: 1000;
4697
4697
  line-height: 1;
@@ -4708,4 +4708,4 @@ void main()
4708
4708
  color: rgb(0, 120, 215);
4709
4709
  padding-bottom: 2px;
4710
4710
  padding-left: 35px;
4711
- `)}}),window.g_XE3CopyRights=window.g_XE3CopyRights||{},window.g_XE3CopyRights[t]=se.copyright,window.g_earthsdk_copyright_print=window.g_earthsdk_copyright_print??!0,window.g_earthsdk_copyright_print&&se.copyright.print()}catch{}return F2(),bi.defaultConfig={clickEnabled:!0,dblClickEnabled:!0},se.BaseEditingWrapper=gn,se.CircularAppendEditing=b2,se.CircularAppendEditingWrapper=K0,se.CircularInsertEditing=x2,se.CircularInsertEditingWrapper=X0,se.CurrentPositionsCenter=Nd,se.CurrentScale=Qd,se.CurrentSceneScalePoi=Lw,se.CursorFloatDiv=LR,se.CursorInfo=zR,se.Czm3DTiles=nt,se.CzmCameraChanged=xl,se.CzmCanvasAndDivSwitchPoi=NR,se.CzmCanvasPoi=Bp,se.CzmCircle=ca,se.CzmCircleGroundPrimitive=uo,se.CzmCircleOutlinePrimitive=co,se.CzmCirclePrimitive=lo,se.CzmClippingPlanes=Vs,se.CzmClock=He,se.CzmCustomPrimitive=At,se.CzmDivPoi=Dp,se.CzmES3DTileset=Hs,se.CzmESAlarm=Og,se.CzmESApertureEffect=Ug,se.CzmESAreaMeasurement=Lg,se.CzmESBlastParticleSystem=zg,se.CzmESBoxClipping=Qg,se.CzmESCameraView=Ng,se.CzmESCameraVisibleRange=Vg,se.CzmESCar=Hg,se.CzmESCityBasePoint=Wg,se.CzmESClassification=qg,se.CzmESClippingPlane=Rg,se.CzmESCustomPrimitive=Oy,se.CzmESCzml=Kg,se.CzmESDataMesh=Xg,se.CzmESDirectionMeasurement=$g,se.CzmESDistanceMeasurement=Zg,se.CzmESDynamicWater=Uy,se.CzmESEntityCluster=Ly,se.CzmESExcavate=Yg,se.CzmESFireParticleSystem=Jg,se.CzmESGeHistoryImagery=zy,se.CzmESGeoBezierPath=jg,se.CzmESGeoDiv=ey,se.CzmESGeoDivTextPoi=ty,se.CzmESGeoExtrudedPolygon=F0,se.CzmESGeoJson=ny,se.CzmESGeoLineString=Xs,se.CzmESGeoPolygon=qn,se.CzmESGeoPolygonImpl=qi,se.CzmESGeoRectangle=iy,se.CzmESGeoSmoothPolygon=ry,se.CzmESGeoVector=_n,se.CzmESGeoWater=Qy,se.CzmESGltfModel=oy,se.CzmESHeatMap=L0,se.CzmESHeightMeasurement=ay,se.CzmESHuman=sy,se.CzmESHumanPoi=M0,se.CzmESImageLabel=ly,se.CzmESImageryLayer=uy,se.CzmESKml=Cy,se.CzmESLabel=Pu,se.CzmESLocalCircle=xy,se.CzmESLocalLineString=Sy,se.CzmESLocalLineStringZ=Ey,se.CzmESLocalPolygon=Py,se.CzmESLocalPolygonZ=Ty,se.CzmESLocalRectangle=Iy,se.CzmESLocalSkyBox=cy,se.CzmESLocalVector=$A,se.CzmESLocationMeasurement=hy,se.CzmESMVTLayer=Ny,se.CzmESMsTileset=R0,se.CzmESNavigator=ky,se.CzmESObjectWithLocation=$e,se.CzmESParticleSystemPrimitive=fy,se.CzmESPath=Fy,se.CzmESPipeFence=Vy,se.CzmESPipeline=Hy,se.CzmESPipeserTileset=Wy,se.CzmESPit=qy,se.CzmESPoi2D=Ay,se.CzmESPoi3D=dy,se.CzmESPolygonFence=My,se.CzmESPolygonFlattenedPlane=Dg,se.CzmESPolygonWithHole=Ky,se.CzmESRectangle=By,se.CzmESRoad=Dy,se.CzmESRtsFeatureEditing=D0,se.CzmESRtsTileset=B0,se.CzmESScale=Ry,se.CzmESSignalTransmission=$y,se.CzmESSkylineAnalysis=U0,se.CzmESStaticMesh=O0,se.CzmESSubmergingAnalysis=py,se.CzmESSunshineAnalysis=b0,se.CzmESSurfaceAreaMeasurement=E0,se.CzmESTerrainLayer=my,se.CzmESTextLabel=gy,se.CzmESUEWidget=yy,se.CzmESUnrealActor=vy,se.CzmESVideoFusion=wy,se.CzmESViewShed=_y,se.CzmESViewerStatusBar=P0,se.CzmESViewerStatusBarScale=T0,se.CzmESVisibilityAnalysis=I0,se.CzmESVisualObject=Zn,se.CzmESVolumeMeasurement=k0,se.CzmESWidget=by,se.CzmFlattenedPlane=_o,se.CzmGlobeMaterial=ma,se.CzmImageModel=gr,se.CzmImagery=vo,se.CzmModelPrimitive=jt,se.CzmParticleSystemPrimitive=Ri,se.CzmPicking=Ow,se.CzmPoint=ei,se.CzmPointPrimitiveCollection=_s,se.CzmPoisContext=I_,se.CzmPolygon=is,se.CzmPolygonClipping=$s,se.CzmPolygonGroundPrimitive=ns,se.CzmPolygonGroundPrimitiveWithHeight=ws,se.CzmPolygonPrimitive=Xr,se.CzmPolygonPrimitiveWithHeight=ao,se.CzmPolygonWithHeight=so,se.CzmPolyline=rt,se.CzmPolylineGroundPrimitive=ss,se.CzmPolylinePrimitive=as,se.CzmPolylines=pi,se.CzmPolylinesGroundPrimitive=ts,se.CzmPolylinesPrimitive=Gn,se.CzmRectangle=zi,se.CzmSignalTransmission=Pr,se.CzmTexture=yt,se.CzmView=In,se.CzmViewDistanceRangeControl=Vo,se.CzmWater=ha,se.CzmWaterPrimitive=fu,se.DoublePointsAppendEditing=ul,se.DoublePointsAppendEditingWrapper=W0,se.DoublePointsModifyEditing=Fa,se.DoublePointsModifyEditingWrapper=q0,se.ESCesiumViewer=it,se.ESCustomPrimitive=Eo,se.ESGeHistoryImagery=Co,se.ESGeoBezierPath=Io,se.ESGeoSmoothPolygon=xr,se.ESKml=xo,se.ESLocalLineString=So,se.ESLocalLineStringZ=Cr,se.ESMVTLayer=bo,se.ESRoad=To,se.ESSignalTransmission=Po,se.GeoCanvasImagePoi=Bi,se.GeoCanvasMenuPoi=rs,se.GeoCanvasPoi=fr,se.GeoCanvasPointPoi=$r,se.GeoCustomDivPoi=Pt,se.GeoDivSwitchPoi=ia,se.GeoDivTextPoi=Di,se.GeoPolylinePath=Zs,se.HeightModifyEditing=P2,se.HeightModifyEditingWrapper=tw,se.ImageLabel2D=NS,se.ImageLabel3D=VS,se.ImageriesManager=a_,se.LabelManager=o_,se.LineStringAppendEditing=_2,se.LineStringAppendEditingWrapper=$0,se.LineStringInsertEditing=C2,se.LineStringInsertEditingWrapper=Z0,se.PickingManager=s_,se.PlaceEditing=bi,se.PlaceEditingWrapper=V0,se.PolylinePath=Ns,se.ResourceHandler=Ka,se.RotationEditing=Ci,se.RotationEditingWrapper=H0,se.ScaleEditing=kr,se.ScaleEditingWrapper=G0,se.ScatterAppendEditing=S2,se.ScatterAppendEditingWrapper=Y0,se.ScatterModifyEditing=E2,se.ScatterModifyEditingWrapper=J0,se.SharedTexturePool=qw,se.SmoothMoving=Uw,se.TerrainManager=r_,se.TextLabel2D=GS,se.TextLabel3D=WS,se.ToGCJ02WebMercatorTilingScheme=aS,se.ToWGS84WebMercatorTilingScheme=sS,se.TranslationEditing=Ir,se.TranslationEditingWrapper=gd,se.ViewerExtensions=l_,se.VisibilityAppendEditing=cl,se.VisibilityAppendEditingWrapper=j0,se.VisibilityModifyEditing=hl,se.VisibilityModifyEditingWrapper=ew,se.Widget2D=Zr,se.Widget3D=cA,se.WinPosFromCartesian=Gh,se.XbsjGroundPolylinePrimitive=Wi,se.angleToHumanStr=Tl,se.areaToHumanStr=zw,se.bindNorthRotation=Vt,se.capture=Hw,se.checkAndConvertImage=XT,se.computeCutPoint=m2,se.computeCzmModelMatrix=ft,se.computePickingInfoWithCoordinates=Td,se.createClippingPlaneCollection=bl,se.createClippingPolygonCollection=Nh,se.createEditingSystemProcessing=T2,se.createGeoBoudingSphereReactFromPositions=Vw,se.createHelperLine=nT,se.createInfoPoi=Zd,se.createInnerClassFromJson=qd,se.createInnerHtmlWithWhiteTextBlackBackground=Zo,se.createMaterialFromJson=dw,se.createMaterialRef=fi,se.createMoveObjectsProcessing=I2,se.createPolygonHierarchy=or,se.createTexture=Pl,se.createTextureFromImage=np,se.createTilingSchema=Ei,se.czmFlyTo=Fl,se.czmModelActiveAnimationsWithVisible=Gd,se.czmSubscribeAndEvaluate=Pi,se.defaultFlyToRotation=Yn,se.distanceToHumanStr=Il,se.extendComponentProps=$T,se.flyTo=Oe,se.flyWithPosition=Jn,se.flyWithPositions=Ue,se.flyWithPrimitive=Pn,se.fromCartesian=D2,se.fromCartesian2=nw,se.fromCartesian3=wl,se.fromCartesian4=iw,se.fromCartographic=Na,se.fromColor=O2,se.fromDistanceDisplayCondition=z2,se.fromEllipsoid=K2,se.fromHeadingPitchRoll=L2,se.fromNearFarScalar=U2,se.fromQuaternion=N2,se.fromRectangle=W2,se.generateCartesianArc=Pw,se.geoNeareastPointOnRhumbLine=Ho,se.geoNeareastPointOnRhumbLine2=iT,se.geoPolylineToBezierSpline=Yd,se.getCameraPosition=Ln,se.getCameraRotation=Va,se.getCameraTargetPos=sw,se.getCenterAndViewDistance=Jd,se.getCzmCode=GT,se.getDefaultComponentProps=ZT,se.getDefaultWinPosAndDepth=hT,se.getDirectionVectorFromRotation=yw,se.getDistancesAndTimePosRotsFromPositions=Ud,se.getElevationMatrix=lR,se.getEllipsoidGeodesicCenter=Md,se.getFinalCzm3DTilesUrlString=xN,se.getFlyToCenterAndRotation=$h,se.getFoveatedInterpolationCallback=yS,se.getFuncFromStr=Kd,se.getIncludedAngleFromPositions=Fw,se.getInverseModelMatrix=Iw,se.getMinMaxPosition=Nw,se.getModelMatrixFromPosition=Ld,se.getObjectProperties=Yo,se.getPointerEventButton=ar,se.getPolygonPointsFromHierarchy=zd,se.getQuaternion=xd,se.getQuaternionWithXForwardZUp=ow,se.getQuaternionWithYForwardZUp=Vh,se.getResource=Qn,se.getSceneScaleForScreenPixelSize=rr,se.getSharedTexturePool=Kw,se.getTilingSchemeStr=B8,se.getViewerExtensions=Hn,se.getWinPos=gw,se.getXbsjWaterMaterial=Bw,se.hackCesium3DTileset=E_,se.hackCzmModel3DTileContent=P_,se.hackModel=S_,se.hackModelSceneGraph=T_,se.imgUrlToBase64=Jo,se.localPositionToPosition=Qr,se.localPositionsToPositions=Nr,se.merge3dTilesServer=UT,se.pickHeightPosition=Hh,se.pickPosition=fw,se.pickVirtualEarth=Ha,se.pickVirtualPlane=Aw,se.positionAndRotationToQuaternion=G2,se.positionFromCartesian=Qe,se.positionToCartesian=Et,se.positionToHumanStr=Xd,se.positionToLocalPosition=kw,se.positionsToLocalPositions=En,se.positionsToUniqueCartesians=sn,se.rectangleIsGlobal=Wd,se.rpToap=Xh,se.setClippingPlaneCollection=Qh,se.setCylinderGeometry=$d,se.setModelMaterial=El,se.setRectangleGeometry=Qw,se.setViewerExtensions=Ep,se.toCartesian=hi,se.toCartesian2=tt,se.toCartesian3=Si,se.toCartesian4=Cd,se.toCartographic=R2,se.toCoefficients=Hd,se.toColor=Be,se.toDistanceDisplayCondition=_l,se.toEllipsoid=je,se.toHeadingPitchRoll=rw,se.toNearFarScalar=Rr,se.toQuaternion=Q2,se.toRectangle=bt,se.toRgbaString=Vr,se.updateEnvironmentMapManager=Vd,se.updateMaterialFromJson=Fd,se.winPosAndDepthEqual=mw,Object.defineProperty(se,Symbol.toStringTag,{value:"Module"}),se}({},Cesium,xbsj-base,EarthSDK3);
4711
+ `)}}),window.g_XE3CopyRights=window.g_XE3CopyRights||{},window.g_XE3CopyRights[t]=se.copyright,window.g_earthsdk_copyright_print=window.g_earthsdk_copyright_print??!0,window.g_earthsdk_copyright_print&&se.copyright.print()}catch{}return F2(),bi.defaultConfig={clickEnabled:!0,dblClickEnabled:!0},se.BaseEditingWrapper=gn,se.CircularAppendEditing=b2,se.CircularAppendEditingWrapper=K0,se.CircularInsertEditing=x2,se.CircularInsertEditingWrapper=X0,se.CurrentPositionsCenter=Nd,se.CurrentScale=Qd,se.CurrentSceneScalePoi=Lw,se.CursorFloatDiv=LR,se.CursorInfo=zR,se.Czm3DTiles=nt,se.CzmCameraChanged=xl,se.CzmCanvasAndDivSwitchPoi=NR,se.CzmCanvasPoi=Bp,se.CzmCircle=ca,se.CzmCircleGroundPrimitive=uo,se.CzmCircleOutlinePrimitive=co,se.CzmCirclePrimitive=lo,se.CzmClippingPlanes=Vs,se.CzmClock=He,se.CzmCustomPrimitive=At,se.CzmDivPoi=Dp,se.CzmES3DTileset=Hs,se.CzmESAlarm=Og,se.CzmESApertureEffect=Ug,se.CzmESAreaMeasurement=Lg,se.CzmESBlastParticleSystem=zg,se.CzmESBoxClipping=Qg,se.CzmESCameraView=Ng,se.CzmESCameraVisibleRange=Vg,se.CzmESCar=Hg,se.CzmESCityBasePoint=Wg,se.CzmESClassification=qg,se.CzmESClippingPlane=Rg,se.CzmESCustomPrimitive=Oy,se.CzmESCzml=Kg,se.CzmESDataMesh=Xg,se.CzmESDirectionMeasurement=$g,se.CzmESDistanceMeasurement=Zg,se.CzmESDynamicWater=Uy,se.CzmESEntityCluster=Ly,se.CzmESExcavate=Yg,se.CzmESFireParticleSystem=Jg,se.CzmESGeHistoryImagery=zy,se.CzmESGeoBezierPath=jg,se.CzmESGeoDiv=ey,se.CzmESGeoDivTextPoi=ty,se.CzmESGeoExtrudedPolygon=F0,se.CzmESGeoJson=ny,se.CzmESGeoLineString=Xs,se.CzmESGeoPolygon=qn,se.CzmESGeoPolygonImpl=qi,se.CzmESGeoRectangle=iy,se.CzmESGeoSmoothPolygon=ry,se.CzmESGeoVector=_n,se.CzmESGeoWater=Qy,se.CzmESGltfModel=oy,se.CzmESHeatMap=L0,se.CzmESHeightMeasurement=ay,se.CzmESHuman=sy,se.CzmESHumanPoi=M0,se.CzmESImageLabel=ly,se.CzmESImageryLayer=uy,se.CzmESKml=Cy,se.CzmESLabel=Pu,se.CzmESLocalCircle=xy,se.CzmESLocalLineString=Sy,se.CzmESLocalLineStringZ=Ey,se.CzmESLocalPolygon=Py,se.CzmESLocalPolygonZ=Ty,se.CzmESLocalRectangle=Iy,se.CzmESLocalSkyBox=cy,se.CzmESLocalVector=$A,se.CzmESLocationMeasurement=hy,se.CzmESMVTLayer=Ny,se.CzmESMsTileset=R0,se.CzmESNavigator=ky,se.CzmESObjectWithLocation=$e,se.CzmESParticleSystemPrimitive=fy,se.CzmESPath=Fy,se.CzmESPipeFence=Vy,se.CzmESPipeline=Hy,se.CzmESPipeserTileset=Wy,se.CzmESPit=qy,se.CzmESPoi2D=Ay,se.CzmESPoi3D=dy,se.CzmESPolygonFence=My,se.CzmESPolygonFlattenedPlane=Dg,se.CzmESPolygonWithHole=Ky,se.CzmESRectangle=By,se.CzmESRoad=Dy,se.CzmESRtsFeatureEditing=D0,se.CzmESRtsTileset=B0,se.CzmESScale=Ry,se.CzmESSignalTransmission=$y,se.CzmESSkylineAnalysis=U0,se.CzmESStaticMesh=O0,se.CzmESSubmergingAnalysis=py,se.CzmESSunshineAnalysis=b0,se.CzmESSurfaceAreaMeasurement=E0,se.CzmESTerrainLayer=my,se.CzmESTextLabel=gy,se.CzmESUEWidget=yy,se.CzmESUnrealActor=vy,se.CzmESVideoFusion=wy,se.CzmESViewShed=_y,se.CzmESViewerStatusBar=P0,se.CzmESViewerStatusBarScale=T0,se.CzmESVisibilityAnalysis=I0,se.CzmESVisualObject=Zn,se.CzmESVolumeMeasurement=k0,se.CzmESWidget=by,se.CzmFlattenedPlane=_o,se.CzmGlobeMaterial=ma,se.CzmImageModel=gr,se.CzmImagery=vo,se.CzmModelPrimitive=jt,se.CzmParticleSystemPrimitive=Ri,se.CzmPicking=Ow,se.CzmPoint=ei,se.CzmPointPrimitiveCollection=_s,se.CzmPoisContext=I_,se.CzmPolygon=is,se.CzmPolygonClipping=$s,se.CzmPolygonGroundPrimitive=ns,se.CzmPolygonGroundPrimitiveWithHeight=ws,se.CzmPolygonPrimitive=Xr,se.CzmPolygonPrimitiveWithHeight=ao,se.CzmPolygonWithHeight=so,se.CzmPolyline=rt,se.CzmPolylineGroundPrimitive=ss,se.CzmPolylinePrimitive=as,se.CzmPolylines=pi,se.CzmPolylinesGroundPrimitive=ts,se.CzmPolylinesPrimitive=Gn,se.CzmRectangle=zi,se.CzmSignalTransmission=Pr,se.CzmTexture=yt,se.CzmView=In,se.CzmViewDistanceRangeControl=Vo,se.CzmWater=ha,se.CzmWaterPrimitive=fu,se.DoublePointsAppendEditing=ul,se.DoublePointsAppendEditingWrapper=W0,se.DoublePointsModifyEditing=Fa,se.DoublePointsModifyEditingWrapper=q0,se.ESCesiumViewer=it,se.ESCustomPrimitive=Eo,se.ESGeHistoryImagery=Co,se.ESGeoBezierPath=Io,se.ESGeoSmoothPolygon=xr,se.ESKml=xo,se.ESLocalLineString=So,se.ESLocalLineStringZ=Cr,se.ESMVTLayer=bo,se.ESRoad=To,se.ESSignalTransmission=Po,se.GeoCanvasImagePoi=Bi,se.GeoCanvasMenuPoi=rs,se.GeoCanvasPoi=fr,se.GeoCanvasPointPoi=$r,se.GeoCustomDivPoi=Pt,se.GeoDivSwitchPoi=ia,se.GeoDivTextPoi=Di,se.GeoPolylinePath=Zs,se.HeightModifyEditing=P2,se.HeightModifyEditingWrapper=tw,se.ImageLabel2D=NS,se.ImageLabel3D=VS,se.ImageriesManager=a_,se.LabelManager=o_,se.LineStringAppendEditing=_2,se.LineStringAppendEditingWrapper=$0,se.LineStringInsertEditing=C2,se.LineStringInsertEditingWrapper=Z0,se.PickingManager=s_,se.PlaceEditing=bi,se.PlaceEditingWrapper=V0,se.PolylinePath=Ns,se.ResourceHandler=Ka,se.RotationEditing=Ci,se.RotationEditingWrapper=H0,se.ScaleEditing=kr,se.ScaleEditingWrapper=G0,se.ScatterAppendEditing=S2,se.ScatterAppendEditingWrapper=Y0,se.ScatterModifyEditing=E2,se.ScatterModifyEditingWrapper=J0,se.SharedTexturePool=qw,se.SmoothMoving=Uw,se.TerrainManager=r_,se.TextLabel2D=GS,se.TextLabel3D=WS,se.ToGCJ02WebMercatorTilingScheme=aS,se.ToWGS84WebMercatorTilingScheme=sS,se.TranslationEditing=Ir,se.TranslationEditingWrapper=gd,se.ViewerExtensions=l_,se.VisibilityAppendEditing=cl,se.VisibilityAppendEditingWrapper=j0,se.VisibilityModifyEditing=hl,se.VisibilityModifyEditingWrapper=ew,se.Widget2D=Zr,se.Widget3D=cA,se.WinPosFromCartesian=Gh,se.XbsjGroundPolylinePrimitive=Wi,se.angleToHumanStr=Tl,se.areaToHumanStr=zw,se.bindNorthRotation=Vt,se.capture=Hw,se.checkAndConvertImage=XT,se.computeCutPoint=m2,se.computeCzmModelMatrix=ft,se.computePickingInfoWithCoordinates=Td,se.createClippingPlaneCollection=bl,se.createClippingPolygonCollection=Nh,se.createEditingSystemProcessing=T2,se.createGeoBoudingSphereReactFromPositions=Vw,se.createHelperLine=nT,se.createInfoPoi=Zd,se.createInnerClassFromJson=qd,se.createInnerHtmlWithWhiteTextBlackBackground=Zo,se.createMaterialFromJson=dw,se.createMaterialRef=fi,se.createMoveObjectsProcessing=I2,se.createPolygonHierarchy=or,se.createTexture=Pl,se.createTextureFromImage=np,se.createTilingSchema=Ei,se.czmFlyTo=Fl,se.czmModelActiveAnimationsWithVisible=Gd,se.czmSubscribeAndEvaluate=Pi,se.defaultFlyToRotation=Yn,se.distanceToHumanStr=Il,se.extendComponentProps=$T,se.flyTo=Oe,se.flyWithPosition=Jn,se.flyWithPositions=Ue,se.flyWithPrimitive=Pn,se.fromCartesian=D2,se.fromCartesian2=nw,se.fromCartesian3=wl,se.fromCartesian4=iw,se.fromCartographic=Na,se.fromColor=O2,se.fromDistanceDisplayCondition=z2,se.fromEllipsoid=K2,se.fromHeadingPitchRoll=L2,se.fromNearFarScalar=U2,se.fromQuaternion=N2,se.fromRectangle=W2,se.generateCartesianArc=Pw,se.geoNeareastPointOnRhumbLine=Ho,se.geoNeareastPointOnRhumbLine2=iT,se.geoPolylineToBezierSpline=Yd,se.getCameraPosition=Ln,se.getCameraRotation=Va,se.getCameraTargetPos=sw,se.getCenterAndViewDistance=Jd,se.getCzmCode=GT,se.getDefaultComponentProps=ZT,se.getDefaultWinPosAndDepth=hT,se.getDirectionVectorFromRotation=yw,se.getDistancesAndTimePosRotsFromPositions=Ud,se.getElevationMatrix=lR,se.getEllipsoidGeodesicCenter=Md,se.getFinalCzm3DTilesUrlString=xN,se.getFlyToCenterAndRotation=$h,se.getFoveatedInterpolationCallback=yS,se.getFuncFromStr=Kd,se.getIncludedAngleFromPositions=Fw,se.getInverseModelMatrix=Iw,se.getMinMaxPosition=Nw,se.getModelMatrixFromPosition=Ld,se.getObjectProperties=Yo,se.getPointerEventButton=ar,se.getPolygonPointsFromHierarchy=zd,se.getQuaternion=xd,se.getQuaternionWithXForwardZUp=ow,se.getQuaternionWithYForwardZUp=Vh,se.getResource=Qn,se.getSceneScaleForScreenPixelSize=rr,se.getSharedTexturePool=Kw,se.getTilingSchemeStr=B8,se.getViewerExtensions=Hn,se.getWinPos=gw,se.getXbsjWaterMaterial=Bw,se.hackCesium3DTileset=E_,se.hackCzmModel3DTileContent=P_,se.hackModel=S_,se.hackModelSceneGraph=T_,se.imgUrlToBase64=Jo,se.localPositionToPosition=Qr,se.localPositionsToPositions=Nr,se.merge3dTilesServer=UT,se.pickHeightPosition=Hh,se.pickPosition=fw,se.pickVirtualEarth=Ha,se.pickVirtualPlane=Aw,se.positionAndRotationToQuaternion=G2,se.positionFromCartesian=Qe,se.positionToCartesian=Et,se.positionToHumanStr=Xd,se.positionToLocalPosition=kw,se.positionsToLocalPositions=En,se.positionsToUniqueCartesians=sn,se.rectangleIsGlobal=Wd,se.rpToap=Xh,se.setClippingPlaneCollection=Qh,se.setCylinderGeometry=$d,se.setModelMaterial=El,se.setRectangleGeometry=Qw,se.setViewerExtensions=Ep,se.toCartesian=hi,se.toCartesian2=tt,se.toCartesian3=Si,se.toCartesian4=Cd,se.toCartographic=R2,se.toCoefficients=Hd,se.toColor=Be,se.toDistanceDisplayCondition=_l,se.toEllipsoid=je,se.toHeadingPitchRoll=rw,se.toNearFarScalar=Rr,se.toQuaternion=Q2,se.toRectangle=bt,se.toRgbaString=Vr,se.updateEnvironmentMapManager=Vd,se.updateMaterialFromJson=Fd,se.winPosAndDepthEqual=mw,Object.defineProperty(se,Symbol.toStringTag,{value:"Module"}),se}({},Cesium,xbsj_base,EarthSDK3);
@@ -53799,7 +53799,7 @@ function nU() {
53799
53799
  }
53800
53800
  let ag;
53801
53801
  try {
53802
- const t = "earthsdk3-cesium", i = "3.0.8-beta.6", e = "2025-06-19T00:47:05.000Z", n = "北京西部世界科技有限公司", s = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", o = "468c6a33b6cf9a394b5cc013cf77153920efc031", a = ((Date.now() - 1750294025e3) / 36e5).toFixed(1), l = `%c🌏 ${t}%c ${i}.${o.slice(0, 8)}.${e} (距今${a}个小时)
53802
+ const t = "earthsdk3-cesium", i = "3.0.8-beta.7", e = "2025-06-19T00:47:05.000Z", n = "北京西部世界科技有限公司", s = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", o = "468c6a33b6cf9a394b5cc013cf77153920efc031", a = ((Date.now() - 1750294025e3) / 36e5).toFixed(1), l = `%c🌏 ${t}%c ${i}.${o.slice(0, 8)}.${e} (距今${a}个小时)
53803
53803
  %c${s ? s + `
53804
53804
  ` : ""}当前网站正在使用${t},此软件版权归${n}所有
53805
53805
  `;
@@ -53829,7 +53829,7 @@ try {
53829
53829
  },
53830
53830
  // @ts-ignore
53831
53831
  get version() {
53832
- return "3.0.8-beta.6";
53832
+ return "3.0.8-beta.7";
53833
53833
  },
53834
53834
  // @ts-ignore
53835
53835
  get name() {
@@ -1,4 +1,4 @@
1
- (function(x,re){typeof exports=="object"&&typeof module<"u"?re(exports,require("cesium"),require("xbsj-base"),require("earthsdk3"),require("html2canvas"),require("mvt-basic-render"),require("heatmapjs"),require("delaunator"),require("earcut")):typeof define=="function"&&define.amd?define(["exports","cesium","xbsj-base","earthsdk3","html2canvas","mvt-basic-render","heatmapjs","delaunator","earcut"],re):(x=typeof globalThis<"u"?globalThis:x||self,re(x.EarthSDK3_Cesium={},x.Cesium,x["xbsj-base"],x.EarthSDK3,x.html2canvas,x.Mapbox,x.h337,x.Delaunator,x.earcut))})(this,function(x,re,c,w,Ld,V1,U1,G1,W1){"use strict";var f4=Object.defineProperty;var m4=(x,re,c)=>re in x?f4(x,re,{enumerable:!0,configurable:!0,writable:!0,value:c}):x[re]=c;var v=(x,re,c)=>m4(x,typeof re!="symbol"?re+"":re,c);var Ar=typeof document<"u"?document.currentScript:null;function gv(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(i,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return i.default=t,Object.freeze(i)}const d=gv(re),H1=gv(V1);window.Cesium=d;function q1(){Object.keys(d).forEach(t=>{d[t].prototype&&Object.defineProperty(d[t].prototype,"ESSceneObjectID",{writable:!0,enumerable:!0,value:c.createGuid()})})}class Nt extends c.Destroyable{constructor(){super()}}v(Nt,"defaults",{enabled:!0}),(t=>{t.createDefaultProps=()=>({enabled:!0})})(Nt||(Nt={})),c.extendClassProps(Nt.prototype,Nt.createDefaultProps);class ci extends w.EngineObject{constructor(i,e){if(super(i,e),!e.viewer){console.warn("viewer is undefined!");return}this.d(i.flyToEvent.don((r,o)=>this.flyTo(r,o))),this.d(i.flyInEvent.don((r,o)=>this.flyIn(r,o))),this.dispose(i.calcFlyInParamEvent.disposableOn(()=>{if(!e.actived)return;const r=e.getCameraInfo();if(!r)return;const{position:o,rotation:s}=r;i.flyInParam={position:o,rotation:s,flyDuration:1}})),this.dispose(i.calcFlyToParamEvent.disposableOn(()=>{i.useCalcFlyToParamInESObjectWithLocation||console.warn("calcFlyToParam无法调用,该对象缺少position属性!")})),this.ad(this.createdEvent.don(()=>{this.ad(c.nextAnimateFrame(()=>{i.createdEvent.emit()}))}))}flyToWithPromise(i,e,n,r,o,s,a){const{sceneObject:l,czmViewer:h}=this,u=h.flyTo({distance:n??0,heading:r?r[0]:0,pitch:r?r[1]:0,flyDuration:o??1,hDelta:s??0,pDelta:a??0},e);u&&u.then(p=>{})}flyTo(i,e){const{sceneObject:n,czmViewer:r}=this;if(!r.actived)return!1;if(n.flyToParam&&(n.useCalcFlyToParamInESObjectWithLocation||console.warn("flyToParam无法使用,该对象缺少position属性,若飞行失败,请清空flyToParam后重试!")),n.flyInParam){const{position:o,rotation:s,flyDuration:a}=n.flyInParam,l=i??a;return this.flyToWithPromise(e,o,void 0,s,l),!0}return!1}flyIn(i,e){const{sceneObject:n,czmViewer:r}=this;if(!r.actived)return!1;if(n.flyInParam){const{position:o,rotation:s,flyDuration:a}=n.flyInParam,l=i??a;return this.flyToWithPromise(e,o,void 0,s,l),!0}return!1}get czmViewer(){return this.viewer}}class $1 extends c.Destroyable{constructor(e){super();v(this,"_currentPosition",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_currentRotation",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_currentHeading",this.disposeVar(c.react(void 0)));v(this,"_isRotating",this.disposeVar(c.react(!1)));v(this,"_isGround",this.disposeVar(c.react(!1)));v(this,"_startPosition",[0,0,0]);v(this,"_startRotation",[0,0,0]);v(this,"_processing",this.disposeVar(c.createProcessingFromAsyncFunc(async(e,n,r,o)=>{const{currentPosition:s,currentRotation:a}=this;if(!s||o<=0||!a){this._currentPosition.value=n,this._currentRotation.value=r;return}const l=this._startPosition;l.splice(0,3,...s);const h=this._startRotation;h.splice(0,3,...a);let u=Date.now();const p=w.geoHeading(l,n);this._currentHeading.value=p;const m=w.geoDistance(l,n)/o,g=[r[0]-h[0],r[1]-h[1],r[2]-h[2]],y=n[2]-l[2];await e.promise(new Promise(P=>{e.disposer.dispose(c.animateFrame(()=>{let S=Date.now()-u;S=S<0?0:S,S=S>o?o:S;const C=S*m,E=w.geoDestination(l,C,p);if(this.isGround&&E){const T=this._czmViewer.getTerrainHeight([E[0],E[1]]);this._currentPosition.value=[E[0],E[1],T??0]}else E&&(E[2]+=y*(S/o)),this._currentPosition.value=E;if(this.isRotating){const[T,I,D]=g,R=S/o;this._currentRotation.value=[h[0]+T*R,h[1]+I*R,h[2]+D*R]}S===o&&(this._currentPosition.value=n,this.isRotating&&(this._currentRotation.value=r),this.isRotating=!1,this.isGround=!1,P())}))}))})));this._czmViewer=e}get currentPosition(){return this._currentPosition.value}get currentPositionChanged(){return this._currentPosition.changed}get currentRotation(){return this._currentRotation.value}get currentRotationChanged(){return this._currentRotation.changed}get currentHeading(){return this._currentHeading.value}get currentHeadingChanged(){return this._currentHeading.changed}get isRotating(){return this._isRotating.value}set isRotating(e){this._isRotating.value=e}get isRotatingChanged(){return this._isRotating.changed}get isGround(){return this._isGround.value}set isGround(e){this._isGround.value=e}get isGroundChanged(){return this._isGround.changed}get processing(){return this._processing}restart(e,n,r){this._processing.restart(void 0,e,n,r)}cancel(){this._processing.cancel()}}function Be(t,i){return d.Cartesian3.fromDegrees(...t,void 0,i)}const X1=new d.Cartographic;function pe(t,i){const e=d.Cartographic.fromCartesian(t,void 0,X1);if(e)return i=i||[0,0,0],i[0]=d.Math.toDegrees(e.longitude),i[1]=d.Math.toDegrees(e.latitude),i[2]=e.height,i}function be(t,i){return i=i||new d.Cartesian2,i.x=t[0],i.y=t[1],i}function vv(t,i){return i=i||[0,0],i[0]=t.x,i[1]=t.y,i}function Ri(t,i){return i=i||new d.Cartesian3,i.x=t[0],i.y=t[1],i.z=t[2],i}function $s(t,i){return i=i||[0,0,0],i[0]=t.x,i[1]=t.y,i[2]=t.z,i}function zd(t,i){return i=i||new d.Cartesian4,i.x=t[0],i.y=t[1],i.z=t[2],i.w=t[3],i}function yv(t,i){return i=i||[0,0,0,0],i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=t.w,i}function Ci(t,i){if(t.length===4)return zd(t,i);if(t.length===3)return Ri(t,i);if(t.length===2)return be(t,i);throw new Error("toCartesian error: should not be here!")}function Y1(t,i){if(t instanceof d.Cartesian2)return vv(t,i);if(t instanceof d.Cartesian3)return $s(t,i);if(t instanceof d.Cartesian4)return yv(t,i);throw new Error("fromCartesian error: should not be here!")}function Z1(t,i){return i=i||new d.Cartographic,i.longitude=d.Math.toRadians(t[0]),i.latitude=d.Math.toRadians(t[1]),i.height=t[2],i}function Tr(t,i){return i=i||[0,0,0],i[0]=d.Math.toDegrees(t.longitude),i[1]=d.Math.toDegrees(t.latitude),i[2]=t.height,i}function se(t,i){return i=i||new d.Color,i.red=t[0],i.green=t[1],i.blue=t[2],i.alpha=t[3],i}function Q1(t,i){return i=i||[0,0,0,0],i[0]=t.red,i[1]=t.green,i[2]=t.blue,i[3]=t.alpha,i}function kn(t,i){return i=i||new d.NearFarScalar,i.near=t[0],i.nearValue=t[1],i.far=t[2],i.farValue=t[3],i}function K1(t,i){return i=i||[0,0,0,0],i[0]=t.near,i[1]=t.nearValue,i[2]=t.far,i[3]=t.farValue,i}function wv(t,i){return i=i||new d.HeadingPitchRoll,i.heading=d.Math.toRadians(t[0]-90),i.pitch=d.Math.toRadians(t[1]),i.roll=d.Math.toRadians(t[2]),i}function J1(t,i){return i=i||[0,0,0],i[0]=d.Math.toDegrees(t.heading+d.Math.PI_OVER_TWO),i[1]=d.Math.toDegrees(t.pitch),i[2]=d.Math.toDegrees(t.roll),i}function Xs(t,i){return i=i||new d.DistanceDisplayCondition,i.near=t[0],i.far=t[1],i}function B1(t,i){return i=i||[0,0],i[0]=t.near,i[1]=t.far,i}function j1(t,i){return i=i||new d.Quaternion,i.x=t[0],i.y=t[1],i.z=t[2],i.w=t[3],i}function eS(t,i){return i=i||[0,0,0,0],i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=t.w,i}const tS=new d.HeadingPitchRoll,iS=new d.Cartesian3;function nS(t,i,e){const n=wv(i,tS),r=Be(t,iS);return d.Transforms.headingPitchRollQuaternion(r,n,void 0,void 0,e)}function Ze(t,i){return i=i||new d.Rectangle,i.west=t[0]*Math.PI/180,i.south=t[1]*Math.PI/180,i.east=t[2]*Math.PI/180,i.north=t[3]*Math.PI/180,i}function oS(t,i){return i=i||[0,0,0,0],i[0]=t.west,i[1]=t.south,i[2]=t.east,i[3]=t.north,i}const rS=new d.Cartesian3;function Me(t,i){return i=i||new d.Ellipsoid,d.Ellipsoid.fromCartesian3(d.Cartesian3.fromArray(t,void 0,rS),i)}function sS(t,i){return i=i||[0,0,0],i[0]=t.radii.x,i[1]=t.radii.y,i[2]=t.radii.z,i}function xi(t){if(t.type==="GeographicTilingScheme")return new d.GeographicTilingScheme({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),rectangle:t.rectangle&&Ze(t.rectangle),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY});if(t.type==="WebMercatorTilingScheme")return new d.WebMercatorTilingScheme({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY,rectangleSouthwestInMeters:t.rectangleSouthwestInMeters&&be(t.rectangleSouthwestInMeters),rectangleNortheastInMeters:t.rectangleNortheastInMeters&&be(t.rectangleNortheastInMeters)});if(t.type==="ToGCJ02WebMercatorTilingScheme")return new yC({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY,rectangleSouthwestInMeters:t.rectangleSouthwestInMeters&&be(t.rectangleSouthwestInMeters),rectangleNortheastInMeters:t.rectangleNortheastInMeters&&be(t.rectangleNortheastInMeters)});if(t.type==="ToWGS84WebMercatorTilingScheme")return new wC({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY,rectangleSouthwestInMeters:t.rectangleSouthwestInMeters&&be(t.rectangleSouthwestInMeters),rectangleNortheastInMeters:t.rectangleNortheastInMeters&&be(t.rectangleNortheastInMeters)});console.warn(`未能识别的类型tilingSchemaJson.type: ${t.type}`)}function Ys(t,i){const{planes:e,enabled:n,modelMatrix:r,unionClippingRegions:o,edgeColor:s,edgeWidth:a}=t;let l=r&&d.Matrix4.fromArray(r);return i&&(l=l||d.Matrix4.clone(d.Matrix4.IDENTITY,new d.Matrix4),d.Matrix4.multiply(i,l,l)),new d.ClippingPlaneCollection({planes:e&&e.map(h=>new d.ClippingPlane(Ri(h.normal),h.distance)),enabled:n,modelMatrix:l,unionClippingRegions:o,edgeColor:s&&se(s),edgeWidth:a})}function Hc(t,i,e){const n=i;if(!n){t.removeAll(),t.enabled=!1;return}if(t.removeAll(),n.planes)for(let o of n.planes)t.add(new d.ClippingPlane(Ri(o.normal),o.distance));let r=n.modelMatrix&&d.Matrix4.fromArray(n.modelMatrix)||d.Matrix4.clone(d.Matrix4.IDENTITY,new d.Matrix4);e&&d.Matrix4.multiply(e,r,r),t.enabled=n.enabled??!0,t.modelMatrix=r,t.unionClippingRegions=n.unionClippingRegions??!1,t.edgeColor=se(n.edgeColor??[1,1,1,1]),t.edgeWidth=n.edgeWidth??2}function qc(t){const{polygons:i,enabled:e,inverse:n}=t;return new d.ClippingPolygonCollection({polygons:i&&i.map(r=>new d.ClippingPolygon({positions:r.positions.map(o=>Be(o))})),enabled:e,inverse:n})}function $c(t,i){return Od(t,d.Cartesian3.UNIT_Y,d.Cartesian3.UNIT_Z,d.Cartesian3.UNIT_X,i)}function Cv(t,i){return Od(t,d.Cartesian3.UNIT_X,d.Cartesian3.UNIT_Z,new d.Cartesian3(0,-1,0),i)}function Od(t,i,e,n,r){const[o,s,a]=t,l=d.Quaternion.fromAxisAngle(e,d.Math.toRadians(-o)),h=d.Quaternion.fromAxisAngle(n,d.Math.toRadians(s)),u=d.Quaternion.fromAxisAngle(i,d.Math.toRadians(a)),p=d.Quaternion.clone(d.Quaternion.IDENTITY,r);return d.Quaternion.multiply(u,p,p),d.Quaternion.multiply(h,p,p),d.Quaternion.multiply(l,p,p),p}function Ln(t,i){return Array.isArray(t)?t.length!==i?(console.warn(`array.length !== ${i}`),!1):t.every(e=>Number.isFinite(e))?!0:(console.warn("!array.every(v => Number.isFinite(v))"),!1):(console.warn("!Array.isArray(array)"),!1)}function _v(t){return t.some(i=>i===0)?(console.warn("array.some(e => e === 0)"),!1):!0}function Ve(t,i){if(!((!t.localScale||Ln(t.localScale,3))&&(!t.localRotation||Ln(t.localRotation,3))&&(!t.localPosition||Ln(t.localPosition,3))&&(!t.localModelMatrix||Ln(t.localModelMatrix,16))&&(!t.scale||Ln(t.scale,3))&&(!t.rotation||Ln(t.rotation,3))&&(!t.position||Ln(t.position,3))&&(!t.modelMatrix||Ln(t.modelMatrix,16)))||t.localScale&&!_v(t.localScale)||t.scale&&!_v(t.scale))return;if(t.sceneScaleFromPixelSize){if(!Number.isFinite(t.sceneScaleFromPixelSize)){console.warn("!Number.isFinite(options.sceneScaleFromPixelSize)");return}if(t.sceneScaleFromPixelSize===0){console.warn("options.sceneScaleFromPixelSize === 0");return}}const n=i??d.Matrix4.clone(d.Matrix4.IDENTITY);if(t.localScale){const[r,o,s]=t.localScale??[1,1,1],a=d.Matrix4.fromScale(d.Cartesian3.fromElements(r,o,s),new d.Matrix4);d.Matrix4.multiply(a,n,n)}if((t.initialRotation??"yForwardzUp")==="xForwardzUp"){const r=d.Quaternion.fromAxisAngle(d.Cartesian3.UNIT_Z,d.Math.toRadians(90)),o=d.Matrix3.fromQuaternion(r);d.Matrix4.multiply(d.Matrix4.fromRotationTranslation(o),n,n)}if(t.localRotation){const r=$c(t.localRotation),o=d.Matrix3.fromQuaternion(r);d.Matrix4.multiply(d.Matrix4.fromRotationTranslation(o),n,n)}if(t.localPosition){const r=d.Matrix4.fromTranslation(d.Cartesian3.fromArray(t.localPosition));d.Matrix4.multiply(r,n,n)}if(t.localModelMatrix){const r=d.Matrix4.fromArray(t.localModelMatrix);d.Matrix4.multiply(r,n,n)}if(t.sceneScaleFromPixelSize!==void 0&&Number.isFinite(t.sceneScaleFromPixelSize)){const r=t.sceneScaleFromPixelSize,o=d.Matrix4.fromScale(d.Cartesian3.fromElements(r,r,r),new d.Matrix4);d.Matrix4.multiply(o,n,n)}if(t.scale){const[r,o,s]=t.scale??[1,1,1],a=d.Matrix4.fromScale(d.Cartesian3.fromElements(r,o,s),new d.Matrix4);d.Matrix4.multiply(a,n,n)}if(t.rotation){const r=$c(t.rotation),o=d.Matrix3.fromQuaternion(r);d.Matrix4.multiply(d.Matrix4.fromRotationTranslation(o),n,n)}if(t.position){const r=d.Cartesian3.fromDegrees(...t.position),o=d.Transforms.eastNorthUpToFixedFrame(r);d.Matrix4.multiply(o,n,n)}if(t.modelMatrix){const r=d.Matrix4.fromArray(t.modelMatrix);d.Matrix4.multiply(r,n,n)}return n}const aS=new d.Cartesian3,Zs=new d.HeadingPitchRoll,lS=new d.Matrix4,cS=new d.Cartesian3,hS=new d.Cartographic;function dS(t,i=[0,0,0],e=0,n){const[r,o,s]=t,a=d.Cartesian3.fromDegrees(r,o,s,void 0,aS),l=[...i];for(let u=0;u<3;++u)l[u]=d.Math.RADIANS_PER_DEGREE*l[u];if(e!==0){Zs.heading=l[0],Zs.pitch=l[1],Zs.roll=l[2],Zs.heading-=d.Math.PI_OVER_TWO;const u=d.Transforms.headingPitchRollToFixedFrame(a,Zs,void 0,void 0,lS),p=d.Matrix4.multiplyByPointAsVector(u,d.Cartesian3.UNIT_X,cS);d.Cartesian3.multiplyByScalar(p,e,p),d.Cartesian3.subtract(a,p,a)}const h=d.Cartographic.fromCartesian(a,void 0,hS);if(h)return n=n||[0,0,0],n[0]=h.longitude*180/Math.PI,n[1]=h.latitude*180/Math.PI,n[2]=h.height,n}function Pv(t,i,e,n){return dS(t,i,e,n)}const zn=d.Math.toDegrees;function Bt(t,i){const{longitude:e,latitude:n,height:r}=t.positionCartographic;return i?(i[0]=zn(e),i[1]=zn(n),i[2]=r,i):[zn(e),zn(n),r]}function Mr(t,i){const{heading:e,pitch:n,roll:r}=t;return i?(i[0]=zn(e),i[1]=zn(n),i[2]=zn(r),i):[e,n,r].map(zn)}class Qs extends c.Destroyable{constructor(e){super();v(this,"_originViewMatrix",new d.Matrix4);v(this,"_originProjMatrix",new d.Matrix4);v(this,"_changed",new c.Event);this._scene=e;const n=this._scene.camera;d.Matrix4.clone(n.viewMatrix,this._originViewMatrix),d.Matrix4.clone(n.frustum.projectionMatrix,this._originViewMatrix),this.dispose(this._scene.preUpdate.addEventListener(()=>{this._update()}))}_update(){d.Matrix4.equals(this._scene.camera.viewMatrix,this._originViewMatrix)||(d.Matrix4.clone(this._scene.camera.viewMatrix,this._originViewMatrix),this._changed.emit()),d.Matrix4.equals(this._scene.camera.frustum.projectionMatrix,this._originProjMatrix)||(d.Matrix4.clone(this._scene.camera.frustum.projectionMatrix,this._originProjMatrix),this._changed.emit())}get changed(){return this._changed}}class uS extends c.Destroyable{constructor(i){super();const e=()=>{};this.dispose(i.viewDistanceChanged.disposableOn(e)),this.dispose(i.visibleAlphaChanged.disposableOn(e))}}class pS extends c.Destroyable{constructor(e){super();v(this,"_debugObjResetting");this._control=e,this._debugObjResetting=this.disposeVar(new c.ObjResettingWithEvent(this._control.debugChanged,()=>{if(this._control.debug)return new uS(this._control)}))}get debugObjResetting(){return this._debugObjResetting}}class xo extends c.Destroyable{constructor(e,n,r,o){super();v(this,"_visibleAlpha",this.disposeVar(c.react(1)));v(this,"_viewDistance",this.disposeVar(c.react(0)));v(this,"_debug",this.disposeVar(c.react(!1)));v(this,"_viewDistanceDebug",this.disposeVar(new pS(this)));this._czmViewer=e,this._positionReact=r;const{positionReact:s,czmViewer:a}=this,[l,h,u]=c.getReactFuncs(n),[p,f,m]=c.getReactFuncs(s),[g,y,P]=o?c.getReactFuncs(o):[void 0,void 0,void 0],S=()=>{let T=1,I=Number.NEGATIVE_INFINITY;do{const D=l(),R=p(),k=g?g():0;if(!D||!R)break;const O=a.getCurrentCameraInfo();if(!O)break;I=w.cartesianDistance(O.position,R)-(k??0);const[U,z,V,_]=D;if(U>z||z>V||V>_){console.error("viewDistanceRange存在问题,需要满足逐级增大的条件,否则不生效!");break}I>=z&&I<=V?T=1:I<=U||I>=_?T=0:I>U&&I<z?z-U<=0?T=0:T=(I-U)/(z-U):I>V&&I<_?(_<=V&&(T=0),T=(_-I)/(_-V)):(T=1,console.error("不应该运行至此!"))}while(!1);this._viewDistance.value=I,this._visibleAlpha.value=T};S();const C=[a.cameraChanged,u,m];P&&C.push(P);const E=this.disposeVar(c.createNextAnimateFrameEvent(...C));this.dispose(E.disposableOn(S))}get visibleAlpha(){return this._visibleAlpha.value}get visibleAlphaChanged(){return this._visibleAlpha.changed}get viewDistance(){return this._viewDistance.value}set viewDistance(e){this._viewDistance.value=e}get viewDistanceChanged(){return this._viewDistance.changed}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get debugChanged(){return this._debug.changed}get positionReact(){return this._positionReact}get czmViewer(){return this._czmViewer}get viewDistanceDebug(){return this._viewDistanceDebug}}const fS=new d.BoundingSphere(d.Cartesian3.ZERO,0);function an(t,i,e){var n=fS;d.Cartesian3.clone(i,n.center);const r=t.camera.getPixelSize(n,t.drawingBufferWidth,t.drawingBufferHeight);if(r<=0)return;const o=e*r;if(Number.isFinite(o)&&o>0)return o}function At(t){const i=t.length;let e;const n=[];for(let r=0;r<i;++r){const[o,s,a]=t[r],l=d.Cartesian3.fromDegrees(o,s,a);if(!l)continue;const{x:h,y:u,z:p}=l;[h,u,p].every(Number.isFinite)&&(!e||!d.Cartesian3.equals(e,l))&&(e=l,n.push(e))}return n}function Fo(t,i,e,n){const r=w.geoRhumbDistance(t,e),o=w.geoRhumbHeading(t,e),s=Math.cos(o*Math.PI/180)*Math.cos(i*Math.PI/180)+Math.sin(o*Math.PI/180)*Math.sin(i*Math.PI/180);return s>0?w.geoRhumbDestination(t,r,i,n):w.geoRhumbDestination(t,r,i+180,n),[s>0?r:-r,n]}function mS(t,i,e){const n=e*.1,r=[];for(let o=-9;o<10;++o){const s=w.geoRhumbDestination(t,n*o,i);s&&r.push(s)}return r}function gS(t,i){return w.geoNearestPointOnLine(t,i).geometry.coordinates}const Sv=new d.Cartesian3,vS=new d.Ray,yS=new d.Plane(d.Cartesian3.UNIT_X,0);function Xc(t,i,e,n){const r=d.Cartesian3.normalize(i,Sv),o=d.Cartesian3.cross(t.camera.right,r,Sv);d.Cartesian3.normalize(o,o);const s=d.Plane.fromPointNormal(i,o,yS),a=t.camera.getPickRay(e,vS);if(a)return d.IntersectionTests.rayPlane(a,s,n)}const Nd=new d.Cartesian3,wS=new d.Ray,CS=new d.Cartographic,_S=new d.Ellipsoid;function Ir(t,i,e,n){const r=t.camera.getPickRay(i,wS);if(!r)return;const o=d.Cartesian3.fromElements(e,e,e,Nd),s=d.Cartesian3.add(o,d.Ellipsoid.WGS84.radii,Nd),a=d.Ellipsoid.fromCartesian3(s,_S),l=d.IntersectionTests.rayEllipsoid(r,a);if(l){const h=l.start>0?l.start:l.stop;if(h){const u=d.Ray.getPoint(r,h,Nd),p=d.Cartographic.fromCartesian(u,void 0,CS);return n=n||new d.Cartographic,n.longitude=p.longitude,n.latitude=p.latitude,n.height=e,n}else return}else return}function br(t,i){i[0]=t[0],i[1]=t[1],i[2]=t[2]}function Ev(t){const i=d.Ellipsoid.WGS84.minimumRadius;return(t+i)/i}const Av=new d.Cartographic,Tv=new d.Cartesian3,Vt=[0,0,0],On=[0,0,0],Vd=new d.Cartesian2,Ud=new d.Cartesian3;function Gd(t,i,e,n,r,o){r.constraintMode="none",br([0,0,0],r.startDragPos),o=o||{},Ci(c.getDomEventCurrentTargetPos(t),Vd);const s=e.position;if(!Be(s,Ud))return;const a=an(i,Ud,n);if(a===void 0||!Xc(i,Ud,Vd,Tv)||!pe(Tv,Vt))return;const l=Ev(Vt[2])*w.geoDistance(s,Vt);if(!o.z&&l<a&&Math.abs(s[2]-Vt[2])<e.dimensions[0]&&Vt[2]>s[2])return r.constraintMode="z",br(Vt,r.startDragPos),!0;if(!Ir(i,Vd,s[2],Av)||!Tr(Av,Vt))return;const h=Ev(s[2])*w.geoDistance(s,Vt),u=e.dimensions[0];if(!(h>1.05*u)){if(!o.zAxis&&h>.95*u&&h<=1.05*u){r.constraintMode="zAxis",br(Vt,r.startDragPos);return}{const[p,f]=Fo(s,e.heading+90,Vt,On);if(!o.x&&p>0&&f&&(On[2]=s[2],w.geoDistance(On,Vt)<a)){r.constraintMode="x",br(On,r.startDragPos);return}}{const[p,f]=Fo(s,e.heading,Vt,On);if(!o.y&&p>0&&f&&(On[2]=s[2],w.geoDistance(On,Vt)<a)){r.constraintMode="y",br(On,r.startDragPos);return}}o.xy||(r.constraintMode="xy",br(Vt,r.startDragPos))}}async function Mv(t,i,e,n){var a;const r=(a=t.viewer)==null?void 0:a.scene;if(!r)throw new Error("!scene");const o=c.getDomEventCurrentTargetPos(i),s=Ci(o);if(e===void 0){const l=t.quickPickPosition(o);return l?await l:void 0}else{const l=Ir(r,s,e);return l?Tr(l):void 0}}let Wd,Hd;function Iv(t,i,e,n,r){r=r||new d.Cartesian3,Wd=Wd||new d.Ray,Hd=Hd||new d.Plane(d.Cartesian3.UNIT_X,0);const o=t.camera.getPickRay(n,Wd),s=d.Plane.fromPointNormal(i,e,Hd);return r=d.IntersectionTests.rayPlane(o,s,r),r}function bv(t){const i=d.Material.fromType(t.type);return qd(i,t),i}function jt(t){return t&&w.ESSceneObject.context.getStrFromEnv(t)||d.Material.DefaultImageId}function PS(t){return{x:t[0],y:t[1]}}function qd(t,i){i.type==="Color"?t.uniforms.color=se(i.color??[1,1,1,1]):i.type==="PolylineArrow"?t.uniforms.color=se(i.color??[1,1,1,1]):i.type==="PolylineDash"?(t.uniforms.color=se(i.color??[1,1,1,1]),t.uniforms.gapColor=se(i.gapColor??[0,0,0,0]),t.uniforms.dashLength=i.dashLength??16,t.uniforms.dashPattern=i.dashPattern??255):i.type==="PolylineGlow"?(t.uniforms.color=se(i.color??[1,1,1,1]),t.uniforms.glowPower=i.glowPower??.25,t.uniforms.taperPower=i.taperPower??1):i.type==="PolylineOutline"?(t.uniforms.color=se(i.color??[1,1,1,1]),t.uniforms.outlineColor=se(i.outlineColor??[1,0,0,1]),t.uniforms.outlineWidth=i.outlineWidth??1):i.type==="Image"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.color=se(i.color??[1,1,1,1])):i.type==="DiffuseMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channels=i.channels??"rgb"):i.type==="AlphaMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channel=i.channel??"a"):i.type==="SpecularMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channel=i.channel??"r"):i.type==="EmissionMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channels=i.channels??"rgb"):i.type==="BumpMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channel=i.channel??"r",t.uniforms.strength=i.strength??.8):i.type==="NormalMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channels=i.channels??"rgb",t.uniforms.strength=i.strength??.8):i.type==="Grid"?(t.uniforms.color=se(i.color??[0,1,0,1]),t.uniforms.cellAlpha=i.cellAlpha??.1,t.uniforms.lineCount=be(i.lineCount??[8,8]),t.uniforms.lineThickness=be(i.lineThickness??[1,1]),t.uniforms.lineOffset=be(i.lineOffset??[0,0])):i.type==="Stripe"?(t.uniforms.evenColor=se(i.evenColor??[1,1,1,.5]),t.uniforms.oddColor=se(i.oddColor??[0,0,1,.5]),t.uniforms.horizontal=i.horizontal??!0,t.uniforms.offset=i.offset??0,t.uniforms.repeat=i.repeat??5):i.type==="Checkerboard"?(t.uniforms.lightColor=se(i.lightColor??[1,1,1,.5]),t.uniforms.darkColor=se(i.darkColor??[0,0,0,.5]),t.uniforms.repeat=be(i.repeat??[5,5])):i.type==="Dot"?(t.uniforms.lightColor=se(i.lightColor??[1,1,0,.75]),t.uniforms.darkColor=se(i.darkColor??[0,1,1,.75]),t.uniforms.repeat=be(i.repeat??[5,5])):i.type==="Water"?(t.uniforms.baseWaterColor=se(i.baseWaterColor??[.2,.3,.6,1]),t.uniforms.blendColor=se(i.blendColor??[0,1,.699,1]),t.uniforms.specularMap=jt(i.specularMap),t.uniforms.normalMap=jt(i.normalMap),t.uniforms.frequency=i.frequency??10,t.uniforms.animationSpeed=i.animationSpeed??.01,t.uniforms.amplitude=i.amplitude??1,t.uniforms.specularIntensity=i.specularIntensity??.5,t.uniforms.fadeFactor=i.fadeFactor??1):i.type==="RimLighting"?(t.uniforms.color=se(i.color??[1,0,0,.7]),t.uniforms.rimColor=se(i.rimColor??[1,1,1,.4]),t.uniforms.width=i.width??.3):i.type==="Fade"?(t.uniforms.fadeInColor=se(i.fadeInColor??[1,0,0,1]),t.uniforms.fadeOutColor=se(i.fadeOutColor??[0,0,0,0]),t.uniforms.maximumDistance=i.maximumDistance??.5,t.uniforms.repeat=i.repeat??!0,t.uniforms.fadeDirection=PS(i.fadeDirection??[!0,!0]),t.uniforms.time=be(i.time??[.5,.5])):i.type==="ElevationContour"?(t.uniforms.color=se(i.color??[1,0,0,1]),t.uniforms.spacing=i.spacing??100,t.uniforms.width=i.width??1):i.type==="ElevationRamp"?(t.uniforms.image=jt(i.image),t.uniforms.minimumHeight=i.minimumHeight??0,t.uniforms.maximumHeight=i.maximumHeight??1e4):i.type==="AspectRamp"?t.uniforms.image=jt(i.image):i.type==="ElevationBand"?(t.uniforms.color=jt(i.colors),t.uniforms.heights=jt(i.heights)):console.warn(`未知材质类型,无法更新 ${i.type}`)}function _i(t,i){const e=c.react(void 0);let n="";const[r,o,s]=c.getReactFuncs(t),a=()=>{try{const l=r()??i;l?n!==l.type?(n=l.type,e.value=bv(l)):e.value&&qd(e.value,l):(n="",e.value=void 0)}catch{}};return a(),e.dispose(s.disposableOn(a)),e}function ln(t){const i=At(t.positions),e=t.holes&&t.holes.map(n=>ln(n));return{positions:i,holes:e}}function $d(t,i){const e=Math.PI/180,n=1/e,r=new d.Cartographic(t[0]*e,t[1]*e,t[2]),o=new d.Cartographic(i[0]*e,i[1]*e,i[2]),s=new d.EllipsoidGeodesic(r,o).interpolateUsingFraction(.5,new d.Cartographic);if(s)return s.height=(r.height+o.height)*.5,[s.longitude*n,s.latitude*n,s.height]}const Dv=new d.Cartesian4,SS=new d.Matrix4;function ES(){return{left:0,top:0,right:0,bottom:0,depth:0}}function Rv(t,i){return t.left===i.left&&t.right===i.right&&t.bottom===i.bottom&&t.top===i.top&&t.depth===i.depth}function xv(t,i,e){if(t.scene.mode!==d.SceneMode.SCENE3D)return;const n=t.canvas.clientHeight,r=t.canvas.clientWidth,o=t.camera.viewMatrix,s=t.camera.frustum.projectionMatrix,a=d.Matrix4.multiply(s,o,SS),l=d.Matrix4.multiplyByVector(a,d.Cartesian4.fromElements(i.x,i.y,i.z,1,Dv),Dv);l.x/=l.w,l.y/=l.w,l.z/=l.w,l.w=1;const h=r*(l.x*.5+.5),u=n*(l.y*.5+.5),p=r-h,f=n-u,m=l.z;if(!(h<0||u<0||p<0||f<0||m<0||m>1))return e?(e.left=h,e.top=f,e.right=p,e.bottom=u,e.depth=m):e={left:h,top:f,right:p,bottom:u,depth:m},e}const ko={left:0,top:0,right:0,bottom:0,depth:0};class Yc extends c.Destroyable{constructor(e,n=!0,r){super();v(this,"_cartesian",new d.Cartesian3);v(this,"_winPos",{left:0,top:0,right:0,bottom:0,depth:0});v(this,"_winPosValid",!1);v(this,"_changedEvent",new c.Event);v(this,"_enabled",!0);this._viewer=e,r=r||this.disposeVar(new Qs(this._viewer.scene)),this.dispose(r.changed.disposableOn(()=>this._updateWinPos())),this.dispose(()=>{this._changedEvent.empty||console.warn("WinPosFromCartesian需要销毁,但是changed事件仍有监听,代码未必有错,但是说明代码不严谨。")}),this.enabled=n}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&(this._enabled=e,e&&this._updateWinPos())}_updateWinPos(){if(!this._enabled)return;let e=!1;const n=xv(this._viewer,this._cartesian,ko);!!n!==this._winPosValid&&(e=!0,this._winPosValid=!!n),this._winPosValid?Rv(this._winPos,ko)||(e=!0,this._winPos.left=ko.left,this._winPos.top=ko.top,this._winPos.right=ko.right,this._winPos.bottom=ko.bottom,this._winPos.depth=ko.depth):(e=!0,this._winPos.left=Number.NaN,this._winPos.top=Number.NaN,this._winPos.right=Number.NaN,this._winPos.bottom=Number.NaN,this._winPos.depth=Number.NaN),e&&this._changedEvent.emit(this._winPosValid,this._winPos)}get cartesian(){return this._cartesian}set cartesian(e){d.Cartesian3.equals(this._cartesian,e)||(d.Cartesian3.clone(e,this._cartesian),this._updateWinPos())}get changed(){return this._changedEvent}get winPosValid(){return this._winPosValid}get winPos(){return this._winPos}}function Fv(t){const i=d.Math.toRadians(t[0]),e=d.Math.toRadians(t[1]),n=d.Math.toRadians(t[2]),r=d.Matrix3.fromHeadingPitchRoll(new d.HeadingPitchRoll(i,e,n)),o=new d.Cartesian3;return d.Matrix3.multiplyByVector(r,d.Cartesian3.UNIT_X,o),[o.x,o.y,o.z]}const AS=d.Check,TS=d.defaultValue,Lo=d.defined,kv=d.Math.EPSILON10;function MS(t,i,e,n){if(AS.defined("equalsEpsilon",i),!Lo(t))return;e=TS(e,!1);const r=Lo(n),o=t.length;if(o<2)return t;let s,a=t[0],l,h,u=0,p=-1;for(s=1;s<o;++s)l=t[s],i(a,l,kv)?(Lo(h)||(h=t.slice(0,s),u=s-1,p=0),r&&n.push(s)):(Lo(h)&&(h.push(l),u=s,r&&(p=n.length)),a=l);return e&&i(t[0],t[o-1],kv)&&(r&&(Lo(h)?n.splice(p,0,u):n.push(o-1)),Lo(h)?h.length-=1:h=t.slice(0,-1)),Lo(h)?h:t}const Pe=d.Cartesian3,Dr=d.Cartographic,zo=d.defaultValue,Oo=d.defined,Lv=d.DeveloperError,zv=d.Ellipsoid,IS=d.EllipsoidGeodesic,Ov=d.EllipsoidRhumbLine,bS=d.IntersectionTests,Xd=d.Math,Rr=d.Matrix4,No=d.Plane,ct={};ct.numberOfPoints=function(t,i,e){const n=Pe.distance(t,i);return Math.ceil(n/e)},ct.numberOfPointsRhumbLine=function(t,i,e){const n=Math.pow(t.longitude-i.longitude,2)+Math.pow(t.latitude-i.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(n/(e*e))))};const DS=new Dr;ct.extractHeights=function(t,i){const e=t.length,n=new Array(e);for(let r=0;r<e;r++){const o=t[r];n[r]=i.cartesianToCartographic(o,DS).height}return n};const RS=new Rr,xS=new Pe,Nv=new Pe,FS=new No(Pe.UNIT_X,0),Vv=new Pe,kS=new No(Pe.UNIT_X,0),LS=new Pe,zS=new Pe,Yd=[];function Uv(t,i,e){const n=Yd;n.length=t;let r;if(i===e){for(r=0;r<t;r++)n[r]=i;return n}const s=(e-i)/t;for(r=0;r<t;r++){const a=i+r*s;n[r]=a}return n}const Zc=new Dr,Qc=new Dr,Nn=new Pe,Zd=new Pe,OS=new Pe,Qd=new IS;let Ks=new Ov;function NS(t,i,e,n,r,o,s,a){const l=n.scaleToGeodeticSurface(t,Zd),h=n.scaleToGeodeticSurface(i,OS),u=ct.numberOfPoints(t,i,e),p=n.cartesianToCartographic(l,Zc),f=n.cartesianToCartographic(h,Qc),m=Uv(u,r,o);Qd.setEndPoints(p,f);const g=Qd.surfaceDistance/u;let y=a;p.height=r;let P=n.cartographicToCartesian(p,Nn);Pe.pack(P,s,y),y+=3;for(let S=1;S<u;S++){const C=Qd.interpolateUsingSurfaceDistance(S*g,Qc);C.height=m[S],P=n.cartographicToCartesian(C,Nn),Pe.pack(P,s,y),y+=3}return y}function VS(t,i,e,n,r,o,s,a){const l=n.cartesianToCartographic(t,Zc),h=n.cartesianToCartographic(i,Qc),u=ct.numberOfPointsRhumbLine(l,h,e);l.height=0,h.height=0;const p=Uv(u,r,o);Ks.ellipsoid.equals(n)||(Ks=new Ov(void 0,void 0,n)),Ks.setEndPoints(l,h);const f=Ks.surfaceDistance/u;let m=a;l.height=r;let g=n.cartographicToCartesian(l,Nn);Pe.pack(g,s,m),m+=3;for(let y=1;y<u;y++){const P=Ks.interpolateUsingSurfaceDistance(y*f,Qc);P.height=p[y],g=n.cartographicToCartesian(P,Nn),Pe.pack(g,s,m),m+=3}return m}ct.wrapLongitude=function(t,i){const e=[],n=[];if(Oo(t)&&t.length>0){i=zo(i,Rr.IDENTITY);const r=Rr.inverseTransformation(i,RS),o=Rr.multiplyByPoint(r,Pe.ZERO,xS),s=Pe.normalize(Rr.multiplyByPointAsVector(r,Pe.UNIT_Y,Nv),Nv),a=No.fromPointNormal(o,s,FS),l=Pe.normalize(Rr.multiplyByPointAsVector(r,Pe.UNIT_X,Vv),Vv),h=No.fromPointNormal(o,l,kS);let u=1;e.push(Pe.clone(t[0]));let p=e[0];const f=t.length;for(let m=1;m<f;++m){const g=t[m];if(No.getPointDistance(h,p)<0||No.getPointDistance(h,g)<0){const y=bS.lineSegmentPlane(p,g,a,LS);if(Oo(y)){const P=Pe.multiplyByScalar(s,5e-9,zS);No.getPointDistance(a,p)<0&&Pe.negate(P,P),e.push(Pe.add(y,P,new Pe)),n.push(u+1),Pe.negate(P,P),e.push(Pe.add(y,P,new Pe)),u=1}}e.push(Pe.clone(t[m])),u++,p=g}n.push(u)}return{positions:e,lengths:n}},ct.generateArc=function(t){Oo(t)||(t={});const i=t.positions;if(!Oo(i))throw new Lv("options.positions is required.");const e=i.length,n=zo(t.ellipsoid,zv.WGS84);let r=zo(t.height,0);const o=Array.isArray(r);if(e<1)return[];if(e===1){const y=n.scaleToGeodeticSurface(i[0],Zd);if(r=o?r[0]:r,r!==0){const P=n.geodeticSurfaceNormal(y,Nn);Pe.multiplyByScalar(P,r,P),Pe.add(y,P,y)}return[y.x,y.y,y.z]}let s=t.minDistance;if(!Oo(s)){const y=zo(t.granularity,Xd.RADIANS_PER_DEGREE);s=Xd.chordLength(y,n.maximumRadius)}let a=0,l;for(l=0;l<e-1;l++)a+=ct.numberOfPoints(i[l],i[l+1],s);const h=(a+1)*3,u=new Array(h);let p=0;for(l=0;l<e-1;l++){const y=i[l],P=i[l+1],S=o?r[l]:r,C=o?r[l+1]:r;p=NS(y,P,s,n,S,C,u,p)}Yd.length=0;const f=i[e-1],m=n.cartesianToCartographic(f,Zc);m.height=o?r[e-1]:r;const g=n.cartographicToCartesian(m,Nn);return Pe.pack(g,u,h-3),u};const Gv=new Dr,US=new Dr;ct.generateRhumbArc=function(t){Oo(t)||(t={});const i=t.positions;if(!Oo(i))throw new Lv("options.positions is required.");const e=i.length,n=zo(t.ellipsoid,zv.WGS84);let r=zo(t.height,0);const o=Array.isArray(r);if(e<1)return[];if(e===1){const S=n.scaleToGeodeticSurface(i[0],Zd);if(r=o?r[0]:r,r!==0){const C=n.geodeticSurfaceNormal(S,Nn);Pe.multiplyByScalar(C,r,C),Pe.add(S,C,S)}return[S.x,S.y,S.z]}const s=zo(t.granularity,Xd.RADIANS_PER_DEGREE);let a=0,l,h=n.cartesianToCartographic(i[0],Gv),u;for(l=0;l<e-1;l++)u=n.cartesianToCartographic(i[l+1],US),a+=ct.numberOfPointsRhumbLine(h,u,s),h=Dr.clone(u,Gv);const p=(a+1)*3,f=new Array(p);let m=0;for(l=0;l<e-1;l++){const S=i[l],C=i[l+1],E=o?r[l]:r,T=o?r[l+1]:r;m=VS(S,C,s,n,E,T,f,m)}Yd.length=0;const g=i[e-1],y=n.cartesianToCartographic(g,Zc);y.height=o?r[e-1]:r;const P=n.cartographicToCartesian(y,Nn);return Pe.pack(P,f,p-3),f},ct.generateCartesianArc=function(t){const i=ct.generateArc(t),e=i.length/3,n=new Array(e);for(let r=0;r<e;r++)n[r]=Pe.unpack(i,r*3);return n},ct.generateCartesianRhumbArc=function(t){const i=ct.generateRhumbArc(t),e=i.length/3,n=new Array(e);for(let r=0;r<e;r++)n[r]=Pe.unpack(i,r*3);return n};const Kc=d.ArcType,GS=d.Cartesian3,WS=d.Math;function Wv(t){const i=t.arcType,e=t.granularity,n=t.ellipsoid,r=[];let o=MS(t.positions,GS.equalsEpsilon,!1,r);if(!(o.length<2)){if(i===Kc.GEODESIC||i===Kc.RHUMB){let a;i===Kc.GEODESIC?(a=WS.chordLength(e,n.maximumRadius),ct.numberOfPoints):(a=e,ct.numberOfPointsRhumbLine);const l=ct.extractHeights(o,n);i===Kc.GEODESIC?o=ct.generateCartesianArc({positions:o,minDistance:a,ellipsoid:n,height:l}):o=ct.generateCartesianRhumbArc({positions:o,granularity:a,ellipsoid:n,height:l})}return o}}function Kd(t,i="GEODESIC",e){const r=t.map(w.lbhToXyz).map(p=>d.Cartesian3.fromArray(p));let o;if(e>0&&i!=="NONE"){if(o=Wv({arcType:d.ArcType[i??"GEODESIC"],granularity:e,ellipsoid:d.Ellipsoid.WGS84,positions:r}),!o)return}else o=r;let s=0;const a=[0],l=o.length;for(let p=1;p<l;++p)s+=d.Cartesian3.distance(o[p-1],o[p]),a.push(s);const h=o.map(p=>w.xyzToLbh([p.x,p.y,p.z]));return{timePosRots:a.map((p,f)=>[a[f],h[f],void 0]),distances:a}}function Hv(t,i){i=i??new Array(16);for(let e=0;e<16;++e)i[e]=t[e];return i}function Jd(t,i){const e=d.Matrix4.clone(d.Matrix4.IDENTITY),{position:n,rotation:r,scale:o,initialRotationMode:s="YForwardZUp"}=t;if(n){const[a,l,h]=n;d.Transforms.eastNorthUpToFixedFrame(d.Cartesian3.fromDegrees(a,l,h),void 0,e)}if(r){const a=new d.Quaternion;s==="YForwardZUp"?$c(r,a):s==="XForwardZUp"&&Cv(r,a);const l=d.Matrix3.fromQuaternion(a);d.Matrix4.multiply(e,d.Matrix4.fromRotationTranslation(l),e)}return o&&d.Matrix4.multiplyByScale(e,Ci(o),e),Hv(e,i)}const HS=new d.Matrix4;function qv(t,i){const e=d.Matrix4.fromArray(t,0,HS);return d.Matrix4.inverse(e,e),Hv(e,i)}const qS=new d.Matrix4,$S=new d.Cartesian3;function $v(t,i,e){const[n,r,o]=i,s=d.Cartesian3.fromDegrees(n,r,o,void 0,$S),a=d.Matrix4.fromArray(t,0,qS),l=d.Matrix4.multiplyByPoint(a,s,s),{x:h,y:u,z:p}=l;return e=e||[0,0,0],e[0]=h,e[1]=u,e[2]=p,e}const XS=new d.Matrix4,YS=new d.Cartesian3,ZS=new d.Cartographic;function Vn(t,i,e){const[n,r,o]=i,s=d.Cartesian3.fromElements(n,r,o,YS),a=d.Matrix4.fromArray(t,0,XS),l=d.Matrix4.multiplyByPoint(a,s,s),h=d.Cartographic.fromCartesian(l,void 0,ZS);return e=e||[0,0,0],e[0]=d.Math.toDegrees(h.longitude),e[1]=d.Math.toDegrees(h.latitude),e[2]=h.height,e}function Ut(t,i){const{originPosition:e,originRotation:n,originScale:r,initialRotationMode:o}=t,s=Jd({position:e,rotation:n,scale:r,initialRotationMode:o}),a=qv(s);return[i.map(h=>$v(a,h)),s,a]}function Un(t,i){const{originPosition:e,originRotation:n,originScale:r,initialRotationMode:o}=t,s=Jd({position:e,rotation:n,scale:r,initialRotationMode:o});return[i.map(l=>Vn(s,l)),s]}function Xv(t){if(t.length<2)return console.error("getIncludedAngleFromPositions需要传入的点不能少于三个!!!!!"),!1;let i=[];for(let e=0;e<t.length-2;e++){const n=re.Cartesian3.fromDegrees(...t[e]),r=re.Cartesian3.fromDegrees(...t[e+1]),o=re.Cartesian3.fromDegrees(...t[e+2]),s=re.Cartesian3.angleBetween(re.Cartesian3.subtract(n,r,new re.Cartesian3),re.Cartesian3.subtract(o,r,new re.Cartesian3));i.push(isNaN(s)?0:re.Math.toDegrees(s))}return i}function Bd(t,i){let e=i||[];return t.positions&&(e[e.length]??(e[e.length]=[]),e[e.length-1].push(...t.positions.map(n=>pe(n)))),t.holes&&t.holes.forEach(n=>{e=Bd(n,e)}),e}function ei(t){return typeof t=="string"?w.ESSceneObject.context.getStrFromEnv(t):new d.Resource({url:w.ESSceneObject.context.getStrFromEnv(t.url),headers:t.headers,queryParameters:t.queryParameters,templateValues:t.templateValues,proxy:t.proxy,retryCallback:t.retryCallback,retryAttempts:t.retryAttempts,request:t.request,parseUrl:t.parseUrl})}class jd extends c.Destroyable{constructor(i,e,n,r){if(super(),!i.viewer)return;const{scene:o}=i.viewer,[s,a,l]=c.getReactFuncs(e),[h,u,p]=c.getReactFuncs(n),f=new d.Cartesian3,m=()=>{let g=s();g&&(g=[...g],i.editingHeightOffset&&(g[2]-=i.editingHeightOffset),d.Cartesian3.fromDegrees(...g,void 0,f))};m(),this.dispose(l.disposableOn(m)),this.dispose(o.preUpdate.addEventListener(()=>{if(d.Cartesian3.ZERO.equals(f))return;const g=an(o,f,r);g!==void 0?u([g,g,g]):console.warn(`CzmGeoCoordinatesEditor warn: scale: ${g??"undefined"}`)}))}}function QS(t){const i=Reflect.has(t.root,"transform")?t.root.transform:d.Matrix4.toArray(d.Matrix4.IDENTITY);let e,n,r,o;if(Reflect.has(t.root.boundingVolume,"region"))return t.root.boundingVolume.region;if(Reflect.has(t.root.boundingVolume,"box"))o=d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(0,3)),e=d.Cartesian3.add(o,d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(3,6)),new d.Cartesian3),n=d.Cartesian3.add(o,d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(6,9)),new d.Cartesian3),r=d.Cartesian3.add(o,d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(9,12)),new d.Cartesian3);else if(Reflect.has(t.root.boundingVolume,"sphere")){const f=t.root.boundingVolume.sphere[3];o=d.Cartesian3.fromArray(t.root.boundingVolume.sphere.slice(0,3)),e=d.Cartesian3.add(o,d.Cartesian3.fromArray([f,0,0]),new d.Cartesian3),n=d.Cartesian3.add(o,d.Cartesian3.fromArray([0,f,0]),new d.Cartesian3),r=d.Cartesian3.add(o,d.Cartesian3.fromArray([0,0,f]),new d.Cartesian3)}if(!e||!n||!r||!o)return"无法生成包围盒,请检查包围盒是否正确";let s,a,l,h,u,p;return d.Matrix4.IDENTITY.equals(d.Matrix4.fromArray(i))?(s=pe(e),h=pe(d.Cartesian3.add(o,d.Cartesian3.subtract(o,e,new d.Cartesian3),new d.Cartesian3)),a=pe(n),u=pe(d.Cartesian3.add(o,d.Cartesian3.subtract(o,n,new d.Cartesian3),new d.Cartesian3)),l=pe(r),p=pe(d.Cartesian3.add(o,d.Cartesian3.subtract(o,r,new d.Cartesian3),new d.Cartesian3))):(s=Vn(i,[e.x,e.y,e.z]),h=Vn(i,[-e.x,-e.y,-e.z]),a=Vn(i,[n.x,n.y,n.z]),u=Vn(i,[-n.x,-n.y,-n.z]),l=Vn(i,[r.x,r.y,r.z]),p=Vn(i,[-r.x,-r.y,-r.z])),!s||!h||!a||!u||!l||!p?"无法生成包围盒,请检查包围盒是否正确":[d.Math.toRadians(Math.min(s[0],h[0],a[0],u[0],l[0],p[0])),d.Math.toRadians(Math.min(s[1],h[1],a[1],u[1],l[1],p[1])),d.Math.toRadians(Math.max(s[0],h[0],a[0],u[0],l[0],p[0])),d.Math.toRadians(Math.max(s[1],h[1],a[1],u[1],l[1],p[1])),Math.min(s[2],h[2],a[2],u[2],l[2],p[2]),Math.max(s[2],h[2],a[2],u[2],l[2],p[2])]}const Yv=c.createProcessingFromAsyncFunc(async(t,i)=>{let e={state:"success",tilesUrl:{asset:{version:"1.1"},geometricError:0,refine:"REPLACE",root:{boundingVolume:{region:[]},geometricError:0,refine:"REPLACE",children:[]}}},n={},r=[];if(await c.step(t,async l=>new Promise(async(h,u)=>{for(let p=0;p<i.length;p++){const f=i[p];await fetch(f).then(m=>m.json()).then(m=>{m&&!Reflect.has(m,"success")?n[f]=m:r.push({index:p,url:f,message:m.message}),p==i.length-1&&h()}).catch(m=>{r.push({index:p,url:f,message:m}),p==i.length-1&&h()})}})),r.length>0&&(e.state="error",e.info=r,r.length==i.length))return e.tilesUrl=void 0,e;const o=[],s=[],a=[];for(const l in n){const h=n[l];s.push(h.geometricError??h.root.geometricError??0);const u=QS(h);o.push(u),a.push({content:{uri:l},boundingVolume:{region:u},geometricError:h.geometricError,refine:"REPLACE"})}return e.tilesUrl&&(e.tilesUrl.geometricError=e.tilesUrl.root.geometricError=Math.max(...s),e.tilesUrl.root.boundingVolume.region=[Math.min(...o.map(l=>l[0])),Math.min(...o.map(l=>l[1])),Math.max(...o.map(l=>l[2])),Math.max(...o.map(l=>l[3])),Math.min(...o.map(l=>l[4])),Math.max(...o.map(l=>l[5]))],e.tilesUrl.root.children=a),e});function KS(t){return new Promise((i,e)=>{Yv.restart(void 0,t),Yv.completeEvent.don(n=>{i(n)})})}class eu extends c.Destroyable{constructor(e){super();v(this,"_center",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_radius",this.disposeVar(c.react(0)));const[n,r,o]=c.getReactFuncs(e);{const s=()=>{const a=n();if(a){const{center:l,minPos:h,maxPos:u}=w.getMinMaxCorner(a);this._center.value=l,this._radius.value=w.geoDistance(h,u)/2}else this._center.value=void 0};s(),this.dispose(o.disposableOn(s))}}get centerReact(){return this._center}get center(){return this._center.value}get centerChanged(){return this._center.changed}get radiusReact(){return this._radius}get radius(){return this._radius.value}get radiusChanged(){return this._radius.changed}}function Zv(t){return new d.Material({fabric:{type:"XbsjWater",uniforms:{baseWaterImage:"",repeatX:1,repeatY:1,flowSpeed:0,baseWaterColor:new d.Color(.2,.3,.6,1),blendColor:new d.Color(0,1,.699,1),specularMap:d.Material.DefaultImageId,normalMap:d.Material.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1,...t},source:`// Thanks for the contribution Jonas
1
+ (function(x,re){typeof exports=="object"&&typeof module<"u"?re(exports,require("cesium"),require("xbsj-base"),require("earthsdk3"),require("html2canvas"),require("mvt-basic-render"),require("heatmapjs"),require("delaunator"),require("earcut")):typeof define=="function"&&define.amd?define(["exports","cesium","xbsj-base","earthsdk3","html2canvas","mvt-basic-render","heatmapjs","delaunator","earcut"],re):(x=typeof globalThis<"u"?globalThis:x||self,re(x.EarthSDK3_Cesium={},x.Cesium,x.xbsj_base,x.EarthSDK3,x.html2canvas,x.Mapbox,x.h337,x.Delaunator,x.earcut))})(this,function(x,re,c,w,Ld,V1,U1,G1,W1){"use strict";var f4=Object.defineProperty;var m4=(x,re,c)=>re in x?f4(x,re,{enumerable:!0,configurable:!0,writable:!0,value:c}):x[re]=c;var v=(x,re,c)=>m4(x,typeof re!="symbol"?re+"":re,c);var Ar=typeof document<"u"?document.currentScript:null;function gv(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(i,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return i.default=t,Object.freeze(i)}const d=gv(re),H1=gv(V1);window.Cesium=d;function q1(){Object.keys(d).forEach(t=>{d[t].prototype&&Object.defineProperty(d[t].prototype,"ESSceneObjectID",{writable:!0,enumerable:!0,value:c.createGuid()})})}class Nt extends c.Destroyable{constructor(){super()}}v(Nt,"defaults",{enabled:!0}),(t=>{t.createDefaultProps=()=>({enabled:!0})})(Nt||(Nt={})),c.extendClassProps(Nt.prototype,Nt.createDefaultProps);class ci extends w.EngineObject{constructor(i,e){if(super(i,e),!e.viewer){console.warn("viewer is undefined!");return}this.d(i.flyToEvent.don((r,o)=>this.flyTo(r,o))),this.d(i.flyInEvent.don((r,o)=>this.flyIn(r,o))),this.dispose(i.calcFlyInParamEvent.disposableOn(()=>{if(!e.actived)return;const r=e.getCameraInfo();if(!r)return;const{position:o,rotation:s}=r;i.flyInParam={position:o,rotation:s,flyDuration:1}})),this.dispose(i.calcFlyToParamEvent.disposableOn(()=>{i.useCalcFlyToParamInESObjectWithLocation||console.warn("calcFlyToParam无法调用,该对象缺少position属性!")})),this.ad(this.createdEvent.don(()=>{this.ad(c.nextAnimateFrame(()=>{i.createdEvent.emit()}))}))}flyToWithPromise(i,e,n,r,o,s,a){const{sceneObject:l,czmViewer:h}=this,u=h.flyTo({distance:n??0,heading:r?r[0]:0,pitch:r?r[1]:0,flyDuration:o??1,hDelta:s??0,pDelta:a??0},e);u&&u.then(p=>{})}flyTo(i,e){const{sceneObject:n,czmViewer:r}=this;if(!r.actived)return!1;if(n.flyToParam&&(n.useCalcFlyToParamInESObjectWithLocation||console.warn("flyToParam无法使用,该对象缺少position属性,若飞行失败,请清空flyToParam后重试!")),n.flyInParam){const{position:o,rotation:s,flyDuration:a}=n.flyInParam,l=i??a;return this.flyToWithPromise(e,o,void 0,s,l),!0}return!1}flyIn(i,e){const{sceneObject:n,czmViewer:r}=this;if(!r.actived)return!1;if(n.flyInParam){const{position:o,rotation:s,flyDuration:a}=n.flyInParam,l=i??a;return this.flyToWithPromise(e,o,void 0,s,l),!0}return!1}get czmViewer(){return this.viewer}}class $1 extends c.Destroyable{constructor(e){super();v(this,"_currentPosition",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_currentRotation",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_currentHeading",this.disposeVar(c.react(void 0)));v(this,"_isRotating",this.disposeVar(c.react(!1)));v(this,"_isGround",this.disposeVar(c.react(!1)));v(this,"_startPosition",[0,0,0]);v(this,"_startRotation",[0,0,0]);v(this,"_processing",this.disposeVar(c.createProcessingFromAsyncFunc(async(e,n,r,o)=>{const{currentPosition:s,currentRotation:a}=this;if(!s||o<=0||!a){this._currentPosition.value=n,this._currentRotation.value=r;return}const l=this._startPosition;l.splice(0,3,...s);const h=this._startRotation;h.splice(0,3,...a);let u=Date.now();const p=w.geoHeading(l,n);this._currentHeading.value=p;const m=w.geoDistance(l,n)/o,g=[r[0]-h[0],r[1]-h[1],r[2]-h[2]],y=n[2]-l[2];await e.promise(new Promise(P=>{e.disposer.dispose(c.animateFrame(()=>{let S=Date.now()-u;S=S<0?0:S,S=S>o?o:S;const C=S*m,E=w.geoDestination(l,C,p);if(this.isGround&&E){const T=this._czmViewer.getTerrainHeight([E[0],E[1]]);this._currentPosition.value=[E[0],E[1],T??0]}else E&&(E[2]+=y*(S/o)),this._currentPosition.value=E;if(this.isRotating){const[T,I,D]=g,R=S/o;this._currentRotation.value=[h[0]+T*R,h[1]+I*R,h[2]+D*R]}S===o&&(this._currentPosition.value=n,this.isRotating&&(this._currentRotation.value=r),this.isRotating=!1,this.isGround=!1,P())}))}))})));this._czmViewer=e}get currentPosition(){return this._currentPosition.value}get currentPositionChanged(){return this._currentPosition.changed}get currentRotation(){return this._currentRotation.value}get currentRotationChanged(){return this._currentRotation.changed}get currentHeading(){return this._currentHeading.value}get currentHeadingChanged(){return this._currentHeading.changed}get isRotating(){return this._isRotating.value}set isRotating(e){this._isRotating.value=e}get isRotatingChanged(){return this._isRotating.changed}get isGround(){return this._isGround.value}set isGround(e){this._isGround.value=e}get isGroundChanged(){return this._isGround.changed}get processing(){return this._processing}restart(e,n,r){this._processing.restart(void 0,e,n,r)}cancel(){this._processing.cancel()}}function Be(t,i){return d.Cartesian3.fromDegrees(...t,void 0,i)}const X1=new d.Cartographic;function pe(t,i){const e=d.Cartographic.fromCartesian(t,void 0,X1);if(e)return i=i||[0,0,0],i[0]=d.Math.toDegrees(e.longitude),i[1]=d.Math.toDegrees(e.latitude),i[2]=e.height,i}function be(t,i){return i=i||new d.Cartesian2,i.x=t[0],i.y=t[1],i}function vv(t,i){return i=i||[0,0],i[0]=t.x,i[1]=t.y,i}function Ri(t,i){return i=i||new d.Cartesian3,i.x=t[0],i.y=t[1],i.z=t[2],i}function $s(t,i){return i=i||[0,0,0],i[0]=t.x,i[1]=t.y,i[2]=t.z,i}function zd(t,i){return i=i||new d.Cartesian4,i.x=t[0],i.y=t[1],i.z=t[2],i.w=t[3],i}function yv(t,i){return i=i||[0,0,0,0],i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=t.w,i}function Ci(t,i){if(t.length===4)return zd(t,i);if(t.length===3)return Ri(t,i);if(t.length===2)return be(t,i);throw new Error("toCartesian error: should not be here!")}function Y1(t,i){if(t instanceof d.Cartesian2)return vv(t,i);if(t instanceof d.Cartesian3)return $s(t,i);if(t instanceof d.Cartesian4)return yv(t,i);throw new Error("fromCartesian error: should not be here!")}function Z1(t,i){return i=i||new d.Cartographic,i.longitude=d.Math.toRadians(t[0]),i.latitude=d.Math.toRadians(t[1]),i.height=t[2],i}function Tr(t,i){return i=i||[0,0,0],i[0]=d.Math.toDegrees(t.longitude),i[1]=d.Math.toDegrees(t.latitude),i[2]=t.height,i}function se(t,i){return i=i||new d.Color,i.red=t[0],i.green=t[1],i.blue=t[2],i.alpha=t[3],i}function Q1(t,i){return i=i||[0,0,0,0],i[0]=t.red,i[1]=t.green,i[2]=t.blue,i[3]=t.alpha,i}function kn(t,i){return i=i||new d.NearFarScalar,i.near=t[0],i.nearValue=t[1],i.far=t[2],i.farValue=t[3],i}function K1(t,i){return i=i||[0,0,0,0],i[0]=t.near,i[1]=t.nearValue,i[2]=t.far,i[3]=t.farValue,i}function wv(t,i){return i=i||new d.HeadingPitchRoll,i.heading=d.Math.toRadians(t[0]-90),i.pitch=d.Math.toRadians(t[1]),i.roll=d.Math.toRadians(t[2]),i}function J1(t,i){return i=i||[0,0,0],i[0]=d.Math.toDegrees(t.heading+d.Math.PI_OVER_TWO),i[1]=d.Math.toDegrees(t.pitch),i[2]=d.Math.toDegrees(t.roll),i}function Xs(t,i){return i=i||new d.DistanceDisplayCondition,i.near=t[0],i.far=t[1],i}function B1(t,i){return i=i||[0,0],i[0]=t.near,i[1]=t.far,i}function j1(t,i){return i=i||new d.Quaternion,i.x=t[0],i.y=t[1],i.z=t[2],i.w=t[3],i}function eS(t,i){return i=i||[0,0,0,0],i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=t.w,i}const tS=new d.HeadingPitchRoll,iS=new d.Cartesian3;function nS(t,i,e){const n=wv(i,tS),r=Be(t,iS);return d.Transforms.headingPitchRollQuaternion(r,n,void 0,void 0,e)}function Ze(t,i){return i=i||new d.Rectangle,i.west=t[0]*Math.PI/180,i.south=t[1]*Math.PI/180,i.east=t[2]*Math.PI/180,i.north=t[3]*Math.PI/180,i}function oS(t,i){return i=i||[0,0,0,0],i[0]=t.west,i[1]=t.south,i[2]=t.east,i[3]=t.north,i}const rS=new d.Cartesian3;function Me(t,i){return i=i||new d.Ellipsoid,d.Ellipsoid.fromCartesian3(d.Cartesian3.fromArray(t,void 0,rS),i)}function sS(t,i){return i=i||[0,0,0],i[0]=t.radii.x,i[1]=t.radii.y,i[2]=t.radii.z,i}function xi(t){if(t.type==="GeographicTilingScheme")return new d.GeographicTilingScheme({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),rectangle:t.rectangle&&Ze(t.rectangle),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY});if(t.type==="WebMercatorTilingScheme")return new d.WebMercatorTilingScheme({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY,rectangleSouthwestInMeters:t.rectangleSouthwestInMeters&&be(t.rectangleSouthwestInMeters),rectangleNortheastInMeters:t.rectangleNortheastInMeters&&be(t.rectangleNortheastInMeters)});if(t.type==="ToGCJ02WebMercatorTilingScheme")return new yC({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY,rectangleSouthwestInMeters:t.rectangleSouthwestInMeters&&be(t.rectangleSouthwestInMeters),rectangleNortheastInMeters:t.rectangleNortheastInMeters&&be(t.rectangleNortheastInMeters)});if(t.type==="ToWGS84WebMercatorTilingScheme")return new wC({ellipsoid:t.ellipsoid&&Me(t.ellipsoid),numberOfLevelZeroTilesX:t.numberOfLevelZeroTilesX,numberOfLevelZeroTilesY:t.numberOfLevelZeroTilesY,rectangleSouthwestInMeters:t.rectangleSouthwestInMeters&&be(t.rectangleSouthwestInMeters),rectangleNortheastInMeters:t.rectangleNortheastInMeters&&be(t.rectangleNortheastInMeters)});console.warn(`未能识别的类型tilingSchemaJson.type: ${t.type}`)}function Ys(t,i){const{planes:e,enabled:n,modelMatrix:r,unionClippingRegions:o,edgeColor:s,edgeWidth:a}=t;let l=r&&d.Matrix4.fromArray(r);return i&&(l=l||d.Matrix4.clone(d.Matrix4.IDENTITY,new d.Matrix4),d.Matrix4.multiply(i,l,l)),new d.ClippingPlaneCollection({planes:e&&e.map(h=>new d.ClippingPlane(Ri(h.normal),h.distance)),enabled:n,modelMatrix:l,unionClippingRegions:o,edgeColor:s&&se(s),edgeWidth:a})}function Hc(t,i,e){const n=i;if(!n){t.removeAll(),t.enabled=!1;return}if(t.removeAll(),n.planes)for(let o of n.planes)t.add(new d.ClippingPlane(Ri(o.normal),o.distance));let r=n.modelMatrix&&d.Matrix4.fromArray(n.modelMatrix)||d.Matrix4.clone(d.Matrix4.IDENTITY,new d.Matrix4);e&&d.Matrix4.multiply(e,r,r),t.enabled=n.enabled??!0,t.modelMatrix=r,t.unionClippingRegions=n.unionClippingRegions??!1,t.edgeColor=se(n.edgeColor??[1,1,1,1]),t.edgeWidth=n.edgeWidth??2}function qc(t){const{polygons:i,enabled:e,inverse:n}=t;return new d.ClippingPolygonCollection({polygons:i&&i.map(r=>new d.ClippingPolygon({positions:r.positions.map(o=>Be(o))})),enabled:e,inverse:n})}function $c(t,i){return Od(t,d.Cartesian3.UNIT_Y,d.Cartesian3.UNIT_Z,d.Cartesian3.UNIT_X,i)}function Cv(t,i){return Od(t,d.Cartesian3.UNIT_X,d.Cartesian3.UNIT_Z,new d.Cartesian3(0,-1,0),i)}function Od(t,i,e,n,r){const[o,s,a]=t,l=d.Quaternion.fromAxisAngle(e,d.Math.toRadians(-o)),h=d.Quaternion.fromAxisAngle(n,d.Math.toRadians(s)),u=d.Quaternion.fromAxisAngle(i,d.Math.toRadians(a)),p=d.Quaternion.clone(d.Quaternion.IDENTITY,r);return d.Quaternion.multiply(u,p,p),d.Quaternion.multiply(h,p,p),d.Quaternion.multiply(l,p,p),p}function Ln(t,i){return Array.isArray(t)?t.length!==i?(console.warn(`array.length !== ${i}`),!1):t.every(e=>Number.isFinite(e))?!0:(console.warn("!array.every(v => Number.isFinite(v))"),!1):(console.warn("!Array.isArray(array)"),!1)}function _v(t){return t.some(i=>i===0)?(console.warn("array.some(e => e === 0)"),!1):!0}function Ve(t,i){if(!((!t.localScale||Ln(t.localScale,3))&&(!t.localRotation||Ln(t.localRotation,3))&&(!t.localPosition||Ln(t.localPosition,3))&&(!t.localModelMatrix||Ln(t.localModelMatrix,16))&&(!t.scale||Ln(t.scale,3))&&(!t.rotation||Ln(t.rotation,3))&&(!t.position||Ln(t.position,3))&&(!t.modelMatrix||Ln(t.modelMatrix,16)))||t.localScale&&!_v(t.localScale)||t.scale&&!_v(t.scale))return;if(t.sceneScaleFromPixelSize){if(!Number.isFinite(t.sceneScaleFromPixelSize)){console.warn("!Number.isFinite(options.sceneScaleFromPixelSize)");return}if(t.sceneScaleFromPixelSize===0){console.warn("options.sceneScaleFromPixelSize === 0");return}}const n=i??d.Matrix4.clone(d.Matrix4.IDENTITY);if(t.localScale){const[r,o,s]=t.localScale??[1,1,1],a=d.Matrix4.fromScale(d.Cartesian3.fromElements(r,o,s),new d.Matrix4);d.Matrix4.multiply(a,n,n)}if((t.initialRotation??"yForwardzUp")==="xForwardzUp"){const r=d.Quaternion.fromAxisAngle(d.Cartesian3.UNIT_Z,d.Math.toRadians(90)),o=d.Matrix3.fromQuaternion(r);d.Matrix4.multiply(d.Matrix4.fromRotationTranslation(o),n,n)}if(t.localRotation){const r=$c(t.localRotation),o=d.Matrix3.fromQuaternion(r);d.Matrix4.multiply(d.Matrix4.fromRotationTranslation(o),n,n)}if(t.localPosition){const r=d.Matrix4.fromTranslation(d.Cartesian3.fromArray(t.localPosition));d.Matrix4.multiply(r,n,n)}if(t.localModelMatrix){const r=d.Matrix4.fromArray(t.localModelMatrix);d.Matrix4.multiply(r,n,n)}if(t.sceneScaleFromPixelSize!==void 0&&Number.isFinite(t.sceneScaleFromPixelSize)){const r=t.sceneScaleFromPixelSize,o=d.Matrix4.fromScale(d.Cartesian3.fromElements(r,r,r),new d.Matrix4);d.Matrix4.multiply(o,n,n)}if(t.scale){const[r,o,s]=t.scale??[1,1,1],a=d.Matrix4.fromScale(d.Cartesian3.fromElements(r,o,s),new d.Matrix4);d.Matrix4.multiply(a,n,n)}if(t.rotation){const r=$c(t.rotation),o=d.Matrix3.fromQuaternion(r);d.Matrix4.multiply(d.Matrix4.fromRotationTranslation(o),n,n)}if(t.position){const r=d.Cartesian3.fromDegrees(...t.position),o=d.Transforms.eastNorthUpToFixedFrame(r);d.Matrix4.multiply(o,n,n)}if(t.modelMatrix){const r=d.Matrix4.fromArray(t.modelMatrix);d.Matrix4.multiply(r,n,n)}return n}const aS=new d.Cartesian3,Zs=new d.HeadingPitchRoll,lS=new d.Matrix4,cS=new d.Cartesian3,hS=new d.Cartographic;function dS(t,i=[0,0,0],e=0,n){const[r,o,s]=t,a=d.Cartesian3.fromDegrees(r,o,s,void 0,aS),l=[...i];for(let u=0;u<3;++u)l[u]=d.Math.RADIANS_PER_DEGREE*l[u];if(e!==0){Zs.heading=l[0],Zs.pitch=l[1],Zs.roll=l[2],Zs.heading-=d.Math.PI_OVER_TWO;const u=d.Transforms.headingPitchRollToFixedFrame(a,Zs,void 0,void 0,lS),p=d.Matrix4.multiplyByPointAsVector(u,d.Cartesian3.UNIT_X,cS);d.Cartesian3.multiplyByScalar(p,e,p),d.Cartesian3.subtract(a,p,a)}const h=d.Cartographic.fromCartesian(a,void 0,hS);if(h)return n=n||[0,0,0],n[0]=h.longitude*180/Math.PI,n[1]=h.latitude*180/Math.PI,n[2]=h.height,n}function Pv(t,i,e,n){return dS(t,i,e,n)}const zn=d.Math.toDegrees;function Bt(t,i){const{longitude:e,latitude:n,height:r}=t.positionCartographic;return i?(i[0]=zn(e),i[1]=zn(n),i[2]=r,i):[zn(e),zn(n),r]}function Mr(t,i){const{heading:e,pitch:n,roll:r}=t;return i?(i[0]=zn(e),i[1]=zn(n),i[2]=zn(r),i):[e,n,r].map(zn)}class Qs extends c.Destroyable{constructor(e){super();v(this,"_originViewMatrix",new d.Matrix4);v(this,"_originProjMatrix",new d.Matrix4);v(this,"_changed",new c.Event);this._scene=e;const n=this._scene.camera;d.Matrix4.clone(n.viewMatrix,this._originViewMatrix),d.Matrix4.clone(n.frustum.projectionMatrix,this._originViewMatrix),this.dispose(this._scene.preUpdate.addEventListener(()=>{this._update()}))}_update(){d.Matrix4.equals(this._scene.camera.viewMatrix,this._originViewMatrix)||(d.Matrix4.clone(this._scene.camera.viewMatrix,this._originViewMatrix),this._changed.emit()),d.Matrix4.equals(this._scene.camera.frustum.projectionMatrix,this._originProjMatrix)||(d.Matrix4.clone(this._scene.camera.frustum.projectionMatrix,this._originProjMatrix),this._changed.emit())}get changed(){return this._changed}}class uS extends c.Destroyable{constructor(i){super();const e=()=>{};this.dispose(i.viewDistanceChanged.disposableOn(e)),this.dispose(i.visibleAlphaChanged.disposableOn(e))}}class pS extends c.Destroyable{constructor(e){super();v(this,"_debugObjResetting");this._control=e,this._debugObjResetting=this.disposeVar(new c.ObjResettingWithEvent(this._control.debugChanged,()=>{if(this._control.debug)return new uS(this._control)}))}get debugObjResetting(){return this._debugObjResetting}}class xo extends c.Destroyable{constructor(e,n,r,o){super();v(this,"_visibleAlpha",this.disposeVar(c.react(1)));v(this,"_viewDistance",this.disposeVar(c.react(0)));v(this,"_debug",this.disposeVar(c.react(!1)));v(this,"_viewDistanceDebug",this.disposeVar(new pS(this)));this._czmViewer=e,this._positionReact=r;const{positionReact:s,czmViewer:a}=this,[l,h,u]=c.getReactFuncs(n),[p,f,m]=c.getReactFuncs(s),[g,y,P]=o?c.getReactFuncs(o):[void 0,void 0,void 0],S=()=>{let T=1,I=Number.NEGATIVE_INFINITY;do{const D=l(),R=p(),k=g?g():0;if(!D||!R)break;const O=a.getCurrentCameraInfo();if(!O)break;I=w.cartesianDistance(O.position,R)-(k??0);const[U,z,V,_]=D;if(U>z||z>V||V>_){console.error("viewDistanceRange存在问题,需要满足逐级增大的条件,否则不生效!");break}I>=z&&I<=V?T=1:I<=U||I>=_?T=0:I>U&&I<z?z-U<=0?T=0:T=(I-U)/(z-U):I>V&&I<_?(_<=V&&(T=0),T=(_-I)/(_-V)):(T=1,console.error("不应该运行至此!"))}while(!1);this._viewDistance.value=I,this._visibleAlpha.value=T};S();const C=[a.cameraChanged,u,m];P&&C.push(P);const E=this.disposeVar(c.createNextAnimateFrameEvent(...C));this.dispose(E.disposableOn(S))}get visibleAlpha(){return this._visibleAlpha.value}get visibleAlphaChanged(){return this._visibleAlpha.changed}get viewDistance(){return this._viewDistance.value}set viewDistance(e){this._viewDistance.value=e}get viewDistanceChanged(){return this._viewDistance.changed}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get debugChanged(){return this._debug.changed}get positionReact(){return this._positionReact}get czmViewer(){return this._czmViewer}get viewDistanceDebug(){return this._viewDistanceDebug}}const fS=new d.BoundingSphere(d.Cartesian3.ZERO,0);function an(t,i,e){var n=fS;d.Cartesian3.clone(i,n.center);const r=t.camera.getPixelSize(n,t.drawingBufferWidth,t.drawingBufferHeight);if(r<=0)return;const o=e*r;if(Number.isFinite(o)&&o>0)return o}function At(t){const i=t.length;let e;const n=[];for(let r=0;r<i;++r){const[o,s,a]=t[r],l=d.Cartesian3.fromDegrees(o,s,a);if(!l)continue;const{x:h,y:u,z:p}=l;[h,u,p].every(Number.isFinite)&&(!e||!d.Cartesian3.equals(e,l))&&(e=l,n.push(e))}return n}function Fo(t,i,e,n){const r=w.geoRhumbDistance(t,e),o=w.geoRhumbHeading(t,e),s=Math.cos(o*Math.PI/180)*Math.cos(i*Math.PI/180)+Math.sin(o*Math.PI/180)*Math.sin(i*Math.PI/180);return s>0?w.geoRhumbDestination(t,r,i,n):w.geoRhumbDestination(t,r,i+180,n),[s>0?r:-r,n]}function mS(t,i,e){const n=e*.1,r=[];for(let o=-9;o<10;++o){const s=w.geoRhumbDestination(t,n*o,i);s&&r.push(s)}return r}function gS(t,i){return w.geoNearestPointOnLine(t,i).geometry.coordinates}const Sv=new d.Cartesian3,vS=new d.Ray,yS=new d.Plane(d.Cartesian3.UNIT_X,0);function Xc(t,i,e,n){const r=d.Cartesian3.normalize(i,Sv),o=d.Cartesian3.cross(t.camera.right,r,Sv);d.Cartesian3.normalize(o,o);const s=d.Plane.fromPointNormal(i,o,yS),a=t.camera.getPickRay(e,vS);if(a)return d.IntersectionTests.rayPlane(a,s,n)}const Nd=new d.Cartesian3,wS=new d.Ray,CS=new d.Cartographic,_S=new d.Ellipsoid;function Ir(t,i,e,n){const r=t.camera.getPickRay(i,wS);if(!r)return;const o=d.Cartesian3.fromElements(e,e,e,Nd),s=d.Cartesian3.add(o,d.Ellipsoid.WGS84.radii,Nd),a=d.Ellipsoid.fromCartesian3(s,_S),l=d.IntersectionTests.rayEllipsoid(r,a);if(l){const h=l.start>0?l.start:l.stop;if(h){const u=d.Ray.getPoint(r,h,Nd),p=d.Cartographic.fromCartesian(u,void 0,CS);return n=n||new d.Cartographic,n.longitude=p.longitude,n.latitude=p.latitude,n.height=e,n}else return}else return}function br(t,i){i[0]=t[0],i[1]=t[1],i[2]=t[2]}function Ev(t){const i=d.Ellipsoid.WGS84.minimumRadius;return(t+i)/i}const Av=new d.Cartographic,Tv=new d.Cartesian3,Vt=[0,0,0],On=[0,0,0],Vd=new d.Cartesian2,Ud=new d.Cartesian3;function Gd(t,i,e,n,r,o){r.constraintMode="none",br([0,0,0],r.startDragPos),o=o||{},Ci(c.getDomEventCurrentTargetPos(t),Vd);const s=e.position;if(!Be(s,Ud))return;const a=an(i,Ud,n);if(a===void 0||!Xc(i,Ud,Vd,Tv)||!pe(Tv,Vt))return;const l=Ev(Vt[2])*w.geoDistance(s,Vt);if(!o.z&&l<a&&Math.abs(s[2]-Vt[2])<e.dimensions[0]&&Vt[2]>s[2])return r.constraintMode="z",br(Vt,r.startDragPos),!0;if(!Ir(i,Vd,s[2],Av)||!Tr(Av,Vt))return;const h=Ev(s[2])*w.geoDistance(s,Vt),u=e.dimensions[0];if(!(h>1.05*u)){if(!o.zAxis&&h>.95*u&&h<=1.05*u){r.constraintMode="zAxis",br(Vt,r.startDragPos);return}{const[p,f]=Fo(s,e.heading+90,Vt,On);if(!o.x&&p>0&&f&&(On[2]=s[2],w.geoDistance(On,Vt)<a)){r.constraintMode="x",br(On,r.startDragPos);return}}{const[p,f]=Fo(s,e.heading,Vt,On);if(!o.y&&p>0&&f&&(On[2]=s[2],w.geoDistance(On,Vt)<a)){r.constraintMode="y",br(On,r.startDragPos);return}}o.xy||(r.constraintMode="xy",br(Vt,r.startDragPos))}}async function Mv(t,i,e,n){var a;const r=(a=t.viewer)==null?void 0:a.scene;if(!r)throw new Error("!scene");const o=c.getDomEventCurrentTargetPos(i),s=Ci(o);if(e===void 0){const l=t.quickPickPosition(o);return l?await l:void 0}else{const l=Ir(r,s,e);return l?Tr(l):void 0}}let Wd,Hd;function Iv(t,i,e,n,r){r=r||new d.Cartesian3,Wd=Wd||new d.Ray,Hd=Hd||new d.Plane(d.Cartesian3.UNIT_X,0);const o=t.camera.getPickRay(n,Wd),s=d.Plane.fromPointNormal(i,e,Hd);return r=d.IntersectionTests.rayPlane(o,s,r),r}function bv(t){const i=d.Material.fromType(t.type);return qd(i,t),i}function jt(t){return t&&w.ESSceneObject.context.getStrFromEnv(t)||d.Material.DefaultImageId}function PS(t){return{x:t[0],y:t[1]}}function qd(t,i){i.type==="Color"?t.uniforms.color=se(i.color??[1,1,1,1]):i.type==="PolylineArrow"?t.uniforms.color=se(i.color??[1,1,1,1]):i.type==="PolylineDash"?(t.uniforms.color=se(i.color??[1,1,1,1]),t.uniforms.gapColor=se(i.gapColor??[0,0,0,0]),t.uniforms.dashLength=i.dashLength??16,t.uniforms.dashPattern=i.dashPattern??255):i.type==="PolylineGlow"?(t.uniforms.color=se(i.color??[1,1,1,1]),t.uniforms.glowPower=i.glowPower??.25,t.uniforms.taperPower=i.taperPower??1):i.type==="PolylineOutline"?(t.uniforms.color=se(i.color??[1,1,1,1]),t.uniforms.outlineColor=se(i.outlineColor??[1,0,0,1]),t.uniforms.outlineWidth=i.outlineWidth??1):i.type==="Image"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.color=se(i.color??[1,1,1,1])):i.type==="DiffuseMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channels=i.channels??"rgb"):i.type==="AlphaMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channel=i.channel??"a"):i.type==="SpecularMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channel=i.channel??"r"):i.type==="EmissionMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channels=i.channels??"rgb"):i.type==="BumpMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channel=i.channel??"r",t.uniforms.strength=i.strength??.8):i.type==="NormalMap"?(t.uniforms.image=jt(i.image),t.uniforms.repeat=be(i.repeat??[1,1]),t.uniforms.channels=i.channels??"rgb",t.uniforms.strength=i.strength??.8):i.type==="Grid"?(t.uniforms.color=se(i.color??[0,1,0,1]),t.uniforms.cellAlpha=i.cellAlpha??.1,t.uniforms.lineCount=be(i.lineCount??[8,8]),t.uniforms.lineThickness=be(i.lineThickness??[1,1]),t.uniforms.lineOffset=be(i.lineOffset??[0,0])):i.type==="Stripe"?(t.uniforms.evenColor=se(i.evenColor??[1,1,1,.5]),t.uniforms.oddColor=se(i.oddColor??[0,0,1,.5]),t.uniforms.horizontal=i.horizontal??!0,t.uniforms.offset=i.offset??0,t.uniforms.repeat=i.repeat??5):i.type==="Checkerboard"?(t.uniforms.lightColor=se(i.lightColor??[1,1,1,.5]),t.uniforms.darkColor=se(i.darkColor??[0,0,0,.5]),t.uniforms.repeat=be(i.repeat??[5,5])):i.type==="Dot"?(t.uniforms.lightColor=se(i.lightColor??[1,1,0,.75]),t.uniforms.darkColor=se(i.darkColor??[0,1,1,.75]),t.uniforms.repeat=be(i.repeat??[5,5])):i.type==="Water"?(t.uniforms.baseWaterColor=se(i.baseWaterColor??[.2,.3,.6,1]),t.uniforms.blendColor=se(i.blendColor??[0,1,.699,1]),t.uniforms.specularMap=jt(i.specularMap),t.uniforms.normalMap=jt(i.normalMap),t.uniforms.frequency=i.frequency??10,t.uniforms.animationSpeed=i.animationSpeed??.01,t.uniforms.amplitude=i.amplitude??1,t.uniforms.specularIntensity=i.specularIntensity??.5,t.uniforms.fadeFactor=i.fadeFactor??1):i.type==="RimLighting"?(t.uniforms.color=se(i.color??[1,0,0,.7]),t.uniforms.rimColor=se(i.rimColor??[1,1,1,.4]),t.uniforms.width=i.width??.3):i.type==="Fade"?(t.uniforms.fadeInColor=se(i.fadeInColor??[1,0,0,1]),t.uniforms.fadeOutColor=se(i.fadeOutColor??[0,0,0,0]),t.uniforms.maximumDistance=i.maximumDistance??.5,t.uniforms.repeat=i.repeat??!0,t.uniforms.fadeDirection=PS(i.fadeDirection??[!0,!0]),t.uniforms.time=be(i.time??[.5,.5])):i.type==="ElevationContour"?(t.uniforms.color=se(i.color??[1,0,0,1]),t.uniforms.spacing=i.spacing??100,t.uniforms.width=i.width??1):i.type==="ElevationRamp"?(t.uniforms.image=jt(i.image),t.uniforms.minimumHeight=i.minimumHeight??0,t.uniforms.maximumHeight=i.maximumHeight??1e4):i.type==="AspectRamp"?t.uniforms.image=jt(i.image):i.type==="ElevationBand"?(t.uniforms.color=jt(i.colors),t.uniforms.heights=jt(i.heights)):console.warn(`未知材质类型,无法更新 ${i.type}`)}function _i(t,i){const e=c.react(void 0);let n="";const[r,o,s]=c.getReactFuncs(t),a=()=>{try{const l=r()??i;l?n!==l.type?(n=l.type,e.value=bv(l)):e.value&&qd(e.value,l):(n="",e.value=void 0)}catch{}};return a(),e.dispose(s.disposableOn(a)),e}function ln(t){const i=At(t.positions),e=t.holes&&t.holes.map(n=>ln(n));return{positions:i,holes:e}}function $d(t,i){const e=Math.PI/180,n=1/e,r=new d.Cartographic(t[0]*e,t[1]*e,t[2]),o=new d.Cartographic(i[0]*e,i[1]*e,i[2]),s=new d.EllipsoidGeodesic(r,o).interpolateUsingFraction(.5,new d.Cartographic);if(s)return s.height=(r.height+o.height)*.5,[s.longitude*n,s.latitude*n,s.height]}const Dv=new d.Cartesian4,SS=new d.Matrix4;function ES(){return{left:0,top:0,right:0,bottom:0,depth:0}}function Rv(t,i){return t.left===i.left&&t.right===i.right&&t.bottom===i.bottom&&t.top===i.top&&t.depth===i.depth}function xv(t,i,e){if(t.scene.mode!==d.SceneMode.SCENE3D)return;const n=t.canvas.clientHeight,r=t.canvas.clientWidth,o=t.camera.viewMatrix,s=t.camera.frustum.projectionMatrix,a=d.Matrix4.multiply(s,o,SS),l=d.Matrix4.multiplyByVector(a,d.Cartesian4.fromElements(i.x,i.y,i.z,1,Dv),Dv);l.x/=l.w,l.y/=l.w,l.z/=l.w,l.w=1;const h=r*(l.x*.5+.5),u=n*(l.y*.5+.5),p=r-h,f=n-u,m=l.z;if(!(h<0||u<0||p<0||f<0||m<0||m>1))return e?(e.left=h,e.top=f,e.right=p,e.bottom=u,e.depth=m):e={left:h,top:f,right:p,bottom:u,depth:m},e}const ko={left:0,top:0,right:0,bottom:0,depth:0};class Yc extends c.Destroyable{constructor(e,n=!0,r){super();v(this,"_cartesian",new d.Cartesian3);v(this,"_winPos",{left:0,top:0,right:0,bottom:0,depth:0});v(this,"_winPosValid",!1);v(this,"_changedEvent",new c.Event);v(this,"_enabled",!0);this._viewer=e,r=r||this.disposeVar(new Qs(this._viewer.scene)),this.dispose(r.changed.disposableOn(()=>this._updateWinPos())),this.dispose(()=>{this._changedEvent.empty||console.warn("WinPosFromCartesian需要销毁,但是changed事件仍有监听,代码未必有错,但是说明代码不严谨。")}),this.enabled=n}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&(this._enabled=e,e&&this._updateWinPos())}_updateWinPos(){if(!this._enabled)return;let e=!1;const n=xv(this._viewer,this._cartesian,ko);!!n!==this._winPosValid&&(e=!0,this._winPosValid=!!n),this._winPosValid?Rv(this._winPos,ko)||(e=!0,this._winPos.left=ko.left,this._winPos.top=ko.top,this._winPos.right=ko.right,this._winPos.bottom=ko.bottom,this._winPos.depth=ko.depth):(e=!0,this._winPos.left=Number.NaN,this._winPos.top=Number.NaN,this._winPos.right=Number.NaN,this._winPos.bottom=Number.NaN,this._winPos.depth=Number.NaN),e&&this._changedEvent.emit(this._winPosValid,this._winPos)}get cartesian(){return this._cartesian}set cartesian(e){d.Cartesian3.equals(this._cartesian,e)||(d.Cartesian3.clone(e,this._cartesian),this._updateWinPos())}get changed(){return this._changedEvent}get winPosValid(){return this._winPosValid}get winPos(){return this._winPos}}function Fv(t){const i=d.Math.toRadians(t[0]),e=d.Math.toRadians(t[1]),n=d.Math.toRadians(t[2]),r=d.Matrix3.fromHeadingPitchRoll(new d.HeadingPitchRoll(i,e,n)),o=new d.Cartesian3;return d.Matrix3.multiplyByVector(r,d.Cartesian3.UNIT_X,o),[o.x,o.y,o.z]}const AS=d.Check,TS=d.defaultValue,Lo=d.defined,kv=d.Math.EPSILON10;function MS(t,i,e,n){if(AS.defined("equalsEpsilon",i),!Lo(t))return;e=TS(e,!1);const r=Lo(n),o=t.length;if(o<2)return t;let s,a=t[0],l,h,u=0,p=-1;for(s=1;s<o;++s)l=t[s],i(a,l,kv)?(Lo(h)||(h=t.slice(0,s),u=s-1,p=0),r&&n.push(s)):(Lo(h)&&(h.push(l),u=s,r&&(p=n.length)),a=l);return e&&i(t[0],t[o-1],kv)&&(r&&(Lo(h)?n.splice(p,0,u):n.push(o-1)),Lo(h)?h.length-=1:h=t.slice(0,-1)),Lo(h)?h:t}const Pe=d.Cartesian3,Dr=d.Cartographic,zo=d.defaultValue,Oo=d.defined,Lv=d.DeveloperError,zv=d.Ellipsoid,IS=d.EllipsoidGeodesic,Ov=d.EllipsoidRhumbLine,bS=d.IntersectionTests,Xd=d.Math,Rr=d.Matrix4,No=d.Plane,ct={};ct.numberOfPoints=function(t,i,e){const n=Pe.distance(t,i);return Math.ceil(n/e)},ct.numberOfPointsRhumbLine=function(t,i,e){const n=Math.pow(t.longitude-i.longitude,2)+Math.pow(t.latitude-i.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(n/(e*e))))};const DS=new Dr;ct.extractHeights=function(t,i){const e=t.length,n=new Array(e);for(let r=0;r<e;r++){const o=t[r];n[r]=i.cartesianToCartographic(o,DS).height}return n};const RS=new Rr,xS=new Pe,Nv=new Pe,FS=new No(Pe.UNIT_X,0),Vv=new Pe,kS=new No(Pe.UNIT_X,0),LS=new Pe,zS=new Pe,Yd=[];function Uv(t,i,e){const n=Yd;n.length=t;let r;if(i===e){for(r=0;r<t;r++)n[r]=i;return n}const s=(e-i)/t;for(r=0;r<t;r++){const a=i+r*s;n[r]=a}return n}const Zc=new Dr,Qc=new Dr,Nn=new Pe,Zd=new Pe,OS=new Pe,Qd=new IS;let Ks=new Ov;function NS(t,i,e,n,r,o,s,a){const l=n.scaleToGeodeticSurface(t,Zd),h=n.scaleToGeodeticSurface(i,OS),u=ct.numberOfPoints(t,i,e),p=n.cartesianToCartographic(l,Zc),f=n.cartesianToCartographic(h,Qc),m=Uv(u,r,o);Qd.setEndPoints(p,f);const g=Qd.surfaceDistance/u;let y=a;p.height=r;let P=n.cartographicToCartesian(p,Nn);Pe.pack(P,s,y),y+=3;for(let S=1;S<u;S++){const C=Qd.interpolateUsingSurfaceDistance(S*g,Qc);C.height=m[S],P=n.cartographicToCartesian(C,Nn),Pe.pack(P,s,y),y+=3}return y}function VS(t,i,e,n,r,o,s,a){const l=n.cartesianToCartographic(t,Zc),h=n.cartesianToCartographic(i,Qc),u=ct.numberOfPointsRhumbLine(l,h,e);l.height=0,h.height=0;const p=Uv(u,r,o);Ks.ellipsoid.equals(n)||(Ks=new Ov(void 0,void 0,n)),Ks.setEndPoints(l,h);const f=Ks.surfaceDistance/u;let m=a;l.height=r;let g=n.cartographicToCartesian(l,Nn);Pe.pack(g,s,m),m+=3;for(let y=1;y<u;y++){const P=Ks.interpolateUsingSurfaceDistance(y*f,Qc);P.height=p[y],g=n.cartographicToCartesian(P,Nn),Pe.pack(g,s,m),m+=3}return m}ct.wrapLongitude=function(t,i){const e=[],n=[];if(Oo(t)&&t.length>0){i=zo(i,Rr.IDENTITY);const r=Rr.inverseTransformation(i,RS),o=Rr.multiplyByPoint(r,Pe.ZERO,xS),s=Pe.normalize(Rr.multiplyByPointAsVector(r,Pe.UNIT_Y,Nv),Nv),a=No.fromPointNormal(o,s,FS),l=Pe.normalize(Rr.multiplyByPointAsVector(r,Pe.UNIT_X,Vv),Vv),h=No.fromPointNormal(o,l,kS);let u=1;e.push(Pe.clone(t[0]));let p=e[0];const f=t.length;for(let m=1;m<f;++m){const g=t[m];if(No.getPointDistance(h,p)<0||No.getPointDistance(h,g)<0){const y=bS.lineSegmentPlane(p,g,a,LS);if(Oo(y)){const P=Pe.multiplyByScalar(s,5e-9,zS);No.getPointDistance(a,p)<0&&Pe.negate(P,P),e.push(Pe.add(y,P,new Pe)),n.push(u+1),Pe.negate(P,P),e.push(Pe.add(y,P,new Pe)),u=1}}e.push(Pe.clone(t[m])),u++,p=g}n.push(u)}return{positions:e,lengths:n}},ct.generateArc=function(t){Oo(t)||(t={});const i=t.positions;if(!Oo(i))throw new Lv("options.positions is required.");const e=i.length,n=zo(t.ellipsoid,zv.WGS84);let r=zo(t.height,0);const o=Array.isArray(r);if(e<1)return[];if(e===1){const y=n.scaleToGeodeticSurface(i[0],Zd);if(r=o?r[0]:r,r!==0){const P=n.geodeticSurfaceNormal(y,Nn);Pe.multiplyByScalar(P,r,P),Pe.add(y,P,y)}return[y.x,y.y,y.z]}let s=t.minDistance;if(!Oo(s)){const y=zo(t.granularity,Xd.RADIANS_PER_DEGREE);s=Xd.chordLength(y,n.maximumRadius)}let a=0,l;for(l=0;l<e-1;l++)a+=ct.numberOfPoints(i[l],i[l+1],s);const h=(a+1)*3,u=new Array(h);let p=0;for(l=0;l<e-1;l++){const y=i[l],P=i[l+1],S=o?r[l]:r,C=o?r[l+1]:r;p=NS(y,P,s,n,S,C,u,p)}Yd.length=0;const f=i[e-1],m=n.cartesianToCartographic(f,Zc);m.height=o?r[e-1]:r;const g=n.cartographicToCartesian(m,Nn);return Pe.pack(g,u,h-3),u};const Gv=new Dr,US=new Dr;ct.generateRhumbArc=function(t){Oo(t)||(t={});const i=t.positions;if(!Oo(i))throw new Lv("options.positions is required.");const e=i.length,n=zo(t.ellipsoid,zv.WGS84);let r=zo(t.height,0);const o=Array.isArray(r);if(e<1)return[];if(e===1){const S=n.scaleToGeodeticSurface(i[0],Zd);if(r=o?r[0]:r,r!==0){const C=n.geodeticSurfaceNormal(S,Nn);Pe.multiplyByScalar(C,r,C),Pe.add(S,C,S)}return[S.x,S.y,S.z]}const s=zo(t.granularity,Xd.RADIANS_PER_DEGREE);let a=0,l,h=n.cartesianToCartographic(i[0],Gv),u;for(l=0;l<e-1;l++)u=n.cartesianToCartographic(i[l+1],US),a+=ct.numberOfPointsRhumbLine(h,u,s),h=Dr.clone(u,Gv);const p=(a+1)*3,f=new Array(p);let m=0;for(l=0;l<e-1;l++){const S=i[l],C=i[l+1],E=o?r[l]:r,T=o?r[l+1]:r;m=VS(S,C,s,n,E,T,f,m)}Yd.length=0;const g=i[e-1],y=n.cartesianToCartographic(g,Zc);y.height=o?r[e-1]:r;const P=n.cartographicToCartesian(y,Nn);return Pe.pack(P,f,p-3),f},ct.generateCartesianArc=function(t){const i=ct.generateArc(t),e=i.length/3,n=new Array(e);for(let r=0;r<e;r++)n[r]=Pe.unpack(i,r*3);return n},ct.generateCartesianRhumbArc=function(t){const i=ct.generateRhumbArc(t),e=i.length/3,n=new Array(e);for(let r=0;r<e;r++)n[r]=Pe.unpack(i,r*3);return n};const Kc=d.ArcType,GS=d.Cartesian3,WS=d.Math;function Wv(t){const i=t.arcType,e=t.granularity,n=t.ellipsoid,r=[];let o=MS(t.positions,GS.equalsEpsilon,!1,r);if(!(o.length<2)){if(i===Kc.GEODESIC||i===Kc.RHUMB){let a;i===Kc.GEODESIC?(a=WS.chordLength(e,n.maximumRadius),ct.numberOfPoints):(a=e,ct.numberOfPointsRhumbLine);const l=ct.extractHeights(o,n);i===Kc.GEODESIC?o=ct.generateCartesianArc({positions:o,minDistance:a,ellipsoid:n,height:l}):o=ct.generateCartesianRhumbArc({positions:o,granularity:a,ellipsoid:n,height:l})}return o}}function Kd(t,i="GEODESIC",e){const r=t.map(w.lbhToXyz).map(p=>d.Cartesian3.fromArray(p));let o;if(e>0&&i!=="NONE"){if(o=Wv({arcType:d.ArcType[i??"GEODESIC"],granularity:e,ellipsoid:d.Ellipsoid.WGS84,positions:r}),!o)return}else o=r;let s=0;const a=[0],l=o.length;for(let p=1;p<l;++p)s+=d.Cartesian3.distance(o[p-1],o[p]),a.push(s);const h=o.map(p=>w.xyzToLbh([p.x,p.y,p.z]));return{timePosRots:a.map((p,f)=>[a[f],h[f],void 0]),distances:a}}function Hv(t,i){i=i??new Array(16);for(let e=0;e<16;++e)i[e]=t[e];return i}function Jd(t,i){const e=d.Matrix4.clone(d.Matrix4.IDENTITY),{position:n,rotation:r,scale:o,initialRotationMode:s="YForwardZUp"}=t;if(n){const[a,l,h]=n;d.Transforms.eastNorthUpToFixedFrame(d.Cartesian3.fromDegrees(a,l,h),void 0,e)}if(r){const a=new d.Quaternion;s==="YForwardZUp"?$c(r,a):s==="XForwardZUp"&&Cv(r,a);const l=d.Matrix3.fromQuaternion(a);d.Matrix4.multiply(e,d.Matrix4.fromRotationTranslation(l),e)}return o&&d.Matrix4.multiplyByScale(e,Ci(o),e),Hv(e,i)}const HS=new d.Matrix4;function qv(t,i){const e=d.Matrix4.fromArray(t,0,HS);return d.Matrix4.inverse(e,e),Hv(e,i)}const qS=new d.Matrix4,$S=new d.Cartesian3;function $v(t,i,e){const[n,r,o]=i,s=d.Cartesian3.fromDegrees(n,r,o,void 0,$S),a=d.Matrix4.fromArray(t,0,qS),l=d.Matrix4.multiplyByPoint(a,s,s),{x:h,y:u,z:p}=l;return e=e||[0,0,0],e[0]=h,e[1]=u,e[2]=p,e}const XS=new d.Matrix4,YS=new d.Cartesian3,ZS=new d.Cartographic;function Vn(t,i,e){const[n,r,o]=i,s=d.Cartesian3.fromElements(n,r,o,YS),a=d.Matrix4.fromArray(t,0,XS),l=d.Matrix4.multiplyByPoint(a,s,s),h=d.Cartographic.fromCartesian(l,void 0,ZS);return e=e||[0,0,0],e[0]=d.Math.toDegrees(h.longitude),e[1]=d.Math.toDegrees(h.latitude),e[2]=h.height,e}function Ut(t,i){const{originPosition:e,originRotation:n,originScale:r,initialRotationMode:o}=t,s=Jd({position:e,rotation:n,scale:r,initialRotationMode:o}),a=qv(s);return[i.map(h=>$v(a,h)),s,a]}function Un(t,i){const{originPosition:e,originRotation:n,originScale:r,initialRotationMode:o}=t,s=Jd({position:e,rotation:n,scale:r,initialRotationMode:o});return[i.map(l=>Vn(s,l)),s]}function Xv(t){if(t.length<2)return console.error("getIncludedAngleFromPositions需要传入的点不能少于三个!!!!!"),!1;let i=[];for(let e=0;e<t.length-2;e++){const n=re.Cartesian3.fromDegrees(...t[e]),r=re.Cartesian3.fromDegrees(...t[e+1]),o=re.Cartesian3.fromDegrees(...t[e+2]),s=re.Cartesian3.angleBetween(re.Cartesian3.subtract(n,r,new re.Cartesian3),re.Cartesian3.subtract(o,r,new re.Cartesian3));i.push(isNaN(s)?0:re.Math.toDegrees(s))}return i}function Bd(t,i){let e=i||[];return t.positions&&(e[e.length]??(e[e.length]=[]),e[e.length-1].push(...t.positions.map(n=>pe(n)))),t.holes&&t.holes.forEach(n=>{e=Bd(n,e)}),e}function ei(t){return typeof t=="string"?w.ESSceneObject.context.getStrFromEnv(t):new d.Resource({url:w.ESSceneObject.context.getStrFromEnv(t.url),headers:t.headers,queryParameters:t.queryParameters,templateValues:t.templateValues,proxy:t.proxy,retryCallback:t.retryCallback,retryAttempts:t.retryAttempts,request:t.request,parseUrl:t.parseUrl})}class jd extends c.Destroyable{constructor(i,e,n,r){if(super(),!i.viewer)return;const{scene:o}=i.viewer,[s,a,l]=c.getReactFuncs(e),[h,u,p]=c.getReactFuncs(n),f=new d.Cartesian3,m=()=>{let g=s();g&&(g=[...g],i.editingHeightOffset&&(g[2]-=i.editingHeightOffset),d.Cartesian3.fromDegrees(...g,void 0,f))};m(),this.dispose(l.disposableOn(m)),this.dispose(o.preUpdate.addEventListener(()=>{if(d.Cartesian3.ZERO.equals(f))return;const g=an(o,f,r);g!==void 0?u([g,g,g]):console.warn(`CzmGeoCoordinatesEditor warn: scale: ${g??"undefined"}`)}))}}function QS(t){const i=Reflect.has(t.root,"transform")?t.root.transform:d.Matrix4.toArray(d.Matrix4.IDENTITY);let e,n,r,o;if(Reflect.has(t.root.boundingVolume,"region"))return t.root.boundingVolume.region;if(Reflect.has(t.root.boundingVolume,"box"))o=d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(0,3)),e=d.Cartesian3.add(o,d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(3,6)),new d.Cartesian3),n=d.Cartesian3.add(o,d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(6,9)),new d.Cartesian3),r=d.Cartesian3.add(o,d.Cartesian3.fromArray(t.root.boundingVolume.box.slice(9,12)),new d.Cartesian3);else if(Reflect.has(t.root.boundingVolume,"sphere")){const f=t.root.boundingVolume.sphere[3];o=d.Cartesian3.fromArray(t.root.boundingVolume.sphere.slice(0,3)),e=d.Cartesian3.add(o,d.Cartesian3.fromArray([f,0,0]),new d.Cartesian3),n=d.Cartesian3.add(o,d.Cartesian3.fromArray([0,f,0]),new d.Cartesian3),r=d.Cartesian3.add(o,d.Cartesian3.fromArray([0,0,f]),new d.Cartesian3)}if(!e||!n||!r||!o)return"无法生成包围盒,请检查包围盒是否正确";let s,a,l,h,u,p;return d.Matrix4.IDENTITY.equals(d.Matrix4.fromArray(i))?(s=pe(e),h=pe(d.Cartesian3.add(o,d.Cartesian3.subtract(o,e,new d.Cartesian3),new d.Cartesian3)),a=pe(n),u=pe(d.Cartesian3.add(o,d.Cartesian3.subtract(o,n,new d.Cartesian3),new d.Cartesian3)),l=pe(r),p=pe(d.Cartesian3.add(o,d.Cartesian3.subtract(o,r,new d.Cartesian3),new d.Cartesian3))):(s=Vn(i,[e.x,e.y,e.z]),h=Vn(i,[-e.x,-e.y,-e.z]),a=Vn(i,[n.x,n.y,n.z]),u=Vn(i,[-n.x,-n.y,-n.z]),l=Vn(i,[r.x,r.y,r.z]),p=Vn(i,[-r.x,-r.y,-r.z])),!s||!h||!a||!u||!l||!p?"无法生成包围盒,请检查包围盒是否正确":[d.Math.toRadians(Math.min(s[0],h[0],a[0],u[0],l[0],p[0])),d.Math.toRadians(Math.min(s[1],h[1],a[1],u[1],l[1],p[1])),d.Math.toRadians(Math.max(s[0],h[0],a[0],u[0],l[0],p[0])),d.Math.toRadians(Math.max(s[1],h[1],a[1],u[1],l[1],p[1])),Math.min(s[2],h[2],a[2],u[2],l[2],p[2]),Math.max(s[2],h[2],a[2],u[2],l[2],p[2])]}const Yv=c.createProcessingFromAsyncFunc(async(t,i)=>{let e={state:"success",tilesUrl:{asset:{version:"1.1"},geometricError:0,refine:"REPLACE",root:{boundingVolume:{region:[]},geometricError:0,refine:"REPLACE",children:[]}}},n={},r=[];if(await c.step(t,async l=>new Promise(async(h,u)=>{for(let p=0;p<i.length;p++){const f=i[p];await fetch(f).then(m=>m.json()).then(m=>{m&&!Reflect.has(m,"success")?n[f]=m:r.push({index:p,url:f,message:m.message}),p==i.length-1&&h()}).catch(m=>{r.push({index:p,url:f,message:m}),p==i.length-1&&h()})}})),r.length>0&&(e.state="error",e.info=r,r.length==i.length))return e.tilesUrl=void 0,e;const o=[],s=[],a=[];for(const l in n){const h=n[l];s.push(h.geometricError??h.root.geometricError??0);const u=QS(h);o.push(u),a.push({content:{uri:l},boundingVolume:{region:u},geometricError:h.geometricError,refine:"REPLACE"})}return e.tilesUrl&&(e.tilesUrl.geometricError=e.tilesUrl.root.geometricError=Math.max(...s),e.tilesUrl.root.boundingVolume.region=[Math.min(...o.map(l=>l[0])),Math.min(...o.map(l=>l[1])),Math.max(...o.map(l=>l[2])),Math.max(...o.map(l=>l[3])),Math.min(...o.map(l=>l[4])),Math.max(...o.map(l=>l[5]))],e.tilesUrl.root.children=a),e});function KS(t){return new Promise((i,e)=>{Yv.restart(void 0,t),Yv.completeEvent.don(n=>{i(n)})})}class eu extends c.Destroyable{constructor(e){super();v(this,"_center",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_radius",this.disposeVar(c.react(0)));const[n,r,o]=c.getReactFuncs(e);{const s=()=>{const a=n();if(a){const{center:l,minPos:h,maxPos:u}=w.getMinMaxCorner(a);this._center.value=l,this._radius.value=w.geoDistance(h,u)/2}else this._center.value=void 0};s(),this.dispose(o.disposableOn(s))}}get centerReact(){return this._center}get center(){return this._center.value}get centerChanged(){return this._center.changed}get radiusReact(){return this._radius}get radius(){return this._radius.value}get radiusChanged(){return this._radius.changed}}function Zv(t){return new d.Material({fabric:{type:"XbsjWater",uniforms:{baseWaterImage:"",repeatX:1,repeatY:1,flowSpeed:0,baseWaterColor:new d.Color(.2,.3,.6,1),blendColor:new d.Color(0,1,.699,1),specularMap:d.Material.DefaultImageId,normalMap:d.Material.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1,...t},source:`// Thanks for the contribution Jonas
2
2
  // http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog
3
3
 
4
4
  uniform sampler2D specularMap;
@@ -2837,10 +2837,10 @@ void main()
2837
2837
  {
2838
2838
  out_FragColor = u_color;
2839
2839
  }
2840
- `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},Ue,t)}class s4 extends c.HasOwner{constructor(i){super(i);const{czmViewer:e}=this.owner;let n;this.dispose(()=>this.owner.hoveredPlaneType="none");const r=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(o=>{const s=n=this._getStartInfo(o.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(o=>{n&&n.currentPlaneType!=="none"&&(r.restart(void 0,e,n),n=void 0)})),this.dispose(e.dblclickEvent.disposableOn(o=>{do{const s=this._getStartInfo(o.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[Di.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(c.createProcessingFromAsyncFunc(async(i,e,n)=>{const r=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:s,offsetY:a}=o.pointerEvent,l=[s,a],{currentPlaneType:h}=n;if(h==="none")return;const u=this.owner.getPlane(h);if(!n.currentV)return;const p=u.pick(l);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 m=d.Cartesian3.subtract(p,this.owner.cartesian,new d.Cartesian3);if(d.Cartesian3.normalize(m,m),!u.normal||!u.origin)return;const g=ev(f,m,u.normal),y=ev(u.origin,f,u.normal),P=ev(u.origin,m,u.normal);{const S=[...this.owner.selfRotation];S[Di.rotationNum[h]]=n.startRotation+g,this.owner.selfRotation=S,r.circleStartRotation=y,r.circleEndRotation=P}}})),this.owner.movingPlaneType=n.currentPlaneType,i.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),i.disposer.dispose(()=>{r.circleStartRotation=0,r.circleEndRotation=0}),await c.step(i,o=>new Promise((s,a)=>{o.disposer.dispose(a),o.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),o.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(i,e,n,r,o){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(n).pick(r);if(!l)return;const h=d.Cartesian3.distance(s,l),u=o/4,p=u*3/128;if(!(h>=u-p&&h<=u+p))return;const m=d.Cartesian3.distance(e.camera.positionWC,l);i.currentD2c<=m||(i.currentPlaneType=n,i.currentD2c=m,i.currentV=l,i.startRotation=a[Di.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 r=an(n,this.owner.cartesian,this.owner.pixelSize);if(!r)return;const{offsetX:o,offsetY:s}=i,a=[o,s],l=i.pointerId,h={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(h,n,"heading",a,r),this._pickPlane(h,n,"pitch",a,r),this._pickPlane(h,n,"roll",a,r),h}}function ev(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 r=d.Cartesian3.dot(n,e);let o=Math.acos(d.Cartesian3.dot(t,i))*180/Math.PI;return o=r>0?o:-o,o}const Sr=class Sr extends ai{constructor(e){super();v(this,"_hoveredPlaneType",this.disposeVar(c.react("none")));v(this,"_movingPlaneType",this.disposeVar(c.react("none")));v(this,"_circles");v(this,"_czmCameraModel");v(this,"_cartesian");v(this,"_planes",{heading:this.disposeVar(new t4(this)),pitch:this.disposeVar(new i4(this)),roll:this.disposeVar(new n4(this))});v(this,"_rotatorRunningResetting");this._czmViewer=e;const n=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new c.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new s4(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&&Be(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 Ct(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"],n=>n*.1)),this.dispose(c.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(c.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const n=()=>{const r=Ve({rotation:this.selfRotation});if(!r)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=d.Matrix4.toArray(r))};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 r=this.ad(new Fs(e));this.dispose(c.track([r,"position"],[this,"position"])),this.dispose(c.track([r,"pixelSize"],[this,"pixelSize"])),this.dispose(c.track([r,"debug"],[this,"debug"])),this.dispose(c.track([r,"rotation"],[this,"rotation"]));{const o=()=>{r.selfRotation=Sr.rotationFuncs[n](this.selfRotation),r.circleRotation=this.selfRotation[Sr.rotationNum[n]]};o(),this.dispose(this.selfRotationChanged.disposableOn(o))}{const o=()=>{const s=this.movingPlaneType===n,a=this.hoveredPlaneType===n,h=[0,0,0,s||a?1:.8];h[Sr.rotationNum[n]]=1,r.color=h};o(),this.dispose(this.movingPlaneTypeChanged.disposableOn(o)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(o))}return r}};v(Sr,"rotationNum",{heading:0,pitch:1,roll:2}),v(Sr,"rotationFuncs",{heading:([e,n,r])=>[0,0,0],pitch:([e,n,r])=>[e,0,-90],roll:([e,n,r])=>[e,n+90,0]});let Di=Sr;(t=>{t.createDefaultProps=()=>({...ai.createDefaultProps(),rotation:c.reactArray([0,0,0]),selfRotation:c.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(Di||(Di={})),c.extendClassProps(Di.prototype,Di.createDefaultProps);const Er=class Er extends c.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(i){this.positions=[i??Er.defaults.positions[0],this.stopPosition??Er.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(i){this.positions=[this.startPosition??Er.defaults.positions[0],i??Er.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(i,e){if(super(),!i.viewer)return;const r=this.ad(new ke(i,e));r.arcType="RHUMB";const o=this.ad(new pi(i,e));this.ad(c.track([r,"allowPicking"],[this,"allowPicking"])),this.ad(c.track([o,"allowPicking"],[this,"allowPicking"]));{const s=()=>{r.show=o.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{r.width=this.width/2,o.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{r.color=o.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{r.positions=this.positions,o.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};v(Er,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let mr=Er;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:c.reactPositions(t.defaults.positions),width:10,color:c.reactArray([1,0,0,1])})})(mr||(mr={})),c.extendClassProps(mr.prototype,mr.createDefaultProps);class bn extends ai{constructor(e){super();v(this,"_lastPosition");v(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))});v(this,"_scaleAxis");v(this,"_pickingXYProcessing",e=>this.disposeVar(new c.Processing((n,r,o)=>{const s=[0,0,0],a=new d.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const h=Ci(c.getDomEventCurrentTargetPos(l.pointerEvent));if(!Ir(e.viewer.scene,h,this._opInfo.originPosition.value[2],a))return;Tr(a,s),this._opInfo.constraintMode.value==="x"?Fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?Fo(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 u=[0,0,0];w.geoRhumbDestination(s,o,r,u),this._opInfo.targetPosition.value=u;let p=this.scale[0],f=this.scale[1];const m=w.geoDistance(u,this._opInfo.originPosition.value)-w.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...u];const g=this._opInfo.originDimensions.value[0]/100;m!=0&&this._opInfo.constraintMode.value==="y"&&(m>0?p+=g:p-=g),m!=0&&this._opInfo.constraintMode.value==="x"&&(m>0?f+=g:f-=g),p<=0&&(p+=g),f<=0&&(f+=g),this.scale=[p??1,f??1,this.scale[2]??1]})})));v(this,"_pickingZProcessing",e=>this.disposeVar(new c.Processing(()=>{const n=new d.Cartesian3,r=[0,0,0];return e.pointerMoveEvent.disposableOn(o=>{if(!o.pointerEvent||!e.viewer)return;const s=Ci(c.getDomEventCurrentTargetPos(o.pointerEvent));if(!Xc(e.viewer.scene,Be(this._opInfo.originPosition.value),s,n))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(pe(n,r)){this._opInfo.movingPosition.value=r;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],r[2]+a];let h=this.scale[2];const u=r[2]-this._lastPosition[2];this._lastPosition=[...r];const p=this._opInfo.originDimensions.value[0]/100;u!=0&&(u>0?h+=p:h-=p),h<=0&&(h+=p),this.scale=[this.scale[0]??1,this.scale[1]??1,h??1]}})})));const n=e.viewer;if(!n)return;const{scene:r}=n;this.ad(new jd(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 h=()=>{if(!this._scaleAxis)return;const{zAxis:u,yAxis:p,xAxis:f}=this._scaleAxis,m=this._opInfo.constraintMode.value,g=this._opInfo.step;u.color=[0,0,1,.99],p.color=[0,1,0,.99],f.color=[1,0,0,.99],m==="x"?f.color=g?[1,1,0,.8]:[1,1,0,.99]:m==="y"?p.color=g?[1,1,0,.8]:[1,1,0,.99]:m==="z"&&(u.color=g?[1,1,0,.8]:[1,1,0,.99])};h(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(h)),this.dispose(this._opInfo.step.changed.disposableOn(h))}{const h=()=>{if(!this._scaleAxis)return;const{position:p=bn.defaults.position}=this,{zAxis:f,yAxis:m,xAxis:g}=this._scaleAxis;f.startPosition=m.startPosition=g.startPosition=p;const[y,P,S]=p;f.stopPosition=[y,P,S+this._opInfo.originDimensions.value[2]];const C=w.geoRhumbDestination(p,this._opInfo.originDimensions.value[0],90);C&&(g.stopPosition=C);const E=w.geoRhumbDestination(p,this._opInfo.originDimensions.value[1],0);E&&(m.stopPosition=E)};h();const u=this.ad(c.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(u.don(h))}{const h=()=>{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((u,p)=>u===this._opInfo.targetPosition.value[p])){this._opInfo.moved.value=!0;return}};h(),this.dispose(this._opInfo.originHeading.changed.disposableOn(h)),this.dispose(this._opInfo.originPosition.changed.disposableOn(h)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(h)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(h))}const o=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(c.createProcessingFromAsyncFunc(async h=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",h.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await c.step(h,async u=>{const p=()=>{const g=[...this.position??bn.defaults.position];e.editingHeightOffset&&(g[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=g};u.disposer.dispose((p(),this.positionChanged.disposableOn(p)));const f={constraintMode:"none",startDragPos:[0,0,0]},m=g=>{if(!this.position)return;const y={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Gd(g,r,y,this.axisSnapPixelSize,f),this._opInfo.constraintMode.value=f.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=f.startDragPos};u.disposer.dispose(e.pointerMoveEvent.disposableOn(g=>{g.pointerEvent&&m(g.pointerEvent)})),await c.step(u,g=>new Promise((y,P)=>{g.disposer.dispose(P),g.disposer.dispose(e.pointerDownEvent.don(S=>{S.pointerEvent&&m(S.pointerEvent),S.pointerEvent&&S.pointerEvent.button===0&&f.constraintMode!=="none"&&y()}))}))}),this._opInfo.step.value=!1,await c.step(h,async u=>{if(e.incrementDisabledInputStack(),u.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const p=w.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),f=w.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);o.restart(void 0,p,f),u.disposer.dispose(()=>o.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),u.disposer.dispose(()=>s.cancel()));await c.step(u,p=>new Promise((f,m)=>{p.disposer.dispose(m),p.disposer.dispose(e.pointerUpEvent.don(()=>{f()})),p.disposer.dispose(e.pointerOutEvent.don(()=>{f()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,n){const r=this.ad(new mr(e));return r.width=10,this.ad(c.track([r,"show"],[this,"enabled"])),r}}(t=>{t.createDefaultProps=()=>({...ai.createDefaultProps(),scale:c.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(bn||(bn={})),c.extendClassProps(bn.prototype,bn.createDefaultProps);const Ro=class Ro extends Nt{constructor(e){super();v(this,"_editingPoints",this.disposeVar(new c.ObservableArray));v(this,"_cancelEvent",this.disposeVar(new c.Event));v(this,"_currentProcess");v(this,"_menuPoiEnabled",this.disposeVar(c.react(!1)));v(this,"_status",this.disposeVar(c.react("None")));v(this,"_positionsChanged",this.ad(new c.Event));v(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:r,deleteCount:o,items:s}of n){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=r;a<r+o;++a)this.editingPoints.get(a).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(c.nextAnimateFrame(()=>{var r;((r=n.pointerEvent)==null?void 0:r.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??Ro.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const n=e||[];return!(n.length===this.editingPoints.length&&n.every((r,o)=>r.every((s,a)=>{const l=this.editingPoints.get(o);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??Ro.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 ke(e));this.ad(c.track([n,"color"],[this,"polylineColor"])),this.ad(c.track([n,"width"],[this,"polylineWidth"])),this.ad(c.track([n,"show"],[this,"polylineShow"])),this.ad(c.track([n,"arcType"],[this,"polylineArcType"])),this.ad(c.track([n,"loop"],[this,"loop"]));{const r=()=>{const o=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,o.push(s);n.positions=o};r(),this.ad(this.positionsChanged.don(r))}}_createCursorInfo(e){const n=this._cursorInfo=this.ad(new c.CursorInfo(e.container,c.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const r=this.status;if(n){if(!this.hideCursorInfo){n.show=!1;return}r==="Adding"?(n.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",n.show=!0):r==="Modifying"||r==="Modifying_Point"?(n.text="Esc键或左键双击:退出编辑状态",n.show=!0):r==="None"&&(n.text="",n.show=!1)}}))}};v(Ro,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),v(Ro,"defaults",{...Nt.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Ro.baseImageUrl+"point-green.png",otherControlPointImageUrl:Ro.baseImageUrl+"point-yellow.png"});let vi=Ro;(t=>{t.createDefaultProps=()=>({...Nt.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})})(vi||(vi={})),c.extendClassProps(vi.prototype,vi.createDefaultProps);let a4=0;class I1 extends c.Destroyable{constructor(e,n){super();v(this,"_position",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_id",a4++);v(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 r=this._menuPoi=this.ad(new Hr(e.czmViewer));r.enabled=!1,this.ad(c.track([r,"show"],[e,"enabled"]));{const o=()=>{if(this.position===void 0){r.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,r.position=s,e.positionsChanged.emit()};o(),this.d(this.positionChanged.don(o))}{const o=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(r.title=`控制点${s}`,s===1?r.imageUri=e.firstControlPointImageUrl??vi.defaults.firstControlPointImageUrl:r.imageUri=e.otherControlPointImageUrl??vi.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 b1 extends I1{constructor(i,e){super(i,e)}}class rt extends vi{constructor(e){super(e);v(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new c.Event));v(this,"placeEditing");if(!e.viewer)return;const n=this.placeEditing=this.ad(new bi(e));n.enabled=!1,this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async r=>{r.disposer.dispose(()=>{(this.debug??rt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??rt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await r.promise(c.step(r,async o=>{const s=o.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await o.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(r=>{var o;((o=r.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(r=>new b1(this,r)):[];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??rt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},n=c.createProcessingFromAsyncFunc(async r=>{let o=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await r.promise(c.step(r,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new l4(this,o)));const u=a.disposer.disposeVar(new h4(this,o));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>u.do())),await a.promise(new Promise(p=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(f=>{f?(o++,p(!0)):p(!1)})),a.disposer.dispose(u.overEvent.disposableOnce(f=>{f?(o--,p(!0)):p(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>p(!1)))}))})))break;while(!0)});return n.start(),n}}(t=>{t.createDefaultProps=()=>({...vi.createDefaultProps()})})(rt||(rt={})),c.extendClassProps(rt.prototype,rt.createDefaultProps);class l4 extends c.Destroyable{constructor(e,n){super();v(this,"_overEvent",this.disposeVar(new c.Event));const{placeEditing:r}=e;let o=new b1(e,void 0);e.editingPoints.splice(n,0,o);const s=()=>{(e.debug??rt.defaults.debug)&&console.log("delete currentPosEditor");const h=e.editingPoints.indexOf(o);if(h===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(h,1)};if(r.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(c.track([o,"position"],[r,"position"])),r.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{r.enabled=!1,!a&&l()}),this.dispose(r.overEvent.disposableOnce(()=>{a=!0,o.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??rt.defaults.debug)&&console.log(`PointAdding creating! index(${n})`),this.dispose(()=>{(e.debug??rt.defaults.debug)&&console.log(`PointAdding destroying! index(${n})`)})}get overEvent(){return this._overEvent}}function c4(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 h4 extends c.Destroyable{constructor(e,n){super();v(this,"_overEvent",this.disposeVar(new c.Event));v(this,"_doEvent",this.disposeVar(new c.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(c4(e,n)))),(e.debug??rt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${n})`),this.dispose(()=>{(e.debug??rt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${n})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class D1 extends rt{constructor(i){super(i),this.loop=!1}}class R1 extends rt{constructor(i){super(i),this.loop=!0}}class Sd extends I1{constructor(i,e){super(i,e);{const{menuPoi:n}=this;n.commands=[["add","增加控制点","",ze.baseImageUrl+"add.png"],["delete","删除当前控制点","",ze.baseImageUrl+"delete.png"],["modify","修改当前控制点","",ze.baseImageUrl+"modify.png"]],n.clickCommandName="modify",n.rightClickCommandName="delete",this.dispose(n.commandEvent.disposableOn(r=>{i.menuPoiCommand(this,r)})),this.dispose(n.dbclickEvent.disposableOn(()=>{i.menuPoiCommand(this,"dbClick")}))}if(i.middlePointShow){const n=this.ad(new Vi(i.czmViewer));{n.imageUri=i.firstControlPointImageUrl??ze.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 r=()=>{if(!(i.enabled??ze.defaults.enabled)){n.enabled=!1,n.show=!1;return}do{const s=i.editingPoints.indexOf(this);if(s===-1)break;const a=i.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(i.loop??ze.defaults.loop)&&s+1>=a)break;const h=this.position;if(!h)break;let u=(s+1)%a;const f=i.editingPoints.get(u).position;if(!f)break;const m=$d(h,f);if(!m)break;m[2]-=i.czmViewer.editingHeightOffset??0,n.position=m;const g=i.editingPoints.length<(i.maxPointsNum??ze.defaults.maxPointsNum);n.enabled=g,n.show=g;return}while(!1);n.enabled=!1,n.show=!1};r(),this.dispose(i.positionsChanged.disposableOn(r)),this.dispose(i.loopChanged.disposableOn(r)),this.dispose(i.enabledChanged.disposableOn(r))}this.dispose(n.clickEvent.disposableOn(r=>{if(r.button!==0||i.editingPoints.length>=(i.maxPointsNum??ze.defaults.maxPointsNum))return;const o=i.editingPoints.indexOf(this);if(o===-1)return;const s=n.position?[...n.position]:void 0;s&&(s[2]+=i.czmViewer.editingHeightOffset??0);let a=new Sd(i,s);i.editingPoints.splice(o+1,0,a),i.modify(a)}))}}}}class ze extends vi{constructor(e){super(e);v(this,"_menuPoiCommand",this.disposeVar(new c.Event));v(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));v(this,"_overEvent",this.disposeVar(new c.Event));v(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 d4(this.editingPoints.get(0),this)}))}const n=this.translationEditing=this.disposeVar(new In(e));n.enabled=!1,this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async r=>{r.disposer.dispose(()=>{(this.debug??ze.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let o=-1;do if((this.debug??ze.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",o=await r.promise(c.step(r,async s=>{const a=s.disposer,l=a.ad(new u4(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(o===-1||o>=this.editingPoints.length?0:o)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(u=>l.modify(u))),await s.promise(new Promise(u=>{a.dispose(l.overEvent.disposableOnce(p=>{u(p)}))}))})),o===-1){(this.debug??ze.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??ze.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??ze.defaults.loop;const a=this.editingPoints.get(o-1).position;if(!a)return;let l=o%this.editingPoints.length;const u=this.editingPoints.get(l).position;if(!u)return;const p=$d(a,u);if(!p)return;p&&(p[2]+=this.czmViewer.editingHeightOffset??0);let f=new Sd(this,p);this.editingPoints.splice(o,0,f)}while(!0);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(r=>new Sd(this,r)):[];return this.editingPoints.splice(0,this.editingPoints.length,...n),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...vi.createDefaultProps(),moveWithFirstPosition:!1})})(ze||(ze={})),c.extendClassProps(ze.prototype,ze.createDefaultProps);class d4 extends c.Destroyable{constructor(i,e){super(),this._firstPositionEditor=i,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((n,r)=>{if(n===void 0||r===void 0)return;var o=[n[0]-r[0],n[1]-r[1],n[2]-r[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),h=l.position;h!==void 0&&(l.position=[h[0]+o[0],h[1]+o[1],h[2]+o[2]])}})}}class u4 extends c.Destroyable{constructor(e){super();v(this,"_overEvent",this.disposeVar(new c.Event));v(this,"_cancelEvent",this.disposeVar(new c.Event));v(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let n;const r=()=>{n==null||n.destroy(),n=void 0,e.status="Modifying"};this.dispose(r);const o=s=>{r(),e.status="Modifying_Point",n=new p4(e,s),n.dispose(n.overEvent.disposableOn(()=>{r()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(o)),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")o(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 p4 extends c.Destroyable{constructor(e,n){super();v(this,"_overEvent",this.disposeVar(new c.Event));this._modifying=e,this._posEditor=n,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:r}=this._modifying;if(r.enabled=!0,r.heading=0,this.dispose(()=>{r.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");r.position=this._posEditor.position,this.dispose(c.track([this._posEditor,"position"],[r,"position"])),this.dispose(r.enabledChanged.disposableOnce(o=>{o||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class x1 extends ze{constructor(i){super(i),this.loop=!1}}class F1 extends ze{constructor(i){super(i),this.loop=!0}}class ks extends rt{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,r=e*Math.cos(n[1]*Math.PI/180),o=w.geoDestination(i,r,n[0]);if(!o){this.positions=[i];return}const s=e*Math.sin(n[1]*Math.PI/180);o[2]+=s,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=w.geoHeading(this.startPosition,this.endPosition),r=w.geoDistance(this.startPosition,this.endPosition);if(r<=0){this.rotation=[90,0,0],this.distance=1;return}const o=this.endPosition[2]-this.startPosition[2],s=Math.atan(o/r)*180/Math.PI,a=Math.sqrt(r*r+o*o);this.rotation=[n,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...rt.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([90,0,0]),distance:c.react(1)})})(ks||(ks={})),c.extendClassProps(ks.prototype,ks.createDefaultProps);class gr extends ze{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,r=e*Math.cos(n[1]*Math.PI/180),o=w.geoDestination(i,r,n[0]);if(!o){this.positions=[i];return}const s=e*Math.sin(n[1]*Math.PI/180);o[2]+=s,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=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",ze.baseImageUrl+"add.png"],["delete","删除当前控制点","",ze.baseImageUrl+"delete.png"],["modify","修改当前控制点","",ze.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",ze.baseImageUrl+"delete.png"],["modify","修改当前控制点","",ze.baseImageUrl+"modify.png"]];const n=w.geoHeading(this.startPosition,this.endPosition),r=w.geoDistance(this.startPosition,this.endPosition);if(Math.abs(r)<=0){this.rotation=[90,0,0],this.distance=1;return}const o=this.endPosition[2]-this.startPosition[2],s=Math.atan(o/r)*180/Math.PI,a=Math.sqrt(r*r+o*o);this.rotation=[n,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...ze.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([0,0,0]),distance:c.react(0)})})(gr||(gr={})),c.extendClassProps(gr.prototype,gr.createDefaultProps);class k1 extends rt{constructor(i){super(i),this.loop=!1,this.polylineShow=!1}}class L1 extends ze{constructor(i){super(i),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Ls extends rt{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(r=>(r[2]-=i.editingHeightOffset??0,[n,r]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(i){const e=this.ad(new Ei(i));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=()=>({...rt.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(Ls||(Ls={})),c.extendClassProps(Ls.prototype,Ls.createDefaultProps);class zs extends ze{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(r=>(r[2]-=i.editingHeightOffset??0,[n,r]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(i){const e=this.ad(new Ei(i));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=()=>({...ze.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(zs||(zs={})),c.extendClassProps(zs.prototype,zs.createDefaultProps);class z1 extends gr{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 Ft extends w.EngineObject{constructor(e,n,r){super(e,n,r??!0);v(this,"_supportEditing",this.disposeVar(c.react(!0)));v(this,"_currentEditing",this.disposeVar(c.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var o;if(this.currentEditing){if(this.currentEditing instanceof rt&&((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 e.points=this.currentEditing.positions;this.currentEditing instanceof bi&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Mc=class Mc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new bi(e));this.ad(e.clickEvent.don(r=>{var o;((o=r.pointerEvent)==null?void 0:o.button)==2&&(n.enabled=!0)}));do{if(Reflect.has(i,"position")){this.ad(c.bind([n,"position"],[i,"position"])),n.enabled=!n.position||w.equalsN3(n.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};v(Mc,"type",Mc.registerEditing("ESCesiumViewer",w.ESJEditingMode.Place,Mc));let tv=Mc;const Ic=class Ic extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new Di(e));n.rotation=[90,0,0],this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(i instanceof w.ES3DTileset){w.registerCreatedEventUpdate(this,i,()=>{const r=e.getEngineObject(i);r&&(this.ad(c.bind([n,"position"],[r.czm3DTiles,"position"])),this.ad(c.bind([n,"selfRotation"],[i,"rotation"])))});break}if(Reflect.has(i,"position")&&Reflect.has(i,"rotation")){this.ad(c.bind([n,"position"],[i,"position"])),this.ad(c.bind([n,"selfRotation"],[i,"rotation"]));break}this.supportEditing=!1}while(!1)}};v(Ic,"type",Ic.registerEditing("ESCesiumViewer",w.ESJEditingMode.Rotation,Ic));let iv=Ic;const bc=class bc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new bn(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"position")&&Reflect.has(i,"scale")){this.ad(c.bind([n,"position"],[i,"position"])),this.ad(c.bind([n,"scale"],[i,"scale"]));break}this.supportEditing=!1}while(!1)}};v(bc,"type",bc.registerEditing("ESCesiumViewer",w.ESJEditingMode.Scale,bc));let nv=bc;const Dc=class Dc extends Ft{constructor(i,e){super(Array.isArray(i)?i[0]:i,e,!0);const n=this.currentEditing=this.ad(new In(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(i)){const r=[];for(let o=0;o<i.length;o++){const s=i[o];Reflect.has(s,"position")?r.push(s.position):s.points&&r.push(...s.points)}n.position=w.getMinMaxCorner(r).center,this.ad(n.positionChanged.disposableOn((o,s)=>{if(!(!o||!s)){var a=Ut({originPosition:s},[o])[0][0];i.forEach(l=>{if(Reflect.has(l,"position")){const h=Ut({originPosition:s},[l.position])[0][0];l.position=Un({originPosition:s},[[h[0]+a[0],h[1]+a[1],h[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const h=Ut({originPosition:s},l.points)[0];l.points=Un({originPosition:s},h.map(u=>[u[0]+a[0],u[1]+a[1],u[2]+a[2]]))[0]}})}}));break}if(Reflect.has(i,"position")){this.ad(c.bind([n,"position"],[i,"position"]));break}if(i instanceof w.ES3DTileset){w.registerCreatedEventUpdate(this,i,()=>{const r=e.getEngineObject(i);this.ad(c.bind([n,"position"],[r.czm3DTiles,"position"]))});break}if(Reflect.has(i,"points")){if(i.points===void 0||i.points.length===0){this.destroy();break}n.position=w.getMinMaxCorner(i.points).center,this.ad(n.positionChanged.disposableOn((r,o)=>{if(r===void 0||o===void 0||i.points===void 0||i.points.length===0){this.destroy();return}var s=Ut({originPosition:o},[r])[0][0];const a=Ut({originPosition:o},i.points)[0];i.points=Un({originPosition:o},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};v(Dc,"type",Dc.registerEditing("ESCesiumViewer",w.ESJEditingMode.Translation,Dc));let Ed=Dc;const Rc=class Rc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new ks(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"position")){this.ad(c.bind([n,"startPosition"],[i,"position"])),this.ad(ht([n,"rotation"],[i,"rotation"]));do{if(Reflect.has(i,"far")){this.ad(c.bind([n,"distance"],[i,"far"]));break}if(Reflect.has(i,"radius")){this.ad(c.bind([n,"distance"],[i,"radius"]));break}if(Reflect.has(i,"distance")){this.ad(c.bind([n,"distance"],[i,"distance"]));break}const r=Be(i.position);if(d.Cartesian3.ZERO.equals(r)||!e.viewer)return;n.distance=an(e.viewer.scene,r,100)??1}while(!1);break}if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1);n.startPosition&&!w.equalsN3(n.startPosition,[0,0,0])&&n.init(),n.enabled=!0}};v(Rc,"type",Rc.registerEditing("ESCesiumViewer",w.ESJEditingMode.DoublePointsAppend,Rc));let ov=Rc;const xc=class xc extends Ft{constructor(i,e){var o;if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new gr(e));do{if(Reflect.has(i,"position")){this.ad(c.bind([n,"startPosition"],[i,"position"])),this.ad(ht([n,"rotation"],[i,"rotation"]));do{if(Reflect.has(i,"far")){this.ad(c.bind([n,"distance"],[i,"far"]));break}if(Reflect.has(i,"radius")){this.ad(c.bind([n,"distance"],[i,"radius"]));break}if(Reflect.has(i,"distance")){this.ad(c.bind([n,"distance"],[i,"distance"]));break}const s=Be(i.position);if(d.Cartesian3.ZERO.equals(s)||!e.viewer)return;n.distance=an(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(i,"points")&&((o=i.points)==null?void 0:o.length)==2){n.moveWithFirstPosition=!1;const s=()=>n.positions=i.points??[];s(),this.ad(i.pointsChanged.don(()=>!n.enabled&&s())),this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1;return}while(!1);n.init(),n.enabled=!0;const r=this.ad(c.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(r.don(()=>{(!n.enabled||!n.startPosition||w.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};v(xc,"type",xc.registerEditing("ESCesiumViewer",w.ESJEditingMode.DoublePointsModify,xc));let rv=xc;const Fc=class Fc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new R1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Fc,"type",Fc.registerEditing("ESCesiumViewer",w.ESJEditingMode.CircularAppend,Fc));let sv=Fc;const kc=class kc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new F1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(kc,"type",kc.registerEditing("ESCesiumViewer",w.ESJEditingMode.CircularInsert,kc));let av=kc;const Lc=class Lc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new D1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Lc,"type",Lc.registerEditing("ESCesiumViewer",w.ESJEditingMode.LineStringAppend,Lc));let lv=Lc;const zc=class zc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new x1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(zc,"type",zc.registerEditing("ESCesiumViewer",w.ESJEditingMode.LineStringInsert,zc));let cv=zc;const Oc=class Oc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new k1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Oc,"type",Oc.registerEditing("ESCesiumViewer",w.ESJEditingMode.ScatterAppend,Oc));let hv=Oc;const Nc=class Nc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new L1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Nc,"type",Nc.registerEditing("ESCesiumViewer",w.ESJEditingMode.ScatterModify,Nc));let dv=Nc;const Vc=class Vc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new Ls(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Vc,"type",Vc.registerEditing("ESCesiumViewer",w.ESJEditingMode.VisibilityAppend,Vc));let uv=Vc;const Uc=class Uc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new zs(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Uc,"type",Uc.registerEditing("ESCesiumViewer",w.ESJEditingMode.VisibilityModify,Uc));let pv=Uc;const Gc=class Gc extends Ft{constructor(i,e){if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new z1(e));do{if(Reflect.has(i,"points")){const o=Reflect.has(i,"extrudedHeight"),s=Reflect.has(i,"height"),a=Reflect.has(i,"perPositionHeight")?i.perPositionHeight:!o,l=i instanceof w.ESClassification||i instanceof w.ESPolygonFence;let h=w.getMinMaxCorner(i.points).center,u=[...h],p=l?i.points[0][2]:0;a?o?u[2]=i.extrudedHeight:u[2]=i.height+p:(s&&(h[2]=i.height),o&&(u[2]=i.extrudedHeight)),n.startPosition=h,n.distance=u[2]-h[2],n.moveWithFirstPosition=!1;let f=[...h];this.ad(n.positionsChanged.don(()=>{n.positions.length===2&&(a?(i.points=i.points.map(m=>[m[0],m[1],m[2]+n.positions[0][2]-f[2]]),o?i.extrudedHeight=n.positions[1][2]:s&&(i.height=n.positions[1][2]-(l?n.positions[0][2]:0))):(s&&(i.height=n.positions[0][2]),o&&(i.extrudedHeight=n.positions[1][2])),f=[...n.positions[0]])}));break}this.supportEditing=!1;return}while(!1);n.init(),n.enabled=!0;const r=this.ad(c.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(r.don(()=>{(!n.enabled||!n.startPosition||w.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};v(Gc,"type",Gc.registerEditing("ESCesiumViewer",w.ESJEditingMode.HeightModify,Gc));let fv=Gc;function O1(){const t=c.createProcessingFromAsyncFunc(async(i,e,n,r,o=!0)=>{const s=Array.isArray(r)?[...r]:[r],a=n.editingID;e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};i.disposer.ad(l),i.disposer.ad(n.toDestroyEvent.don(l)),i.disposer.ad(e.keyDownEvent.don(u=>{u.code=="Escape"&&l()}));let h=0;do{const u=s[h%s.length],p=await c.step(i,async f=>{const m=f.disposer,g=w.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!n.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const y=new g(n,e);if(m.ad(()=>{!y.isDestroyed()&&y.destroy()}),y.supportEditing)e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(S=>{y.isDestroyed()&&S(!1),m.ad(y.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),S(!1)})),o&&(m.ad(e.keyDownEvent.don(C=>{C.code=="Space"&&(console.log(`编辑模式${u}结束`),S(!1))})),m.ad(e.dblclickEvent.don(()=>S(!0))))}))});if(o&&p||!o&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function N1(){const t=c.createProcessingFromAsyncFunc(async(i,e,n,r)=>{e.editingEvent.emit({objectIDs:n.map(a=>a.id.split("_")[0]),editingID:r,type:"start"});const o=()=>{e.editingEvent.emit({objectIDs:n.map(a=>a.id.split("_")[0]),editingID:r,type:"end"}),t.isRunning&&t.cancel()};i.disposer.ad(o),i.disposer.ad(e.keyDownEvent.don(a=>{a.code=="Escape"&&o()}));const s=new Ed(n,e);i.disposer.ad(()=>{!s.isDestroyed()&&s.destroy()}),await i.promise(new Promise(a=>{s.isDestroyed()&&a(),i.disposer.ad(s.toDestroyEvent.don(()=>{console.log("移动结束"),a()})),i.disposer.ad(e.dblclickEvent.don(()=>a()))}))});return t}x.copyright=void 0;try{const t="earthsdk3-cesium",i="3.0.8-beta.6",e="2025-06-19T00:47:05.000Z",n="北京西部世界科技有限公司",r="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",o="468c6a33b6cf9a394b5cc013cf77153920efc031",a=((Date.now()-1750294025e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${i}.${o.slice(0,8)}.${e} (距今${a}个小时)
2840
+ `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},Ue,t)}class s4 extends c.HasOwner{constructor(i){super(i);const{czmViewer:e}=this.owner;let n;this.dispose(()=>this.owner.hoveredPlaneType="none");const r=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(o=>{const s=n=this._getStartInfo(o.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(o=>{n&&n.currentPlaneType!=="none"&&(r.restart(void 0,e,n),n=void 0)})),this.dispose(e.dblclickEvent.disposableOn(o=>{do{const s=this._getStartInfo(o.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[Di.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(c.createProcessingFromAsyncFunc(async(i,e,n)=>{const r=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:s,offsetY:a}=o.pointerEvent,l=[s,a],{currentPlaneType:h}=n;if(h==="none")return;const u=this.owner.getPlane(h);if(!n.currentV)return;const p=u.pick(l);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 m=d.Cartesian3.subtract(p,this.owner.cartesian,new d.Cartesian3);if(d.Cartesian3.normalize(m,m),!u.normal||!u.origin)return;const g=ev(f,m,u.normal),y=ev(u.origin,f,u.normal),P=ev(u.origin,m,u.normal);{const S=[...this.owner.selfRotation];S[Di.rotationNum[h]]=n.startRotation+g,this.owner.selfRotation=S,r.circleStartRotation=y,r.circleEndRotation=P}}})),this.owner.movingPlaneType=n.currentPlaneType,i.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),i.disposer.dispose(()=>{r.circleStartRotation=0,r.circleEndRotation=0}),await c.step(i,o=>new Promise((s,a)=>{o.disposer.dispose(a),o.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),o.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(i,e,n,r,o){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(n).pick(r);if(!l)return;const h=d.Cartesian3.distance(s,l),u=o/4,p=u*3/128;if(!(h>=u-p&&h<=u+p))return;const m=d.Cartesian3.distance(e.camera.positionWC,l);i.currentD2c<=m||(i.currentPlaneType=n,i.currentD2c=m,i.currentV=l,i.startRotation=a[Di.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 r=an(n,this.owner.cartesian,this.owner.pixelSize);if(!r)return;const{offsetX:o,offsetY:s}=i,a=[o,s],l=i.pointerId,h={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(h,n,"heading",a,r),this._pickPlane(h,n,"pitch",a,r),this._pickPlane(h,n,"roll",a,r),h}}function ev(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 r=d.Cartesian3.dot(n,e);let o=Math.acos(d.Cartesian3.dot(t,i))*180/Math.PI;return o=r>0?o:-o,o}const Sr=class Sr extends ai{constructor(e){super();v(this,"_hoveredPlaneType",this.disposeVar(c.react("none")));v(this,"_movingPlaneType",this.disposeVar(c.react("none")));v(this,"_circles");v(this,"_czmCameraModel");v(this,"_cartesian");v(this,"_planes",{heading:this.disposeVar(new t4(this)),pitch:this.disposeVar(new i4(this)),roll:this.disposeVar(new n4(this))});v(this,"_rotatorRunningResetting");this._czmViewer=e;const n=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new c.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new s4(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&&Be(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 Ct(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"],n=>n*.1)),this.dispose(c.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(c.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const n=()=>{const r=Ve({rotation:this.selfRotation});if(!r)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=d.Matrix4.toArray(r))};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 r=this.ad(new Fs(e));this.dispose(c.track([r,"position"],[this,"position"])),this.dispose(c.track([r,"pixelSize"],[this,"pixelSize"])),this.dispose(c.track([r,"debug"],[this,"debug"])),this.dispose(c.track([r,"rotation"],[this,"rotation"]));{const o=()=>{r.selfRotation=Sr.rotationFuncs[n](this.selfRotation),r.circleRotation=this.selfRotation[Sr.rotationNum[n]]};o(),this.dispose(this.selfRotationChanged.disposableOn(o))}{const o=()=>{const s=this.movingPlaneType===n,a=this.hoveredPlaneType===n,h=[0,0,0,s||a?1:.8];h[Sr.rotationNum[n]]=1,r.color=h};o(),this.dispose(this.movingPlaneTypeChanged.disposableOn(o)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(o))}return r}};v(Sr,"rotationNum",{heading:0,pitch:1,roll:2}),v(Sr,"rotationFuncs",{heading:([e,n,r])=>[0,0,0],pitch:([e,n,r])=>[e,0,-90],roll:([e,n,r])=>[e,n+90,0]});let Di=Sr;(t=>{t.createDefaultProps=()=>({...ai.createDefaultProps(),rotation:c.reactArray([0,0,0]),selfRotation:c.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(Di||(Di={})),c.extendClassProps(Di.prototype,Di.createDefaultProps);const Er=class Er extends c.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(i){this.positions=[i??Er.defaults.positions[0],this.stopPosition??Er.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(i){this.positions=[this.startPosition??Er.defaults.positions[0],i??Er.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(i,e){if(super(),!i.viewer)return;const r=this.ad(new ke(i,e));r.arcType="RHUMB";const o=this.ad(new pi(i,e));this.ad(c.track([r,"allowPicking"],[this,"allowPicking"])),this.ad(c.track([o,"allowPicking"],[this,"allowPicking"]));{const s=()=>{r.show=o.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{r.width=this.width/2,o.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{r.color=o.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{r.positions=this.positions,o.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};v(Er,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let mr=Er;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:c.reactPositions(t.defaults.positions),width:10,color:c.reactArray([1,0,0,1])})})(mr||(mr={})),c.extendClassProps(mr.prototype,mr.createDefaultProps);class bn extends ai{constructor(e){super();v(this,"_lastPosition");v(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))});v(this,"_scaleAxis");v(this,"_pickingXYProcessing",e=>this.disposeVar(new c.Processing((n,r,o)=>{const s=[0,0,0],a=new d.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const h=Ci(c.getDomEventCurrentTargetPos(l.pointerEvent));if(!Ir(e.viewer.scene,h,this._opInfo.originPosition.value[2],a))return;Tr(a,s),this._opInfo.constraintMode.value==="x"?Fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?Fo(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 u=[0,0,0];w.geoRhumbDestination(s,o,r,u),this._opInfo.targetPosition.value=u;let p=this.scale[0],f=this.scale[1];const m=w.geoDistance(u,this._opInfo.originPosition.value)-w.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...u];const g=this._opInfo.originDimensions.value[0]/100;m!=0&&this._opInfo.constraintMode.value==="y"&&(m>0?p+=g:p-=g),m!=0&&this._opInfo.constraintMode.value==="x"&&(m>0?f+=g:f-=g),p<=0&&(p+=g),f<=0&&(f+=g),this.scale=[p??1,f??1,this.scale[2]??1]})})));v(this,"_pickingZProcessing",e=>this.disposeVar(new c.Processing(()=>{const n=new d.Cartesian3,r=[0,0,0];return e.pointerMoveEvent.disposableOn(o=>{if(!o.pointerEvent||!e.viewer)return;const s=Ci(c.getDomEventCurrentTargetPos(o.pointerEvent));if(!Xc(e.viewer.scene,Be(this._opInfo.originPosition.value),s,n))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(pe(n,r)){this._opInfo.movingPosition.value=r;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],r[2]+a];let h=this.scale[2];const u=r[2]-this._lastPosition[2];this._lastPosition=[...r];const p=this._opInfo.originDimensions.value[0]/100;u!=0&&(u>0?h+=p:h-=p),h<=0&&(h+=p),this.scale=[this.scale[0]??1,this.scale[1]??1,h??1]}})})));const n=e.viewer;if(!n)return;const{scene:r}=n;this.ad(new jd(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 h=()=>{if(!this._scaleAxis)return;const{zAxis:u,yAxis:p,xAxis:f}=this._scaleAxis,m=this._opInfo.constraintMode.value,g=this._opInfo.step;u.color=[0,0,1,.99],p.color=[0,1,0,.99],f.color=[1,0,0,.99],m==="x"?f.color=g?[1,1,0,.8]:[1,1,0,.99]:m==="y"?p.color=g?[1,1,0,.8]:[1,1,0,.99]:m==="z"&&(u.color=g?[1,1,0,.8]:[1,1,0,.99])};h(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(h)),this.dispose(this._opInfo.step.changed.disposableOn(h))}{const h=()=>{if(!this._scaleAxis)return;const{position:p=bn.defaults.position}=this,{zAxis:f,yAxis:m,xAxis:g}=this._scaleAxis;f.startPosition=m.startPosition=g.startPosition=p;const[y,P,S]=p;f.stopPosition=[y,P,S+this._opInfo.originDimensions.value[2]];const C=w.geoRhumbDestination(p,this._opInfo.originDimensions.value[0],90);C&&(g.stopPosition=C);const E=w.geoRhumbDestination(p,this._opInfo.originDimensions.value[1],0);E&&(m.stopPosition=E)};h();const u=this.ad(c.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(u.don(h))}{const h=()=>{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((u,p)=>u===this._opInfo.targetPosition.value[p])){this._opInfo.moved.value=!0;return}};h(),this.dispose(this._opInfo.originHeading.changed.disposableOn(h)),this.dispose(this._opInfo.originPosition.changed.disposableOn(h)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(h)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(h))}const o=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(c.createProcessingFromAsyncFunc(async h=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",h.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await c.step(h,async u=>{const p=()=>{const g=[...this.position??bn.defaults.position];e.editingHeightOffset&&(g[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=g};u.disposer.dispose((p(),this.positionChanged.disposableOn(p)));const f={constraintMode:"none",startDragPos:[0,0,0]},m=g=>{if(!this.position)return;const y={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Gd(g,r,y,this.axisSnapPixelSize,f),this._opInfo.constraintMode.value=f.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=f.startDragPos};u.disposer.dispose(e.pointerMoveEvent.disposableOn(g=>{g.pointerEvent&&m(g.pointerEvent)})),await c.step(u,g=>new Promise((y,P)=>{g.disposer.dispose(P),g.disposer.dispose(e.pointerDownEvent.don(S=>{S.pointerEvent&&m(S.pointerEvent),S.pointerEvent&&S.pointerEvent.button===0&&f.constraintMode!=="none"&&y()}))}))}),this._opInfo.step.value=!1,await c.step(h,async u=>{if(e.incrementDisabledInputStack(),u.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const p=w.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),f=w.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);o.restart(void 0,p,f),u.disposer.dispose(()=>o.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),u.disposer.dispose(()=>s.cancel()));await c.step(u,p=>new Promise((f,m)=>{p.disposer.dispose(m),p.disposer.dispose(e.pointerUpEvent.don(()=>{f()})),p.disposer.dispose(e.pointerOutEvent.don(()=>{f()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,n){const r=this.ad(new mr(e));return r.width=10,this.ad(c.track([r,"show"],[this,"enabled"])),r}}(t=>{t.createDefaultProps=()=>({...ai.createDefaultProps(),scale:c.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(bn||(bn={})),c.extendClassProps(bn.prototype,bn.createDefaultProps);const Ro=class Ro extends Nt{constructor(e){super();v(this,"_editingPoints",this.disposeVar(new c.ObservableArray));v(this,"_cancelEvent",this.disposeVar(new c.Event));v(this,"_currentProcess");v(this,"_menuPoiEnabled",this.disposeVar(c.react(!1)));v(this,"_status",this.disposeVar(c.react("None")));v(this,"_positionsChanged",this.ad(new c.Event));v(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:r,deleteCount:o,items:s}of n){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=r;a<r+o;++a)this.editingPoints.get(a).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(c.nextAnimateFrame(()=>{var r;((r=n.pointerEvent)==null?void 0:r.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??Ro.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const n=e||[];return!(n.length===this.editingPoints.length&&n.every((r,o)=>r.every((s,a)=>{const l=this.editingPoints.get(o);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??Ro.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 ke(e));this.ad(c.track([n,"color"],[this,"polylineColor"])),this.ad(c.track([n,"width"],[this,"polylineWidth"])),this.ad(c.track([n,"show"],[this,"polylineShow"])),this.ad(c.track([n,"arcType"],[this,"polylineArcType"])),this.ad(c.track([n,"loop"],[this,"loop"]));{const r=()=>{const o=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,o.push(s);n.positions=o};r(),this.ad(this.positionsChanged.don(r))}}_createCursorInfo(e){const n=this._cursorInfo=this.ad(new c.CursorInfo(e.container,c.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const r=this.status;if(n){if(!this.hideCursorInfo){n.show=!1;return}r==="Adding"?(n.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",n.show=!0):r==="Modifying"||r==="Modifying_Point"?(n.text="Esc键或左键双击:退出编辑状态",n.show=!0):r==="None"&&(n.text="",n.show=!1)}}))}};v(Ro,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),v(Ro,"defaults",{...Nt.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Ro.baseImageUrl+"point-green.png",otherControlPointImageUrl:Ro.baseImageUrl+"point-yellow.png"});let vi=Ro;(t=>{t.createDefaultProps=()=>({...Nt.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})})(vi||(vi={})),c.extendClassProps(vi.prototype,vi.createDefaultProps);let a4=0;class I1 extends c.Destroyable{constructor(e,n){super();v(this,"_position",this.disposeVar(c.reactArrayWithUndefined(void 0)));v(this,"_id",a4++);v(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 r=this._menuPoi=this.ad(new Hr(e.czmViewer));r.enabled=!1,this.ad(c.track([r,"show"],[e,"enabled"]));{const o=()=>{if(this.position===void 0){r.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,r.position=s,e.positionsChanged.emit()};o(),this.d(this.positionChanged.don(o))}{const o=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(r.title=`控制点${s}`,s===1?r.imageUri=e.firstControlPointImageUrl??vi.defaults.firstControlPointImageUrl:r.imageUri=e.otherControlPointImageUrl??vi.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 b1 extends I1{constructor(i,e){super(i,e)}}class rt extends vi{constructor(e){super(e);v(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new c.Event));v(this,"placeEditing");if(!e.viewer)return;const n=this.placeEditing=this.ad(new bi(e));n.enabled=!1,this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async r=>{r.disposer.dispose(()=>{(this.debug??rt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??rt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await r.promise(c.step(r,async o=>{const s=o.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await o.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(r=>{var o;((o=r.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(r=>new b1(this,r)):[];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??rt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},n=c.createProcessingFromAsyncFunc(async r=>{let o=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await r.promise(c.step(r,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new l4(this,o)));const u=a.disposer.disposeVar(new h4(this,o));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>u.do())),await a.promise(new Promise(p=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(f=>{f?(o++,p(!0)):p(!1)})),a.disposer.dispose(u.overEvent.disposableOnce(f=>{f?(o--,p(!0)):p(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>p(!1)))}))})))break;while(!0)});return n.start(),n}}(t=>{t.createDefaultProps=()=>({...vi.createDefaultProps()})})(rt||(rt={})),c.extendClassProps(rt.prototype,rt.createDefaultProps);class l4 extends c.Destroyable{constructor(e,n){super();v(this,"_overEvent",this.disposeVar(new c.Event));const{placeEditing:r}=e;let o=new b1(e,void 0);e.editingPoints.splice(n,0,o);const s=()=>{(e.debug??rt.defaults.debug)&&console.log("delete currentPosEditor");const h=e.editingPoints.indexOf(o);if(h===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(h,1)};if(r.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(c.track([o,"position"],[r,"position"])),r.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{r.enabled=!1,!a&&l()}),this.dispose(r.overEvent.disposableOnce(()=>{a=!0,o.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??rt.defaults.debug)&&console.log(`PointAdding creating! index(${n})`),this.dispose(()=>{(e.debug??rt.defaults.debug)&&console.log(`PointAdding destroying! index(${n})`)})}get overEvent(){return this._overEvent}}function c4(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 h4 extends c.Destroyable{constructor(e,n){super();v(this,"_overEvent",this.disposeVar(new c.Event));v(this,"_doEvent",this.disposeVar(new c.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(c4(e,n)))),(e.debug??rt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${n})`),this.dispose(()=>{(e.debug??rt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${n})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class D1 extends rt{constructor(i){super(i),this.loop=!1}}class R1 extends rt{constructor(i){super(i),this.loop=!0}}class Sd extends I1{constructor(i,e){super(i,e);{const{menuPoi:n}=this;n.commands=[["add","增加控制点","",ze.baseImageUrl+"add.png"],["delete","删除当前控制点","",ze.baseImageUrl+"delete.png"],["modify","修改当前控制点","",ze.baseImageUrl+"modify.png"]],n.clickCommandName="modify",n.rightClickCommandName="delete",this.dispose(n.commandEvent.disposableOn(r=>{i.menuPoiCommand(this,r)})),this.dispose(n.dbclickEvent.disposableOn(()=>{i.menuPoiCommand(this,"dbClick")}))}if(i.middlePointShow){const n=this.ad(new Vi(i.czmViewer));{n.imageUri=i.firstControlPointImageUrl??ze.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 r=()=>{if(!(i.enabled??ze.defaults.enabled)){n.enabled=!1,n.show=!1;return}do{const s=i.editingPoints.indexOf(this);if(s===-1)break;const a=i.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(i.loop??ze.defaults.loop)&&s+1>=a)break;const h=this.position;if(!h)break;let u=(s+1)%a;const f=i.editingPoints.get(u).position;if(!f)break;const m=$d(h,f);if(!m)break;m[2]-=i.czmViewer.editingHeightOffset??0,n.position=m;const g=i.editingPoints.length<(i.maxPointsNum??ze.defaults.maxPointsNum);n.enabled=g,n.show=g;return}while(!1);n.enabled=!1,n.show=!1};r(),this.dispose(i.positionsChanged.disposableOn(r)),this.dispose(i.loopChanged.disposableOn(r)),this.dispose(i.enabledChanged.disposableOn(r))}this.dispose(n.clickEvent.disposableOn(r=>{if(r.button!==0||i.editingPoints.length>=(i.maxPointsNum??ze.defaults.maxPointsNum))return;const o=i.editingPoints.indexOf(this);if(o===-1)return;const s=n.position?[...n.position]:void 0;s&&(s[2]+=i.czmViewer.editingHeightOffset??0);let a=new Sd(i,s);i.editingPoints.splice(o+1,0,a),i.modify(a)}))}}}}class ze extends vi{constructor(e){super(e);v(this,"_menuPoiCommand",this.disposeVar(new c.Event));v(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));v(this,"_overEvent",this.disposeVar(new c.Event));v(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 d4(this.editingPoints.get(0),this)}))}const n=this.translationEditing=this.disposeVar(new In(e));n.enabled=!1,this.currentProcess=this.disposeVar(c.createProcessingFromAsyncFunc(async r=>{r.disposer.dispose(()=>{(this.debug??ze.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let o=-1;do if((this.debug??ze.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",o=await r.promise(c.step(r,async s=>{const a=s.disposer,l=a.ad(new u4(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(o===-1||o>=this.editingPoints.length?0:o)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(u=>l.modify(u))),await s.promise(new Promise(u=>{a.dispose(l.overEvent.disposableOnce(p=>{u(p)}))}))})),o===-1){(this.debug??ze.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??ze.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??ze.defaults.loop;const a=this.editingPoints.get(o-1).position;if(!a)return;let l=o%this.editingPoints.length;const u=this.editingPoints.get(l).position;if(!u)return;const p=$d(a,u);if(!p)return;p&&(p[2]+=this.czmViewer.editingHeightOffset??0);let f=new Sd(this,p);this.editingPoints.splice(o,0,f)}while(!0);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(r=>new Sd(this,r)):[];return this.editingPoints.splice(0,this.editingPoints.length,...n),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...vi.createDefaultProps(),moveWithFirstPosition:!1})})(ze||(ze={})),c.extendClassProps(ze.prototype,ze.createDefaultProps);class d4 extends c.Destroyable{constructor(i,e){super(),this._firstPositionEditor=i,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((n,r)=>{if(n===void 0||r===void 0)return;var o=[n[0]-r[0],n[1]-r[1],n[2]-r[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),h=l.position;h!==void 0&&(l.position=[h[0]+o[0],h[1]+o[1],h[2]+o[2]])}})}}class u4 extends c.Destroyable{constructor(e){super();v(this,"_overEvent",this.disposeVar(new c.Event));v(this,"_cancelEvent",this.disposeVar(new c.Event));v(this,"_forceModifyPosEditorEvent",this.disposeVar(new c.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let n;const r=()=>{n==null||n.destroy(),n=void 0,e.status="Modifying"};this.dispose(r);const o=s=>{r(),e.status="Modifying_Point",n=new p4(e,s),n.dispose(n.overEvent.disposableOn(()=>{r()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(o)),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")o(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 p4 extends c.Destroyable{constructor(e,n){super();v(this,"_overEvent",this.disposeVar(new c.Event));this._modifying=e,this._posEditor=n,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:r}=this._modifying;if(r.enabled=!0,r.heading=0,this.dispose(()=>{r.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");r.position=this._posEditor.position,this.dispose(c.track([this._posEditor,"position"],[r,"position"])),this.dispose(r.enabledChanged.disposableOnce(o=>{o||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class x1 extends ze{constructor(i){super(i),this.loop=!1}}class F1 extends ze{constructor(i){super(i),this.loop=!0}}class ks extends rt{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,r=e*Math.cos(n[1]*Math.PI/180),o=w.geoDestination(i,r,n[0]);if(!o){this.positions=[i];return}const s=e*Math.sin(n[1]*Math.PI/180);o[2]+=s,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=w.geoHeading(this.startPosition,this.endPosition),r=w.geoDistance(this.startPosition,this.endPosition);if(r<=0){this.rotation=[90,0,0],this.distance=1;return}const o=this.endPosition[2]-this.startPosition[2],s=Math.atan(o/r)*180/Math.PI,a=Math.sqrt(r*r+o*o);this.rotation=[n,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...rt.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([90,0,0]),distance:c.react(1)})})(ks||(ks={})),c.extendClassProps(ks.prototype,ks.createDefaultProps);class gr extends ze{init(){const i=this.startPosition;if(!i)return;const e=this.distance,n=this.rotation,r=e*Math.cos(n[1]*Math.PI/180),o=w.geoDestination(i,r,n[0]);if(!o){this.positions=[i];return}const s=e*Math.sin(n[1]*Math.PI/180);o[2]+=s,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=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",ze.baseImageUrl+"add.png"],["delete","删除当前控制点","",ze.baseImageUrl+"delete.png"],["modify","修改当前控制点","",ze.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",ze.baseImageUrl+"delete.png"],["modify","修改当前控制点","",ze.baseImageUrl+"modify.png"]];const n=w.geoHeading(this.startPosition,this.endPosition),r=w.geoDistance(this.startPosition,this.endPosition);if(Math.abs(r)<=0){this.rotation=[90,0,0],this.distance=1;return}const o=this.endPosition[2]-this.startPosition[2],s=Math.atan(o/r)*180/Math.PI,a=Math.sqrt(r*r+o*o);this.rotation=[n,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...ze.createDefaultProps(),startPosition:c.reactArrayWithUndefined(void 0),endPosition:c.reactArrayWithUndefined(void 0),rotation:c.reactArray([0,0,0]),distance:c.react(0)})})(gr||(gr={})),c.extendClassProps(gr.prototype,gr.createDefaultProps);class k1 extends rt{constructor(i){super(i),this.loop=!1,this.polylineShow=!1}}class L1 extends ze{constructor(i){super(i),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Ls extends rt{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(r=>(r[2]-=i.editingHeightOffset??0,[n,r]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(i){const e=this.ad(new Ei(i));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=()=>({...rt.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(Ls||(Ls={})),c.extendClassProps(Ls.prototype,Ls.createDefaultProps);class zs extends ze{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(r=>(r[2]-=i.editingHeightOffset??0,[n,r]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(i){const e=this.ad(new Ei(i));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=()=>({...ze.createDefaultProps(),visibilityPositions:c.reactPositionsSet(void 0)})})(zs||(zs={})),c.extendClassProps(zs.prototype,zs.createDefaultProps);class z1 extends gr{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 Ft extends w.EngineObject{constructor(e,n,r){super(e,n,r??!0);v(this,"_supportEditing",this.disposeVar(c.react(!0)));v(this,"_currentEditing",this.disposeVar(c.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var o;if(this.currentEditing){if(this.currentEditing instanceof rt&&((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 e.points=this.currentEditing.positions;this.currentEditing instanceof bi&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Mc=class Mc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new bi(e));this.ad(e.clickEvent.don(r=>{var o;((o=r.pointerEvent)==null?void 0:o.button)==2&&(n.enabled=!0)}));do{if(Reflect.has(i,"position")){this.ad(c.bind([n,"position"],[i,"position"])),n.enabled=!n.position||w.equalsN3(n.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};v(Mc,"type",Mc.registerEditing("ESCesiumViewer",w.ESJEditingMode.Place,Mc));let tv=Mc;const Ic=class Ic extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new Di(e));n.rotation=[90,0,0],this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(i instanceof w.ES3DTileset){w.registerCreatedEventUpdate(this,i,()=>{const r=e.getEngineObject(i);r&&(this.ad(c.bind([n,"position"],[r.czm3DTiles,"position"])),this.ad(c.bind([n,"selfRotation"],[i,"rotation"])))});break}if(Reflect.has(i,"position")&&Reflect.has(i,"rotation")){this.ad(c.bind([n,"position"],[i,"position"])),this.ad(c.bind([n,"selfRotation"],[i,"rotation"]));break}this.supportEditing=!1}while(!1)}};v(Ic,"type",Ic.registerEditing("ESCesiumViewer",w.ESJEditingMode.Rotation,Ic));let iv=Ic;const bc=class bc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new bn(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"position")&&Reflect.has(i,"scale")){this.ad(c.bind([n,"position"],[i,"position"])),this.ad(c.bind([n,"scale"],[i,"scale"]));break}this.supportEditing=!1}while(!1)}};v(bc,"type",bc.registerEditing("ESCesiumViewer",w.ESJEditingMode.Scale,bc));let nv=bc;const Dc=class Dc extends Ft{constructor(i,e){super(Array.isArray(i)?i[0]:i,e,!0);const n=this.currentEditing=this.ad(new In(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(i)){const r=[];for(let o=0;o<i.length;o++){const s=i[o];Reflect.has(s,"position")?r.push(s.position):s.points&&r.push(...s.points)}n.position=w.getMinMaxCorner(r).center,this.ad(n.positionChanged.disposableOn((o,s)=>{if(!(!o||!s)){var a=Ut({originPosition:s},[o])[0][0];i.forEach(l=>{if(Reflect.has(l,"position")){const h=Ut({originPosition:s},[l.position])[0][0];l.position=Un({originPosition:s},[[h[0]+a[0],h[1]+a[1],h[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const h=Ut({originPosition:s},l.points)[0];l.points=Un({originPosition:s},h.map(u=>[u[0]+a[0],u[1]+a[1],u[2]+a[2]]))[0]}})}}));break}if(Reflect.has(i,"position")){this.ad(c.bind([n,"position"],[i,"position"]));break}if(i instanceof w.ES3DTileset){w.registerCreatedEventUpdate(this,i,()=>{const r=e.getEngineObject(i);this.ad(c.bind([n,"position"],[r.czm3DTiles,"position"]))});break}if(Reflect.has(i,"points")){if(i.points===void 0||i.points.length===0){this.destroy();break}n.position=w.getMinMaxCorner(i.points).center,this.ad(n.positionChanged.disposableOn((r,o)=>{if(r===void 0||o===void 0||i.points===void 0||i.points.length===0){this.destroy();return}var s=Ut({originPosition:o},[r])[0][0];const a=Ut({originPosition:o},i.points)[0];i.points=Un({originPosition:o},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};v(Dc,"type",Dc.registerEditing("ESCesiumViewer",w.ESJEditingMode.Translation,Dc));let Ed=Dc;const Rc=class Rc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new ks(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"position")){this.ad(c.bind([n,"startPosition"],[i,"position"])),this.ad(ht([n,"rotation"],[i,"rotation"]));do{if(Reflect.has(i,"far")){this.ad(c.bind([n,"distance"],[i,"far"]));break}if(Reflect.has(i,"radius")){this.ad(c.bind([n,"distance"],[i,"radius"]));break}if(Reflect.has(i,"distance")){this.ad(c.bind([n,"distance"],[i,"distance"]));break}const r=Be(i.position);if(d.Cartesian3.ZERO.equals(r)||!e.viewer)return;n.distance=an(e.viewer.scene,r,100)??1}while(!1);break}if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1);n.startPosition&&!w.equalsN3(n.startPosition,[0,0,0])&&n.init(),n.enabled=!0}};v(Rc,"type",Rc.registerEditing("ESCesiumViewer",w.ESJEditingMode.DoublePointsAppend,Rc));let ov=Rc;const xc=class xc extends Ft{constructor(i,e){var o;if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new gr(e));do{if(Reflect.has(i,"position")){this.ad(c.bind([n,"startPosition"],[i,"position"])),this.ad(ht([n,"rotation"],[i,"rotation"]));do{if(Reflect.has(i,"far")){this.ad(c.bind([n,"distance"],[i,"far"]));break}if(Reflect.has(i,"radius")){this.ad(c.bind([n,"distance"],[i,"radius"]));break}if(Reflect.has(i,"distance")){this.ad(c.bind([n,"distance"],[i,"distance"]));break}const s=Be(i.position);if(d.Cartesian3.ZERO.equals(s)||!e.viewer)return;n.distance=an(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(i,"points")&&((o=i.points)==null?void 0:o.length)==2){n.moveWithFirstPosition=!1;const s=()=>n.positions=i.points??[];s(),this.ad(i.pointsChanged.don(()=>!n.enabled&&s())),this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1;return}while(!1);n.init(),n.enabled=!0;const r=this.ad(c.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(r.don(()=>{(!n.enabled||!n.startPosition||w.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};v(xc,"type",xc.registerEditing("ESCesiumViewer",w.ESJEditingMode.DoublePointsModify,xc));let rv=xc;const Fc=class Fc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new R1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Fc,"type",Fc.registerEditing("ESCesiumViewer",w.ESJEditingMode.CircularAppend,Fc));let sv=Fc;const kc=class kc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new F1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(kc,"type",kc.registerEditing("ESCesiumViewer",w.ESJEditingMode.CircularInsert,kc));let av=kc;const Lc=class Lc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new D1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Lc,"type",Lc.registerEditing("ESCesiumViewer",w.ESJEditingMode.LineStringAppend,Lc));let lv=Lc;const zc=class zc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new x1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(zc,"type",zc.registerEditing("ESCesiumViewer",w.ESJEditingMode.LineStringInsert,zc));let cv=zc;const Oc=class Oc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new k1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Oc,"type",Oc.registerEditing("ESCesiumViewer",w.ESJEditingMode.ScatterAppend,Oc));let hv=Oc;const Nc=class Nc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new L1(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Nc,"type",Nc.registerEditing("ESCesiumViewer",w.ESJEditingMode.ScatterModify,Nc));let dv=Nc;const Vc=class Vc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new Ls(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Vc,"type",Vc.registerEditing("ESCesiumViewer",w.ESJEditingMode.VisibilityAppend,Vc));let uv=Vc;const Uc=class Uc extends Ft{constructor(i,e){super(i,e,!0);const n=this.currentEditing=this.ad(new zs(e));this.ad(n.enabledChanged.don(r=>{!r&&this.ad(c.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(i,"points")){const r=()=>n.positions=i.points??[];r(),this.ad(i.pointsChanged.don(()=>!n.enabled&&r())),n.enabled=!0,this.ad(c.track([i,"points"],[n,"positions"]));break}this.supportEditing=!1}while(!1)}};v(Uc,"type",Uc.registerEditing("ESCesiumViewer",w.ESJEditingMode.VisibilityModify,Uc));let pv=Uc;const Gc=class Gc extends Ft{constructor(i,e){if(super(i,e,!0),!e.viewer)return;const n=this.currentEditing=this.ad(new z1(e));do{if(Reflect.has(i,"points")){const o=Reflect.has(i,"extrudedHeight"),s=Reflect.has(i,"height"),a=Reflect.has(i,"perPositionHeight")?i.perPositionHeight:!o,l=i instanceof w.ESClassification||i instanceof w.ESPolygonFence;let h=w.getMinMaxCorner(i.points).center,u=[...h],p=l?i.points[0][2]:0;a?o?u[2]=i.extrudedHeight:u[2]=i.height+p:(s&&(h[2]=i.height),o&&(u[2]=i.extrudedHeight)),n.startPosition=h,n.distance=u[2]-h[2],n.moveWithFirstPosition=!1;let f=[...h];this.ad(n.positionsChanged.don(()=>{n.positions.length===2&&(a?(i.points=i.points.map(m=>[m[0],m[1],m[2]+n.positions[0][2]-f[2]]),o?i.extrudedHeight=n.positions[1][2]:s&&(i.height=n.positions[1][2]-(l?n.positions[0][2]:0))):(s&&(i.height=n.positions[0][2]),o&&(i.extrudedHeight=n.positions[1][2])),f=[...n.positions[0]])}));break}this.supportEditing=!1;return}while(!1);n.init(),n.enabled=!0;const r=this.ad(c.createNextAnimateFrameEvent(n.enabledChanged,n.startPositionChanged));this.ad(r.don(()=>{(!n.enabled||!n.startPosition||w.equalsN3(n.startPosition,[0,0,0]))&&this.destroy()}))}};v(Gc,"type",Gc.registerEditing("ESCesiumViewer",w.ESJEditingMode.HeightModify,Gc));let fv=Gc;function O1(){const t=c.createProcessingFromAsyncFunc(async(i,e,n,r,o=!0)=>{const s=Array.isArray(r)?[...r]:[r],a=n.editingID;e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};i.disposer.ad(l),i.disposer.ad(n.toDestroyEvent.don(l)),i.disposer.ad(e.keyDownEvent.don(u=>{u.code=="Escape"&&l()}));let h=0;do{const u=s[h%s.length],p=await c.step(i,async f=>{const m=f.disposer,g=w.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!n.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const y=new g(n,e);if(m.ad(()=>{!y.isDestroyed()&&y.destroy()}),y.supportEditing)e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[n.id.split("_")[0]],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(S=>{y.isDestroyed()&&S(!1),m.ad(y.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),S(!1)})),o&&(m.ad(e.keyDownEvent.don(C=>{C.code=="Space"&&(console.log(`编辑模式${u}结束`),S(!1))})),m.ad(e.dblclickEvent.don(()=>S(!0))))}))});if(o&&p||!o&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function N1(){const t=c.createProcessingFromAsyncFunc(async(i,e,n,r)=>{e.editingEvent.emit({objectIDs:n.map(a=>a.id.split("_")[0]),editingID:r,type:"start"});const o=()=>{e.editingEvent.emit({objectIDs:n.map(a=>a.id.split("_")[0]),editingID:r,type:"end"}),t.isRunning&&t.cancel()};i.disposer.ad(o),i.disposer.ad(e.keyDownEvent.don(a=>{a.code=="Escape"&&o()}));const s=new Ed(n,e);i.disposer.ad(()=>{!s.isDestroyed()&&s.destroy()}),await i.promise(new Promise(a=>{s.isDestroyed()&&a(),i.disposer.ad(s.toDestroyEvent.don(()=>{console.log("移动结束"),a()})),i.disposer.ad(e.dblclickEvent.don(()=>a()))}))});return t}x.copyright=void 0;try{const t="earthsdk3-cesium",i="3.0.8-beta.7",e="2025-06-19T00:47:05.000Z",n="北京西部世界科技有限公司",r="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",o="468c6a33b6cf9a394b5cc013cf77153920efc031",a=((Date.now()-1750294025e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${i}.${o.slice(0,8)}.${e} (距今${a}个小时)
2841
2841
  %c${r?r+`
2842
2842
  `:""}当前网站正在使用${t},此软件版权归${n}所有
2843
- `;x.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","468c6a33b6cf9a394b5cc013cf77153920efc031")},get info(){return l},get date(){return"2025-06-19T00:47:05.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.6"},get name(){return"earthsdk3-cesium"},get commitId(){return"468c6a33b6cf9a394b5cc013cf77153920efc031"},print(){console.info(this.info,`
2843
+ `;x.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","468c6a33b6cf9a394b5cc013cf77153920efc031")},get info(){return l},get date(){return"2025-06-19T00:47:05.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.7"},get name(){return"earthsdk3-cesium"},get commitId(){return"468c6a33b6cf9a394b5cc013cf77153920efc031"},print(){console.info(this.info,`
2844
2844
  font-size: 18px;
2845
2845
  font-weight: 1000;
2846
2846
  line-height: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "earthsdk3-cesium",
3
- "version": "3.0.8-beta.6",
3
+ "version": "3.0.8-beta.7",
4
4
  "description": "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",
5
5
  "type": "module",
6
6
  "main": "./dist/earthsdk3-cesium.umd.cjs",
@@ -37,7 +37,7 @@
37
37
  "peerDependencies": {
38
38
  "cesium": "1.130",
39
39
  "earthsdk3": "workspace:*",
40
- "xbsj-base": "1.0.1"
40
+ "xbsj-base": "1.0.3"
41
41
  },
42
42
  "dependencies": {
43
43
  "@types/delaunator": "^5.0.2",