earthsdk3-cesium 3.0.7-beta.4 → 3.0.7-beta.5
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.
|
@@ -291,7 +291,7 @@ var EarthSDK3_Cesium=function(le,Fe,Q){"use strict";var mj=Object.defineProperty
|
|
|
291
291
|
material.shininess = 10.0;
|
|
292
292
|
|
|
293
293
|
return material;
|
|
294
|
-
}`}})}function _l(t,n){let e=!0;return n==="default"?(t._resourcesLoaded=t._texturesLoaded=!1,t._loader._state=2,t._loader._loadResourcesPromise=void 0):t.loader.components.nodes.forEach(a=>{a.primitives.forEach(r=>{const o=r.material.name??
|
|
294
|
+
}`}})}function _l(t,n){let e=!0;return n==="default"?(t._resourcesLoaded=t._texturesLoaded=!1,t._loader._state=2,t._loader._loadResourcesPromise=void 0):t.loader.components.nodes.forEach(a=>{a.primitives.forEach(r=>{const o=n[r.material.name]??n.default;o!=null&&(Reflect.has(o,"baseColorFactor")&&o.baseColorFactor&&(r.material.metallicRoughness.baseColorFactor=vp(o.baseColorFactor)),Reflect.has(o,"alphaMode")&&(r.material.alphaMode=o.alphaMode),Reflect.has(o,"doubleSided")&&(r.material.doubleSided=o.doubleSided),Reflect.has(o,"unlit")&&(r.material.unlit=o.unlit),Reflect.has(o,"emissiveFactor")&&o.emissiveFactor&&(r.material.emissiveFactor=Cr(o.emissiveFactor)),Reflect.has(o,"metallicFactor")&&(r.material.metallicRoughness.metallicFactor=o.metallicFactor),Reflect.has(o,"roughnessFactor")&&(r.material.metallicRoughness.roughnessFactor=o.roughnessFactor),Reflect.has(o,"baseColorTexture")&&o.baseColorTexture!=null&&(r.material.metallicRoughness.baseColorTexture?r.material.metallicRoughness.baseColorTexture=o.baseColorTexture:e=!1),Reflect.has(o,"normalTexture")&&o.normalTexture!=null&&(r.material.metallicRoughness.normalTexture=o.normalTexture))})}),t.resetDrawCommands(),e}async function xl(t,n,e){let i;const a=n!=null&&n.offset?k.Cartesian2.unpack(n.offset):k.Cartesian2.ZERO;let r=k.Math.toRadians((n==null?void 0:n.rotate)??0);const o=n!=null&&n.scale?k.Cartesian2.unpack(n==null?void 0:n.scale):new k.Cartesian2(1,1);r=-r,i=new k.Matrix3(Math.cos(r)*o.x,-Math.sin(r)*o.y,a.x,Math.sin(r)*o.x,Math.cos(r)*o.y,a.y,0,0,1);const s=new k.Sampler({wrapS:k.TextureWrap.REPEAT,wrapT:k.TextureWrap.REPEAT,minificationFilter:k.TextureMinificationFilter[(e==null?void 0:e.minFilter)||"LINEAR"],magnificationFilter:k.TextureMagnificationFilter[(e==null?void 0:e.magFilter)||"LINEAR"]});return k.Resource.createIfNeeded(n.value).fetchImage().then(l=>{if(!t)return;const u=$p(t.scene.context,l,{flipY:!1});u.sampler=s;const f=new k.ModelComponents.TextureReader;return f.index=0,f.texture=u,f.texCoord=0,f.scale=void 0,f.transform=i,f.channels=void 0,f})}function BT(t){if(t.url)return`
|
|
295
295
|
var terrainProvider = new Cesium.CesiumTerrainProvider({
|
|
296
296
|
url: ${IT(typeof t.url=="object"?t.url.url:t.url)},
|
|
297
297
|
});
|
|
@@ -4882,10 +4882,10 @@ void main()
|
|
|
4882
4882
|
{
|
|
4883
4883
|
out_FragColor = u_color;
|
|
4884
4884
|
}
|
|
4885
|
-
`,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},pt,t)}class cj extends S.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const a=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const o=i=this._getStartInfo(r.pointerEvent);o&&(this.owner.hoveredPlaneType=o.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(a.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const o=this._getStartInfo(r.pointerEvent);if(!o||o.currentPlaneType==="none")break;const{currentPlaneType:s}=o,l=[...this.owner.selfRotation];l[xr.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(S.createProcessingFromAsyncFunc(async(n,e,i)=>{const a=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:o,offsetY:s}=r.pointerEvent,l=[o,s],{currentPlaneType:u}=i;if(u==="none")return;const f=this.owner.getPlane(u);if(!i.currentV)return;const h=f.pick(l);if(!h||!this.owner.cartesian)return;const y=k.Cartesian3.subtract(i.currentV,this.owner.cartesian,new k.Cartesian3);k.Cartesian3.normalize(y,y);const m=k.Cartesian3.subtract(h,this.owner.cartesian,new k.Cartesian3);if(k.Cartesian3.normalize(m,m),!f.normal||!f.origin)return;const A=O0(y,m,f.normal),p=O0(f.origin,y,f.normal),d=O0(f.origin,m,f.normal);{const g=[...this.owner.selfRotation];g[xr.rotationNum[u]]=i.startRotation+A,this.owner.selfRotation=g,a.circleStartRotation=p,a.circleEndRotation=d}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{a.circleStartRotation=0,a.circleEndRotation=0}),await S.step(n,r=>new Promise((o,s)=>{r.disposer.dispose(s),r.disposer.dispose(e.pointerUpEvent.don(()=>{o()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{o()}))}))}))}_pickPlane(n,e,i,a,r){const o=this.owner.cartesian;if(!o)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(i).pick(a);if(!l)return;const u=k.Cartesian3.distance(o,l),f=r/4,h=f*3/128;if(!(u>=f-h&&u<=f+h))return;const m=k.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=m||(n.currentPlaneType=i,n.currentD2c=m,n.currentV=l,n.startRotation=s[xr.rotationNum[i]])}_getStartInfo(n){var f;const{czmViewer:e}=this.owner,i=(f=e.viewer)==null?void 0:f.scene;if(!this.owner.position||!this.owner.cartesian)return;const a=ti(i,this.owner.cartesian,this.owner.pixelSize);if(!a)return;const{offsetX:r,offsetY:o}=n,s=[r,o],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",s,a),this._pickPlane(u,i,"pitch",s,a),this._pickPlane(u,i,"roll",s,a),u}}function O0(t,n,e){const i=k.Cartesian3.cross(n,t,new k.Cartesian3);if(i.equals(k.Cartesian3.ZERO))return 0;k.Cartesian3.normalize(i,i);const a=k.Cartesian3.dot(i,e);let r=Math.acos(k.Cartesian3.dot(t,n))*180/Math.PI;return r=a>0?r:-r,r}const Ma=class Ma extends qn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(S.react("none")));L(this,"_movingPlaneType",this.disposeVar(S.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new oj(this)),pitch:this.disposeVar(new aj(this)),roll:this.disposeVar(new sj(this))});L(this,"_rotatorRunningResetting",this.disposeVar(new S.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new cj(this)})));this._czmViewer=e;const i=this._czmViewer;if(this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&Et(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Yt(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(S.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(S.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(S.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const a=dt({rotation:this.selfRotation});if(!a)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=k.Matrix4.toArray(a))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const a=this.ad(new rl(e));this.dispose(S.track([a,"position"],[this,"position"])),this.dispose(S.track([a,"pixelSize"],[this,"pixelSize"])),this.dispose(S.track([a,"debug"],[this,"debug"])),this.dispose(S.track([a,"rotation"],[this,"rotation"]));{const r=()=>{a.selfRotation=Ma.rotationFuncs[i](this.selfRotation),a.circleRotation=this.selfRotation[Ma.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const o=this.movingPlaneType===i,s=this.hoveredPlaneType===i,u=[0,0,0,o||s?1:.8];u[Ma.rotationNum[i]]=1,a.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return a}};L(Ma,"rotationNum",{heading:0,pitch:1,roll:2}),L(Ma,"rotationFuncs",{heading:([e,i,a])=>[0,0,0],pitch:([e,i,a])=>[e,0,-90],roll:([e,i,a])=>[e,i+90,0]});let xr=Ma;(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),rotation:S.reactArray([0,0,0]),selfRotation:S.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(xr||(xr={})),S.extendClassProps(xr.prototype,xr.createDefaultProps);const Oa=class Oa extends S.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??Oa.defaults.positions[0],this.stopPosition??Oa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??Oa.defaults.positions[0],n??Oa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const a=this.ad(new rt(n,e));a.arcType="RHUMB";const r=this.ad(new Jn(n,e));this.ad(S.track([a,"allowPicking"],[this,"allowPicking"])),this.ad(S.track([r,"allowPicking"],[this,"allowPicking"]));{const o=()=>{a.show=r.show=this.show};o(),this.ad(this.showChanged.don(o))}{const o=()=>{a.width=this.width/2,r.pixelSize=this.width};o(),this.ad(this.widthChanged.don(o))}{const o=()=>{a.color=r.color=this.color};o(),this.ad(this.colorChanged.don(o))}{const o=()=>{a.positions=this.positions,r.position=this.stopPosition};o(),this.dispose(this.startPositionChanged.disposableOn(o)),this.dispose(this.stopPositionChanged.disposableOn(o))}}};L(Oa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Sa=Oa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:S.reactPositions(t.defaults.positions),width:10,color:S.reactArray([1,0,0,1])})})(Sa||(Sa={})),S.extendClassProps(Sa.prototype,Sa.createDefaultProps);class Bi extends qn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(S.react(!1)),moved:this.ad(S.react(!1)),constraintMode:this.disposeVar(S.react("none")),originPosition:this.disposeVar(S.reactArray([0,0,0])),originHeading:this.disposeVar(S.react(0)),originDimensions:this.disposeVar(S.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(S.reactArray([0,0,0])),movingPosition:this.disposeVar(S.reactArray([0,0,0])),targetPosition:this.disposeVar(S.reactArray([0,0,0])),targetHeading:this.disposeVar(S.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new S.Processing((i,a,r)=>{const o=[0,0,0],s=new k.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hr(S.getDomEventCurrentTargetPos(l.pointerEvent));if(!La(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ra(s,o),this._opInfo.constraintMode.value==="x"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value,o,o):this._opInfo.constraintMode.value==="y"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,o,o):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=o,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const f=[0,0,0];Q.geoRhumbDestination(o,r,a,f),this._opInfo.targetPosition.value=f;let h=this.scale[0],y=this.scale[1];const m=Q.geoDistance(f,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...f];const A=this._opInfo.originDimensions.value[0]/100;m!=0&&this._opInfo.constraintMode.value==="y"&&(m>0?h+=A:h-=A),m!=0&&this._opInfo.constraintMode.value==="x"&&(m>0?y+=A:y-=A),h<=0&&(h+=A),y<=0&&(y+=A),this.scale=[h??1,y??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new S.Processing(()=>{const i=new k.Cartesian3,a=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!Nh(e.viewer.scene,Et(this._opInfo.originPosition.value),o,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ve(i,a)){this._opInfo.movingPosition.value=a;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],a[2]+s];let u=this.scale[2];const f=a[2]-this._lastPosition[2];this._lastPosition=[...a];const h=this._opInfo.originDimensions.value[0]/100;f!=0&&(f>0?u+=h:u-=h),u<=0&&(u+=h),this.scale=[this.scale[0]??1,this.scale[1]??1,u??1]}})})));const i=e.viewer;if(!i)return;const{scene:a}=i;this.ad(new Rp(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const u=()=>{if(!this._scaleAxis)return;const{zAxis:f,yAxis:h,xAxis:y}=this._scaleAxis,m=this._opInfo.constraintMode.value,A=this._opInfo.step;f.color=[0,0,1,.99],h.color=[0,1,0,.99],y.color=[1,0,0,.99],m==="x"?y.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="y"?h.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="z"&&(f.color=A?[1,1,0,.8]:[1,1,0,.99])};u(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(u)),this.dispose(this._opInfo.step.changed.disposableOn(u))}{const u=()=>{if(!this._scaleAxis)return;const{position:h=Bi.defaults.position}=this,{zAxis:y,yAxis:m,xAxis:A}=this._scaleAxis;y.startPosition=m.startPosition=A.startPosition=h;const[p,d,g]=h;y.stopPosition=[p,d,g+this._opInfo.originDimensions.value[2]];const c=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[0],90);c&&(A.stopPosition=c);const v=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[1],0);v&&(m.stopPosition=v)};u();const f=this.ad(S.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(f.don(u))}{const u=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((f,h)=>f===this._opInfo.targetPosition.value[h])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const r=this._pickingXYProcessing(e),o=this._pickingZProcessing(e),s=this.disposeVar(S.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await S.step(u,async f=>{const h=()=>{const A=[...this.position??Bi.defaults.position];e.editingHeightOffset&&(A[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=A};f.disposer.dispose((h(),this.positionChanged.disposableOn(h)));const y={constraintMode:"none",startDragPos:[0,0,0]},m=A=>{if(!this.position)return;const p={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Cp(A,a,p,this.axisSnapPixelSize,y),this._opInfo.constraintMode.value=y.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=y.startDragPos};f.disposer.dispose(e.pointerMoveEvent.disposableOn(A=>{A.pointerEvent&&m(A.pointerEvent)})),await S.step(f,A=>new Promise((p,d)=>{A.disposer.dispose(d),A.disposer.dispose(e.pointerDownEvent.don(g=>{g.pointerEvent&&m(g.pointerEvent),g.pointerEvent&&g.pointerEvent.button===0&&y.constraintMode!=="none"&&p()}))}))}),this._opInfo.step.value=!1,await S.step(u,async f=>{if(e.incrementDisabledInputStack(),f.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const h=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),y=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,h,y),f.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(o.restart(),f.disposer.dispose(()=>o.cancel()));await S.step(f,h=>new Promise((y,m)=>{h.disposer.dispose(m),h.disposer.dispose(e.pointerUpEvent.don(()=>{y()})),h.disposer.dispose(e.pointerOutEvent.don(()=>{y()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?s.restart():s.isRunning&&s.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const a=this.ad(new Sa(e));return a.width=10,this.ad(S.track([a,"show"],[this,"enabled"])),a}}(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),scale:S.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(Bi||(Bi={})),S.extendClassProps(Bi.prototype,Bi.createDefaultProps);const Lo=class Lo extends _n{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new S.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(S.react(!1)));L(this,"_status",this.disposeVar(S.react("None")));L(this,"_positionsChanged",this.ad(new S.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:a,deleteCount:r,items:o}of i){for(const s of o)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=a;s<a+r;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(S.nextAnimateFrame(()=>{var a;((a=i.pointerEvent)==null?void 0:a.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??Lo.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((a,r)=>a.every((o,s)=>{const l=this.editingPoints.get(r);return l.position&&l.position[s]===o})))}forceResetPositions(e){(this.enabled??Lo.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new rt(e));this.ad(S.track([i,"color"],[this,"polylineColor"])),this.ad(S.track([i,"width"],[this,"polylineWidth"])),this.ad(S.track([i,"show"],[this,"polylineShow"])),this.ad(S.track([i,"arcType"],[this,"polylineArcType"])),this.ad(S.track([i,"loop"],[this,"loop"]));{const a=()=>{const r=[];for(const o of this.getPositions())o[2]-=e.editingHeightOffset??0,r.push(o);i.positions=r};a(),this.ad(this.positionsChanged.don(a))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new S.CursorInfo(e.container,S.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const a=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}a==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):a==="Modifying"||a==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):a==="None"&&(i.text="",i.show=!1)}}))}};L(Lo,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(Lo,"defaults",{..._n.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Lo.baseImageUrl+"point-green.png",otherControlPointImageUrl:Lo.baseImageUrl+"point-yellow.png"});let sr=Lo;(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:S.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(sr||(sr={})),S.extendClassProps(sr.prototype,sr.createDefaultProps);let hj=0;class l2 extends S.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(S.reactArrayWithUndefined(void 0)));L(this,"_id",hj++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const a=this._menuPoi=this.ad(new es(e.czmViewer));a.enabled=!1,this.ad(S.track([a,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){a.position=void 0;return}const o=[...this.position];o[2]-=e.czmViewer.editingHeightOffset??0,a.position=o,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const o=e.editingPoints.indexOf(this)+1;o!==0&&(a.title=`控制点${o}`,o===1?a.imageUri=e.firstControlPointImageUrl??sr.defaults.firstControlPointImageUrl:a.imageUri=e.otherControlPointImageUrl??sr.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class u2 extends l2{constructor(n,e){super(n,e)}}class Dt extends sr{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new S.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new _r(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??Dt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Dt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await a.promise(S.step(a,async r=>{const o=r.disposer,s=o.ad(this._addingEditingProcessing());o.dispose(()=>"adding canceled!"),o.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await r.promise(new Promise(l=>{o.dispose(s.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new u2(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Dt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=S.createProcessingFromAsyncFunc(async a=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await a.promise(S.step(a,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new fj(this,r)));const f=s.disposer.disposeVar(new pj(this,r));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>f.do())),await s.promise(new Promise(h=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(y=>{y?(r++,h(!0)):h(!1)})),s.disposer.dispose(f.overEvent.disposableOnce(y=>{y?(r--,h(!0)):h(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps()})})(Dt||(Dt={})),S.extendClassProps(Dt.prototype,Dt.createDefaultProps);class fj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));const{placeEditing:a}=e;let r=new u2(e,void 0);e.editingPoints.splice(i,0,r);const o=()=>{(e.debug??Dt.defaults.debug)&&console.log("delete currentPosEditor");const u=e.editingPoints.indexOf(r);if(u===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(u,1)};if(a.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(S.track([r,"position"],[a,"position"])),a.enabled=!0;let s=!1;const l=()=>{o(),this._overEvent.emit(!1)};this.dispose(()=>{a.enabled=!1,!s&&l()}),this.dispose(a.overEvent.disposableOnce(()=>{s=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Dt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function dj(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class pj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_doEvent",this.disposeVar(new S.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(dj(e,i)))),(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class c2 extends Dt{constructor(n){super(n),this.loop=!1}}class h2 extends Dt{constructor(n){super(n),this.loop=!0}}class fp extends l2{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(a=>{n.menuPoiCommand(this,a)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new kr(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??at.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const a=()=>{if(!(n.enabled??at.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const o=n.editingPoints.indexOf(this);if(o===-1)break;const s=n.editingPoints.length;if(s===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??at.defaults.loop)&&o+1>=s)break;const u=this.position;if(!u)break;let f=(o+1)%s;const y=n.editingPoints.get(f).position;if(!y)break;const m=Tp(u,y);if(!m)break;m[2]-=n.czmViewer.editingHeightOffset??0,i.position=m;const A=n.editingPoints.length<(n.maxPointsNum??at.defaults.maxPointsNum);i.enabled=A,i.show=A;return}while(!1);i.enabled=!1,i.show=!1};a(),this.dispose(n.positionsChanged.disposableOn(a)),this.dispose(n.loopChanged.disposableOn(a)),this.dispose(n.enabledChanged.disposableOn(a))}this.dispose(i.clickEvent.disposableOn(a=>{if(a.button!==0||n.editingPoints.length>=(n.maxPointsNum??at.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const o=i.position?[...i.position]:void 0;o&&(o[2]+=n.czmViewer.editingHeightOffset??0);let s=new fp(n,o);n.editingPoints.splice(r+1,0,s),n.modify(s)}))}}}}class at extends sr{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"translationEditing");{const a=this.ad(S.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new S.ObjResettingWithEvent(a,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new Aj(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new Ti(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??at.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??at.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await a.promise(S.step(a,async o=>{const s=o.disposer,l=s.ad(new yj(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(f=>l.modify(f))),await o.promise(new Promise(f=>{s.dispose(l.overEvent.disposableOnce(h=>{f(h)}))}))})),r===-1){(this.debug??at.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??at.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??at.defaults.loop;const s=this.editingPoints.get(r-1).position;if(!s)return;let l=r%this.editingPoints.length;const f=this.editingPoints.get(l).position;if(!f)return;const h=Tp(s,f);if(!h)return;h&&(h[2]+=this.czmViewer.editingHeightOffset??0);let y=new fp(this,h);this.editingPoints.splice(r,0,y)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new fp(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps(),moveWithFirstPosition:!1})})(at||(at={})),S.extendClassProps(at.prototype,at.createDefaultProps);class Aj extends S.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,a)=>{if(i===void 0||a===void 0)return;var r=[i[0]-a[0],i[1]-a[1],i[2]-a[2]];const o=this.multiPointsModifyEditing.editingPoints.length;for(let s=1;s<o;s++){const l=this.multiPointsModifyEditing.editingPoints.get(s),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class yj extends S.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const a=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(a);const r=o=>{a(),e.status="Modifying_Point",i=new gj(e,o),i.dispose(i.overEvent.disposableOn(()=>{a()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((o,s)=>{if(s==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(s==="modify")r(o);else if(s==="add"){const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else s==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${s})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class gj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:a}=this._modifying;if(a.enabled=!0,a.heading=0,this.dispose(()=>{a.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");a.position=this._posEditor.position,this.dispose(S.track([this._posEditor,"position"],[a,"position"])),this.dispose(a.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class f2 extends at{constructor(n){super(n),this.loop=!1}}class d2 extends at{constructor(n){super(n),this.loop=!0}}class il extends Dt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(a<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([90,0,0]),distance:S.react(1)})})(il||(il={})),S.extendClassProps(il.prototype,il.createDefaultProps);class Ea extends at{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(a)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([0,0,0]),distance:S.react(0)})})(Ea||(Ea={})),S.extendClassProps(Ea.prototype,Ea.createDefaultProps);class p2 extends Dt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class A2 extends at{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class ol extends Dt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(ol||(ol={})),S.extendClassProps(ol.prototype,ol.createDefaultProps);class al extends at{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(al||(al={})),S.extendClassProps(al.prototype,al.createDefaultProps);class y2 extends Ea{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class gn extends Q.EngineObject{constructor(e,i,a){super(e,i,a??!0);L(this,"_supportEditing",this.disposeVar(S.react(!0)));L(this,"_currentEditing",this.disposeVar(S.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Dt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof _r&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const vh=class vh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new _r(e));this.ad(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(vh,"type",vh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,vh));let D0=vh;const wh=class wh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new xr(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);a&&(this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(wh,"type",wh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,wh));let R0=wh;const bh=class bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Bi(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(bh,"type",bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,bh));let U0=bh;const _h=class _h extends gn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new Ti(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const a=[];for(let r=0;r<n.length;r++){const o=n[r];Reflect.has(o,"position")?a.push(o.position):o.points&&a.push(...o.points)}i.position=Q.getMinMaxCorner(a).center,this.ad(i.positionChanged.disposableOn((r,o)=>{if(!(!r||!o)){var s=Cn({originPosition:o},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=Cn({originPosition:o},[l.position])[0][0];l.position=zi({originPosition:o},[[u[0]+s[0],u[1]+s[1],u[2]+s[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const u=Cn({originPosition:o},l.points)[0];l.points=zi({originPosition:o},u.map(f=>[f[0]+s[0],f[1]+s[1],f[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((a,r)=>{if(a===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var o=Cn({originPosition:r},[a])[0][0];const s=Cn({originPosition:r},n.points)[0];n.points=zi({originPosition:r},s.map(l=>[l[0]+o[0],l[1]+o[1],l[2]+o[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(_h,"type",_h.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,_h));let dp=_h;const xh=class xh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new il(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const a=Et(n.position);if(k.Cartesian3.ZERO.equals(a)||!e.viewer)return;i.distance=ti(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(xh,"type",xh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,xh));let L0=xh;const Ch=class Ch extends gn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new Ea(e));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const o=Et(n.position);if(k.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=ti(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Ch,"type",Ch.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Ch));let z0=Ch;const Sh=class Sh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new h2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Sh,"type",Sh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Sh));let N0=Sh;const Eh=class Eh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new d2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Eh,"type",Eh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Eh));let V0=Eh;const Ph=class Ph extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new c2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ph,"type",Ph.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Ph));let Q0=Ph;const Th=class Th extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new f2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Th,"type",Th.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Th));let H0=Th;const Bh=class Bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new p2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Bh,"type",Bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Bh));let j0=Bh;const Ih=class Ih extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new A2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ih,"type",Ih.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,Ih));let G0=Ih;const Fh=class Fh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ol(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Fh,"type",Fh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Fh));let W0=Fh;const kh=class kh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new al(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(kh,"type",kh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,kh));let q0=kh;const Mh=class Mh extends gn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new y2(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),o=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let u=Q.getMinMaxCorner(n.points).center,f=[...u],h=l?n.points[0][2]:0;s?r?f[2]=n.extrudedHeight:f[2]=n.height+h:(o&&(u[2]=n.height),r&&(f[2]=n.extrudedHeight)),i.startPosition=u,i.distance=f[2]-u[2],i.moveWithFirstPosition=!1;let y=[...u];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(s?(n.points=n.points.map(m=>[m[0],m[1],m[2]+i.positions[0][2]-y[2]]),r?n.extrudedHeight=i.positions[1][2]:o&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(o&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),y=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Mh,"type",Mh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Mh));let K0=Mh;function g2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a,r=!0)=>{const o=Array.isArray(a)?[...a]:[a],s=i.editingID;e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"start",add:{modes:o}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"end",add:{modes:o}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(f=>{f.code=="Escape"&&l()}));let u=0;do{const f=o[u%o.length],h=await S.step(n,async y=>{const m=y.disposer,A=Q.EngineObject.contextEditing.getEngineObjConstructor(f,e.typeName);if(!A||!i.supportEditingModes().includes(f))return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;const p=new A(i,e);if(m.ad(()=>{!p.isDestroyed()&&p.destroy()}),p.supportEditing)e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;return await y.promise(new Promise(g=>{p.isDestroyed()&&g(!1),m.ad(p.toDestroyEvent.don(()=>{console.log(`编辑模式${f}结束`),g(!1)})),r&&(m.ad(e.keyDownEvent.don(c=>{c.code=="Space"&&(console.log(`编辑模式${f}结束`),g(!1))})),m.ad(e.dblclickEvent.don(()=>g(!0))))}))});if(r&&h||!r&&u==o.length-1||e.notSupportEditingCount==o.length)break;u++}while(!0)});return t}function m2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a)=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&r()}));const o=new dp(i,e);n.disposer.ad(()=>{!o.isDestroyed()&&o.destroy()}),await n.promise(new Promise(s=>{o.isDestroyed()&&s(),n.disposer.ad(o.toDestroyEvent.don(()=>{console.log("移动结束"),s()})),n.disposer.ad(e.dblclickEvent.don(()=>s()))}))});return t}le.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.7-beta.4",e="2025-05-23T02:41:15.000Z",i="北京西部世界科技有限公司",a="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="07a3f1b090e4fa89f3e9b464480993ab681c3edb",s=((Date.now()-1747968075e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${s}个小时)
|
|
4885
|
+
`,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},pt,t)}class cj extends S.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const a=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const o=i=this._getStartInfo(r.pointerEvent);o&&(this.owner.hoveredPlaneType=o.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(a.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const o=this._getStartInfo(r.pointerEvent);if(!o||o.currentPlaneType==="none")break;const{currentPlaneType:s}=o,l=[...this.owner.selfRotation];l[xr.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(S.createProcessingFromAsyncFunc(async(n,e,i)=>{const a=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:o,offsetY:s}=r.pointerEvent,l=[o,s],{currentPlaneType:u}=i;if(u==="none")return;const f=this.owner.getPlane(u);if(!i.currentV)return;const h=f.pick(l);if(!h||!this.owner.cartesian)return;const y=k.Cartesian3.subtract(i.currentV,this.owner.cartesian,new k.Cartesian3);k.Cartesian3.normalize(y,y);const m=k.Cartesian3.subtract(h,this.owner.cartesian,new k.Cartesian3);if(k.Cartesian3.normalize(m,m),!f.normal||!f.origin)return;const A=O0(y,m,f.normal),p=O0(f.origin,y,f.normal),d=O0(f.origin,m,f.normal);{const g=[...this.owner.selfRotation];g[xr.rotationNum[u]]=i.startRotation+A,this.owner.selfRotation=g,a.circleStartRotation=p,a.circleEndRotation=d}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{a.circleStartRotation=0,a.circleEndRotation=0}),await S.step(n,r=>new Promise((o,s)=>{r.disposer.dispose(s),r.disposer.dispose(e.pointerUpEvent.don(()=>{o()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{o()}))}))}))}_pickPlane(n,e,i,a,r){const o=this.owner.cartesian;if(!o)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(i).pick(a);if(!l)return;const u=k.Cartesian3.distance(o,l),f=r/4,h=f*3/128;if(!(u>=f-h&&u<=f+h))return;const m=k.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=m||(n.currentPlaneType=i,n.currentD2c=m,n.currentV=l,n.startRotation=s[xr.rotationNum[i]])}_getStartInfo(n){var f;const{czmViewer:e}=this.owner,i=(f=e.viewer)==null?void 0:f.scene;if(!this.owner.position||!this.owner.cartesian)return;const a=ti(i,this.owner.cartesian,this.owner.pixelSize);if(!a)return;const{offsetX:r,offsetY:o}=n,s=[r,o],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,i,"heading",s,a),this._pickPlane(u,i,"pitch",s,a),this._pickPlane(u,i,"roll",s,a),u}}function O0(t,n,e){const i=k.Cartesian3.cross(n,t,new k.Cartesian3);if(i.equals(k.Cartesian3.ZERO))return 0;k.Cartesian3.normalize(i,i);const a=k.Cartesian3.dot(i,e);let r=Math.acos(k.Cartesian3.dot(t,n))*180/Math.PI;return r=a>0?r:-r,r}const Ma=class Ma extends qn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(S.react("none")));L(this,"_movingPlaneType",this.disposeVar(S.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new oj(this)),pitch:this.disposeVar(new aj(this)),roll:this.disposeVar(new sj(this))});L(this,"_rotatorRunningResetting",this.disposeVar(new S.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new cj(this)})));this._czmViewer=e;const i=this._czmViewer;if(this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&Et(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Yt(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(S.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(S.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(S.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const a=dt({rotation:this.selfRotation});if(!a)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=k.Matrix4.toArray(a))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const a=this.ad(new rl(e));this.dispose(S.track([a,"position"],[this,"position"])),this.dispose(S.track([a,"pixelSize"],[this,"pixelSize"])),this.dispose(S.track([a,"debug"],[this,"debug"])),this.dispose(S.track([a,"rotation"],[this,"rotation"]));{const r=()=>{a.selfRotation=Ma.rotationFuncs[i](this.selfRotation),a.circleRotation=this.selfRotation[Ma.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const o=this.movingPlaneType===i,s=this.hoveredPlaneType===i,u=[0,0,0,o||s?1:.8];u[Ma.rotationNum[i]]=1,a.color=u};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return a}};L(Ma,"rotationNum",{heading:0,pitch:1,roll:2}),L(Ma,"rotationFuncs",{heading:([e,i,a])=>[0,0,0],pitch:([e,i,a])=>[e,0,-90],roll:([e,i,a])=>[e,i+90,0]});let xr=Ma;(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),rotation:S.reactArray([0,0,0]),selfRotation:S.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(xr||(xr={})),S.extendClassProps(xr.prototype,xr.createDefaultProps);const Oa=class Oa extends S.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??Oa.defaults.positions[0],this.stopPosition??Oa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??Oa.defaults.positions[0],n??Oa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const a=this.ad(new rt(n,e));a.arcType="RHUMB";const r=this.ad(new Jn(n,e));this.ad(S.track([a,"allowPicking"],[this,"allowPicking"])),this.ad(S.track([r,"allowPicking"],[this,"allowPicking"]));{const o=()=>{a.show=r.show=this.show};o(),this.ad(this.showChanged.don(o))}{const o=()=>{a.width=this.width/2,r.pixelSize=this.width};o(),this.ad(this.widthChanged.don(o))}{const o=()=>{a.color=r.color=this.color};o(),this.ad(this.colorChanged.don(o))}{const o=()=>{a.positions=this.positions,r.position=this.stopPosition};o(),this.dispose(this.startPositionChanged.disposableOn(o)),this.dispose(this.stopPositionChanged.disposableOn(o))}}};L(Oa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Sa=Oa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:S.reactPositions(t.defaults.positions),width:10,color:S.reactArray([1,0,0,1])})})(Sa||(Sa={})),S.extendClassProps(Sa.prototype,Sa.createDefaultProps);class Bi extends qn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(S.react(!1)),moved:this.ad(S.react(!1)),constraintMode:this.disposeVar(S.react("none")),originPosition:this.disposeVar(S.reactArray([0,0,0])),originHeading:this.disposeVar(S.react(0)),originDimensions:this.disposeVar(S.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(S.reactArray([0,0,0])),movingPosition:this.disposeVar(S.reactArray([0,0,0])),targetPosition:this.disposeVar(S.reactArray([0,0,0])),targetHeading:this.disposeVar(S.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new S.Processing((i,a,r)=>{const o=[0,0,0],s=new k.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=hr(S.getDomEventCurrentTargetPos(l.pointerEvent));if(!La(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ra(s,o),this._opInfo.constraintMode.value==="x"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value,o,o):this._opInfo.constraintMode.value==="y"?No(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,o,o):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=o,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const f=[0,0,0];Q.geoRhumbDestination(o,r,a,f),this._opInfo.targetPosition.value=f;let h=this.scale[0],y=this.scale[1];const m=Q.geoDistance(f,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...f];const A=this._opInfo.originDimensions.value[0]/100;m!=0&&this._opInfo.constraintMode.value==="y"&&(m>0?h+=A:h-=A),m!=0&&this._opInfo.constraintMode.value==="x"&&(m>0?y+=A:y-=A),h<=0&&(h+=A),y<=0&&(y+=A),this.scale=[h??1,y??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new S.Processing(()=>{const i=new k.Cartesian3,a=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const o=hr(S.getDomEventCurrentTargetPos(r.pointerEvent));if(!Nh(e.viewer.scene,Et(this._opInfo.originPosition.value),o,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ve(i,a)){this._opInfo.movingPosition.value=a;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],a[2]+s];let u=this.scale[2];const f=a[2]-this._lastPosition[2];this._lastPosition=[...a];const h=this._opInfo.originDimensions.value[0]/100;f!=0&&(f>0?u+=h:u-=h),u<=0&&(u+=h),this.scale=[this.scale[0]??1,this.scale[1]??1,u??1]}})})));const i=e.viewer;if(!i)return;const{scene:a}=i;this.ad(new Rp(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const u=()=>{if(!this._scaleAxis)return;const{zAxis:f,yAxis:h,xAxis:y}=this._scaleAxis,m=this._opInfo.constraintMode.value,A=this._opInfo.step;f.color=[0,0,1,.99],h.color=[0,1,0,.99],y.color=[1,0,0,.99],m==="x"?y.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="y"?h.color=A?[1,1,0,.8]:[1,1,0,.99]:m==="z"&&(f.color=A?[1,1,0,.8]:[1,1,0,.99])};u(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(u)),this.dispose(this._opInfo.step.changed.disposableOn(u))}{const u=()=>{if(!this._scaleAxis)return;const{position:h=Bi.defaults.position}=this,{zAxis:y,yAxis:m,xAxis:A}=this._scaleAxis;y.startPosition=m.startPosition=A.startPosition=h;const[p,d,g]=h;y.stopPosition=[p,d,g+this._opInfo.originDimensions.value[2]];const c=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[0],90);c&&(A.stopPosition=c);const v=Q.geoRhumbDestination(h,this._opInfo.originDimensions.value[1],0);v&&(m.stopPosition=v)};u();const f=this.ad(S.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(f.don(u))}{const u=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((f,h)=>f===this._opInfo.targetPosition.value[h])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const r=this._pickingXYProcessing(e),o=this._pickingZProcessing(e),s=this.disposeVar(S.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await S.step(u,async f=>{const h=()=>{const A=[...this.position??Bi.defaults.position];e.editingHeightOffset&&(A[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=A};f.disposer.dispose((h(),this.positionChanged.disposableOn(h)));const y={constraintMode:"none",startDragPos:[0,0,0]},m=A=>{if(!this.position)return;const p={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Cp(A,a,p,this.axisSnapPixelSize,y),this._opInfo.constraintMode.value=y.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=y.startDragPos};f.disposer.dispose(e.pointerMoveEvent.disposableOn(A=>{A.pointerEvent&&m(A.pointerEvent)})),await S.step(f,A=>new Promise((p,d)=>{A.disposer.dispose(d),A.disposer.dispose(e.pointerDownEvent.don(g=>{g.pointerEvent&&m(g.pointerEvent),g.pointerEvent&&g.pointerEvent.button===0&&y.constraintMode!=="none"&&p()}))}))}),this._opInfo.step.value=!1,await S.step(u,async f=>{if(e.incrementDisabledInputStack(),f.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const h=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),y=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,h,y),f.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(o.restart(),f.disposer.dispose(()=>o.cancel()));await S.step(f,h=>new Promise((y,m)=>{h.disposer.dispose(m),h.disposer.dispose(e.pointerUpEvent.don(()=>{y()})),h.disposer.dispose(e.pointerOutEvent.don(()=>{y()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?s.restart():s.isRunning&&s.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const a=this.ad(new Sa(e));return a.width=10,this.ad(S.track([a,"show"],[this,"enabled"])),a}}(t=>{t.createDefaultProps=()=>({...qn.createDefaultProps(),scale:S.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(Bi||(Bi={})),S.extendClassProps(Bi.prototype,Bi.createDefaultProps);const Lo=class Lo extends _n{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new S.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(S.react(!1)));L(this,"_status",this.disposeVar(S.react("None")));L(this,"_positionsChanged",this.ad(new S.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:a,deleteCount:r,items:o}of i){for(const s of o)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=a;s<a+r;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(S.nextAnimateFrame(()=>{var a;((a=i.pointerEvent)==null?void 0:a.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??Lo.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((a,r)=>a.every((o,s)=>{const l=this.editingPoints.get(r);return l.position&&l.position[s]===o})))}forceResetPositions(e){(this.enabled??Lo.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new rt(e));this.ad(S.track([i,"color"],[this,"polylineColor"])),this.ad(S.track([i,"width"],[this,"polylineWidth"])),this.ad(S.track([i,"show"],[this,"polylineShow"])),this.ad(S.track([i,"arcType"],[this,"polylineArcType"])),this.ad(S.track([i,"loop"],[this,"loop"]));{const a=()=>{const r=[];for(const o of this.getPositions())o[2]-=e.editingHeightOffset??0,r.push(o);i.positions=r};a(),this.ad(this.positionsChanged.don(a))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new S.CursorInfo(e.container,S.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const a=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}a==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):a==="Modifying"||a==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):a==="None"&&(i.text="",i.show=!1)}}))}};L(Lo,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(Lo,"defaults",{..._n.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Lo.baseImageUrl+"point-green.png",otherControlPointImageUrl:Lo.baseImageUrl+"point-yellow.png"});let sr=Lo;(t=>{t.createDefaultProps=()=>({..._n.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:S.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(sr||(sr={})),S.extendClassProps(sr.prototype,sr.createDefaultProps);let hj=0;class l2 extends S.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(S.reactArrayWithUndefined(void 0)));L(this,"_id",hj++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const a=this._menuPoi=this.ad(new es(e.czmViewer));a.enabled=!1,this.ad(S.track([a,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){a.position=void 0;return}const o=[...this.position];o[2]-=e.czmViewer.editingHeightOffset??0,a.position=o,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const o=e.editingPoints.indexOf(this)+1;o!==0&&(a.title=`控制点${o}`,o===1?a.imageUri=e.firstControlPointImageUrl??sr.defaults.firstControlPointImageUrl:a.imageUri=e.otherControlPointImageUrl??sr.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class u2 extends l2{constructor(n,e){super(n,e)}}class Dt extends sr{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new S.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new _r(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??Dt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Dt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await a.promise(S.step(a,async r=>{const o=r.disposer,s=o.ad(this._addingEditingProcessing());o.dispose(()=>"adding canceled!"),o.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await r.promise(new Promise(l=>{o.dispose(s.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new u2(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Dt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=S.createProcessingFromAsyncFunc(async a=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await a.promise(S.step(a,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new fj(this,r)));const f=s.disposer.disposeVar(new pj(this,r));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>f.do())),await s.promise(new Promise(h=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(y=>{y?(r++,h(!0)):h(!1)})),s.disposer.dispose(f.overEvent.disposableOnce(y=>{y?(r--,h(!0)):h(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps()})})(Dt||(Dt={})),S.extendClassProps(Dt.prototype,Dt.createDefaultProps);class fj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));const{placeEditing:a}=e;let r=new u2(e,void 0);e.editingPoints.splice(i,0,r);const o=()=>{(e.debug??Dt.defaults.debug)&&console.log("delete currentPosEditor");const u=e.editingPoints.indexOf(r);if(u===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(u,1)};if(a.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(S.track([r,"position"],[a,"position"])),a.enabled=!0;let s=!1;const l=()=>{o(),this._overEvent.emit(!1)};this.dispose(()=>{a.enabled=!1,!s&&l()}),this.dispose(a.overEvent.disposableOnce(()=>{s=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Dt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function dj(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class pj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_doEvent",this.disposeVar(new S.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(dj(e,i)))),(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Dt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class c2 extends Dt{constructor(n){super(n),this.loop=!1}}class h2 extends Dt{constructor(n){super(n),this.loop=!0}}class fp extends l2{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(a=>{n.menuPoiCommand(this,a)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new kr(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??at.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const a=()=>{if(!(n.enabled??at.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const o=n.editingPoints.indexOf(this);if(o===-1)break;const s=n.editingPoints.length;if(s===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??at.defaults.loop)&&o+1>=s)break;const u=this.position;if(!u)break;let f=(o+1)%s;const y=n.editingPoints.get(f).position;if(!y)break;const m=Tp(u,y);if(!m)break;m[2]-=n.czmViewer.editingHeightOffset??0,i.position=m;const A=n.editingPoints.length<(n.maxPointsNum??at.defaults.maxPointsNum);i.enabled=A,i.show=A;return}while(!1);i.enabled=!1,i.show=!1};a(),this.dispose(n.positionsChanged.disposableOn(a)),this.dispose(n.loopChanged.disposableOn(a)),this.dispose(n.enabledChanged.disposableOn(a))}this.dispose(i.clickEvent.disposableOn(a=>{if(a.button!==0||n.editingPoints.length>=(n.maxPointsNum??at.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const o=i.position?[...i.position]:void 0;o&&(o[2]+=n.czmViewer.editingHeightOffset??0);let s=new fp(n,o);n.editingPoints.splice(r+1,0,s),n.modify(s)}))}}}}class at extends sr{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"translationEditing");{const a=this.ad(S.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new S.ObjResettingWithEvent(a,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new Aj(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new Ti(e));i.enabled=!1,this.currentProcess=this.disposeVar(S.createProcessingFromAsyncFunc(async a=>{a.disposer.dispose(()=>{(this.debug??at.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??at.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await a.promise(S.step(a,async o=>{const s=o.disposer,l=s.ad(new yj(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(f=>l.modify(f))),await o.promise(new Promise(f=>{s.dispose(l.overEvent.disposableOnce(h=>{f(h)}))}))})),r===-1){(this.debug??at.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??at.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??at.defaults.loop;const s=this.editingPoints.get(r-1).position;if(!s)return;let l=r%this.editingPoints.length;const f=this.editingPoints.get(l).position;if(!f)return;const h=Tp(s,f);if(!h)return;h&&(h[2]+=this.czmViewer.editingHeightOffset??0);let y=new fp(this,h);this.editingPoints.splice(r,0,y)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(a=>new fp(this,a)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...sr.createDefaultProps(),moveWithFirstPosition:!1})})(at||(at={})),S.extendClassProps(at.prototype,at.createDefaultProps);class Aj extends S.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,a)=>{if(i===void 0||a===void 0)return;var r=[i[0]-a[0],i[1]-a[1],i[2]-a[2]];const o=this.multiPointsModifyEditing.editingPoints.length;for(let s=1;s<o;s++){const l=this.multiPointsModifyEditing.editingPoints.get(s),u=l.position;u!==void 0&&(l.position=[u[0]+r[0],u[1]+r[1],u[2]+r[2]])}})}}class yj extends S.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new S.Event));L(this,"_cancelEvent",this.disposeVar(new S.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new S.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const a=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(a);const r=o=>{a(),e.status="Modifying_Point",i=new gj(e,o),i.dispose(i.overEvent.disposableOn(()=>{a()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((o,s)=>{if(s==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(s==="modify")r(o);else if(s==="add"){const l=e.editingPoints.indexOf(o);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else s==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${s})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class gj extends S.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new S.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:a}=this._modifying;if(a.enabled=!0,a.heading=0,this.dispose(()=>{a.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");a.position=this._posEditor.position,this.dispose(S.track([this._posEditor,"position"],[a,"position"])),this.dispose(a.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class f2 extends at{constructor(n){super(n),this.loop=!1}}class d2 extends at{constructor(n){super(n),this.loop=!0}}class il extends Dt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(a<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([90,0,0]),distance:S.react(1)})})(il||(il={})),S.extendClassProps(il.prototype,il.createDefaultProps);class Ea extends at{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,a=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,a,i[0]);if(!r){this.positions=[n];return}const o=e*Math.sin(i[1]*Math.PI/180);r[2]+=o,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",at.baseImageUrl+"add.png"],["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",at.baseImageUrl+"delete.png"],["modify","修改当前控制点","",at.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),a=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(a)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],o=Math.atan(r/a)*180/Math.PI,s=Math.sqrt(a*a+r*r);this.rotation=[i,o,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),startPosition:S.reactArrayWithUndefined(void 0),endPosition:S.reactArrayWithUndefined(void 0),rotation:S.reactArray([0,0,0]),distance:S.react(0)})})(Ea||(Ea={})),S.extendClassProps(Ea.prototype,Ea.createDefaultProps);class p2 extends Dt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class A2 extends at{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class ol extends Dt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Dt.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(ol||(ol={})),S.extendClassProps(ol.prototype,ol.createDefaultProps);class al extends at{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(a=>(a[2]-=n.editingHeightOffset??0,[i,a]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new Ar(n));e.topOrBottom="bottom",this.ad(S.track([e,"color"],[this,"polylineColor"])),this.ad(S.track([e,"width"],[this,"polylineWidth"])),this.ad(S.track([e,"show"],[this,"polylineShow"])),this.ad(S.track([e,"arcType"],[this,"polylineArcType"])),this.ad(S.track([e,"loop"],[this,"loop"])),this.ad(S.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...at.createDefaultProps(),visibilityPositions:S.reactPositionsSet(void 0)})})(al||(al={})),S.extendClassProps(al.prototype,al.createDefaultProps);class y2 extends Ea{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class gn extends Q.EngineObject{constructor(e,i,a){super(e,i,a??!0);L(this,"_supportEditing",this.disposeVar(S.react(!0)));L(this,"_currentEditing",this.disposeVar(S.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Dt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof _r&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const vh=class vh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new _r(e));this.ad(e.clickEvent.don(a=>{var r;((r=a.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(vh,"type",vh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,vh));let D0=vh;const wh=class wh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new xr(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);a&&(this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(wh,"type",wh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,wh));let R0=wh;const bh=class bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Bi(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(S.bind([i,"position"],[n,"position"])),this.ad(S.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(bh,"type",bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,bh));let U0=bh;const _h=class _h extends gn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new Ti(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const a=[];for(let r=0;r<n.length;r++){const o=n[r];Reflect.has(o,"position")?a.push(o.position):o.points&&a.push(...o.points)}i.position=Q.getMinMaxCorner(a).center,this.ad(i.positionChanged.disposableOn((r,o)=>{if(!(!r||!o)){var s=Cn({originPosition:o},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=Cn({originPosition:o},[l.position])[0][0];l.position=zi({originPosition:o},[[u[0]+s[0],u[1]+s[1],u[2]+s[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const u=Cn({originPosition:o},l.points)[0];l.points=zi({originPosition:o},u.map(f=>[f[0]+s[0],f[1]+s[1],f[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(S.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const a=e.getEngineObject(n);this.ad(S.bind([i,"position"],[a.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((a,r)=>{if(a===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var o=Cn({originPosition:r},[a])[0][0];const s=Cn({originPosition:r},n.points)[0];n.points=zi({originPosition:r},s.map(l=>[l[0]+o[0],l[1]+o[1],l[2]+o[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(_h,"type",_h.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,_h));let dp=_h;const xh=class xh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new il(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const a=Et(n.position);if(k.Cartesian3.ZERO.equals(a)||!e.viewer)return;i.distance=ti(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(xh,"type",xh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,xh));let L0=xh;const Ch=class Ch extends gn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new Ea(e));do{if(Reflect.has(n,"position")){this.ad(S.bind([i,"startPosition"],[n,"position"])),this.ad(Qt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(S.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(S.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(S.bind([i,"distance"],[n,"distance"]));break}const o=Et(n.position);if(k.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=ti(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Ch,"type",Ch.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Ch));let z0=Ch;const Sh=class Sh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new h2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Sh,"type",Sh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Sh));let N0=Sh;const Eh=class Eh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new d2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Eh,"type",Eh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Eh));let V0=Eh;const Ph=class Ph extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new c2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ph,"type",Ph.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Ph));let Q0=Ph;const Th=class Th extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new f2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Th,"type",Th.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Th));let H0=Th;const Bh=class Bh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new p2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Bh,"type",Bh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Bh));let j0=Bh;const Ih=class Ih extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new A2(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Ih,"type",Ih.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,Ih));let G0=Ih;const Fh=class Fh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ol(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Fh,"type",Fh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Fh));let W0=Fh;const kh=class kh extends gn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new al(e));this.ad(i.enabledChanged.don(a=>{!a&&this.ad(S.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const a=()=>i.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!i.enabled&&a())),i.enabled=!0,this.ad(S.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(kh,"type",kh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,kh));let q0=kh;const Mh=class Mh extends gn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new y2(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),o=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let u=Q.getMinMaxCorner(n.points).center,f=[...u],h=l?n.points[0][2]:0;s?r?f[2]=n.extrudedHeight:f[2]=n.height+h:(o&&(u[2]=n.height),r&&(f[2]=n.extrudedHeight)),i.startPosition=u,i.distance=f[2]-u[2],i.moveWithFirstPosition=!1;let y=[...u];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(s?(n.points=n.points.map(m=>[m[0],m[1],m[2]+i.positions[0][2]-y[2]]),r?n.extrudedHeight=i.positions[1][2]:o&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(o&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),y=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const a=this.ad(S.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(a.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Mh,"type",Mh.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Mh));let K0=Mh;function g2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a,r=!0)=>{const o=Array.isArray(a)?[...a]:[a],s=i.editingID;e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"start",add:{modes:o}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"end",add:{modes:o}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(f=>{f.code=="Escape"&&l()}));let u=0;do{const f=o[u%o.length],h=await S.step(n,async y=>{const m=y.disposer,A=Q.EngineObject.contextEditing.getEngineObjConstructor(f,e.typeName);if(!A||!i.supportEditingModes().includes(f))return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;const p=new A(i,e);if(m.ad(()=>{!p.isDestroyed()&&p.destroy()}),p.supportEditing)e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${f},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:f,cIndex:u}}),e.notSupportEditingCount++,!1;return await y.promise(new Promise(g=>{p.isDestroyed()&&g(!1),m.ad(p.toDestroyEvent.don(()=>{console.log(`编辑模式${f}结束`),g(!1)})),r&&(m.ad(e.keyDownEvent.don(c=>{c.code=="Space"&&(console.log(`编辑模式${f}结束`),g(!1))})),m.ad(e.dblclickEvent.don(()=>g(!0))))}))});if(r&&h||!r&&u==o.length-1||e.notSupportEditingCount==o.length)break;u++}while(!0)});return t}function m2(){const t=S.createProcessingFromAsyncFunc(async(n,e,i,a)=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(s=>s.id.split("_")[0]),editingID:a,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&r()}));const o=new dp(i,e);n.disposer.ad(()=>{!o.isDestroyed()&&o.destroy()}),await n.promise(new Promise(s=>{o.isDestroyed()&&s(),n.disposer.ad(o.toDestroyEvent.don(()=>{console.log("移动结束"),s()})),n.disposer.ad(e.dblclickEvent.don(()=>s()))}))});return t}le.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.7-beta.5",e="2025-05-23T06:11:36.000Z",i="北京西部世界科技有限公司",a="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="7f8fce6b16c93213a0d5b0ffc79fe6eb93738621",s=((Date.now()-1747980696e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${s}个小时)
|
|
4886
4886
|
%c${a?a+`
|
|
4887
4887
|
`:""}当前网站正在使用${t},此软件版权归${i}所有
|
|
4888
|
-
`;le.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","
|
|
4888
|
+
`;le.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","7f8fce6b16c93213a0d5b0ffc79fe6eb93738621")},get info(){return l},get date(){return"2025-05-23T06:11:36.000Z"},get author(){return"suplyang"},get version(){return"3.0.7-beta.5"},get name(){return"earthsdk3-cesium"},get commitId(){return"7f8fce6b16c93213a0d5b0ffc79fe6eb93738621"},print(){console.info(this.info,`
|
|
4889
4889
|
font-size: 18px;
|
|
4890
4890
|
font-weight: 1000;
|
|
4891
4891
|
line-height: 1;
|
package/dist/earthsdk3-cesium.js
CHANGED
|
@@ -1486,8 +1486,8 @@ function uf(t, n) {
|
|
|
1486
1486
|
let e = !0;
|
|
1487
1487
|
return n === "default" ? (t._resourcesLoaded = t._texturesLoaded = !1, t._loader._state = 2, t._loader._loadResourcesPromise = void 0) : t.loader.components.nodes.forEach((o) => {
|
|
1488
1488
|
o.primitives.forEach((i) => {
|
|
1489
|
-
const s = i.material.name ??
|
|
1490
|
-
|
|
1489
|
+
const s = n[i.material.name] ?? n.default;
|
|
1490
|
+
s != null && (Reflect.has(s, "baseColorFactor") && s.baseColorFactor && (i.material.metallicRoughness.baseColorFactor = P_(s.baseColorFactor)), Reflect.has(s, "alphaMode") && (i.material.alphaMode = s.alphaMode), Reflect.has(s, "doubleSided") && (i.material.doubleSided = s.doubleSided), Reflect.has(s, "unlit") && (i.material.unlit = s.unlit), Reflect.has(s, "emissiveFactor") && s.emissiveFactor && (i.material.emissiveFactor = Ar(s.emissiveFactor)), Reflect.has(s, "metallicFactor") && (i.material.metallicRoughness.metallicFactor = s.metallicFactor), Reflect.has(s, "roughnessFactor") && (i.material.metallicRoughness.roughnessFactor = s.roughnessFactor), Reflect.has(s, "baseColorTexture") && s.baseColorTexture != null && (i.material.metallicRoughness.baseColorTexture ? i.material.metallicRoughness.baseColorTexture = s.baseColorTexture : e = !1), Reflect.has(s, "normalTexture") && s.normalTexture != null && (i.material.metallicRoughness.normalTexture = s.normalTexture));
|
|
1491
1491
|
});
|
|
1492
1492
|
}), t.resetDrawCommands(), e;
|
|
1493
1493
|
}
|
|
@@ -71655,7 +71655,7 @@ function tV() {
|
|
|
71655
71655
|
}
|
|
71656
71656
|
let pm;
|
|
71657
71657
|
try {
|
|
71658
|
-
const t = "earthsdk3-cesium", n = "3.0.7-beta.
|
|
71658
|
+
const t = "earthsdk3-cesium", n = "3.0.7-beta.5", e = "2025-05-23T06:11:36.000Z", r = "北京西部世界科技有限公司", o = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", i = "7f8fce6b16c93213a0d5b0ffc79fe6eb93738621", a = ((Date.now() - 1747980696e3) / 36e5).toFixed(1), l = `%c🌏 ${t}%c ${n}.${i.slice(0, 8)}.${e} (距今${a}个小时)
|
|
71659
71659
|
%c${o ? o + `
|
|
71660
71660
|
` : ""}当前网站正在使用${t},此软件版权归${r}所有
|
|
71661
71661
|
`;
|
|
@@ -71669,7 +71669,7 @@ try {
|
|
|
71669
71669
|
},
|
|
71670
71670
|
// @ts-ignore
|
|
71671
71671
|
get gituri() {
|
|
71672
|
-
return GITURI_ && GITURI_.replace("${commitId}", "
|
|
71672
|
+
return GITURI_ && GITURI_.replace("${commitId}", "7f8fce6b16c93213a0d5b0ffc79fe6eb93738621");
|
|
71673
71673
|
},
|
|
71674
71674
|
// @ts-ignore
|
|
71675
71675
|
get info() {
|
|
@@ -71677,7 +71677,7 @@ try {
|
|
|
71677
71677
|
},
|
|
71678
71678
|
// @ts-ignore
|
|
71679
71679
|
get date() {
|
|
71680
|
-
return "2025-05-
|
|
71680
|
+
return "2025-05-23T06:11:36.000Z";
|
|
71681
71681
|
},
|
|
71682
71682
|
// @ts-ignore
|
|
71683
71683
|
get author() {
|
|
@@ -71685,7 +71685,7 @@ try {
|
|
|
71685
71685
|
},
|
|
71686
71686
|
// @ts-ignore
|
|
71687
71687
|
get version() {
|
|
71688
|
-
return "3.0.7-beta.
|
|
71688
|
+
return "3.0.7-beta.5";
|
|
71689
71689
|
},
|
|
71690
71690
|
// @ts-ignore
|
|
71691
71691
|
get name() {
|
|
@@ -71693,7 +71693,7 @@ try {
|
|
|
71693
71693
|
},
|
|
71694
71694
|
// @ts-ignore
|
|
71695
71695
|
get commitId() {
|
|
71696
|
-
return "
|
|
71696
|
+
return "7f8fce6b16c93213a0d5b0ffc79fe6eb93738621";
|
|
71697
71697
|
},
|
|
71698
71698
|
print() {
|
|
71699
71699
|
console.info(
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
material.shininess = 10.0;
|
|
65
65
|
|
|
66
66
|
return material;
|
|
67
|
-
}`}})}function ys(t,n){let e=!0;return n==="default"?(t._resourcesLoaded=t._texturesLoaded=!1,t._loader._state=2,t._loader._loadResourcesPromise=void 0):t.loader.components.nodes.forEach(o=>{o.primitives.forEach(i=>{const a=i.material.name??
|
|
67
|
+
}`}})}function ys(t,n){let e=!0;return n==="default"?(t._resourcesLoaded=t._texturesLoaded=!1,t._loader._state=2,t._loader._loadResourcesPromise=void 0):t.loader.components.nodes.forEach(o=>{o.primitives.forEach(i=>{const a=n[i.material.name]??n.default;a!=null&&(Reflect.has(a,"baseColorFactor")&&a.baseColorFactor&&(i.material.metallicRoughness.baseColorFactor=Zh(a.baseColorFactor)),Reflect.has(a,"alphaMode")&&(i.material.alphaMode=a.alphaMode),Reflect.has(a,"doubleSided")&&(i.material.doubleSided=a.doubleSided),Reflect.has(a,"unlit")&&(i.material.unlit=a.unlit),Reflect.has(a,"emissiveFactor")&&a.emissiveFactor&&(i.material.emissiveFactor=Jn(a.emissiveFactor)),Reflect.has(a,"metallicFactor")&&(i.material.metallicRoughness.metallicFactor=a.metallicFactor),Reflect.has(a,"roughnessFactor")&&(i.material.metallicRoughness.roughnessFactor=a.roughnessFactor),Reflect.has(a,"baseColorTexture")&&a.baseColorTexture!=null&&(i.material.metallicRoughness.baseColorTexture?i.material.metallicRoughness.baseColorTexture=a.baseColorTexture:e=!1),Reflect.has(a,"normalTexture")&&a.normalTexture!=null&&(i.material.metallicRoughness.normalTexture=a.normalTexture))})}),t.resetDrawCommands(),e}async function gs(t,n,e){let r;const o=n!=null&&n.offset?_.Cartesian2.unpack(n.offset):_.Cartesian2.ZERO;let i=_.Math.toRadians((n==null?void 0:n.rotate)??0);const a=n!=null&&n.scale?_.Cartesian2.unpack(n==null?void 0:n.scale):new _.Cartesian2(1,1);i=-i,r=new _.Matrix3(Math.cos(i)*a.x,-Math.sin(i)*a.y,o.x,Math.sin(i)*a.x,Math.cos(i)*a.y,o.y,0,0,1);const s=new _.Sampler({wrapS:_.TextureWrap.REPEAT,wrapT:_.TextureWrap.REPEAT,minificationFilter:_.TextureMinificationFilter[(e==null?void 0:e.minFilter)||"LINEAR"],magnificationFilter:_.TextureMagnificationFilter[(e==null?void 0:e.magFilter)||"LINEAR"]});return _.Resource.createIfNeeded(n.value).fetchImage().then(l=>{if(!t)return;const u=Sd(t.scene.context,l,{flipY:!1});u.sampler=s;const c=new _.ModelComponents.TextureReader;return c.index=0,c.texture=u,c.texCoord=0,c.scale=void 0,c.transform=r,c.channels=void 0,c})}function QC(t){if(t.url)return`
|
|
68
68
|
var terrainProvider = new Cesium.CesiumTerrainProvider({
|
|
69
69
|
url: ${JC(typeof t.url=="object"?t.url.url:t.url)},
|
|
70
70
|
});
|
|
@@ -4634,10 +4634,10 @@ void main()
|
|
|
4634
4634
|
{
|
|
4635
4635
|
out_FragColor = u_color;
|
|
4636
4636
|
}
|
|
4637
|
-
`,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},st,t)}class e6 extends y.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let r;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(i=>{const a=r=this._getStartInfo(i.pointerEvent);a&&(this.owner.hoveredPlaneType=a.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(i=>{r&&r.currentPlaneType!=="none"&&(o.restart(void 0,e,r),r=void 0)})),this.dispose(e.dblclickEvent.disposableOn(i=>{do{const a=this._getStartInfo(i.pointerEvent);if(!a||a.currentPlaneType==="none")break;const{currentPlaneType:s}=a,l=[...this.owner.selfRotation];l[Kn.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(y.createProcessingFromAsyncFunc(async(n,e,r)=>{const o=this.owner.circles[r.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(i=>{if(r&&i.pointerEvent){const{offsetX:a,offsetY:s}=i.pointerEvent,l=[a,s],{currentPlaneType:u}=r;if(u==="none")return;const c=this.owner.getPlane(u);if(!r.currentV)return;const h=c.pick(l);if(!h||!this.owner.cartesian)return;const f=_.Cartesian3.subtract(r.currentV,this.owner.cartesian,new _.Cartesian3);_.Cartesian3.normalize(f,f);const p=_.Cartesian3.subtract(h,this.owner.cartesian,new _.Cartesian3);if(_.Cartesian3.normalize(p,p),!c.normal||!c.origin)return;const d=ug(f,p,c.normal),m=ug(c.origin,f,c.normal),v=ug(c.origin,p,c.normal);{const w=[...this.owner.selfRotation];w[Kn.rotationNum[u]]=r.startRotation+d,this.owner.selfRotation=w,o.circleStartRotation=m,o.circleEndRotation=v}}})),this.owner.movingPlaneType=r.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await y.step(n,i=>new Promise((a,s)=>{i.disposer.dispose(s),i.disposer.dispose(e.pointerUpEvent.don(()=>{a()})),i.disposer.dispose(e.pointerOutEvent.don(()=>{a()}))}))}))}_pickPlane(n,e,r,o,i){const a=this.owner.cartesian;if(!a)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(r).pick(o);if(!l)return;const u=_.Cartesian3.distance(a,l),c=i/4,h=c*3/128;if(!(u>=c-h&&u<=c+h))return;const p=_.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=p||(n.currentPlaneType=r,n.currentD2c=p,n.currentV=l,n.startRotation=s[Kn.rotationNum[r]])}_getStartInfo(n){var c;const{czmViewer:e}=this.owner,r=(c=e.viewer)==null?void 0:c.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Ai(r,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:i,offsetY:a}=n,s=[i,a],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,r,"heading",s,o),this._pickPlane(u,r,"pitch",s,o),this._pickPlane(u,r,"roll",s,o),u}}function ug(t,n,e){const r=_.Cartesian3.cross(n,t,new _.Cartesian3);if(r.equals(_.Cartesian3.ZERO))return 0;_.Cartesian3.normalize(r,r);const o=_.Cartesian3.dot(r,e);let i=Math.acos(_.Cartesian3.dot(t,n))*180/Math.PI;return i=o>0?i:-i,i}const Go=class Go extends An{constructor(e){super();F(this,"_hoveredPlaneType",this.disposeVar(y.react("none")));F(this,"_movingPlaneType",this.disposeVar(y.react("none")));F(this,"_circles");F(this,"_czmCameraModel");F(this,"_cartesian");F(this,"_planes",{heading:this.disposeVar(new YF(this)),pitch:this.disposeVar(new KF(this)),roll:this.disposeVar(new QF(this))});F(this,"_rotatorRunningResetting",this.disposeVar(new y.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new e6(this)})));this._czmViewer=e;const r=this._czmViewer;if(this._circles={heading:this._createRotatorCircle(r,"heading"),pitch:this._createRotatorCircle(r,"pitch"),roll:this._createRotatorCircle(r,"roll")},!!r.viewer){{const i=()=>{this._cartesian=this.position&&vt(this.position)||void 0};i(),this.dispose(this.positionChanged.disposableOn(i))}this._createCameraModel(r)}}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 Vt(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(y.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],r=>r*.1)),this.dispose(y.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(y.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const r=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=_.Matrix4.toArray(o))};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{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)};r(),this.dispose(this.enabledChanged.disposableOn(r)),this.dispose(this.showHelperChanged.disposableOn(r))}}_createRotatorCircle(e,r){const o=this.ad(new Ja(e));this.dispose(y.track([o,"position"],[this,"position"])),this.dispose(y.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(y.track([o,"debug"],[this,"debug"])),this.dispose(y.track([o,"rotation"],[this,"rotation"]));{const i=()=>{o.selfRotation=Go.rotationFuncs[r](this.selfRotation),o.circleRotation=this.selfRotation[Go.rotationNum[r]]};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{const a=this.movingPlaneType===r,s=this.hoveredPlaneType===r,u=[0,0,0,a||s?1:.8];u[Go.rotationNum[r]]=1,o.color=u};i(),this.dispose(this.movingPlaneTypeChanged.disposableOn(i)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(i))}return o}};F(Go,"rotationNum",{heading:0,pitch:1,roll:2}),F(Go,"rotationFuncs",{heading:([e,r,o])=>[0,0,0],pitch:([e,r,o])=>[e,0,-90],roll:([e,r,o])=>[e,r+90,0]});let Kn=Go;(t=>{t.createDefaultProps=()=>({...An.createDefaultProps(),rotation:y.reactArray([0,0,0]),selfRotation:y.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(Kn||(Kn={})),y.extendClassProps(Kn.prototype,Kn.createDefaultProps);const Wo=class Wo extends y.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??Wo.defaults.positions[0],this.stopPosition??Wo.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??Wo.defaults.positions[0],n??Wo.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new je(n,e));o.arcType="RHUMB";const i=this.ad(new Dn(n,e));this.ad(y.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(y.track([i,"allowPicking"],[this,"allowPicking"]));{const a=()=>{o.show=i.show=this.show};a(),this.ad(this.showChanged.don(a))}{const a=()=>{o.width=this.width/2,i.pixelSize=this.width};a(),this.ad(this.widthChanged.don(a))}{const a=()=>{o.color=i.color=this.color};a(),this.ad(this.colorChanged.don(a))}{const a=()=>{o.positions=this.positions,i.position=this.stopPosition};a(),this.dispose(this.startPositionChanged.disposableOn(a)),this.dispose(this.stopPositionChanged.disposableOn(a))}}};F(Wo,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Ro=Wo;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:y.reactPositions(t.defaults.positions),width:10,color:y.reactArray([1,0,0,1])})})(Ro||(Ro={})),y.extendClassProps(Ro.prototype,Ro.createDefaultProps);class Ki extends An{constructor(e){super();F(this,"_lastPosition");F(this,"_opInfo",{step:this.ad(y.react(!1)),moved:this.ad(y.react(!1)),constraintMode:this.disposeVar(y.react("none")),originPosition:this.disposeVar(y.reactArray([0,0,0])),originHeading:this.disposeVar(y.react(0)),originDimensions:this.disposeVar(y.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(y.reactArray([0,0,0])),movingPosition:this.disposeVar(y.reactArray([0,0,0])),targetPosition:this.disposeVar(y.reactArray([0,0,0])),targetHeading:this.disposeVar(y.react(0))});F(this,"_scaleAxis");F(this,"_pickingXYProcessing",e=>this.disposeVar(new y.Processing((r,o,i)=>{const a=[0,0,0],s=new _.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=Un(y.getDomEventCurrentTargetPos(l.pointerEvent));if(!Bo(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ho(s,a),this._opInfo.constraintMode.value==="x"?Jr(this._opInfo.originPosition.value,this._opInfo.originHeading.value,a,a):this._opInfo.constraintMode.value==="y"?Jr(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 c=[0,0,0];V.geoRhumbDestination(a,i,o,c),this._opInfo.targetPosition.value=c;let h=this.scale[0],f=this.scale[1];const p=V.geoDistance(c,this._opInfo.originPosition.value)-V.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...c];const d=this._opInfo.originDimensions.value[0]/100;p!=0&&this._opInfo.constraintMode.value==="y"&&(p>0?h+=d:h-=d),p!=0&&this._opInfo.constraintMode.value==="x"&&(p>0?f+=d:f-=d),h<=0&&(h+=d),f<=0&&(f+=d),this.scale=[h??1,f??1,this.scale[2]??1]})})));F(this,"_pickingZProcessing",e=>this.disposeVar(new y.Processing(()=>{const r=new _.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(i=>{if(!i.pointerEvent||!e.viewer)return;const a=Un(y.getDomEventCurrentTargetPos(i.pointerEvent));if(!lc(e.viewer.scene,vt(this._opInfo.originPosition.value),a,r))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ne(r,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 c=o[2]-this._lastPosition[2];this._lastPosition=[...o];const h=this._opInfo.originDimensions.value[0]/100;c!=0&&(c>0?u+=h:u-=h),u<=0&&(u+=h),this.scale=[this.scale[0]??1,this.scale[1]??1,u??1]}})})));const r=e.viewer;if(!r)return;const{scene:o}=r;this.ad(new cd(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:c,yAxis:h,xAxis:f}=this._scaleAxis,p=this._opInfo.constraintMode.value,d=this._opInfo.step;c.color=[0,0,1,.99],h.color=[0,1,0,.99],f.color=[1,0,0,.99],p==="x"?f.color=d?[1,1,0,.8]:[1,1,0,.99]:p==="y"?h.color=d?[1,1,0,.8]:[1,1,0,.99]:p==="z"&&(c.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:h=Ki.defaults.position}=this,{zAxis:f,yAxis:p,xAxis:d}=this._scaleAxis;f.startPosition=p.startPosition=d.startPosition=h;const[m,v,w]=h;f.stopPosition=[m,v,w+this._opInfo.originDimensions.value[2]];const g=V.geoRhumbDestination(h,this._opInfo.originDimensions.value[0],90);g&&(d.stopPosition=g);const b=V.geoRhumbDestination(h,this._opInfo.originDimensions.value[1],0);b&&(p.stopPosition=b)};u();const c=this.ad(y.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(c.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((c,h)=>c===this._opInfo.targetPosition.value[h])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const i=this._pickingXYProcessing(e),a=this._pickingZProcessing(e),s=this.disposeVar(y.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await y.step(u,async c=>{const h=()=>{const d=[...this.position??Ki.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};c.disposer.dispose((h(),this.positionChanged.disposableOn(h)));const f={constraintMode:"none",startDragPos:[0,0,0]},p=d=>{if(!this.position)return;const m={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Jh(d,o,m,this.axisSnapPixelSize,f),this._opInfo.constraintMode.value=f.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=f.startDragPos};c.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&p(d.pointerEvent)})),await y.step(c,d=>new Promise((m,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(w=>{w.pointerEvent&&p(w.pointerEvent),w.pointerEvent&&w.pointerEvent.button===0&&f.constraintMode!=="none"&&m()}))}))}),this._opInfo.step.value=!1,await y.step(u,async c=>{if(e.incrementDisabledInputStack(),c.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const h=V.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),f=V.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);i.restart(void 0,h,f),c.disposer.dispose(()=>i.cancel())}else this._opInfo.constraintMode.value==="z"&&(a.restart(),c.disposer.dispose(()=>a.cancel()));await y.step(c,h=>new Promise((f,p)=>{h.disposer.dispose(p),h.disposer.dispose(e.pointerUpEvent.don(()=>{f()})),h.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,r){const o=this.ad(new Ro(e));return o.width=10,this.ad(y.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...An.createDefaultProps(),scale:y.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(Ki||(Ki={})),y.extendClassProps(Ki.prototype,Ki.createDefaultProps);const Kr=class Kr extends rn{constructor(e){super();F(this,"_editingPoints",this.disposeVar(new y.ObservableArray));F(this,"_cancelEvent",this.disposeVar(new y.Event));F(this,"_currentProcess");F(this,"_menuPoiEnabled",this.disposeVar(y.react(!1)));F(this,"_status",this.disposeVar(y.react("None")));F(this,"_positionsChanged",this.ad(new y.Event));F(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(r=>{for(let{start:o,deleteCount:i,items:a}of r){for(const s of a)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=o;s<o+i;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let r of this.editingPoints)r.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(r=>{this.ad(y.nextAnimateFrame(()=>{var o;((o=r.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(r=>{this._currentProcess&&(r?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const r=()=>{this.polylineShow=this.czmViewer.editingLineShow};r(),this.ad(this.czmViewer.editingLineShowChanged.don(r))}}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 r of this._editingPoints)r.position&&e.push([...r.position]);return e}resetPositions(e){if(this.enabled??Kr.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const r=e||[];return!(r.length===this.editingPoints.length&&r.every((o,i)=>o.every((a,s)=>{const l=this.editingPoints.get(i);return l.position&&l.position[s]===a})))}forceResetPositions(e){(this.enabled??Kr.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 r=this.ad(new je(e));this.ad(y.track([r,"color"],[this,"polylineColor"])),this.ad(y.track([r,"width"],[this,"polylineWidth"])),this.ad(y.track([r,"show"],[this,"polylineShow"])),this.ad(y.track([r,"arcType"],[this,"polylineArcType"])),this.ad(y.track([r,"loop"],[this,"loop"]));{const o=()=>{const i=[];for(const a of this.getPositions())a[2]-=e.editingHeightOffset??0,i.push(a);r.positions=i};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const r=this._cursorInfo=this.ad(new y.CursorInfo(e.container,y.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(r){if(!this.hideCursorInfo){r.show=!1;return}o==="Adding"?(r.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",r.show=!0):o==="Modifying"||o==="Modifying_Point"?(r.text="Esc键或左键双击:退出编辑状态",r.show=!0):o==="None"&&(r.text="",r.show=!1)}}))}};F(Kr,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),F(Kr,"defaults",{...rn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Kr.baseImageUrl+"point-green.png",otherControlPointImageUrl:Kr.baseImageUrl+"point-yellow.png"});let Fn=Kr;(t=>{t.createDefaultProps=()=>({...rn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:y.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})})(Fn||(Fn={})),y.extendClassProps(Fn.prototype,Fn.createDefaultProps);let t6=0;class Ix extends y.Destroyable{constructor(e,r){super();F(this,"_position",this.disposeVar(y.reactArrayWithUndefined(void 0)));F(this,"_id",t6++);F(this,"_menuPoi");r&&(this.position=r),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 la(e.czmViewer));o.enabled=!1,this.ad(y.track([o,"show"],[e,"enabled"]));{const i=()=>{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()};i(),this.d(this.positionChanged.don(i))}{const i=()=>{const a=e.editingPoints.indexOf(this)+1;a!==0&&(o.title=`控制点${a}`,a===1?o.imageUri=e.firstControlPointImageUrl??Fn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Fn.defaults.otherControlPointImageUrl)};i(),this.dispose(e.editingPoints.changedEvent.disposableOn(i))}}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 Mx extends Ix{constructor(n,e){super(n,e)}}class Pt extends Fn{constructor(e){super(e);F(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new y.Event));F(this,"placeEditing");if(!e.viewer)return;const r=this.placeEditing=this.ad(new Yn(e));r.enabled=!1,this.currentProcess=this.disposeVar(y.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(y.step(o,async i=>{const a=i.disposer,s=a.ad(this._addingEditingProcessing());a.dispose(()=>"adding canceled!"),a.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await i.promise(new Promise(l=>{a.dispose(s.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var i;((i=o.pointerEvent)==null?void 0:i.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const r=e?e.map(o=>new Mx(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...r),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},r=y.createProcessingFromAsyncFunc(async o=>{let i=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(y.step(o,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new n6(this,i)));const c=s.disposer.disposeVar(new r6(this,i));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>c.do())),await s.promise(new Promise(h=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(f=>{f?(i++,h(!0)):h(!1)})),s.disposer.dispose(c.overEvent.disposableOnce(f=>{f?(i--,h(!0)):h(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))})))break;while(!0)});return r.start(),r}}(t=>{t.createDefaultProps=()=>({...Fn.createDefaultProps()})})(Pt||(Pt={})),y.extendClassProps(Pt.prototype,Pt.createDefaultProps);class n6 extends y.Destroyable{constructor(e,r){super();F(this,"_overEvent",this.disposeVar(new y.Event));const{placeEditing:o}=e;let i=new Mx(e,void 0);e.editingPoints.splice(r,0,i);const a=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const u=e.editingPoints.indexOf(i);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(y.track([i,"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,i.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${r})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${r})`)})}get overEvent(){return this._overEvent}}function i6(t,n){const e=t.editingPoints,r=n-1;return r<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(r,1),!0)}class r6 extends y.Destroyable{constructor(e,r){super();F(this,"_overEvent",this.disposeVar(new y.Event));F(this,"_doEvent",this.disposeVar(new y.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(i6(e,r)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${r})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${r})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class Dx extends Pt{constructor(n){super(n),this.loop=!1}}class Rx extends Pt{constructor(n){super(n),this.loop=!0}}class Vh extends Ix{constructor(n,e){super(n,e);{const{menuPoi:r}=this;r.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],r.clickCommandName="modify",r.rightClickCommandName="delete",this.dispose(r.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(r.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const r=this.ad(new ai(n.czmViewer));{r.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,r.tooltip="点击增加一个控制点",r.bgColor=[0,0,0,.6],r.fgColor=[1,1,1,1],r.size=[8,8],r.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){r.enabled=!1,r.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??tt.defaults.loop)&&a+1>=s)break;const u=this.position;if(!u)break;let c=(a+1)%s;const f=n.editingPoints.get(c).position;if(!f)break;const p=nd(u,f);if(!p)break;p[2]-=n.czmViewer.editingHeightOffset??0,r.position=p;const d=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);r.enabled=d,r.show=d;return}while(!1);r.enabled=!1,r.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(r.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const i=n.editingPoints.indexOf(this);if(i===-1)return;const a=r.position?[...r.position]:void 0;a&&(a[2]+=n.czmViewer.editingHeightOffset??0);let s=new Vh(n,a);n.editingPoints.splice(i+1,0,s),n.modify(s)}))}}}}class tt extends Fn{constructor(e){super(e);F(this,"_menuPoiCommand",this.disposeVar(new y.Event));F(this,"_forceModifyPosEditorEvent",this.disposeVar(new y.Event));F(this,"_overEvent",this.disposeVar(new y.Event));F(this,"translationEditing");{const o=this.ad(y.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new y.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new o6(this.editingPoints.get(0),this)}))}const r=this.translationEditing=this.disposeVar(new Yi(e));r.enabled=!1,this.currentProcess=this.disposeVar(y.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let i=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",i=await o.promise(y.step(o,async a=>{const s=a.disposer,l=s.ad(new a6(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(i===-1||i>=this.editingPoints.length?0:i)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(c=>l.modify(c))),await a.promise(new Promise(c=>{s.dispose(l.overEvent.disposableOnce(h=>{c(h)}))}))})),i===-1){(this.debug??tt.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??tt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??tt.defaults.loop;const s=this.editingPoints.get(i-1).position;if(!s)return;let l=i%this.editingPoints.length;const c=this.editingPoints.get(l).position;if(!c)return;const h=nd(s,c);if(!h)return;h&&(h[2]+=this.czmViewer.editingHeightOffset??0);let f=new Vh(this,h);this.editingPoints.splice(i,0,f)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,r){this._menuPoiCommand.emit(e,r)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const r=e?e.map(o=>new Vh(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...r),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Fn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),y.extendClassProps(tt.prototype,tt.createDefaultProps);class o6 extends y.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((r,o)=>{if(r===void 0||o===void 0)return;var i=[r[0]-o[0],r[1]-o[1],r[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]+i[0],u[1]+i[1],u[2]+i[2]])}})}}class a6 extends y.Destroyable{constructor(e){super();F(this,"_overEvent",this.disposeVar(new y.Event));F(this,"_cancelEvent",this.disposeVar(new y.Event));F(this,"_forceModifyPosEditorEvent",this.disposeVar(new y.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let r;const o=()=>{r==null||r.destroy(),r=void 0,e.status="Modifying"};this.dispose(o);const i=a=>{o(),e.status="Modifying_Point",r=new s6(e,a),r.dispose(r.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(i)),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")i(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 s6 extends y.Destroyable{constructor(e,r){super();F(this,"_overEvent",this.disposeVar(new y.Event));this._modifying=e,this._posEditor=r,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(y.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(i=>{i||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class Ox extends tt{constructor(n){super(n),this.loop=!1}}class zx extends tt{constructor(n){super(n),this.loop=!0}}class ja extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,r=this.rotation,o=e*Math.cos(r[1]*Math.PI/180),i=V.geoDestination(n,o,r[0]);if(!i){this.positions=[n];return}const a=e*Math.sin(r[1]*Math.PI/180);i[2]+=a,this.positions=[n,i],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=i)}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 r=V.geoHeading(this.startPosition,this.endPosition),o=V.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const i=this.endPosition[2]-this.startPosition[2],a=Math.atan(i/o)*180/Math.PI,s=Math.sqrt(o*o+i*i);this.rotation=[r,a,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:y.reactArrayWithUndefined(void 0),endPosition:y.reactArrayWithUndefined(void 0),rotation:y.reactArray([90,0,0]),distance:y.react(1)})})(ja||(ja={})),y.extendClassProps(ja.prototype,ja.createDefaultProps);class Oo extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,r=this.rotation,o=e*Math.cos(r[1]*Math.PI/180),i=V.geoDestination(n,o,r[0]);if(!i){this.positions=[n];return}const a=e*Math.sin(r[1]*Math.PI/180);i[2]+=a,this.positions=[n,i],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=i)}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","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.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","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]];const r=V.geoHeading(this.startPosition,this.endPosition),o=V.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const i=this.endPosition[2]-this.startPosition[2],a=Math.atan(i/o)*180/Math.PI,s=Math.sqrt(o*o+i*i);this.rotation=[r,a,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:y.reactArrayWithUndefined(void 0),endPosition:y.reactArrayWithUndefined(void 0),rotation:y.reactArray([0,0,0]),distance:y.react(0)})})(Oo||(Oo={})),y.extendClassProps(Oo.prototype,Oo.createDefaultProps);class Fx extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class Lx extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class es extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const r=[...this.positions[0]];r[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[r,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new Hn(n));e.topOrBottom="bottom",this.ad(y.track([e,"color"],[this,"polylineColor"])),this.ad(y.track([e,"width"],[this,"polylineWidth"])),this.ad(y.track([e,"show"],[this,"polylineShow"])),this.ad(y.track([e,"arcType"],[this,"polylineArcType"])),this.ad(y.track([e,"loop"],[this,"loop"])),this.ad(y.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:y.reactPositionsSet(void 0)})})(es||(es={})),y.extendClassProps(es.prototype,es.createDefaultProps);class ts extends tt{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const r=[...this.positions[0]];r[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[r,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new Hn(n));e.topOrBottom="bottom",this.ad(y.track([e,"color"],[this,"polylineColor"])),this.ad(y.track([e,"width"],[this,"polylineWidth"])),this.ad(y.track([e,"show"],[this,"polylineShow"])),this.ad(y.track([e,"arcType"],[this,"polylineArcType"])),this.ad(y.track([e,"loop"],[this,"loop"])),this.ad(y.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:y.reactPositionsSet(void 0)})})(ts||(ts={})),y.extendClassProps(ts.prototype,ts.createDefaultProps);class Nx extends Oo{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 Jt extends V.EngineObject{constructor(e,r,o){super(e,r,o??!0);F(this,"_supportEditing",this.disposeVar(y.react(!0)));F(this,"_currentEditing",this.disposeVar(y.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var i;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((i=this.currentEditing.currentProcess)!=null&&i.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 Yn&&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 Hu=class Hu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Yn(e));this.ad(e.clickEvent.don(o=>{var i;((i=o.pointerEvent)==null?void 0:i.button)==2&&(r.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(y.bind([r,"position"],[n,"position"])),r.enabled=!r.position||V.equalsN3(r.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};F(Hu,"type",Hu.registerEditing("ESCesiumViewer",V.ESJEditingMode.Place,Hu));let cg=Hu;const $u=class $u extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Kn(e));r.rotation=[90,0,0],this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof V.ES3DTileset){V.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(y.bind([r,"position"],[o.czm3DTiles,"position"])),this.ad(y.bind([r,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(y.bind([r,"position"],[n,"position"])),this.ad(y.bind([r,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};F($u,"type",$u.registerEditing("ESCesiumViewer",V.ESJEditingMode.Rotation,$u));let hg=$u;const Bu=class Bu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Ki(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(y.bind([r,"position"],[n,"position"])),this.ad(y.bind([r,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};F(Bu,"type",Bu.registerEditing("ESCesiumViewer",V.ESJEditingMode.Scale,Bu));let dg=Bu;const Zu=class Zu extends Jt{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const r=this.currentEditing=this.ad(new Yi(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let i=0;i<n.length;i++){const a=n[i];Reflect.has(a,"position")?o.push(a.position):a.points&&o.push(...a.points)}r.position=V.getMinMaxCorner(o).center,this.ad(r.positionChanged.disposableOn((i,a)=>{if(!(!i||!a)){var s=an({originPosition:a},[i])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=an({originPosition:a},[l.position])[0][0];l.position=sr({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=an({originPosition:a},l.points)[0];l.points=sr({originPosition:a},u.map(c=>[c[0]+s[0],c[1]+s[1],c[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(y.bind([r,"position"],[n,"position"]));break}if(n instanceof V.ES3DTileset){V.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(y.bind([r,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}r.position=V.getMinMaxCorner(n.points).center,this.ad(r.positionChanged.disposableOn((o,i)=>{if(o===void 0||i===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var a=an({originPosition:i},[o])[0][0];const s=an({originPosition:i},n.points)[0];n.points=sr({originPosition:i},s.map(l=>[l[0]+a[0],l[1]+a[1],l[2]+a[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};F(Zu,"type",Zu.registerEditing("ESCesiumViewer",V.ESJEditingMode.Translation,Zu));let Uh=Zu;const Xu=class Xu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new ja(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(y.bind([r,"startPosition"],[n,"position"])),this.ad(Mt([r,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(y.bind([r,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(y.bind([r,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(y.bind([r,"distance"],[n,"distance"]));break}const o=vt(n.position);if(_.Cartesian3.ZERO.equals(o)||!e.viewer)return;r.distance=Ai(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1);r.startPosition&&!V.equalsN3(r.startPosition,[0,0,0])&&r.init(),r.enabled=!0}};F(Xu,"type",Xu.registerEditing("ESCesiumViewer",V.ESJEditingMode.DoublePointsAppend,Xu));let fg=Xu;const Yu=class Yu extends Jt{constructor(n,e){var i;if(super(n,e,!0),!e.viewer)return;const r=this.currentEditing=this.ad(new Oo(e));do{if(Reflect.has(n,"position")){this.ad(y.bind([r,"startPosition"],[n,"position"])),this.ad(Mt([r,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(y.bind([r,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(y.bind([r,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(y.bind([r,"distance"],[n,"distance"]));break}const a=vt(n.position);if(_.Cartesian3.ZERO.equals(a)||!e.viewer)return;r.distance=Ai(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((i=n.points)==null?void 0:i.length)==2){r.moveWithFirstPosition=!1;const a=()=>r.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!r.enabled&&a())),this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1;return}while(!1);r.init(),r.enabled=!0;const o=this.ad(y.createNextAnimateFrameEvent(r.enabledChanged,r.startPositionChanged));this.ad(o.don(()=>{(!r.enabled||!r.startPosition||V.equalsN3(r.startPosition,[0,0,0]))&&this.destroy()}))}};F(Yu,"type",Yu.registerEditing("ESCesiumViewer",V.ESJEditingMode.DoublePointsModify,Yu));let pg=Yu;const Ku=class Ku extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Rx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(Ku,"type",Ku.registerEditing("ESCesiumViewer",V.ESJEditingMode.CircularAppend,Ku));let mg=Ku;const Qu=class Qu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new zx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(Qu,"type",Qu.registerEditing("ESCesiumViewer",V.ESJEditingMode.CircularInsert,Qu));let yg=Qu;const Ju=class Ju extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Dx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(Ju,"type",Ju.registerEditing("ESCesiumViewer",V.ESJEditingMode.LineStringAppend,Ju));let gg=Ju;const ju=class ju extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Ox(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(ju,"type",ju.registerEditing("ESCesiumViewer",V.ESJEditingMode.LineStringInsert,ju));let vg=ju;const ec=class ec extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Fx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(ec,"type",ec.registerEditing("ESCesiumViewer",V.ESJEditingMode.ScatterAppend,ec));let wg=ec;const tc=class tc extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Lx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(tc,"type",tc.registerEditing("ESCesiumViewer",V.ESJEditingMode.ScatterModify,tc));let _g=tc;const nc=class nc extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new es(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(nc,"type",nc.registerEditing("ESCesiumViewer",V.ESJEditingMode.VisibilityAppend,nc));let bg=nc;const ic=class ic extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new ts(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(ic,"type",ic.registerEditing("ESCesiumViewer",V.ESJEditingMode.VisibilityModify,ic));let xg=ic;const rc=class rc extends Jt{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const r=this.currentEditing=this.ad(new Nx(e));do{if(Reflect.has(n,"points")){const i=Reflect.has(n,"extrudedHeight"),a=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!i,l=n instanceof V.ESClassification||n instanceof V.ESPolygonFence;let u=V.getMinMaxCorner(n.points).center,c=[...u],h=l?n.points[0][2]:0;s?i?c[2]=n.extrudedHeight:c[2]=n.height+h:(a&&(u[2]=n.height),i&&(c[2]=n.extrudedHeight)),r.startPosition=u,r.distance=c[2]-u[2],r.moveWithFirstPosition=!1;let f=[...u];this.ad(r.positionsChanged.don(()=>{r.positions.length===2&&(s?(n.points=n.points.map(p=>[p[0],p[1],p[2]+r.positions[0][2]-f[2]]),i?n.extrudedHeight=r.positions[1][2]:a&&(n.height=r.positions[1][2]-(l?r.positions[0][2]:0))):(a&&(n.height=r.positions[0][2]),i&&(n.extrudedHeight=r.positions[1][2])),f=[...r.positions[0]])}));break}this.supportEditing=!1;return}while(!1);r.init(),r.enabled=!0;const o=this.ad(y.createNextAnimateFrameEvent(r.enabledChanged,r.startPositionChanged));this.ad(o.don(()=>{(!r.enabled||!r.startPosition||V.equalsN3(r.startPosition,[0,0,0]))&&this.destroy()}))}};F(rc,"type",rc.registerEditing("ESCesiumViewer",V.ESJEditingMode.HeightModify,rc));let Cg=rc;function Vx(){const t=y.createProcessingFromAsyncFunc(async(n,e,r,o,i=!0)=>{const a=Array.isArray(o)?[...o]:[o],s=r.editingID;e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"start",add:{modes:a}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"end",add:{modes:a}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(r.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(c=>{c.code=="Escape"&&l()}));let u=0;do{const c=a[u%a.length],h=await y.step(n,async f=>{const p=f.disposer,d=V.EngineObject.contextEditing.getEngineObjConstructor(c,e.typeName);if(!d||!r.supportEditingModes().includes(c))return console.log(`未找到编辑模式或不支持当前编辑模式${c},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:c,cIndex:u}}),e.notSupportEditingCount++,!1;const m=new d(r,e);if(p.ad(()=>{!m.isDestroyed()&&m.destroy()}),m.supportEditing)e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:c,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${c},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:c,cIndex:u}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(w=>{m.isDestroyed()&&w(!1),p.ad(m.toDestroyEvent.don(()=>{console.log(`编辑模式${c}结束`),w(!1)})),i&&(p.ad(e.keyDownEvent.don(g=>{g.code=="Space"&&(console.log(`编辑模式${c}结束`),w(!1))})),p.ad(e.dblclickEvent.don(()=>w(!0))))}))});if(i&&h||!i&&u==a.length-1||e.notSupportEditingCount==a.length)break;u++}while(!0)});return t}function Ux(){const t=y.createProcessingFromAsyncFunc(async(n,e,r,o)=>{e.editingEvent.emit({objectIDs:r.map(s=>s.id.split("_")[0]),editingID:o,type:"start"});const i=()=>{e.editingEvent.emit({objectIDs:r.map(s=>s.id.split("_")[0]),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(i),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&i()}));const a=new Uh(r,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}ne.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.7-beta.4",e="2025-05-23T02:41:15.000Z",r="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",i="07a3f1b090e4fa89f3e9b464480993ab681c3edb",s=((Date.now()-1747968075e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${i.slice(0,8)}.${e} (距今${s}个小时)
|
|
4637
|
+
`,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},st,t)}class e6 extends y.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let r;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(i=>{const a=r=this._getStartInfo(i.pointerEvent);a&&(this.owner.hoveredPlaneType=a.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(i=>{r&&r.currentPlaneType!=="none"&&(o.restart(void 0,e,r),r=void 0)})),this.dispose(e.dblclickEvent.disposableOn(i=>{do{const a=this._getStartInfo(i.pointerEvent);if(!a||a.currentPlaneType==="none")break;const{currentPlaneType:s}=a,l=[...this.owner.selfRotation];l[Kn.rotationNum[s]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(y.createProcessingFromAsyncFunc(async(n,e,r)=>{const o=this.owner.circles[r.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(i=>{if(r&&i.pointerEvent){const{offsetX:a,offsetY:s}=i.pointerEvent,l=[a,s],{currentPlaneType:u}=r;if(u==="none")return;const c=this.owner.getPlane(u);if(!r.currentV)return;const h=c.pick(l);if(!h||!this.owner.cartesian)return;const f=_.Cartesian3.subtract(r.currentV,this.owner.cartesian,new _.Cartesian3);_.Cartesian3.normalize(f,f);const p=_.Cartesian3.subtract(h,this.owner.cartesian,new _.Cartesian3);if(_.Cartesian3.normalize(p,p),!c.normal||!c.origin)return;const d=ug(f,p,c.normal),m=ug(c.origin,f,c.normal),v=ug(c.origin,p,c.normal);{const w=[...this.owner.selfRotation];w[Kn.rotationNum[u]]=r.startRotation+d,this.owner.selfRotation=w,o.circleStartRotation=m,o.circleEndRotation=v}}})),this.owner.movingPlaneType=r.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await y.step(n,i=>new Promise((a,s)=>{i.disposer.dispose(s),i.disposer.dispose(e.pointerUpEvent.don(()=>{a()})),i.disposer.dispose(e.pointerOutEvent.don(()=>{a()}))}))}))}_pickPlane(n,e,r,o,i){const a=this.owner.cartesian;if(!a)return;const{selfRotation:s}=this.owner,l=this.owner.getPlane(r).pick(o);if(!l)return;const u=_.Cartesian3.distance(a,l),c=i/4,h=c*3/128;if(!(u>=c-h&&u<=c+h))return;const p=_.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=p||(n.currentPlaneType=r,n.currentD2c=p,n.currentV=l,n.startRotation=s[Kn.rotationNum[r]])}_getStartInfo(n){var c;const{czmViewer:e}=this.owner,r=(c=e.viewer)==null?void 0:c.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Ai(r,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:i,offsetY:a}=n,s=[i,a],l=n.pointerId,u={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(u,r,"heading",s,o),this._pickPlane(u,r,"pitch",s,o),this._pickPlane(u,r,"roll",s,o),u}}function ug(t,n,e){const r=_.Cartesian3.cross(n,t,new _.Cartesian3);if(r.equals(_.Cartesian3.ZERO))return 0;_.Cartesian3.normalize(r,r);const o=_.Cartesian3.dot(r,e);let i=Math.acos(_.Cartesian3.dot(t,n))*180/Math.PI;return i=o>0?i:-i,i}const Go=class Go extends An{constructor(e){super();F(this,"_hoveredPlaneType",this.disposeVar(y.react("none")));F(this,"_movingPlaneType",this.disposeVar(y.react("none")));F(this,"_circles");F(this,"_czmCameraModel");F(this,"_cartesian");F(this,"_planes",{heading:this.disposeVar(new YF(this)),pitch:this.disposeVar(new KF(this)),roll:this.disposeVar(new QF(this))});F(this,"_rotatorRunningResetting",this.disposeVar(new y.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new e6(this)})));this._czmViewer=e;const r=this._czmViewer;if(this._circles={heading:this._createRotatorCircle(r,"heading"),pitch:this._createRotatorCircle(r,"pitch"),roll:this._createRotatorCircle(r,"roll")},!!r.viewer){{const i=()=>{this._cartesian=this.position&&vt(this.position)||void 0};i(),this.dispose(this.positionChanged.disposableOn(i))}this._createCameraModel(r)}}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 Vt(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(y.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],r=>r*.1)),this.dispose(y.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(y.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const r=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=_.Matrix4.toArray(o))};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{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)};r(),this.dispose(this.enabledChanged.disposableOn(r)),this.dispose(this.showHelperChanged.disposableOn(r))}}_createRotatorCircle(e,r){const o=this.ad(new Ja(e));this.dispose(y.track([o,"position"],[this,"position"])),this.dispose(y.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(y.track([o,"debug"],[this,"debug"])),this.dispose(y.track([o,"rotation"],[this,"rotation"]));{const i=()=>{o.selfRotation=Go.rotationFuncs[r](this.selfRotation),o.circleRotation=this.selfRotation[Go.rotationNum[r]]};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{const a=this.movingPlaneType===r,s=this.hoveredPlaneType===r,u=[0,0,0,a||s?1:.8];u[Go.rotationNum[r]]=1,o.color=u};i(),this.dispose(this.movingPlaneTypeChanged.disposableOn(i)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(i))}return o}};F(Go,"rotationNum",{heading:0,pitch:1,roll:2}),F(Go,"rotationFuncs",{heading:([e,r,o])=>[0,0,0],pitch:([e,r,o])=>[e,0,-90],roll:([e,r,o])=>[e,r+90,0]});let Kn=Go;(t=>{t.createDefaultProps=()=>({...An.createDefaultProps(),rotation:y.reactArray([0,0,0]),selfRotation:y.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(Kn||(Kn={})),y.extendClassProps(Kn.prototype,Kn.createDefaultProps);const Wo=class Wo extends y.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??Wo.defaults.positions[0],this.stopPosition??Wo.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??Wo.defaults.positions[0],n??Wo.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new je(n,e));o.arcType="RHUMB";const i=this.ad(new Dn(n,e));this.ad(y.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(y.track([i,"allowPicking"],[this,"allowPicking"]));{const a=()=>{o.show=i.show=this.show};a(),this.ad(this.showChanged.don(a))}{const a=()=>{o.width=this.width/2,i.pixelSize=this.width};a(),this.ad(this.widthChanged.don(a))}{const a=()=>{o.color=i.color=this.color};a(),this.ad(this.colorChanged.don(a))}{const a=()=>{o.positions=this.positions,i.position=this.stopPosition};a(),this.dispose(this.startPositionChanged.disposableOn(a)),this.dispose(this.stopPositionChanged.disposableOn(a))}}};F(Wo,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Ro=Wo;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:y.reactPositions(t.defaults.positions),width:10,color:y.reactArray([1,0,0,1])})})(Ro||(Ro={})),y.extendClassProps(Ro.prototype,Ro.createDefaultProps);class Ki extends An{constructor(e){super();F(this,"_lastPosition");F(this,"_opInfo",{step:this.ad(y.react(!1)),moved:this.ad(y.react(!1)),constraintMode:this.disposeVar(y.react("none")),originPosition:this.disposeVar(y.reactArray([0,0,0])),originHeading:this.disposeVar(y.react(0)),originDimensions:this.disposeVar(y.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(y.reactArray([0,0,0])),movingPosition:this.disposeVar(y.reactArray([0,0,0])),targetPosition:this.disposeVar(y.reactArray([0,0,0])),targetHeading:this.disposeVar(y.react(0))});F(this,"_scaleAxis");F(this,"_pickingXYProcessing",e=>this.disposeVar(new y.Processing((r,o,i)=>{const a=[0,0,0],s=new _.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const u=Un(y.getDomEventCurrentTargetPos(l.pointerEvent));if(!Bo(e.viewer.scene,u,this._opInfo.originPosition.value[2],s))return;Ho(s,a),this._opInfo.constraintMode.value==="x"?Jr(this._opInfo.originPosition.value,this._opInfo.originHeading.value,a,a):this._opInfo.constraintMode.value==="y"?Jr(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 c=[0,0,0];V.geoRhumbDestination(a,i,o,c),this._opInfo.targetPosition.value=c;let h=this.scale[0],f=this.scale[1];const p=V.geoDistance(c,this._opInfo.originPosition.value)-V.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...c];const d=this._opInfo.originDimensions.value[0]/100;p!=0&&this._opInfo.constraintMode.value==="y"&&(p>0?h+=d:h-=d),p!=0&&this._opInfo.constraintMode.value==="x"&&(p>0?f+=d:f-=d),h<=0&&(h+=d),f<=0&&(f+=d),this.scale=[h??1,f??1,this.scale[2]??1]})})));F(this,"_pickingZProcessing",e=>this.disposeVar(new y.Processing(()=>{const r=new _.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(i=>{if(!i.pointerEvent||!e.viewer)return;const a=Un(y.getDomEventCurrentTargetPos(i.pointerEvent));if(!lc(e.viewer.scene,vt(this._opInfo.originPosition.value),a,r))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const s=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ne(r,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 c=o[2]-this._lastPosition[2];this._lastPosition=[...o];const h=this._opInfo.originDimensions.value[0]/100;c!=0&&(c>0?u+=h:u-=h),u<=0&&(u+=h),this.scale=[this.scale[0]??1,this.scale[1]??1,u??1]}})})));const r=e.viewer;if(!r)return;const{scene:o}=r;this.ad(new cd(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:c,yAxis:h,xAxis:f}=this._scaleAxis,p=this._opInfo.constraintMode.value,d=this._opInfo.step;c.color=[0,0,1,.99],h.color=[0,1,0,.99],f.color=[1,0,0,.99],p==="x"?f.color=d?[1,1,0,.8]:[1,1,0,.99]:p==="y"?h.color=d?[1,1,0,.8]:[1,1,0,.99]:p==="z"&&(c.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:h=Ki.defaults.position}=this,{zAxis:f,yAxis:p,xAxis:d}=this._scaleAxis;f.startPosition=p.startPosition=d.startPosition=h;const[m,v,w]=h;f.stopPosition=[m,v,w+this._opInfo.originDimensions.value[2]];const g=V.geoRhumbDestination(h,this._opInfo.originDimensions.value[0],90);g&&(d.stopPosition=g);const b=V.geoRhumbDestination(h,this._opInfo.originDimensions.value[1],0);b&&(p.stopPosition=b)};u();const c=this.ad(y.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(c.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((c,h)=>c===this._opInfo.targetPosition.value[h])){this._opInfo.moved.value=!0;return}};u(),this.dispose(this._opInfo.originHeading.changed.disposableOn(u)),this.dispose(this._opInfo.originPosition.changed.disposableOn(u)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(u)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(u))}const i=this._pickingXYProcessing(e),a=this._pickingZProcessing(e),s=this.disposeVar(y.createProcessingFromAsyncFunc(async u=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",u.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await y.step(u,async c=>{const h=()=>{const d=[...this.position??Ki.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};c.disposer.dispose((h(),this.positionChanged.disposableOn(h)));const f={constraintMode:"none",startDragPos:[0,0,0]},p=d=>{if(!this.position)return;const m={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};Jh(d,o,m,this.axisSnapPixelSize,f),this._opInfo.constraintMode.value=f.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=f.startDragPos};c.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&p(d.pointerEvent)})),await y.step(c,d=>new Promise((m,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(w=>{w.pointerEvent&&p(w.pointerEvent),w.pointerEvent&&w.pointerEvent.button===0&&f.constraintMode!=="none"&&m()}))}))}),this._opInfo.step.value=!1,await y.step(u,async c=>{if(e.incrementDisabledInputStack(),c.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const h=V.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),f=V.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);i.restart(void 0,h,f),c.disposer.dispose(()=>i.cancel())}else this._opInfo.constraintMode.value==="z"&&(a.restart(),c.disposer.dispose(()=>a.cancel()));await y.step(c,h=>new Promise((f,p)=>{h.disposer.dispose(p),h.disposer.dispose(e.pointerUpEvent.don(()=>{f()})),h.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,r){const o=this.ad(new Ro(e));return o.width=10,this.ad(y.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...An.createDefaultProps(),scale:y.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(Ki||(Ki={})),y.extendClassProps(Ki.prototype,Ki.createDefaultProps);const Kr=class Kr extends rn{constructor(e){super();F(this,"_editingPoints",this.disposeVar(new y.ObservableArray));F(this,"_cancelEvent",this.disposeVar(new y.Event));F(this,"_currentProcess");F(this,"_menuPoiEnabled",this.disposeVar(y.react(!1)));F(this,"_status",this.disposeVar(y.react("None")));F(this,"_positionsChanged",this.ad(new y.Event));F(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(r=>{for(let{start:o,deleteCount:i,items:a}of r){for(const s of a)s.menuPoi.enabled=this.menuPoiEnabled??!1;for(let s=o;s<o+i;++s)this.editingPoints.get(s).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let r of this.editingPoints)r.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(r=>{this.ad(y.nextAnimateFrame(()=>{var o;((o=r.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(r=>{this._currentProcess&&(r?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const r=()=>{this.polylineShow=this.czmViewer.editingLineShow};r(),this.ad(this.czmViewer.editingLineShowChanged.don(r))}}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 r of this._editingPoints)r.position&&e.push([...r.position]);return e}resetPositions(e){if(this.enabled??Kr.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const r=e||[];return!(r.length===this.editingPoints.length&&r.every((o,i)=>o.every((a,s)=>{const l=this.editingPoints.get(i);return l.position&&l.position[s]===a})))}forceResetPositions(e){(this.enabled??Kr.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 r=this.ad(new je(e));this.ad(y.track([r,"color"],[this,"polylineColor"])),this.ad(y.track([r,"width"],[this,"polylineWidth"])),this.ad(y.track([r,"show"],[this,"polylineShow"])),this.ad(y.track([r,"arcType"],[this,"polylineArcType"])),this.ad(y.track([r,"loop"],[this,"loop"]));{const o=()=>{const i=[];for(const a of this.getPositions())a[2]-=e.editingHeightOffset??0,i.push(a);r.positions=i};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const r=this._cursorInfo=this.ad(new y.CursorInfo(e.container,y.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(r){if(!this.hideCursorInfo){r.show=!1;return}o==="Adding"?(r.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",r.show=!0):o==="Modifying"||o==="Modifying_Point"?(r.text="Esc键或左键双击:退出编辑状态",r.show=!0):o==="None"&&(r.text="",r.show=!1)}}))}};F(Kr,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),F(Kr,"defaults",{...rn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Kr.baseImageUrl+"point-green.png",otherControlPointImageUrl:Kr.baseImageUrl+"point-yellow.png"});let Fn=Kr;(t=>{t.createDefaultProps=()=>({...rn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:y.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})})(Fn||(Fn={})),y.extendClassProps(Fn.prototype,Fn.createDefaultProps);let t6=0;class Ix extends y.Destroyable{constructor(e,r){super();F(this,"_position",this.disposeVar(y.reactArrayWithUndefined(void 0)));F(this,"_id",t6++);F(this,"_menuPoi");r&&(this.position=r),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 la(e.czmViewer));o.enabled=!1,this.ad(y.track([o,"show"],[e,"enabled"]));{const i=()=>{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()};i(),this.d(this.positionChanged.don(i))}{const i=()=>{const a=e.editingPoints.indexOf(this)+1;a!==0&&(o.title=`控制点${a}`,a===1?o.imageUri=e.firstControlPointImageUrl??Fn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Fn.defaults.otherControlPointImageUrl)};i(),this.dispose(e.editingPoints.changedEvent.disposableOn(i))}}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 Mx extends Ix{constructor(n,e){super(n,e)}}class Pt extends Fn{constructor(e){super(e);F(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new y.Event));F(this,"placeEditing");if(!e.viewer)return;const r=this.placeEditing=this.ad(new Yn(e));r.enabled=!1,this.currentProcess=this.disposeVar(y.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(y.step(o,async i=>{const a=i.disposer,s=a.ad(this._addingEditingProcessing());a.dispose(()=>"adding canceled!"),a.dispose(this.cancelEvent.disposableOn(()=>s.cancel())),await i.promise(new Promise(l=>{a.dispose(s.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var i;((i=o.pointerEvent)==null?void 0:i.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const r=e?e.map(o=>new Mx(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...r),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},r=y.createProcessingFromAsyncFunc(async o=>{let i=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(y.step(o,async s=>{let l;!e()&&(l=s.disposer.disposeVar(new n6(this,i)));const c=s.disposer.disposeVar(new r6(this,i));return s.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>c.do())),await s.promise(new Promise(h=>{l&&s.disposer.dispose(l.overEvent.disposableOnce(f=>{f?(i++,h(!0)):h(!1)})),s.disposer.dispose(c.overEvent.disposableOnce(f=>{f?(i--,h(!0)):h(!1)})),s.disposer.dispose(this.cancelEvent.disposableOn(()=>h(!1)))}))})))break;while(!0)});return r.start(),r}}(t=>{t.createDefaultProps=()=>({...Fn.createDefaultProps()})})(Pt||(Pt={})),y.extendClassProps(Pt.prototype,Pt.createDefaultProps);class n6 extends y.Destroyable{constructor(e,r){super();F(this,"_overEvent",this.disposeVar(new y.Event));const{placeEditing:o}=e;let i=new Mx(e,void 0);e.editingPoints.splice(r,0,i);const a=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const u=e.editingPoints.indexOf(i);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(y.track([i,"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,i.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${r})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${r})`)})}get overEvent(){return this._overEvent}}function i6(t,n){const e=t.editingPoints,r=n-1;return r<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(r,1),!0)}class r6 extends y.Destroyable{constructor(e,r){super();F(this,"_overEvent",this.disposeVar(new y.Event));F(this,"_doEvent",this.disposeVar(new y.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(i6(e,r)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${r})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${r})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class Dx extends Pt{constructor(n){super(n),this.loop=!1}}class Rx extends Pt{constructor(n){super(n),this.loop=!0}}class Vh extends Ix{constructor(n,e){super(n,e);{const{menuPoi:r}=this;r.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],r.clickCommandName="modify",r.rightClickCommandName="delete",this.dispose(r.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(r.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const r=this.ad(new ai(n.czmViewer));{r.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,r.tooltip="点击增加一个控制点",r.bgColor=[0,0,0,.6],r.fgColor=[1,1,1,1],r.size=[8,8],r.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){r.enabled=!1,r.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??tt.defaults.loop)&&a+1>=s)break;const u=this.position;if(!u)break;let c=(a+1)%s;const f=n.editingPoints.get(c).position;if(!f)break;const p=nd(u,f);if(!p)break;p[2]-=n.czmViewer.editingHeightOffset??0,r.position=p;const d=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);r.enabled=d,r.show=d;return}while(!1);r.enabled=!1,r.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(r.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const i=n.editingPoints.indexOf(this);if(i===-1)return;const a=r.position?[...r.position]:void 0;a&&(a[2]+=n.czmViewer.editingHeightOffset??0);let s=new Vh(n,a);n.editingPoints.splice(i+1,0,s),n.modify(s)}))}}}}class tt extends Fn{constructor(e){super(e);F(this,"_menuPoiCommand",this.disposeVar(new y.Event));F(this,"_forceModifyPosEditorEvent",this.disposeVar(new y.Event));F(this,"_overEvent",this.disposeVar(new y.Event));F(this,"translationEditing");{const o=this.ad(y.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new y.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new o6(this.editingPoints.get(0),this)}))}const r=this.translationEditing=this.disposeVar(new Yi(e));r.enabled=!1,this.currentProcess=this.disposeVar(y.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let i=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",i=await o.promise(y.step(o,async a=>{const s=a.disposer,l=s.ad(new a6(this));return s.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(i===-1||i>=this.editingPoints.length?0:i)),s.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),s.dispose(this._forceModifyPosEditorEvent.disposableOn(c=>l.modify(c))),await a.promise(new Promise(c=>{s.dispose(l.overEvent.disposableOnce(h=>{c(h)}))}))})),i===-1){(this.debug??tt.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??tt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??tt.defaults.loop;const s=this.editingPoints.get(i-1).position;if(!s)return;let l=i%this.editingPoints.length;const c=this.editingPoints.get(l).position;if(!c)return;const h=nd(s,c);if(!h)return;h&&(h[2]+=this.czmViewer.editingHeightOffset??0);let f=new Vh(this,h);this.editingPoints.splice(i,0,f)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,r){this._menuPoiCommand.emit(e,r)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const r=e?e.map(o=>new Vh(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...r),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Fn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),y.extendClassProps(tt.prototype,tt.createDefaultProps);class o6 extends y.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((r,o)=>{if(r===void 0||o===void 0)return;var i=[r[0]-o[0],r[1]-o[1],r[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]+i[0],u[1]+i[1],u[2]+i[2]])}})}}class a6 extends y.Destroyable{constructor(e){super();F(this,"_overEvent",this.disposeVar(new y.Event));F(this,"_cancelEvent",this.disposeVar(new y.Event));F(this,"_forceModifyPosEditorEvent",this.disposeVar(new y.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let r;const o=()=>{r==null||r.destroy(),r=void 0,e.status="Modifying"};this.dispose(o);const i=a=>{o(),e.status="Modifying_Point",r=new s6(e,a),r.dispose(r.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(i)),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")i(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 s6 extends y.Destroyable{constructor(e,r){super();F(this,"_overEvent",this.disposeVar(new y.Event));this._modifying=e,this._posEditor=r,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(y.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(i=>{i||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class Ox extends tt{constructor(n){super(n),this.loop=!1}}class zx extends tt{constructor(n){super(n),this.loop=!0}}class ja extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,r=this.rotation,o=e*Math.cos(r[1]*Math.PI/180),i=V.geoDestination(n,o,r[0]);if(!i){this.positions=[n];return}const a=e*Math.sin(r[1]*Math.PI/180);i[2]+=a,this.positions=[n,i],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=i)}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 r=V.geoHeading(this.startPosition,this.endPosition),o=V.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const i=this.endPosition[2]-this.startPosition[2],a=Math.atan(i/o)*180/Math.PI,s=Math.sqrt(o*o+i*i);this.rotation=[r,a,0],this.distance=s};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:y.reactArrayWithUndefined(void 0),endPosition:y.reactArrayWithUndefined(void 0),rotation:y.reactArray([90,0,0]),distance:y.react(1)})})(ja||(ja={})),y.extendClassProps(ja.prototype,ja.createDefaultProps);class Oo extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,r=this.rotation,o=e*Math.cos(r[1]*Math.PI/180),i=V.geoDestination(n,o,r[0]);if(!i){this.positions=[n];return}const a=e*Math.sin(r[1]*Math.PI/180);i[2]+=a,this.positions=[n,i],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=i)}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","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.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","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]];const r=V.geoHeading(this.startPosition,this.endPosition),o=V.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const i=this.endPosition[2]-this.startPosition[2],a=Math.atan(i/o)*180/Math.PI,s=Math.sqrt(o*o+i*i);this.rotation=[r,a,0],this.distance=s}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:y.reactArrayWithUndefined(void 0),endPosition:y.reactArrayWithUndefined(void 0),rotation:y.reactArray([0,0,0]),distance:y.react(0)})})(Oo||(Oo={})),y.extendClassProps(Oo.prototype,Oo.createDefaultProps);class Fx extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class Lx extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class es extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const r=[...this.positions[0]];r[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[r,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new Hn(n));e.topOrBottom="bottom",this.ad(y.track([e,"color"],[this,"polylineColor"])),this.ad(y.track([e,"width"],[this,"polylineWidth"])),this.ad(y.track([e,"show"],[this,"polylineShow"])),this.ad(y.track([e,"arcType"],[this,"polylineArcType"])),this.ad(y.track([e,"loop"],[this,"loop"])),this.ad(y.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:y.reactPositionsSet(void 0)})})(es||(es={})),y.extendClassProps(es.prototype,es.createDefaultProps);class ts extends tt{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const r=[...this.positions[0]];r[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[r,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new Hn(n));e.topOrBottom="bottom",this.ad(y.track([e,"color"],[this,"polylineColor"])),this.ad(y.track([e,"width"],[this,"polylineWidth"])),this.ad(y.track([e,"show"],[this,"polylineShow"])),this.ad(y.track([e,"arcType"],[this,"polylineArcType"])),this.ad(y.track([e,"loop"],[this,"loop"])),this.ad(y.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:y.reactPositionsSet(void 0)})})(ts||(ts={})),y.extendClassProps(ts.prototype,ts.createDefaultProps);class Nx extends Oo{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 Jt extends V.EngineObject{constructor(e,r,o){super(e,r,o??!0);F(this,"_supportEditing",this.disposeVar(y.react(!0)));F(this,"_currentEditing",this.disposeVar(y.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var i;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((i=this.currentEditing.currentProcess)!=null&&i.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 Yn&&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 Hu=class Hu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Yn(e));this.ad(e.clickEvent.don(o=>{var i;((i=o.pointerEvent)==null?void 0:i.button)==2&&(r.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(y.bind([r,"position"],[n,"position"])),r.enabled=!r.position||V.equalsN3(r.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};F(Hu,"type",Hu.registerEditing("ESCesiumViewer",V.ESJEditingMode.Place,Hu));let cg=Hu;const $u=class $u extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Kn(e));r.rotation=[90,0,0],this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof V.ES3DTileset){V.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(y.bind([r,"position"],[o.czm3DTiles,"position"])),this.ad(y.bind([r,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(y.bind([r,"position"],[n,"position"])),this.ad(y.bind([r,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};F($u,"type",$u.registerEditing("ESCesiumViewer",V.ESJEditingMode.Rotation,$u));let hg=$u;const Bu=class Bu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Ki(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(y.bind([r,"position"],[n,"position"])),this.ad(y.bind([r,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};F(Bu,"type",Bu.registerEditing("ESCesiumViewer",V.ESJEditingMode.Scale,Bu));let dg=Bu;const Zu=class Zu extends Jt{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const r=this.currentEditing=this.ad(new Yi(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let i=0;i<n.length;i++){const a=n[i];Reflect.has(a,"position")?o.push(a.position):a.points&&o.push(...a.points)}r.position=V.getMinMaxCorner(o).center,this.ad(r.positionChanged.disposableOn((i,a)=>{if(!(!i||!a)){var s=an({originPosition:a},[i])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const u=an({originPosition:a},[l.position])[0][0];l.position=sr({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=an({originPosition:a},l.points)[0];l.points=sr({originPosition:a},u.map(c=>[c[0]+s[0],c[1]+s[1],c[2]+s[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(y.bind([r,"position"],[n,"position"]));break}if(n instanceof V.ES3DTileset){V.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(y.bind([r,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}r.position=V.getMinMaxCorner(n.points).center,this.ad(r.positionChanged.disposableOn((o,i)=>{if(o===void 0||i===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var a=an({originPosition:i},[o])[0][0];const s=an({originPosition:i},n.points)[0];n.points=sr({originPosition:i},s.map(l=>[l[0]+a[0],l[1]+a[1],l[2]+a[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};F(Zu,"type",Zu.registerEditing("ESCesiumViewer",V.ESJEditingMode.Translation,Zu));let Uh=Zu;const Xu=class Xu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new ja(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(y.bind([r,"startPosition"],[n,"position"])),this.ad(Mt([r,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(y.bind([r,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(y.bind([r,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(y.bind([r,"distance"],[n,"distance"]));break}const o=vt(n.position);if(_.Cartesian3.ZERO.equals(o)||!e.viewer)return;r.distance=Ai(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1);r.startPosition&&!V.equalsN3(r.startPosition,[0,0,0])&&r.init(),r.enabled=!0}};F(Xu,"type",Xu.registerEditing("ESCesiumViewer",V.ESJEditingMode.DoublePointsAppend,Xu));let fg=Xu;const Yu=class Yu extends Jt{constructor(n,e){var i;if(super(n,e,!0),!e.viewer)return;const r=this.currentEditing=this.ad(new Oo(e));do{if(Reflect.has(n,"position")){this.ad(y.bind([r,"startPosition"],[n,"position"])),this.ad(Mt([r,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(y.bind([r,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(y.bind([r,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(y.bind([r,"distance"],[n,"distance"]));break}const a=vt(n.position);if(_.Cartesian3.ZERO.equals(a)||!e.viewer)return;r.distance=Ai(e.viewer.scene,a,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((i=n.points)==null?void 0:i.length)==2){r.moveWithFirstPosition=!1;const a=()=>r.positions=n.points??[];a(),this.ad(n.pointsChanged.don(()=>!r.enabled&&a())),this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1;return}while(!1);r.init(),r.enabled=!0;const o=this.ad(y.createNextAnimateFrameEvent(r.enabledChanged,r.startPositionChanged));this.ad(o.don(()=>{(!r.enabled||!r.startPosition||V.equalsN3(r.startPosition,[0,0,0]))&&this.destroy()}))}};F(Yu,"type",Yu.registerEditing("ESCesiumViewer",V.ESJEditingMode.DoublePointsModify,Yu));let pg=Yu;const Ku=class Ku extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Rx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(Ku,"type",Ku.registerEditing("ESCesiumViewer",V.ESJEditingMode.CircularAppend,Ku));let mg=Ku;const Qu=class Qu extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new zx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(Qu,"type",Qu.registerEditing("ESCesiumViewer",V.ESJEditingMode.CircularInsert,Qu));let yg=Qu;const Ju=class Ju extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Dx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(Ju,"type",Ju.registerEditing("ESCesiumViewer",V.ESJEditingMode.LineStringAppend,Ju));let gg=Ju;const ju=class ju extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Ox(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(ju,"type",ju.registerEditing("ESCesiumViewer",V.ESJEditingMode.LineStringInsert,ju));let vg=ju;const ec=class ec extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Fx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(ec,"type",ec.registerEditing("ESCesiumViewer",V.ESJEditingMode.ScatterAppend,ec));let wg=ec;const tc=class tc extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new Lx(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(tc,"type",tc.registerEditing("ESCesiumViewer",V.ESJEditingMode.ScatterModify,tc));let _g=tc;const nc=class nc extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new es(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(nc,"type",nc.registerEditing("ESCesiumViewer",V.ESJEditingMode.VisibilityAppend,nc));let bg=nc;const ic=class ic extends Jt{constructor(n,e){super(n,e,!0);const r=this.currentEditing=this.ad(new ts(e));this.ad(r.enabledChanged.don(o=>{!o&&this.ad(y.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>r.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!r.enabled&&o())),r.enabled=!0,this.ad(y.track([n,"points"],[r,"positions"]));break}this.supportEditing=!1}while(!1)}};F(ic,"type",ic.registerEditing("ESCesiumViewer",V.ESJEditingMode.VisibilityModify,ic));let xg=ic;const rc=class rc extends Jt{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const r=this.currentEditing=this.ad(new Nx(e));do{if(Reflect.has(n,"points")){const i=Reflect.has(n,"extrudedHeight"),a=Reflect.has(n,"height"),s=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!i,l=n instanceof V.ESClassification||n instanceof V.ESPolygonFence;let u=V.getMinMaxCorner(n.points).center,c=[...u],h=l?n.points[0][2]:0;s?i?c[2]=n.extrudedHeight:c[2]=n.height+h:(a&&(u[2]=n.height),i&&(c[2]=n.extrudedHeight)),r.startPosition=u,r.distance=c[2]-u[2],r.moveWithFirstPosition=!1;let f=[...u];this.ad(r.positionsChanged.don(()=>{r.positions.length===2&&(s?(n.points=n.points.map(p=>[p[0],p[1],p[2]+r.positions[0][2]-f[2]]),i?n.extrudedHeight=r.positions[1][2]:a&&(n.height=r.positions[1][2]-(l?r.positions[0][2]:0))):(a&&(n.height=r.positions[0][2]),i&&(n.extrudedHeight=r.positions[1][2])),f=[...r.positions[0]])}));break}this.supportEditing=!1;return}while(!1);r.init(),r.enabled=!0;const o=this.ad(y.createNextAnimateFrameEvent(r.enabledChanged,r.startPositionChanged));this.ad(o.don(()=>{(!r.enabled||!r.startPosition||V.equalsN3(r.startPosition,[0,0,0]))&&this.destroy()}))}};F(rc,"type",rc.registerEditing("ESCesiumViewer",V.ESJEditingMode.HeightModify,rc));let Cg=rc;function Vx(){const t=y.createProcessingFromAsyncFunc(async(n,e,r,o,i=!0)=>{const a=Array.isArray(o)?[...o]:[o],s=r.editingID;e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"start",add:{modes:a}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"end",add:{modes:a}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(r.toDestroyEvent.don(l)),n.disposer.ad(e.keyDownEvent.don(c=>{c.code=="Escape"&&l()}));let u=0;do{const c=a[u%a.length],h=await y.step(n,async f=>{const p=f.disposer,d=V.EngineObject.contextEditing.getEngineObjConstructor(c,e.typeName);if(!d||!r.supportEditingModes().includes(c))return console.log(`未找到编辑模式或不支持当前编辑模式${c},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:c,cIndex:u}}),e.notSupportEditingCount++,!1;const m=new d(r,e);if(p.ad(()=>{!m.isDestroyed()&&m.destroy()}),m.supportEditing)e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"changed",add:{cMode:c,cIndex:u}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${c},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[r.id.split("_")[0]],editingID:s,type:"changedFailed",add:{cMode:c,cIndex:u}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(w=>{m.isDestroyed()&&w(!1),p.ad(m.toDestroyEvent.don(()=>{console.log(`编辑模式${c}结束`),w(!1)})),i&&(p.ad(e.keyDownEvent.don(g=>{g.code=="Space"&&(console.log(`编辑模式${c}结束`),w(!1))})),p.ad(e.dblclickEvent.don(()=>w(!0))))}))});if(i&&h||!i&&u==a.length-1||e.notSupportEditingCount==a.length)break;u++}while(!0)});return t}function Ux(){const t=y.createProcessingFromAsyncFunc(async(n,e,r,o)=>{e.editingEvent.emit({objectIDs:r.map(s=>s.id.split("_")[0]),editingID:o,type:"start"});const i=()=>{e.editingEvent.emit({objectIDs:r.map(s=>s.id.split("_")[0]),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(i),n.disposer.ad(e.keyDownEvent.don(s=>{s.code=="Escape"&&i()}));const a=new Uh(r,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}ne.copyright=void 0;try{const t="earthsdk3-cesium",n="3.0.7-beta.5",e="2025-05-23T06:11:36.000Z",r="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",i="7f8fce6b16c93213a0d5b0ffc79fe6eb93738621",s=((Date.now()-1747980696e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${i.slice(0,8)}.${e} (距今${s}个小时)
|
|
4638
4638
|
%c${o?o+`
|
|
4639
4639
|
`:""}当前网站正在使用${t},此软件版权归${r}所有
|
|
4640
|
-
`;ne.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","
|
|
4640
|
+
`;ne.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","7f8fce6b16c93213a0d5b0ffc79fe6eb93738621")},get info(){return l},get date(){return"2025-05-23T06:11:36.000Z"},get author(){return"suplyang"},get version(){return"3.0.7-beta.5"},get name(){return"earthsdk3-cesium"},get commitId(){return"7f8fce6b16c93213a0d5b0ffc79fe6eb93738621"},print(){console.info(this.info,`
|
|
4641
4641
|
font-size: 18px;
|
|
4642
4642
|
font-weight: 1000;
|
|
4643
4643
|
line-height: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setModelMaterial.d.ts","sourceRoot":"","sources":["../../../../src/utils/czmUtils/setModelMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG;QAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC;QAAC,aAAa,CAAC,EAAE,GAAG,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"setModelMaterial.d.ts","sourceRoot":"","sources":["../../../../src/utils/czmUtils/setModelMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG;QAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC;QAAC,aAAa,CAAC,EAAE,GAAG,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,WAsCrO;AACD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,gBAkDjK"}
|