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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2728,7 +2728,7 @@ class CityShaderInstance extends xbsj['xr-base-utils'].Destroyable {
2728
2728
  material.diffuse *= (u_topColor.rgb * u_topColor.a);
2729
2729
  }
2730
2730
  }
2731
- `})));this._sceneObject=o,this._viewer=r;{const s=()=>{this._customShader.uniforms.u_discardRatio.value=C.Cartesian2.fromArray(n.discard)};s(),this.dispose(n.discardChanged.disposableOn(s))}{const s=()=>{this._customShader.uniforms.u_bottomColor.value=new C.Color(...n.bottomColor)};s(),this.dispose(n.bottomColorChanged.disposableOn(s))}{const s=()=>{this._customShader.uniforms.u_topColor.value=new C.Color(...n.topColor)};s(),this.dispose(n.topColorChanged.disposableOn(s))}}get sceneObject(){return this._sceneObject}get viewer(){return this._viewer}get customShader(){return this._customShader}update(){alert("暂未实现!")}}}function cU(t,n,e){const i=t,o=n,r=[[i[0],i[1],0],[o[0],i[1],0],[o[0],o[1],0],[i[0],o[1],0]],s=C.Math.toDegrees,a=r.map(c=>{const h=C.Matrix4.multiplyByPoint(e,C.Cartesian3.fromElements(...c),new C.Cartesian3),u=C.Cartographic.fromCartesian(h);return[s(u.longitude),s(u.latitude),u.height]});return[[a[0],a[1],a[2],a[3],a[0]]]}class hU extends p.Destroyable{constructor(e,i){super();L(this,"_customShader");this._czmFlattenedPlane=e,this._reverse=i,this._customShader=uU(this._reverse,this._czmFlattenedPlane),this._czmFlattenedPlane.computedCustomShader=this.customShader,this.dispose(()=>{this._czmFlattenedPlane.computedCustomShader=void 0})}get customShader(){return this._customShader}}class Wr extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_computedCustomShader",this.disposeVar(p.react(void 0)));L(this,"_polylines");L(this,"_finalMatrix",this.disposeVar(p.react(void 0)));L(this,"_czmTextureWithId");i&&(this.id=i),this._czmTextureWithId=this.disposeVar(new Q.ESSceneObjectWithId),this._polylines=this.disposeVar(new En(e)),this._polylines.arcType="NONE",this.dispose(p.track([this._czmTextureWithId,"id"],[this,"czmTextureId"])),this.dispose(this.flyToEvent.disposableOn(o=>{if(!(e instanceof Ye)||!e.actived)return;if(!this.position){console.warn("CzmFlattenedPlane warning: 没有位置,无法飞入!");return}const r=this.minSize,s=this.maxSize,a=[s[0]-r[0],s[1]-r[1]],l=Math.sqrt(a[0]*a[0]+a[1]*a[1]);Be(e.viewer,this.position,l*2,void 0,o)}));{const o=()=>{if(!this.enabled){this.finalMatrix=void 0,this.polylines.positions=void 0;return}const s=[...this.modelMatrix];let a=[];do{if(this.finalMatrix=void 0,!this.position)break;const l=at({position:this.position,rotation:this.rotation});if(!l)break;const c=C.Matrix4.fromArray(this.modelMatrix),h=C.Matrix4.multiply(l,c,new C.Matrix4);C.Matrix4.toArray(h,s),this.finalMatrix=h,a=cU(this.minSize,this.maxSize,h)}while(!1);this.polylines.positions=a};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.enabledChanged,this.positionChanged,this.rotationChanged,this.modelMatrixChanged,this.minSizeChanged,this.maxSizeChanged));this.dispose(r.disposableOn(o))}{const o=this.disposeVar(p.createNextAnimateFrameEvent(this.enabledChanged,this.reverseChanged));this.disposeVar(new p.ObjResettingWithEvent(o,()=>{if(this.enabled)return new hU(this,this.reverse)}))}this.dispose(p.track([this.polylines,"color"],[this,"edgeColor"])),this.dispose(p.track([this.polylines,"width"],[this,"edgeWidth"])),this.dispose(p.track([this.polylines,"show"],[this,"showHelper"]))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get computedCustomShader(){return this._computedCustomShader.value}set computedCustomShader(e){this._computedCustomShader.value=e}get computedCustomShaderChanged(){return this._computedCustomShader.changed}get polylines(){return this._polylines}get finalMatrix(){return this._finalMatrix.value}set finalMatrix(e){this._finalMatrix.value=e}get finalMatrixChanged(){return this._finalMatrix.changed}get czmTextureWithId(){return this._czmTextureWithId}}L(Wr,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),modelMatrix:p.reactArray([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),reverse:!1,discard:p.reactArray([0,1]),topColor:p.reactArray([1,1,1,1]),bottomColor:p.reactArray([1,1,1,1]),edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2,minSize:p.reactArray([-100,-100]),maxSize:p.reactArray([100,100]),sceneObjectIds:p.reactArray([]),czmTextureId:""})})(Wr||(Wr={})),p.extendClassProps(Wr.prototype,Wr.createDefaultProps);class AU extends p.Destroyable{constructor(n,e){super(),this._czmPolygonFlattenedPlane=n,this._czmFlattenedPlane=e;{const{polygonCanvas:i}=this._czmPolygonFlattenedPlane,o=6378137,r=C.Math.toRadians,s=()=>{const{canvasGeoInfo:a}=i;if(!a)return;const{rect:l,height:c}=a,h=[(l[0]+l[2])/2,(l[1]+l[3])/2,c],u=r(l[2]-l[0])*o*Math.cos(r(h[1])),A=r(l[3]-l[1])*o;this._czmFlattenedPlane.position=h,this._czmFlattenedPlane.minSize=[-u*.5,-A*.5],this._czmFlattenedPlane.maxSize=[u*.5,A*.5]};s(),this.dispose(i.canvasGeoInfoChanged.disposableOn(s))}this._czmFlattenedPlane.czmTextureWithId.id=this._czmPolygonFlattenedPlane.czmTexture.id,this.dispose(()=>this._czmFlattenedPlane.czmTextureWithId.id=void 0);{const i=this._czmFlattenedPlane.showHelper;this._czmFlattenedPlane.showHelper=!1,this.dispose(()=>this._czmFlattenedPlane.showHelper=i)}this.dispose(p.track([this._czmFlattenedPlane,"enabled"],[this._czmPolygonFlattenedPlane,"enabled"]))}}class Ll extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_czmTexture");L(this,"_polygon");L(this,"_polygonCanvas");L(this,"_czmFlattenedPlaneWithId");L(this,"_czmFlattendPlaneWithIdResetting");i&&(this._id.value=i);{this._czmTexture=this.disposeVar(new At(e,i)),this._polygon=this.disposeVar(new Q.ESGeoPolygon(`${i}_polygon`)),e.add(this._polygon),this.ad(()=>{e.delete(this._polygon)}),this.dispose(p.track([this._polygon,"allowPicking"],[this,"allowPicking"])),this.dispose(p.track([this._polygon,"points"],[this,"positions"])),this.dispose(p.track([this._polygon,"show"],[this,"show"])),this._polygonCanvas=this.disposeVar(new zo(e,i)),this._polygonCanvas.geoPolygonWithId.sceneObject=this._polygon;const o=()=>{this._czmTexture.copyFromCanvas(this._polygonCanvas.canvas)};o(),this.dispose(this._polygonCanvas.canvasChanged.disposableOn(o)),this.dispose(this._czmTexture.readyEvent.disposableOn(o)),this._czmFlattenedPlaneWithId=this.disposeVar(new Q.ESSceneObjectWithId),this.dispose(p.track([this._czmFlattenedPlaneWithId,"id"],[this,"czmFlattenedPlaneId"])),this._czmFlattendPlaneWithIdResetting=this.disposeVar(new p.ObjResettingWithEvent(this.czmFlattenedPlaneWithId.sceneObjectChanged,()=>{const{sceneObject:r}=this.czmFlattenedPlaneWithId;if(!r)return;let s;Q.registerCreatedEventUpdate(this,r,()=>{const a=e.getEngineObject(r);if(r instanceof Q.ES3DTileset&&(s=a.flattenedPlane),s instanceof Wr)return new AU(this,s)})}))}this.dispose(this._flyToEvent.disposableOn(o=>{this._polygon.flyTo(o)}))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get czmTexture(){return this._czmTexture}get polygon(){return this._polygon}get polygonCanvas(){return this._polygonCanvas}get czmFlattenedPlaneWithId(){return this._czmFlattenedPlaneWithId}get czmFlattendPlaneWithIdResetting(){return this._czmFlattendPlaneWithIdResetting}}(t=>{t.createDefaultProps=()=>({enabled:!0,show:!0,positions:p.reactPositions([]),allowPicking:!1,czmFlattenedPlaneId:""})})(Ll||(Ll={})),p.extendClassProps(Ll.prototype,Ll.createDefaultProps);class _i extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));if(!e.viewer)return;const r=this.ad(new ba(e,i)),s=this.ad(new Je(e,i));s.loop=!0,this.ad(p.bind([s,"depthTest"],[this,"depthTest"])),this.dispose(p.track([r,"allowPicking"],[this,"allowPicking"]));{const c=()=>{r.ground=this.ground,s.ground=this.strokeGround,s.arcType=this.strokeGround?"NONE":"GEODESIC"};c();const h=this.ad(p.createNextAnimateFrameEvent(this.groundChanged,this.strokeGroundChanged));this.ad(h.don(c))}const a=()=>{s.show=this.show&&this.outline,r.show=this.show&&this.fill,s.positions=this.positions,r.polygonHierarchy=r.show?{positions:this.positions||[]}:{positions:[]},s.color=this.outlineColor,s.width=this.outlineWidth,r.material={type:"Color",color:this.color||[1,1,1,.5]}};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(this.showChanged,this.outlineChanged,this.outlineColorChanged,this.outlineWidthChanged,this.fillChanged,this.colorChanged,this.positionsChanged));this.dispose(l.disposableOn(a)),this.dispose(this.flyToEvent.disposableOn(c=>{this.viewDistanceRange||(r.flyTo(c),this.fill||s.flyTo(c))}))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}}L(_i,"defaults",{viewDistanceRange:[1e3,1e4,3e4,6e4],positions:[]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,outline:!0,strokeGround:!1,ground:!1,outlineColor:p.reactArray([1,1,1,1]),outlineWidth:2,fill:!0,color:p.reactArray([1,1,1,.5]),positions:p.reactPositions(void 0),viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1,depthTest:!1})})(_i||(_i={})),p.extendClassProps(_i.prototype,_i.createDefaultProps);const au=class au extends an{constructor(e,i){super(e,i);L(this,"_geoPolygon");if(!i.viewer){console.warn("viewer is undefined!");return}this._geoPolygon=this.ad(new _i(i,e.id));const r=this.geoPolygon;r&&(this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"ground"],[e,"fillGround"])),this.dispose(p.track([r,"outline"],[e,"stroked"])),this.dispose(p.track([r,"outlineColor"],[e,"strokeColor"])),this.dispose(p.track([r,"outlineWidth"],[e,"strokeWidth"])),this.dispose(p.track([r,"fill"],[e,"filled"])),this.dispose(p.track([r,"color"],[e,"fillColor"])))}get geoPolygon(){return this._geoPolygon}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoPolygon:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):s!=null&&s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoPolygon:s}=this;return r.actived?o.flyInParam?(super.flyIn(e,i),!0):s!=null&&s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(au,"type",au.register("ESCesiumViewer",Q.ESGeoPolygon.type,au));let Tn=au,fU=class extends p.Destroyable{constructor(n,e){super(),this._czmESPolygonFlattenedPlane=n,this._eS3DTileset=e,this._eS3DTileset.flattenedPlaneEnabled=!0,this._czmESPolygonFlattenedPlane.polygonFlattenedPlane.czmFlattenedPlaneId=this._eS3DTileset.flattenedPlaneId,this.dispose(()=>this._eS3DTileset.flattenedPlaneEnabled=!1)}};const su=class su extends Tn{constructor(e,i){super(e,i);L(this,"_polygonFlattenedPlane");L(this,"_tilesSceneObjectWithId");if(this._polygonFlattenedPlane=this.disposeVar(new Ll(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],[this.sceneObject,"targetID"])),!i.viewer){console.warn("viewer is undefined!");return}const r=this._polygonFlattenedPlane;r.enabled=!0,this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"czmFlattenedPlaneId"],[e,"czmFlattenedPlaneId"])),this.dispose(p.track([r.polygon,"stroked"],[e,"stroked"])),this.dispose(p.track([r.polygon,"strokeColor"],[e,"strokeColor"])),this.dispose(p.track([r.polygon,"strokeWidth"],[e,"strokeWidth"])),this.dispose(p.track([r.polygon,"filled"],[e,"filled"])),this.dispose(p.track([r.polygon,"fillColor"],[e,"fillColor"])),this.dispose(p.track([r.polygon,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r.polygon,"fillGround"],[e,"fillGround"]));const s=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged));this.disposeVar(new p.ObjResettingWithEvent(s,()=>{const{sceneObject:a}=this.tilesSceneObjectWithId;if(a&&a instanceof Q.ES3DTileset&&this.sceneObject.show)return new fU(this,a)}))}get polygonFlattenedPlane(){return this._polygonFlattenedPlane}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r,polygonFlattenedPlane:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(su,"type",su.register("ESCesiumViewer",Q.ESPolygonFlattenedPlane.type,su));let pm=su;function dU(t,n,e){const i=t,o=n,r=(o[0]-i[0]+(o[1]-i[1]))/4,s=[[i[0],0,i[1]],[o[0],0,i[1]],[o[0],0,o[1]],[i[0],0,o[1]],[0,r,0]],a=C.Math.toDegrees,l=s.map(h=>{const u=C.Matrix4.multiplyByPoint(e,C.Cartesian3.fromElements(...h),new C.Cartesian3),A=C.Cartographic.fromCartesian(u);return[a(A.longitude),a(A.latitude),A.height]});return[[[l[0],l[1],l[2],l[3],l[0]]],l[4]]}class Qo extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_polylines");L(this,"_axis");i&&(this.id=i),this._polylines=this.disposeVar(new En(e,i)),this._axis=this.disposeVar(new Je(e,i)),this._axis.hasArrow=!0,this._axis.width=10,this._polylines.arcType=this._axis.arcType="NONE",this.dispose(this.flyToEvent.disposableOn(o=>{if(!(e instanceof Ye)||!e.actived)return;if(!this.position){console.warn("CzmPlane warning: 没有位置,无法飞入!");return}const r=this.minSize,s=this.maxSize,a=[s[0]-r[0],s[1]-r[1]],l=Math.sqrt(a[0]*a[0]+a[1]*a[1]);Be(e.viewer,this.position,l*2,void 0,o)}));{const o=()=>{let s=[],a;do{if(!this.position)break;const l=at({position:this.position,rotation:this.rotation});if(!l)break;const c=dU(this.minSize,this.maxSize,l);s=c[0],a=c[1]}while(!1);this.polylines.positions=s,!(!this.position||!a)&&(this.axis.positions=[this.position,a])};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionChanged,this.rotationChanged,this.minSizeChanged,this.maxSizeChanged));this.dispose(r.disposableOn(o))}this.dispose(p.track([this.polylines,"color"],[this,"color"])),this.dispose(p.track([this.polylines,"width"],[this,"width"])),this.dispose(p.track([this.polylines,"show"],[this,"show"])),this.dispose(p.track([this.axis,"color"],[this,"color"]));{const o=()=>{this.axis.show=this.show&&this.showArrow};o(),this.dispose(this.showChanged.disposableOn(o)),this.dispose(this.showArrowChanged.disposableOn(o))}}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get polylines(){return this._polylines}get axis(){return this._axis}}L(Qo,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({show:!0,showArrow:!0,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),color:p.reactArray([1,1,1,1]),width:2,minSize:p.reactArray([-100,-100]),maxSize:p.reactArray([100,100])})})(Qo||(Qo={})),p.extendClassProps(Qo.prototype,Qo.createDefaultProps);class pU extends p.Destroyable{constructor(e,i,o){super();L(this,"_centerMatrix",this.disposeVar(p.react(void 0)));L(this,"_inverseCenterMatrix",this.disposeVar(p.react(void 0)));L(this,"_czmPlaneWrappers");L(this,"_czmPlaneWrappersChanged",this.disposeVar(p.createNextAnimateFrameEvent()));L(this,"_computedPlanesChanged",this.disposeVar(p.createNextAnimateFrameEvent()));this._czmClippingPlanes=i,this._planeIds=o,this._czmPlaneWrappers=this._planeIds.map(r=>this.disposeVar(new gU(e,this,r)));{const r=()=>{let s,a;do{const l=this._czmPlaneWrappers.filter(u=>u.position&&u.rotation);if(l.length===0)break;const c=l.map(u=>u.position),h=Q.getMinMaxCorner(c);if(s=at({position:h.center}),!s)break;a=C.Matrix4.inverseTransformation(s,new C.Matrix4)}while(!1);this.centerMatrix=s,this.inverseCenterMatrix=a};r(),this.dispose(this.czmPlaneWrappersChanged.disposableOn(r))}{const r=()=>{if(!this.centerMatrix){this._czmClippingPlanes.computedClippingPlanes=void 0;return}const a=C.Matrix4.toArray(this.centerMatrix),l=this._czmPlaneWrappers.filter(c=>!!c.computedPlane).map(c=>c.computedPlane);this._czmClippingPlanes.computedClippingPlanes={planes:l,enabled:this._czmClippingPlanes.enabled,modelMatrix:a,unionClippingRegions:this._czmClippingPlanes.unionClippingRegions,edgeColor:this._czmClippingPlanes.edgeColor,edgeWidth:this._czmClippingPlanes.edgeWidth}};r();const s=this.disposeVar(p.createNextAnimateFrameEvent(this._czmClippingPlanes.enabledChanged,this.centerMatrixChanged,this.inverseCenterMatrixChanged,this.computedPlanesChanged,this._czmClippingPlanes.unionClippingRegionsChanged,this._czmClippingPlanes.edgeColorChanged,this._czmClippingPlanes.edgeWidthChanged));this.dispose(s.disposableOn(r))}}get centerMatrix(){return this._centerMatrix.value}set centerMatrix(e){this._centerMatrix.value=e}get centerMatrixChanged(){return this._centerMatrix.changed}get inverseCenterMatrix(){return this._inverseCenterMatrix.value}set inverseCenterMatrix(e){this._inverseCenterMatrix.value=e}get inverseCenterMatrixChanged(){return this._inverseCenterMatrix.changed}get czmPlaneWrappers(){return this._czmPlaneWrappers}get czmPlaneWrappersChanged(){return this._czmPlaneWrappersChanged}get computedPlanesChanged(){return this._computedPlanesChanged}get czmClippingPlanes(){return this._czmClippingPlanes}}class mU extends p.Destroyable{constructor(n,e){super(),this._czmPlaneWrapper=n,this._czmPlane=e,this._czmPlaneWrapper.position=this._czmPlane.position,this.dispose(()=>this._czmPlaneWrapper.position=void 0),this.dispose(p.track([this._czmPlaneWrapper,"position"],[this._czmPlane,"position"])),this._czmPlaneWrapper.rotation=this._czmPlane.rotation,this.dispose(()=>this._czmPlaneWrapper.rotation=[0,0,0]),this.dispose(p.track([this._czmPlaneWrapper,"rotation"],[this._czmPlane,"rotation"]))}}class gU extends p.Destroyable{constructor(e,i,o){super();L(this,"_sowi");L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_rotation",this.disposeVar(p.reactArray([0,0,0])));L(this,"_computedPlane",this.disposeVar(p.reactJson(void 0)));this._planesResetting=i,this._planeId=o,this._sowi=this.disposeVar(new Q.ESSceneObjectWithId),this._sowi.id=this._planeId,this.disposeVar(new p.ObjResettingWithEvent(this.sowi.sceneObjectChanged,()=>{const{sceneObject:r}=this.sowi;if(!r)return;let s;Q.registerCreatedEventUpdate(this,r,()=>{const a=e.getEngineObject(r);if(r instanceof Q.ESClippingPlane&&(s=a.czmPlane),!!s&&s instanceof Qo)return new mU(this,s)})})),this.dispose(this.positionChanged.disposableOn(()=>this._planesResetting.czmPlaneWrappersChanged.next())),this.dispose(this.rotationChanged.disposableOn(()=>this._planesResetting.czmPlaneWrappersChanged.next()));{const r=()=>{let a;do{const{inverseCenterMatrix:l}=this._planesResetting;if(!l)break;const{position:c,rotation:h}=this;if(!c)break;const u=at({position:c,rotation:h});if(!u)break;const d=C.Matrix4.multiply(l,u,new C.Matrix4),f=new C.Cartesian3(d[4],d[5],d[6]),g=new C.Cartesian3(d[12],d[13],d[14]);C.Cartesian3.normalize(f,f);let v=-C.Cartesian3.dot(f,g);const y=[f.x,f.y,f.z];this._planesResetting.czmClippingPlanes.reverseNormal&&(p.Vector.negate(y,y),v=-v),a={normal:y,distance:v}}while(!1);this.computedPlane=a};r();const s=this.disposeVar(p.createNextAnimateFrameEvent(this._planesResetting.inverseCenterMatrixChanged,this.positionChanged,this.rotationChanged,this._planesResetting.czmClippingPlanes.reverseNormalChanged));this.dispose(s.disposableOn(r))}this.dispose(this.computedPlaneChanged.disposableOn(()=>this._planesResetting.computedPlanesChanged.next()))}get sowi(){return this._sowi}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get rotation(){return this._rotation.value}set rotation(e){this._rotation.value=e}get rotationChanged(){return this._rotation.changed}get computedPlane(){return this._computedPlane.value}set computedPlane(e){this._computedPlane.value=e}get computedPlaneChanged(){return this._computedPlane.changed}}class as extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_computedClippingPlanes",this.disposeVar(p.react(void 0)));i&&(this.id=i),this.disposeVar(new p.ObjResettingWithEvent(this.planeIdsChanged,()=>new pU(e,this,this.planeIds)))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get computedClippingPlanes(){return this._computedClippingPlanes.value}set computedClippingPlanes(e){this._computedClippingPlanes.value=e}get computedClippingPlanesChanged(){return this._computedClippingPlanes.changed}}(t=>{t.createDefaultProps=()=>({enabled:!0,planeIds:p.reactArray([]),reverseNormal:!1,unionClippingRegions:!0,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2})})(as||(as={})),p.extendClassProps(as.prototype,as.createDefaultProps);let yU=class extends p.Destroyable{constructor(n,e){super(),this._czmESClippingPlane=n,this._eS3DTileset=e;const o=[this._czmESClippingPlane.czmPlane.id,...this._eS3DTileset.clippingPlaneIds];this._eS3DTileset.clippingPlaneIds=o,this.dispose(()=>{const r=[...this._eS3DTileset.clippingPlaneIds],s=this._czmESClippingPlane.czmPlane.id;r.includes(s)&&(r.splice(r.indexOf(s),1),this._eS3DTileset.clippingPlaneIds=r)})}},vU=class extends p.Destroyable{constructor(n){if(super(),this._czmESClippingPlane=n,!this._czmESClippingPlane.viewer)return;this._czmESClippingPlane.viewer.sceneGlobeClippingPlanesId=this._czmESClippingPlane.czmPlane.id;const e=()=>{if(!this._czmESClippingPlane.viewer)return;const o=at({position:this._czmESClippingPlane.sceneObject.position});if(!o)return;const r=jv(this._czmESClippingPlane.sceneObject.rotation);this._czmESClippingPlane.viewer.sceneGlobeClippingPlanes={planes:[{normal:r,distance:0}],enabled:!0,modelMatrix:C.Matrix4.toArray(o),unionClippingRegions:!1,edgeColor:this._czmESClippingPlane.sceneObject.edgeColor,edgeWidth:this._czmESClippingPlane.sceneObject.edgetWidth}};e();const i=this.dv(p.createNextAnimateFrameEvent(this._czmESClippingPlane.sceneObject.positionChanged,this._czmESClippingPlane.sceneObject.rotationChanged,this._czmESClippingPlane.sceneObject.edgeColorChanged,this._czmESClippingPlane.sceneObject.edgetWidthChanged));this.d(i.don(e)),this.dispose(()=>{this._czmESClippingPlane.viewer&&(this._czmESClippingPlane.viewer.sceneGlobeClippingPlanesId="",this._czmESClippingPlane.viewer.sceneGlobeClippingPlanes=void 0)})}};const lu=class lu extends Ge{constructor(e,i){super(e,i);L(this,"_innerPositionReact",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_czmPlane");L(this,"_tilesSceneObjectWithId");if(this._czmPlane=this.disposeVar(new Qo(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],[this.sceneObject,"targetID"])),!i.viewer)return;const r=this._czmPlane;Q.registerCreatedEventUpdate(this,e,()=>{const s=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged,this.czmPlane.showChanged));this.disposeVar(new p.ObjResettingWithEvent(s,()=>{const{sceneObject:a,id:l}=this.tilesSceneObjectWithId;if(!(!this.sceneObject.show||!this.czmPlane.show))return l===""?new vU(this):!a||!(a instanceof Q.ES3DTileset)?void 0:new yU(this,a)}))}),this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"showArrow"],[e,"showArrow"])),this.dispose(p.track([r,"color"],[e,"edgeColor"])),this.dispose(p.track([r,"width"],[e,"edgetWidth"]));{const s=()=>{r.minSize=[-e.width/2,-e.height/2],r.maxSize=[e.width/2,e.height/2]};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.widthChanged,e.heightChanged));this.dispose(a.disposableOn(s))}{const s=()=>{p.Vector.equals(e.position,[0,0,0])?this._innerPositionReact.value=void 0:this._innerPositionReact.value=e.position};s(),this.dispose(this.sceneObject.positionChanged.disposableOn(s))}{const s=()=>{this._innerPositionReact.value==null?e.position=[0,0,0]:e.position=this._innerPositionReact.value};this.dispose(this._innerPositionReact.changed.disposableOn(s))}}get czmPlane(){return this._czmPlane}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):o.position?(Rn(r,o,i,o.position,Math.max(o.width,o.height),e,!0),!0):!1:!1}};L(lu,"type",lu.register("ESCesiumViewer",Q.ESClippingPlane.type,lu));let mm=lu;const wU=(t,n)=>C.Color.fromBytes(t[0]*255,t[1]*255,t[2]*255,t[3]*255,n),bU=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case"contain":n&&n.includes(e.value)&&(i=!0);break;case"empty":(n===""||n===null||n===void 0||!n)&&(i=!0);break;default:i=!1;break}return i},_U=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case">":n>e.value&&(i=!0);break;case">=":n>=e.value&&(i=!0);break;case"<":n<e.value&&(i=!0);break;case"<=":n<=e.value&&(i=!0);break;default:i=!1;break}return i},CU=(t,n)=>{const e=[];for(let i of t.condition){if(typeof i=="boolean"){e.push(i);continue}const r=typeof i.value=="string",s=typeof i.value=="number";if(!r&&!s){e.push(!1);continue}const a=i.field;let l;if(a.includes("."))try{const c=a.split(".");l=JSON.parse(n.getProperty(c[0]));for(let h of c.slice(1))if(l=l==null?void 0:l[h],l===void 0)throw new Error(`${l}上不存在属性${h},将使用默认颜色!`)}catch{e.push(!1);continue}else l=n.getProperty(a);if(r){e.push(bU(i,l));continue}else if(s){e.push(_U(i,l));continue}else{e.push(!1);continue}}return e},xU=(t,n)=>{const e=[];for(let i of t.condition){if(typeof i=="boolean"){e.push(i);continue}const r=typeof i.value=="string",s=typeof i.value=="number";if(!r&&!s){e.push(!1);continue}const a=i.field;let l;if(a.includes("."))try{const c=a.split(".");l=JSON.parse(n.getProperty(c[0]));for(let h of c.slice(1))if(l=l==null?void 0:l[h],l===void 0)throw new Error(`${l}上不存在属性${h},将使用默认颜色!`)}catch{e.push(!1);continue}else l=n.getProperty(a);if(r){e.push(SU(i,l));continue}else if(s){e.push(EU(i,l));continue}else{e.push(!1);continue}}return e},SU=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case"contain":n.includes(e.value)&&(i=!0);break;case"empty":(n===""||n===null||n===void 0||!n)&&(i=!0);break;default:i=!1;break}return i},EU=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case">":n>e.value&&(i=!0);break;case">=":n>=e.value&&(i=!0);break;case"<":n<e.value&&(i=!0);break;case"<=":n<=e.value&&(i=!0);break;default:i=!1;break}return i};let J_=[1,1,1];class PU extends p.Destroyable{constructor(e,i){super();L(this,"_customShader");const o=new C.CustomShader({uniforms:{u_baseColor:{type:C.UniformType.VEC3,value:C.Cartesian3.fromArray(J_)}},fragmentShaderText:`
2731
+ `})));this._sceneObject=o,this._viewer=r;{const s=()=>{this._customShader.uniforms.u_discardRatio.value=C.Cartesian2.fromArray(n.discard)};s(),this.dispose(n.discardChanged.disposableOn(s))}{const s=()=>{this._customShader.uniforms.u_bottomColor.value=new C.Color(...n.bottomColor)};s(),this.dispose(n.bottomColorChanged.disposableOn(s))}{const s=()=>{this._customShader.uniforms.u_topColor.value=new C.Color(...n.topColor)};s(),this.dispose(n.topColorChanged.disposableOn(s))}}get sceneObject(){return this._sceneObject}get viewer(){return this._viewer}get customShader(){return this._customShader}update(){alert("暂未实现!")}}}function cU(t,n,e){const i=t,o=n,r=[[i[0],i[1],0],[o[0],i[1],0],[o[0],o[1],0],[i[0],o[1],0]],s=C.Math.toDegrees,a=r.map(c=>{const h=C.Matrix4.multiplyByPoint(e,C.Cartesian3.fromElements(...c),new C.Cartesian3),u=C.Cartographic.fromCartesian(h);return[s(u.longitude),s(u.latitude),u.height]});return[[a[0],a[1],a[2],a[3],a[0]]]}class hU extends p.Destroyable{constructor(e,i){super();L(this,"_customShader");this._czmFlattenedPlane=e,this._reverse=i,this._customShader=uU(this._reverse,this._czmFlattenedPlane),this._czmFlattenedPlane.computedCustomShader=this.customShader,this.dispose(()=>{this._czmFlattenedPlane.computedCustomShader=void 0})}get customShader(){return this._customShader}}class Wr extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_computedCustomShader",this.disposeVar(p.react(void 0)));L(this,"_polylines");L(this,"_finalMatrix",this.disposeVar(p.react(void 0)));L(this,"_czmTextureWithId");i&&(this.id=i),this._czmTextureWithId=this.disposeVar(new Q.ESSceneObjectWithId),this._polylines=this.disposeVar(new En(e)),this._polylines.arcType="NONE",this.dispose(p.track([this._czmTextureWithId,"id"],[this,"czmTextureId"])),this.dispose(this.flyToEvent.disposableOn(o=>{if(!(e instanceof Ye)||!e.actived)return;if(!this.position){console.warn("CzmFlattenedPlane warning: 没有位置,无法飞入!");return}const r=this.minSize,s=this.maxSize,a=[s[0]-r[0],s[1]-r[1]],l=Math.sqrt(a[0]*a[0]+a[1]*a[1]);Be(e.viewer,this.position,l*2,void 0,o)}));{const o=()=>{if(!this.enabled){this.finalMatrix=void 0,this.polylines.positions=void 0;return}const s=[...this.modelMatrix];let a=[];do{if(this.finalMatrix=void 0,!this.position)break;const l=at({position:this.position,rotation:this.rotation});if(!l)break;const c=C.Matrix4.fromArray(this.modelMatrix),h=C.Matrix4.multiply(l,c,new C.Matrix4);C.Matrix4.toArray(h,s),this.finalMatrix=h,a=cU(this.minSize,this.maxSize,h)}while(!1);this.polylines.positions=a};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.enabledChanged,this.positionChanged,this.rotationChanged,this.modelMatrixChanged,this.minSizeChanged,this.maxSizeChanged));this.dispose(r.disposableOn(o))}{const o=this.disposeVar(p.createNextAnimateFrameEvent(this.enabledChanged,this.reverseChanged));this.disposeVar(new p.ObjResettingWithEvent(o,()=>{if(this.enabled)return new hU(this,this.reverse)}))}this.dispose(p.track([this.polylines,"color"],[this,"edgeColor"])),this.dispose(p.track([this.polylines,"width"],[this,"edgeWidth"])),this.dispose(p.track([this.polylines,"show"],[this,"showHelper"]))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get computedCustomShader(){return this._computedCustomShader.value}set computedCustomShader(e){this._computedCustomShader.value=e}get computedCustomShaderChanged(){return this._computedCustomShader.changed}get polylines(){return this._polylines}get finalMatrix(){return this._finalMatrix.value}set finalMatrix(e){this._finalMatrix.value=e}get finalMatrixChanged(){return this._finalMatrix.changed}get czmTextureWithId(){return this._czmTextureWithId}}L(Wr,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),modelMatrix:p.reactArray([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),reverse:!1,discard:p.reactArray([0,1]),topColor:p.reactArray([1,1,1,1]),bottomColor:p.reactArray([1,1,1,1]),edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2,minSize:p.reactArray([-100,-100]),maxSize:p.reactArray([100,100]),sceneObjectIds:p.reactArray([]),czmTextureId:""})})(Wr||(Wr={})),p.extendClassProps(Wr.prototype,Wr.createDefaultProps);class AU extends p.Destroyable{constructor(n,e){super(),this._czmPolygonFlattenedPlane=n,this._czmFlattenedPlane=e;{const{polygonCanvas:i}=this._czmPolygonFlattenedPlane,o=6378137,r=C.Math.toRadians,s=()=>{const{canvasGeoInfo:a}=i;if(!a)return;const{rect:l,height:c}=a,h=[(l[0]+l[2])/2,(l[1]+l[3])/2,c],u=r(l[2]-l[0])*o*Math.cos(r(h[1])),A=r(l[3]-l[1])*o;this._czmFlattenedPlane.position=h,this._czmFlattenedPlane.minSize=[-u*.5,-A*.5],this._czmFlattenedPlane.maxSize=[u*.5,A*.5]};s(),this.dispose(i.canvasGeoInfoChanged.disposableOn(s))}this._czmFlattenedPlane.czmTextureWithId.id=this._czmPolygonFlattenedPlane.czmTexture.id,this.dispose(()=>this._czmFlattenedPlane.czmTextureWithId.id=void 0);{const i=this._czmFlattenedPlane.showHelper;this._czmFlattenedPlane.showHelper=!1,this.dispose(()=>this._czmFlattenedPlane.showHelper=i)}this.dispose(p.track([this._czmFlattenedPlane,"enabled"],[this._czmPolygonFlattenedPlane,"enabled"]))}}class Ll extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_czmTexture");L(this,"_polygon");L(this,"_polygonCanvas");L(this,"_czmFlattenedPlaneWithId");L(this,"_czmFlattendPlaneWithIdResetting");i&&(this._id.value=i);{this._czmTexture=this.disposeVar(new At(e,i)),this._polygon=this.disposeVar(new Q.ESGeoPolygon(`${i}_polygon`)),e.add(this._polygon),this.ad(()=>{e.delete(this._polygon)}),this.dispose(p.track([this._polygon,"allowPicking"],[this,"allowPicking"])),this.dispose(p.track([this._polygon,"points"],[this,"positions"])),this.dispose(p.track([this._polygon,"show"],[this,"show"])),this._polygonCanvas=this.disposeVar(new zo(e,i)),this._polygonCanvas.geoPolygonWithId.sceneObject=this._polygon;const o=()=>{this._czmTexture.copyFromCanvas(this._polygonCanvas.canvas)};o(),this.dispose(this._polygonCanvas.canvasChanged.disposableOn(o)),this.dispose(this._czmTexture.readyEvent.disposableOn(o)),this._czmFlattenedPlaneWithId=this.disposeVar(new Q.ESSceneObjectWithId),this.dispose(p.track([this._czmFlattenedPlaneWithId,"id"],[this,"czmFlattenedPlaneId"])),this._czmFlattendPlaneWithIdResetting=this.disposeVar(new p.ObjResettingWithEvent(this.czmFlattenedPlaneWithId.sceneObjectChanged,()=>{const{sceneObject:r}=this.czmFlattenedPlaneWithId;if(!r)return;let s;Q.registerCreatedEventUpdate(this,r,()=>{const a=e.getEngineObject(r);if(r instanceof Q.ES3DTileset&&(s=a.flattenedPlane),s instanceof Wr)return new AU(this,s)})}))}this.dispose(this._flyToEvent.disposableOn(o=>{this._polygon.flyTo(o)}))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get czmTexture(){return this._czmTexture}get polygon(){return this._polygon}get polygonCanvas(){return this._polygonCanvas}get czmFlattenedPlaneWithId(){return this._czmFlattenedPlaneWithId}get czmFlattendPlaneWithIdResetting(){return this._czmFlattendPlaneWithIdResetting}}(t=>{t.createDefaultProps=()=>({enabled:!0,show:!0,positions:p.reactPositions([]),allowPicking:!1,czmFlattenedPlaneId:""})})(Ll||(Ll={})),p.extendClassProps(Ll.prototype,Ll.createDefaultProps);class _i extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));if(!e.viewer)return;const r=this.ad(new ba(e,i)),s=this.ad(new Je(e,i));s.loop=!0,this.ad(p.bind([s,"depthTest"],[this,"depthTest"])),this.dispose(p.track([r,"allowPicking"],[this,"allowPicking"]));{const c=()=>{r.ground=this.ground,s.ground=this.strokeGround,s.arcType=this.strokeGround?"NONE":"GEODESIC"};c();const h=this.ad(p.createNextAnimateFrameEvent(this.groundChanged,this.strokeGroundChanged));this.ad(h.don(c))}const a=()=>{s.show=this.show&&this.outline,r.show=this.show&&this.fill,s.positions=this.positions,r.polygonHierarchy=r.show?{positions:this.positions||[]}:{positions:[]},s.color=this.outlineColor,s.width=this.outlineWidth,r.material={type:"Color",color:this.color||[1,1,1,.5]}};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(this.showChanged,this.outlineChanged,this.outlineColorChanged,this.outlineWidthChanged,this.fillChanged,this.colorChanged,this.positionsChanged));this.dispose(l.disposableOn(a)),this.dispose(this.flyToEvent.disposableOn(c=>{this.viewDistanceRange||(r.flyTo(c),this.fill||s.flyTo(c))}))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}}L(_i,"defaults",{viewDistanceRange:[1e3,1e4,3e4,6e4],positions:[]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,outline:!0,strokeGround:!1,ground:!1,outlineColor:p.reactArray([1,1,1,1]),outlineWidth:2,fill:!0,color:p.reactArray([1,1,1,.5]),positions:p.reactPositions(void 0),viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1,depthTest:!1})})(_i||(_i={})),p.extendClassProps(_i.prototype,_i.createDefaultProps);const au=class au extends an{constructor(e,i){super(e,i);L(this,"_geoPolygon");if(!i.viewer){console.warn("viewer is undefined!");return}this._geoPolygon=this.ad(new _i(i,e.id));const r=this.geoPolygon;r&&(this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"ground"],[e,"fillGround"])),this.dispose(p.track([r,"outline"],[e,"stroked"])),this.dispose(p.track([r,"outlineColor"],[e,"strokeColor"])),this.dispose(p.track([r,"outlineWidth"],[e,"strokeWidth"])),this.dispose(p.track([r,"fill"],[e,"filled"])),this.dispose(p.track([r,"color"],[e,"fillColor"])))}get geoPolygon(){return this._geoPolygon}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoPolygon:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):s!=null&&s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoPolygon:s}=this;return r.actived?o.flyInParam?(super.flyIn(e,i),!0):s!=null&&s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(au,"type",au.register("ESCesiumViewer",Q.ESGeoPolygon.type,au));let Tn=au,fU=class extends p.Destroyable{constructor(n,e){super(),this._czmESPolygonFlattenedPlane=n,this._eS3DTileset=e,this._eS3DTileset.flattenedPlaneEnabled=!0,this._czmESPolygonFlattenedPlane.polygonFlattenedPlane.czmFlattenedPlaneId=this._eS3DTileset.flattenedPlaneId,this.dispose(()=>this._eS3DTileset.flattenedPlaneEnabled=!1)}};const su=class su extends Tn{constructor(e,i){super(e,i);L(this,"_polygonFlattenedPlane");L(this,"_tilesSceneObjectWithId");this._polygonFlattenedPlane=this.disposeVar(new Ll(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId);const o=this.ad(p.react(this.sceneObject.targetID));if(this.ad(e.targetIDChanged.don(()=>{const l=Q.ESSceneObject.getSceneObject(e.targetID);o.value=l?l.getMainClass().id:o.value})),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],o)),!i.viewer){console.warn("viewer is undefined!");return}const s=this._polygonFlattenedPlane;s.enabled=!0,this.dispose(p.track([s,"show"],[e,"show"])),this.dispose(p.bind([s,"positions"],[e,"points"])),this.dispose(p.track([s,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([s,"czmFlattenedPlaneId"],[e,"czmFlattenedPlaneId"])),this.dispose(p.track([s.polygon,"stroked"],[e,"stroked"])),this.dispose(p.track([s.polygon,"strokeColor"],[e,"strokeColor"])),this.dispose(p.track([s.polygon,"strokeWidth"],[e,"strokeWidth"])),this.dispose(p.track([s.polygon,"filled"],[e,"filled"])),this.dispose(p.track([s.polygon,"fillColor"],[e,"fillColor"])),this.dispose(p.track([s.polygon,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([s.polygon,"fillGround"],[e,"fillGround"]));const a=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged));this.disposeVar(new p.ObjResettingWithEvent(a,()=>{const{sceneObject:l}=this.tilesSceneObjectWithId;if(l&&l instanceof Q.ES3DTileset&&this.sceneObject.show)return new fU(this,l)}))}get polygonFlattenedPlane(){return this._polygonFlattenedPlane}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r,polygonFlattenedPlane:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(su,"type",su.register("ESCesiumViewer",Q.ESPolygonFlattenedPlane.type,su));let pm=su;function dU(t,n,e){const i=t,o=n,r=(o[0]-i[0]+(o[1]-i[1]))/4,s=[[i[0],0,i[1]],[o[0],0,i[1]],[o[0],0,o[1]],[i[0],0,o[1]],[0,r,0]],a=C.Math.toDegrees,l=s.map(h=>{const u=C.Matrix4.multiplyByPoint(e,C.Cartesian3.fromElements(...h),new C.Cartesian3),A=C.Cartographic.fromCartesian(u);return[a(A.longitude),a(A.latitude),A.height]});return[[[l[0],l[1],l[2],l[3],l[0]]],l[4]]}class Qo extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_polylines");L(this,"_axis");i&&(this.id=i),this._polylines=this.disposeVar(new En(e,i)),this._axis=this.disposeVar(new Je(e,i)),this._axis.hasArrow=!0,this._axis.width=10,this._polylines.arcType=this._axis.arcType="NONE",this.dispose(this.flyToEvent.disposableOn(o=>{if(!(e instanceof Ye)||!e.actived)return;if(!this.position){console.warn("CzmPlane warning: 没有位置,无法飞入!");return}const r=this.minSize,s=this.maxSize,a=[s[0]-r[0],s[1]-r[1]],l=Math.sqrt(a[0]*a[0]+a[1]*a[1]);Be(e.viewer,this.position,l*2,void 0,o)}));{const o=()=>{let s=[],a;do{if(!this.position)break;const l=at({position:this.position,rotation:this.rotation});if(!l)break;const c=dU(this.minSize,this.maxSize,l);s=c[0],a=c[1]}while(!1);this.polylines.positions=s,!(!this.position||!a)&&(this.axis.positions=[this.position,a])};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionChanged,this.rotationChanged,this.minSizeChanged,this.maxSizeChanged));this.dispose(r.disposableOn(o))}this.dispose(p.track([this.polylines,"color"],[this,"color"])),this.dispose(p.track([this.polylines,"width"],[this,"width"])),this.dispose(p.track([this.polylines,"show"],[this,"show"])),this.dispose(p.track([this.axis,"color"],[this,"color"]));{const o=()=>{this.axis.show=this.show&&this.showArrow};o(),this.dispose(this.showChanged.disposableOn(o)),this.dispose(this.showArrowChanged.disposableOn(o))}}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get polylines(){return this._polylines}get axis(){return this._axis}}L(Qo,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({show:!0,showArrow:!0,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),color:p.reactArray([1,1,1,1]),width:2,minSize:p.reactArray([-100,-100]),maxSize:p.reactArray([100,100])})})(Qo||(Qo={})),p.extendClassProps(Qo.prototype,Qo.createDefaultProps);class pU extends p.Destroyable{constructor(e,i,o){super();L(this,"_centerMatrix",this.disposeVar(p.react(void 0)));L(this,"_inverseCenterMatrix",this.disposeVar(p.react(void 0)));L(this,"_czmPlaneWrappers");L(this,"_czmPlaneWrappersChanged",this.disposeVar(p.createNextAnimateFrameEvent()));L(this,"_computedPlanesChanged",this.disposeVar(p.createNextAnimateFrameEvent()));this._czmClippingPlanes=i,this._planeIds=o,this._czmPlaneWrappers=this._planeIds.map(r=>this.disposeVar(new gU(e,this,r)));{const r=()=>{let s,a;do{const l=this._czmPlaneWrappers.filter(u=>u.position&&u.rotation);if(l.length===0)break;const c=l.map(u=>u.position),h=Q.getMinMaxCorner(c);if(s=at({position:h.center}),!s)break;a=C.Matrix4.inverseTransformation(s,new C.Matrix4)}while(!1);this.centerMatrix=s,this.inverseCenterMatrix=a};r(),this.dispose(this.czmPlaneWrappersChanged.disposableOn(r))}{const r=()=>{if(!this.centerMatrix){this._czmClippingPlanes.computedClippingPlanes=void 0;return}const a=C.Matrix4.toArray(this.centerMatrix),l=this._czmPlaneWrappers.filter(c=>!!c.computedPlane).map(c=>c.computedPlane);this._czmClippingPlanes.computedClippingPlanes={planes:l,enabled:this._czmClippingPlanes.enabled,modelMatrix:a,unionClippingRegions:this._czmClippingPlanes.unionClippingRegions,edgeColor:this._czmClippingPlanes.edgeColor,edgeWidth:this._czmClippingPlanes.edgeWidth}};r();const s=this.disposeVar(p.createNextAnimateFrameEvent(this._czmClippingPlanes.enabledChanged,this.centerMatrixChanged,this.inverseCenterMatrixChanged,this.computedPlanesChanged,this._czmClippingPlanes.unionClippingRegionsChanged,this._czmClippingPlanes.edgeColorChanged,this._czmClippingPlanes.edgeWidthChanged));this.dispose(s.disposableOn(r))}}get centerMatrix(){return this._centerMatrix.value}set centerMatrix(e){this._centerMatrix.value=e}get centerMatrixChanged(){return this._centerMatrix.changed}get inverseCenterMatrix(){return this._inverseCenterMatrix.value}set inverseCenterMatrix(e){this._inverseCenterMatrix.value=e}get inverseCenterMatrixChanged(){return this._inverseCenterMatrix.changed}get czmPlaneWrappers(){return this._czmPlaneWrappers}get czmPlaneWrappersChanged(){return this._czmPlaneWrappersChanged}get computedPlanesChanged(){return this._computedPlanesChanged}get czmClippingPlanes(){return this._czmClippingPlanes}}class mU extends p.Destroyable{constructor(n,e){super(),this._czmPlaneWrapper=n,this._czmPlane=e,this._czmPlaneWrapper.position=this._czmPlane.position,this.dispose(()=>this._czmPlaneWrapper.position=void 0),this.dispose(p.track([this._czmPlaneWrapper,"position"],[this._czmPlane,"position"])),this._czmPlaneWrapper.rotation=this._czmPlane.rotation,this.dispose(()=>this._czmPlaneWrapper.rotation=[0,0,0]),this.dispose(p.track([this._czmPlaneWrapper,"rotation"],[this._czmPlane,"rotation"]))}}class gU extends p.Destroyable{constructor(e,i,o){super();L(this,"_sowi");L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_rotation",this.disposeVar(p.reactArray([0,0,0])));L(this,"_computedPlane",this.disposeVar(p.reactJson(void 0)));this._planesResetting=i,this._planeId=o,this._sowi=this.disposeVar(new Q.ESSceneObjectWithId),this._sowi.id=this._planeId,this.disposeVar(new p.ObjResettingWithEvent(this.sowi.sceneObjectChanged,()=>{const{sceneObject:r}=this.sowi;if(!r)return;let s;Q.registerCreatedEventUpdate(this,r,()=>{const a=e.getEngineObject(r);if(r instanceof Q.ESClippingPlane&&(s=a.czmPlane),!!s&&s instanceof Qo)return new mU(this,s)})})),this.dispose(this.positionChanged.disposableOn(()=>this._planesResetting.czmPlaneWrappersChanged.next())),this.dispose(this.rotationChanged.disposableOn(()=>this._planesResetting.czmPlaneWrappersChanged.next()));{const r=()=>{let a;do{const{inverseCenterMatrix:l}=this._planesResetting;if(!l)break;const{position:c,rotation:h}=this;if(!c)break;const u=at({position:c,rotation:h});if(!u)break;const d=C.Matrix4.multiply(l,u,new C.Matrix4),f=new C.Cartesian3(d[4],d[5],d[6]),g=new C.Cartesian3(d[12],d[13],d[14]);C.Cartesian3.normalize(f,f);let v=-C.Cartesian3.dot(f,g);const y=[f.x,f.y,f.z];this._planesResetting.czmClippingPlanes.reverseNormal&&(p.Vector.negate(y,y),v=-v),a={normal:y,distance:v}}while(!1);this.computedPlane=a};r();const s=this.disposeVar(p.createNextAnimateFrameEvent(this._planesResetting.inverseCenterMatrixChanged,this.positionChanged,this.rotationChanged,this._planesResetting.czmClippingPlanes.reverseNormalChanged));this.dispose(s.disposableOn(r))}this.dispose(this.computedPlaneChanged.disposableOn(()=>this._planesResetting.computedPlanesChanged.next()))}get sowi(){return this._sowi}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get rotation(){return this._rotation.value}set rotation(e){this._rotation.value=e}get rotationChanged(){return this._rotation.changed}get computedPlane(){return this._computedPlane.value}set computedPlane(e){this._computedPlane.value=e}get computedPlaneChanged(){return this._computedPlane.changed}}class as extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_computedClippingPlanes",this.disposeVar(p.react(void 0)));i&&(this.id=i),this.disposeVar(new p.ObjResettingWithEvent(this.planeIdsChanged,()=>new pU(e,this,this.planeIds)))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get computedClippingPlanes(){return this._computedClippingPlanes.value}set computedClippingPlanes(e){this._computedClippingPlanes.value=e}get computedClippingPlanesChanged(){return this._computedClippingPlanes.changed}}(t=>{t.createDefaultProps=()=>({enabled:!0,planeIds:p.reactArray([]),reverseNormal:!1,unionClippingRegions:!0,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2})})(as||(as={})),p.extendClassProps(as.prototype,as.createDefaultProps);let yU=class extends p.Destroyable{constructor(n,e){super(),this._czmESClippingPlane=n,this._eS3DTileset=e;const o=[this._czmESClippingPlane.czmPlane.id,...this._eS3DTileset.clippingPlaneIds];this._eS3DTileset.clippingPlaneIds=o,this.dispose(()=>{const r=[...this._eS3DTileset.clippingPlaneIds],s=this._czmESClippingPlane.czmPlane.id;r.includes(s)&&(r.splice(r.indexOf(s),1),this._eS3DTileset.clippingPlaneIds=r)})}},vU=class extends p.Destroyable{constructor(n){if(super(),this._czmESClippingPlane=n,!this._czmESClippingPlane.viewer)return;this._czmESClippingPlane.viewer.sceneGlobeClippingPlanesId=this._czmESClippingPlane.czmPlane.id;const e=()=>{if(!this._czmESClippingPlane.viewer)return;const o=at({position:this._czmESClippingPlane.sceneObject.position});if(!o)return;const r=jv(this._czmESClippingPlane.sceneObject.rotation);this._czmESClippingPlane.viewer.sceneGlobeClippingPlanes={planes:[{normal:r,distance:0}],enabled:!0,modelMatrix:C.Matrix4.toArray(o),unionClippingRegions:!1,edgeColor:this._czmESClippingPlane.sceneObject.edgeColor,edgeWidth:this._czmESClippingPlane.sceneObject.edgetWidth}};e();const i=this.dv(p.createNextAnimateFrameEvent(this._czmESClippingPlane.sceneObject.positionChanged,this._czmESClippingPlane.sceneObject.rotationChanged,this._czmESClippingPlane.sceneObject.edgeColorChanged,this._czmESClippingPlane.sceneObject.edgetWidthChanged));this.d(i.don(e)),this.dispose(()=>{this._czmESClippingPlane.viewer&&(this._czmESClippingPlane.viewer.sceneGlobeClippingPlanesId="",this._czmESClippingPlane.viewer.sceneGlobeClippingPlanes=void 0)})}};const lu=class lu extends Ge{constructor(e,i){super(e,i);L(this,"_innerPositionReact",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_czmPlane");L(this,"_tilesSceneObjectWithId");this._czmPlane=this.disposeVar(new Qo(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId);const o=this.ad(p.react(this.sceneObject.targetID));if(this.ad(e.targetIDChanged.don(()=>{const a=Q.ESSceneObject.getSceneObject(e.targetID);o.value=a?a.getMainClass().id:o.value})),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],o)),!i.viewer)return;const s=this._czmPlane;Q.registerCreatedEventUpdate(this,e,()=>{const a=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged,this.czmPlane.showChanged));this.disposeVar(new p.ObjResettingWithEvent(a,()=>{const{sceneObject:l,id:c}=this.tilesSceneObjectWithId;if(!(!this.sceneObject.show||!this.czmPlane.show))return c===""?new vU(this):!l||!(l instanceof Q.ES3DTileset)?void 0:new yU(this,l)}))}),this.dispose(p.track([s,"show"],[e,"show"])),this.dispose(p.bind([s,"position"],[e,"position"])),this.dispose(Dt([s,"rotation"],[e,"rotation"])),this.dispose(p.track([s,"showArrow"],[e,"showArrow"])),this.dispose(p.track([s,"color"],[e,"edgeColor"])),this.dispose(p.track([s,"width"],[e,"edgetWidth"]));{const a=()=>{s.minSize=[-e.width/2,-e.height/2],s.maxSize=[e.width/2,e.height/2]};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.widthChanged,e.heightChanged));this.dispose(l.disposableOn(a))}{const a=()=>{p.Vector.equals(e.position,[0,0,0])?this._innerPositionReact.value=void 0:this._innerPositionReact.value=e.position};a(),this.dispose(this.sceneObject.positionChanged.disposableOn(a))}{const a=()=>{this._innerPositionReact.value==null?e.position=[0,0,0]:e.position=this._innerPositionReact.value};this.dispose(this._innerPositionReact.changed.disposableOn(a))}}get czmPlane(){return this._czmPlane}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):o.position?(Rn(r,o,i,o.position,Math.max(o.width,o.height),e,!0),!0):!1:!1}};L(lu,"type",lu.register("ESCesiumViewer",Q.ESClippingPlane.type,lu));let mm=lu;const wU=(t,n)=>C.Color.fromBytes(t[0]*255,t[1]*255,t[2]*255,t[3]*255,n),bU=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case"contain":n&&n.includes(e.value)&&(i=!0);break;case"empty":(n===""||n===null||n===void 0||!n)&&(i=!0);break;default:i=!1;break}return i},_U=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case">":n>e.value&&(i=!0);break;case">=":n>=e.value&&(i=!0);break;case"<":n<e.value&&(i=!0);break;case"<=":n<=e.value&&(i=!0);break;default:i=!1;break}return i},CU=(t,n)=>{const e=[];for(let i of t.condition){if(typeof i=="boolean"){e.push(i);continue}const r=typeof i.value=="string",s=typeof i.value=="number";if(!r&&!s){e.push(!1);continue}const a=i.field;let l;if(a.includes("."))try{const c=a.split(".");l=JSON.parse(n.getProperty(c[0]));for(let h of c.slice(1))if(l=l==null?void 0:l[h],l===void 0)throw new Error(`${l}上不存在属性${h},将使用默认颜色!`)}catch{e.push(!1);continue}else l=n.getProperty(a);if(r){e.push(bU(i,l));continue}else if(s){e.push(_U(i,l));continue}else{e.push(!1);continue}}return e},xU=(t,n)=>{const e=[];for(let i of t.condition){if(typeof i=="boolean"){e.push(i);continue}const r=typeof i.value=="string",s=typeof i.value=="number";if(!r&&!s){e.push(!1);continue}const a=i.field;let l;if(a.includes("."))try{const c=a.split(".");l=JSON.parse(n.getProperty(c[0]));for(let h of c.slice(1))if(l=l==null?void 0:l[h],l===void 0)throw new Error(`${l}上不存在属性${h},将使用默认颜色!`)}catch{e.push(!1);continue}else l=n.getProperty(a);if(r){e.push(SU(i,l));continue}else if(s){e.push(EU(i,l));continue}else{e.push(!1);continue}}return e},SU=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case"contain":n.includes(e.value)&&(i=!0);break;case"empty":(n===""||n===null||n===void 0||!n)&&(i=!0);break;default:i=!1;break}return i},EU=(t,n)=>{const e=t;let i=!1;switch(e.op){case"==":n===e.value&&(i=!0);break;case"!=":n!==e.value&&(i=!0);break;case">":n>e.value&&(i=!0);break;case">=":n>=e.value&&(i=!0);break;case"<":n<e.value&&(i=!0);break;case"<=":n<=e.value&&(i=!0);break;default:i=!1;break}return i};let J_=[1,1,1];class PU extends p.Destroyable{constructor(e,i){super();L(this,"_customShader");const o=new C.CustomShader({uniforms:{u_baseColor:{type:C.UniformType.VEC3,value:C.Cartesian3.fromArray(J_)}},fragmentShaderText:`
2732
2732
  // Color tiles by distance to the camera
