earthsdk3-cesium 3.0.8-beta.7 → 3.0.8-beta.8
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.
- package/dist/earthsdk3-cesium.iife.js +2 -2
- package/dist/earthsdk3-cesium.js +5 -5
- package/dist/earthsdk3-cesium.umd.cjs +2 -2
- package/package.json +2 -2
- package/dist/types/CzmObjects/base/InnerClass/XbsjGroundPolylinePrimitive/GroundPolylinePrimitive.d.ts +0 -148
- package/dist/types/CzmObjects/general/CzmESSignalTransmission/XbsjPolyline/XbsjPolylineGeometry.d.ts +0 -3
- package/dist/types/CzmObjects/general/CzmESSignalTransmission/XbsjPolyline/xbsjCreateODLinesPrimitive.d.ts +0 -29
- package/dist/types/CzmObjects/general/CzmESVideoFusion/XbsjCameraVideo/XbsjCameraVideo.d.ts +0 -18
- package/dist/types/CzmObjects/general/CzmESViewShed/XbsjViewshed/XbsjViewshed.d.ts +0 -16
- package/dist/types/ESCesiumViewer/BackGroundImage/BackGroundImage.d.ts +0 -5
- package/dist/types/ESCesiumViewer/LocalSkyBox/SkyAtmosphere.d.ts +0 -14
- package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/GaussianSplatPipelineStage.d.ts +0 -12
- package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/GaussianSplatTexturePipelineStage.d.ts +0 -11
- package/dist/types/ESCesiumViewer/initCesiumViewer/fixGoogleEarth/cesiumFixGoogleEarth.d.ts +0 -1
- package/dist/types/__declares/cesium.d.ts +0 -405
- package/dist/types/utils/czmUtils/todo/generateCartesianArc/czm/generateCartesianArc.d.ts +0 -8
- package/dist/types/utils/generalUtils/geoPolylineToBezierSpline/bezierSpline/index.d.ts +0 -37
- package/dist/types/utils/generalUtils/geoPolylineToBezierSpline/bezierSpline/lib/spline.d.ts +0 -62
|
@@ -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.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}个小时)
|
|
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.8",e="2025-06-19T03:35:37.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="64fcc5c9e0b8dbfb173ac9ca2a0ed94573ba85f7",s=((Date.now()-1750304137e3)/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}","
|
|
4694
|
+
`;se.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","64fcc5c9e0b8dbfb173ac9ca2a0ed94573ba85f7")},get info(){return l},get date(){return"2025-06-19T03:35:37.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.8"},get name(){return"earthsdk3-cesium"},get commitId(){return"64fcc5c9e0b8dbfb173ac9ca2a0ed94573ba85f7"},print(){console.info(this.info,`
|
|
4695
4695
|
font-size: 18px;
|
|
4696
4696
|
font-weight: 1000;
|
|
4697
4697
|
line-height: 1;
|
package/dist/earthsdk3-cesium.js
CHANGED
|
@@ -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.
|
|
53802
|
+
const t = "earthsdk3-cesium", i = "3.0.8-beta.8", e = "2025-06-19T03:35:37.000Z", n = "北京西部世界科技有限公司", s = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", o = "64fcc5c9e0b8dbfb173ac9ca2a0ed94573ba85f7", a = ((Date.now() - 1750304137e3) / 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
|
`;
|
|
@@ -53813,7 +53813,7 @@ try {
|
|
|
53813
53813
|
},
|
|
53814
53814
|
// @ts-ignore
|
|
53815
53815
|
get gituri() {
|
|
53816
|
-
return GITURI_ && GITURI_.replace("${commitId}", "
|
|
53816
|
+
return GITURI_ && GITURI_.replace("${commitId}", "64fcc5c9e0b8dbfb173ac9ca2a0ed94573ba85f7");
|
|
53817
53817
|
},
|
|
53818
53818
|
// @ts-ignore
|
|
53819
53819
|
get info() {
|
|
@@ -53821,7 +53821,7 @@ try {
|
|
|
53821
53821
|
},
|
|
53822
53822
|
// @ts-ignore
|
|
53823
53823
|
get date() {
|
|
53824
|
-
return "2025-06-
|
|
53824
|
+
return "2025-06-19T03:35:37.000Z";
|
|
53825
53825
|
},
|
|
53826
53826
|
// @ts-ignore
|
|
53827
53827
|
get author() {
|
|
@@ -53829,7 +53829,7 @@ try {
|
|
|
53829
53829
|
},
|
|
53830
53830
|
// @ts-ignore
|
|
53831
53831
|
get version() {
|
|
53832
|
-
return "3.0.8-beta.
|
|
53832
|
+
return "3.0.8-beta.8";
|
|
53833
53833
|
},
|
|
53834
53834
|
// @ts-ignore
|
|
53835
53835
|
get name() {
|
|
@@ -53837,7 +53837,7 @@ try {
|
|
|
53837
53837
|
},
|
|
53838
53838
|
// @ts-ignore
|
|
53839
53839
|
get commitId() {
|
|
53840
|
-
return "
|
|
53840
|
+
return "64fcc5c9e0b8dbfb173ac9ca2a0ed94573ba85f7";
|
|
53841
53841
|
},
|
|
53842
53842
|
print() {
|
|
53843
53843
|
console.info(
|