leiting-bim 2.1.112 → 2.1.113

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.
@@ -46,7 +46,7 @@
46
46
  // 通常不需要 clamp,除非开启 HDR 后期望超亮,但负值需要避免
47
47
  material.diffuse = max(material.diffuse, vec3(0.0));
48
48
  }
49
- `});f.isModelAdjustment=!0,p.customShader=f}else e.brightness!==void 0&&e.brightness!==1&&!p.style&&(p.style=new n.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_updateLightDirection=e=>{e.light instanceof this.cesium.DirectionalLight&&(e.light.direction=e.camera.directionWC)};setEnvironmentMapEnable(e){this.is2d||(e?(this.viewer.scene.light=new this.cesium.DirectionalLight({direction:this.viewer.scene.camera.directionWC}),this.viewer.scene.preRender.addEventListener(this._updateLightDirection)):(this._defaultSkyBox&&(this.viewer.scene.skyBox=this._defaultSkyBox),this.viewer.scene.preRender.removeEventListener(this._updateLightDirection),this.viewer.scene.light=new this.cesium.SunLight),this.viewer.scene.imageBasedLighting&&(this.viewer.scene.imageBasedLighting.imageBasedLightingFactor=e?new this.cesium.Cartesian2(2,2):new this.cesium.Cartesian2(1,1)))}setAmbientOcclusion(e){if(this.is2d)return;const t=this.viewer.scene;if(!t||!t.postProcessStages||!t.postProcessStages.ambientOcclusion)return;const n=t.postProcessStages.ambientOcclusion;n.enabled=e,e&&(n.uniforms.ambientOcclusionOnly=!1,n.uniforms.intensity=3,n.uniforms.bias=.1,n.uniforms.lengthCap=.03,n.uniforms.stepSize=1,n.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}_customZoomHandler=null;_zoomInertiaListener=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,n=this.cesium;if(this.viewer.camera.frustum.near=1e-5,this.viewer.camera.frustum.far=1e8,this._customZoomHandler&&(this._customZoomHandler.destroy(),this._customZoomHandler=null),this._zoomInertiaListener&&(this._zoomInertiaListener(),this._zoomInertiaListener=null),!e){t.zoomEventTypes.includes(n.CameraEventType.WHEEL)||t.zoomEventTypes.push(n.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(l=>l!==n.CameraEventType.WHEEL),this._customZoomHandler=new n.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(l=>{s=l.endPosition},n.ScreenSpaceEventType.MOUSE_MOVE);let o=0,r=null;this._zoomInertiaListener=this.viewer.scene.preUpdate.addEventListener(()=>{if(Math.abs(o)<.001||!r){o=0;return}const l=this.viewer.camera,a=o*.2;if(s){const h=l.getPickRay(s);if(h){let p=this.viewer.scene.pickPosition(s);if(!p){const f=n.IntersectionTests.rayEllipsoid(h,this.viewer.scene.globe.ellipsoid);f&&(p=n.Ray.getPoint(h,f.start))}if(p){const f=n.Cartesian3.distance(l.position,p);if(a>0&&a>f-.01){if(o=0,f>.01){const u=n.Cartesian3.multiplyByScalar(r,f-.01,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,u,new n.Cartesian3)}return}}}}const d=n.Cartesian3.multiplyByScalar(r,a,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,d,new n.Cartesian3),o-=a}),this._customZoomHandler.setInputAction(l=>{const a=this.viewer.camera,d=a.positionCartographic.height;let h=0;d<.1?h=.001:d<1?h=.02:d<4?h=.2:d<8||d<1e3?h=d*.1:h=d*.2,console.log(d,h);const p=Math.sign(l);if(!s)r=a.direction;else{const f=a.getPickRay(s);if(f){let u=this.viewer.scene.pickPosition(s);if(!u){const m=n.IntersectionTests.rayEllipsoid(f,this.viewer.scene.globe.ellipsoid);m&&(u=n.Ray.getPoint(f,m.start))}if(u){const m=n.Cartesian3.subtract(u,a.position,new n.Cartesian3);r=n.Cartesian3.normalize(m,new n.Cartesian3)}else r=a.direction}else r=a.direction}o+=p>0?h:-h},n.ScreenSpaceEventType.WHEEL)}setMouseHabit(e){if(this.is2d)return;const t=this.viewer.scene.screenSpaceCameraController;t.enableTranslate=!0,t.enableRotate=!0,t.enableZoom=!0,t.enableTilt=!0,t.enableLook=!1,t.lookEventTypes=[],e===1?(t.rotateEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.MIDDLE_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.LEFT_DRAG]):(t.rotateEventTypes=[this.cesium.CameraEventType.LEFT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.MIDDLE_DRAG])}}class cy{cesium;viewer;constructor(e){this.cesium=e.cesium,this.viewer=e.viewer}getCameraView(){const e=this.viewer.camera;return{position:{x:e.position.x,y:e.position.y,z:e.position.z},destination:{x:e.position.x,y:e.position.y,z:e.position.z},orientation:{heading:e.heading,pitch:e.pitch,roll:e.roll},duration:1}}flyToCameraView(e){const{position:t,orientation:n,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(n.heading,n.pitch,n.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}getCurrentCameraPositionAndTarget(){const e=this.getCameraView();return{position:e.position,target:{heading:e.orientation.heading,pitch:e.orientation.pitch,roll:e.orientation.roll},duration:e.duration}}setCameraView(e){const t=e.target||e.orientation||{},n=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},destination:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,n,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,n),r={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}}function dy(i){const{container:e,appContext:t,methods:n,viewerOptions:s,options:o,callbacks:r}=i,l=new Gi,a=window.Cesium;if(!a)throw new Error("Cesium is not loaded");e.id=`cesium-container-${op()}`;const d={animation:!1,timeline:!1,infoBox:!1,homeButton:!1,fullscreenButton:!1,sceneModePicker:!1,navigationHelpButton:!1,geocoder:!1,baseLayerPicker:!1,selectionIndicator:!1,heightBasedZoom:!0,creditContainer:document.createElement("div"),contextOptions:{webgl:{alpha:!0}}},h=t?.config?.globalProperties?.$leitingBimOptions,p={...d,...h?.viewerOptions??{},...s??{}},f=new a.Viewer(e,p);f.camera.setView({destination:a.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:a.Math.toRadians(0),pitch:a.Math.toRadians(-90),roll:0}});let u=n;if(!u&&h&&(h.methods||(h.methods={}),u=h.methods),u){const m=new yp({cesium:a,viewer:f,options:o,callbacks:r}),E=new Dr({cesium:a,viewer:f}),A=new ly({cesium:a,viewer:f}),C=new Cp({cesium:a,viewer:f}),v=new cy({cesium:a,viewer:f});let S;const M=new tl({cesium:a,viewer:f});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&A.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),S=new el({cesium:a,viewer:f})),E.events.on("tilesetLoaded",g=>{m.baseCompt.attachTileset(g,m.baseCompt.selectedColor),m.baseSection.attachTileset(g,g.leiting?.model?.modelId),u&&u.tilesLoad3dTiles&&u.tilesLoad3dTiles(g),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(g.leiting)}),E.events.on("loadingStatus",g=>{u&&u.onLoadingStatus&&u.onLoadingStatus(g)}),E.events.on("mountAll3Dtiles",({modelList:g})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),u?.mountAll3Dtiles&&u.mountAll3Dtiles(g)}),E.events.on("updateModels",({modelList:g})=>{o?.updateModels&&o.updateModels(g),u?.updateModels&&u.updateModels(g)}),C.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),u?.mountAllCad&&u.mountAllCad(g)}),m.baseCompt.loadNodeDetailsForModel=g=>E.loadNodeDetailsForModel(g),m.baseCompt.selectionChange(g=>{g.length!==0&&(o?.selectionChange&&o.selectionChange(g),u?.selectionChange&&u.selectionChange(g))}),u.onSearchComponent=g=>{o?.searchComponent&&o.searchComponent(g),u?.searchComponent&&u.searchComponent(g)};const O=u.saveRegion;u.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),O&&O!==o?.saveRegion&&O(g)};const I=u.saveCadCalibration;u.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),I&&I!==o?.saveCadCalibration&&I(g)};const B=u.saveCadRegion;u.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),B&&B!==o?.saveCadRegion&&B(g)},u.getCesium=()=>a,u.getViewer=()=>f,u.getAnnotationInstance=()=>S,u.getMeasureInstance=()=>M,u.flyToCamera=g=>{v.setCameraView(g)},u.flyToLonLatHeight=(g,P,x,F=1)=>{v.flyToLonLatHeight(g,P,x,F)},u.flyTo=u.flyToCamera,u.getCameraState=()=>v.getCameraView(),u.getCameraInfo=u.getCameraState,u.restoreCameraState=g=>v.flyToCameraView(g),u.flyToCameraView=u.restoreCameraState,u.getCameraPositionTarget=()=>v.getCurrentCameraPositionAndTarget(),u.getCurrentCameraPositionAndTarget=u.getCameraPositionTarget,u.setCameraLookAt=g=>v.setCameraView(g),u.setCameraView=u.setCameraLookAt,u.setCanvasBackground=g=>A.setBackgroundColor(g),u.setBackgroundColor=u.setCanvasBackground,u.setAntiAliasing=g=>m.enableCesiumFXAA(g),u.enableCesiumFXAA=u.setAntiAliasing,u.setSceneVisibility=g=>m.setSceneOptions(g),u.setSceneOptions=u.setSceneVisibility,u.addDebugPoint=(g,P,x=0)=>{f.entities.add({position:a.Cartesian3.fromDegrees(g,P,x),point:{pixelSize:10,color:a.Color.RED}})},u.addPoint=u.addDebugPoint,u.toggleDebugLabels=()=>m.enableTestLabel(),u.enableTestLabel=u.toggleDebugLabels,u.captureScreenshot=()=>{const g=f.scene.canvas;return f.render(),g.toDataURL("image/png")},u.getImageBase64=u.captureScreenshot,u.captureDomScreenshot=(g,P)=>m.getSnapDomSImageBase64(g,P),u.getSnapDomSImageBase64=u.captureDomScreenshot,u.addModels=g=>E.addModels(g),u.add3DtilesModel=u.addModels,u.addObliquePhotography=g=>E.addOSGB(g),u.addOSGB=u.addObliquePhotography,u.adjustOSGBModelMatrix=g=>E.updateOSGBMatrix(g),u.updateOSGBMatrix=u.adjustOSGBModelMatrix,u.setModelVisibility=g=>E.showModels(g),u.showModels=u.setModelVisibility,u.showTileset=u.setModelVisibility,u.removeModels=g=>E.deleteModels(g),u.deleteModels=u.removeModels,u.clearAllModels=()=>{E.deleteAllModels(),l.emit("deleteAllModels")},u.deleteAllModelList=u.clearAllModels,u.deleteAllModels=u.clearAllModels,u.flyToModel=g=>E.flyToTileset(g),u.flyToTileset=u.flyToModel,u.flyToByModelId=u.flyToModel,u.setModelBrightness=g=>m.updateModelEffect(g),u.updateModelEffect=u.setModelBrightness,u.getAllTilesets=()=>E.getMapTileset(),u.getMapTileset=u.getAllTilesets,u.getCurrentModelId=()=>E.getBIMmodelId(),u.getBIMmodelId=u.getCurrentModelId,u.getLoadedModels=()=>E.getModelList(),u.getModelList=u.getLoadedModels,u.loadModelStructure=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelStructure: modelId is required");return}return await E.loadTreeForModel(P)},u.loadTreeForModel=u.loadModelStructure,u.loadModelDetails=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelDetails: modelId is required");return}return await E.loadNodeDetailsForModel(P)},u.loadNodeDetailsForModel=u.loadModelDetails,u.setMapTileset=g=>E.setMapTileset(g),u.setCurrentModelId=g=>E.setBIMmodelId(g),u.setBIMmodelId=u.setCurrentModelId,u.setModelList=g=>E.setModelList(g),u.highlightComponents=(g,P={})=>m.baseCompt.setSelectColorUserModelCpt(g,P),u.setSelectColorUserModelCpt=u.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(g=>E.loadNodeDetailsForModel(g)),u.highlightAllComponents=g=>m.baseCompt.setAllSelectColorUserModelCpt(g),u.setAllSelectColorUserModelCpt=u.highlightAllComponents,u.setSelectColorUserModelCptByClear=()=>m.baseCompt.clearAllHaveSelected(),u.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),u.selectComponents=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,P??{rank:0})},u.setSelecteds=u.selectComponents,u.setSelectionColor=(g,P,x,F)=>m.baseCompt.setSelectedColorRgba(g,P,x,F),u.setSelectedColor=u.setSelectionColor,u.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),u.clearAllHaveSelected=u.clearSelection,u.getSelectedComponents=g=>m.baseCompt.getSelected(g),u.getSelected=u.getSelectedComponents,u.onSelectionChange=g=>{m.baseCompt.selectionChange(g)},u.selectionChange=u.onSelectionChange,u.flyToComponents=g=>m.baseCompt.flyToObjects(g),u.flyToObjects=u.flyToComponents,u.setConstructionData=async g=>{if(g&&Array.isArray(g)){const P=new Set;g.forEach(x=>{x.mergeCpts&&Array.isArray(x.mergeCpts)&&x.mergeCpts.forEach(F=>{F.modelId&&P.add(F.modelId)})}),P.size>0&&await Promise.all(Array.from(P).map(x=>u.loadNodeDetailsForModel(x)))}m.baseCompt.setAllConstructionProgressTracking(g)},u.setAllConstructionProgressTracking=u.setConstructionData,u.startConstructionSimulation=()=>m.baseCompt.enableConstructionProgressTracking(),u.enableAllConstructionProgressTracking=u.startConstructionSimulation,u.stopConstructionSimulation=()=>m.baseCompt.disableConstructionProgressTracking(),u.disableConstructionProgressTracking=u.stopConstructionSimulation,u.disableAllConstructionProgressTracking=u.stopConstructionSimulation,u.resetConstructionSimulation=()=>m.baseCompt.freshConstructionProgressTracking(),u.freshConstructionProgressTracking=u.resetConstructionSimulation,u.restartConstructionSimulation=()=>m.baseCompt.reStartAnimation(),u.reStartAnimation=u.restartConstructionSimulation,u.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),u.pauseConstructionSimulation=()=>m.baseCompt.pauseFlyTo(),u.pauseFlyTo=u.pauseConstructionSimulation,u.pauseAnimation=u.pauseConstructionSimulation,u.resumeConstructionSimulation=()=>m.baseCompt.resumeFlyTo(),u.resumeAnimation=u.resumeConstructionSimulation,u.setComponentsVisibility=async g=>await m.baseCompt.setComponentVisibility(g),u.setElementsListVisible=u.setComponentsVisibility,u.setAllComponentsVisibility=async g=>await m.baseCompt.setAllComponentsVisibility(g),u.setAllElementsVisible=u.setAllComponentsVisibility,u.getComponentsByVisibility=g=>m.baseCompt.getComponentsByVisibility(g),u.getShowCpts=g=>m.baseCompt.getComponentsByVisibility(g),u.getElementsVisible=u.getComponentsByVisibility,u.setComponentVisibility=u.setComponentsVisibility,u.enableSectioning=(g,P)=>m.baseSection.open(g,P),u.openSection=u.enableSectioning,u.disableSectioning=g=>m.baseSection.close(g),u.closeSection=u.disableSectioning,u.updateSectionBox=g=>m.baseSection.updateRange(g),u.updateSectionRange=u.updateSectionBox,u.getSectionBox=()=>m.baseSection.getRange(),u.getSectionRange=u.getSectionBox,u.fitSectionToModel=()=>m.baseSection.fitToModels(),u.fitToModels=u.fitSectionToModel,u.setSectionBoxVisibility=g=>m.baseSection.setBoxVisibility(g),u.startFirstPersonMode=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},u.openPlayer=u.startFirstPersonMode,u.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},u.closePlayer=u.stopFirstPersonMode,u.setPlayerPosition=g=>m.basePlayer.setPersonPosition(g),u.setPersonPosition=u.setPlayerPosition,u.setWalkSpeed=g=>m.basePlayer.setSpeed({speed:g}),u.setPlayerSpeed=u.setWalkSpeed,u.setPlayerConfig=g=>m.basePlayer.setParams(g),u.setPlayerParams=u.setPlayerConfig,u.setPlayerAction=(g,P)=>m.basePlayer.setMoveState(g,P),u.setPlayerMoveState=u.setPlayerAction,u.bindPlayerControls=g=>m.basePlayer.bindUiKeys(g),u.bindPlayerUiKeys=u.bindPlayerControls,u.setGlobeVisibility=g=>A.setGlobeEnvironmentVisible(g),u.setGlobeEnvironmentVisible=u.setGlobeVisibility,u.setTerrainVisibility=g=>A.setTerrainEnable(g),u.setTerrainEnable=u.setTerrainVisibility,u.setDepthTest=g=>A.setDepthTestEnable(g),u.setDepthTestEnable=u.setDepthTest,u.setBaseMap=(g,P)=>A.changeBaseMap(g,P),u.changeBaseMap=u.setBaseMap,u.setWorldTime=g=>A.setTime(g),u.setTime=u.setWorldTime,u.setGisOptions=g=>{g.globe!==void 0&&A.setGlobeEnvironmentVisible(g.globe),g.elevation!==void 0&&A.setTerrainEnable(g.elevation),g.depthTestAgainstTerrain!==void 0&&A.setDepthTestEnable(g.depthTestAgainstTerrain),g.rendering!==void 0&&A.setAmbientOcclusion(g.rendering)},u.setShadowVisibility=g=>A.setShadowsEnable(g),u.setShadowsEnable=u.setShadowVisibility,u.setEnvironmentMapVisibility=g=>A.setEnvironmentMapEnable(g),u.setEnvironmentMapEnable=u.setEnvironmentMapVisibility,u.setAOVisibility=g=>A.setAmbientOcclusion(g),u.setAmbientOcclusion=u.setAOVisibility,u.setBackgroundColor=g=>A.setGlobeColor(g),u.setGlobeColor=u.setBackgroundColor,u.setModelBrightness=g=>A.setModelBrightness(g),u.adjustModelColor=g=>A.setModelColorAdjustment(g),u.setModelColorAdjustment=u.adjustModelColor,u.setShadowIntensity=g=>{A.setShadowDarkness?A.setShadowDarkness(g):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},u.setShadowDarkness=u.setShadowIntensity,u.switchSceneMode=async g=>{const P=g?"2d":"3d";await A.setCadMode(P),g&&!S&&(S=new el({cesium:a,viewer:f}),u.setGlobeVisibility(!0)),l.emit("setMode",P)},u.setSceneMode=u.switchSceneMode,u.set2d=g=>u.switchSceneMode(g),u.is2dMode=()=>A.is2d,u.setMouseControlMode=g=>A.setMouseHabit(g),u.setMouseHabit=u.setMouseControlMode,u.setCollisionEnabled=g=>A.setCollisionDetection(g),u.setCollisionDetection=u.setCollisionEnabled,u.searchAndLocate=(g,P)=>A.searchLocation(g,P),u.searchLocation=u.searchAndLocate,u.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),u.setConfigure=g=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",g)},u.addCadModel=g=>{const P={...g};return P.files&&!P.fileNames&&(P.fileNames=P.files),P.fileNames||(P.fileNames=[]),C.addDxfModel(P)},u.addDxfModel=u.addCadModel,u.deleteCad=g=>C.deleteCad(g),u.deleteAllCad=()=>C.deleteAllCad(),u.showCadModel=g=>C.showJson(g),u.showGeoJson=g=>C.showJson(g),u.showDxfModel=u.showCadModel,u.showCadLayer=g=>C.showJsonByLayer(g),u.showDxfLayer=u.showCadLayer,u.flyToCadModel=(g={})=>C.flyToCadModel(g),u.getCadModels=g=>C.getDxfModels(g),u.getDxfModels=u.getCadModels,u.getCadLayers=g=>C.getMapLayers(g),u.getDxfLayers=u.getCadLayers,u.getCadModelId=()=>C.getModelId(),u.setCadOpen=g=>C.setDxfOpen(g),u.setDxfOpen=u.setCadOpen,u.getCadOpen=()=>C.getDxfOpen(),u.getDxfOpen=u.getCadOpen,u.adjustCadModel=g=>C.adjustingModelByCad(g),u.adjustingModelByCad=u.adjustCadModel,u.saveAnnotations=()=>{let g=null;return S&&(g=S.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},u.loadAnnotations=g=>S?S.loadAnnotations(g):!1,u.flyToTopView=()=>{C.flyToCadModel()},u.menuEvents=l,u.addMenuItems=g=>{l.emit("insertMenu",g)},u.insertMenu=u.addMenuItems,u.filterMenuItems=g=>{l.emit("setMenuListFilter",g)},u.setMenuListFilter=u.filterMenuItems,u.setMenuVisibility=g=>{l.emit("showMenu",g)},u.showMenu=u.setMenuVisibility,u.setPanelVisibility=(g,P)=>{l.emit("setMenuActive",g,P)},u.setMenuActive=u.setPanelVisibility,u.addContextMenuItems=g=>{console.warn("addContextMenuItems is not initialized yet. Please wait for LeitingBIM component to mount.",g)},u.insertContextMenu=u.addContextMenuItems,u.removeContextMenuItems=g=>{console.warn("removeContextMenuItems is not initialized yet.",g)},u.deleteContextMenu=u.removeContextMenuItems,u.closeContextMenu=()=>{console.warn("closeContextMenu is not initialized yet.")},u.hideContextMenu=u.closeContextMenu,u.getModelTree=()=>{const g=[],P=E.getMapTileset();return Object.keys(P).forEach(x=>{const F=P[x];if(F&&F.leiting&&F.leiting.tree){const _=F.leiting.tree;Array.isArray(_)?g.push(..._):g.push(_)}}),g},u.getTree=u.getModelTree,u.getAllComponentDetails=()=>{const g=E.getMapTileset(),P={},x=[];try{Object.keys(g).forEach(F=>{const _=g[F];if(!_||!_.leiting)return;const H=_.leiting,L=H.node,w=H.model.formData,y=H.box;if(!L||!L.nodeExtras)return;const b=H.model.modelId;P[b]=L.nodeExtras;const D=L.nodeExtras.element;if(!D)return;const k=y?y.center:{x:0,y:0,z:0};Object.values(D).forEach(Q=>{if(Q.box3)try{const R=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(w.totalRotation||0)),T=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(R),new a.Cartesian3(0,0,0)),U=a.Cartesian3.fromDegrees(w.longitude,w.latitude,w.height),V=a.Transforms.eastNorthUpToFixedFrame(U);a.Matrix4.multiply(V,T,V);const W=new a.Cartesian3(k.x,k.y,0),q=new a.Cartesian3;a.Matrix4.multiplyByPoint(V,W,q);const ie=a.Cartographic.fromCartesian(q),ae=Q.box3?.Center?.x||0,ne=Q.box3?.Center?.y||0,Y=Q.box3?.Center?.z||0,j=new a.Cartesian3(-k.x+ae,-k.y+ne,0+Y),ee=a.Matrix4.fromTranslation(j),le=a.Matrix4.clone(ee);a.Matrix4.multiply(T,le,le);const oe=a.Cartesian3.fromDegrees(ie.longitude/Math.PI*180,ie.latitude/Math.PI*180,w.height),ce=a.Transforms.eastNorthUpToFixedFrame(oe);a.Matrix4.multiply(ce,le,ce);const ve=a.Cartographic.fromCartesian(new a.Cartesian3(ce[12],ce[13],ce[14]));Q.box3.cartographic={longitude:ve.longitude/Math.PI*180,latitude:ve.latitude/Math.PI*180,height:ve.height};const Te={id:Q.uniqueId,billboard:[{theme:"Tag9999",position:[Q.box3.cartographic.longitude,Q.box3.cartographic.latitude,Q.box3.cartographic.height],options:{text:Q.name}}]};x.push(Te)}catch(R){console.warn("Error calculating component position:",R)}})})}catch(F){console.error("getAllComponents error:",F)}return P},u.getAllComponents=u.getAllComponentDetails,u.getComponentInfoList=g=>{if(!Array.isArray(g))return[];const P=E.getMapTileset(),x=[],F={};g.forEach(_=>{!_.modelId||!_.elementId||(F[_.modelId]||(F[_.modelId]=[]),F[_.modelId]?.push(_.elementId))});try{Object.keys(F).forEach(_=>{const H=P[_];if(!H||!H.leiting)return;const L=H.leiting,w=L.node,y=L.model.formData,b=L.box;if(!w||!w.nodeExtras)return;const D=w.nodeExtras.element;if(!D)return;const k=b?b.center:{x:0,y:0,z:0};F[_]?.forEach(Q=>{const R=D[Q];if(R&&R.box3)try{const T=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(y.totalRotation||0)),U=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(T),new a.Cartesian3(0,0,0)),V=a.Cartesian3.fromDegrees(y.longitude,y.latitude,y.height),W=a.Transforms.eastNorthUpToFixedFrame(V);a.Matrix4.multiply(W,U,W);const q=new a.Cartesian3(k.x,k.y,0),ie=new a.Cartesian3;a.Matrix4.multiplyByPoint(W,q,ie);const ae=a.Cartographic.fromCartesian(ie),ne=R.box3?.Center?.x||0,Y=R.box3?.Center?.y||0,j=R.box3?.Center?.z||0,ee=new a.Cartesian3(-k.x+ne,-k.y+Y,0+j),le=a.Matrix4.fromTranslation(ee),oe=a.Matrix4.clone(le);a.Matrix4.multiply(U,oe,oe);const ce=a.Cartesian3.fromDegrees(ae.longitude/Math.PI*180,ae.latitude/Math.PI*180,y.height),ve=a.Transforms.eastNorthUpToFixedFrame(ce);a.Matrix4.multiply(ve,oe,ve);const Te=a.Cartographic.fromCartesian(new a.Cartesian3(ve[12],ve[13],ve[14]));R.box3.cartographic={longitude:Te.longitude/Math.PI*180,latitude:Te.latitude/Math.PI*180,height:Te.height},R.elementId=Q,R.modelId=_,x.push(R)}catch(T){console.warn("Error calculating component position:",T)}})})}catch(_){console.error("getCptInfos error:",_)}return x},u.getCptInfos=u.getComponentInfoList,u.baseCompt=m.baseCompt,window.Methods=u}return console.log("methods",u),{Cesium:a,viewer:f,methods:u,menuEvents:l}}const we=c.reactive({visible:!1,type:"info",title:"",description:"",closable:!1,showIcon:!0,duration:3});let ye=null,il=null,nl=!1,xs=null,on=null,Ss=null;function hy(){if(on||typeof document>"u")return;const i=`
49
+ `});f.isModelAdjustment=!0,p.customShader=f}else e.brightness!==void 0&&e.brightness!==1&&!p.style&&(p.style=new n.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_updateLightDirection=e=>{e.light instanceof this.cesium.DirectionalLight&&(e.light.direction=e.camera.directionWC)};setEnvironmentMapEnable(e){this.is2d||(e?(this.viewer.scene.light=new this.cesium.DirectionalLight({direction:this.viewer.scene.camera.directionWC}),this.viewer.scene.preRender.addEventListener(this._updateLightDirection)):(this._defaultSkyBox&&(this.viewer.scene.skyBox=this._defaultSkyBox),this.viewer.scene.preRender.removeEventListener(this._updateLightDirection),this.viewer.scene.light=new this.cesium.SunLight),this.viewer.scene.imageBasedLighting&&(this.viewer.scene.imageBasedLighting.imageBasedLightingFactor=e?new this.cesium.Cartesian2(2,2):new this.cesium.Cartesian2(1,1)))}setAmbientOcclusion(e){if(this.is2d)return;const t=this.viewer.scene;if(!t||!t.postProcessStages||!t.postProcessStages.ambientOcclusion)return;const n=t.postProcessStages.ambientOcclusion;n.enabled=e,e&&(n.uniforms.ambientOcclusionOnly=!1,n.uniforms.intensity=3,n.uniforms.bias=.1,n.uniforms.lengthCap=.03,n.uniforms.stepSize=1,n.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}_customZoomHandler=null;_zoomInertiaListener=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,n=this.cesium;if(this.viewer.camera.frustum.near=1e-5,this.viewer.camera.frustum.far=1e8,this._customZoomHandler&&(this._customZoomHandler.destroy(),this._customZoomHandler=null),this._zoomInertiaListener&&(this._zoomInertiaListener(),this._zoomInertiaListener=null),!e){t.zoomEventTypes.includes(n.CameraEventType.WHEEL)||t.zoomEventTypes.push(n.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(l=>l!==n.CameraEventType.WHEEL),this._customZoomHandler=new n.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(l=>{s=l.endPosition},n.ScreenSpaceEventType.MOUSE_MOVE);let o=0,r=null;this._zoomInertiaListener=this.viewer.scene.preUpdate.addEventListener(()=>{if(Math.abs(o)<.001||!r){o=0;return}const l=this.viewer.camera,a=o*.2;if(s){const h=l.getPickRay(s);if(h){let p=this.viewer.scene.pickPosition(s);if(!p){const f=n.IntersectionTests.rayEllipsoid(h,this.viewer.scene.globe.ellipsoid);f&&(p=n.Ray.getPoint(h,f.start))}if(p){const f=n.Cartesian3.distance(l.position,p);if(a>0&&a>f-.01){if(o=0,f>.01){const u=n.Cartesian3.multiplyByScalar(r,f-.01,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,u,new n.Cartesian3)}return}}}}const d=n.Cartesian3.multiplyByScalar(r,a,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,d,new n.Cartesian3),o-=a}),this._customZoomHandler.setInputAction(l=>{const a=this.viewer.camera,d=a.positionCartographic.height;let h=0;d<.1?h=.001:d<1?h=.02:d<4?h=.2:d<8||d<1e3?h=d*.1:h=d*.2,console.log(d,h);const p=Math.sign(l);if(!s)r=a.direction;else{const f=a.getPickRay(s);if(f){let u=this.viewer.scene.pickPosition(s);if(!u){const m=n.IntersectionTests.rayEllipsoid(f,this.viewer.scene.globe.ellipsoid);m&&(u=n.Ray.getPoint(f,m.start))}if(u){const m=n.Cartesian3.subtract(u,a.position,new n.Cartesian3);r=n.Cartesian3.normalize(m,new n.Cartesian3)}else r=a.direction}else r=a.direction}o+=p>0?h:-h},n.ScreenSpaceEventType.WHEEL)}setMouseHabit(e){if(this.is2d)return;const t=this.viewer.scene.screenSpaceCameraController;t.enableTranslate=!0,t.enableRotate=!0,t.enableZoom=!0,t.enableTilt=!0,t.enableLook=!1,t.lookEventTypes=[],e===1?(t.rotateEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.MIDDLE_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.LEFT_DRAG]):(t.rotateEventTypes=[this.cesium.CameraEventType.LEFT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.MIDDLE_DRAG])}}class cy{cesium;viewer;constructor(e){this.cesium=e.cesium,this.viewer=e.viewer}getCameraView(){const e=this.viewer.camera;return{position:{x:e.position.x,y:e.position.y,z:e.position.z},destination:{x:e.position.x,y:e.position.y,z:e.position.z},orientation:{heading:e.heading,pitch:e.pitch,roll:e.roll},duration:1}}flyToCameraView(e){const{position:t,orientation:n,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(n.heading,n.pitch,n.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}getCurrentCameraPositionAndTarget(){const e=this.getCameraView();return{position:e.position,target:{heading:e.orientation.heading,pitch:e.orientation.pitch,roll:e.orientation.roll},duration:e.duration}}setCameraView(e){const t=e.target||e.orientation||{},n=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},destination:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,n,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,n),r={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}}function dy(i){const{container:e,appContext:t,methods:n,viewerOptions:s,options:o,callbacks:r}=i,l=new Gi,a=window.Cesium;if(!a)throw new Error("Cesium is not loaded");e.id=`cesium-container-${op()}`;const d={animation:!1,timeline:!1,infoBox:!1,homeButton:!1,fullscreenButton:!1,sceneModePicker:!1,navigationHelpButton:!1,geocoder:!1,baseLayerPicker:!1,selectionIndicator:!1,heightBasedZoom:!0,creditContainer:document.createElement("div"),contextOptions:{webgl:{alpha:!0}}},h=t?.config?.globalProperties?.$leitingBimOptions,p={...d,...h?.viewerOptions??{},...s??{}},f=new a.Viewer(e,p);f.camera.setView({destination:a.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:a.Math.toRadians(0),pitch:a.Math.toRadians(-90),roll:0}});let u=n;if(!u&&h&&(h.methods||(h.methods={}),u=h.methods),u){const m=new yp({cesium:a,viewer:f,options:o,callbacks:r}),E=new Dr({cesium:a,viewer:f}),A=new ly({cesium:a,viewer:f}),C=new Cp({cesium:a,viewer:f}),v=new cy({cesium:a,viewer:f});let S;const M=new tl({cesium:a,viewer:f});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&A.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),S=new el({cesium:a,viewer:f})),E.events.on("tilesetLoaded",g=>{m.baseCompt.attachTileset(g,m.baseCompt.selectedColor),m.baseSection.attachTileset(g,g.leiting?.model?.modelId),u&&u.tilesLoad3dTiles&&u.tilesLoad3dTiles(g),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(g.leiting)}),E.events.on("loadingStatus",g=>{u&&u.onLoadingStatus&&u.onLoadingStatus(g)}),E.events.on("mountAll3Dtiles",({modelList:g})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),u?.mountAll3Dtiles&&u.mountAll3Dtiles(g)}),E.events.on("updateModels",({modelList:g})=>{o?.updateModels&&o.updateModels(g),u?.updateModels&&u.updateModels(g)}),C.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),u?.mountAllCad&&u.mountAllCad(g)}),m.baseCompt.loadNodeDetailsForModel=g=>E.loadNodeDetailsForModel(g),m.baseCompt.selectionChange(g=>{g.length!==0&&(o?.selectionChange&&o.selectionChange(g),u?.selectionChange&&u.selectionChange(g))}),u.onSearchComponent=g=>{o?.searchComponent&&o.searchComponent(g),u?.searchComponent&&u.searchComponent(g)};const O=u.saveRegion;u.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),O&&O!==o?.saveRegion&&O(g)};const I=u.saveCadCalibration;u.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),I&&I!==o?.saveCadCalibration&&I(g)};const B=u.saveCadRegion;u.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),B&&B!==o?.saveCadRegion&&B(g)},u.getCesium=()=>a,u.getViewer=()=>f,u.getAnnotationInstance=()=>S,u.getMeasureInstance=()=>M,u.flyToCamera=g=>{v.setCameraView(g)},u.flyToLonLatHeight=(g,P,x,F=1)=>{v.flyToLonLatHeight(g,P,x,F)},u.flyTo=u.flyToCamera,u.getCameraState=()=>v.getCameraView(),u.getCameraInfo=u.getCameraState,u.restoreCameraState=g=>v.flyToCameraView(g),u.flyToCameraView=u.restoreCameraState,u.getCameraPositionTarget=()=>v.getCurrentCameraPositionAndTarget(),u.getCurrentCameraPositionAndTarget=u.getCameraPositionTarget,u.setCameraLookAt=g=>v.setCameraView(g),u.setCameraView=u.setCameraLookAt,u.setCanvasBackground=g=>A.setBackgroundColor(g),u.setBackgroundColor=u.setCanvasBackground,u.setAntiAliasing=g=>m.enableCesiumFXAA(g),u.enableCesiumFXAA=u.setAntiAliasing,u.setSceneVisibility=g=>m.setSceneOptions(g),u.setSceneOptions=u.setSceneVisibility,u.addDebugPoint=(g,P,x=0)=>{f.entities.add({position:a.Cartesian3.fromDegrees(g,P,x),point:{pixelSize:10,color:a.Color.RED}})},u.addPoint=u.addDebugPoint,u.toggleDebugLabels=()=>m.enableTestLabel(),u.enableTestLabel=u.toggleDebugLabels,u.captureScreenshot=()=>{const g=f.scene.canvas;return f.render(),g.toDataURL("image/png")},u.getImageBase64=u.captureScreenshot,u.captureDomScreenshot=(g,P)=>m.getSnapDomSImageBase64(g,P),u.getSnapDomSImageBase64=u.captureDomScreenshot,u.addModels=g=>E.addModels(g),u.add3DtilesModel=u.addModels,u.addObliquePhotography=g=>E.addOSGB(g),u.addOSGB=u.addObliquePhotography,u.adjustOSGBModelMatrix=g=>E.updateOSGBMatrix(g),u.updateOSGBMatrix=u.adjustOSGBModelMatrix,u.setModelVisibility=g=>E.showModels(g),u.showModels=u.setModelVisibility,u.showTileset=u.setModelVisibility,u.removeModels=g=>E.deleteModels(g),u.deleteModels=u.removeModels,u.clearAllModels=()=>{E.deleteAllModels(),l.emit("deleteAllModels")},u.deleteAllModelList=u.clearAllModels,u.deleteAllModels=u.clearAllModels,u.flyToModel=g=>E.flyToTileset(g),u.flyToTileset=u.flyToModel,u.flyToByModelId=u.flyToModel,u.setModelBrightness=g=>m.updateModelEffect(g),u.updateModelEffect=u.setModelBrightness,u.getAllTilesets=()=>E.getMapTileset(),u.getMapTileset=u.getAllTilesets,u.getCurrentModelId=()=>E.getBIMmodelId(),u.getBIMmodelId=u.getCurrentModelId,u.getLoadedModels=()=>E.getModelList(),u.getModelList=u.getLoadedModels,u.loadModelStructure=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelStructure: modelId is required");return}return await E.loadTreeForModel(P)},u.loadTreeForModel=u.loadModelStructure,u.loadModelDetails=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelDetails: modelId is required");return}return await E.loadNodeDetailsForModel(P)},u.loadNodeDetailsForModel=u.loadModelDetails,u.setMapTileset=g=>E.setMapTileset(g),u.setCurrentModelId=g=>E.setBIMmodelId(g),u.setBIMmodelId=u.setCurrentModelId,u.setModelList=g=>E.setModelList(g),u.highlightComponents=(g,P={})=>m.baseCompt.setSelectColorUserModelCpt(g,P),u.setSelectColorUserModelCpt=u.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(g=>E.loadNodeDetailsForModel(g)),u.highlightAllComponents=g=>m.baseCompt.setAllSelectColorUserModelCpt(g),u.setAllSelectColorUserModelCpt=u.highlightAllComponents,u.setSelectColorUserModelCptByClear=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,P??{rank:0})},u.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),u.selectComponents=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,P??{rank:0})},u.setSelecteds=u.selectComponents,u.setSelectionColor=(g,P,x,F)=>m.baseCompt.setSelectedColorRgba(g,P,x,F),u.setSelectedColor=u.setSelectionColor,u.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),u.clearAllHaveSelected=u.clearSelection,u.getSelectedComponents=g=>m.baseCompt.getSelected(g),u.getSelected=u.getSelectedComponents,u.onSelectionChange=g=>{m.baseCompt.selectionChange(g)},u.selectionChange=u.onSelectionChange,u.flyToComponents=g=>m.baseCompt.flyToObjects(g),u.flyToObjects=u.flyToComponents,u.setConstructionData=async g=>{if(g&&Array.isArray(g)){const P=new Set;g.forEach(x=>{x.mergeCpts&&Array.isArray(x.mergeCpts)&&x.mergeCpts.forEach(F=>{F.modelId&&P.add(F.modelId)})}),P.size>0&&await Promise.all(Array.from(P).map(x=>u.loadNodeDetailsForModel(x)))}m.baseCompt.setAllConstructionProgressTracking(g)},u.setAllConstructionProgressTracking=u.setConstructionData,u.startConstructionSimulation=()=>m.baseCompt.enableConstructionProgressTracking(),u.enableAllConstructionProgressTracking=u.startConstructionSimulation,u.stopConstructionSimulation=()=>m.baseCompt.disableConstructionProgressTracking(),u.disableConstructionProgressTracking=u.stopConstructionSimulation,u.disableAllConstructionProgressTracking=u.stopConstructionSimulation,u.resetConstructionSimulation=()=>m.baseCompt.freshConstructionProgressTracking(),u.freshConstructionProgressTracking=u.resetConstructionSimulation,u.restartConstructionSimulation=()=>m.baseCompt.reStartAnimation(),u.reStartAnimation=u.restartConstructionSimulation,u.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),u.pauseConstructionSimulation=()=>m.baseCompt.pauseFlyTo(),u.pauseFlyTo=u.pauseConstructionSimulation,u.pauseAnimation=u.pauseConstructionSimulation,u.resumeConstructionSimulation=()=>m.baseCompt.resumeFlyTo(),u.resumeAnimation=u.resumeConstructionSimulation,u.setComponentsVisibility=async g=>await m.baseCompt.setComponentVisibility(g),u.setElementsListVisible=u.setComponentsVisibility,u.setAllComponentsVisibility=async g=>await m.baseCompt.setAllComponentsVisibility(g),u.setAllElementsVisible=u.setAllComponentsVisibility,u.getComponentsByVisibility=g=>m.baseCompt.getComponentsByVisibility(g),u.getShowCpts=g=>m.baseCompt.getComponentsByVisibility(g),u.getElementsVisible=u.getComponentsByVisibility,u.setComponentVisibility=u.setComponentsVisibility,u.enableSectioning=(g,P)=>m.baseSection.open(g,P),u.openSection=u.enableSectioning,u.disableSectioning=g=>m.baseSection.close(g),u.closeSection=u.disableSectioning,u.updateSectionBox=g=>m.baseSection.updateRange(g),u.updateSectionRange=u.updateSectionBox,u.getSectionBox=()=>m.baseSection.getRange(),u.getSectionRange=u.getSectionBox,u.fitSectionToModel=()=>m.baseSection.fitToModels(),u.fitToModels=u.fitSectionToModel,u.setSectionBoxVisibility=g=>m.baseSection.setBoxVisibility(g),u.startFirstPersonMode=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},u.openPlayer=u.startFirstPersonMode,u.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},u.closePlayer=u.stopFirstPersonMode,u.setPlayerPosition=g=>m.basePlayer.setPersonPosition(g),u.setPersonPosition=u.setPlayerPosition,u.setWalkSpeed=g=>m.basePlayer.setSpeed({speed:g}),u.setPlayerSpeed=u.setWalkSpeed,u.setPlayerConfig=g=>m.basePlayer.setParams(g),u.setPlayerParams=u.setPlayerConfig,u.setPlayerAction=(g,P)=>m.basePlayer.setMoveState(g,P),u.setPlayerMoveState=u.setPlayerAction,u.bindPlayerControls=g=>m.basePlayer.bindUiKeys(g),u.bindPlayerUiKeys=u.bindPlayerControls,u.setGlobeVisibility=g=>A.setGlobeEnvironmentVisible(g),u.setGlobeEnvironmentVisible=u.setGlobeVisibility,u.setTerrainVisibility=g=>A.setTerrainEnable(g),u.setTerrainEnable=u.setTerrainVisibility,u.setDepthTest=g=>A.setDepthTestEnable(g),u.setDepthTestEnable=u.setDepthTest,u.setBaseMap=(g,P)=>A.changeBaseMap(g,P),u.changeBaseMap=u.setBaseMap,u.setWorldTime=g=>A.setTime(g),u.setTime=u.setWorldTime,u.setGisOptions=g=>{g.globe!==void 0&&A.setGlobeEnvironmentVisible(g.globe),g.elevation!==void 0&&A.setTerrainEnable(g.elevation),g.depthTestAgainstTerrain!==void 0&&A.setDepthTestEnable(g.depthTestAgainstTerrain),g.rendering!==void 0&&A.setAmbientOcclusion(g.rendering)},u.setShadowVisibility=g=>A.setShadowsEnable(g),u.setShadowsEnable=u.setShadowVisibility,u.setEnvironmentMapVisibility=g=>A.setEnvironmentMapEnable(g),u.setEnvironmentMapEnable=u.setEnvironmentMapVisibility,u.setAOVisibility=g=>A.setAmbientOcclusion(g),u.setAmbientOcclusion=u.setAOVisibility,u.setBackgroundColor=g=>A.setGlobeColor(g),u.setGlobeColor=u.setBackgroundColor,u.setModelBrightness=g=>A.setModelBrightness(g),u.adjustModelColor=g=>A.setModelColorAdjustment(g),u.setModelColorAdjustment=u.adjustModelColor,u.setShadowIntensity=g=>{A.setShadowDarkness?A.setShadowDarkness(g):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},u.setShadowDarkness=u.setShadowIntensity,u.switchSceneMode=async g=>{const P=g?"2d":"3d";await A.setCadMode(P),g&&!S&&(S=new el({cesium:a,viewer:f}),u.setGlobeVisibility(!0)),l.emit("setMode",P)},u.setSceneMode=u.switchSceneMode,u.set2d=g=>u.switchSceneMode(g),u.is2dMode=()=>A.is2d,u.setMouseControlMode=g=>A.setMouseHabit(g),u.setMouseHabit=u.setMouseControlMode,u.setCollisionEnabled=g=>A.setCollisionDetection(g),u.setCollisionDetection=u.setCollisionEnabled,u.searchAndLocate=(g,P)=>A.searchLocation(g,P),u.searchLocation=u.searchAndLocate,u.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),u.setConfigure=g=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",g)},u.addCadModel=g=>{const P={...g};return P.files&&!P.fileNames&&(P.fileNames=P.files),P.fileNames||(P.fileNames=[]),C.addDxfModel(P)},u.addDxfModel=u.addCadModel,u.deleteCad=g=>C.deleteCad(g),u.deleteAllCad=()=>C.deleteAllCad(),u.showCadModel=g=>C.showJson(g),u.showGeoJson=g=>C.showJson(g),u.showDxfModel=u.showCadModel,u.showCadLayer=g=>C.showJsonByLayer(g),u.showDxfLayer=u.showCadLayer,u.flyToCadModel=(g={})=>C.flyToCadModel(g),u.getCadModels=g=>C.getDxfModels(g),u.getDxfModels=u.getCadModels,u.getCadLayers=g=>C.getMapLayers(g),u.getDxfLayers=u.getCadLayers,u.getCadModelId=()=>C.getModelId(),u.setCadOpen=g=>C.setDxfOpen(g),u.setDxfOpen=u.setCadOpen,u.getCadOpen=()=>C.getDxfOpen(),u.getDxfOpen=u.getCadOpen,u.adjustCadModel=g=>C.adjustingModelByCad(g),u.adjustingModelByCad=u.adjustCadModel,u.saveAnnotations=()=>{let g=null;return S&&(g=S.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},u.loadAnnotations=g=>S?S.loadAnnotations(g):!1,u.flyToTopView=()=>{C.flyToCadModel()},u.menuEvents=l,u.addMenuItems=g=>{l.emit("insertMenu",g)},u.insertMenu=u.addMenuItems,u.filterMenuItems=g=>{l.emit("setMenuListFilter",g)},u.setMenuListFilter=u.filterMenuItems,u.setMenuVisibility=g=>{l.emit("showMenu",g)},u.showMenu=u.setMenuVisibility,u.setPanelVisibility=(g,P)=>{l.emit("setMenuActive",g,P)},u.setMenuActive=u.setPanelVisibility,u.addContextMenuItems=g=>{console.warn("addContextMenuItems is not initialized yet. Please wait for LeitingBIM component to mount.",g)},u.insertContextMenu=u.addContextMenuItems,u.removeContextMenuItems=g=>{console.warn("removeContextMenuItems is not initialized yet.",g)},u.deleteContextMenu=u.removeContextMenuItems,u.closeContextMenu=()=>{console.warn("closeContextMenu is not initialized yet.")},u.hideContextMenu=u.closeContextMenu,u.getModelTree=()=>{const g=[],P=E.getMapTileset();return Object.keys(P).forEach(x=>{const F=P[x];if(F&&F.leiting&&F.leiting.tree){const _=F.leiting.tree;Array.isArray(_)?g.push(..._):g.push(_)}}),g},u.getTree=u.getModelTree,u.getAllComponentDetails=()=>{const g=E.getMapTileset(),P={},x=[];try{Object.keys(g).forEach(F=>{const _=g[F];if(!_||!_.leiting)return;const H=_.leiting,L=H.node,w=H.model.formData,y=H.box;if(!L||!L.nodeExtras)return;const b=H.model.modelId;P[b]=L.nodeExtras;const D=L.nodeExtras.element;if(!D)return;const k=y?y.center:{x:0,y:0,z:0};Object.values(D).forEach(Q=>{if(Q.box3)try{const R=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(w.totalRotation||0)),T=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(R),new a.Cartesian3(0,0,0)),U=a.Cartesian3.fromDegrees(w.longitude,w.latitude,w.height),V=a.Transforms.eastNorthUpToFixedFrame(U);a.Matrix4.multiply(V,T,V);const W=new a.Cartesian3(k.x,k.y,0),q=new a.Cartesian3;a.Matrix4.multiplyByPoint(V,W,q);const ie=a.Cartographic.fromCartesian(q),ae=Q.box3?.Center?.x||0,ne=Q.box3?.Center?.y||0,Y=Q.box3?.Center?.z||0,j=new a.Cartesian3(-k.x+ae,-k.y+ne,0+Y),ee=a.Matrix4.fromTranslation(j),le=a.Matrix4.clone(ee);a.Matrix4.multiply(T,le,le);const oe=a.Cartesian3.fromDegrees(ie.longitude/Math.PI*180,ie.latitude/Math.PI*180,w.height),ce=a.Transforms.eastNorthUpToFixedFrame(oe);a.Matrix4.multiply(ce,le,ce);const ve=a.Cartographic.fromCartesian(new a.Cartesian3(ce[12],ce[13],ce[14]));Q.box3.cartographic={longitude:ve.longitude/Math.PI*180,latitude:ve.latitude/Math.PI*180,height:ve.height};const Te={id:Q.uniqueId,billboard:[{theme:"Tag9999",position:[Q.box3.cartographic.longitude,Q.box3.cartographic.latitude,Q.box3.cartographic.height],options:{text:Q.name}}]};x.push(Te)}catch(R){console.warn("Error calculating component position:",R)}})})}catch(F){console.error("getAllComponents error:",F)}return P},u.getAllComponents=u.getAllComponentDetails,u.getComponentInfoList=g=>{if(!Array.isArray(g))return[];const P=E.getMapTileset(),x=[],F={};g.forEach(_=>{!_.modelId||!_.elementId||(F[_.modelId]||(F[_.modelId]=[]),F[_.modelId]?.push(_.elementId))});try{Object.keys(F).forEach(_=>{const H=P[_];if(!H||!H.leiting)return;const L=H.leiting,w=L.node,y=L.model.formData,b=L.box;if(!w||!w.nodeExtras)return;const D=w.nodeExtras.element;if(!D)return;const k=b?b.center:{x:0,y:0,z:0};F[_]?.forEach(Q=>{const R=D[Q];if(R&&R.box3)try{const T=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(y.totalRotation||0)),U=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(T),new a.Cartesian3(0,0,0)),V=a.Cartesian3.fromDegrees(y.longitude,y.latitude,y.height),W=a.Transforms.eastNorthUpToFixedFrame(V);a.Matrix4.multiply(W,U,W);const q=new a.Cartesian3(k.x,k.y,0),ie=new a.Cartesian3;a.Matrix4.multiplyByPoint(W,q,ie);const ae=a.Cartographic.fromCartesian(ie),ne=R.box3?.Center?.x||0,Y=R.box3?.Center?.y||0,j=R.box3?.Center?.z||0,ee=new a.Cartesian3(-k.x+ne,-k.y+Y,0+j),le=a.Matrix4.fromTranslation(ee),oe=a.Matrix4.clone(le);a.Matrix4.multiply(U,oe,oe);const ce=a.Cartesian3.fromDegrees(ae.longitude/Math.PI*180,ae.latitude/Math.PI*180,y.height),ve=a.Transforms.eastNorthUpToFixedFrame(ce);a.Matrix4.multiply(ve,oe,ve);const Te=a.Cartographic.fromCartesian(new a.Cartesian3(ve[12],ve[13],ve[14]));R.box3.cartographic={longitude:Te.longitude/Math.PI*180,latitude:Te.latitude/Math.PI*180,height:Te.height},R.elementId=Q,R.modelId=_,x.push(R)}catch(T){console.warn("Error calculating component position:",T)}})})}catch(_){console.error("getCptInfos error:",_)}return x},u.getCptInfos=u.getComponentInfoList,u.baseCompt=m.baseCompt,window.Methods=u}return console.log("methods",u),{Cesium:a,viewer:f,methods:u,menuEvents:l}}const we=c.reactive({visible:!1,type:"info",title:"",description:"",closable:!1,showIcon:!0,duration:3});let ye=null,il=null,nl=!1,xs=null,on=null,Ss=null;function hy(){if(on||typeof document>"u")return;const i=`
50
50
  .tech-alert-wrapper {
51
51
  position: absolute;
52
52
  top: 20px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "leiting-bim",
3
3
  "private": false,
4
- "version": "2.1.112",
4
+ "version": "2.1.113",
5
5
  "type": "module",
6
6
  "main": "./leiting-bim.umd.js",
7
7
  "module": "./leiting-bim.es.js",