2733
2733
  void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
2734
2734
  {
@@ -2787,7 +2787,7 @@ class CityShaderInstance extends xbsj['xr-base-utils'].Destroyable {
2787
2787
  function (particle, dt) {
2788
2788
  particle.velocity = Cesium.Cartesian3.ZERO;
2789
2789
  }
2790
- `;const s={emitter:{type:"CircleEmitter",radius:.1},startColor:[1,0,0,1],endColor:[1,.5,0,.5],particleLife:1,emissionRate:2,lifetime:1,imageSize:[1,1],sizeInMeters:!0},a=Object.keys(s);for(const l of a)r[l]=s[l]}{const s=()=>{r.startScale=1*(e.scale[0]>0?e.scale[0]:1),r.endScale=10*(e.scale[0]>0?e.scale[0]:1)};s(),this.ad(e.scaleChanged.don(s))}this.d(p.track([r,"show"],[e,"show"])),this.d(p.bind([r,"position"],[e,"position"])),this.d(p.track([r,"translation"],[e,"translation"])),this.d(Dt([r,"rotation"],[e,"rotation"])),this.d(p.track([r,"image"],[e,"image"]))}get czmBlastParticeSystem(){return this._czmBlastParticeSystem}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmBlastParticeSystem:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const a=s.position;return Be(r.viewer,a,100,Dn,e),o.flyOverEvent.emit(i,"over",r),!0}}};L(fu,"type",fu.register("ESCesiumViewer",Q.ESBlastParticleSystem.type,fu));let wm=fu;function DU(t,n,e){const i=t,o=n,r=[[i[0],i[1],i[2]],[o[0],i[1],i[2]],[o[0],o[1],i[2]],[i[0],o[1],i[2]],[i[0],i[1],o[2]],[o[0],i[1],o[2]],[o[0],o[1],o[2]],[i[0],o[1],o[2]]],s=C.Math.toDegrees,a=r.map(c=>{const h=C.Matrix4.multiplyByPoint(e,C.Cartesian3.fromElements(...c),new C.Cartesian3),u=C.Cartographic.fromCartesian(h);return[s(u.longitude),s(u.latitude),u.height]});return[[a[0],a[1],a[2],a[3],a[0]],[a[4],a[5],a[6],a[7],a[4]],[a[0],a[4]],[a[1],a[5]],[a[2],a[6]],[a[3],a[7]]]}class us extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_computedClippingPlanes",this.disposeVar(p.react(void 0)));L(this,"_polylines");i&&(this.id=i),this._polylines=this.disposeVar(new En(e,i)),this._polylines.arcType="NONE",this.ad(this.flyToEvent.disposableOn(o=>{if(!(e instanceof Ye)||!e.actived)return;if(!this.position){console.warn("CzmBoxClippingPlanes warning: 没有位置,无法飞入!");return}const r=this.minSize,s=this.maxSize,a=[s[0]-r[0],s[1]-r[1],s[2]-r[2]],l=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);Be(e.viewer,this.position,l*2,void 0,o)}));{const o=()=>{e instanceof Ye&&(e.sceneGlobeClippingPlanesId=this.applyOnTerrain&&i||"")};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.applyOnTerrainChanged,this.computedClippingPlanesChanged));this.ad(r.disposableOn(o)),this.ad(()=>{e instanceof Ye&&e.sceneGlobeClippingPlanesId===i&&(e.sceneGlobeClippingPlanes=void 0)})}{const o=()=>{const s=this.minSize,a=this.maxSize,l=[a[0]-s[0],a[1]-s[1],a[2]-s[2]],c=this.reverse?-1:1,h=[...this.modelMatrix];let u=[];do{if(!this.position)break;const A=at({position:this.position,rotation:this.rotation});if(!A)break;const d=C.Matrix4.fromArray(this.modelMatrix),f=C.Matrix4.multiply(A,d,new C.Matrix4);C.Matrix4.toArray(f,h),u=DU(this.minSize,this.maxSize,f)}while(!1);this.polylines.positions=u,this._computedClippingPlanes.value={planes:[{normal:[-1*c,0,0],distance:(l[0]+s[0])*c},{normal:[1*c,0,0],distance:-s[0]*c},{normal:[0,-1*c,0],distance:(l[1]+s[1])*c},{normal:[0,1*c,0],distance:-s[1]*c},{normal:[0,0,-1*c],distance:(l[2]+s[2])*c},{normal:[0,0,1*c],distance:-s[2]*c}],enabled:this.enabled,modelMatrix:h,unionClippingRegions:!this.reverse,edgeColor:this.edgeColor,edgeWidth:this.edgeWidth}};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.enabledChanged,this.positionChanged,this.rotationChanged,this.modelMatrixChanged,this.reverseChanged,this.edgeColorChanged,this.edgeWidthChanged,this.minSizeChanged,this.maxSizeChanged));this.dispose(r.disposableOn(o))}this.dispose(p.track([this.polylines,"color"],[this,"edgeColor"])),this.dispose(p.track([this.polylines,"width"],[this,"edgeWidth"])),this.dispose(p.track([this.polylines,"show"],[this,"showHelper"]))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get computedClippingPlanes(){return this._computedClippingPlanes.value}set computedClippingPlanes(e){this._computedClippingPlanes.value=e}get computedClippingPlanesChanged(){return this._computedClippingPlanes.changed}get polylines(){return this._polylines}}L(us,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,applyOnTerrain:!1,positionEditing:!1,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),modelMatrix:p.reactArray([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),reverse:!1,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2,minSize:p.reactArray([-100,-100,-100]),maxSize:p.reactArray([100,100,100])})})(us||(us={})),p.extendClassProps(us.prototype,us.createDefaultProps);let RU=class extends p.Destroyable{constructor(n,e){super(),this._czmESBoxClippingPlanes=n,this._eS3DTileset=e;const i=this._czmESBoxClippingPlanes.czmBoxClippingPlanes.id;this._eS3DTileset.clippingPlaneId=i,this.dispose(()=>{this._eS3DTileset.clippingPlaneId=""})}};const du=class du extends Ge{constructor(e,i){super(e,i);L(this,"_czmBoxClippingPlanes");L(this,"_tilesSceneObjectWithId");if(this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId),this._czmBoxClippingPlanes=this.ad(new us(i,e.id)),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],[this.sceneObject,"targetID"])),Q.registerCreatedEventUpdate(this,e,()=>{const s=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged,this.czmBoxClippingPlanes.enabledChanged));this.disposeVar(new p.ObjResettingWithEvent(s,()=>{const{sceneObject:a}=this.tilesSceneObjectWithId;if(a&&a instanceof Q.ES3DTileset&&this.sceneObject.show)return new RU(this,a)}))}),!i.viewer){console.warn("viewer is undefined!");return}const{czmBoxClippingPlanes:r}=this;{const s=()=>{r.enabled=e.show,r.showHelper=e.show};s(),this.dispose(e.showChanged.don(s))}{const s=()=>{r.reverse=!e.reverse};s(),this.dispose(e.reverseChanged.don(s))}{const s=()=>{e.targetID?r.applyOnTerrain=!1:r.applyOnTerrain=!0};s(),this.dispose(e.targetIDChanged.don(s))}{const s=()=>{const[a,l,c]=e.size;r.minSize=[-.5*a,-.5*l,-.5*c],r.maxSize=[.5*a,.5*l,.5*c]};s(),this.dispose(e.sizeChanged.don(s))}this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.bind([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"edgeColor"],[e,"edgeColor"])),this.dispose(p.track([r,"edgeWidth"],[e,"edgeWidth"]))}get czmBoxClippingPlanes(){return this._czmBoxClippingPlanes}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return!r.actived||!r.viewer?!1:o.flyToParam||o.flyInParam?super.flyTo(e,i):o.position?(Rn(r,o,i,o.position,Math.max(...o.size),e,!0),!0):!1}};L(du,"type",du.register("ESCesiumViewer",Q.ESBoxClipping.type,du));let bm=du;const pu=class pu extends Ge{constructor(e,i){super(e,i);L(this,"_view");if(this._view=this.disposeVar(new pn(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{view:r}=this;this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.bind([r,"rotation"],[e,"rotation"])),this.dispose(p.bind([r,"thumbnail"],[e,"thumbnail"])),this.dispose(p.bind([r,"duration"],[e,"duration"])),r.show=!1,this.dispose(e.flyInEvent.disposableOn((s,a,l="default")=>{r.flyTo(e.duration??s??1)})),!r.position&&!r.rotation&&r.resetWithCurrentCamera(pn.ResetFlag.Position|pn.ResetFlag.Rotation|pn.ResetFlag.ViewDistance),this.dispose(e.resetWithCurrentCameraEvent.disposableOn(()=>{r.resetWithCurrentCamera(pn.ResetFlag.Position|pn.ResetFlag.Rotation|pn.ResetFlag.ViewDistance)})),this.dispose(e.captureEvent.disposableOn((s,a)=>{const{thumbnailWidth:l,thumbnailHeight:c}=Q.ESCameraView.defaults;r.capture(s??l,a??c)}))}get view(){return this._view}flyTo(e,i){const{sceneObject:o,czmViewer:r,view:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(pu,"type",pu.register("ESCesiumViewer",Q.ESCameraView.type,pu));let _m=pu;const mu=class mu extends Ge{constructor(e,i){super(e,i);L(this,"_czmESCustomPrimitive");L(this,"_czmTexture");if(!i.viewer){console.warn("viewer is undefined!");return}this._czmESCustomPrimitive=this.disposeVar(new st(i,e.id)),this._czmTexture=this.dv(new At(i,e.id));const r=this._czmESCustomPrimitive,s=this._czmTexture;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.track([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"position"],[e,"position"])),this.dispose(p.track([r,"scale"],[e,"scale"]));{const a=()=>{const c=e.far*Math.tan(Math.PI*(e.fov/360))*2,h=c/e.aspectRatio,u=e.far,A=e.near*Math.tan(Math.PI*(e.fov/360))*2,d=A/e.aspectRatio,f=e.near,g=[f,-A/2,-d/2],v=[f,-A/2,d/2],y=[f,A/2,d/2],m=[f,A/2,-d/2],b=[u,-c/2,-h/2],_=[u,-c/2,h/2],E=[u,c/2,h/2],T=[u,c/2,-h/2],P=[...g,...v,...y,...m,...b,..._,...E,...T],k=[0,4,5,0,5,1,1,5,6,1,6,2,2,6,7,2,7,3,3,7,4,3,4,0],D=[...k,...k.reverse()],B=[1,0],S=[1,1],I=[1,0],w=[1,1],x=[0,0],U=[0,1],F=[0,0],M=[0,1],R=[...B,...S,...I,...w,...x,...U,...F,...M];r.indexTypedArray=new Uint16Array(D),r.attributes={position:{typedArray:new Float32Array(P),componentsPerAttribute:3},st:{typedArray:new Float32Array(R),componentsPerAttribute:2}},s.uri=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/visible_img.png"),r.uniformMap={u_image:{type:"texture",id:s.id},u_color:[1,1,1,1]};const O=r.computeLocalAxisedBoundingBoxFromAttribute("position");if(!O)return;const{min:z,max:V}=O;r.setLocalAxisedBoundingBox(z,V)};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.fovChanged,e.aspectRatioChanged,e.farChanged,e.nearChanged));this.dispose(l.disposableOn(()=>a()))}}get czmESCustomPrimitive(){return this._czmESCustomPrimitive}get czmTexture(){return this._czmTexture}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i),!0;{const s=Math.max(o.far,o.near)??Q.ESCameraVisibleRange.defaults.far;return o.position?(Rn(r,o,i,o.position,s,e),!0):!1}}};L(mu,"type",mu.register("ESCesiumViewer",Q.ESCameraVisibleRange.type,mu));let Cm=mu;const gu=class gu extends Ge{constructor(e,i){super(e,i);L(this,"_czmModelPrimitive");if(!i.viewer){console.warn("viewer is undefined!");return}this._czmModelPrimitive=this.disposeVar(new Ht(i,e.id));const r=this._czmModelPrimitive;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.bind([r,"scale"],[e,"scale"]));{const l=this.dv(p.createNextAnimateFrameEvent(e.allowPickingChanged,e.editingChanged)),c=()=>{e.allowPicking&&!e.editing?r.allowPicking=!0:r.allowPicking=!1};c(),this.d(l.don(c))}const s=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/car/PoliceCar.glb"),a=()=>{switch(e.mode){case"policeCar":r.url=s;break;default:r.url=s;break}};this.dispose(e.modeChanged.disposableOn(()=>a())),a()}get czmModelPrimitive(){return this._czmModelPrimitive}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmModelPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):(s&&dn(r,o,i,e,s,!0),!!s):!1}};L(gu,"type",gu.register("ESCesiumViewer",Q.ESCar.type,gu));let xm=gu;const Sm={depthTest:{enabled:!0},cull:{enabled:!0,face:1029},blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},yu=class yu extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_circleCustomPrimitive");L(this,"_cylinderCustomPrimitive");L(this,"_cylinderParticlesCustomPrimitive");this._circleCustomPrimitive=this.disposeVar(new st(e,i)),this._cylinderCustomPrimitive=this.disposeVar(new st(e,i)),this._cylinderParticlesCustomPrimitive=this.disposeVar(new st(e,i));const{circleCustomPrimitive:o}=this;w0(o,{width:120,height:120}),o.fragmentShaderSource=`
2790
+ `;const s={emitter:{type:"CircleEmitter",radius:.1},startColor:[1,0,0,1],endColor:[1,.5,0,.5],particleLife:1,emissionRate:2,lifetime:1,imageSize:[1,1],sizeInMeters:!0},a=Object.keys(s);for(const l of a)r[l]=s[l]}{const s=()=>{r.startScale=1*(e.scale[0]>0?e.scale[0]:1),r.endScale=10*(e.scale[0]>0?e.scale[0]:1)};s(),this.ad(e.scaleChanged.don(s))}this.d(p.track([r,"show"],[e,"show"])),this.d(p.bind([r,"position"],[e,"position"])),this.d(p.track([r,"translation"],[e,"translation"])),this.d(Dt([r,"rotation"],[e,"rotation"])),this.d(p.track([r,"image"],[e,"image"]))}get czmBlastParticeSystem(){return this._czmBlastParticeSystem}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmBlastParticeSystem:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const a=s.position;return Be(r.viewer,a,100,Dn,e),o.flyOverEvent.emit(i,"over",r),!0}}};L(fu,"type",fu.register("ESCesiumViewer",Q.ESBlastParticleSystem.type,fu));let wm=fu;function DU(t,n,e){const i=t,o=n,r=[[i[0],i[1],i[2]],[o[0],i[1],i[2]],[o[0],o[1],i[2]],[i[0],o[1],i[2]],[i[0],i[1],o[2]],[o[0],i[1],o[2]],[o[0],o[1],o[2]],[i[0],o[1],o[2]]],s=C.Math.toDegrees,a=r.map(c=>{const h=C.Matrix4.multiplyByPoint(e,C.Cartesian3.fromElements(...c),new C.Cartesian3),u=C.Cartographic.fromCartesian(h);return[s(u.longitude),s(u.latitude),u.height]});return[[a[0],a[1],a[2],a[3],a[0]],[a[4],a[5],a[6],a[7],a[4]],[a[0],a[4]],[a[1],a[5]],[a[2],a[6]],[a[3],a[7]]]}class us extends p.Destroyable{constructor(e,i){super();L(this,"_id",this.disposeVar(p.react(p.createGuid())));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_computedClippingPlanes",this.disposeVar(p.react(void 0)));L(this,"_polylines");i&&(this.id=i),this._polylines=this.disposeVar(new En(e,i)),this._polylines.arcType="NONE",this.ad(this.flyToEvent.disposableOn(o=>{if(!(e instanceof Ye)||!e.actived)return;if(!this.position){console.warn("CzmBoxClippingPlanes warning: 没有位置,无法飞入!");return}const r=this.minSize,s=this.maxSize,a=[s[0]-r[0],s[1]-r[1],s[2]-r[2]],l=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);Be(e.viewer,this.position,l*2,void 0,o)}));{const o=()=>{e instanceof Ye&&(e.sceneGlobeClippingPlanesId=this.applyOnTerrain&&i||"")};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.applyOnTerrainChanged,this.computedClippingPlanesChanged));this.ad(r.disposableOn(o)),this.ad(()=>{e instanceof Ye&&e.sceneGlobeClippingPlanesId===i&&(e.sceneGlobeClippingPlanes=void 0)})}{const o=()=>{const s=this.minSize,a=this.maxSize,l=[a[0]-s[0],a[1]-s[1],a[2]-s[2]],c=this.reverse?-1:1,h=[...this.modelMatrix];let u=[];do{if(!this.position)break;const A=at({position:this.position,rotation:this.rotation});if(!A)break;const d=C.Matrix4.fromArray(this.modelMatrix),f=C.Matrix4.multiply(A,d,new C.Matrix4);C.Matrix4.toArray(f,h),u=DU(this.minSize,this.maxSize,f)}while(!1);this.polylines.positions=u,this._computedClippingPlanes.value={planes:[{normal:[-1*c,0,0],distance:(l[0]+s[0])*c},{normal:[1*c,0,0],distance:-s[0]*c},{normal:[0,-1*c,0],distance:(l[1]+s[1])*c},{normal:[0,1*c,0],distance:-s[1]*c},{normal:[0,0,-1*c],distance:(l[2]+s[2])*c},{normal:[0,0,1*c],distance:-s[2]*c}],enabled:this.enabled,modelMatrix:h,unionClippingRegions:!this.reverse,edgeColor:this.edgeColor,edgeWidth:this.edgeWidth}};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.enabledChanged,this.positionChanged,this.rotationChanged,this.modelMatrixChanged,this.reverseChanged,this.edgeColorChanged,this.edgeWidthChanged,this.minSizeChanged,this.maxSizeChanged));this.dispose(r.disposableOn(o))}this.dispose(p.track([this.polylines,"color"],[this,"edgeColor"])),this.dispose(p.track([this.polylines,"width"],[this,"edgeWidth"])),this.dispose(p.track([this.polylines,"show"],[this,"showHelper"]))}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get computedClippingPlanes(){return this._computedClippingPlanes.value}set computedClippingPlanes(e){this._computedClippingPlanes.value=e}get computedClippingPlanesChanged(){return this._computedClippingPlanes.changed}get polylines(){return this._polylines}}L(us,"defaults",{position:[116.39,39.9,100]}),(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,applyOnTerrain:!1,positionEditing:!1,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),modelMatrix:p.reactArray([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),reverse:!1,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2,minSize:p.reactArray([-100,-100,-100]),maxSize:p.reactArray([100,100,100])})})(us||(us={})),p.extendClassProps(us.prototype,us.createDefaultProps);let RU=class extends p.Destroyable{constructor(n,e){super(),this._czmESBoxClippingPlanes=n,this._eS3DTileset=e;const i=this._czmESBoxClippingPlanes.czmBoxClippingPlanes.id;this._eS3DTileset.clippingPlaneId=i,this.dispose(()=>{this._eS3DTileset.clippingPlaneId=""})}};const du=class du extends Ge{constructor(e,i){super(e,i);L(this,"_czmBoxClippingPlanes");L(this,"_tilesSceneObjectWithId");this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId);const o=this.ad(p.react(this.sceneObject.targetID));if(this.ad(e.targetIDChanged.don(()=>{const a=Q.ESSceneObject.getSceneObject(e.targetID);o.value=a?a.getMainClass().id:o.value})),this._czmBoxClippingPlanes=this.ad(new us(i,e.id)),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],o)),Q.registerCreatedEventUpdate(this,e,()=>{const a=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged,this.czmBoxClippingPlanes.enabledChanged));this.disposeVar(new p.ObjResettingWithEvent(a,()=>{const{sceneObject:l}=this.tilesSceneObjectWithId;if(l&&l instanceof Q.ES3DTileset&&this.sceneObject.show)return new RU(this,l)}))}),!i.viewer){console.warn("viewer is undefined!");return}const{czmBoxClippingPlanes:s}=this;{const a=()=>{s.enabled=e.show,s.showHelper=e.show};a(),this.dispose(e.showChanged.don(a))}{const a=()=>{s.reverse=!e.reverse};a(),this.dispose(e.reverseChanged.don(a))}{const a=()=>{e.targetID?s.applyOnTerrain=!1:s.applyOnTerrain=!0};a(),this.dispose(e.targetIDChanged.don(a))}{const a=()=>{const[l,c,h]=e.size;s.minSize=[-.5*l,-.5*c,-.5*h],s.maxSize=[.5*l,.5*c,.5*h]};a(),this.dispose(e.sizeChanged.don(a))}this.dispose(p.bind([s,"position"],[e,"position"])),this.dispose(p.bind([s,"rotation"],[e,"rotation"])),this.dispose(p.track([s,"edgeColor"],[e,"edgeColor"])),this.dispose(p.track([s,"edgeWidth"],[e,"edgeWidth"]))}get czmBoxClippingPlanes(){return this._czmBoxClippingPlanes}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return!r.actived||!r.viewer?!1:o.flyToParam||o.flyInParam?super.flyTo(e,i):o.position?(Rn(r,o,i,o.position,Math.max(...o.size),e,!0),!0):!1}};L(du,"type",du.register("ESCesiumViewer",Q.ESBoxClipping.type,du));let bm=du;const pu=class pu extends Ge{constructor(e,i){super(e,i);L(this,"_view");if(this._view=this.disposeVar(new pn(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{view:r}=this;this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.bind([r,"rotation"],[e,"rotation"])),this.dispose(p.bind([r,"thumbnail"],[e,"thumbnail"])),this.dispose(p.bind([r,"duration"],[e,"duration"])),r.show=!1,this.dispose(e.flyInEvent.disposableOn((s,a,l="default")=>{r.flyTo(e.duration??s??1)})),!r.position&&!r.rotation&&r.resetWithCurrentCamera(pn.ResetFlag.Position|pn.ResetFlag.Rotation|pn.ResetFlag.ViewDistance),this.dispose(e.resetWithCurrentCameraEvent.disposableOn(()=>{r.resetWithCurrentCamera(pn.ResetFlag.Position|pn.ResetFlag.Rotation|pn.ResetFlag.ViewDistance)})),this.dispose(e.captureEvent.disposableOn((s,a)=>{const{thumbnailWidth:l,thumbnailHeight:c}=Q.ESCameraView.defaults;r.capture(s??l,a??c)}))}get view(){return this._view}flyTo(e,i){const{sceneObject:o,czmViewer:r,view:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(pu,"type",pu.register("ESCesiumViewer",Q.ESCameraView.type,pu));let _m=pu;const mu=class mu extends Ge{constructor(e,i){super(e,i);L(this,"_czmESCustomPrimitive");L(this,"_czmTexture");if(!i.viewer){console.warn("viewer is undefined!");return}this._czmESCustomPrimitive=this.disposeVar(new st(i,e.id)),this._czmTexture=this.dv(new At(i,e.id));const r=this._czmESCustomPrimitive,s=this._czmTexture;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.track([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"position"],[e,"position"])),this.dispose(p.track([r,"scale"],[e,"scale"]));{const a=()=>{const c=e.far*Math.tan(Math.PI*(e.fov/360))*2,h=c/e.aspectRatio,u=e.far,A=e.near*Math.tan(Math.PI*(e.fov/360))*2,d=A/e.aspectRatio,f=e.near,g=[f,-A/2,-d/2],v=[f,-A/2,d/2],y=[f,A/2,d/2],m=[f,A/2,-d/2],b=[u,-c/2,-h/2],_=[u,-c/2,h/2],E=[u,c/2,h/2],T=[u,c/2,-h/2],P=[...g,...v,...y,...m,...b,..._,...E,...T],k=[0,4,5,0,5,1,1,5,6,1,6,2,2,6,7,2,7,3,3,7,4,3,4,0],D=[...k,...k.reverse()],B=[1,0],S=[1,1],I=[1,0],w=[1,1],x=[0,0],U=[0,1],F=[0,0],M=[0,1],R=[...B,...S,...I,...w,...x,...U,...F,...M];r.indexTypedArray=new Uint16Array(D),r.attributes={position:{typedArray:new Float32Array(P),componentsPerAttribute:3},st:{typedArray:new Float32Array(R),componentsPerAttribute:2}},s.uri=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/visible_img.png"),r.uniformMap={u_image:{type:"texture",id:s.id},u_color:[1,1,1,1]};const O=r.computeLocalAxisedBoundingBoxFromAttribute("position");if(!O)return;const{min:z,max:V}=O;r.setLocalAxisedBoundingBox(z,V)};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.fovChanged,e.aspectRatioChanged,e.farChanged,e.nearChanged));this.dispose(l.disposableOn(()=>a()))}}get czmESCustomPrimitive(){return this._czmESCustomPrimitive}get czmTexture(){return this._czmTexture}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i),!0;{const s=Math.max(o.far,o.near)??Q.ESCameraVisibleRange.defaults.far;return o.position?(Rn(r,o,i,o.position,s,e),!0):!1}}};L(mu,"type",mu.register("ESCesiumViewer",Q.ESCameraVisibleRange.type,mu));let Cm=mu;const gu=class gu extends Ge{constructor(e,i){super(e,i);L(this,"_czmModelPrimitive");if(!i.viewer){console.warn("viewer is undefined!");return}this._czmModelPrimitive=this.disposeVar(new Ht(i,e.id));const r=this._czmModelPrimitive;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.bind([r,"scale"],[e,"scale"]));{const l=this.dv(p.createNextAnimateFrameEvent(e.allowPickingChanged,e.editingChanged)),c=()=>{e.allowPicking&&!e.editing?r.allowPicking=!0:r.allowPicking=!1};c(),this.d(l.don(c))}const s=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/car/PoliceCar.glb"),a=()=>{switch(e.mode){case"policeCar":r.url=s;break;default:r.url=s;break}};this.dispose(e.modeChanged.disposableOn(()=>a())),a()}get czmModelPrimitive(){return this._czmModelPrimitive}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmModelPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):(s&&dn(r,o,i,e,s,!0),!!s):!1}};L(gu,"type",gu.register("ESCesiumViewer",Q.ESCar.type,gu));let xm=gu;const Sm={depthTest:{enabled:!0},cull:{enabled:!0,face:1029},blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},yu=class yu extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_circleCustomPrimitive");L(this,"_cylinderCustomPrimitive");L(this,"_cylinderParticlesCustomPrimitive");this._circleCustomPrimitive=this.disposeVar(new st(e,i)),this._cylinderCustomPrimitive=this.disposeVar(new st(e,i)),this._cylinderParticlesCustomPrimitive=this.disposeVar(new st(e,i));const{circleCustomPrimitive:o}=this;w0(o,{width:120,height:120}),o.fragmentShaderSource=`
2791
2791
  in vec2 v_st;
2792
2792
  uniform vec4 u_color;
2793
2793
  void main()
@@ -2924,7 +2924,7 @@ ${tC}
2924
2924
  // out_FragColor = vec4(texture(u_gradientMap, vec2(a, .5)).rgb, (a + .1)*4.);
2925
2925
  out_FragColor = vec4(texture(u_gradientMap, vec2(a, .5)).rgb, a);
2926
2926
  }
2927
- `,r.uniformMap={u_gradientMap:{type:"texture",id:"5d45a4a4-4f5d-4424-aea5-181de75bd13b"},u_stripMinMaxValue:[0,1],u_ratio:0};let a=this.disposeVar(p.react(void 0));{const l=this.disposeVar(p.createProcessingFromAsyncFunc(async h=>{a.value=void 0;const u=e.url??Q.ESDataMesh.defaults.url;if(!u)return;await h.promise(p.sleep(200));const A=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;a.value=await h.promise(VU(Q.ESSceneObject.context.getStrFromEnv(typeof u=="string"?u:u.url),A+1))}));l.start();const c=this.disposeVar(p.createNextAnimateFrameEvent(e.urlChanged,e.maxTimeChanged));this.dispose(c.disposableOn(()=>l.restart()))}{class l{constructor(u){this._buffer=u}[Symbol.iterator](){return HU(this._buffer)}}const c=()=>{if(!a.value)return;const{vertexBuffer:h,propBuffers:u,indexBuffer:A}=a.value,{minPos:d,maxPos:f}=Q.getMinMaxCorner(new l(h));r.setLocalAxisedBoundingBox(d,f);const g=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;let v=(e.currentTime??Q.ESDataMesh.defaults.currentTime)/g;v=v<0?0:v>1?1:v;const y=v*g;let m=v*g|0,b=y-m;if(m>=g&&(m=g-1,b=1),!Number.isFinite(b)){console.error("!Number.isFinite(rr)");debugger;return}if(r.indexTypedArray=A,!u[m]||!u[m+1]){console.error("!propBuffers[i] || !propBuffers[i + 1]");debugger}r.attributes={a_position:{typedArray:h,componentsPerAttribute:3},a_prop:{typedArray:u[m],componentsPerAttribute:3},a_prop2:{typedArray:u[m+1],componentsPerAttribute:3}},r.uniformMap={u_gradientMap:{type:"texture",id:`${s.id}`},u_stripMinMaxValue:[e.minPropValue??Q.ESDataMesh.defaults.minPropValue,e.maxPropValue??Q.ESDataMesh.defaults.maxPropValue],u_ratio:b}};c(),this.dispose(e.maxTimeChanged.disposableOn(c)),this.dispose(e.currentTimeChanged.disposableOn(c)),this.dispose(e.minPropValueChanged.disposableOn(c)),this.dispose(e.maxPropValueChanged.disposableOn(c)),this.dispose(a.changed.disposableOn(c))}}get czmCustomPrimitive(){return this._czmCustomPrimitive}get czmTexture(){return this._czmTexture}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmCustomPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s,!0),!0):!1}};L(Cu,"type",Cu.register("ESCesiumViewer",Q.ESDataMesh.type,Cu));let Im=Cu;const na=class na extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_heading",this.disposeVar(p.react(0)));L(this,"_textFunc",this.disposeVar(p.react(void 0)));const o=this;{const a=()=>{if(this.positions&&this.positions.length>=2){let c=0;this.arcType===void 0||this.arcType==="GEODESIC"?c=Q.geoHeading(this.positions[0],this.positions[1]):this.arcType==="RHUMB"?c=Q.geoRhumbHeading(this.positions[0],this.positions[1]):this.arcType==="NONE"?c=Q.geoHeading(this.positions[0],this.positions[1]):console.warn(`未知的arcType: ${this.arcType},导致距离无法计算!`),this._heading.value=this.angleMode==="-180~180"?Q.clampN180_180(c):Q.clamp0_360(c)}};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.angleModeChanged));this.dispose(l.disposableOn(a))}const r=this.disposeVar(new Je(e,i));r.loop=!1,this.dispose(p.track([r,"allowPicking"],[o,"allowPicking"])),this.dispose(p.bind([r,"arcType"],[o,"arcType"])),this.dispose(p.bind([r,"color"],[o,"color"])),this.dispose(p.bind([r,"dashLength"],[o,"dashLength"])),this.dispose(p.bind([r,"dashPattern"],[o,"dashPattern"])),this.dispose(p.bind([r,"gapColor"],[o,"gapColor"])),this.dispose(p.bind([r,"hasArrow"],[o,"hasArrow"])),this.dispose(p.bind([r,"hasDash"],[o,"hasDash"])),this.dispose(p.bind([r,"positions"],[o,"positions"])),this.dispose(p.bind([r,"show"],[o,"show"])),this.dispose(p.bind([r,"width"],[o,"width"])),this.dispose(p.bind([r,"depthTest"],[o,"depthTest"])),this.dispose(p.bind([r,"ground"],[o,"strokeGround"])),this.dispose(o.flyToEvent.disposableOn(a=>{e.actived&&r.flyTo(a)}));const s=this.disposeVar(new wt(e,i));this.dispose(p.bind([s,"shadowDom"],[o,"shadowDom"])),this.dispose(p.bind([s,"cssAllInitial"],[o,"cssAllInitial"])),this.dispose(p.bind([s,"show"],[o,"show"]));{const a=()=>{o.positions&&o.positions.length>=2?s.position=o.positions[1]:s.position=void 0};a(),this.dispose(o.positionsChanged.disposableOn(a))}{const a=()=>{const{heading:c}=o,h=(o.textFunc??na.defaultTextFunc_度格式)(c);s.innerHTML=bo(`方向: ${h}`,24)};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(o.headingChanged,o.textFuncChanged));this.dispose(l.disposableOn(a))}this.ad(s.pickedEvent.don(a=>{Ui(a)===0&&this.pickedEvent.emit(a)}))}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get heading(){return this._heading.value}get headingChanged(){return this._heading.changed}get textFunc(){return this._textFunc.value}set textFunc(e){this._textFunc.value=e}get textFuncChanged(){return this._textFunc.changed}};L(na,"defaultTextFunc_度格式",e=>`${e.toFixed(5)}°`),L(na,"defaultTextFunc_度分格式",e=>`${qs(e,!0)}`),L(na,"defaultTextFunc_度分秒格式",e=>`${qs(e,!1)}`),L(na,"defaults",{positions:[]});let Go=na;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:8,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!0,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,angleMode:"-180~180",strokeGround:!1})})(Go||(Go={})),p.extendClassProps(Go.prototype,Go.createDefaultProps);const xu=class xu extends an{constructor(e,i){super(e,i);L(this,"_czmDirectionMeasurement");if(this._czmDirectionMeasurement=this.disposeVar(new Go(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmDirectionMeasurement;r.angleMode="0~360",this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):c==="normal"?(r.hasDash=!1,r.hasArrow=!1):(r.hasDash=!1,r.hasArrow=!0);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Ui(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDirectionMeasurement(){return this._czmDirectionMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(xu,"type",xu.register("ESCesiumViewer",Q.ESDirectionMeasurement.type,xu));let km=xu;class hs extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_distances",this.disposeVar(p.reactArray([])));const o=async()=>{this.strokeGround&&e.viewer?this._distances.value=await x0(e.viewer,this.positions??[]):this._distances.value=Q.getDistancesFromPositions(this.positions??[],this.arcType)};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.strokeGroundChanged));this.dispose(r.disposableOn(o));const s=this.disposeVar(new Je(e,i));s.loop=!1,this.dispose(p.track([s,"allowPicking"],[this,"allowPicking"])),this.dispose(p.bind([s,"arcType"],[this,"arcType"])),this.dispose(p.bind([s,"color"],[this,"color"])),this.dispose(p.bind([s,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([s,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([s,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([s,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([s,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([s,"positions"],[this,"positions"])),this.dispose(p.bind([s,"show"],[this,"show"])),this.dispose(p.bind([s,"width"],[this,"width"])),this.dispose(p.bind([s,"depthTest"],[this,"depthTest"])),this.dispose(p.bind([s,"ground"],[this,"strokeGround"])),this.dispose(this.flyToEvent.disposableOn(a=>{e.actived&&s.flyTo(a)}));{const a=[],l=()=>{for(let h of a)h.destroy();a.length=0};this.dispose(l);const c=()=>{if(l(),!this.positions)return;if(this.positions.length>0&&this.distances.length>0){const u=Yf("起点",this.positions[0],e,i);u.dispose(p.track([u,"show"],[this,"show"])),u.dispose(p.track([u,"shadowDom"],[this,"shadowDom"])),u.dispose(p.track([u,"cssAllInitial"],[this,"cssAllInitial"])),a.push(u)}const h=this.distances.length;for(let u=0;u<h;++u){const A=this.distances[u],d=this.positions[u+1],f=Yf(`长度: ${oh(A)}`,d,e,i);f.dispose(p.track([f,"show"],[this,"show"])),f.dispose(p.track([f,"shadowDom"],[this,"shadowDom"])),f.dispose(p.track([f,"cssAllInitial"],[this,"cssAllInitial"])),this.ad(f.pickedEvent.don(g=>{Ui(g)===0&&this.pickedEvent.emit(g)})),a.push(f)}};c(),this.dispose(this.distancesChanged.disposableOn(()=>Q.inOrderRunning(c)))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get distances(){return this._distances.value}get distancesChanged(){return this._distances.changed}}L(hs,"defaults",{positions:[]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,strokeGround:!1})})(hs||(hs={})),p.extendClassProps(hs.prototype,hs.createDefaultProps);const Su=class Su extends an{constructor(e,i){super(e,i);L(this,"_geoPolyline");if(this._geoPolyline=this.disposeVar(new Je(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoPolyline;this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"width"],[e,"strokeWidth"])),this.dispose(p.track([r,"color"],[e,"strokeColor"])),this.dispose(p.track([r,"ground"],[e,"strokeGround"]));{const s=()=>{r.show=e.show&&e.stroked};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}}get geoPolyline(){return this._geoPolyline}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyInParam?(super.flyIn(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Su,"type",Su.register("ESCesiumViewer",Q.ESGeoLineString.type,Su));let As=Su;const Eu=class Eu extends As{constructor(e,i){super(e,i);L(this,"_czmDistanceMeasurement");if(this._czmDistanceMeasurement=this.disposeVar(new hs(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{czmDistanceMeasurement:r}=this;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):(r.hasDash=!1,r.hasArrow=!1);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Ui(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDistanceMeasurement(){return this._czmDistanceMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Eu,"type",Eu.register("ESCesiumViewer",Q.ESDistanceMeasurement.type,Eu));let Fm=Eu;class fs extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_id",this.disposeVar(p.react(p.createGuid())));i&&(this.id=i)}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}}(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,allowPicking:!1,positions:p.reactPositions(void 0),reverse:!1,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2})})(fs||(fs={})),p.extendClassProps(fs.prototype,fs.createDefaultProps);class NU extends p.Destroyable{constructor(n,e){super(),this._czmESExcavate=n,this._eS3DTileset=e;for(let i=0;i<this._eS3DTileset.excavateId.length;i++){const o=this._eS3DTileset.excavateId[i];Q.ESSceneObject.getSceneObjById(o)||this._eS3DTileset.excavateId.splice(i,1)}this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId.filter(i=>i!==this._czmESExcavate.czmPolygonClipping.id)]})}}class GU extends p.Destroyable{constructor(n){if(super(),this._czmESExcavate=n,!!this._czmESExcavate.viewer){for(let e=0;e<this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.length;e++){const i=this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId[e];Q.ESSceneObject.getSceneObjById(i)||this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.splice(e,1)}this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._czmESExcavate.viewer&&(this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.filter(e=>e!==this._czmESExcavate.czmPolygonClipping.id)])})}}}const Pu=class Pu extends Tn{constructor(e,i){super(e,i);L(this,"_czmPolygonClipping");L(this,"_tilesSceneObjectWithId");if(this._czmPolygonClipping=this.ad(new fs(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],[this.sceneObject,"targetID"])),this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged)),!i.viewer)return;const r=this._czmPolygonClipping;r.showHelper=!1,this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]));{const s=()=>{r.reverse=e.mode!=="in"};s(),this.dispose(e.modeChanged.disposableOn(s))}Q.registerCreatedEventUpdate(this,e,()=>{const s=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged));this.disposeVar(new p.ObjResettingWithEvent(s,()=>{const{sceneObject:a,id:l}=this.tilesSceneObjectWithId;if(this.sceneObject.show)return l===""?new GU(this):!a||!(a instanceof Q.ES3DTileset)?void 0:new NU(this,a)}))})}get czmPolygonClipping(){return this._czmPolygonClipping}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmPolygonClipping:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Pu,"type",Pu.register("ESCesiumViewer",Q.ESExcavate.type,Pu));let Bm=Pu;const Tu=class Tu extends Ge{constructor(e,i){super(e,i);L(this,"_czmFireParticleSystem");if(this._czmFireParticleSystem=this.disposeVar(new hi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmFireParticleSystem;r.endColor=[1,1,0,.4],r.startColor=[1,0,0,.5],r.particleLife=1,r.emissionRate=30,r.lifetime=1,r.imageSize=[1,1],r.emitter={type:"CircleEmitter",radius:.1},r.sizeInMeters=!0;{const s=()=>{r.startScale=10*(e.scale[0]>0?e.scale[0]:1),r.endScale=5*(e.scale[0]>0?e.scale[0]:1),r.minimumSpeed=10*(e.scale[0]>0?e.scale[0]:1),r.maximumSpeed=15*(e.scale[0]>0?e.scale[0]:1)};s(),this.ad(e.scaleChanged.don(s))}this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"translation"],[e,"translation"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"image"],[e,"image"]))}get czmFireParticleSystem(){return this._czmFireParticleSystem}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmFireParticleSystem:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const a=s.position;return Be(r.viewer,a,100,Dn,e),o.flyOverEvent.emit(i,"over",r),!0}}};L(Tu,"type",Tu.register("ESCesiumViewer",Q.ESFireParticleSystem.type,Tu));let Mm=Tu;class ds extends p.Destroyable{constructor(e,i){super();L(this,"_geoPath");L(this,"_geoPolyline");L(this,"_geoCanvasPointPoi");L(this,"_player");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));L(this,"_ratio",this.disposeVar(Q.PlayerProperty.createPlayingRatio([this,"currentTime"],[this,"duration"])));this._geoPath=this.disposeVar(new Q.ESPathImpl),this._geoPolyline=this.disposeVar(new Je(e,i)),this._geoCanvasPointPoi=this.disposeVar(new wr(e,i)),this._player=this.disposeVar(new Q.Player),this.dispose(p.bind([this._geoPolyline,"positions"],[this,"positions"])),this.dispose(p.track([this._geoPolyline,"width"],[this,"width"])),this.dispose(p.track([this._geoPolyline,"ground"],[this,"ground"])),this.dispose(p.track([this._geoPolyline,"color"],[this,"color"])),this.dispose(p.track([this._geoPolyline,"hasDash"],[this,"hasDash"])),this.dispose(p.track([this._geoPolyline,"gapColor"],[this,"gapColor"])),this.dispose(p.track([this._geoPolyline,"dashLength"],[this,"dashLength"])),this.dispose(p.track([this._geoPolyline,"dashPattern"],[this,"dashPattern"])),this.dispose(p.track([this._geoPolyline,"hasArrow"],[this,"hasArrow"])),this.dispose(p.track([this._geoPolyline,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolyline,"arcType"],[this,"arcType"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"show"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"polylineShow"])),this.dispose(p.track([this._geoPolyline,"allowPicking"],[this,"allowPicking"])),this.dispose(p.track([this._geoPath,"currentTime"],[this,"currentDistance"])),this.dispose(p.track([this._geoPath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPath,"show"],[this,"show"])),this.dispose(p.track([this._geoPath,"currentPoiShow"],[this,"currentPoiShow"]));{const o=()=>{this._geoCanvasPointPoi.show=(this.show??!0)&&(this.currentPoiShow??!0)};o(),this.dispose(this.showChanged.disposableOn(o)),this.dispose(this.currentPoiShowChanged.disposableOn(o))}this.dispose(p.track([this._geoCanvasPointPoi,"position"],[this,"currentPosition"]));{const o=()=>{if(this.positions){const s=this.granularity*Math.PI/180,a=Lf(this.positions,this.arcType??"GEODESIC",s);if(a){this._geoPath.timePosRots=a.timePosRots,this.rotationRadius.some(l=>l>0)?(this._geoPath.addAroundPoints(this.rotationRadius,!0),this._geoPath.computeRotIfUndefinedUsingLerp(!0),this._geoPath.rotLerpMode="Lerp"):(this._geoPath.computeRotIfUndefinedUsingPrevLine(!0),this._geoPath.rotLerpMode=this.rotLerpMode);return}}this._geoPath.timePosRots=[]};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.granularityChanged,this.rotationRadiusChanged,this.rotLerpModeChanged));this.dispose(r.disposableOn(o))}{const o=()=>{if((this._player.duration??3e3)<=0){this.currentDistance=0;return}const r=this.totalDistance*((this._player.currentTime??0)/(this._player.duration??3e3));Math.abs(r-this.currentDistance)>.01&&(this.currentDistance=r)};o(),this.dispose(this._player.currentTimeChanged.disposableOn(o))}{const o=()=>{if(this.totalDistance<=0){this._player.currentTime=0;return}const r=this.currentDistance/this.totalDistance*(this.duration??3e3);Math.abs(r-(this._player.currentTime??0))>.01&&(this._player.currentTime=r)};o(),this.dispose(this.currentDistanceChanged.disposableOn(o))}this.dispose(p.bind([this._player,"loop"],[this,"loop"])),this.dispose(p.bind([this._player,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._player,"duration"],[this,"duration"])),this.dispose(p.bind([this._player,"playing"],[this,"playing"])),this.dispose(p.bind([this._player,"speed"],[this,"speed"])),this.dispose(this._flyToEvent.disposableOn(o=>{this._geoPolyline.flyTo(o)}))}get geoPath(){return this._geoPath}get geoPolyline(){return this._geoPolyline}get geoCanvasPointPoi(){return this._geoCanvasPointPoi}get player(){return this._player}get currentInfo(){return this._geoPath.currentInfo}get currentInfoChanged(){return this._geoPath.currentInfoChanged}get currentIndex(){return this._geoPath.currentIndex}get currentIndexChanged(){return this._geoPath.currentIndexChanged}get currentPosition(){return this._geoPath.currentPosition}get currentPositionChanged(){return this._geoPath.currentPositionChanged}get currentRotation(){return this._geoPath.currentRotation}get currentRotationChanged(){return this._geoPath.currentRotationChanged}get accumDistances(){return this._geoPath.accumDistances}get accumDistancesChanged(){return this._geoPath.accumDistancesChanged}get totalDistance(){return this._geoPath.totalDistance}get totalDistanceChanged(){return this._geoPath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}subPath(e,i){const o=this._geoPath.subPath(e,i);if(o)return o.map(r=>r[1])}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get ratio(){return this._ratio.value}set ratio(e){this._ratio.value=e}get ratioChanged(){return this._ratio.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",granularity:1,loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,depthTest:!1,leadTime:0,trailTime:0,rotationRadius:[0],rotLerpMode:"Next"})})(ds||(ds={})),p.extendClassProps(ds.prototype,ds.createDefaultProps);class zl extends p.Destroyable{constructor(e,i){super();L(this,"_geoPolylinePath");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));this._geoPolylinePath=this.disposeVar(new ds(e,i)),this._geoPolylinePath.rotLerpMode="Lerp",this.dispose(p.bind([this._geoPolylinePath,"show"],[this,"show"])),this.dispose(p.bind([this._geoPolylinePath,"currentPoiShow"],[this,"currentPoiShow"])),this.dispose(p.bind([this._geoPolylinePath,"polylineShow"],[this,"polylineShow"])),this.dispose(p.bind([this._geoPolylinePath,"width"],[this,"width"])),this.dispose(p.bind([this._geoPolylinePath,"ground"],[this,"ground"])),this.dispose(p.bind([this._geoPolylinePath,"color"],[this,"color"])),this.dispose(p.bind([this._geoPolylinePath,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([this._geoPolylinePath,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([this._geoPolylinePath,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([this._geoPolylinePath,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([this._geoPolylinePath,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([this._geoPolylinePath,"arcType"],[this,"arcType"])),this.dispose(p.bind([this._geoPolylinePath,"currentDistance"],[this,"currentDistance"])),this.dispose(p.bind([this._geoPolylinePath,"loop"],[this,"loop"])),this.dispose(p.bind([this._geoPolylinePath,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._geoPolylinePath,"duration"],[this,"duration"])),this.dispose(p.bind([this._geoPolylinePath,"playing"],[this,"playing"])),this.dispose(p.bind([this._geoPolylinePath,"speed"],[this,"speed"])),this.dispose(p.bind([this._geoPolylinePath,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolylinePath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPolylinePath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPolylinePath,"allowPicking"],[this,"allowPicking"]));const o=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.resolutionChanged,this.sharpnessChanged)),r=()=>{try{if(this.positions&&this.positions.length>=2){const s=Jf(this.positions,this.resolution,this.sharpness);this._geoPolylinePath.positions=s}else this._geoPolylinePath.positions=void 0}catch(s){console.error(s),this._geoPolylinePath.positions=void 0}};r(),this.dispose(o.disposableOn(r)),this.dispose(this._flyToEvent.disposableOn(s=>{this._geoPolylinePath.flyTo(s)}))}get geoPolylinePath(){return this._geoPolylinePath}get geoPath(){return this._geoPolylinePath.geoPath}get ratio(){return this._geoPolylinePath.ratio}set ratio(e){this._geoPolylinePath.ratio=e}get ratioChanged(){return this._geoPolylinePath.ratioChanged}get player(){return this._geoPolylinePath.player}get currentInfo(){return this._geoPolylinePath.currentInfo}get currentInfoChanged(){return this._geoPolylinePath.currentInfoChanged}get currentIndex(){return this._geoPolylinePath.currentIndex}get currentIndexChanged(){return this._geoPolylinePath.currentIndexChanged}get currentPosition(){return this._geoPolylinePath.currentPosition}get currentPositionChanged(){return this._geoPolylinePath.currentPositionChanged}get currentRotation(){return this._geoPolylinePath.currentRotation}get currentRotationChanged(){return this._geoPolylinePath.currentRotationChanged}get accumDistances(){return this._geoPolylinePath.accumDistances}get accumDistancesChanged(){return this._geoPolylinePath.accumDistances}get totalDistance(){return this._geoPolylinePath.totalDistance}get totalDistanceChanged(){return this._geoPolylinePath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,resolution:1e3,sharpness:.85,depthTest:!1,leadTime:0,trailTime:0})})(zl||(zl={})),p.extendClassProps(zl.prototype,zl.createDefaultProps);const ct=class ct extends Q.ESVisualObject{constructor(e){super(e);L(this,"_pickFeaturesEvent",this.dv(new p.Event));this.ad(p.bind([this,"splitDirection"],[this,"czmSplitDirection"]))}get typeName(){return"ESMVTLayer"}get defaultProps(){return ct.createDefaultProps()}get pickFeaturesEvent(){return this._pickFeaturesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级序号","层级序号",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme)]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级","影像显示层级",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme),new Q.EnumProperty("splitDirection","The ImagerySplitDirection split to apply to this layer.",!1,!1,[this,"splitDirection"],ct.defaults.splitDirectionEnum)]),new Q.GroupProperty("czm","czm",[new Q.NumberProperty("透明度","透明度,The alpha blending value of this layer, from 0.0 to 1.0.",!1,!1,[this,"czmAlpha"]),new Q.NumberProperty("亮度","亮度,The brightness of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmBrightness"]),new Q.NumberProperty("对比度","对比度,The contrast of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmContrast"]),new Q.NumberProperty("色相","色相,The hue of this layer. 0.0 uses the unmodified imagery color. ",!1,!1,[this,"czmHue"]),new Q.NumberProperty("饱和度","饱和度,The saturation of this layer. 1.0 uses the unmodified imagery color. ",!1,!1,[this,"czmSaturation"]),new Q.NumberProperty("伽马值","伽马,The gamma correction to apply to this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmGamma"])])]}};L(ct,"type",ct.register("ESMVTLayer",ct,{chsName:"矢量瓦片图层",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载矢量瓦片图层。"})),L(ct,"defaults",{...Q.ESVisualObject.defaults,url:"",zIndex:0,accessToken:"",tileSizes:[["256",256],["512",512],["1024",1024]],tileSize:256,maximumLevel:18,minimumLevel:0,rectangle:[-180,-90,180,90],style:[],scheme:"tms",splitDirectionEnum:[["LEFT","LEFT"],["NONE","NONE"],["RIGHT","RIGHT"]]});let qr=ct;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),rectangle:p.reactJsonWithUndefined(void 0),url:p.reactJson(""),zIndex:0,accessToken:"",tileSize:256,maximumLevel:18,minimumLevel:0,style:p.reactArrayWithUndefined(void 0),scheme:p.react(void 0),opacity:1,splitDirection:"NONE",czmSplitDirection:"NONE",czmAlpha:1,czmBrightness:1,czmContrast:1,czmHue:0,czmSaturation:1,czmGamma:1})})(qr||(qr={})),p.extendClassProps(qr.prototype,qr.createDefaultProps);const WU=t=>{const n=[{maxAlt:25e7,level:0},{maxAlt:25e6,level:1},{maxAlt:9e6,level:2},{maxAlt:7e6,level:3},{maxAlt:44e5,level:4},{maxAlt:2e6,level:5},{maxAlt:1e6,level:6},{maxAlt:493977,level:7},{maxAlt:218047,level:8},{maxAlt:124961,level:9},{maxAlt:56110,level:10},{maxAlt:4e4,level:11},{maxAlt:13222,level:12},{maxAlt:7e3,level:13},{maxAlt:4e3,level:14},{maxAlt:2500,level:15},{maxAlt:1500,level:16},{maxAlt:600,level:17},{maxAlt:250,level:18},{maxAlt:150,level:19},{maxAlt:50,level:20}];for(const{maxAlt:e,level:i}of n)if(t>=e)return i;return 20},qU=async(t,n,e)=>(await fetch(`https://tileser.giiiis.com/xyzinfo/${e}/${t}/${n}`)).json(),KU=async t=>{var c;const n=(c=t.getCurrentCameraInfo())==null?void 0:c.position;if(!n)return;const e=n[0],i=n[1],o=n[2],r=WU(o);let s=Math.floor((e+180)/360*Math.pow(2,r+1)),a=Math.floor((90-i)/180*Math.pow(2,r));return await qU(s,a,r)};class ZU extends p.Destroyable{constructor(n,e,i){super();const o=async()=>{const s=await KU(n);e.datesEvent.emit(s,n)};o();let r;r=setInterval(()=>{o()},3e3),this.d(()=>r&&clearInterval(r));{const s=()=>{const a=e.currentDate?e.currentDate:0;i.url=`https://tileser.giiiis.com/timetile/tms/${a}/tilemapresource.xml`};s(),this.d(e.currentDateChanged.don(s))}}}const ia=class ia extends Q.ESVisualObject{constructor(e){super(e);L(this,"_esImageryLayer",this.dv(new Q.ESImageryLayer));L(this,"_datesEvent",this.dv(new p.Event));const i=this._esImageryLayer;this.d(this.components.disposableAdd(i)),i.zIndex=1,i.minimumLevel=1,i.maximumLevel=18,this.d(p.track([i,"show"],[this,"show"])),this.d(p.track([i,"zIndex"],[this,"zIndex"])),this.d(p.track([i,"rectangle"],[this,"rectangle"])),this.d(p.bind([i,"flyInParam"],[this,"flyInParam"])),this.d(p.bind([i,"flyToParam"],[this,"flyToParam"])),this.registerAttachedObjectForContainer(o=>new ZU(o,this,i)),this.d(this.flyInEvent.don(o=>{i.flyIn(o)})),this.d(this.flyToEvent.don(o=>{i.flyTo(o)})),this.d(this.calcFlyToParamEvent.don(()=>{i.calcFlyToParam()})),this.d(this.calcFlyInParamEvent.don(()=>{i.calcFlyInParam()}))}get typeName(){return"ESGeHistoryImagery"}get defaultProps(){return ia.createDefaultProps()}get esImageryLayer(){return this._esImageryLayer}get datesEvent(){return this._datesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("时间","currentDate",!1,!1,[this,"currentDate"],"0"),new Q.NumberProperty("层级","层级",!1,!1,[this,"zIndex"],0),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"],[-180,-90,180,90])]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.StringProperty("currentDate","currentDate",!1,!1,[this,"currentDate"]),new Q.NumberProperty("zIndex","层级",!1,!1,[this,"zIndex"]),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"])])]}};L(ia,"type",ia.register("ESGeHistoryImagery",ia,{chsName:"谷歌历史影像",tags:["ESObjects","_ES_Impl_UE"],description:"ESGeHistoryImagery"})),L(ia,"defaults",{...Q.ESVisualObject.defaults});let Kr=ia;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),currentDate:"",zIndex:0,rectangle:p.reactArray([-180,-90,180,90])})})(Kr||(Kr={})),p.extendClassProps(Kr.prototype,Kr.createDefaultProps);const XU=`<?xml version="1.0" encoding="utf-8" ?>
2927
+ `,r.uniformMap={u_gradientMap:{type:"texture",id:"5d45a4a4-4f5d-4424-aea5-181de75bd13b"},u_stripMinMaxValue:[0,1],u_ratio:0};let a=this.disposeVar(p.react(void 0));{const l=this.disposeVar(p.createProcessingFromAsyncFunc(async h=>{a.value=void 0;const u=e.url??Q.ESDataMesh.defaults.url;if(!u)return;await h.promise(p.sleep(200));const A=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;a.value=await h.promise(VU(Q.ESSceneObject.context.getStrFromEnv(typeof u=="string"?u:u.url),A+1))}));l.start();const c=this.disposeVar(p.createNextAnimateFrameEvent(e.urlChanged,e.maxTimeChanged));this.dispose(c.disposableOn(()=>l.restart()))}{class l{constructor(u){this._buffer=u}[Symbol.iterator](){return HU(this._buffer)}}const c=()=>{if(!a.value)return;const{vertexBuffer:h,propBuffers:u,indexBuffer:A}=a.value,{minPos:d,maxPos:f}=Q.getMinMaxCorner(new l(h));r.setLocalAxisedBoundingBox(d,f);const g=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;let v=(e.currentTime??Q.ESDataMesh.defaults.currentTime)/g;v=v<0?0:v>1?1:v;const y=v*g;let m=v*g|0,b=y-m;if(m>=g&&(m=g-1,b=1),!Number.isFinite(b)){console.error("!Number.isFinite(rr)");debugger;return}if(r.indexTypedArray=A,!u[m]||!u[m+1]){console.error("!propBuffers[i] || !propBuffers[i + 1]");debugger}r.attributes={a_position:{typedArray:h,componentsPerAttribute:3},a_prop:{typedArray:u[m],componentsPerAttribute:3},a_prop2:{typedArray:u[m+1],componentsPerAttribute:3}},r.uniformMap={u_gradientMap:{type:"texture",id:`${s.id}`},u_stripMinMaxValue:[e.minPropValue??Q.ESDataMesh.defaults.minPropValue,e.maxPropValue??Q.ESDataMesh.defaults.maxPropValue],u_ratio:b}};c(),this.dispose(e.maxTimeChanged.disposableOn(c)),this.dispose(e.currentTimeChanged.disposableOn(c)),this.dispose(e.minPropValueChanged.disposableOn(c)),this.dispose(e.maxPropValueChanged.disposableOn(c)),this.dispose(a.changed.disposableOn(c))}}get czmCustomPrimitive(){return this._czmCustomPrimitive}get czmTexture(){return this._czmTexture}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmCustomPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s,!0),!0):!1}};L(Cu,"type",Cu.register("ESCesiumViewer",Q.ESDataMesh.type,Cu));let Im=Cu;const na=class na extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_heading",this.disposeVar(p.react(0)));L(this,"_textFunc",this.disposeVar(p.react(void 0)));const o=this;{const a=()=>{if(this.positions&&this.positions.length>=2){let c=0;this.arcType===void 0||this.arcType==="GEODESIC"?c=Q.geoHeading(this.positions[0],this.positions[1]):this.arcType==="RHUMB"?c=Q.geoRhumbHeading(this.positions[0],this.positions[1]):this.arcType==="NONE"?c=Q.geoHeading(this.positions[0],this.positions[1]):console.warn(`未知的arcType: ${this.arcType},导致距离无法计算!`),this._heading.value=this.angleMode==="-180~180"?Q.clampN180_180(c):Q.clamp0_360(c)}};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.angleModeChanged));this.dispose(l.disposableOn(a))}const r=this.disposeVar(new Je(e,i));r.loop=!1,this.dispose(p.track([r,"allowPicking"],[o,"allowPicking"])),this.dispose(p.bind([r,"arcType"],[o,"arcType"])),this.dispose(p.bind([r,"color"],[o,"color"])),this.dispose(p.bind([r,"dashLength"],[o,"dashLength"])),this.dispose(p.bind([r,"dashPattern"],[o,"dashPattern"])),this.dispose(p.bind([r,"gapColor"],[o,"gapColor"])),this.dispose(p.bind([r,"hasArrow"],[o,"hasArrow"])),this.dispose(p.bind([r,"hasDash"],[o,"hasDash"])),this.dispose(p.bind([r,"positions"],[o,"positions"])),this.dispose(p.bind([r,"show"],[o,"show"])),this.dispose(p.bind([r,"width"],[o,"width"])),this.dispose(p.bind([r,"depthTest"],[o,"depthTest"])),this.dispose(p.bind([r,"ground"],[o,"strokeGround"])),this.dispose(o.flyToEvent.disposableOn(a=>{e.actived&&r.flyTo(a)}));const s=this.disposeVar(new wt(e,i));this.dispose(p.bind([s,"shadowDom"],[o,"shadowDom"])),this.dispose(p.bind([s,"cssAllInitial"],[o,"cssAllInitial"])),this.dispose(p.bind([s,"show"],[o,"show"]));{const a=()=>{o.positions&&o.positions.length>=2?s.position=o.positions[1]:s.position=void 0};a(),this.dispose(o.positionsChanged.disposableOn(a))}{const a=()=>{const{heading:c}=o,h=(o.textFunc??na.defaultTextFunc_度格式)(c);s.innerHTML=bo(`方向: ${h}`,24)};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(o.headingChanged,o.textFuncChanged));this.dispose(l.disposableOn(a))}this.ad(s.pickedEvent.don(a=>{Ui(a)===0&&this.pickedEvent.emit(a)}))}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get heading(){return this._heading.value}get headingChanged(){return this._heading.changed}get textFunc(){return this._textFunc.value}set textFunc(e){this._textFunc.value=e}get textFuncChanged(){return this._textFunc.changed}};L(na,"defaultTextFunc_度格式",e=>`${e.toFixed(5)}°`),L(na,"defaultTextFunc_度分格式",e=>`${qs(e,!0)}`),L(na,"defaultTextFunc_度分秒格式",e=>`${qs(e,!1)}`),L(na,"defaults",{positions:[]});let Go=na;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:8,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!0,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,angleMode:"-180~180",strokeGround:!1})})(Go||(Go={})),p.extendClassProps(Go.prototype,Go.createDefaultProps);const xu=class xu extends an{constructor(e,i){super(e,i);L(this,"_czmDirectionMeasurement");if(this._czmDirectionMeasurement=this.disposeVar(new Go(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmDirectionMeasurement;r.angleMode="0~360",this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):c==="normal"?(r.hasDash=!1,r.hasArrow=!1):(r.hasDash=!1,r.hasArrow=!0);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Ui(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDirectionMeasurement(){return this._czmDirectionMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(xu,"type",xu.register("ESCesiumViewer",Q.ESDirectionMeasurement.type,xu));let km=xu;class hs extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_distances",this.disposeVar(p.reactArray([])));const o=async()=>{this.strokeGround&&e.viewer?this._distances.value=await x0(e.viewer,this.positions??[]):this._distances.value=Q.getDistancesFromPositions(this.positions??[],this.arcType)};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.strokeGroundChanged));this.dispose(r.disposableOn(o));const s=this.disposeVar(new Je(e,i));s.loop=!1,this.dispose(p.track([s,"allowPicking"],[this,"allowPicking"])),this.dispose(p.bind([s,"arcType"],[this,"arcType"])),this.dispose(p.bind([s,"color"],[this,"color"])),this.dispose(p.bind([s,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([s,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([s,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([s,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([s,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([s,"positions"],[this,"positions"])),this.dispose(p.bind([s,"show"],[this,"show"])),this.dispose(p.bind([s,"width"],[this,"width"])),this.dispose(p.bind([s,"depthTest"],[this,"depthTest"])),this.dispose(p.bind([s,"ground"],[this,"strokeGround"])),this.dispose(this.flyToEvent.disposableOn(a=>{e.actived&&s.flyTo(a)}));{const a=[],l=()=>{for(let h of a)h.destroy();a.length=0};this.dispose(l);const c=()=>{if(l(),!this.positions)return;if(this.positions.length>0&&this.distances.length>0){const u=Yf("起点",this.positions[0],e,i);u.dispose(p.track([u,"show"],[this,"show"])),u.dispose(p.track([u,"shadowDom"],[this,"shadowDom"])),u.dispose(p.track([u,"cssAllInitial"],[this,"cssAllInitial"])),a.push(u)}const h=this.distances.length;for(let u=0;u<h;++u){const A=this.distances[u],d=this.positions[u+1],f=Yf(`长度: ${oh(A)}`,d,e,i);f.dispose(p.track([f,"show"],[this,"show"])),f.dispose(p.track([f,"shadowDom"],[this,"shadowDom"])),f.dispose(p.track([f,"cssAllInitial"],[this,"cssAllInitial"])),this.ad(f.pickedEvent.don(g=>{Ui(g)===0&&this.pickedEvent.emit(g)})),a.push(f)}};c(),this.dispose(this.distancesChanged.disposableOn(()=>Q.inOrderRunning(c)))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get distances(){return this._distances.value}get distancesChanged(){return this._distances.changed}}L(hs,"defaults",{positions:[]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,strokeGround:!1})})(hs||(hs={})),p.extendClassProps(hs.prototype,hs.createDefaultProps);const Su=class Su extends an{constructor(e,i){super(e,i);L(this,"_geoPolyline");if(this._geoPolyline=this.disposeVar(new Je(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoPolyline;this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"width"],[e,"strokeWidth"])),this.dispose(p.track([r,"color"],[e,"strokeColor"])),this.dispose(p.track([r,"ground"],[e,"strokeGround"]));{const s=()=>{r.show=e.show&&e.stroked};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}}get geoPolyline(){return this._geoPolyline}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyInParam?(super.flyIn(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Su,"type",Su.register("ESCesiumViewer",Q.ESGeoLineString.type,Su));let As=Su;const Eu=class Eu extends As{constructor(e,i){super(e,i);L(this,"_czmDistanceMeasurement");if(this._czmDistanceMeasurement=this.disposeVar(new hs(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{czmDistanceMeasurement:r}=this;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):(r.hasDash=!1,r.hasArrow=!1);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Ui(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDistanceMeasurement(){return this._czmDistanceMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Eu,"type",Eu.register("ESCesiumViewer",Q.ESDistanceMeasurement.type,Eu));let Fm=Eu;class fs extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_id",this.disposeVar(p.react(p.createGuid())));i&&(this.id=i)}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}}(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,allowPicking:!1,positions:p.reactPositions(void 0),reverse:!1,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2})})(fs||(fs={})),p.extendClassProps(fs.prototype,fs.createDefaultProps);class NU extends p.Destroyable{constructor(n,e){super(),this._czmESExcavate=n,this._eS3DTileset=e;for(let i=0;i<this._eS3DTileset.excavateId.length;i++){const o=this._eS3DTileset.excavateId[i];Q.ESSceneObject.getSceneObjById(o)||this._eS3DTileset.excavateId.splice(i,1)}this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId.filter(i=>i!==this._czmESExcavate.czmPolygonClipping.id)]})}}class GU extends p.Destroyable{constructor(n){if(super(),this._czmESExcavate=n,!!this._czmESExcavate.viewer){for(let e=0;e<this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.length;e++){const i=this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId[e];Q.ESSceneObject.getSceneObjById(i)||this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.splice(e,1)}this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._czmESExcavate.viewer&&(this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.filter(e=>e!==this._czmESExcavate.czmPolygonClipping.id)])})}}}const Pu=class Pu extends Tn{constructor(e,i){super(e,i);L(this,"_czmPolygonClipping");L(this,"_tilesSceneObjectWithId");this._czmPolygonClipping=this.ad(new fs(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId);const o=this.ad(p.react(this.sceneObject.targetID));if(this.ad(e.targetIDChanged.don(()=>{const a=Q.ESSceneObject.getSceneObject(e.targetID);o.value=a?a.getMainClass().id:o.value})),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],o)),this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged)),!i.viewer)return;const s=this._czmPolygonClipping;s.showHelper=!1,this.dispose(p.bind([s,"positions"],[e,"points"])),this.dispose(p.track([s,"allowPicking"],[e,"allowPicking"]));{const a=()=>{s.reverse=e.mode!=="in"};a(),this.dispose(e.modeChanged.disposableOn(a))}Q.registerCreatedEventUpdate(this,e,()=>{const a=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged));this.disposeVar(new p.ObjResettingWithEvent(a,()=>{const{sceneObject:l,id:c}=this.tilesSceneObjectWithId;if(this.sceneObject.show)return c===""?new GU(this):!l||!(l instanceof Q.ES3DTileset)?void 0:new NU(this,l)}))})}get czmPolygonClipping(){return this._czmPolygonClipping}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmPolygonClipping:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Pu,"type",Pu.register("ESCesiumViewer",Q.ESExcavate.type,Pu));let Bm=Pu;const Tu=class Tu extends Ge{constructor(e,i){super(e,i);L(this,"_czmFireParticleSystem");if(this._czmFireParticleSystem=this.disposeVar(new hi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmFireParticleSystem;r.endColor=[1,1,0,.4],r.startColor=[1,0,0,.5],r.particleLife=1,r.emissionRate=30,r.lifetime=1,r.imageSize=[1,1],r.emitter={type:"CircleEmitter",radius:.1},r.sizeInMeters=!0;{const s=()=>{r.startScale=10*(e.scale[0]>0?e.scale[0]:1),r.endScale=5*(e.scale[0]>0?e.scale[0]:1),r.minimumSpeed=10*(e.scale[0]>0?e.scale[0]:1),r.maximumSpeed=15*(e.scale[0]>0?e.scale[0]:1)};s(),this.ad(e.scaleChanged.don(s))}this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"translation"],[e,"translation"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"image"],[e,"image"]))}get czmFireParticleSystem(){return this._czmFireParticleSystem}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmFireParticleSystem:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const a=s.position;return Be(r.viewer,a,100,Dn,e),o.flyOverEvent.emit(i,"over",r),!0}}};L(Tu,"type",Tu.register("ESCesiumViewer",Q.ESFireParticleSystem.type,Tu));let Mm=Tu;class ds extends p.Destroyable{constructor(e,i){super();L(this,"_geoPath");L(this,"_geoPolyline");L(this,"_geoCanvasPointPoi");L(this,"_player");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));L(this,"_ratio",this.disposeVar(Q.PlayerProperty.createPlayingRatio([this,"currentTime"],[this,"duration"])));this._geoPath=this.disposeVar(new Q.ESPathImpl),this._geoPolyline=this.disposeVar(new Je(e,i)),this._geoCanvasPointPoi=this.disposeVar(new wr(e,i)),this._player=this.disposeVar(new Q.Player),this.dispose(p.bind([this._geoPolyline,"positions"],[this,"positions"])),this.dispose(p.track([this._geoPolyline,"width"],[this,"width"])),this.dispose(p.track([this._geoPolyline,"ground"],[this,"ground"])),this.dispose(p.track([this._geoPolyline,"color"],[this,"color"])),this.dispose(p.track([this._geoPolyline,"hasDash"],[this,"hasDash"])),this.dispose(p.track([this._geoPolyline,"gapColor"],[this,"gapColor"])),this.dispose(p.track([this._geoPolyline,"dashLength"],[this,"dashLength"])),this.dispose(p.track([this._geoPolyline,"dashPattern"],[this,"dashPattern"])),this.dispose(p.track([this._geoPolyline,"hasArrow"],[this,"hasArrow"])),this.dispose(p.track([this._geoPolyline,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolyline,"arcType"],[this,"arcType"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"show"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"polylineShow"])),this.dispose(p.track([this._geoPolyline,"allowPicking"],[this,"allowPicking"])),this.dispose(p.track([this._geoPath,"currentTime"],[this,"currentDistance"])),this.dispose(p.track([this._geoPath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPath,"show"],[this,"show"])),this.dispose(p.track([this._geoPath,"currentPoiShow"],[this,"currentPoiShow"]));{const o=()=>{this._geoCanvasPointPoi.show=(this.show??!0)&&(this.currentPoiShow??!0)};o(),this.dispose(this.showChanged.disposableOn(o)),this.dispose(this.currentPoiShowChanged.disposableOn(o))}this.dispose(p.track([this._geoCanvasPointPoi,"position"],[this,"currentPosition"]));{const o=()=>{if(this.positions){const s=this.granularity*Math.PI/180,a=Lf(this.positions,this.arcType??"GEODESIC",s);if(a){this._geoPath.timePosRots=a.timePosRots,this.rotationRadius.some(l=>l>0)?(this._geoPath.addAroundPoints(this.rotationRadius,!0),this._geoPath.computeRotIfUndefinedUsingLerp(!0),this._geoPath.rotLerpMode="Lerp"):(this._geoPath.computeRotIfUndefinedUsingPrevLine(!0),this._geoPath.rotLerpMode=this.rotLerpMode);return}}this._geoPath.timePosRots=[]};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.granularityChanged,this.rotationRadiusChanged,this.rotLerpModeChanged));this.dispose(r.disposableOn(o))}{const o=()=>{if((this._player.duration??3e3)<=0){this.currentDistance=0;return}const r=this.totalDistance*((this._player.currentTime??0)/(this._player.duration??3e3));Math.abs(r-this.currentDistance)>.01&&(this.currentDistance=r)};o(),this.dispose(this._player.currentTimeChanged.disposableOn(o))}{const o=()=>{if(this.totalDistance<=0){this._player.currentTime=0;return}const r=this.currentDistance/this.totalDistance*(this.duration??3e3);Math.abs(r-(this._player.currentTime??0))>.01&&(this._player.currentTime=r)};o(),this.dispose(this.currentDistanceChanged.disposableOn(o))}this.dispose(p.bind([this._player,"loop"],[this,"loop"])),this.dispose(p.bind([this._player,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._player,"duration"],[this,"duration"])),this.dispose(p.bind([this._player,"playing"],[this,"playing"])),this.dispose(p.bind([this._player,"speed"],[this,"speed"])),this.dispose(this._flyToEvent.disposableOn(o=>{this._geoPolyline.flyTo(o)}))}get geoPath(){return this._geoPath}get geoPolyline(){return this._geoPolyline}get geoCanvasPointPoi(){return this._geoCanvasPointPoi}get player(){return this._player}get currentInfo(){return this._geoPath.currentInfo}get currentInfoChanged(){return this._geoPath.currentInfoChanged}get currentIndex(){return this._geoPath.currentIndex}get currentIndexChanged(){return this._geoPath.currentIndexChanged}get currentPosition(){return this._geoPath.currentPosition}get currentPositionChanged(){return this._geoPath.currentPositionChanged}get currentRotation(){return this._geoPath.currentRotation}get currentRotationChanged(){return this._geoPath.currentRotationChanged}get accumDistances(){return this._geoPath.accumDistances}get accumDistancesChanged(){return this._geoPath.accumDistancesChanged}get totalDistance(){return this._geoPath.totalDistance}get totalDistanceChanged(){return this._geoPath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}subPath(e,i){const o=this._geoPath.subPath(e,i);if(o)return o.map(r=>r[1])}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get ratio(){return this._ratio.value}set ratio(e){this._ratio.value=e}get ratioChanged(){return this._ratio.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",granularity:1,loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,depthTest:!1,leadTime:0,trailTime:0,rotationRadius:[0],rotLerpMode:"Next"})})(ds||(ds={})),p.extendClassProps(ds.prototype,ds.createDefaultProps);class zl extends p.Destroyable{constructor(e,i){super();L(this,"_geoPolylinePath");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));this._geoPolylinePath=this.disposeVar(new ds(e,i)),this._geoPolylinePath.rotLerpMode="Lerp",this.dispose(p.bind([this._geoPolylinePath,"show"],[this,"show"])),this.dispose(p.bind([this._geoPolylinePath,"currentPoiShow"],[this,"currentPoiShow"])),this.dispose(p.bind([this._geoPolylinePath,"polylineShow"],[this,"polylineShow"])),this.dispose(p.bind([this._geoPolylinePath,"width"],[this,"width"])),this.dispose(p.bind([this._geoPolylinePath,"ground"],[this,"ground"])),this.dispose(p.bind([this._geoPolylinePath,"color"],[this,"color"])),this.dispose(p.bind([this._geoPolylinePath,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([this._geoPolylinePath,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([this._geoPolylinePath,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([this._geoPolylinePath,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([this._geoPolylinePath,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([this._geoPolylinePath,"arcType"],[this,"arcType"])),this.dispose(p.bind([this._geoPolylinePath,"currentDistance"],[this,"currentDistance"])),this.dispose(p.bind([this._geoPolylinePath,"loop"],[this,"loop"])),this.dispose(p.bind([this._geoPolylinePath,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._geoPolylinePath,"duration"],[this,"duration"])),this.dispose(p.bind([this._geoPolylinePath,"playing"],[this,"playing"])),this.dispose(p.bind([this._geoPolylinePath,"speed"],[this,"speed"])),this.dispose(p.bind([this._geoPolylinePath,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolylinePath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPolylinePath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPolylinePath,"allowPicking"],[this,"allowPicking"]));const o=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.resolutionChanged,this.sharpnessChanged)),r=()=>{try{if(this.positions&&this.positions.length>=2){const s=Jf(this.positions,this.resolution,this.sharpness);this._geoPolylinePath.positions=s}else this._geoPolylinePath.positions=void 0}catch(s){console.error(s),this._geoPolylinePath.positions=void 0}};r(),this.dispose(o.disposableOn(r)),this.dispose(this._flyToEvent.disposableOn(s=>{this._geoPolylinePath.flyTo(s)}))}get geoPolylinePath(){return this._geoPolylinePath}get geoPath(){return this._geoPolylinePath.geoPath}get ratio(){return this._geoPolylinePath.ratio}set ratio(e){this._geoPolylinePath.ratio=e}get ratioChanged(){return this._geoPolylinePath.ratioChanged}get player(){return this._geoPolylinePath.player}get currentInfo(){return this._geoPolylinePath.currentInfo}get currentInfoChanged(){return this._geoPolylinePath.currentInfoChanged}get currentIndex(){return this._geoPolylinePath.currentIndex}get currentIndexChanged(){return this._geoPolylinePath.currentIndexChanged}get currentPosition(){return this._geoPolylinePath.currentPosition}get currentPositionChanged(){return this._geoPolylinePath.currentPositionChanged}get currentRotation(){return this._geoPolylinePath.currentRotation}get currentRotationChanged(){return this._geoPolylinePath.currentRotationChanged}get accumDistances(){return this._geoPolylinePath.accumDistances}get accumDistancesChanged(){return this._geoPolylinePath.accumDistances}get totalDistance(){return this._geoPolylinePath.totalDistance}get totalDistanceChanged(){return this._geoPolylinePath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,resolution:1e3,sharpness:.85,depthTest:!1,leadTime:0,trailTime:0})})(zl||(zl={})),p.extendClassProps(zl.prototype,zl.createDefaultProps);const ct=class ct extends Q.ESVisualObject{constructor(e){super(e);L(this,"_pickFeaturesEvent",this.dv(new p.Event));this.ad(p.bind([this,"splitDirection"],[this,"czmSplitDirection"]))}get typeName(){return"ESMVTLayer"}get defaultProps(){return ct.createDefaultProps()}get pickFeaturesEvent(){return this._pickFeaturesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级序号","层级序号",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme)]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级","影像显示层级",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme),new Q.EnumProperty("splitDirection","The ImagerySplitDirection split to apply to this layer.",!1,!1,[this,"splitDirection"],ct.defaults.splitDirectionEnum)]),new Q.GroupProperty("czm","czm",[new Q.NumberProperty("透明度","透明度,The alpha blending value of this layer, from 0.0 to 1.0.",!1,!1,[this,"czmAlpha"]),new Q.NumberProperty("亮度","亮度,The brightness of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmBrightness"]),new Q.NumberProperty("对比度","对比度,The contrast of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmContrast"]),new Q.NumberProperty("色相","色相,The hue of this layer. 0.0 uses the unmodified imagery color. ",!1,!1,[this,"czmHue"]),new Q.NumberProperty("饱和度","饱和度,The saturation of this layer. 1.0 uses the unmodified imagery color. ",!1,!1,[this,"czmSaturation"]),new Q.NumberProperty("伽马值","伽马,The gamma correction to apply to this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmGamma"])])]}};L(ct,"type",ct.register("ESMVTLayer",ct,{chsName:"矢量瓦片图层",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载矢量瓦片图层。"})),L(ct,"defaults",{...Q.ESVisualObject.defaults,url:"",zIndex:0,accessToken:"",tileSizes:[["256",256],["512",512],["1024",1024]],tileSize:256,maximumLevel:18,minimumLevel:0,rectangle:[-180,-90,180,90],style:[],scheme:"tms",splitDirectionEnum:[["LEFT","LEFT"],["NONE","NONE"],["RIGHT","RIGHT"]]});let qr=ct;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),rectangle:p.reactJsonWithUndefined(void 0),url:p.reactJson(""),zIndex:0,accessToken:"",tileSize:256,maximumLevel:18,minimumLevel:0,style:p.reactArrayWithUndefined(void 0),scheme:p.react(void 0),opacity:1,splitDirection:"NONE",czmSplitDirection:"NONE",czmAlpha:1,czmBrightness:1,czmContrast:1,czmHue:0,czmSaturation:1,czmGamma:1})})(qr||(qr={})),p.extendClassProps(qr.prototype,qr.createDefaultProps);const WU=t=>{const n=[{maxAlt:25e7,level:0},{maxAlt:25e6,level:1},{maxAlt:9e6,level:2},{maxAlt:7e6,level:3},{maxAlt:44e5,level:4},{maxAlt:2e6,level:5},{maxAlt:1e6,level:6},{maxAlt:493977,level:7},{maxAlt:218047,level:8},{maxAlt:124961,level:9},{maxAlt:56110,level:10},{maxAlt:4e4,level:11},{maxAlt:13222,level:12},{maxAlt:7e3,level:13},{maxAlt:4e3,level:14},{maxAlt:2500,level:15},{maxAlt:1500,level:16},{maxAlt:600,level:17},{maxAlt:250,level:18},{maxAlt:150,level:19},{maxAlt:50,level:20}];for(const{maxAlt:e,level:i}of n)if(t>=e)return i;return 20},qU=async(t,n,e)=>(await fetch(`https://tileser.giiiis.com/xyzinfo/${e}/${t}/${n}`)).json(),KU=async t=>{var c;const n=(c=t.getCurrentCameraInfo())==null?void 0:c.position;if(!n)return;const e=n[0],i=n[1],o=n[2],r=WU(o);let s=Math.floor((e+180)/360*Math.pow(2,r+1)),a=Math.floor((90-i)/180*Math.pow(2,r));return await qU(s,a,r)};class ZU extends p.Destroyable{constructor(n,e,i){super();const o=async()=>{const s=await KU(n);e.datesEvent.emit(s,n)};o();let r;r=setInterval(()=>{o()},3e3),this.d(()=>r&&clearInterval(r));{const s=()=>{const a=e.currentDate?e.currentDate:0;i.url=`https://tileser.giiiis.com/timetile/tms/${a}/tilemapresource.xml`};s(),this.d(e.currentDateChanged.don(s))}}}const ia=class ia extends Q.ESVisualObject{constructor(e){super(e);L(this,"_esImageryLayer",this.dv(new Q.ESImageryLayer));L(this,"_datesEvent",this.dv(new p.Event));const i=this._esImageryLayer;this.d(this.components.disposableAdd(i)),i.zIndex=1,i.minimumLevel=1,i.maximumLevel=18,this.d(p.track([i,"show"],[this,"show"])),this.d(p.track([i,"zIndex"],[this,"zIndex"])),this.d(p.track([i,"rectangle"],[this,"rectangle"])),this.d(p.bind([i,"flyInParam"],[this,"flyInParam"])),this.d(p.bind([i,"flyToParam"],[this,"flyToParam"])),this.registerAttachedObjectForContainer(o=>new ZU(o,this,i)),this.d(this.flyInEvent.don(o=>{i.flyIn(o)})),this.d(this.flyToEvent.don(o=>{i.flyTo(o)})),this.d(this.calcFlyToParamEvent.don(()=>{i.calcFlyToParam()})),this.d(this.calcFlyInParamEvent.don(()=>{i.calcFlyInParam()}))}get typeName(){return"ESGeHistoryImagery"}get defaultProps(){return ia.createDefaultProps()}get esImageryLayer(){return this._esImageryLayer}get datesEvent(){return this._datesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("时间","currentDate",!1,!1,[this,"currentDate"],"0"),new Q.NumberProperty("层级","层级",!1,!1,[this,"zIndex"],0),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"],[-180,-90,180,90])]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.StringProperty("currentDate","currentDate",!1,!1,[this,"currentDate"]),new Q.NumberProperty("zIndex","层级",!1,!1,[this,"zIndex"]),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"])])]}};L(ia,"type",ia.register("ESGeHistoryImagery",ia,{chsName:"谷歌历史影像",tags:["ESObjects","_ES_Impl_UE"],description:"ESGeHistoryImagery"})),L(ia,"defaults",{...Q.ESVisualObject.defaults});let Kr=ia;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),currentDate:"",zIndex:0,rectangle:p.reactArray([-180,-90,180,90])})})(Kr||(Kr={})),p.extendClassProps(Kr.prototype,Kr.createDefaultProps);const XU=`<?xml version="1.0" encoding="utf-8" ?>
2928
2928
  <kml xmlns="http://www.opengis.net/kml/2.2">
2929
2929
  <Document id="root_doc">
2930
2930
  <Folder><name>高速公路</name>
@@ -4141,10 +4141,10 @@ void main()
4141
4141
  {
4142
4142
  out_FragColor = u_color;
4143
4143
  }
4144
- `,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 fQ extends p.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const s=this._getStartInfo(r.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[ri.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(p.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:c}=i;if(c==="none")return;const h=this.owner.getPlane(c);if(!i.currentV)return;const u=h.pick(l);if(!u||!this.owner.cartesian)return;const A=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(A,A);const d=C.Cartesian3.subtract(u,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(d,d),!h.normal||!h.origin)return;const f=_v(A,d,h.normal),g=_v(h.origin,A,h.normal),v=_v(h.origin,d,h.normal);{const y=[...this.owner.selfRotation];y[ri.rotationNum[c]]=i.startRotation+f,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await p.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const c=C.Cartesian3.distance(s,l),h=r/4,u=h*3/128;if(!(c>=h-u&&c<=h+u))return;const d=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=d||(n.currentPlaneType=i,n.currentD2c=d,n.currentV=l,n.startRotation=a[ri.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Di(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(c,i,"heading",a,o),this._pickPlane(c,i,"pitch",a,o),this._pickPlane(c,i,"roll",a,o),c}}function _v(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const aa=class aa extends kn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(p.react("none")));L(this,"_movingPlaneType",this.disposeVar(p.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new lQ(this)),pitch:this.disposeVar(new uQ(this)),roll:this.disposeVar(new cQ(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new fQ(this)})),this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&vt(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 Ht(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(p.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(p.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(p.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.Matrix4.toArray(o))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const o=this.ad(new Es(e));this.dispose(p.track([o,"position"],[this,"position"])),this.dispose(p.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(p.track([o,"debug"],[this,"debug"])),this.dispose(p.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=aa.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[aa.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,c=[0,0,0,s||a?1:.8];c[aa.rotationNum[i]]=1,o.color=c};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(aa,"rotationNum",{heading:0,pitch:1,roll:2}),L(aa,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let ri=aa;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),rotation:p.reactArray([0,0,0]),selfRotation:p.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(ri||(ri={})),p.extendClassProps(ri.prototype,ri.createDefaultProps);const sa=class sa extends p.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??sa.defaults.positions[0],this.stopPosition??sa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??sa.defaults.positions[0],n??sa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new On(n,e));this.ad(p.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(p.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};L(sa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Jo=sa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(t.defaults.positions),width:10,color:p.reactArray([1,0,0,1])})})(Jo||(Jo={})),p.extendClassProps(Jo.prototype,Jo.createDefaultProps);class rr extends kn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(p.react(!1)),moved:this.ad(p.react(!1)),constraintMode:this.disposeVar(p.react("none")),originPosition:this.disposeVar(p.reactArray([0,0,0])),originHeading:this.disposeVar(p.react(0)),originDimensions:this.disposeVar(p.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(p.reactArray([0,0,0])),movingPosition:this.disposeVar(p.reactArray([0,0,0])),targetPosition:this.disposeVar(p.reactArray([0,0,0])),targetHeading:this.disposeVar(p.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new p.Processing((i,o,r)=>{const s=[0,0,0],a=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const c=Zn(p.getDomEventCurrentTargetPos(l.pointerEvent));if(!ha(e.viewer.scene,c,this._opInfo.originPosition.value[2],a))return;ua(a,s),this._opInfo.constraintMode.value==="x"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];Q.geoRhumbDestination(s,r,o,h),this._opInfo.targetPosition.value=h;let u=this.scale[0],A=this.scale[1];const d=Q.geoDistance(h,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const f=this._opInfo.originDimensions.value[0]/100;d!=0&&this._opInfo.constraintMode.value==="y"&&(d>0?u+=f:u-=f),d!=0&&this._opInfo.constraintMode.value==="x"&&(d>0?A+=f:A-=f),u<=0&&(u+=f),A<=0&&(A+=f),this.scale=[u??1,A??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new p.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=Zn(p.getDomEventCurrentTargetPos(r.pointerEvent));if(!jc(e.viewer.scene,vt(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ue(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let c=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const u=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?c+=u:c-=u),c<=0&&(c+=u),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const i=e.viewer;if(!i)return;const{scene:o}=i;this.ad(new Vf(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 c=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:u,xAxis:A}=this._scaleAxis,d=this._opInfo.constraintMode.value,f=this._opInfo.step;h.color=[0,0,1,.99],u.color=[0,1,0,.99],A.color=[1,0,0,.99],d==="x"?A.color=f?[1,1,0,.8]:[1,1,0,.99]:d==="y"?u.color=f?[1,1,0,.8]:[1,1,0,.99]:d==="z"&&(h.color=f?[1,1,0,.8]:[1,1,0,.99])};c(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(c)),this.dispose(this._opInfo.step.changed.disposableOn(c))}{const c=()=>{if(!this._scaleAxis)return;const{position:u=rr.defaults.position}=this,{zAxis:A,yAxis:d,xAxis:f}=this._scaleAxis;A.startPosition=d.startPosition=f.startPosition=u;const[g,v,y]=u;A.stopPosition=[g,v,y+this._opInfo.originDimensions.value[2]];const m=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[0],90);m&&(f.stopPosition=m);const b=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[1],0);b&&(d.stopPosition=b)};c();const h=this.ad(p.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(c))}{const c=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,u)=>h===this._opInfo.targetPosition.value[u])){this._opInfo.moved.value=!0;return}};c(),this.dispose(this._opInfo.originHeading.changed.disposableOn(c)),this.dispose(this._opInfo.originPosition.changed.disposableOn(c)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(c)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(c))}const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(p.createProcessingFromAsyncFunc(async c=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",c.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await p.step(c,async h=>{const u=()=>{const f=[...this.position??rr.defaults.position];e.editingHeightOffset&&(f[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=f};h.disposer.dispose((u(),this.positionChanged.disposableOn(u)));const A={constraintMode:"none",startDragPos:[0,0,0]},d=f=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};If(f,o,g,this.axisSnapPixelSize,A),this._opInfo.constraintMode.value=A.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=A.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(f=>{f.pointerEvent&&d(f.pointerEvent)})),await p.step(h,f=>new Promise((g,v)=>{f.disposer.dispose(v),f.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&d(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&A.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await p.step(c,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const u=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),A=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,u,A),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),h.disposer.dispose(()=>s.cancel()));await p.step(h,u=>new Promise((A,d)=>{u.disposer.dispose(d),u.disposer.dispose(e.pointerUpEvent.don(()=>{A()})),u.disposer.dispose(e.pointerOutEvent.don(()=>{A()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new Jo(e));return o.width=10,this.ad(p.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),scale:p.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(rr||(rr={})),p.extendClassProps(rr.prototype,rr.createDefaultProps);const ho=class ho extends hn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new p.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(p.react(!1)));L(this,"_status",this.disposeVar(p.react("None")));L(this,"_positionsChanged",this.ad(new p.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(p.nextAnimateFrame(()=>{var o;((o=i.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??ho.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??ho.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new Je(e));this.ad(p.track([i,"color"],[this,"polylineColor"])),this.ad(p.track([i,"width"],[this,"polylineWidth"])),this.ad(p.track([i,"show"],[this,"polylineShow"])),this.ad(p.track([i,"arcType"],[this,"polylineArcType"])),this.ad(p.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new p.CursorInfo(e.container,p.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};L(ho,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(ho,"defaults",{...hn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:ho.baseImageUrl+"point-green.png",otherControlPointImageUrl:ho.baseImageUrl+"point-yellow.png"});let Wn=ho;(t=>{t.createDefaultProps=()=>({...hn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:p.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})})(Wn||(Wn={})),p.extendClassProps(Wn.prototype,Wn.createDefaultProps);let dQ=0;class ZS extends p.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_id",dQ++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new _a(e.czmViewer));o.enabled=!1,this.ad(p.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??Wn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Wn.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 XS extends ZS{constructor(n,e){super(n,e)}}class Pt extends Wn{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new p.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new ii(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.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(p.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new XS(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=p.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(p.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new pQ(this,r)));const h=a.disposer.disposeVar(new gQ(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await a.promise(new Promise(u=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(A=>{A?(r++,u(!0)):u(!1)})),a.disposer.dispose(h.overEvent.disposableOnce(A=>{A?(r--,u(!0)):u(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>u(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps()})})(Pt||(Pt={})),p.extendClassProps(Pt.prototype,Pt.createDefaultProps);class pQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));const{placeEditing:o}=e;let r=new XS(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(r);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(p.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function mQ(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 gQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_doEvent",this.disposeVar(new p.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(mQ(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class $S extends Pt{constructor(n){super(n),this.loop=!1}}class YS extends Pt{constructor(n){super(n),this.loop=!0}}class gf extends ZS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new ui(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const s=n.editingPoints.indexOf(this);if(s===-1)break;const a=n.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??tt.defaults.loop)&&s+1>=a)break;const c=this.position;if(!c)break;let h=(s+1)%a;const A=n.editingPoints.get(h).position;if(!A)break;const d=Mf(c,A);if(!d)break;d[2]-=n.czmViewer.editingHeightOffset??0,i.position=d;const f=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);i.enabled=f,i.show=f;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new gf(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class tt extends Wn{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"translationEditing");{const o=this.ad(p.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new p.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new yQ(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new ir(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(p.step(o,async s=>{const a=s.disposer,l=a.ad(new vQ(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await s.promise(new Promise(h=>{a.dispose(l.overEvent.disposableOnce(u=>{h(u)}))}))})),r===-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 a=this.editingPoints.get(r-1).position;if(!a)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const u=Mf(a,h);if(!u)return;u&&(u[2]+=this.czmViewer.editingHeightOffset??0);let A=new gf(this,u);this.editingPoints.splice(r,0,A)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new gf(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),p.extendClassProps(tt.prototype,tt.createDefaultProps);class yQ extends p.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),c=l.position;c!==void 0&&(l.position=[c[0]+r[0],c[1]+r[1],c[2]+r[2]])}})}}class vQ extends p.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new wQ(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class wQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(p.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class JS extends tt{constructor(n){super(n),this.loop=!1}}class jS extends tt{constructor(n){super(n),this.loop=!0}}class Ps extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([90,0,0]),distance:p.react(1)})})(Ps||(Ps={})),p.extendClassProps(Ps.prototype,Ps.createDefaultProps);class jo extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{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 i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),distance:p.react(0)})})(jo||(jo={})),p.extendClassProps(jo.prototype,jo.createDefaultProps);class eE extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class tE extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Ts extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Ts||(Ts={})),p.extendClassProps(Ts.prototype,Ts.createDefaultProps);class Is 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 i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Is||(Is={})),p.extendClassProps(Is.prototype,Is.createDefaultProps);class nE extends jo{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 rn extends Q.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(p.react(!0)));L(this,"_currentEditing",this.disposeVar(p.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof ii&&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 Rc=class Rc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ii(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Rc,"type",Rc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,Rc));let Cv=Rc;const Uc=class Uc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ri(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Uc,"type",Uc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,Uc));let xv=Uc;const Oc=class Oc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new rr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Oc,"type",Oc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,Oc));let Sv=Oc;const Lc=class Lc extends rn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new ir(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=Q.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=fn({originPosition:s},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const c=fn({originPosition:s},[l.position])[0][0];l.position=pr({originPosition:s},[[c[0]+a[0],c[1]+a[1],c[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const c=fn({originPosition:s},l.points)[0];l.points=pr({originPosition:s},c.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var s=fn({originPosition:r},[o])[0][0];const a=fn({originPosition:r},n.points)[0];n.points=pr({originPosition:r},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Lc,"type",Lc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,Lc));let yf=Lc;const zc=class zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ps(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const o=vt(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=Di(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(p.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(zc,"type",zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,zc));let Ev=zc;const Qc=class Qc extends rn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new jo(e));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const s=vt(n.position);if(C.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Di(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const s=()=>i.positions=n.points??[];s(),this.ad(n.pointsChanged.don(()=>!i.enabled&&s())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Qc,"type",Qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Qc));let Pv=Qc;const Vc=class Vc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new YS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Vc,"type",Vc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Vc));let Tv=Vc;const Hc=class Hc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new jS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Hc,"type",Hc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Hc));let Iv=Hc;const Nc=class Nc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new $S(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Nc,"type",Nc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Nc));let kv=Nc;const Gc=class Gc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new JS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Gc,"type",Gc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Gc));let Fv=Gc;const Wc=class Wc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new eE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Wc,"type",Wc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Wc));let Bv=Wc;const qc=class qc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new tE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(qc,"type",qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,qc));let Mv=qc;const Kc=class Kc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ts(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Kc,"type",Kc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Kc));let Dv=Kc;const Zc=class Zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Is(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Zc,"type",Zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,Zc));let Rv=Zc;const Xc=class Xc extends rn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new nE(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),s=Reflect.has(n,"height"),a=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let c=Q.getMinMaxCorner(n.points).center,h=[...c],u=l?n.points[0][2]:0;a?r?h[2]=n.extrudedHeight:h[2]=n.height+u:(s&&(c[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=c,i.distance=h[2]-c[2],i.moveWithFirstPosition=!1;let A=[...c];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(a?(n.points=n.points.map(d=>[d[0],d[1],d[2]+i.positions[0][2]-A[2]]),r?n.extrudedHeight=i.positions[1][2]:s&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(s&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),A=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Xc,"type",Xc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Xc));let Uv=Xc;function iE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const s=Array.isArray(o)?[...o]:[o],a=i.editingID;e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l));const c=u=>{u.code=="Escape"&&l()};document.body.addEventListener("keydown",c),n.disposer.ad(()=>document.body.removeEventListener("keydown",c));let h=0;do{const u=s[h%s.length],A=await p.step(n,async d=>{const f=d.disposer,g=Q.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!i.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const v=new g(i,e);if(f.ad(()=>{!v.isDestroyed()&&v.destroy()}),v.supportEditing)e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await d.promise(new Promise(m=>{if(v.isDestroyed()&&m(!1),f.ad(v.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),m(!1)})),r){const b=_=>{_.code=="Space"&&(console.log(`编辑模式${u}结束`),m(!1))};document.body.addEventListener("keydown",b),f.ad(()=>document.body.removeEventListener("keydown",b)),f.ad(e.dblclickEvent.don(()=>m(!0)))}}))});if(r&&A||!r&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function rE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};document.body.addEventListener("keydown",s),n.disposer.ad(()=>document.body.removeEventListener("keydown",s));const a=new yf(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}ae.copyright=void 0;try{const t="earthsdk3-cesium",n="3.2.0-beta.6",e="2025-07-04T10:20:51.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="a72307dee56578eb83034b271b346e609f39af59",a=((Date.now()-1751624451e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${a}个小时)
4144
+ `,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 fQ extends p.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const s=this._getStartInfo(r.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[ri.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(p.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:c}=i;if(c==="none")return;const h=this.owner.getPlane(c);if(!i.currentV)return;const u=h.pick(l);if(!u||!this.owner.cartesian)return;const A=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(A,A);const d=C.Cartesian3.subtract(u,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(d,d),!h.normal||!h.origin)return;const f=_v(A,d,h.normal),g=_v(h.origin,A,h.normal),v=_v(h.origin,d,h.normal);{const y=[...this.owner.selfRotation];y[ri.rotationNum[c]]=i.startRotation+f,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await p.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const c=C.Cartesian3.distance(s,l),h=r/4,u=h*3/128;if(!(c>=h-u&&c<=h+u))return;const d=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=d||(n.currentPlaneType=i,n.currentD2c=d,n.currentV=l,n.startRotation=a[ri.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Di(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(c,i,"heading",a,o),this._pickPlane(c,i,"pitch",a,o),this._pickPlane(c,i,"roll",a,o),c}}function _v(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const aa=class aa extends kn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(p.react("none")));L(this,"_movingPlaneType",this.disposeVar(p.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new lQ(this)),pitch:this.disposeVar(new uQ(this)),roll:this.disposeVar(new cQ(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new fQ(this)})),this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&vt(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 Ht(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(p.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(p.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(p.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.Matrix4.toArray(o))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const o=this.ad(new Es(e));this.dispose(p.track([o,"position"],[this,"position"])),this.dispose(p.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(p.track([o,"debug"],[this,"debug"])),this.dispose(p.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=aa.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[aa.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,c=[0,0,0,s||a?1:.8];c[aa.rotationNum[i]]=1,o.color=c};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(aa,"rotationNum",{heading:0,pitch:1,roll:2}),L(aa,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let ri=aa;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),rotation:p.reactArray([0,0,0]),selfRotation:p.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(ri||(ri={})),p.extendClassProps(ri.prototype,ri.createDefaultProps);const sa=class sa extends p.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??sa.defaults.positions[0],this.stopPosition??sa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??sa.defaults.positions[0],n??sa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new On(n,e));this.ad(p.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(p.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};L(sa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Jo=sa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(t.defaults.positions),width:10,color:p.reactArray([1,0,0,1])})})(Jo||(Jo={})),p.extendClassProps(Jo.prototype,Jo.createDefaultProps);class rr extends kn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(p.react(!1)),moved:this.ad(p.react(!1)),constraintMode:this.disposeVar(p.react("none")),originPosition:this.disposeVar(p.reactArray([0,0,0])),originHeading:this.disposeVar(p.react(0)),originDimensions:this.disposeVar(p.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(p.reactArray([0,0,0])),movingPosition:this.disposeVar(p.reactArray([0,0,0])),targetPosition:this.disposeVar(p.reactArray([0,0,0])),targetHeading:this.disposeVar(p.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new p.Processing((i,o,r)=>{const s=[0,0,0],a=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const c=Zn(p.getDomEventCurrentTargetPos(l.pointerEvent));if(!ha(e.viewer.scene,c,this._opInfo.originPosition.value[2],a))return;ua(a,s),this._opInfo.constraintMode.value==="x"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];Q.geoRhumbDestination(s,r,o,h),this._opInfo.targetPosition.value=h;let u=this.scale[0],A=this.scale[1];const d=Q.geoDistance(h,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const f=this._opInfo.originDimensions.value[0]/100;d!=0&&this._opInfo.constraintMode.value==="y"&&(d>0?u+=f:u-=f),d!=0&&this._opInfo.constraintMode.value==="x"&&(d>0?A+=f:A-=f),u<=0&&(u+=f),A<=0&&(A+=f),this.scale=[u??1,A??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new p.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=Zn(p.getDomEventCurrentTargetPos(r.pointerEvent));if(!jc(e.viewer.scene,vt(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ue(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let c=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const u=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?c+=u:c-=u),c<=0&&(c+=u),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const i=e.viewer;if(!i)return;const{scene:o}=i;this.ad(new Vf(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 c=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:u,xAxis:A}=this._scaleAxis,d=this._opInfo.constraintMode.value,f=this._opInfo.step;h.color=[0,0,1,.99],u.color=[0,1,0,.99],A.color=[1,0,0,.99],d==="x"?A.color=f?[1,1,0,.8]:[1,1,0,.99]:d==="y"?u.color=f?[1,1,0,.8]:[1,1,0,.99]:d==="z"&&(h.color=f?[1,1,0,.8]:[1,1,0,.99])};c(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(c)),this.dispose(this._opInfo.step.changed.disposableOn(c))}{const c=()=>{if(!this._scaleAxis)return;const{position:u=rr.defaults.position}=this,{zAxis:A,yAxis:d,xAxis:f}=this._scaleAxis;A.startPosition=d.startPosition=f.startPosition=u;const[g,v,y]=u;A.stopPosition=[g,v,y+this._opInfo.originDimensions.value[2]];const m=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[0],90);m&&(f.stopPosition=m);const b=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[1],0);b&&(d.stopPosition=b)};c();const h=this.ad(p.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(c))}{const c=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,u)=>h===this._opInfo.targetPosition.value[u])){this._opInfo.moved.value=!0;return}};c(),this.dispose(this._opInfo.originHeading.changed.disposableOn(c)),this.dispose(this._opInfo.originPosition.changed.disposableOn(c)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(c)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(c))}const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(p.createProcessingFromAsyncFunc(async c=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",c.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await p.step(c,async h=>{const u=()=>{const f=[...this.position??rr.defaults.position];e.editingHeightOffset&&(f[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=f};h.disposer.dispose((u(),this.positionChanged.disposableOn(u)));const A={constraintMode:"none",startDragPos:[0,0,0]},d=f=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};If(f,o,g,this.axisSnapPixelSize,A),this._opInfo.constraintMode.value=A.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=A.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(f=>{f.pointerEvent&&d(f.pointerEvent)})),await p.step(h,f=>new Promise((g,v)=>{f.disposer.dispose(v),f.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&d(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&A.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await p.step(c,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const u=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),A=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,u,A),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),h.disposer.dispose(()=>s.cancel()));await p.step(h,u=>new Promise((A,d)=>{u.disposer.dispose(d),u.disposer.dispose(e.pointerUpEvent.don(()=>{A()})),u.disposer.dispose(e.pointerOutEvent.don(()=>{A()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new Jo(e));return o.width=10,this.ad(p.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),scale:p.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(rr||(rr={})),p.extendClassProps(rr.prototype,rr.createDefaultProps);const ho=class ho extends hn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new p.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(p.react(!1)));L(this,"_status",this.disposeVar(p.react("None")));L(this,"_positionsChanged",this.ad(new p.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(p.nextAnimateFrame(()=>{var o;((o=i.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??ho.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??ho.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new Je(e));this.ad(p.track([i,"color"],[this,"polylineColor"])),this.ad(p.track([i,"width"],[this,"polylineWidth"])),this.ad(p.track([i,"show"],[this,"polylineShow"])),this.ad(p.track([i,"arcType"],[this,"polylineArcType"])),this.ad(p.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new p.CursorInfo(e.container,p.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};L(ho,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(ho,"defaults",{...hn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:ho.baseImageUrl+"point-green.png",otherControlPointImageUrl:ho.baseImageUrl+"point-yellow.png"});let Wn=ho;(t=>{t.createDefaultProps=()=>({...hn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:p.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})})(Wn||(Wn={})),p.extendClassProps(Wn.prototype,Wn.createDefaultProps);let dQ=0;class ZS extends p.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_id",dQ++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new _a(e.czmViewer));o.enabled=!1,this.ad(p.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??Wn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Wn.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 XS extends ZS{constructor(n,e){super(n,e)}}class Pt extends Wn{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new p.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new ii(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.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(p.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new XS(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=p.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(p.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new pQ(this,r)));const h=a.disposer.disposeVar(new gQ(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await a.promise(new Promise(u=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(A=>{A?(r++,u(!0)):u(!1)})),a.disposer.dispose(h.overEvent.disposableOnce(A=>{A?(r--,u(!0)):u(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>u(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps()})})(Pt||(Pt={})),p.extendClassProps(Pt.prototype,Pt.createDefaultProps);class pQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));const{placeEditing:o}=e;let r=new XS(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(r);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(p.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function mQ(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 gQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_doEvent",this.disposeVar(new p.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(mQ(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class $S extends Pt{constructor(n){super(n),this.loop=!1}}class YS extends Pt{constructor(n){super(n),this.loop=!0}}class gf extends ZS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new ui(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const s=n.editingPoints.indexOf(this);if(s===-1)break;const a=n.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??tt.defaults.loop)&&s+1>=a)break;const c=this.position;if(!c)break;let h=(s+1)%a;const A=n.editingPoints.get(h).position;if(!A)break;const d=Mf(c,A);if(!d)break;d[2]-=n.czmViewer.editingHeightOffset??0,i.position=d;const f=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);i.enabled=f,i.show=f;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new gf(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class tt extends Wn{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"translationEditing");{const o=this.ad(p.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new p.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new yQ(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new ir(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(p.step(o,async s=>{const a=s.disposer,l=a.ad(new vQ(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await s.promise(new Promise(h=>{a.dispose(l.overEvent.disposableOnce(u=>{h(u)}))}))})),r===-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 a=this.editingPoints.get(r-1).position;if(!a)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const u=Mf(a,h);if(!u)return;u&&(u[2]+=this.czmViewer.editingHeightOffset??0);let A=new gf(this,u);this.editingPoints.splice(r,0,A)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new gf(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),p.extendClassProps(tt.prototype,tt.createDefaultProps);class yQ extends p.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),c=l.position;c!==void 0&&(l.position=[c[0]+r[0],c[1]+r[1],c[2]+r[2]])}})}}class vQ extends p.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new wQ(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class wQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(p.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class JS extends tt{constructor(n){super(n),this.loop=!1}}class jS extends tt{constructor(n){super(n),this.loop=!0}}class Ps extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([90,0,0]),distance:p.react(1)})})(Ps||(Ps={})),p.extendClassProps(Ps.prototype,Ps.createDefaultProps);class jo extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{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 i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),distance:p.react(0)})})(jo||(jo={})),p.extendClassProps(jo.prototype,jo.createDefaultProps);class eE extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class tE extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Ts extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Ts||(Ts={})),p.extendClassProps(Ts.prototype,Ts.createDefaultProps);class Is 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 i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Is||(Is={})),p.extendClassProps(Is.prototype,Is.createDefaultProps);class nE extends jo{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 rn extends Q.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(p.react(!0)));L(this,"_currentEditing",this.disposeVar(p.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof ii&&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 Rc=class Rc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ii(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Rc,"type",Rc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,Rc));let Cv=Rc;const Uc=class Uc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ri(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Uc,"type",Uc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,Uc));let xv=Uc;const Oc=class Oc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new rr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Oc,"type",Oc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,Oc));let Sv=Oc;const Lc=class Lc extends rn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new ir(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=Q.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=fn({originPosition:s},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const c=fn({originPosition:s},[l.position])[0][0];l.position=pr({originPosition:s},[[c[0]+a[0],c[1]+a[1],c[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const c=fn({originPosition:s},l.points)[0];l.points=pr({originPosition:s},c.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var s=fn({originPosition:r},[o])[0][0];const a=fn({originPosition:r},n.points)[0];n.points=pr({originPosition:r},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Lc,"type",Lc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,Lc));let yf=Lc;const zc=class zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ps(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const o=vt(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=Di(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(p.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(zc,"type",zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,zc));let Ev=zc;const Qc=class Qc extends rn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new jo(e));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const s=vt(n.position);if(C.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Di(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const s=()=>i.positions=n.points??[];s(),this.ad(n.pointsChanged.don(()=>!i.enabled&&s())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Qc,"type",Qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Qc));let Pv=Qc;const Vc=class Vc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new YS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Vc,"type",Vc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Vc));let Tv=Vc;const Hc=class Hc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new jS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Hc,"type",Hc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Hc));let Iv=Hc;const Nc=class Nc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new $S(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Nc,"type",Nc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Nc));let kv=Nc;const Gc=class Gc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new JS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Gc,"type",Gc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Gc));let Fv=Gc;const Wc=class Wc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new eE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Wc,"type",Wc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Wc));let Bv=Wc;const qc=class qc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new tE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(qc,"type",qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,qc));let Mv=qc;const Kc=class Kc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ts(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Kc,"type",Kc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Kc));let Dv=Kc;const Zc=class Zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Is(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Zc,"type",Zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,Zc));let Rv=Zc;const Xc=class Xc extends rn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new nE(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),s=Reflect.has(n,"height"),a=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let c=Q.getMinMaxCorner(n.points).center,h=[...c],u=l?n.points[0][2]:0;a?r?h[2]=n.extrudedHeight:h[2]=n.height+u:(s&&(c[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=c,i.distance=h[2]-c[2],i.moveWithFirstPosition=!1;let A=[...c];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(a?(n.points=n.points.map(d=>[d[0],d[1],d[2]+i.positions[0][2]-A[2]]),r?n.extrudedHeight=i.positions[1][2]:s&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(s&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),A=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Xc,"type",Xc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Xc));let Uv=Xc;function iE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const s=Array.isArray(o)?[...o]:[o],a=i.editingID;e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l));const c=u=>{u.code=="Escape"&&l()};document.body.addEventListener("keydown",c),n.disposer.ad(()=>document.body.removeEventListener("keydown",c));let h=0;do{const u=s[h%s.length],A=await p.step(n,async d=>{const f=d.disposer,g=Q.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!i.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const v=new g(i,e);if(f.ad(()=>{!v.isDestroyed()&&v.destroy()}),v.supportEditing)e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await d.promise(new Promise(m=>{if(v.isDestroyed()&&m(!1),f.ad(v.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),m(!1)})),r){const b=_=>{_.code=="Space"&&(console.log(`编辑模式${u}结束`),m(!1))};document.body.addEventListener("keydown",b),f.ad(()=>document.body.removeEventListener("keydown",b)),f.ad(e.dblclickEvent.don(()=>m(!0)))}}))});if(r&&A||!r&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function rE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};document.body.addEventListener("keydown",s),n.disposer.ad(()=>document.body.removeEventListener("keydown",s));const a=new yf(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}ae.copyright=void 0;try{const t="earthsdk3-cesium",n="3.2.0-beta.7",e="2025-07-08T03:40:45.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="9040c9bf6cac8d3595cd5a8b6c9fc503b7e90d84",a=((Date.now()-1751946045e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${a}个小时)
4145
4145
  %c${o?o+`
4146
4146
  `:""}当前网站正在使用${t},此软件版权归${i}所有
4147
- `;ae.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","a72307dee56578eb83034b271b346e609f39af59")},get info(){return l},get date(){return"2025-07-04T10:20:51.000Z"},get author(){return"suplyang"},get version(){return"3.2.0-beta.6"},get name(){return"earthsdk3-cesium"},get commitId(){return"a72307dee56578eb83034b271b346e609f39af59"},print(){console.info(this.info,`
4147
+ `;ae.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","9040c9bf6cac8d3595cd5a8b6c9fc503b7e90d84")},get info(){return l},get date(){return"2025-07-08T03:40:45.000Z"},get author(){return"suplyang"},get version(){return"3.2.0-beta.7"},get name(){return"earthsdk3-cesium"},get commitId(){return"9040c9bf6cac8d3595cd5a8b6c9fc503b7e90d84"},print(){console.info(this.info,`
4148
4148
  font-size: 18px;
4149
4149
  font-weight: 1000;
4150
4150
  line-height: 1;