m4-w-fast 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/intersect.worker.js +2 -2
- package/dist/isoBands.worker.js +1 -1
- package/dist/m4-w-fast.umd.js +1 -1
- package/dist/raster-leaflet/index.cjs +2 -0
- package/dist/raster-leaflet/index.d.ts +5 -0
- package/dist/raster-leaflet/index.js +1 -0
- package/dist/raster-leaflet/index.mjs +2 -0
- package/dist/raster-leaflet/m4-w-raster-leaflet.umd.js +2 -0
- package/dist/raster-mars3d/cesiumRasterPlaneRenderer.d.ts +28 -0
- package/dist/raster-mars3d/cesiumRasterPlaneRenderer.js +1 -0
- package/dist/raster-mars3d/cesiumRasterTextureAdapter.d.ts +14 -0
- package/dist/raster-mars3d/cesiumRasterTextureAdapter.js +1 -0
- package/dist/raster-mars3d/index.cjs +2 -0
- package/dist/raster-mars3d/index.d.ts +6 -0
- package/dist/raster-mars3d/index.js +1 -0
- package/dist/raster-mars3d/index.mjs +2 -0
- package/dist/raster-mars3d/m4-w-raster-mars3d.umd.js +2 -0
- package/dist/raster-mars3d/mars3dRasterImageryProvider.d.ts +30 -0
- package/dist/raster-mars3d/mars3dRasterImageryProvider.js +1 -0
- package/dist/raster-mars3d/mars3dRasterPlaneLayer.d.ts +3 -0
- package/dist/raster-mars3d/mars3dRasterPlaneLayer.js +1 -0
- package/dist/raster-mars3d/rasterPlaneCesiumTypes.d.ts +95 -0
- package/dist/raster-mars3d/rasterPlaneCesiumTypes.js +1 -0
- package/dist/raster-mars3d/rasterPlaneGeometry.d.ts +5 -0
- package/dist/raster-mars3d/rasterPlaneGeometry.js +1 -0
- package/dist/raster-mars3d/rasterPlaneGridChunks.d.ts +4 -0
- package/dist/raster-mars3d/rasterPlaneGridChunks.js +1 -0
- package/dist/raster-mars3d/rasterPlaneMaterial.d.ts +21 -0
- package/dist/raster-mars3d/rasterPlaneMaterial.js +1 -0
- package/dist/raster-mars3d/rasterPlaneTypes.d.ts +33 -0
- package/dist/raster-mars3d/rasterPlaneTypes.js +1 -0
- package/dist/raster-mars3d/types.d.ts +30 -0
- package/dist/raster-mars3d/types.js +1 -0
- package/dist/raster-overlay/color.d.ts +1 -1
- package/dist/raster-overlay/color.js +1 -1
- package/dist/raster-overlay/core.d.ts +1 -1
- package/dist/raster-overlay/core.js +1 -1
- package/dist/raster-overlay/index.cjs +2 -2
- package/dist/raster-overlay/index.d.ts +5 -2
- package/dist/raster-overlay/index.js +1 -1
- package/dist/raster-overlay/index.mjs +2 -2
- package/dist/raster-overlay/leaflet-renderers/createRenderer.d.ts +3 -7
- package/dist/raster-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/raster-overlay/leaflet-renderers/renderer.d.ts +1 -59
- package/dist/raster-overlay/leafletLayer.d.ts +4 -0
- package/dist/raster-overlay/leafletLayer.js +1 -1
- package/dist/raster-overlay/leafletTypes.d.ts +21 -0
- package/dist/raster-overlay/leafletTypes.js +1 -0
- package/dist/raster-overlay/m4-w-raster-overlay.umd.js +2 -2
- package/dist/raster-overlay/query.d.ts +1 -1
- package/dist/raster-overlay/query.js +1 -1
- package/dist/raster-overlay/rasterTypes.d.ts +73 -0
- package/dist/raster-overlay/rasterTypes.js +1 -0
- package/dist/raster-overlay/rendering/createRasterRenderer.d.ts +4 -0
- package/dist/raster-overlay/rendering/createRasterRenderer.js +1 -0
- package/dist/raster-overlay/rendering/index.d.ts +5 -0
- package/dist/raster-overlay/rendering/index.js +1 -0
- package/dist/raster-overlay/rendering/rasterRenderState.d.ts +27 -0
- package/dist/raster-overlay/rendering/rasterRenderState.js +1 -0
- package/dist/raster-overlay/rendering/renderer.d.ts +15 -0
- package/dist/raster-overlay/rendering/renderer.js +1 -0
- package/dist/raster-overlay/rendering/webgl2RasterRenderer.d.ts +34 -0
- package/dist/raster-overlay/rendering/webgl2RasterRenderer.js +1 -0
- package/dist/raster-overlay/rendering/webgpuRasterRenderer.d.ts +42 -0
- package/dist/raster-overlay/rendering/webgpuRasterRenderer.js +1 -0
- package/dist/raster-overlay/types.d.ts +2 -235
- package/dist/raster-rendering/index.cjs +2 -0
- package/dist/raster-rendering/index.d.ts +8 -0
- package/dist/raster-rendering/index.js +1 -0
- package/dist/raster-rendering/index.mjs +2 -0
- package/dist/raster-rendering/m4-w-raster-rendering.umd.js +2 -0
- package/dist/raster-rendering/types.d.ts +13 -0
- package/dist/raster-rendering/types.js +1 -0
- package/dist/raster-rendering/webgpuRasterTileRenderer.d.ts +29 -0
- package/dist/raster-rendering/webgpuRasterTileRenderer.js +1 -0
- package/dist/readFile.d.ts +2 -2
- package/dist/readFile.js +1 -1
- package/dist/rendering/index.d.ts +6 -0
- package/dist/rendering/index.js +1 -0
- package/dist/rendering/renderer.d.ts +35 -0
- package/dist/rendering/renderer.js +1 -0
- package/dist/rendering/types.d.ts +20 -0
- package/dist/rendering/types.js +1 -0
- package/dist/rendering/webgl2/baseWebgl2Renderer.d.ts +37 -0
- package/dist/rendering/webgl2/baseWebgl2Renderer.js +1 -0
- package/dist/rendering/webgl2/index.d.ts +4 -0
- package/dist/rendering/webgl2/index.js +1 -0
- package/dist/rendering/webgl2/types.d.ts +24 -0
- package/dist/rendering/webgl2/types.js +1 -0
- package/dist/rendering/webgl2/webgl2CoverageResources.d.ts +29 -0
- package/dist/rendering/webgl2/webgl2CoverageResources.js +1 -0
- package/dist/rendering/webgl2/webgl2VisualizationResources.d.ts +33 -0
- package/dist/rendering/webgl2/webgl2VisualizationResources.js +1 -0
- package/dist/rendering/webgpu/baseWebgpuRenderer.d.ts +181 -0
- package/dist/rendering/webgpu/baseWebgpuRenderer.js +1 -0
- package/dist/rendering/webgpu/index.d.ts +3 -0
- package/dist/rendering/webgpu/index.js +1 -0
- package/dist/rendering/webgpu/types.d.ts +33 -0
- package/dist/rendering/webgpu/types.js +1 -0
- package/dist/rendering/webgpu/visualizationParams.d.ts +25 -0
- package/dist/rendering/webgpu/visualizationParams.js +1 -0
- package/dist/rendering/webgpu/visualizationResources.d.ts +50 -0
- package/dist/rendering/webgpu/visualizationResources.js +1 -0
- package/dist/rendering/webgpu/webgpuCoverageResources.d.ts +36 -0
- package/dist/rendering/webgpu/webgpuCoverageResources.js +1 -0
- package/dist/road-overlay/coordinateTransform.js +1 -1
- package/dist/road-overlay/index.cjs +2 -2
- package/dist/road-overlay/index.d.ts +3 -1
- package/dist/road-overlay/index.js +1 -1
- package/dist/road-overlay/index.mjs +2 -2
- package/dist/road-overlay/leaflet-renderers/createRenderer.d.ts +3 -7
- package/dist/road-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/road-overlay/leaflet-renderers/renderer.d.ts +1 -82
- package/dist/road-overlay/leafletLayer.d.ts +2 -0
- package/dist/road-overlay/leafletLayer.js +1 -1
- package/dist/road-overlay/m4-w-road-overlay.umd.js +2 -2
- package/dist/road-overlay/options.d.ts +5 -1
- package/dist/road-overlay/options.js +1 -1
- package/dist/road-overlay/rendering/index.d.ts +4 -0
- package/dist/road-overlay/rendering/index.js +1 -0
- package/dist/road-overlay/rendering/renderer.d.ts +54 -0
- package/dist/road-overlay/rendering/renderer.js +1 -0
- package/dist/road-overlay/rendering/roadRenderState.d.ts +137 -0
- package/dist/road-overlay/rendering/roadRenderState.js +1 -0
- package/dist/road-overlay/rendering/webgl2RoadRenderer.d.ts +38 -0
- package/dist/road-overlay/rendering/webgl2RoadRenderer.js +1 -0
- package/dist/road-overlay/rendering/webgpuRoadRenderer.d.ts +134 -0
- package/dist/road-overlay/rendering/webgpuRoadRenderer.js +1 -0
- package/dist/road-overlay/roadData.d.ts +3 -2
- package/dist/road-overlay/roadData.js +1 -1
- package/dist/road-overlay/roadGeometry.d.ts +2 -2
- package/dist/road-overlay/roadGeometry.js +1 -1
- package/dist/road-overlay/roadMesh.d.ts +7 -5
- package/dist/road-overlay/roadMesh.js +1 -1
- package/dist/road-overlay/types.d.ts +10 -2
- package/dist/shared/coordinate-shader/webgl2/index.d.ts +3 -0
- package/dist/shared/coordinate-shader/webgl2/index.js +1 -0
- package/dist/shared/coordinate-shader/webgpu/index.d.ts +5 -0
- package/dist/shared/coordinate-shader/webgpu/index.js +1 -0
- package/dist/shared/coverage/index.d.ts +1 -0
- package/dist/shared/coverage/index.js +1 -0
- package/dist/shared/coverage/types.d.ts +8 -0
- package/dist/shared/coverage/types.js +1 -0
- package/dist/shared/map/index.d.ts +2 -0
- package/dist/shared/map/index.js +1 -0
- package/dist/shared/map/leaflet.d.ts +7 -0
- package/dist/shared/map/leaflet.js +1 -0
- package/dist/shared/map/types.d.ts +19 -0
- package/dist/shared/map/types.js +1 -0
- package/dist/shared/polygon/contains.d.ts +3 -0
- package/dist/shared/polygon/contains.js +1 -0
- package/dist/shared/polygon/index.d.ts +3 -0
- package/dist/shared/polygon/index.js +1 -0
- package/dist/shared/polygon/polygonMesh.d.ts +3 -0
- package/dist/shared/polygon/polygonMesh.js +1 -0
- package/dist/shared/polygon/types.d.ts +11 -0
- package/dist/shared/polygon/types.js +1 -0
- package/dist/shared/shader/assemble.d.ts +5 -0
- package/dist/shared/shader/assemble.js +1 -0
- package/dist/shared/visualization/index.d.ts +2 -0
- package/dist/shared/visualization/index.js +1 -0
- package/dist/shared/visualization/shader/webgl2/index.d.ts +1 -0
- package/dist/shared/visualization/shader/webgl2/index.js +1 -0
- package/dist/shared/visualization/shader/webgpu/index.d.ts +10 -0
- package/dist/shared/visualization/shader/webgpu/index.js +1 -0
- package/dist/shared/visualization/types.d.ts +68 -0
- package/dist/shared/visualization/types.js +1 -0
- package/dist/shared/visualization/utils.d.ts +46 -0
- package/dist/shared/visualization/utils.js +1 -0
- package/dist/volume-mars3d/createMars3dVolumeScene.d.ts +3 -0
- package/dist/volume-mars3d/createMars3dVolumeScene.js +1 -0
- package/dist/volume-mars3d/index.cjs +1 -0
- package/dist/volume-mars3d/index.d.ts +2 -0
- package/dist/volume-mars3d/index.js +1 -0
- package/dist/volume-mars3d/index.mjs +1 -0
- package/dist/volume-mars3d/m4-w-volume-mars3d.umd.js +1 -0
- package/dist/volume-mars3d/mars3dCanvasCompensation.d.ts +22 -0
- package/dist/volume-mars3d/mars3dCanvasCompensation.js +1 -0
- package/dist/volume-mars3d/mars3dRaymarchShader.d.ts +1 -0
- package/dist/volume-mars3d/mars3dRaymarchShader.js +1 -0
- package/dist/volume-mars3d/mars3dVolumeLayer.d.ts +2 -0
- package/dist/volume-mars3d/mars3dVolumeLayer.js +1 -0
- package/dist/volume-mars3d/mars3dVolumeRenderer.d.ts +56 -0
- package/dist/volume-mars3d/mars3dVolumeRenderer.js +1 -0
- package/dist/volume-mars3d/volumeMars3dTypes.d.ts +85 -0
- package/dist/volume-mars3d/volumeMars3dTypes.js +1 -0
- package/dist/volume-mars3d-native/index.cjs +1 -0
- package/dist/volume-mars3d-native/index.d.ts +4 -0
- package/dist/volume-mars3d-native/index.js +1 -0
- package/dist/volume-mars3d-native/index.mjs +1 -0
- package/dist/volume-mars3d-native/liveUpdateScheduler.d.ts +10 -0
- package/dist/volume-mars3d-native/liveUpdateScheduler.js +1 -0
- package/dist/volume-mars3d-native/m4-w-volume-mars3d-native.umd.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceLayer.d.ts +2 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceLayer.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.d.ts +56 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.d.ts +2 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.d.ts +34 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.js +1 -0
- package/dist/volume-mars3d-native/nativeAxisSliceRenderer.d.ts +40 -0
- package/dist/volume-mars3d-native/nativeAxisSliceRenderer.js +1 -0
- package/dist/volume-mars3d-native/nativeSliceAtlas.d.ts +50 -0
- package/dist/volume-mars3d-native/nativeSliceAtlas.js +1 -0
- package/dist/volume-mars3d-native/nativeSliceRuntimeTypes.d.ts +17 -0
- package/dist/volume-mars3d-native/nativeSliceRuntimeTypes.js +1 -0
- package/dist/volume-mars3d-native/nativeTypes.d.ts +174 -0
- package/dist/volume-mars3d-native/nativeTypes.js +1 -0
- package/dist/volume-mars3d-native/nativeVoxelProvider.d.ts +6 -0
- package/dist/volume-mars3d-native/nativeVoxelProvider.js +1 -0
- package/dist/volume-mars3d-native/nativeVoxelShader.d.ts +2 -0
- package/dist/volume-mars3d-native/nativeVoxelShader.js +1 -0
- package/dist/volume-mars3d-native/voxelData.d.ts +9 -0
- package/dist/volume-mars3d-native/voxelData.js +1 -0
- package/dist/volume-scene/brickLayout.d.ts +75 -0
- package/dist/volume-scene/brickLayout.js +1 -0
- package/dist/volume-scene/brickResidency.d.ts +54 -0
- package/dist/volume-scene/brickResidency.js +1 -0
- package/dist/volume-scene/camera.d.ts +22 -0
- package/dist/volume-scene/camera.js +1 -0
- package/dist/volume-scene/cameraTypes.d.ts +37 -0
- package/dist/volume-scene/cameraTypes.js +1 -0
- package/dist/volume-scene/createVolumeScene.d.ts +4 -0
- package/dist/volume-scene/createVolumeScene.js +1 -0
- package/dist/volume-scene/geographicTypes.d.ts +16 -0
- package/dist/volume-scene/geographicTypes.js +1 -0
- package/dist/volume-scene/geographicVolume.d.ts +4 -0
- package/dist/volume-scene/geographicVolume.js +1 -0
- package/dist/volume-scene/inMemoryVolumeSource.d.ts +3 -0
- package/dist/volume-scene/inMemoryVolumeSource.js +1 -0
- package/dist/volume-scene/index.cjs +1 -0
- package/dist/volume-scene/index.d.ts +12 -0
- package/dist/volume-scene/index.js +1 -0
- package/dist/volume-scene/index.mjs +1 -0
- package/dist/volume-scene/m4-w-volume-scene.umd.js +1 -0
- package/dist/volume-scene/matrix.d.ts +11 -0
- package/dist/volume-scene/matrix.js +1 -0
- package/dist/volume-scene/profileTypes.d.ts +20 -0
- package/dist/volume-scene/profileTypes.js +1 -0
- package/dist/volume-scene/rendering/webgpu/index.d.ts +2 -0
- package/dist/volume-scene/rendering/webgpu/index.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.d.ts +59 -0
- package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.d.ts +11 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.d.ts +12 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.d.ts +21 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.d.ts +16 -0
- package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.d.ts +126 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeTypes.d.ts +108 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeTypes.js +1 -0
- package/dist/volume-scene/routeProfileMesh.d.ts +7 -0
- package/dist/volume-scene/routeProfileMesh.js +1 -0
- package/dist/volume-scene/sceneTypes.d.ts +136 -0
- package/dist/volume-scene/sceneTypes.js +1 -0
- package/dist/volume-scene/sliceInteractionController.d.ts +27 -0
- package/dist/volume-scene/sliceInteractionController.js +1 -0
- package/dist/volume-scene/sliceMarkerOverlay.d.ts +28 -0
- package/dist/volume-scene/sliceMarkerOverlay.js +1 -0
- package/dist/volume-scene/sliceState.d.ts +34 -0
- package/dist/volume-scene/sliceState.js +1 -0
- package/dist/volume-scene/sliceTypes.d.ts +52 -0
- package/dist/volume-scene/sliceTypes.js +1 -0
- package/dist/volume-scene/sourceTypes.d.ts +47 -0
- package/dist/volume-scene/sourceTypes.js +1 -0
- package/dist/volume-scene/transferTypes.d.ts +12 -0
- package/dist/volume-scene/transferTypes.js +1 -0
- package/dist/volume-scene/volumeBrickData.d.ts +3 -0
- package/dist/volume-scene/volumeBrickData.js +1 -0
- package/dist/volume-scene/volumeScene.d.ts +103 -0
- package/dist/volume-scene/volumeScene.js +1 -0
- package/dist/volume-scene/volumeTransfer.d.ts +8 -0
- package/dist/volume-scene/volumeTransfer.js +1 -0
- package/dist/volume-scene/volumeValidation.d.ts +27 -0
- package/dist/volume-scene/volumeValidation.js +1 -0
- package/package.json +6 -3
- package/dist/raster-overlay/leaflet-renderers/cpuRenderer.d.ts +0 -0
- package/dist/raster-overlay/leaflet-renderers/cpuRenderer.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/rasterRendererUtils.d.ts +0 -52
- package/dist/raster-overlay/leaflet-renderers/rasterRendererUtils.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.d.ts +0 -111
- package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/webglRenderer.d.ts +0 -0
- package/dist/raster-overlay/leaflet-renderers/webglRenderer.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -114
- package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.js +0 -1
- package/dist/road-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -55
- package/dist/road-overlay/leaflet-renderers/webgpuRenderer.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x312f(_0x214e5e,_0x3798eb){const _0x24ba24=_0x24ba();return _0x312f=function(_0x312f4a,_0x10d31a){_0x312f4a=_0x312f4a-0x160;let _0x4858db=_0x24ba24[_0x312f4a];return _0x4858db;},_0x312f(_0x214e5e,_0x3798eb);}function _0x24ba(){const _0x1557f2=['readRange','2430659YfNvcJ','beginLockedSliceDrag','Volume\x20opacity\x20stops\x20must\x20be\x20between\x20zero\x20and\x20one.\x20体积透明度色标必须位于零到一之间。','append','target','lastUsedFrame','onLimitReached','trim','absolute','handlePointerMove','setAxes','sort','minimum','direction','getSceneParamsBuffer','setShow','createProjectionCamera','volume\x20scene\x20depth','initialize','slotCount','sceneBindGroup','12673980ybirZA','pendingCompensationFrame','draw','canvas','validation','defineProperty','logicalBrickCount','createProjectionMatrix','updateLockedSlice','orbit','contextmenu','maxLockedSlices','worldAnchors','volumePipeline','finally','handleResize','12px/1.2\x20sans-serif','frameIndex','depth32float','10OCqEmB','quality','uploadedBrickCount','layer','WebGPU\x20volume\x20canvas\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20Canvas\x20尚未初始化。','\x20必须是正整数。','fovYRadians','Mars3D\x20volume\x20shader\x20marker\x20is\x20missing\x20or\x20duplicated:\x20','volume\x20scene\x20mesh\x20shader','splice','orthographic','axisDefinitions','.\x20WebGPU\x20体积设备已丢失。','Volume\x20color\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积颜色色标必须按数值升序排列。','endX','setPipeline','overlayContainer','transform','Volume\x20slice\x20ID\x20','createGpuResources','onSlicesChange','resize','subarray','volume-axes','clearPageEntry','toFixed','idle','maxBufferSize','loadedKeys','setPointerCapture','createView','geographicTransform','.\x20体积时间索引越界。','balanced','addEventListener','queue','exports','getBoundingClientRect','pendingKeys','Mars3D\x20map\x20canvas\x20must\x20have\x20a\x20parent\x20element.\x20Mars3D\x20地图\x20Canvas\x20必须存在父元素。','getFormat','display','Failed\x20to\x20create\x20a\x20WebGPU\x20canvas\x20context\x20for\x20the\x20volume\x20scene.\x20无法为体积场景创建\x20WebGPU\x20Canvas\x20上下文。','.\x20体积砖块数据长度不正确。','borderRadius','Volume\x20source\x20must\x20provide\x20readChunk().\x20体积数据源必须提供\x20readChunk()。','actualFrameIntervalMilliseconds','coreRange','createTexture','latitudeRadians','slotIndex','uniformUpdateCount','isInteracting','lastTimingFrameTimestamp','\x20must\x20be\x20a\x20positive\x20integer.\x20','\x20is\x20invalid:\x20','lastSubmittedFrameTimestamp','timeIndex','button','cartesian','createPipelineLayout','count','Volume\x20slice\x20','font','getStepLength','r32float','vertexCount','Volume\x20Z\x20axis','setProjectionType','byteLength','geographic-wgs84','.\x20WebGPU\x20体积帧读取失败。','skippedCells','\x20\x20\x20\x20var\x20interval\x20=\x20intersectClipBox(nearModel,\x20direction);','onInteractionStart','pointer','markers','brickSortCount','cameraFrameCompensation','setRouteProfiles','transferResources','volume\x20scene\x20params','renderScale','finish','30XwfhRH','\x20must\x20contain\x20position\x20and\x20RGBA\x20values\x20for\x20every\x20vertex.\x20场景网格顶点必须包含位置和\x20RGBA。','lastFrameTimeMilliseconds','.\x20创建\x20WebGPU\x20体积管线失败。','flex','cameraSignature','releasePointerCapture','displayedCompensationFrame','autoFrameIntervalTotal','volume\x20metadata\x20params','minZ','scheduleBricks','不支持的颜色格式:\x20','resetBrickRequests','rejectPendingBrickUploads','drawMeshes','\x20无效。','pointerEvents','densityScale','ceil','whiteSpace','getSceneBindGroupLayout','device','WebGPU\x20volume\x20bricks\x20require\x20halo\x201.\x20WebGPU\x20体积砖块要求\x20halo\x20为\x201。','toPrecision','getMappedRange','asin','push','createResource','WebGPU\x20scene\x20attachments\x20are\x20unavailable.\x20WebGPU\x20场景附件不可用。','axisResources','scheduleCameraMoveEnd','setProfiles','depthMode','Geographic\x20volume\x20proxy\x20bounds\x20are\x20invalid.\x20地理体积代理范围无效。','beginRenderPass','切面位置必须是有限数。','block','backend','read-only-storage','store','verticalScale\x20必须是大于\x200\x20的有限数。','values','load','volume\x20slice\x20bind\x20group\x20layout','透视相机视场角必须位于\x200\x20到\x20180\x20度之间。','shape','directionWC','bindControls','getVolumeParamsBuffer','abort','activePointer','configureModel','geometryBindGroupLayout','budgetLimited','brickScheduleDirty','syncLockedMarkers','call','applyCameraFrameCompensation','Maximum\x20locked\x20slice\x20count\x20is\x20','then','sliceResources','lifecycleState','external','renderer','volume\x20brick\x20page\x20table','perspective','gap','atlasLayout','cos','getSliceBindGroupLayout','heights','createLockedMarker','coordinateSystem','opacityBuffer','mars3d\x20volume\x20shell\x20raymarch\x20pipeline','opacityStopCount','READ','destroyResources','set','10208443XkWCsd','createCanvas','\x20values\x20but\x20received\x20','min','encodeVolumePass','yAxis','memoryTargetBytes','baseModelMatrix','setTransfer','tan','assertAlive','\x20noData\x20必须是有限数值或\x20NaN。','COPY_DST','handleWindowPointerMove','attachments','overlayTrianglePipeline','captureFrame','padding','cursor','initializationGeneration','6403764FbBYBN','WebGPU\x20slice\x20resources\x20are\x20unavailable.\x20WebGPU\x20切面资源不可用。','line-list','WebGPU\x20profile\x20resources\x20are\x20unavailable.\x20WebGPU\x20剖面资源不可用。','nextId','cachedBricks','configure','textContent','isInteger','sliceDepthMode','every','scheduleUploadPump','split','height','maxY','sqrt','popErrorScope','camera','setState','fill','subscribe','createTextNode','transferBindGroup','updatePreview','relative','\x20must\x20contain\x20sixteen\x20finite\x20values.\x20','verticalScale\x20must\x20be\x20a\x20positive\x20finite\x20value.\x20verticalScale\x20必须是大于\x200\x20的有限数。','volume\x20always\x20visible\x20pass','getSliceResources','levelStart','handlePointerLeave','xAxis','无法归一化长度为零的三维向量。','endsWith','bgra8unorm','filter','inverseModelMatrix','UNIFORM','fov','volume\x20opacity\x20stop\x20values','enqueueBrickUpload','正交相机高度和宽高比必须大于\x200。','BaseLayer','hideAllMarkers','_map','webgpu','\x20的\x20heights\x20包含非有限高度。','onError','Failed\x20to\x20acquire\x20a\x20WebGPU\x20adapter\x20for\x20the\x20volume\x20scene.\x20无法为体积场景获取\x20WebGPU\x20adapter。','signal','bind','visible','cacheBrickUpload','volume\x20scene\x20bind\x20group\x20layout','Volume\x20brick\x20','3px\x206px','_removedHook','float32x3','interactionRenderScale','slices','hitTolerance','shown','previousAxis','now','相机宽高比必须大于\x200。','map','clipMaximum','getAtlas','removeEventListener','个色标范围的\x20min\x20必须小于\x20max','pendingSliceSnapshot','requestRender','sceneParamsBuffer','upWC','beginInteraction','lockPreview','finishCameraInteraction','activeInteractions','noData','M4WVolumeMars3d','recordFrameInterval','round','renderDirty','cameraPosition','entries','Invalid\x20logical\x20volume\x20brick\x20index:\x20','findAxisHit','range','state','.\x20最大锁定切面数量为\x20','不支持的\x20rgb\x20颜色格式:\x20','bindSliceInteraction','sliceInteraction','axis','\x20position\x20must\x20be\x20normalized\x20to\x20zero\x20through\x20one.\x20体积切面位置必须归一化到零至一。','rotateSpeed','requestControllers','volumeBindGroup','getContext','has','renderFrame','framesRemaining','composite','0\x202px','594491NjhsUp','update','pointercancel','setSource','managed','slotCountZ','bytesPerRow','maxLockedSlices\x20必须是正整数。','beginComputePass','sceneSlicePipeline','start','maximumUploadBatchBytes','max','setSliceTool','match','resolve','toolMode','skippedSamples','VERTEX','\x20must\x20be\x20a\x20positive\x20integer.\x20体积分块\x20','eventDisposers','show','drawSlices','nowrap','getEffectiveQuality','不支持的\x20hex\x20颜色格式:\x20','atlas','startY','sourceGeneration','getAttachments','floor','positionMarker','\x20must\x20be\x20a\x20non-negative\x20finite\x20value.\x20','end','upload','volume\x20raymarch\x20pass','prototype','\x20端点必须是有限数值。','unmap','透视相机参数无效。','\x20必须是非负有限数值。','prepareBrickUpload','prepared','WRITE','pageTableValues','setAspect','frameRequest','colorValuesBuffer','performance','float32x4','sceneDepthView','proxyModelMatrix','step','preRender','clipMinimum','previewMarker','configureSource','name','firstChild','volume\x20scene\x20mesh\x20','createLayout','onInteractionEnd','findIndex','sliceId','colorStopCount','uploadBatchCount','revision','catch','getEffectiveRenderScale','listeners','BYTES_PER_ELEMENT','atlasTextures','maximum','destroyBuffers','sin','notify','maximumPitch','flushSliceState','hasPointerCapture','getUploadStagingBuffer','extent','WebGPU\x20is\x20required\x20for\x20the\x20volume\x20scene\x20but\x20is\x20unavailable.\x20体积场景需要\x20WebGPU,但当前环境不可用。','updateAutoQuality','_showHook','The\x20current\x20WebGPU\x20volume\x20atlas\x20requires\x20halo:\x201.\x20当前\x20WebGPU\x20体积图集要求\x20halo\x20为\x201。','setTimeIndex','\x20plate\x20color\x20must\x20use\x20values\x20from\x20zero\x20through\x20one.\x20体积切面底板颜色必须位于零至一。','createBuffer','fovy','volume\x20transfer\x20bind\x20group\x20layout','sceneLinePipeline','Volume\x20brick\x20upload\x20became\x20stale.\x20体积砖上传已过期。','createBindGroup','layout','plateColor','auto','one-minus-src-alpha','readyResolve','\x20至少需要两个高度层。','Volume\x20X\x20axis','100%','normalizationMeters','pointermove','pendingBrickUploads','.\x20体积分块数值数量与尺寸不一致。','replace','maximumPitchDegrees','preview','Volume\x20opacity\x20stop\x20values\x20must\x20be\x20finite\x20and\x20strictly\x20increasing.\x20体积透明度节点值必须有限且严格递增。','depthTexture','projection','dispatchWorkgroups','Geographic\x20volume\x20normalization\x20must\x20be\x20a\x20positive\x20finite\x20distance.\x20地理体积归一化尺度必须是正有限距离。','\x20的\x20values\x20长度与\x20path、heights\x20不匹配。','minX','endInteraction','WebGPU\x20volume\x20frame\x20capture\x20failed:\x20','requestFramesImmediately','WebGPU\x20geometry\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20几何绑定布局不可用。','Volume\x20opacity\x20must\x20be\x20within\x20[0,\x201].\x20体积透明度必须位于\x20[0,\x201]。','fragmentMain','residentBrickCount','writeVolumeParams','path','pointerup','opacityValuesBuffer','vertexMain','createShaderModule','uniform','.\x20体积逻辑砖块索引无效。','\x20必须是正有限数值。','snapshot','position','find','slicePlateColor','clearAtlasTexture','left','fovYDegrees','skippedSampleCount','abs','levelCount','message','clear','div','cachedAxes','getTransferBindGroupLayout','hitTolerancePixels','memoryHardLimitBytes','\x20requires\x20','touchAction','encodeOverlayPass','rebuildProfiles','overlaySlicePipeline','source','reject','viewportHeight','options','4px','main','handlePointerUp','WebGPU\x20volume\x20resources\x20were\x20released.\x20WebGPU\x20体积资源已释放。','clearTimeout','struct\x20SceneParams\x20{\x0a\x20\x20\x20\x20viewProjection:\x20mat4x4f,\x0a\x20\x20\x20\x20inverseViewProjection:\x20mat4x4f,\x0a\x20\x20\x20\x20modelMatrix:\x20mat4x4f,\x0a\x20\x20\x20\x20inverseModelMatrix:\x20mat4x4f,\x0a\x20\x20\x20\x20cameraPosition:\x20vec4f,\x0a\x20\x20\x20\x20viewport:\x20vec4f,\x0a\x20\x20\x20\x20clipMinimum:\x20vec4f,\x0a\x20\x20\x20\x20clipMaximum:\x20vec4f,\x0a\x20\x20\x20\x20render:\x20vec4f,\x0a\x20\x20\x20\x20transfer:\x20vec4f,\x0a\x20\x20\x20\x20geographic0:\x20vec4f,\x0a\x20\x20\x20\x20geographic1:\x20vec4f,\x0a\x20\x20\x20\x20geographic2:\x20vec4f,\x0a}\x0a\x0astruct\x20VertexOutput\x20{\x0a\x20\x20\x20\x20@builtin(position)\x20position:\x20vec4f,\x0a\x20\x20\x20\x20@location(0)\x20color:\x20vec4f,\x0a}\x0a\x0a@group(0)\x20@binding(0)\x20var<uniform>\x20scene:\x20SceneParams;\x0a\x0afn\x20transformScenePosition(position:\x20vec3f)\x20->\x20vec4f\x20{\x0a\x20\x20\x20\x20if\x20(scene.geographic0.x\x20<\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20scene.viewProjection\x20*\x20scene.modelMatrix\x20*\x20vec4f(position,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20longitude\x20=\x20mix(scene.geographic1.z,\x20scene.geographic1.w,\x20position.x);\x0a\x20\x20\x20\x20let\x20latitude\x20=\x20mix(scene.geographic2.x,\x20scene.geographic2.y,\x20position.z);\x0a\x20\x20\x20\x20let\x20height\x20=\x20mix(scene.geographic2.z,\x20scene.geographic2.w,\x20position.y);\x0a\x20\x20\x20\x20let\x20latitudeSin\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20let\x20latitudeCos\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20let\x20semiMajor\x20=\x20scene.geographic1.x;\x0a\x20\x20\x20\x20let\x20semiMinor\x20=\x20scene.geographic1.y;\x0a\x20\x20\x20\x20let\x20eccentricitySquared\x20=\x201.0\x20-\x20semiMinor\x20*\x20semiMinor\x20/\x20(semiMajor\x20*\x20semiMajor);\x0a\x20\x20\x20\x20let\x20primeVerticalRadius\x20=\x20semiMajor\x20/\x20sqrt(1.0\x20-\x20eccentricitySquared\x20*\x20latitudeSin\x20*\x20latitudeSin);\x0a\x20\x20\x20\x20let\x20ecef\x20=\x20vec3f(\x0a\x20\x20\x20\x20\x20\x20\x20\x20(primeVerticalRadius\x20+\x20height)\x20*\x20latitudeCos\x20*\x20cos(longitude),\x0a\x20\x20\x20\x20\x20\x20\x20\x20(primeVerticalRadius\x20+\x20height)\x20*\x20latitudeCos\x20*\x20sin(longitude),\x0a\x20\x20\x20\x20\x20\x20\x20\x20(primeVerticalRadius\x20*\x20(1.0\x20-\x20eccentricitySquared)\x20+\x20height)\x20*\x20latitudeSin\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20return\x20scene.viewProjection\x20*\x20vec4f(ecef\x20-\x20scene.geographic0.yzw,\x201.0);\x0a}\x0a\x0a@vertex\x0afn\x20vertexMain(@location(0)\x20position:\x20vec3f,\x20@location(1)\x20color:\x20vec4f)\x20->\x20VertexOutput\x20{\x0a\x20\x20\x20\x20return\x20VertexOutput(transformScenePosition(position),\x20color);\x0a}\x0a\x0a@fragment\x0afn\x20fragmentMain(input:\x20VertexOutput)\x20->\x20@location(0)\x20vec4f\x20{\x0a\x20\x20\x20\x20return\x20vec4f(input.color.rgb\x20*\x20input.color.a,\x20input.color.a);\x0a}\x0a','WebGPU\x20volume\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积绑定布局不可用。','premultiplied','sceneBindGroupLayout','WebGPU\x20volume\x20scene\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积场景尺寸必须是正整数。','some','axisHysteresisPixels','createPipelines','stopPropagation','container','keys','matrix(','createCameraSignature','cameraEndTimer','preventDefault','get','WebGPU\x20scene\x20depth\x20attachment\x20is\x20not\x20initialized.\x20WebGPU\x20场景深度附件尚未初始化。','个色标范围不能是NaN','isNaN','getCanvas','render','createCurrentCompensationFrame','topology','createMars3dVolumeLayer','buffer','stepLength','colorStops','pushErrorScope','dolly','AbortError','requestBrickSchedule','volume\x20atlas\x20bind\x20group','autoFrameCount','getCurrentTexture','pointerType','mode','pageTableBuffer','WebGPU\x20volume\x20context\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20context\x20尚未初始化。','volume\x20brick\x20atlas\x20','requireScene','top','lockedSlices','hypot','colorStops\x20不能为空','residentByLogicalIndex','setBindGroup','\x20只有一个采样点时端点必须相等。','statistics','setFrameAvailableCallback','Volume','recreateSceneBindGroup','volume\x20slice\x20','watchDeviceLost','volume\x20scene\x20bind\x20group','volumeBindGroupLayout','distance','unsubscribe','positionCartographic','wheel','\x0afn\x20intersectEllipsoid(origin:\x20vec3f,\x20direction:\x20vec3f,\x20semiMajor:\x20f32,\x20semiMinor:\x20f32)\x20->\x20vec2f\x20{\x0a\x20\x20\x20\x20let\x20inverseRadiiSquared\x20=\x20vec3f(\x0a\x20\x20\x20\x20\x20\x20\x20\x201.0\x20/\x20(semiMajor\x20*\x20semiMajor),\x0a\x20\x20\x20\x20\x20\x20\x20\x201.0\x20/\x20(semiMajor\x20*\x20semiMajor),\x0a\x20\x20\x20\x20\x20\x20\x20\x201.0\x20/\x20(semiMinor\x20*\x20semiMinor)\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20let\x20coefficientA\x20=\x20dot(direction\x20*\x20direction,\x20inverseRadiiSquared);\x0a\x20\x20\x20\x20let\x20coefficientB\x20=\x202.0\x20*\x20dot(origin\x20*\x20direction,\x20inverseRadiiSquared);\x0a\x20\x20\x20\x20let\x20coefficientC\x20=\x20dot(origin\x20*\x20origin,\x20inverseRadiiSquared)\x20-\x201.0;\x0a\x20\x20\x20\x20let\x20discriminant\x20=\x20coefficientB\x20*\x20coefficientB\x20-\x204.0\x20*\x20coefficientA\x20*\x20coefficientC;\x0a\x0a\x20\x20\x20\x20if\x20(discriminant\x20<\x200.0\x20||\x20coefficientA\x20<=\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2f(1.0,\x20-1.0);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20root\x20=\x20sqrt(discriminant);\x0a\x20\x20\x20\x20let\x20inverseDenominator\x20=\x200.5\x20/\x20coefficientA;\x0a\x20\x20\x20\x20let\x20first\x20=\x20(-coefficientB\x20-\x20root)\x20*\x20inverseDenominator;\x0a\x20\x20\x20\x20let\x20second\x20=\x20(-coefficientB\x20+\x20root)\x20*\x20inverseDenominator;\x0a\x20\x20\x20\x20return\x20vec2f(min(first,\x20second),\x20max(first,\x20second));\x0a}\x0a\x0afn\x20intersectGeographicShell(origin:\x20vec3f,\x20direction:\x20vec3f)\x20->\x20RayInterval\x20{\x0a\x20\x20\x20\x20let\x20worldOrigin\x20=\x20transformPoint(scene.modelMatrix,\x20origin)\x20+\x20scene.geographic0.yzw;\x0a\x20\x20\x20\x20let\x20worldDirection\x20=\x20transformPoint(scene.modelMatrix,\x20origin\x20+\x20direction)\x20-\x20transformPoint(scene.modelMatrix,\x20origin);\x0a\x20\x20\x20\x20let\x20minimumHeight\x20=\x20min(scene.geographic2.z,\x20scene.geographic2.w);\x0a\x20\x20\x20\x20let\x20maximumHeight\x20=\x20max(scene.geographic2.z,\x20scene.geographic2.w);\x0a\x20\x20\x20\x20let\x20outer\x20=\x20intersectEllipsoid(worldOrigin,\x20worldDirection,\x20scene.geographic1.x\x20+\x20maximumHeight,\x20scene.geographic1.y\x20+\x20maximumHeight);\x0a\x0a\x20\x20\x20\x20if\x20(outer.y\x20<\x20max(0.0,\x20outer.x))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20RayInterval(1.0,\x20-1.0,\x20false);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20var\x20minimumDistance\x20=\x20max(0.0,\x20outer.x);\x0a\x20\x20\x20\x20var\x20maximumDistance\x20=\x20outer.y;\x0a\x20\x20\x20\x20let\x20inner\x20=\x20intersectEllipsoid(worldOrigin,\x20worldDirection,\x20scene.geographic1.x\x20+\x20minimumHeight,\x20scene.geographic1.y\x20+\x20minimumHeight);\x0a\x0a\x20\x20\x20\x20if\x20(inner.y\x20>=\x20max(0.0,\x20inner.x))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(inner.x\x20>\x20minimumDistance)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20maximumDistance\x20=\x20min(maximumDistance,\x20inner.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20if\x20(inner.y\x20>\x20minimumDistance)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20minimumDistance\x20=\x20max(minimumDistance,\x20inner.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20RayInterval(minimumDistance,\x20maximumDistance,\x20maximumDistance\x20>=\x20minimumDistance);\x0a}\x0a\x0afn\x20getPageIndex','clipBox','xStart','volume\x20opacity\x20stop\x20alphas','viewProjectionMatrix','flushBrickSchedule','volume\x20atlas\x20clear\x20pass','rowsPerImage','bindSliceState','kind','high-performance','anchorDistance','volume\x20brick\x20upload\x20batch\x20flush','transferBindGroupLayout','A\x20destroyed\x20WebGPU\x20volume\x20renderer\x20cannot\x20be\x20initialized\x20again.\x20已销毁的\x20WebGPU\x20体积渲染器不能再次初始化。','element','createElement','uploadStagingBuffer','viewportWidth','正交相机高度必须大于\x200。','Volume\x20chunk\x20requires\x20','far','volume\x20atlas\x20clear\x20bind\x20group','cameraState','bindFrameAvailableCallback','cachedProfiles','getDevice','axisHysteresis','processBrickUploads','brickWidth','uploadStagingBufferSize','ready','interactionStepScale','writeParams','atlasViews','WebGPU\x20volume\x20format\x20is\x20not\x20initialized.\x20WebGPU\x20体积格式尚未初始化。','capacity','includes','syncPreview','5LdpWhI','pointerdown','The\x20maximum\x20locked\x20slice\x20count\x20has\x20been\x20reached.\x20已达到最大锁定切面数量。','mapAsync','Volume\x20color\x20and\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积颜色和透明度色标不能为空。','heightScaled','WebGPU\x20volume\x20device\x20was\x20lost:\x20','volume\x20frame\x20capture','requestFrames','centerEcefScaled','next','metadata','renderMode','less','indices','desiredKeys','createSliceState','sceneTrianglePipeline','zAxis','volumeOptions','sliceState','static','destroyed','xCount','configureSourceResources','brickScheduleCount','clearLockedSlices','createRenderPipeline','modelMatrix','halo','atlasIndex','colorMode','frameAvailableCallback','2179740MafLdA','删除切面','cachedSlices','onSliceError','length','\x20必须包含十六个有限数值。','路线剖面\x20','Latitude\x20/\x20纬度','valuesEqual','hitRadius','color','brickHeight','lockSlice','currentPreview','translate(-50%,\x20-100%)','\x20的\x20path\x20必须包含至少两个\x20[x,\x20z]\x20点。','FRAGMENT','volume\x20scene\x20geometry\x20pass','context','forEach','maxZ','submit','markerOverlay','interactionController','480687YkNBVF','logicalIndex','format','exp','style','previousContainerPosition','vertices','unconfigure','minimumDistance','chunk','相机裁剪距离必须满足\x200\x20<=\x20near\x20<\x20far。','bindGroup','\x20with\x20multiple\x20samples\x20must\x20have\x20a\x20non-zero\x20step.\x20','longitudeRadians','all','panSpeed','clientHeight','volume\x20geometry\x20bind\x20group','writePageEntry','mars3d\x20volume\x20shell\x20raymarch\x20shader','atlasCapacity','uploadGeneration','autoQuality','WebGPU\x20volume\x20atlas\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积图集资源不完整。','deltaY','frameInFlight','valueScale','opacity','moved','depthView','scene','startX','countX','parseInt','resources','inverseViewProjection','getAtlasTexture','border','value','encodeScenePass','error','createValues','one','key','getAxisResources','semiMajorAxisScaled','resourceRebuildCount','矩阵不可逆。','RENDER_ATTACHMENT','readyReject','timeCount','frustum','join','pointerleave','getProfileResources','from','verticalScale','limits','\x20must\x20be\x20a\x20positive\x20finite\x20value.\x20','Returned\x20volume\x20chunk\x20timeIndex\x20does\x20not\x20match\x20the\x20request.\x20返回体积分块的时间索引与请求不一致。','\x20\x20\x20\x20var\x20interval\x20=\x20intersectClipBox(nearModel,\x20direction);\x0a\x0a\x20\x20\x20\x20if\x20(scene.geographic0.x\x20>\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20shellInterval\x20=\x20intersectGeographicShell(nearModel,\x20direction);\x0a\x20\x20\x20\x20\x20\x20\x20\x20interval.minimum\x20=\x20max(interval.minimum,\x20shellInterval.minimum);\x0a\x20\x20\x20\x20\x20\x20\x20\x20interval.maximum\x20=\x20min(interval.maximum,\x20shellInterval.maximum);\x0a\x20\x20\x20\x20\x20\x20\x20\x20interval.valid\x20=\x20interval.valid\x20&&\x20shellInterval.valid\x20&&\x20interval.maximum\x20>=\x20interval.minimum;\x0a\x20\x20\x20\x20}','setCamera','zoomSpeed','byteOffset','type','isFinite','slice','STORAGE_BINDING','handlePointerDown','readyPromise','lost','WebGPU\x20volume\x20atlas\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积图集布局不可用。','add','Returned\x20volume\x20chunk\x20dimensions\x20do\x20not\x20match\x20its\x20range.\x20返回体积分块尺寸与范围不一致。','handlePreRender','toUpperCase','onSubmittedWorkDone','cacheOnSuccess','initializing','Volume\x20brick\x20coordinate\x20is\x20out\x20of\x20range.\x20体积分块坐标越界。','encodePreparedBrickUpload','Returned\x20volume\x20chunk\x20range\x20does\x20not\x20match\x20the\x20request.\x20返回体积分块范围与请求不一致。','size','acquireSlot','getPageTableBuffer','setSlices','volumeDimFactor','formatPosition','createBindGroupLayout','STORAGE','Module','loadBrick','centerEcef','WebGPU\x20volume\x20atlas\x20has\x20no\x20evictable\x20slot.\x20WebGPU\x20体积图集没有可驱逐的槽位。','MAP_WRITE','occupied','volumeParamsBuffer','always-visible','getBindGroupLayout','adapter','volumeCamera','viewProjection','TEXTURE_BINDING','profileResources','object','touchBricks','\x20axis\x20must\x20contain\x20two\x20different\x20finite\x20endpoints.\x20','struct\x20SceneParams\x20{\x0a\x20\x20\x20\x20viewProjection:\x20mat4x4f,\x0a\x20\x20\x20\x20inverseViewProjection:\x20mat4x4f,\x0a\x20\x20\x20\x20modelMatrix:\x20mat4x4f,\x0a\x20\x20\x20\x20inverseModelMatrix:\x20mat4x4f,\x0a\x20\x20\x20\x20cameraPosition:\x20vec4f,\x0a\x20\x20\x20\x20viewport:\x20vec4f,\x0a\x20\x20\x20\x20clipMinimum:\x20vec4f,\x0a\x20\x20\x20\x20clipMaximum:\x20vec4f,\x0a\x20\x20\x20\x20render:\x20vec4f,\x0a\x20\x20\x20\x20transfer:\x20vec4f,\x0a\x20\x20\x20\x20geographic0:\x20vec4f,\x0a\x20\x20\x20\x20geographic1:\x20vec4f,\x0a\x20\x20\x20\x20geographic2:\x20vec4f,\x0a}\x0a\x0astruct\x20VolumeParams\x20{\x0a\x20\x20\x20\x20dimensions:\x20vec4u,\x0a\x20\x20\x20\x20brickInterior:\x20vec4u,\x0a\x20\x20\x20\x20brickCount:\x20vec4u,\x0a\x20\x20\x20\x20atlasSlots:\x20vec4u,\x0a\x20\x20\x20\x20atlasDimensions:\x20vec4u,\x0a\x20\x20\x20\x20valueMeta:\x20vec4f,\x0a}\x0a\x0astruct\x20PageTable\x20{\x0a\x20\x20\x20\x20values:\x20array<vec4u>,\x0a}\x0a\x0astruct\x20FloatValues\x20{\x0a\x20\x20\x20\x20values:\x20array<f32>,\x0a}\x0a\x0astruct\x20Colors\x20{\x0a\x20\x20\x20\x20values:\x20array<vec4f>,\x0a}\x0a\x0astruct\x20VolumeSample\x20{\x0a\x20\x20\x20\x20value:\x20f32,\x0a\x20\x20\x20\x20valid:\x20bool,\x0a}\x0a\x0astruct\x20RayInterval\x20{\x0a\x20\x20\x20\x20minimum:\x20f32,\x0a\x20\x20\x20\x20maximum:\x20f32,\x0a\x20\x20\x20\x20valid:\x20bool,\x0a}\x0a\x0a@group(0)\x20@binding(0)\x20var<uniform>\x20scene:\x20SceneParams;\x0a@group(0)\x20@binding(1)\x20var\x20sceneDepth:\x20texture_depth_2d;\x0a@group(1)\x20@binding(0)\x20var\x20volumeAtlas0:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(1)\x20var\x20volumeAtlas1:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(2)\x20var\x20volumeAtlas2:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(3)\x20var\x20volumeAtlas3:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(4)\x20var\x20volumeAtlas4:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(5)\x20var\x20volumeAtlas5:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(6)\x20var\x20volumeAtlas6:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(7)\x20var\x20volumeAtlas7:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(8)\x20var<storage,\x20read>\x20pageTable:\x20PageTable;\x0a@group(1)\x20@binding(9)\x20var<uniform>\x20volume:\x20VolumeParams;\x0a@group(2)\x20@binding(0)\x20var<storage,\x20read>\x20colorStopValues:\x20FloatValues;\x0a@group(2)\x20@binding(1)\x20var<storage,\x20read>\x20colorStopColors:\x20Colors;\x0a@group(2)\x20@binding(2)\x20var<storage,\x20read>\x20opacityStopValues:\x20FloatValues;\x0a@group(2)\x20@binding(3)\x20var<storage,\x20read>\x20opacityStopAlphas:\x20FloatValues;\x0a\x0afn\x20invalidVolumeSample()\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20return\x20VolumeSample(0.0,\x20false);\x0a}\x0a\x0afn\x20validVolumeSample(value:\x20f32)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20return\x20VolumeSample(value,\x20true);\x0a}\x0a\x0afn\x20transformPoint(matrix:\x20mat4x4f,\x20point:\x20vec3f)\x20->\x20vec3f\x20{\x0a\x20\x20\x20\x20let\x20transformed\x20=\x20matrix\x20*\x20vec4f(point,\x201.0);\x0a\x20\x20\x20\x20return\x20transformed.xyz\x20/\x20transformed.w;\x0a}\x0a\x0afn\x20reconstructWorldPosition(ndc:\x20vec3f)\x20->\x20vec3f\x20{\x0a\x20\x20\x20\x20return\x20transformPoint(scene.inverseViewProjection,\x20ndc);\x0a}\x0a\x0a//\x20地理模式将局部\x20ECEF\x20采样点反算为经纬高归一化坐标;代理盒仅限制射线范围,不决定体积形状。\x0a//\x20Geographic\x20mode\x20converts\x20each\x20local\x20ECEF\x20sample\x20back\x20to\x20normalized\x20longitude,\x20latitude,\x20and\x20altitude;\x20the\x20proxy\x20box\x20only\x20limits\x20the\x20ray\x20interval\x20and\x20does\x20not\x20define\x20the\x20volume\x20shape.\x0afn\x20worldToVolume(worldPosition:\x20vec3f)\x20->\x20vec3f\x20{\x0a\x20\x20\x20\x20if\x20(scene.geographic0.x\x20<\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20transformPoint(scene.inverseModelMatrix,\x20worldPosition);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20ecef\x20=\x20worldPosition\x20+\x20scene.geographic0.yzw;\x0a\x20\x20\x20\x20let\x20semiMajor\x20=\x20scene.geographic1.x;\x0a\x20\x20\x20\x20let\x20semiMinor\x20=\x20scene.geographic1.y;\x0a\x20\x20\x20\x20let\x20eccentricitySquared\x20=\x201.0\x20-\x20semiMinor\x20*\x20semiMinor\x20/\x20(semiMajor\x20*\x20semiMajor);\x0a\x20\x20\x20\x20let\x20secondEccentricitySquared\x20=\x20(semiMajor\x20*\x20semiMajor\x20-\x20semiMinor\x20*\x20semiMinor)\x20/\x20(semiMinor\x20*\x20semiMinor);\x0a\x20\x20\x20\x20let\x20horizontal\x20=\x20length(ecef.xy);\x0a\x20\x20\x20\x20let\x20theta\x20=\x20atan2(ecef.z\x20*\x20semiMajor,\x20horizontal\x20*\x20semiMinor);\x0a\x20\x20\x20\x20let\x20thetaSin\x20=\x20sin(theta);\x0a\x20\x20\x20\x20let\x20thetaCos\x20=\x20cos(theta);\x0a\x20\x20\x20\x20let\x20latitude\x20=\x20atan2(\x0a\x20\x20\x20\x20\x20\x20\x20\x20ecef.z\x20+\x20secondEccentricitySquared\x20*\x20semiMinor\x20*\x20thetaSin\x20*\x20thetaSin\x20*\x20thetaSin,\x0a\x20\x20\x20\x20\x20\x20\x20\x20horizontal\x20-\x20eccentricitySquared\x20*\x20semiMajor\x20*\x20thetaCos\x20*\x20thetaCos\x20*\x20thetaCos\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20let\x20latitudeSin\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20let\x20primeVerticalRadius\x20=\x20semiMajor\x20/\x20sqrt(1.0\x20-\x20eccentricitySquared\x20*\x20latitudeSin\x20*\x20latitudeSin);\x0a\x20\x20\x20\x20let\x20height\x20=\x20horizontal\x20/\x20max(0.000001,\x20abs(cos(latitude)))\x20-\x20primeVerticalRadius;\x0a\x20\x20\x20\x20let\x20longitude\x20=\x20atan2(ecef.y,\x20ecef.x);\x0a\x20\x20\x20\x20return\x20vec3f(\x0a\x20\x20\x20\x20\x20\x20\x20\x20(longitude\x20-\x20scene.geographic1.z)\x20/\x20(scene.geographic1.w\x20-\x20scene.geographic1.z),\x0a\x20\x20\x20\x20\x20\x20\x20\x20(height\x20-\x20scene.geographic2.z)\x20/\x20(scene.geographic2.w\x20-\x20scene.geographic2.z),\x0a\x20\x20\x20\x20\x20\x20\x20\x20(latitude\x20-\x20scene.geographic2.x)\x20/\x20(scene.geographic2.y\x20-\x20scene.geographic2.x)\x0a\x20\x20\x20\x20);\x0a}\x0a\x0afn\x20proxyToVolume(proxyPosition:\x20vec3f)\x20->\x20vec3f\x20{\x0a\x20\x20\x20\x20if\x20(scene.geographic0.x\x20<\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20proxyPosition;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20worldToVolume(transformPoint(scene.modelMatrix,\x20proxyPosition));\x0a}\x0a\x0afn\x20isInsideVolume(position:\x20vec3f)\x20->\x20bool\x20{\x0a\x20\x20\x20\x20return\x20all(position\x20>=\x20scene.clipMinimum.xyz)\x20&&\x20all(position\x20<=\x20scene.clipMaximum.xyz);\x0a}\x0a\x0afn\x20intersectAxis(origin:\x20f32,\x20direction:\x20f32,\x20minimumValue:\x20f32,\x20maximumValue:\x20f32)\x20->\x20vec2f\x20{\x0a\x20\x20\x20\x20if\x20(abs(direction)\x20<\x200.000001)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(origin\x20<\x20minimumValue\x20||\x20origin\x20>\x20maximumValue)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2f(1.0,\x20-1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2f(-1e20,\x201e20);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20first\x20=\x20(minimumValue\x20-\x20origin)\x20/\x20direction;\x0a\x20\x20\x20\x20let\x20second\x20=\x20(maximumValue\x20-\x20origin)\x20/\x20direction;\x0a\x20\x20\x20\x20return\x20vec2f(min(first,\x20second),\x20max(first,\x20second));\x0a}\x0a\x0afn\x20intersectClipBox(origin:\x20vec3f,\x20direction:\x20vec3f)\x20->\x20RayInterval\x20{\x0a\x20\x20\x20\x20let\x20x\x20=\x20intersectAxis(origin.x,\x20direction.x,\x20scene.clipMinimum.x,\x20scene.clipMaximum.x);\x0a\x20\x20\x20\x20let\x20y\x20=\x20intersectAxis(origin.y,\x20direction.y,\x20scene.clipMinimum.y,\x20scene.clipMaximum.y);\x0a\x20\x20\x20\x20let\x20z\x20=\x20intersectAxis(origin.z,\x20direction.z,\x20scene.clipMinimum.z,\x20scene.clipMaximum.z);\x0a\x20\x20\x20\x20let\x20minimumDistance\x20=\x20max(max(x.x,\x20y.x),\x20z.x);\x0a\x20\x20\x20\x20let\x20maximumDistance\x20=\x20min(min(x.y,\x20y.y),\x20z.y);\x0a\x20\x20\x20\x20return\x20RayInterval(max(0.0,\x20minimumDistance),\x20maximumDistance,\x20maximumDistance\x20>=\x20max(0.0,\x20minimumDistance));\x0a}\x0a\x0afn\x20getPageIndex(brick:\x20vec3u)\x20->\x20u32\x20{\x0a\x20\x20\x20\x20return\x20brick.x\x20+\x20brick.y\x20*\x20volume.brickCount.x\x20+\x20brick.z\x20*\x20volume.brickCount.x\x20*\x20volume.brickCount.y;\x0a}\x0a\x0afn\x20getSlotCoordinate(slotIndex:\x20u32)\x20->\x20vec3u\x20{\x0a\x20\x20\x20\x20let\x20layerSize\x20=\x20volume.atlasSlots.x\x20*\x20volume.atlasSlots.y;\x0a\x20\x20\x20\x20let\x20z\x20=\x20slotIndex\x20/\x20layerSize;\x0a\x20\x20\x20\x20let\x20remainder\x20=\x20slotIndex\x20-\x20z\x20*\x20layerSize;\x0a\x20\x20\x20\x20let\x20y\x20=\x20remainder\x20/\x20volume.atlasSlots.x;\x0a\x20\x20\x20\x20let\x20x\x20=\x20remainder\x20-\x20y\x20*\x20volume.atlasSlots.x;\x0a\x20\x20\x20\x20return\x20vec3u(x,\x20y,\x20z);\x0a}\x0a\x0afn\x20loadAtlasValue(atlasIndex:\x20u32,\x20coordinate:\x20vec3i)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x200u)\x20{\x20return\x20textureLoad(volumeAtlas0,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x201u)\x20{\x20return\x20textureLoad(volumeAtlas1,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x202u)\x20{\x20return\x20textureLoad(volumeAtlas2,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x203u)\x20{\x20return\x20textureLoad(volumeAtlas3,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x204u)\x20{\x20return\x20textureLoad(volumeAtlas4,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x205u)\x20{\x20return\x20textureLoad(volumeAtlas5,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x206u)\x20{\x20return\x20textureLoad(volumeAtlas6,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20return\x20textureLoad(volumeAtlas7,\x20coordinate,\x200).r;\x0a}\x0a\x0afn\x20loadAtlasVoxel(voxel:\x20vec3i,\x20owningBrick:\x20vec3u)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20let\x20page\x20=\x20pageTable.values[getPageIndex(owningBrick)];\x0a\x0a\x20\x20\x20\x20if\x20(page.x\x20==\x200u\x20||\x20page.z\x20==\x200u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20invalidVolumeSample();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20slot\x20=\x20getSlotCoordinate(page.x\x20-\x201u);\x0a\x20\x20\x20\x20let\x20physicalBrick\x20=\x20volume.brickInterior.xyz\x20+\x20vec3u(2u);\x0a\x20\x20\x20\x20let\x20brickStart\x20=\x20vec3i(owningBrick\x20*\x20volume.brickInterior.xyz);\x0a\x20\x20\x20\x20let\x20local\x20=\x20voxel\x20-\x20brickStart\x20+\x20vec3i(1);\x0a\x20\x20\x20\x20let\x20atlasCoordinate\x20=\x20vec3i(slot\x20*\x20physicalBrick)\x20+\x20local;\x0a\x20\x20\x20\x20let\x20value\x20=\x20loadAtlasValue(page.w,\x20atlasCoordinate);\x0a\x0a\x20\x20\x20\x20if\x20(value\x20!=\x20value\x20||\x20(volume.valueMeta.y\x20>\x200.5\x20&&\x20value\x20==\x20volume.valueMeta.x))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20invalidVolumeSample();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20validVolumeSample(value);\x0a}\x0a\x0afn\x20sampleVolume(modelPosition:\x20vec3f)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20let\x20normalized\x20=\x20clamp(modelPosition,\x20vec3f(0.0),\x20vec3f(1.0));\x0a\x20\x20\x20\x20let\x20voxel\x20=\x20normalized\x20*\x20vec3f(volume.dimensions.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20baseVoxel\x20=\x20vec3i(floor(voxel));\x0a\x20\x20\x20\x20let\x20maximumVoxel\x20=\x20vec3i(volume.dimensions.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20nextVoxel\x20=\x20min(baseVoxel\x20+\x20vec3i(1),\x20maximumVoxel);\x0a\x20\x20\x20\x20let\x20fraction\x20=\x20voxel\x20-\x20vec3f(baseVoxel);\x0a\x20\x20\x20\x20let\x20owningBrick\x20=\x20min(vec3u(max(baseVoxel,\x20vec3i(0)))\x20/\x20volume.brickInterior.xyz,\x20volume.brickCount.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20c000\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20baseVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c100\x20=\x20loadAtlasVoxel(vec3i(nextVoxel.x,\x20baseVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c010\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20nextVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c110\x20=\x20loadAtlasVoxel(vec3i(nextVoxel.x,\x20nextVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c001\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20baseVoxel.y,\x20nextVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c101\x20=\x20loadAtlasVoxel(vec3i(nextVoxel.x,\x20baseVoxel.y,\x20nextVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c011\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20nextVoxel.y,\x20nextVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c111\x20=\x20loadAtlasVoxel(nextVoxel,\x20owningBrick);\x0a\x0a\x20\x20\x20\x20if\x20(!c000.valid\x20||\x20!c100.valid\x20||\x20!c010.valid\x20||\x20!c110.valid\x20||\x20!c001.valid\x20||\x20!c101.valid\x20||\x20!c011.valid\x20||\x20!c111.valid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20invalidVolumeSample();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20bottom0\x20=\x20mix(c000.value,\x20c100.value,\x20fraction.x);\x0a\x20\x20\x20\x20let\x20bottom1\x20=\x20mix(c010.value,\x20c110.value,\x20fraction.x);\x0a\x20\x20\x20\x20let\x20top0\x20=\x20mix(c001.value,\x20c101.value,\x20fraction.x);\x0a\x20\x20\x20\x20let\x20top1\x20=\x20mix(c011.value,\x20c111.value,\x20fraction.x);\x0a\x20\x20\x20\x20return\x20validVolumeSample(mix(mix(bottom0,\x20bottom1,\x20fraction.y),\x20mix(top0,\x20top1,\x20fraction.y),\x20fraction.z));\x0a}\x0a\x0a//\x20体积分步只读取当前最近体素,避免对最终透明的样本执行八次纹理读取;高精度切面仍使用独立的三线性采样。\x0a//\x20Raymarch\x20steps\x20read\x20the\x20nearest\x20voxel\x20so\x20transparent\x20samples\x20avoid\x20eight\x20texture\x20loads;\x20high-detail\x20slices\x20keep\x20their\x20separate\x20trilinear\x20sampling.\x0afn\x20sampleVolumeNearest(modelPosition:\x20vec3f)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20let\x20normalized\x20=\x20clamp(modelPosition,\x20vec3f(0.0),\x20vec3f(1.0));\x0a\x20\x20\x20\x20let\x20maximumVoxel\x20=\x20volume.dimensions.xyz\x20-\x20vec3u(1u);\x0a\x20\x20\x20\x20let\x20voxel\x20=\x20vec3i(round(normalized\x20*\x20vec3f(maximumVoxel)));\x0a\x20\x20\x20\x20let\x20owningBrick\x20=\x20min(vec3u(max(voxel,\x20vec3i(0)))\x20/\x20volume.brickInterior.xyz,\x20volume.brickCount.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20return\x20loadAtlasVoxel(voxel,\x20owningBrick);\x0a}\x0a\x0afn\x20sampleColor(value:\x20f32)\x20->\x20vec4f\x20{\x0a\x20\x20\x20\x20let\x20count\x20=\x20u32(scene.transfer.x);\x0a\x0a\x20\x20\x20\x20if\x20(count\x20==\x201u\x20||\x20value\x20<=\x20colorStopValues.values[0u])\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20colorStopColors.values[0u];\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20for\x20(var\x20index\x20=\x200u;\x20index\x20+\x201u\x20<\x20count;\x20index\x20=\x20index\x20+\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20start\x20=\x20colorStopValues.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20end\x20=\x20colorStopValues.values[index\x20+\x201u];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(value\x20<\x20end)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(scene.transfer.w\x20>\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20colorStopColors.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20ratio\x20=\x20clamp((value\x20-\x20start)\x20/\x20max(end\x20-\x20start,\x200.000001),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20mix(colorStopColors.values[index],\x20colorStopColors.values[index\x20+\x201u],\x20ratio);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20colorStopColors.values[count\x20-\x201u];\x0a}\x0a\x0afn\x20sampleOpacity(value:\x20f32)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20let\x20count\x20=\x20u32(scene.transfer.y);\x0a\x0a\x20\x20\x20\x20if\x20(count\x20==\x201u\x20||\x20value\x20<=\x20opacityStopValues.values[0u])\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20opacityStopAlphas.values[0u];\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20for\x20(var\x20index\x20=\x200u;\x20index\x20+\x201u\x20<\x20count;\x20index\x20=\x20index\x20+\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20start\x20=\x20opacityStopValues.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20end\x20=\x20opacityStopValues.values[index\x20+\x201u];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(value\x20<\x20end)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(scene.transfer.w\x20>\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20opacityStopAlphas.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20ratio\x20=\x20clamp((value\x20-\x20start)\x20/\x20max(end\x20-\x20start,\x200.000001),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20mix(opacityStopAlphas.values[index],\x20opacityStopAlphas.values[index\x20+\x201u],\x20ratio);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20opacityStopAlphas.values[count\x20-\x201u];\x0a}\x0a\x0afn\x20nextBrickAxisDistance(position:\x20f32,\x20direction:\x20f32,\x20minimumValue:\x20f32,\x20maximumValue:\x20f32)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20if\x20(direction\x20>\x200.000001)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20max(scene.render.w,\x20(maximumValue\x20-\x20position)\x20/\x20direction\x20+\x20scene.render.w\x20*\x200.25);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(direction\x20<\x20-0.000001)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20max(scene.render.w,\x20(minimumValue\x20-\x20position)\x20/\x20direction\x20+\x20scene.render.w\x20*\x200.25);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x201e20;\x0a}\x0a\x0afn\x20getEmptyBrickSkipDistance(position:\x20vec3f,\x20direction:\x20vec3f)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20let\x20normalized\x20=\x20clamp(position,\x20vec3f(0.0),\x20vec3f(1.0));\x0a\x20\x20\x20\x20let\x20maximumVoxel\x20=\x20volume.dimensions.xyz\x20-\x20vec3u(1u);\x0a\x20\x20\x20\x20let\x20safeMaximumVoxel\x20=\x20max(maximumVoxel,\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20voxel\x20=\x20vec3u(floor(normalized\x20*\x20vec3f(maximumVoxel)));\x0a\x20\x20\x20\x20let\x20brick\x20=\x20min(voxel\x20/\x20volume.brickInterior.xyz,\x20volume.brickCount.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20page\x20=\x20pageTable.values[getPageIndex(brick)];\x0a\x0a\x20\x20\x20\x20if\x20(page.x\x20!=\x200u\x20&&\x20page.z\x20!=\x200u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x200.0;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20minimumPosition\x20=\x20vec3f(brick\x20*\x20volume.brickInterior.xyz)\x20/\x20vec3f(safeMaximumVoxel);\x0a\x20\x20\x20\x20let\x20maximumPosition\x20=\x20vec3f(min((brick\x20+\x20vec3u(1u))\x20*\x20volume.brickInterior.xyz,\x20maximumVoxel))\x20/\x20vec3f(safeMaximumVoxel);\x0a\x20\x20\x20\x20return\x20min(\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextBrickAxisDistance(normalized.x,\x20direction.x,\x20minimumPosition.x,\x20maximumPosition.x),\x0a\x20\x20\x20\x20\x20\x20\x20\x20min(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20nextBrickAxisDistance(normalized.y,\x20direction.y,\x20minimumPosition.y,\x20maximumPosition.y),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20nextBrickAxisDistance(normalized.z,\x20direction.z,\x20minimumPosition.z,\x20maximumPosition.z)\x0a\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20);\x0a}\x0a\x0afn\x20getDepthDistance(pixel:\x20vec2i,\x20ndcXY:\x20vec2f,\x20rayOrigin:\x20vec3f,\x20rayDirection:\x20vec3f)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20let\x20depth\x20=\x20textureLoad(sceneDepth,\x20pixel,\x200);\x0a\x0a\x20\x20\x20\x20if\x20(depth\x20>=\x201.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x201e20;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20depthWorld\x20=\x20reconstructWorldPosition(vec3f(ndcXY,\x20depth));\x0a\x20\x20\x20\x20let\x20depthModel\x20=\x20transformPoint(scene.inverseModelMatrix,\x20depthWorld);\x0a\x20\x20\x20\x20return\x20max(0.0,\x20dot(depthModel\x20-\x20rayOrigin,\x20rayDirection));\x0a}\x0a\x0afn\x20raymarchComposite(origin:\x20vec3f,\x20direction:\x20vec3f,\x20interval:\x20RayInterval)\x20->\x20vec4f\x20{\x0a\x20\x20\x20\x20var\x20accumulated\x20=\x20vec4f(0.0);\x0a\x20\x20\x20\x20var\x20distance\x20=\x20interval.minimum;\x0a\x0a\x20\x20\x20\x20for\x20(var\x20index\x20=\x200u;\x20index\x20<\x204096u\x20&&\x20distance\x20<=\x20interval.maximum\x20&&\x20accumulated.a\x20<\x200.985;\x20index\x20=\x20index\x20+\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20proxyPosition\x20=\x20origin\x20+\x20direction\x20*\x20distance;\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20skipDistance\x20=\x20select(0.0,\x20getEmptyBrickSkipDistance(proxyPosition,\x20direction),\x20scene.geographic0.x\x20<\x200.5);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skipDistance\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20distance\x20+\x20skipDistance;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20volumePosition\x20=\x20proxyToVolume(proxyPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!isInsideVolume(volumePosition))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20distance\x20+\x20scene.render.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20sample\x20=\x20sampleVolumeNearest(volumePosition);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sample.valid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20sampleAlpha\x20=\x20sampleOpacity(sample.value);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sampleAlpha\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20color\x20=\x20sampleColor(sample.value);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20alpha\x20=\x201.0\x20-\x20exp(-sampleAlpha\x20*\x20scene.render.z\x20*\x20scene.render.w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20contribution\x20=\x20(1.0\x20-\x20accumulated.a)\x20*\x20alpha;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accumulated\x20=\x20vec4f(accumulated.rgb\x20+\x20color.rgb\x20*\x20contribution,\x20accumulated.a\x20+\x20contribution);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20distance\x20+\x20scene.render.w;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20finalAlpha\x20=\x20accumulated.a\x20*\x20scene.render.y\x20*\x20scene.transfer.z;\x0a\x20\x20\x20\x20return\x20vec4f(accumulated.rgb\x20*\x20scene.render.y\x20*\x20scene.transfer.z,\x20finalAlpha);\x0a}\x0a\x0afn\x20raymarchMaximum(origin:\x20vec3f,\x20direction:\x20vec3f,\x20interval:\x20RayInterval)\x20->\x20vec4f\x20{\x0a\x20\x20\x20\x20var\x20maximumValue\x20=\x20-1e30;\x0a\x20\x20\x20\x20var\x20found\x20=\x20false;\x0a\x20\x20\x20\x20var\x20distance\x20=\x20interval.minimum;\x0a\x0a\x20\x20\x20\x20for\x20(var\x20index\x20=\x200u;\x20index\x20<\x204096u\x20&&\x20distance\x20<=\x20interval.maximum;\x20index\x20=\x20index\x20+\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20proxyPosition\x20=\x20origin\x20+\x20direction\x20*\x20distance;\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20skipDistance\x20=\x20select(0.0,\x20getEmptyBrickSkipDistance(proxyPosition,\x20direction),\x20scene.geographic0.x\x20<\x200.5);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skipDistance\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20distance\x20+\x20skipDistance;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20volumePosition\x20=\x20proxyToVolume(proxyPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!isInsideVolume(volumePosition))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20distance\x20+\x20scene.render.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20sample\x20=\x20sampleVolumeNearest(volumePosition);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sample.valid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20maximumValue\x20=\x20max(maximumValue,\x20sample.value);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20found\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20distance\x20+\x20scene.render.w;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20if\x20(!found)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4f(0.0);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20color\x20=\x20sampleColor(maximumValue);\x0a\x20\x20\x20\x20let\x20alpha\x20=\x20sampleOpacity(maximumValue)\x20*\x20scene.render.y\x20*\x20scene.transfer.z;\x0a\x20\x20\x20\x20return\x20vec4f(color.rgb\x20*\x20alpha,\x20alpha);\x0a}\x0a\x0a@vertex\x0afn\x20vertexMain(@builtin(vertex_index)\x20vertexIndex:\x20u32)\x20->\x20@builtin(position)\x20vec4f\x20{\x0a\x20\x20\x20\x20let\x20x\x20=\x20f32(i32(vertexIndex\x20&\x201u)\x20*\x204\x20-\x201);\x0a\x20\x20\x20\x20let\x20y\x20=\x20f32(i32(vertexIndex\x20>>\x201u)\x20*\x204\x20-\x201);\x0a\x20\x20\x20\x20return\x20vec4f(x,\x20y,\x200.0,\x201.0);\x0a}\x0a\x0a@fragment\x0afn\x20fragmentMain(@builtin(position)\x20fragmentPosition:\x20vec4f)\x20->\x20@location(0)\x20vec4f\x20{\x0a\x20\x20\x20\x20let\x20ndcXY\x20=\x20vec2f(fragmentPosition.x\x20/\x20scene.viewport.x\x20*\x202.0\x20-\x201.0,\x201.0\x20-\x20fragmentPosition.y\x20/\x20scene.viewport.y\x20*\x202.0);\x0a\x20\x20\x20\x20let\x20nearWorld\x20=\x20reconstructWorldPosition(vec3f(ndcXY,\x200.0));\x0a\x20\x20\x20\x20let\x20farWorld\x20=\x20reconstructWorldPosition(vec3f(ndcXY,\x201.0));\x0a\x20\x20\x20\x20let\x20nearModel\x20=\x20transformPoint(scene.inverseModelMatrix,\x20nearWorld);\x0a\x20\x20\x20\x20let\x20farModel\x20=\x20transformPoint(scene.inverseModelMatrix,\x20farWorld);\x0a\x20\x20\x20\x20let\x20direction\x20=\x20normalize(farModel\x20-\x20nearModel);\x0a\x20\x20\x20\x20var\x20interval\x20=\x20intersectClipBox(nearModel,\x20direction);\x0a\x0a\x20\x20\x20\x20if\x20(!interval.valid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20interval.maximum\x20=\x20min(interval.maximum,\x20getDepthDistance(vec2i(fragmentPosition.xy),\x20ndcXY,\x20nearModel,\x20direction));\x0a\x0a\x20\x20\x20\x20if\x20(interval.maximum\x20<\x20interval.minimum)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20if\x20(scene.render.x\x20>\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20raymarchMaximum(nearModel,\x20direction,\x20interval);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20raymarchComposite(nearModel,\x20direction,\x20interval);\x0a}\x0a','mixed','inset','remove','origin','sourceYCount','startsWith','getFrame','center','pixelRatioCap','WebGPU\x20volume\x20page\x20table\x20is\x20unavailable.\x20WebGPU\x20体积页表不可用。','brickDepth','wgs84','countZ','destroy','showDebugGeometry','rgb(17\x2024\x2039\x20/\x2082%)','transparent','getTransferResources','Height\x20/\x20高度','.\x20体积分块\x20','volume\x20geometry\x20bind\x20group\x20layout','uploadPump','submittedFrameCount','mouse','sourceYStart','navigationMode','切面深度模式无效\x20/\x20Slice\x20depth\x20mode\x20is\x20invalid','near','Mars3D\x20volume\x20layer\x20is\x20not\x20ready;\x20await\x20readyPromise\x20first.\x20Mars3D\x20体积层尚未就绪,请先等待\x20readyPromise。','releaseGpuResources','WebGPU\x20transfer\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20传递函数绑定布局不可用。','profiles','removeSlice','路线剖面\x20id\x20不能为空。','volume\x20atlas\x20clear','screenAnchors','syncCamera','Volume\x20timeIndex\x20is\x20out\x20of\x20range:\x20','struct\x20SceneParams\x20{\x0a\x20\x20\x20\x20viewProjection:\x20mat4x4f,\x0a\x20\x20\x20\x20inverseViewProjection:\x20mat4x4f,\x0a\x20\x20\x20\x20modelMatrix:\x20mat4x4f,\x0a\x20\x20\x20\x20inverseModelMatrix:\x20mat4x4f,\x0a\x20\x20\x20\x20cameraPosition:\x20vec4f,\x0a\x20\x20\x20\x20viewport:\x20vec4f,\x0a\x20\x20\x20\x20clipMinimum:\x20vec4f,\x0a\x20\x20\x20\x20clipMaximum:\x20vec4f,\x0a\x20\x20\x20\x20render:\x20vec4f,\x0a\x20\x20\x20\x20transfer:\x20vec4f,\x0a\x20\x20\x20\x20geographic0:\x20vec4f,\x0a\x20\x20\x20\x20geographic1:\x20vec4f,\x0a\x20\x20\x20\x20geographic2:\x20vec4f,\x0a}\x0a\x0astruct\x20VolumeParams\x20{\x0a\x20\x20\x20\x20dimensions:\x20vec4u,\x0a\x20\x20\x20\x20brickInterior:\x20vec4u,\x0a\x20\x20\x20\x20brickCount:\x20vec4u,\x0a\x20\x20\x20\x20atlasSlots:\x20vec4u,\x0a\x20\x20\x20\x20atlasDimensions:\x20vec4u,\x0a\x20\x20\x20\x20valueMeta:\x20vec4f,\x0a}\x0a\x0astruct\x20PageTable\x20{\x20values:\x20array<vec4u>\x20}\x0astruct\x20FloatValues\x20{\x20values:\x20array<f32>\x20}\x0astruct\x20Colors\x20{\x20values:\x20array<vec4f>\x20}\x0astruct\x20SliceParams\x20{\x0a\x20\x20\x20\x20data:\x20vec4f,\x0a\x20\x20\x20\x20plateColor:\x20vec4f,\x0a}\x0astruct\x20VolumeSample\x20{\x20value:\x20f32,\x20valid:\x20bool\x20}\x0a\x0astruct\x20SliceVertexOutput\x20{\x0a\x20\x20\x20\x20@builtin(position)\x20position:\x20vec4f,\x0a\x20\x20\x20\x20@location(0)\x20modelPosition:\x20vec3f,\x0a}\x0a\x0a@group(0)\x20@binding(0)\x20var<uniform>\x20scene:\x20SceneParams;\x0a@group(1)\x20@binding(0)\x20var\x20volumeAtlas0:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(1)\x20var\x20volumeAtlas1:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(2)\x20var\x20volumeAtlas2:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(3)\x20var\x20volumeAtlas3:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(4)\x20var\x20volumeAtlas4:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(5)\x20var\x20volumeAtlas5:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(6)\x20var\x20volumeAtlas6:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(7)\x20var\x20volumeAtlas7:\x20texture_3d<f32>;\x0a@group(1)\x20@binding(8)\x20var<storage,\x20read>\x20pageTable:\x20PageTable;\x0a@group(1)\x20@binding(9)\x20var<uniform>\x20volume:\x20VolumeParams;\x0a@group(2)\x20@binding(0)\x20var<storage,\x20read>\x20colorStopValues:\x20FloatValues;\x0a@group(2)\x20@binding(1)\x20var<storage,\x20read>\x20colorStopColors:\x20Colors;\x0a@group(2)\x20@binding(2)\x20var<storage,\x20read>\x20opacityStopValues:\x20FloatValues;\x0a@group(2)\x20@binding(3)\x20var<storage,\x20read>\x20opacityStopAlphas:\x20FloatValues;\x0a@group(3)\x20@binding(0)\x20var<uniform>\x20slice:\x20SliceParams;\x0a\x0afn\x20invalidVolumeSample()\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20return\x20VolumeSample(0.0,\x20false);\x0a}\x0a\x0afn\x20validVolumeSample(value:\x20f32)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20return\x20VolumeSample(value,\x20true);\x0a}\x0a\x0afn\x20getPageIndex(brick:\x20vec3u)\x20->\x20u32\x20{\x0a\x20\x20\x20\x20return\x20brick.x\x20+\x20brick.y\x20*\x20volume.brickCount.x\x20+\x20brick.z\x20*\x20volume.brickCount.x\x20*\x20volume.brickCount.y;\x0a}\x0a\x0afn\x20getSlotCoordinate(slotIndex:\x20u32)\x20->\x20vec3u\x20{\x0a\x20\x20\x20\x20let\x20layerSize\x20=\x20volume.atlasSlots.x\x20*\x20volume.atlasSlots.y;\x0a\x20\x20\x20\x20let\x20z\x20=\x20slotIndex\x20/\x20layerSize;\x0a\x20\x20\x20\x20let\x20remainder\x20=\x20slotIndex\x20-\x20z\x20*\x20layerSize;\x0a\x20\x20\x20\x20let\x20y\x20=\x20remainder\x20/\x20volume.atlasSlots.x;\x0a\x20\x20\x20\x20return\x20vec3u(remainder\x20-\x20y\x20*\x20volume.atlasSlots.x,\x20y,\x20z);\x0a}\x0a\x0afn\x20loadAtlasValue(atlasIndex:\x20u32,\x20coordinate:\x20vec3i)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x200u)\x20{\x20return\x20textureLoad(volumeAtlas0,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x201u)\x20{\x20return\x20textureLoad(volumeAtlas1,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x202u)\x20{\x20return\x20textureLoad(volumeAtlas2,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x203u)\x20{\x20return\x20textureLoad(volumeAtlas3,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x204u)\x20{\x20return\x20textureLoad(volumeAtlas4,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x205u)\x20{\x20return\x20textureLoad(volumeAtlas5,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20if\x20(atlasIndex\x20==\x206u)\x20{\x20return\x20textureLoad(volumeAtlas6,\x20coordinate,\x200).r;\x20}\x0a\x20\x20\x20\x20return\x20textureLoad(volumeAtlas7,\x20coordinate,\x200).r;\x0a}\x0a\x0afn\x20loadAtlasVoxel(voxel:\x20vec3i,\x20owningBrick:\x20vec3u)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20let\x20page\x20=\x20pageTable.values[getPageIndex(owningBrick)];\x0a\x0a\x20\x20\x20\x20if\x20(page.x\x20==\x200u\x20||\x20page.z\x20==\x200u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20invalidVolumeSample();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20physicalBrick\x20=\x20volume.brickInterior.xyz\x20+\x20vec3u(2u);\x0a\x20\x20\x20\x20let\x20slot\x20=\x20getSlotCoordinate(page.x\x20-\x201u);\x0a\x20\x20\x20\x20let\x20local\x20=\x20voxel\x20-\x20vec3i(owningBrick\x20*\x20volume.brickInterior.xyz)\x20+\x20vec3i(1);\x0a\x20\x20\x20\x20let\x20value\x20=\x20loadAtlasValue(page.w,\x20vec3i(slot\x20*\x20physicalBrick)\x20+\x20local);\x0a\x0a\x20\x20\x20\x20if\x20(value\x20!=\x20value\x20||\x20(volume.valueMeta.y\x20>\x200.5\x20&&\x20value\x20==\x20volume.valueMeta.x))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20invalidVolumeSample();\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20validVolumeSample(value);\x0a}\x0a\x0afn\x20sampleVolume(modelPosition:\x20vec3f)\x20->\x20VolumeSample\x20{\x0a\x20\x20\x20\x20let\x20normalized\x20=\x20clamp(modelPosition,\x20vec3f(0.0),\x20vec3f(1.0));\x0a\x20\x20\x20\x20let\x20voxel\x20=\x20normalized\x20*\x20vec3f(volume.dimensions.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20baseVoxel\x20=\x20vec3i(floor(voxel));\x0a\x20\x20\x20\x20let\x20nextVoxel\x20=\x20min(baseVoxel\x20+\x20vec3i(1),\x20vec3i(volume.dimensions.xyz\x20-\x20vec3u(1u)));\x0a\x20\x20\x20\x20let\x20fraction\x20=\x20voxel\x20-\x20vec3f(baseVoxel);\x0a\x20\x20\x20\x20let\x20owningBrick\x20=\x20min(vec3u(baseVoxel)\x20/\x20volume.brickInterior.xyz,\x20volume.brickCount.xyz\x20-\x20vec3u(1u));\x0a\x20\x20\x20\x20let\x20c000\x20=\x20loadAtlasVoxel(baseVoxel,\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c100\x20=\x20loadAtlasVoxel(vec3i(nextVoxel.x,\x20baseVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c010\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20nextVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c110\x20=\x20loadAtlasVoxel(vec3i(nextVoxel.x,\x20nextVoxel.y,\x20baseVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c001\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20baseVoxel.y,\x20nextVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c101\x20=\x20loadAtlasVoxel(vec3i(nextVoxel.x,\x20baseVoxel.y,\x20nextVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c011\x20=\x20loadAtlasVoxel(vec3i(baseVoxel.x,\x20nextVoxel.y,\x20nextVoxel.z),\x20owningBrick);\x0a\x20\x20\x20\x20let\x20c111\x20=\x20loadAtlasVoxel(nextVoxel,\x20owningBrick);\x0a\x0a\x20\x20\x20\x20if\x20(!c000.valid\x20||\x20!c100.valid\x20||\x20!c010.valid\x20||\x20!c110.valid\x20||\x20!c001.valid\x20||\x20!c101.valid\x20||\x20!c011.valid\x20||\x20!c111.valid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20invalidVolumeSample();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20bottom\x20=\x20mix(mix(c000.value,\x20c100.value,\x20fraction.x),\x20mix(c010.value,\x20c110.value,\x20fraction.x),\x20fraction.y);\x0a\x20\x20\x20\x20let\x20top\x20=\x20mix(mix(c001.value,\x20c101.value,\x20fraction.x),\x20mix(c011.value,\x20c111.value,\x20fraction.x),\x20fraction.y);\x0a\x20\x20\x20\x20return\x20validVolumeSample(mix(bottom,\x20top,\x20fraction.z));\x0a}\x0a\x0afn\x20sampleColor(value:\x20f32)\x20->\x20vec4f\x20{\x0a\x20\x20\x20\x20let\x20count\x20=\x20u32(scene.transfer.x);\x0a\x0a\x20\x20\x20\x20if\x20(count\x20==\x201u\x20||\x20value\x20<=\x20colorStopValues.values[0u])\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20colorStopColors.values[0u];\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20for\x20(var\x20index\x20=\x200u;\x20index\x20+\x201u\x20<\x20count;\x20index\x20=\x20index\x20+\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20start\x20=\x20colorStopValues.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20end\x20=\x20colorStopValues.values[index\x20+\x201u];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(value\x20<\x20end)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(scene.transfer.w\x20>\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20colorStopColors.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20mix(colorStopColors.values[index],\x20colorStopColors.values[index\x20+\x201u],\x20clamp((value\x20-\x20start)\x20/\x20max(end\x20-\x20start,\x200.000001),\x200.0,\x201.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20colorStopColors.values[count\x20-\x201u];\x0a}\x0a\x0afn\x20sampleOpacity(value:\x20f32)\x20->\x20f32\x20{\x0a\x20\x20\x20\x20let\x20count\x20=\x20u32(scene.transfer.y);\x0a\x0a\x20\x20\x20\x20if\x20(count\x20==\x201u\x20||\x20value\x20<=\x20opacityStopValues.values[0u])\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20opacityStopAlphas.values[0u];\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20for\x20(var\x20index\x20=\x200u;\x20index\x20+\x201u\x20<\x20count;\x20index\x20=\x20index\x20+\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20start\x20=\x20opacityStopValues.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20end\x20=\x20opacityStopValues.values[index\x20+\x201u];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(value\x20<\x20end)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(scene.transfer.w\x20>\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20opacityStopAlphas.values[index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20mix(opacityStopAlphas.values[index],\x20opacityStopAlphas.values[index\x20+\x201u],\x20clamp((value\x20-\x20start)\x20/\x20max(end\x20-\x20start,\x200.000001),\x200.0,\x201.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20opacityStopAlphas.values[count\x20-\x201u];\x0a}\x0a\x0afn\x20getPlanePosition(axis:\x20u32,\x20planePosition:\x20f32,\x20corner:\x20vec2f)\x20->\x20vec3f\x20{\x0a\x20\x20\x20\x20if\x20(axis\x20==\x200u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec3f(planePosition,\x20corner.x,\x20corner.y);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(axis\x20==\x201u)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec3f(corner.x,\x20planePosition,\x20corner.y);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20vec3f(corner.x,\x20corner.y,\x20planePosition);\x0a}\x0a\x0afn\x20getCorner(vertexIndex:\x20u32)\x20->\x20vec2f\x20{\x0a\x20\x20\x20\x20let\x20corners\x20=\x20array<vec2f,\x206>(\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2f(0.0,\x200.0),\x20vec2f(1.0,\x200.0),\x20vec2f(0.0,\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2f(0.0,\x201.0),\x20vec2f(1.0,\x200.0),\x20vec2f(1.0,\x201.0)\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20return\x20corners[vertexIndex];\x0a}\x0a\x0afn\x20getTessellatedCorner(vertexIndex:\x20u32)\x20->\x20vec2f\x20{\x0a\x20\x20\x20\x20let\x20gridSize\x20=\x2032u;\x0a\x20\x20\x20\x20let\x20cellIndex\x20=\x20vertexIndex\x20/\x206u;\x0a\x20\x20\x20\x20let\x20cellX\x20=\x20cellIndex\x20%\x20gridSize;\x0a\x20\x20\x20\x20let\x20cellY\x20=\x20cellIndex\x20/\x20gridSize;\x0a\x20\x20\x20\x20return\x20(vec2f(f32(cellX),\x20f32(cellY))\x20+\x20getCorner(vertexIndex\x20%\x206u))\x20/\x20f32(gridSize);\x0a}\x0a\x0afn\x20volumeToWorld(position:\x20vec3f)\x20->\x20vec3f\x20{\x0a\x20\x20\x20\x20if\x20(scene.geographic0.x\x20<\x200.5)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20transformed\x20=\x20scene.modelMatrix\x20*\x20vec4f(position,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20transformed.xyz\x20/\x20transformed.w;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20longitude\x20=\x20mix(scene.geographic1.z,\x20scene.geographic1.w,\x20position.x);\x0a\x20\x20\x20\x20let\x20latitude\x20=\x20mix(scene.geographic2.x,\x20scene.geographic2.y,\x20position.z);\x0a\x20\x20\x20\x20let\x20height\x20=\x20mix(scene.geographic2.z,\x20scene.geographic2.w,\x20position.y);\x0a\x20\x20\x20\x20let\x20latitudeSin\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20let\x20latitudeCos\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20let\x20semiMajor\x20=\x20scene.geographic1.x;\x0a\x20\x20\x20\x20let\x20semiMinor\x20=\x20scene.geographic1.y;\x0a\x20\x20\x20\x20let\x20eccentricitySquared\x20=\x201.0\x20-\x20semiMinor\x20*\x20semiMinor\x20/\x20(semiMajor\x20*\x20semiMajor);\x0a\x20\x20\x20\x20let\x20primeVerticalRadius\x20=\x20semiMajor\x20/\x20sqrt(1.0\x20-\x20eccentricitySquared\x20*\x20latitudeSin\x20*\x20latitudeSin);\x0a\x20\x20\x20\x20let\x20ecef\x20=\x20vec3f(\x0a\x20\x20\x20\x20\x20\x20\x20\x20(primeVerticalRadius\x20+\x20height)\x20*\x20latitudeCos\x20*\x20cos(longitude),\x0a\x20\x20\x20\x20\x20\x20\x20\x20(primeVerticalRadius\x20+\x20height)\x20*\x20latitudeCos\x20*\x20sin(longitude),\x0a\x20\x20\x20\x20\x20\x20\x20\x20(primeVerticalRadius\x20*\x20(1.0\x20-\x20eccentricitySquared)\x20+\x20height)\x20*\x20latitudeSin\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20return\x20ecef\x20-\x20scene.geographic0.yzw;\x0a}\x0a\x0a@vertex\x0afn\x20vertexMain(@builtin(vertex_index)\x20vertexIndex:\x20u32)\x20->\x20SliceVertexOutput\x20{\x0a\x20\x20\x20\x20let\x20modelPosition\x20=\x20getPlanePosition(u32(slice.data.x),\x20slice.data.y,\x20getTessellatedCorner(vertexIndex));\x0a\x20\x20\x20\x20let\x20clipPosition\x20=\x20scene.viewProjection\x20*\x20vec4f(volumeToWorld(modelPosition),\x201.0);\x0a\x20\x20\x20\x20return\x20SliceVertexOutput(clipPosition,\x20modelPosition);\x0a}\x0a\x0a@fragment\x0afn\x20fragmentMain(input:\x20SliceVertexOutput)\x20->\x20@location(0)\x20vec4f\x20{\x0a\x20\x20\x20\x20let\x20sample\x20=\x20sampleVolume(input.modelPosition);\x0a\x20\x20\x20\x20let\x20plateAlpha\x20=\x20slice.plateColor.a;\x0a\x20\x20\x20\x20let\x20platePremultiplied\x20=\x20slice.plateColor.rgb\x20*\x20plateAlpha;\x0a\x0a\x20\x20\x20\x20if\x20(!sample.valid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(plateAlpha\x20<=\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4f(platePremultiplied,\x20plateAlpha);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20let\x20color\x20=\x20sampleColor(sample.value);\x0a\x20\x20\x20\x20let\x20alpha\x20=\x20color.a\x20*\x20sampleOpacity(sample.value)\x20*\x20slice.data.z;\x0a\x20\x20\x20\x20//\x20彩色数据覆盖白色透明底板,二者在同一\x20fragment\x20中合成以避免重合面的深度冲突。\x0a\x20\x20\x20\x20//\x20Colored\x20data\x20is\x20composited\x20over\x20the\x20translucent\x20white\x20plate\x20in\x20one\x20fragment\x20to\x20avoid\x20coplanar\x20depth\x20conflicts.\x0a\x20\x20\x20\x20let\x20outputAlpha\x20=\x20alpha\x20+\x20plateAlpha\x20*\x20(1.0\x20-\x20alpha);\x0a\x20\x20\x20\x20let\x20outputColor\x20=\x20color.rgb\x20*\x20alpha\x20+\x20platePremultiplied\x20*\x20(1.0\x20-\x20alpha);\x0a\x20\x20\x20\x20return\x20vec4f(outputColor,\x20outputAlpha);\x0a}\x0a','Geographic\x20WGS84\x20volume\x20scenes\x20manage\x20their\x20own\x20model\x20transform.\x20WGS84\x20地理体积场景自行管理模型变换。','normalizedPosition','copyBufferToTexture','Scene\x20mesh\x20','setToolMode','depth','clientWidth','getPreferredCanvasFormat','WebGPU\x20volume\x20atlas\x20is\x20not\x20configured.\x20WebGPU\x20体积图集尚未配置。','getVolumeBindGroupLayout','createComputePipeline','WebGPU\x20scene\x20params\x20buffer\x20is\x20unavailable.\x20WebGPU\x20场景参数\x20Buffer\x20不可用。','clientY','coordinate','aspect','Volume\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积透明度节点不能为空。','generation','minimumPitch','create','pan','countY','descriptors','smooth','axes','clearCameraFrameCompensation','devicePixelRatio','WebGPU\x20slice\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20切面绑定布局不可用。','uploadBrick','clearPreview','width','0.72','residentBySlotIndex','getInteractionKind','colorInputs','memoryLimitBytes','bufferOffset','initialized','\x20is\x20duplicated.\x20体积切面\x20ID\x20重复。','triangle-list','Volume\x20Y\x20axis','volume-slice-preview','geometryBindGroup','matrices','delete','slotCountX','volume\x20slice\x20shader','colorBuffer','gpuBytes','atan2','volumeMetadata','readChunk','setAttribute','Volume\x20revision\x20must\x20be\x20a\x20non-negative\x20integer.\x20体积\x20revision\x20必须是非负整数。','maximumDistance','Count','\x20endpoints\x20must\x20be\x20finite.\x20','多采样点切面轴的起止值不能相等。','alignItems','slotCountY','aria-label','8MWavGE','切面轴采样数必须是正整数。','clientX','positionWC','background','zIndex','requireRenderer','parentElement','opacityStops','maxX','interactionElement','indexOf','WebGPU\x20volume\x20memory\x20limits\x20must\x20be\x20positive.\x20WebGPU\x20体积显存限制必须大于零。','updateSlice','sliceBindGroupLayout','cameraMoving','writeBuffer','none','shift','volume-bounds','pointerId','volumeDimFactor\x20必须位于\x200\x20到\x201。','applyHit','createCommandEncoder','minimumPitchDegrees'];_0x24ba=function(){return _0x1557f2;};return _0x24ba();}(function(_0x397479,_0x526822){const _0x492a11=_0x312f,_0x3ca8ed=_0x397479();while(!![]){try{const _0x2406f7=-parseInt(_0x492a11(0x175))/0x1+-parseInt(_0x492a11(0x3c3))/0x2*(-parseInt(_0x492a11(0x2b2))/0x3)+parseInt(_0x492a11(0x47b))/0x4+parseInt(_0x492a11(0x279))/0x5*(-parseInt(_0x492a11(0x29a))/0x6)+parseInt(_0x492a11(0x467))/0x7*(parseInt(_0x492a11(0x381))/0x8)+-parseInt(_0x492a11(0x3b0))/0x9+-parseInt(_0x492a11(0x417))/0xa*(parseInt(_0x492a11(0x39b))/0xb);if(_0x2406f7===_0x526822)break;else _0x3ca8ed['push'](_0x3ca8ed['shift']());}catch(_0x50979a){_0x3ca8ed['push'](_0x3ca8ed['shift']());}}}(_0x24ba,0xcb027),function(_0x544059,_0xc76721){const _0x572889=_0x312f;typeof exports==_0x572889(0x31a)&&typeof module<'u'?_0xc76721(exports):typeof define=='function'&&define['amd']?define([_0x572889(0x3e7)],_0xc76721):(_0x544059=typeof globalThis<'u'?globalThis:_0x544059||self,_0xc76721(_0x544059[_0x572889(0x4ca)]={}));}(this,function(_0x34e394){const _0x3cf00e=_0x312f;Object[_0x3cf00e(0x3b5)](_0x34e394,Symbol['toStringTag'],{'value':_0x3cf00e(0x30c)});let _0x4ff104=0x615299,_0x4fca1b=_0x4ff104*(0x1-0x1/298.257223563),_0x351292=0x1-_0x4fca1b**0x2/_0x4ff104**0x2,_0x268acb=_0x19ca44=>_0x19ca44*Math['PI']/0xb4,_0x53dc86=(_0x2007ec,_0x567085,_0x18649c)=>{const _0x219ee2=_0x3cf00e;let _0x17818b=Math[_0x219ee2(0x1bf)](_0x567085),_0x402671=Math[_0x219ee2(0x45c)](_0x567085),_0x45a216=Math['sin'](_0x2007ec),_0x128151=Math[_0x219ee2(0x45c)](_0x2007ec),_0x538d55=_0x4ff104/Math[_0x219ee2(0x48a)](0x1-_0x351292*_0x17818b*_0x17818b);return[(_0x538d55+_0x18649c)*_0x402671*_0x128151,(_0x538d55+_0x18649c)*_0x402671*_0x45a216,(_0x538d55*(0x1-_0x351292)+_0x18649c)*_0x17818b];},_0x379fdd=(_0x121c38,_0x2879bd,_0xbf3a73)=>{const _0x50fecb=_0x3cf00e;if(!Number['isFinite'](_0x121c38)||!Number[_0x50fecb(0x2f3)](_0x2879bd)||_0x121c38===_0x2879bd)throw Error(_0xbf3a73+_0x50fecb(0x31c)+_0xbf3a73+'\x20轴必须包含两个不同的有限端点。');},_0x1393b7=(_0x24d910,_0x39c45e=0x1)=>{const _0x14957d=_0x3cf00e;let _0x568567=_0x268acb(_0x24d910['xAxis'][_0x14957d(0x17f)]),_0x4ba77e=_0x268acb(_0x24d910[_0x14957d(0x49a)][_0x14957d(0x196)]),_0x9b6771=_0x268acb(_0x24d910[_0x14957d(0x28b)]['start']),_0x31506d=_0x268acb(_0x24d910[_0x14957d(0x28b)][_0x14957d(0x196)]);_0x379fdd(_0x568567,_0x4ba77e,'Longitude\x20/\x20经度'),_0x379fdd(_0x9b6771,_0x31506d,_0x14957d(0x2a1));let _0xa1c019=_0x24d910['yAxis'][_0x14957d(0x17f)],_0x16f343=_0x24d910['yAxis'][_0x14957d(0x196)];if(_0x379fdd(_0xa1c019,_0x16f343,_0x14957d(0x330)),!(_0x39c45e>0x0)||!Number[_0x14957d(0x2f3)](_0x39c45e))throw Error(_0x14957d(0x495));let _0x907fe1=_0xa1c019+(_0x16f343-_0xa1c019)*_0x39c45e,_0x446a7c=(_0x568567+_0x4ba77e)/0x2,_0x4aec78=(_0x9b6771+_0x31506d)/0x2,_0x2dcc58=_0x53dc86(_0x446a7c,_0x4aec78,0x0),_0x3667f9=Math[_0x14957d(0x200)](_0x4ba77e-_0x568567)*_0x4ff104*Math[_0x14957d(0x181)](0.01,Math['cos'](_0x4aec78)),_0x1da681=Math[_0x14957d(0x200)](_0x31506d-_0x9b6771)*_0x4ff104,_0x1d8a6b=Math[_0x14957d(0x181)](_0x3667f9,_0x1da681);if(!(_0x1d8a6b>0x0)||!Number[_0x14957d(0x2f3)](_0x1d8a6b))throw Error(_0x14957d(0x1e5));let _0x5c34de=[0x1/0x0,0x1/0x0,0x1/0x0],_0x39afa3=[-0x1/0x0,-0x1/0x0,-0x1/0x0];for(let _0x14f2d4=0x0;_0x14f2d4<=0x8;_0x14f2d4+=0x1){let _0x3d2cb4=_0x9b6771+(_0x31506d-_0x9b6771)*_0x14f2d4/0x8;for(let _0x5a6c86=0x0;_0x5a6c86<=0x8;_0x5a6c86+=0x1){let _0x28250f=_0x568567+(_0x4ba77e-_0x568567)*_0x5a6c86/0x8;for(let _0x5a19f9 of[_0xa1c019,_0x907fe1]){let _0x46e703=_0x53dc86(_0x28250f,_0x3d2cb4,_0x5a19f9);for(let _0x4f2d2a=0x0;_0x4f2d2a<0x3;_0x4f2d2a+=0x1){let _0x2257ca=(_0x46e703[_0x4f2d2a]-_0x2dcc58[_0x4f2d2a])/_0x1d8a6b;_0x5c34de[_0x4f2d2a]=Math[_0x14957d(0x46a)](_0x5c34de[_0x4f2d2a],_0x2257ca),_0x39afa3[_0x4f2d2a]=Math['max'](_0x39afa3[_0x4f2d2a],_0x2257ca);}}}}let _0x1a58ef=_0x39afa3[_0x14957d(0x4bc)]((_0x46c8ef,_0x128bb3)=>_0x46c8ef-_0x5c34de[_0x128bb3]);if(_0x1a58ef[_0x14957d(0x21c)](_0x4bb273=>!(_0x4bb273>0x0)||!Number[_0x14957d(0x2f3)](_0x4bb273)))throw Error(_0x14957d(0x439));return{'centerEcef':_0x2dcc58,'normalizationMeters':_0x1d8a6b,'proxyModelMatrix':[_0x1a58ef[0x0],0x0,0x0,0x0,0x0,_0x1a58ef[0x1],0x0,0x0,0x0,0x0,_0x1a58ef[0x2],0x0,_0x5c34de[0x0],_0x5c34de[0x1],_0x5c34de[0x2],0x1],'transform':{'mode':_0x14957d(0x329),'centerEcefScaled':[_0x2dcc58[0x0]/_0x1d8a6b,_0x2dcc58[0x1]/_0x1d8a6b,_0x2dcc58[0x2]/_0x1d8a6b],'semiMajorAxisScaled':_0x4ff104/_0x1d8a6b,'semiMinorAxisScaled':_0x4fca1b/_0x1d8a6b,'longitudeRadians':[_0x568567,_0x4ba77e],'latitudeRadians':[_0x9b6771,_0x31506d],'heightScaled':[_0xa1c019/_0x1d8a6b,_0x907fe1/_0x1d8a6b]}};},_0x5258e0=(_0x3c5c80,_0x478e75)=>[(_0x3c5c80[0x0]-_0x478e75['centerEcef'][0x0])/_0x478e75[_0x3cf00e(0x1da)],(_0x3c5c80[0x1]-_0x478e75[_0x3cf00e(0x30e)][0x1])/_0x478e75[_0x3cf00e(0x1da)],(_0x3c5c80[0x2]-_0x478e75[_0x3cf00e(0x30e)][0x2])/_0x478e75[_0x3cf00e(0x1da)]],_0x4b9afc=(_0x18c69c,_0x37f7be)=>{const _0x512db4=_0x3cf00e;if(!Number['isInteger'](_0x18c69c)||_0x18c69c<=0x0)throw Error(_0x37f7be+_0x512db4(0x3f9)+_0x37f7be+'\x20必须是正整数。');},_0x1bb9c4=(_0xec43e4,_0x513a90)=>{const _0x5e5ca8=_0x3cf00e;if(_0x4b9afc(_0xec43e4[_0x5e5ca8(0x400)],_0x513a90+'\x20count'),!Number[_0x5e5ca8(0x2f3)](_0xec43e4[_0x5e5ca8(0x17f)])||!Number[_0x5e5ca8(0x2f3)](_0xec43e4['end']))throw Error(_0x513a90+_0x5e5ca8(0x37c)+_0x513a90+_0x5e5ca8(0x19a));if(_0xec43e4[_0x5e5ca8(0x400)]===0x1&&_0xec43e4[_0x5e5ca8(0x17f)]!==_0xec43e4[_0x5e5ca8(0x196)])throw Error(_0x513a90+'\x20with\x20one\x20sample\x20must\x20use\x20equal\x20endpoints.\x20'+_0x513a90+_0x5e5ca8(0x245));if(_0xec43e4['count']>0x1&&_0xec43e4['start']===_0xec43e4[_0x5e5ca8(0x196)])throw Error(_0x513a90+_0x5e5ca8(0x2be)+_0x513a90+'\x20包含多个采样点时步长不能为零。');},_0x260e1f=(_0x53c18d,_0x35d81a)=>{const _0x7398d=_0x3cf00e;if(_0x53c18d!==void 0x0&&!Number[_0x7398d(0x2f3)](_0x53c18d)&&!Number['isNaN'](_0x53c18d))throw Error(_0x35d81a+'\x20noData\x20must\x20be\x20finite\x20or\x20NaN.\x20'+_0x35d81a+_0x7398d(0x472));},_0x382d6b=(_0x2346d7,_0x2a9bac)=>_0x2346d7[_0x3cf00e(0x254)]===_0x2a9bac[_0x3cf00e(0x254)]&&_0x2346d7['xCount']===_0x2a9bac[_0x3cf00e(0x290)]&&_0x2346d7[_0x3cf00e(0x498)]===_0x2a9bac[_0x3cf00e(0x498)]&&_0x2346d7['levelCount']===_0x2a9bac['levelCount']&&_0x2346d7[_0x3cf00e(0x336)]===_0x2a9bac[_0x3cf00e(0x336)]&&_0x2346d7[_0x3cf00e(0x322)]===_0x2a9bac[_0x3cf00e(0x322)],_0x42ffa5=_0x13e40e=>{const _0x18f041=_0x3cf00e;if(_0x1bb9c4(_0x13e40e[_0x18f041(0x49a)],_0x18f041(0x1d8)),_0x1bb9c4(_0x13e40e['yAxis'],_0x18f041(0x36c)),_0x1bb9c4(_0x13e40e['zAxis'],_0x18f041(0x406)),_0x4b9afc(_0x13e40e[_0x18f041(0x2e4)],'Volume\x20timeCount'),_0x260e1f(_0x13e40e[_0x18f041(0x4c9)],_0x18f041(0x248)),_0x13e40e[_0x18f041(0x2cc)]!==void 0x0&&!Number[_0x18f041(0x2f3)](_0x13e40e['valueScale']))throw Error('Volume\x20valueScale\x20must\x20be\x20finite.\x20体积\x20valueScale\x20必须是有限数值。');if(_0x13e40e[_0x18f041(0x1b7)]!==void 0x0&&(!Number[_0x18f041(0x483)](_0x13e40e[_0x18f041(0x1b7)])||_0x13e40e[_0x18f041(0x1b7)]<0x0))throw Error(_0x18f041(0x379));},_0x34931b=(_0x7ed142,_0x5cfe3f)=>{const _0x5e2f5e=_0x3cf00e;if(!Number[_0x5e2f5e(0x483)](_0x5cfe3f)||_0x5cfe3f<0x0||_0x5cfe3f>=_0x7ed142[_0x5e2f5e(0x2e4)])throw Error(_0x5e2f5e(0x343)+_0x5cfe3f+_0x5e2f5e(0x3e3));},_0x4e3f79=(_0x2273c3,_0x5ae00f)=>{const _0x18c4cf=_0x3cf00e;let _0x2678ea=[[_0x5ae00f['xStart'],'xStart'],[_0x5ae00f[_0x18c4cf(0x290)],_0x18c4cf(0x290)],[_0x5ae00f[_0x18c4cf(0x498)],_0x18c4cf(0x498)],[_0x5ae00f[_0x18c4cf(0x201)],'levelCount'],[_0x5ae00f[_0x18c4cf(0x336)],_0x18c4cf(0x336)],[_0x5ae00f[_0x18c4cf(0x322)],_0x18c4cf(0x322)]];for(let [_0x5a1c5a,_0x2a6813]of _0x2678ea)if(!Number[_0x18c4cf(0x483)](_0x5a1c5a)||_0x5a1c5a<0x0||_0x2a6813[_0x18c4cf(0x49c)](_0x18c4cf(0x37b))&&_0x5a1c5a===0x0)throw Error('Volume\x20chunk\x20'+_0x2a6813+_0x18c4cf(0x3fa)+_0x5a1c5a+_0x18c4cf(0x331)+_0x2a6813+_0x18c4cf(0x427));if(_0x5ae00f[_0x18c4cf(0x254)]+_0x5ae00f[_0x18c4cf(0x290)]>_0x2273c3[_0x18c4cf(0x49a)][_0x18c4cf(0x400)]||_0x5ae00f[_0x18c4cf(0x498)]+_0x5ae00f['levelCount']>_0x2273c3[_0x18c4cf(0x46c)]['count']||_0x5ae00f[_0x18c4cf(0x336)]+_0x5ae00f[_0x18c4cf(0x322)]>_0x2273c3[_0x18c4cf(0x28b)][_0x18c4cf(0x400)])throw Error('Volume\x20chunk\x20range\x20exceeds\x20source\x20dimensions.\x20体积分块范围超出源数据尺寸。');},_0x4100b9=(_0x5efe59,_0x3303a2,_0x3c0429,_0x178e14)=>{const _0xeefe4=_0x3cf00e;if(_0x34931b(_0x5efe59,_0x3303a2['timeIndex']),_0x4e3f79(_0x5efe59,_0x3303a2[_0xeefe4(0x164)]),_0x178e14!==void 0x0&&_0x3303a2[_0xeefe4(0x3fc)]!==_0x178e14)throw Error(_0xeefe4(0x2ed));if(_0x3c0429&&!_0x382d6b(_0x3303a2[_0xeefe4(0x164)],_0x3c0429))throw Error(_0xeefe4(0x303));if(_0x3303a2['width']!==_0x3303a2['range'][_0xeefe4(0x290)]||_0x3303a2[_0xeefe4(0x488)]!==_0x3303a2['range'][_0xeefe4(0x201)]||_0x3303a2['depth']!==_0x3303a2[_0xeefe4(0x164)][_0xeefe4(0x322)])throw Error(_0xeefe4(0x2fb));let _0x148bae=_0x3303a2[_0xeefe4(0x362)]*_0x3303a2[_0xeefe4(0x488)]*_0x3303a2[_0xeefe4(0x34a)];if(!Number['isSafeInteger'](_0x148bae)||_0x3303a2[_0xeefe4(0x441)]['length']!==_0x148bae)throw Error(_0xeefe4(0x266)+_0x148bae+_0xeefe4(0x469)+_0x3303a2[_0xeefe4(0x441)]['length']+_0xeefe4(0x1dd));},_0x27b8ee=_0x247c7e=>{const _0x5df3a5=_0x3cf00e;if(!_0x247c7e||typeof _0x247c7e[_0x5df3a5(0x377)]!='function')throw Error(_0x5df3a5(0x3f0));_0x42ffa5(_0x247c7e[_0x5df3a5(0x284)]);},_0x439bfc=_0x2e9437=>{const _0x1a3e09=_0x3cf00e;for(let [_0x217cd1,_0x4d19cb]of[[_0x2e9437[_0x1a3e09(0x362)],_0x1a3e09(0x362)],[_0x2e9437[_0x1a3e09(0x488)],_0x1a3e09(0x488)],[_0x2e9437['depth'],_0x1a3e09(0x34a)]])if(!Number[_0x1a3e09(0x483)](_0x217cd1)||_0x217cd1<=0x0)throw Error(_0x1a3e09(0x4b1)+_0x4d19cb+_0x1a3e09(0x188)+_0x4d19cb+_0x1a3e09(0x3c8));if(!Number[_0x1a3e09(0x483)](_0x2e9437['halo'])||_0x2e9437[_0x1a3e09(0x296)]<0x1)throw Error('Volume\x20brick\x20halo\x20must\x20be\x20a\x20positive\x20integer.\x20体积分块\x20halo\x20必须是正整数。');},_0x1a37b2=(_0x56e389={})=>{const _0x25d9c5=_0x3cf00e;let _0x186b41={'width':_0x56e389['width']??0x100,'height':_0x56e389[_0x25d9c5(0x488)]??0x8,'depth':_0x56e389['depth']??0x100,'halo':_0x56e389[_0x25d9c5(0x296)]??0x1};return _0x439bfc(_0x186b41),_0x186b41;},_0x595a51=(_0x3d8cce,_0x10d2db={})=>{const _0x4378fd=_0x3cf00e;_0x42ffa5(_0x3d8cce);let _0x26f542=_0x1a37b2(_0x10d2db),_0x2ee6a7=Math[_0x4378fd(0x42a)](_0x3d8cce[_0x4378fd(0x49a)][_0x4378fd(0x400)]/_0x26f542[_0x4378fd(0x362)]),_0x32d5f6=Math[_0x4378fd(0x42a)](_0x3d8cce[_0x4378fd(0x46c)][_0x4378fd(0x400)]/_0x26f542['height']),_0x4dace3=Math[_0x4378fd(0x42a)](_0x3d8cce[_0x4378fd(0x28b)][_0x4378fd(0x400)]/_0x26f542[_0x4378fd(0x34a)]);return{'shape':_0x26f542,'countX':_0x2ee6a7,'countY':_0x32d5f6,'countZ':_0x4dace3,'brickCount':_0x2ee6a7*_0x32d5f6*_0x4dace3};},_0x7c7c76=_0x3dda42=>_0x3dda42['x']+':'+_0x3dda42['y']+':'+_0x3dda42['z'],_0x430c0d=(_0x61d8ee,_0x17cfdd,_0xfb8c37)=>{const _0x6e5321=_0x3cf00e;if(!Number[_0x6e5321(0x483)](_0xfb8c37['x'])||!Number[_0x6e5321(0x483)](_0xfb8c37['y'])||!Number[_0x6e5321(0x483)](_0xfb8c37['z'])||_0xfb8c37['x']<0x0||_0xfb8c37['x']>=_0x17cfdd[_0x6e5321(0x2d2)]||_0xfb8c37['y']<0x0||_0xfb8c37['y']>=_0x17cfdd[_0x6e5321(0x359)]||_0xfb8c37['z']<0x0||_0xfb8c37['z']>=_0x17cfdd[_0x6e5321(0x32a)])throw Error(_0x6e5321(0x301));let _0x3968d5=_0xfb8c37['x']*_0x17cfdd[_0x6e5321(0x445)][_0x6e5321(0x362)],_0x18bd77=_0xfb8c37['y']*_0x17cfdd[_0x6e5321(0x445)][_0x6e5321(0x488)],_0x47e7b7=_0xfb8c37['z']*_0x17cfdd[_0x6e5321(0x445)][_0x6e5321(0x34a)],_0x43e163=Math['min'](_0x17cfdd['shape']['width'],_0x61d8ee['xAxis'][_0x6e5321(0x400)]-_0x3968d5),_0x527031=Math[_0x6e5321(0x46a)](_0x17cfdd['shape'][_0x6e5321(0x488)],_0x61d8ee[_0x6e5321(0x46c)][_0x6e5321(0x400)]-_0x18bd77),_0x3e74ff=Math[_0x6e5321(0x46a)](_0x17cfdd[_0x6e5321(0x445)][_0x6e5321(0x34a)],_0x61d8ee[_0x6e5321(0x28b)][_0x6e5321(0x400)]-_0x47e7b7),_0x4b1e8f=_0x17cfdd['shape'][_0x6e5321(0x296)],_0x5df001=Math[_0x6e5321(0x181)](0x0,_0x3968d5-_0x4b1e8f),_0x159b0c=Math[_0x6e5321(0x181)](0x0,_0x18bd77-_0x4b1e8f),_0x27cfd0=Math[_0x6e5321(0x181)](0x0,_0x47e7b7-_0x4b1e8f),_0x4860f8=Math[_0x6e5321(0x46a)](_0x61d8ee[_0x6e5321(0x49a)][_0x6e5321(0x400)],_0x3968d5+_0x43e163+_0x4b1e8f),_0x38bf07=Math[_0x6e5321(0x46a)](_0x61d8ee[_0x6e5321(0x46c)][_0x6e5321(0x400)],_0x18bd77+_0x527031+_0x4b1e8f),_0x32e0bf=Math[_0x6e5321(0x46a)](_0x61d8ee[_0x6e5321(0x28b)][_0x6e5321(0x400)],_0x47e7b7+_0x3e74ff+_0x4b1e8f),_0x5ec77f=_0x17cfdd[_0x6e5321(0x445)][_0x6e5321(0x362)]+_0x4b1e8f*0x2,_0x3ffa0d=_0x17cfdd[_0x6e5321(0x445)][_0x6e5321(0x488)]+_0x4b1e8f*0x2,_0x4f2782=_0x17cfdd[_0x6e5321(0x445)]['depth']+_0x4b1e8f*0x2;return{'key':_0x7c7c76(_0xfb8c37),'coordinate':_0xfb8c37,'coreRange':{'xStart':_0x3968d5,'xCount':_0x43e163,'levelStart':_0x18bd77,'levelCount':_0x527031,'sourceYStart':_0x47e7b7,'sourceYCount':_0x3e74ff},'readRange':{'xStart':_0x5df001,'xCount':_0x4860f8-_0x5df001,'levelStart':_0x159b0c,'levelCount':_0x38bf07-_0x159b0c,'sourceYStart':_0x27cfd0,'sourceYCount':_0x32e0bf-_0x27cfd0},'physicalWidth':_0x5ec77f,'physicalHeight':_0x3ffa0d,'physicalDepth':_0x4f2782,'byteLength':_0x5ec77f*_0x3ffa0d*_0x4f2782*Float32Array[_0x6e5321(0x1bb)]};},_0x5057ae=(_0x349f84,_0x44c547)=>{const _0x1b2918=_0x3cf00e;let _0x4398ef=[];for(let _0x40cf33=0x0;_0x40cf33<_0x44c547[_0x1b2918(0x32a)];_0x40cf33+=0x1)for(let _0x2af20a=0x0;_0x2af20a<_0x44c547['countY'];_0x2af20a+=0x1)for(let _0x267f25=0x0;_0x267f25<_0x44c547[_0x1b2918(0x2d2)];_0x267f25+=0x1)_0x4398ef[_0x1b2918(0x432)](_0x430c0d(_0x349f84,_0x44c547,{'x':_0x267f25,'y':_0x2af20a,'z':_0x40cf33}));return _0x4398ef;},_0x59a5b2=1e-8,_0x2edb0c=()=>new Float32Array(0x10),_0x5137a6=(_0x215007,_0x1e88a5)=>_0x215007[0x0]*_0x1e88a5[0x0]+_0x215007[0x1]*_0x1e88a5[0x1]+_0x215007[0x2]*_0x1e88a5[0x2],_0x51b1d3=(_0x361300,_0x21767d)=>[_0x361300[0x0]-_0x21767d[0x0],_0x361300[0x1]-_0x21767d[0x1],_0x361300[0x2]-_0x21767d[0x2]],_0x25d9d8=(_0x282010,_0x3d3dd6)=>[_0x282010[0x1]*_0x3d3dd6[0x2]-_0x282010[0x2]*_0x3d3dd6[0x1],_0x282010[0x2]*_0x3d3dd6[0x0]-_0x282010[0x0]*_0x3d3dd6[0x2],_0x282010[0x0]*_0x3d3dd6[0x1]-_0x282010[0x1]*_0x3d3dd6[0x0]],_0x3b4688=_0x4c2c39=>{const _0x486b65=_0x3cf00e;let _0xc673e6=Math[_0x486b65(0x241)](_0x4c2c39[0x0],_0x4c2c39[0x1],_0x4c2c39[0x2]);if(_0xc673e6<=_0x59a5b2)throw Error(_0x486b65(0x49b));return[_0x4c2c39[0x0]/_0xc673e6,_0x4c2c39[0x1]/_0xc673e6,_0x4c2c39[0x2]/_0xc673e6];},_0x290be3=()=>{let _0x8c435a=_0x2edb0c();return _0x8c435a[0x0]=0x1,_0x8c435a[0x5]=0x1,_0x8c435a[0xa]=0x1,_0x8c435a[0xf]=0x1,_0x8c435a;},_0x3c1d6a=(_0x432224,_0x2967ee)=>{let _0xeed2ad=_0x2edb0c();for(let _0x112185=0x0;_0x112185<0x4;_0x112185+=0x1)for(let _0x521312=0x0;_0x521312<0x4;_0x521312+=0x1){let _0x3d972d=0x0;for(let _0x255bbf=0x0;_0x255bbf<0x4;_0x255bbf+=0x1)_0x3d972d+=_0x432224[_0x255bbf*0x4+_0x521312]*_0x2967ee[_0x112185*0x4+_0x255bbf];_0xeed2ad[_0x112185*0x4+_0x521312]=_0x3d972d;}return _0xeed2ad;},_0x134d8e=_0x32165f=>{const _0x1d6d5b=_0x3cf00e;let _0x357e62=Array[_0x1d6d5b(0x2e9)]({'length':0x4},(_0x8a9abf,_0x160795)=>{let _0x58d5bf=new Float64Array(0x8);for(let _0x1fa539=0x0;_0x1fa539<0x4;_0x1fa539+=0x1)_0x58d5bf[_0x1fa539]=_0x32165f[_0x1fa539*0x4+_0x160795];return _0x58d5bf[_0x160795+0x4]=0x1,_0x58d5bf;});for(let _0x1debbd=0x0;_0x1debbd<0x4;_0x1debbd+=0x1){let _0x22b020=_0x1debbd;for(let _0x43d461=_0x1debbd+0x1;_0x43d461<0x4;_0x43d461+=0x1)Math[_0x1d6d5b(0x200)](_0x357e62[_0x43d461][_0x1debbd])>Math[_0x1d6d5b(0x200)](_0x357e62[_0x22b020][_0x1debbd])&&(_0x22b020=_0x43d461);if(Math['abs'](_0x357e62[_0x22b020][_0x1debbd])<=_0x59a5b2)throw Error(_0x1d6d5b(0x2e1));_0x22b020!==_0x1debbd&&([_0x357e62[_0x1debbd],_0x357e62[_0x22b020]]=[_0x357e62[_0x22b020],_0x357e62[_0x1debbd]]);let _0x4dd0f0=_0x357e62[_0x1debbd][_0x1debbd];for(let _0x31da0d=0x0;_0x31da0d<0x8;_0x31da0d+=0x1)_0x357e62[_0x1debbd][_0x31da0d]/=_0x4dd0f0;for(let _0xf71c59=0x0;_0xf71c59<0x4;_0xf71c59+=0x1){if(_0xf71c59===_0x1debbd)continue;let _0x21d914=_0x357e62[_0xf71c59][_0x1debbd];for(let _0x2892c=0x0;_0x2892c<0x8;_0x2892c+=0x1)_0x357e62[_0xf71c59][_0x2892c]-=_0x21d914*_0x357e62[_0x1debbd][_0x2892c];}}let _0x41927f=_0x2edb0c();for(let _0xe6fcdb=0x0;_0xe6fcdb<0x4;_0xe6fcdb+=0x1)for(let _0x4a76c1=0x0;_0x4a76c1<0x4;_0x4a76c1+=0x1)_0x41927f[_0x4a76c1*0x4+_0xe6fcdb]=_0x357e62[_0xe6fcdb][_0x4a76c1+0x4];return _0x41927f;},_0x51fb1e=(_0x50946b,_0x4dff89,_0x6a22cc)=>{let _0x52e242=_0x3b4688(_0x51b1d3(_0x50946b,_0x4dff89)),_0x32fa61=_0x3b4688(_0x25d9d8(_0x6a22cc,_0x52e242)),_0x141418=_0x25d9d8(_0x52e242,_0x32fa61),_0x51e201=_0x290be3();return _0x51e201[0x0]=_0x32fa61[0x0],_0x51e201[0x1]=_0x141418[0x0],_0x51e201[0x2]=_0x52e242[0x0],_0x51e201[0x4]=_0x32fa61[0x1],_0x51e201[0x5]=_0x141418[0x1],_0x51e201[0x6]=_0x52e242[0x1],_0x51e201[0x8]=_0x32fa61[0x2],_0x51e201[0x9]=_0x141418[0x2],_0x51e201[0xa]=_0x52e242[0x2],_0x51e201[0xc]=-_0x5137a6(_0x32fa61,_0x50946b),_0x51e201[0xd]=-_0x5137a6(_0x141418,_0x50946b),_0x51e201[0xe]=-_0x5137a6(_0x52e242,_0x50946b),_0x51e201;},_0x33d637=(_0x2a86ce,_0x5ec775,_0x2df16b,_0x235260)=>{const _0x5aa197=_0x3cf00e;if(!(_0x2a86ce>0x0&&_0x2a86ce<Math['PI']))throw Error(_0x5aa197(0x444));if(!(_0x5ec775>0x0))throw Error(_0x5aa197(0x4bb));if(!(_0x2df16b>0x0&&_0x235260>_0x2df16b))throw Error('相机裁剪距离必须满足\x200\x20<\x20near\x20<\x20far。');let _0x3bf4af=0x1/Math[_0x5aa197(0x470)](_0x2a86ce/0x2),_0x5072f0=_0x2edb0c();return _0x5072f0[0x0]=_0x3bf4af/_0x5ec775,_0x5072f0[0x5]=_0x3bf4af,_0x5072f0[0xa]=_0x235260/(_0x2df16b-_0x235260),_0x5072f0[0xb]=-0x1,_0x5072f0[0xe]=_0x2df16b*_0x235260/(_0x2df16b-_0x235260),_0x5072f0;},_0xc22d82=(_0x1bb221,_0x2d38d1,_0x346c12,_0x4538b1)=>{const _0x55e9ce=_0x3cf00e;if(!(_0x1bb221>0x0&&_0x2d38d1>0x0))throw Error(_0x55e9ce(0x4a4));if(!(_0x346c12>=0x0&&_0x4538b1>_0x346c12))throw Error(_0x55e9ce(0x2bc));let _0x32d6bc=_0x1bb221*_0x2d38d1,_0x1f47b6=_0x290be3();return _0x1f47b6[0x0]=0x2/_0x32d6bc,_0x1f47b6[0x5]=0x2/_0x1bb221,_0x1f47b6[0xa]=0x1/(_0x346c12-_0x4538b1),_0x1f47b6[0xe]=_0x346c12/(_0x346c12-_0x4538b1),_0x1f47b6;},_0x417ff2=(_0x2fde76,_0x5a6c83,_0x41d376)=>{let _0x22e915=_0x290be3();return _0x22e915[0x0]=_0x2fde76,_0x22e915[0x5]=_0x5a6c83,_0x22e915[0xa]=_0x41d376,_0x22e915;},_0x54cb47=(_0x420526,_0xb1f6d7)=>{const _0x946cdb=_0x3cf00e;if(!(_0xb1f6d7>0x0)||!Number[_0x946cdb(0x2f3)](_0xb1f6d7))throw Error(_0x946cdb(0x440));let _0x44f318=_0x417ff2(0x1,_0xb1f6d7,0x1);return _0x420526?_0x3c1d6a(_0x420526,_0x44f318):_0x44f318;},_0x28d746=(_0x2347d0,_0x5574da,_0x26e703=0x1)=>[_0x2347d0[0x0]*_0x5574da[0x0]+_0x2347d0[0x4]*_0x5574da[0x1]+_0x2347d0[0x8]*_0x5574da[0x2]+_0x2347d0[0xc]*_0x26e703,_0x2347d0[0x1]*_0x5574da[0x0]+_0x2347d0[0x5]*_0x5574da[0x1]+_0x2347d0[0x9]*_0x5574da[0x2]+_0x2347d0[0xd]*_0x26e703,_0x2347d0[0x2]*_0x5574da[0x0]+_0x2347d0[0x6]*_0x5574da[0x1]+_0x2347d0[0xa]*_0x5574da[0x2]+_0x2347d0[0xe]*_0x26e703,_0x2347d0[0x3]*_0x5574da[0x0]+_0x2347d0[0x7]*_0x5574da[0x1]+_0x2347d0[0xb]*_0x5574da[0x2]+_0x2347d0[0xf]*_0x26e703],_0x33bf35=(_0x3c51a1,_0x2dc04a,_0x51c8b7,_0x1c67f0)=>{let _0x567819=_0x28d746(_0x3c51a1,_0x2dc04a);if(_0x567819[0x3]<=_0x59a5b2)return null;let _0x366fcd=0x1/_0x567819[0x3];return[(_0x567819[0x0]*_0x366fcd*0.5+0.5)*_0x51c8b7,(0.5-_0x567819[0x1]*_0x366fcd*0.5)*_0x1c67f0,_0x567819[0x2]*_0x366fcd];},_0x202941=[0x0,0x1,0x2],_0x4943dc=[0x0,0x0,0x0],_0x569ff6=[0x0,0x1,0x0],_0x35cb38={'type':_0x3cf00e(0x459),'fovYDegrees':0x2d,'near':0.01,'far':0x2710},_0x9c1839=Math['PI']/0xb4,_0x20a06c=_0x292c91=>[_0x292c91[0x0],_0x292c91[0x1],_0x292c91[0x2]],_0x24cce2=_0x58de20=>(_0x58de20[_0x3cf00e(0x2f2)],{..._0x58de20}),_0x558d8f=_0x43ea7f=>({'position':_0x20a06c(_0x43ea7f[_0x3cf00e(0x1f9)]),'target':_0x20a06c(_0x43ea7f[_0x3cf00e(0x39f)]),'up':_0x20a06c(_0x43ea7f['up']),'projection':_0x24cce2(_0x43ea7f[_0x3cf00e(0x1e3)])}),_0xc2f4df=(_0x449993,_0x331c44)=>[_0x449993[0x0]-_0x331c44[0x0],_0x449993[0x1]-_0x331c44[0x1],_0x449993[0x2]-_0x331c44[0x2]],_0x474f7d=(_0x4c6185,_0x21524a)=>[_0x4c6185[0x0]+_0x21524a[0x0],_0x4c6185[0x1]+_0x21524a[0x1],_0x4c6185[0x2]+_0x21524a[0x2]],_0x491ffb=(_0x25f7a3,_0x8b0c8d)=>[_0x25f7a3[0x0]*_0x8b0c8d,_0x25f7a3[0x1]*_0x8b0c8d,_0x25f7a3[0x2]*_0x8b0c8d],_0x56fbb2=(_0x17596b,_0x28610b)=>[_0x17596b[0x1]*_0x28610b[0x2]-_0x17596b[0x2]*_0x28610b[0x1],_0x17596b[0x2]*_0x28610b[0x0]-_0x17596b[0x0]*_0x28610b[0x2],_0x17596b[0x0]*_0x28610b[0x1]-_0x17596b[0x1]*_0x28610b[0x0]],_0x2c87f1=_0x2f5a98=>{const _0x26476a=_0x3cf00e;let _0x427d57=Math[_0x26476a(0x241)](_0x2f5a98[0x0],_0x2f5a98[0x1],_0x2f5a98[0x2]);return _0x427d57===0x0?[0x0,0x0,0x0]:_0x491ffb(_0x2f5a98,0x1/_0x427d57);},_0x10dbc5=(_0x269b57,_0x1335b2,_0x220095)=>Math[_0x3cf00e(0x46a)](_0x220095,Math[_0x3cf00e(0x181)](_0x1335b2,_0x269b57)),_0x481c50=_0xf9152f=>{const _0xacf536=_0x3cf00e;if(!(_0xf9152f[_0xacf536(0x339)]>=0x0&&_0xf9152f[_0xacf536(0x267)]>_0xf9152f[_0xacf536(0x339)]))throw Error(_0xacf536(0x2bc));if(_0xf9152f[_0xacf536(0x2f2)]==='perspective'&&!(_0xf9152f[_0xacf536(0x339)]>0x0&&_0xf9152f[_0xacf536(0x1fe)]>0x0&&_0xf9152f[_0xacf536(0x1fe)]<0xb4))throw Error(_0xacf536(0x19c));if(_0xf9152f[_0xacf536(0x2f2)]===_0xacf536(0x3cd)&&!(_0xf9152f[_0xacf536(0x488)]>0x0))throw Error(_0xacf536(0x265));},_0x434983=_0x2ead4e=>{const _0x2f7bf4=_0x3cf00e;let _0x42f354={'position':_0x2ead4e[_0x2f7bf4(0x165)]?.[_0x2f7bf4(0x1f9)]?_0x20a06c(_0x2ead4e[_0x2f7bf4(0x165)][_0x2f7bf4(0x1f9)]):_0x20a06c(_0x202941),'target':_0x2ead4e[_0x2f7bf4(0x165)]?.[_0x2f7bf4(0x39f)]?_0x20a06c(_0x2ead4e[_0x2f7bf4(0x165)][_0x2f7bf4(0x39f)]):_0x20a06c(_0x4943dc),'up':_0x2ead4e[_0x2f7bf4(0x165)]?.['up']?_0x20a06c(_0x2ead4e[_0x2f7bf4(0x165)]['up']):_0x20a06c(_0x569ff6),'projection':_0x2ead4e[_0x2f7bf4(0x165)]?.[_0x2f7bf4(0x1e3)]?_0x24cce2(_0x2ead4e[_0x2f7bf4(0x165)][_0x2f7bf4(0x1e3)]):_0x24cce2(_0x35cb38)};return _0x481c50(_0x42f354['projection']),_0x42f354;};var _0x1b58be=class{[_0x3cf00e(0x269)];[_0x3cf00e(0x353)];['rotateSpeed'];[_0x3cf00e(0x2c1)];[_0x3cf00e(0x2f0)];[_0x3cf00e(0x2ba)];[_0x3cf00e(0x37a)];[_0x3cf00e(0x356)];['maximumPitch'];constructor(_0x7657cf={}){const _0x4d8ea1=_0x3cf00e;if(this[_0x4d8ea1(0x269)]=_0x434983(_0x7657cf),this['aspect']=_0x7657cf[_0x4d8ea1(0x353)]??0x1,this[_0x4d8ea1(0x16c)]=_0x7657cf['rotateSpeed']??0.005,this[_0x4d8ea1(0x2c1)]=_0x7657cf[_0x4d8ea1(0x2c1)]??0x1,this[_0x4d8ea1(0x2f0)]=_0x7657cf[_0x4d8ea1(0x2f0)]??0.0015,this[_0x4d8ea1(0x2ba)]=_0x7657cf[_0x4d8ea1(0x2ba)]??0.001,this[_0x4d8ea1(0x37a)]=_0x7657cf[_0x4d8ea1(0x37a)]??0x1/0x0,this['minimumPitch']=(_0x7657cf[_0x4d8ea1(0x399)]??-0x59)*_0x9c1839,this['maximumPitch']=(_0x7657cf[_0x4d8ea1(0x1df)]??0x59)*_0x9c1839,!(this[_0x4d8ea1(0x353)]>0x0))throw Error('相机宽高比必须大于\x200。');}get[_0x3cf00e(0x165)](){const _0x22d1e9=_0x3cf00e;return _0x558d8f(this[_0x22d1e9(0x269)]);}get[_0x3cf00e(0x36f)](){const _0x5abd17=_0x3cf00e;let _0x11942c=_0x51fb1e(this['cameraState'][_0x5abd17(0x1f9)],this['cameraState']['target'],this['cameraState']['up']),_0x596e17=this['createProjectionMatrix'](),_0x4648c5=_0x3c1d6a(_0x596e17,_0x11942c);return{'view':_0x11942c,'projection':_0x596e17,'viewProjection':_0x4648c5,'inverseViewProjection':_0x134d8e(_0x4648c5)};}[_0x3cf00e(0x48d)](_0x42179f){const _0x5f2b4d=_0x3cf00e;_0x481c50(_0x42179f[_0x5f2b4d(0x1e3)]),this['cameraState']=_0x558d8f(_0x42179f);}[_0x3cf00e(0x1a2)](_0x4647a8){const _0x26fef7=_0x3cf00e;if(!(_0x4647a8>0x0)||!Number['isFinite'](_0x4647a8))throw Error('相机宽高比必须是大于\x200\x20的有限数。');this[_0x26fef7(0x353)]=_0x4647a8;}[_0x3cf00e(0x407)](_0x4777a6){const _0x2c5cdd=_0x3cf00e;if(_0x4777a6===this[_0x2c5cdd(0x269)]['projection'][_0x2c5cdd(0x2f2)])return;let _0x2a5cfc=Math[_0x2c5cdd(0x241)](..._0xc2f4df(this[_0x2c5cdd(0x269)]['position'],this[_0x2c5cdd(0x269)][_0x2c5cdd(0x39f)]));if(_0x4777a6===_0x2c5cdd(0x3cd)){let _0x4fa3f4=this['cameraState'][_0x2c5cdd(0x1e3)],_0x4d9c1b=_0x4fa3f4[_0x2c5cdd(0x2f2)]===_0x2c5cdd(0x459)?_0x4fa3f4[_0x2c5cdd(0x1fe)]*_0x9c1839:0x2d*_0x9c1839;this['cameraState'][_0x2c5cdd(0x1e3)]={'type':_0x4777a6,'height':0x2*_0x2a5cfc*Math[_0x2c5cdd(0x470)](_0x4d9c1b/0x2),'near':_0x4fa3f4['near'],'far':_0x4fa3f4[_0x2c5cdd(0x267)]};return;}let _0x40d62e=this['cameraState']['projection'],_0x54ddd2=_0x40d62e[_0x2c5cdd(0x2f2)]===_0x2c5cdd(0x3cd)?_0x40d62e[_0x2c5cdd(0x488)]/(0x2*Math[_0x2c5cdd(0x470)](0x2d*_0x9c1839/0x2)):_0x2a5cfc,_0x15ef8b=_0x2c87f1(_0xc2f4df(this[_0x2c5cdd(0x269)][_0x2c5cdd(0x1f9)],this[_0x2c5cdd(0x269)]['target']));this[_0x2c5cdd(0x269)]['position']=_0x474f7d(this[_0x2c5cdd(0x269)][_0x2c5cdd(0x39f)],_0x491ffb(_0x15ef8b,_0x54ddd2)),this[_0x2c5cdd(0x269)][_0x2c5cdd(0x1e3)]={'type':_0x4777a6,'fovYDegrees':0x2d,'near':_0x40d62e[_0x2c5cdd(0x339)],'far':_0x40d62e[_0x2c5cdd(0x267)]};}[_0x3cf00e(0x3b9)](_0x464c53,_0x7f0581){const _0x50f18c=_0x3cf00e;let _0x2813e9=_0xc2f4df(this[_0x50f18c(0x269)][_0x50f18c(0x1f9)],this[_0x50f18c(0x269)][_0x50f18c(0x39f)]),_0x2f3986=Math['hypot'](..._0x2813e9);if(_0x2f3986===0x0)return;let _0x6fdd99=Math[_0x50f18c(0x375)](_0x2813e9[0x0],_0x2813e9[0x2])-_0x464c53*this[_0x50f18c(0x16c)],_0x1d320c=_0x10dbc5(Math[_0x50f18c(0x431)](_0x2813e9[0x1]/_0x2f3986)+_0x7f0581*this['rotateSpeed'],this['minimumPitch'],this[_0x50f18c(0x1c1)]),_0x1e67a2=Math[_0x50f18c(0x45c)](_0x1d320c)*_0x2f3986;this[_0x50f18c(0x269)][_0x50f18c(0x1f9)]=_0x474f7d(this['cameraState'][_0x50f18c(0x39f)],[Math[_0x50f18c(0x1bf)](_0x6fdd99)*_0x1e67a2,Math[_0x50f18c(0x1bf)](_0x1d320c)*_0x2f3986,Math[_0x50f18c(0x45c)](_0x6fdd99)*_0x1e67a2]);}[_0x3cf00e(0x358)](_0x327dff,_0x60ef5c,_0x4bf590){const _0x332a41=_0x3cf00e;if(!(_0x4bf590>0x0))return;let _0x23f059=_0x2c87f1(_0xc2f4df(this[_0x332a41(0x269)][_0x332a41(0x39f)],this['cameraState']['position'])),_0x53c22d=_0x2c87f1(_0x56fbb2(_0x23f059,this['cameraState']['up'])),_0x3c796a=_0x2c87f1(_0x56fbb2(_0x53c22d,_0x23f059)),_0x126c8f=Math[_0x332a41(0x241)](..._0xc2f4df(this[_0x332a41(0x269)][_0x332a41(0x1f9)],this[_0x332a41(0x269)][_0x332a41(0x39f)])),_0x2f466a=(this[_0x332a41(0x269)][_0x332a41(0x1e3)][_0x332a41(0x2f2)]===_0x332a41(0x3cd)?this[_0x332a41(0x269)][_0x332a41(0x1e3)][_0x332a41(0x488)]:0x2*_0x126c8f*Math['tan'](this[_0x332a41(0x269)]['projection'][_0x332a41(0x1fe)]*_0x9c1839/0x2))/_0x4bf590*this[_0x332a41(0x2c1)],_0x3b65d7=_0x474f7d(_0x491ffb(_0x53c22d,-_0x327dff*_0x2f466a),_0x491ffb(_0x3c796a,_0x60ef5c*_0x2f466a));this[_0x332a41(0x269)]['position']=_0x474f7d(this[_0x332a41(0x269)]['position'],_0x3b65d7),this[_0x332a41(0x269)][_0x332a41(0x39f)]=_0x474f7d(this[_0x332a41(0x269)][_0x332a41(0x39f)],_0x3b65d7);}[_0x3cf00e(0x233)](_0x400bcc){const _0x456623=_0x3cf00e;let _0x6e72a1=Math[_0x456623(0x2b5)](_0x400bcc*this[_0x456623(0x2f0)]);if(this[_0x456623(0x269)][_0x456623(0x1e3)][_0x456623(0x2f2)]==='orthographic'){this['cameraState'][_0x456623(0x1e3)]={...this[_0x456623(0x269)][_0x456623(0x1e3)],'height':Math['max'](this[_0x456623(0x2ba)],this[_0x456623(0x269)][_0x456623(0x1e3)]['height']*_0x6e72a1)};return;}let _0x3b27b9=_0xc2f4df(this['cameraState']['position'],this['cameraState'][_0x456623(0x39f)]),_0x42cf02=_0x10dbc5(Math[_0x456623(0x241)](..._0x3b27b9)*_0x6e72a1,this[_0x456623(0x2ba)],this[_0x456623(0x37a)]);this['cameraState'][_0x456623(0x1f9)]=_0x474f7d(this['cameraState'][_0x456623(0x39f)],_0x491ffb(_0x2c87f1(_0x3b27b9),_0x42cf02));}[_0x3cf00e(0x3b7)](){const _0x13629b=_0x3cf00e;let _0x2fe300=this[_0x13629b(0x269)]['projection'];return _0x2fe300['type']===_0x13629b(0x459)?_0x33d637(_0x2fe300[_0x13629b(0x1fe)]*_0x9c1839,this[_0x13629b(0x353)],_0x2fe300[_0x13629b(0x339)],_0x2fe300[_0x13629b(0x267)]):_0xc22d82(_0x2fe300[_0x13629b(0x488)],this[_0x13629b(0x353)],_0x2fe300['near'],_0x2fe300[_0x13629b(0x267)]);}};let _0x198246=(_0x2568f3,_0x584491)=>Number[_0x3cf00e(0x229)](_0x2568f3)||_0x584491!==void 0x0&&_0x2568f3===_0x584491,_0x306a5c=(_0x2f9825,_0x31c19c)=>_0x2f9825[_0x3cf00e(0x17f)]===_0x2f9825[_0x3cf00e(0x196)]?0x0:(_0x31c19c-_0x2f9825[_0x3cf00e(0x17f)])/(_0x2f9825[_0x3cf00e(0x196)]-_0x2f9825[_0x3cf00e(0x17f)]),_0x11c872=_0x180274=>{const _0x51ed25=_0x3cf00e;if(!_0x180274['id'])throw Error(_0x51ed25(0x33f));if(_0x180274['path'][_0x51ed25(0x29e)]<0x4||_0x180274[_0x51ed25(0x1f0)][_0x51ed25(0x29e)]%0x2!=0x0)throw Error(_0x51ed25(0x2a0)+_0x180274['id']+_0x51ed25(0x2a9));if(_0x180274[_0x51ed25(0x45e)][_0x51ed25(0x29e)]<0x2)throw Error(_0x51ed25(0x2a0)+_0x180274['id']+_0x51ed25(0x1d7));let _0x221d3b=_0x180274[_0x51ed25(0x1f0)]['length']/0x2;if(_0x180274['values']['length']!==_0x221d3b*_0x180274['heights'][_0x51ed25(0x29e)])throw Error(_0x51ed25(0x2a0)+_0x180274['id']+_0x51ed25(0x1e6));if(_0x180274[_0x51ed25(0x2cd)]!==void 0x0&&(!(_0x180274[_0x51ed25(0x2cd)]>=0x0&&_0x180274[_0x51ed25(0x2cd)]<=0x1)||!Number['isFinite'](_0x180274[_0x51ed25(0x2cd)])))throw Error(_0x51ed25(0x2a0)+_0x180274['id']+'\x20的\x20opacity\x20必须位于\x200\x20到\x201。');for(let _0x2994bd of _0x180274[_0x51ed25(0x1f0)])if(!Number['isFinite'](_0x2994bd))throw Error('路线剖面\x20'+_0x180274['id']+'\x20的\x20path\x20包含非有限坐标。');for(let _0x1eea86 of _0x180274[_0x51ed25(0x45e)])if(!Number[_0x51ed25(0x2f3)](_0x1eea86))throw Error('路线剖面\x20'+_0x180274['id']+_0x51ed25(0x4a9));return _0x221d3b;},_0x379879=(_0x298ab4,_0x4e89d8,_0x52dbce)=>{const _0x317f99=_0x3cf00e;let _0x4c61a8=new Float32Array(_0x4e89d8*_0x298ab4['heights'][_0x317f99(0x29e)]*0x3);for(let _0x3ac2fc=0x0;_0x3ac2fc<_0x298ab4[_0x317f99(0x45e)][_0x317f99(0x29e)];_0x3ac2fc+=0x1)for(let _0x3dae19=0x0;_0x3dae19<_0x4e89d8;_0x3dae19+=0x1){let _0x1930ff=(_0x3ac2fc*_0x4e89d8+_0x3dae19)*0x3;_0x4c61a8[_0x1930ff]=_0x306a5c(_0x52dbce[_0x317f99(0x49a)],_0x298ab4['path'][_0x3dae19*0x2]),_0x4c61a8[_0x1930ff+0x1]=_0x306a5c(_0x52dbce['yAxis'],_0x298ab4['heights'][_0x3ac2fc]),_0x4c61a8[_0x1930ff+0x2]=_0x306a5c(_0x52dbce[_0x317f99(0x28b)],_0x298ab4['path'][_0x3dae19*0x2+0x1]);}return _0x4c61a8;},_0x803241=_0x480e58=>{const _0x41d6b6=_0x3cf00e;let _0x561a65=new Float32Array(_0x480e58['values'][_0x41d6b6(0x29e)]);for(let _0x5093fb=0x0;_0x5093fb<_0x480e58[_0x41d6b6(0x441)][_0x41d6b6(0x29e)];_0x5093fb+=0x1){let _0x534144=_0x480e58[_0x41d6b6(0x441)][_0x5093fb];_0x561a65[_0x5093fb]=_0x198246(_0x534144,_0x480e58[_0x41d6b6(0x4c9)])?NaN:_0x534144;}return _0x561a65;},_0x3a6107=(_0x42b04d,_0xebbc17)=>{let _0x5e452b=new Uint32Array((_0x42b04d-0x1)*(_0xebbc17-0x1)*0x6),_0x33064b=0x0;for(let _0x3eb7e1=0x0;_0x3eb7e1<_0xebbc17-0x1;_0x3eb7e1+=0x1)for(let _0x41d56b=0x0;_0x41d56b<_0x42b04d-0x1;_0x41d56b+=0x1){let _0x3365cc=_0x3eb7e1*_0x42b04d+_0x41d56b,_0x4cc82f=_0x3365cc+0x1,_0xaafc8d=_0x3365cc+_0x42b04d,_0x2ed4dd=_0xaafc8d+0x1;_0x5e452b[_0x33064b]=_0x3365cc,_0x5e452b[_0x33064b+0x1]=_0x4cc82f,_0x5e452b[_0x33064b+0x2]=_0xaafc8d,_0x5e452b[_0x33064b+0x3]=_0xaafc8d,_0x5e452b[_0x33064b+0x4]=_0x4cc82f,_0x5e452b[_0x33064b+0x5]=_0x2ed4dd,_0x33064b+=0x6;}return _0x5e452b;},_0x562375=(_0x5dd379,_0x287640)=>{const _0x2d5958=_0x3cf00e;let _0x4385c2=_0x11c872(_0x5dd379);return{'id':_0x5dd379['id'],'positions':_0x379879(_0x5dd379,_0x4385c2,_0x287640),'values':_0x803241(_0x5dd379),'indices':_0x3a6107(_0x4385c2,_0x5dd379[_0x2d5958(0x45e)][_0x2d5958(0x29e)]),'opacity':_0x5dd379['opacity']??0x1,'depthMode':_0x5dd379[_0x2d5958(0x438)]??_0x2d5958(0x2d0),'revision':_0x5dd379[_0x2d5958(0x1b7)]};};var _0x255239=_0x3cf00e(0x31d),_0x4303d1=_0x3cf00e(0x217),_0x41aa11=_0x3cf00e(0x344);let _0x4a47f8=_0x4e9f9b=>{const _0x3de26c=_0x3cf00e;if([_0x4e9f9b[_0x3de26c(0x49a)]['count'],_0x4e9f9b[_0x3de26c(0x46c)][_0x3de26c(0x400)],_0x4e9f9b[_0x3de26c(0x28b)][_0x3de26c(0x400)],_0x4e9f9b[_0x3de26c(0x26f)],_0x4e9f9b[_0x3de26c(0x2a5)],_0x4e9f9b['brickDepth']][_0x3de26c(0x21c)](_0x4c4b8f=>!Number[_0x3de26c(0x483)](_0x4c4b8f)||_0x4c4b8f<=0x0))throw Error('WebGPU\x20volume\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积尺寸必须是正整数。');if(_0x4e9f9b[_0x3de26c(0x296)]!==0x1)throw Error(_0x3de26c(0x42e));},_0x3fbe1a=_0x1e1f3a=>[Math[_0x3cf00e(0x42a)](_0x1e1f3a[_0x3cf00e(0x49a)][_0x3cf00e(0x400)]/_0x1e1f3a['brickWidth']),Math['ceil'](_0x1e1f3a[_0x3cf00e(0x46c)][_0x3cf00e(0x400)]/_0x1e1f3a[_0x3cf00e(0x2a5)]),Math[_0x3cf00e(0x42a)](_0x1e1f3a[_0x3cf00e(0x28b)][_0x3cf00e(0x400)]/_0x1e1f3a[_0x3cf00e(0x328)])],_0x3d7471=(_0x294404,_0x56ecc3)=>{const _0x544c04=_0x3cf00e;let _0x488080=_0x56ecc3[0x0]*_0x56ecc3[0x1],_0x2e1594=Math[_0x544c04(0x193)](_0x294404/_0x488080),_0x54b0a4=_0x294404-_0x2e1594*_0x488080,_0x46adb1=Math[_0x544c04(0x193)](_0x54b0a4/_0x56ecc3[0x0]);return[_0x54b0a4-_0x46adb1*_0x56ecc3[0x0],_0x46adb1,_0x2e1594];},_0x53961f=(_0x50e774,_0x13c715,_0x563529)=>{const _0x5c1fa6=_0x3cf00e;let _0x1a5506=_0x13c715['brickWidth']+0x2,_0x40e15f=_0x13c715[_0x5c1fa6(0x2a5)]+0x2,_0x475b47=_0x3d7471(_0x50e774[_0x5c1fa6(0x2b3)],_0x563529),_0x60a86c=Math[_0x5c1fa6(0x46a)](_0x13c715[_0x5c1fa6(0x26f)],_0x13c715[_0x5c1fa6(0x49a)][_0x5c1fa6(0x400)]-_0x475b47[0x0]*_0x13c715[_0x5c1fa6(0x26f)]),_0x170424=Math[_0x5c1fa6(0x46a)](_0x13c715[_0x5c1fa6(0x2a5)],_0x13c715['yAxis']['count']-_0x475b47[0x1]*_0x13c715['brickHeight']),_0x3e7ddf=Math[_0x5c1fa6(0x46a)](_0x13c715[_0x5c1fa6(0x328)],_0x13c715[_0x5c1fa6(0x28b)][_0x5c1fa6(0x400)]-_0x475b47[0x2]*_0x13c715[_0x5c1fa6(0x328)]);for(let _0x2be986=0x0;_0x2be986<_0x3e7ddf;_0x2be986+=0x1)for(let _0xccbbb6=0x0;_0xccbbb6<_0x170424;_0xccbbb6+=0x1){let _0x578ce4=((_0x2be986+0x1)*_0x40e15f+_0xccbbb6+0x1)*_0x1a5506+0x1;for(let _0xc441ce=0x0;_0xc441ce<_0x60a86c;_0xc441ce+=0x1){let _0x10b34f=_0x50e774[_0x5c1fa6(0x441)][_0x578ce4+_0xc441ce];if(_0x10b34f===_0x10b34f&&(_0x13c715[_0x5c1fa6(0x4c9)]===void 0x0||_0x10b34f!==_0x13c715[_0x5c1fa6(0x4c9)]))return{'occupied':!0x0,'coreSampleCount':_0x60a86c*_0x170424*_0x3e7ddf};}}return{'occupied':!0x1,'coreSampleCount':_0x60a86c*_0x170424*_0x3e7ddf};},_0x26ec2a=(_0x4820c2,_0x106d7b,_0x707cb0,_0x1ba2f2,_0x93d5f9)=>{const _0x177e72=_0x3cf00e;if(_0x4820c2<=0x0)return null;let _0x40053e=Math[_0x177e72(0x193)](_0x93d5f9/_0x106d7b),_0x4a9cef=Math[_0x177e72(0x193)](_0x93d5f9/_0x707cb0),_0x27a138=Math[_0x177e72(0x193)](_0x93d5f9/_0x1ba2f2),_0x519c96=null;for(let _0x6441d3=0x1;_0x6441d3<=_0x40053e;_0x6441d3+=0x1)for(let _0x244f6a=0x1;_0x244f6a<=_0x4a9cef;_0x244f6a+=0x1){let _0xca807c=Math[_0x177e72(0x46a)](_0x27a138,Math[_0x177e72(0x193)](_0x4820c2/(_0x6441d3*_0x244f6a))),_0x1d4418=_0x6441d3*_0x244f6a*_0xca807c;_0xca807c<=0x0||_0x1d4418<=(_0x519c96?.[_0x177e72(0x3ae)]??0x0)||(_0x519c96={'slotCountX':_0x6441d3,'slotCountY':_0x244f6a,'slotCountZ':_0xca807c,'slotCount':_0x1d4418,'textureCount':0x1,'capacity':_0x1d4418});}return _0x519c96;},_0x4cc19b=(_0x3cdbb7,_0x48643e)=>{const _0x1ebb2a=_0x3cf00e;let _0x4ee923=_0x48643e['slotCountX']*_0x48643e['slotCountY'],_0x1cc573=Math[_0x1ebb2a(0x193)](_0x3cdbb7/_0x4ee923),_0x25dcdd=_0x3cdbb7-_0x1cc573*_0x4ee923,_0x4f220d=Math['floor'](_0x25dcdd/_0x48643e[_0x1ebb2a(0x371)]);return[_0x25dcdd-_0x4f220d*_0x48643e[_0x1ebb2a(0x371)],_0x4f220d,_0x1cc573];},_0x1b7fe6=(_0x69a25,_0x59d320)=>{const _0x250fb8=_0x3cf00e;let _0x2ff6d1=null;for(let _0x55d48a of _0x69a25)_0x55d48a[_0x250fb8(0x3a0)]!==_0x59d320&&(!_0x2ff6d1||_0x55d48a['lastUsedFrame']<_0x2ff6d1[_0x250fb8(0x3a0)])&&(_0x2ff6d1=_0x55d48a);return _0x2ff6d1;},_0x4dd93f=(_0x27f877,_0xc532b7,_0x5950ad,_0x467129)=>{const _0x1a2565=_0x3cf00e;let _0x5004b5=_0xc532b7*Float32Array[_0x1a2565(0x1bb)],_0x493c85=Math[_0x1a2565(0x42a)](_0x5004b5/0x100)*0x100;if(_0x5004b5===_0x493c85)return{'values':_0x27f877,'bytesPerRow':_0x493c85};let _0x590a0f=_0x493c85/Float32Array['BYTES_PER_ELEMENT'],_0x45753f=new Float32Array(_0x590a0f*_0x5950ad*_0x467129);for(let _0x3d6c18=0x0;_0x3d6c18<_0x467129;_0x3d6c18+=0x1)for(let _0x22ef73=0x0;_0x22ef73<_0x5950ad;_0x22ef73+=0x1){let _0x2556f4=(_0x3d6c18*_0x5950ad+_0x22ef73)*_0xc532b7,_0x30781e=(_0x3d6c18*_0x5950ad+_0x22ef73)*_0x590a0f;_0x45753f[_0x1a2565(0x466)](_0x27f877['subarray'](_0x2556f4,_0x2556f4+_0xc532b7),_0x30781e);}return{'values':_0x45753f,'bytesPerRow':_0x493c85};};var _0x42b6f4=class{['device'];['memoryTargetBytes'];[_0x3cf00e(0x208)];[_0x3cf00e(0x284)]=null;[_0x3cf00e(0x1d2)]=null;[_0x3cf00e(0x1bc)]=[];[_0x3cf00e(0x274)]=[];[_0x3cf00e(0x23b)]=null;['pageTableValues']=new Uint32Array();[_0x3cf00e(0x243)]=new Map();[_0x3cf00e(0x364)]=new Map();['generation']=0x0;constructor(_0x179bb3,_0x4d46d9=0x20000000,_0x35bf70=_0x4d46d9){const _0x243872=_0x3cf00e;if(!Number[_0x243872(0x2f3)](_0x4d46d9)||!Number[_0x243872(0x2f3)](_0x35bf70)||_0x4d46d9<=0x0||_0x35bf70<=0x0)throw Error(_0x243872(0x38d));this[_0x243872(0x42d)]=_0x179bb3,this[_0x243872(0x46d)]=Math[_0x243872(0x46a)](_0x4d46d9,_0x35bf70),this[_0x243872(0x208)]=_0x35bf70;}get[_0x3cf00e(0x376)](){const _0x1df7d5=_0x3cf00e;if(!this[_0x1df7d5(0x284)])throw Error(_0x1df7d5(0x34d));return this[_0x1df7d5(0x284)];}get[_0x3cf00e(0x45b)](){const _0xb887b1=_0x3cf00e;if(!this[_0xb887b1(0x1d2)])throw Error(_0xb887b1(0x2f9));return this[_0xb887b1(0x1d2)];}get[_0x3cf00e(0x1ee)](){const _0x29ac17=_0x3cf00e;return this['residentByLogicalIndex'][_0x29ac17(0x304)];}get['statistics'](){const _0x23bb9d=_0x3cf00e;if(!this[_0x23bb9d(0x284)]||!this[_0x23bb9d(0x1d2)])return{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this[_0x23bb9d(0x208)],'budgetLimited':!0x1,'skippedSamples':0x0,'skippedCells':0x0};let _0x196a5f=_0x3fbe1a(this[_0x23bb9d(0x284)]),_0x195556=_0x196a5f[0x0]*_0x196a5f[0x1]*_0x196a5f[0x2],_0x460ddf=this[_0x23bb9d(0x284)][_0x23bb9d(0x26f)]+0x2,_0x83723b=this[_0x23bb9d(0x284)]['brickHeight']+0x2,_0x51e20d=this[_0x23bb9d(0x284)][_0x23bb9d(0x328)]+0x2,_0x2d5b07=_0x460ddf*_0x83723b*_0x51e20d*this['layout'][_0x23bb9d(0x276)]*Float32Array[_0x23bb9d(0x1bb)],_0x596674=_0x195556*0x4*Uint32Array[_0x23bb9d(0x1bb)],_0x6db352=0x0,_0x26733c=0x0;for(let _0x4ebbb7 of this[_0x23bb9d(0x243)][_0x23bb9d(0x441)]())_0x4ebbb7[_0x23bb9d(0x311)]||(_0x26733c+=0x1,_0x6db352+=_0x4ebbb7[_0x23bb9d(0x1ff)]);return{'logicalBrickCount':_0x195556,'atlasCapacity':this[_0x23bb9d(0x1d2)]['capacity'],'gpuBytes':_0x2d5b07+_0x596674,'memoryLimitBytes':this[_0x23bb9d(0x208)],'budgetLimited':this[_0x23bb9d(0x1d2)][_0x23bb9d(0x276)]<_0x195556,'skippedSamples':_0x6db352,'skippedCells':_0x26733c};}[_0x3cf00e(0x481)](_0x22ab8f){const _0x37b26f=_0x3cf00e;_0x4a47f8(_0x22ab8f);let _0x4ba1c1=_0x22ab8f['brickWidth']+0x2,_0x219911=_0x22ab8f[_0x37b26f(0x2a5)]+0x2,_0x3ab76e=_0x22ab8f[_0x37b26f(0x328)]+0x2,_0x483a09=_0x3fbe1a(_0x22ab8f),_0x2f3849=_0x483a09[0x0]*_0x483a09[0x1]*_0x483a09[0x2],_0x5026ff=_0x2f3849*0x4*Uint32Array['BYTES_PER_ELEMENT'],_0x122539=Math[_0x37b26f(0x46a)](this[_0x37b26f(0x46d)],this[_0x37b26f(0x208)])-_0x5026ff;if(_0x122539<=0x0)throw Error('WebGPU\x20volume\x20page\x20table\x20exceeds\x20the\x20configured\x20memory\x20limit.\x20WebGPU\x20体积页表超过显存限制。');let _0x38148f=_0x4ba1c1*_0x219911*_0x3ab76e*Float32Array[_0x37b26f(0x1bb)],_0x53b0cd=Math[_0x37b26f(0x46a)](_0x2f3849,Math['floor'](_0x122539/_0x38148f)),_0x6aa81e=Math[_0x37b26f(0x181)](0x1,Math['floor'](0x4000000/_0x38148f)),_0x4de44f=Math[_0x37b26f(0x46a)](0x8,Math[_0x37b26f(0x181)](0x1,Math[_0x37b26f(0x42a)](_0x53b0cd/_0x6aa81e))),_0x28be81=_0x26ec2a(Math[_0x37b26f(0x181)](0x1,Math[_0x37b26f(0x193)](_0x53b0cd/_0x4de44f)),_0x4ba1c1,_0x219911,_0x3ab76e,this['device'][_0x37b26f(0x2eb)]['maxTextureDimension3D']);if(!_0x28be81)throw Error('Unable\x20to\x20allocate\x20a\x20WebGPU\x20R32F\x20volume\x20atlas\x20within\x20device\x20limits.\x20无法在设备限制内分配\x20WebGPU\x20R32F\x20体积图集。');let _0x1fae59={..._0x28be81,'textureCount':_0x4de44f,'capacity':_0x28be81[_0x37b26f(0x3ae)]*_0x4de44f},_0x11018b=_0x4ba1c1*_0x1fae59[_0x37b26f(0x371)],_0x24a777=_0x219911*_0x1fae59['slotCountY'],_0x501e56=_0x3ab76e*_0x1fae59[_0x37b26f(0x17a)],_0x4ca814=Array['from']({'length':_0x4de44f},(_0x13fdbe,_0x1d5aac)=>this['device'][_0x37b26f(0x3f3)]({'label':_0x37b26f(0x23d)+_0x1d5aac,'size':[_0x11018b,_0x24a777,_0x501e56],'dimension':'3d','format':_0x37b26f(0x404),'usage':GPUTextureUsage[_0x37b26f(0x318)]|GPUTextureUsage['COPY_DST']|GPUTextureUsage[_0x37b26f(0x2f5)]})),_0x227b1a=this[_0x37b26f(0x42d)][_0x37b26f(0x1cc)]({'label':_0x37b26f(0x458),'size':Math[_0x37b26f(0x181)](0x10,_0x5026ff),'usage':GPUBufferUsage[_0x37b26f(0x30b)]|GPUBufferUsage[_0x37b26f(0x473)]});this['destroyResources'](),this[_0x37b26f(0x284)]={..._0x22ab8f},this[_0x37b26f(0x1d2)]=_0x1fae59,this[_0x37b26f(0x1bc)]=_0x4ca814,this[_0x37b26f(0x274)]=_0x4ca814[_0x37b26f(0x4bc)](_0xe1b11b=>_0xe1b11b[_0x37b26f(0x3e1)]({'dimension':'3d'})),this[_0x37b26f(0x23b)]=_0x227b1a,this[_0x37b26f(0x1a1)]=new Uint32Array(_0x2f3849*0x4),this[_0x37b26f(0x42d)][_0x37b26f(0x3e6)][_0x37b26f(0x391)](_0x227b1a,0x0,this[_0x37b26f(0x1a1)]);for(let _0x786bd5 of _0x4ca814)this[_0x37b26f(0x1fc)](_0x786bd5,_0x11018b,_0x24a777,_0x501e56);this['generation']+=0x1;}[_0x3cf00e(0x19e)](_0x1327ac,_0x26f18a){const _0x3576ea=_0x3cf00e;let _0x4feca4=this[_0x3576ea(0x376)],_0xe46d1d=this[_0x3576ea(0x45b)],_0x52ca02=_0x3fbe1a(_0x4feca4),_0x351acf=_0x52ca02[0x0]*_0x52ca02[0x1]*_0x52ca02[0x2];if(!Number['isInteger'](_0x1327ac[_0x3576ea(0x2b3)])||_0x1327ac[_0x3576ea(0x2b3)]<0x0||_0x1327ac[_0x3576ea(0x2b3)]>=_0x351acf)throw Error(_0x3576ea(0x162)+_0x1327ac[_0x3576ea(0x2b3)]+_0x3576ea(0x1f6));let _0x1b78db=_0x4feca4[_0x3576ea(0x26f)]+0x2,_0x57dcb6=_0x4feca4['brickHeight']+0x2,_0x345cce=_0x4feca4[_0x3576ea(0x328)]+0x2,_0x22ace5=_0x1b78db*_0x57dcb6*_0x345cce;if(_0x1327ac[_0x3576ea(0x441)]['length']!==_0x22ace5)throw Error(_0x3576ea(0x4b1)+_0x1327ac[_0x3576ea(0x2b3)]+_0x3576ea(0x209)+_0x22ace5+_0x3576ea(0x469)+_0x1327ac[_0x3576ea(0x441)][_0x3576ea(0x29e)]+_0x3576ea(0x3ee));let _0x18cb7e=this[_0x3576ea(0x243)]['get'](_0x1327ac[_0x3576ea(0x2b3)])??this[_0x3576ea(0x305)](_0x1327ac[_0x3576ea(0x2b3)],_0x26f18a),_0x3f2624=_0x53961f(_0x1327ac,_0x4feca4,_0x52ca02),_0x25cba5=Math[_0x3576ea(0x193)](_0x18cb7e[_0x3576ea(0x3f5)]/_0xe46d1d[_0x3576ea(0x3ae)]),_0x3407ac=_0x4cc19b(_0x18cb7e[_0x3576ea(0x3f5)]%_0xe46d1d[_0x3576ea(0x3ae)],_0xe46d1d),_0x2531bc=_0x4dd93f(new Float32Array(_0x1327ac[_0x3576ea(0x441)]),_0x1b78db,_0x57dcb6,_0x345cce);return _0x18cb7e[_0x3576ea(0x3a0)]=_0x26f18a,_0x18cb7e['generation']=this[_0x3576ea(0x355)],_0x18cb7e[_0x3576ea(0x311)]=_0x3f2624[_0x3576ea(0x311)],_0x18cb7e[_0x3576ea(0x1ff)]=_0x3f2624['coreSampleCount'],this[_0x3576ea(0x2c4)](_0x18cb7e),{'values':_0x2531bc['values'],'bytesPerRow':_0x2531bc[_0x3576ea(0x17b)],'rowsPerImage':_0x57dcb6,'origin':{'x':_0x3407ac[0x0]*_0x1b78db,'y':_0x3407ac[0x1]*_0x57dcb6,'z':_0x3407ac[0x2]*_0x345cce},'extent':[_0x1b78db,_0x57dcb6,_0x345cce],'atlasIndex':_0x25cba5};}[_0x3cf00e(0x302)](_0x377aba,_0x3065be,_0x28fbdb,_0x2b9d72){const _0x272864=_0x3cf00e;_0x377aba[_0x272864(0x347)]({'buffer':_0x3065be,'offset':_0x28fbdb,'bytesPerRow':_0x2b9d72[_0x272864(0x17b)],'rowsPerImage':_0x2b9d72[_0x272864(0x259)]},{'texture':this[_0x272864(0x2d6)](_0x2b9d72[_0x272864(0x297)]),'origin':_0x2b9d72[_0x272864(0x321)]},_0x2b9d72[_0x272864(0x1c5)]);}['touch'](_0x183393,_0x34b3a5){const _0x37c3b2=_0x3cf00e;for(let _0x105c85 of _0x183393){let _0xcd548f=this[_0x37c3b2(0x243)]['get'](_0x105c85);_0xcd548f&&(_0xcd548f['lastUsedFrame']=_0x34b3a5);}}[_0x3cf00e(0x1d1)](_0x13e581,_0x1fafcd){const _0xe4bb57=_0x3cf00e;if(this['atlasViews'][_0xe4bb57(0x29e)]===0x0||!this[_0xe4bb57(0x23b)])throw Error(_0xe4bb57(0x2c9));return this['device'][_0xe4bb57(0x1d1)]({'label':_0xe4bb57(0x236),'layout':_0x13e581,'entries':[...Array['from']({'length':0x8},(_0x5934d9,_0x3ed51d)=>({'binding':_0x3ed51d,'resource':this[_0xe4bb57(0x274)][_0x3ed51d]??this['atlasViews'][0x0]})),{'binding':0x8,'resource':{'buffer':this[_0xe4bb57(0x23b)]}},{'binding':0x9,'resource':{'buffer':_0x1fafcd}}]});}[_0x3cf00e(0x32b)](){const _0x487369=_0x3cf00e;this[_0x487369(0x465)](),this[_0x487369(0x284)]=null,this[_0x487369(0x1d2)]=null,this[_0x487369(0x1a1)]=new Uint32Array();}['acquireSlot'](_0xd8513c,_0x48a6bf){const _0x2065b6=_0x3cf00e;let _0x2bc527=this[_0x2065b6(0x45b)],_0x293b5b=this['residentBySlotIndex'][_0x2065b6(0x304)];if(_0x293b5b>=_0x2bc527[_0x2065b6(0x276)]){let _0x2a667d=_0x1b7fe6(this[_0x2065b6(0x364)][_0x2065b6(0x441)](),_0x48a6bf);if(!_0x2a667d)throw Error(_0x2065b6(0x30f));_0x293b5b=_0x2a667d['slotIndex'],this[_0x2065b6(0x3db)](_0x2a667d[_0x2065b6(0x2b3)]),this[_0x2065b6(0x243)]['delete'](_0x2a667d['logicalIndex']),this[_0x2065b6(0x364)][_0x2065b6(0x370)](_0x293b5b);}let _0x39b283={'logicalIndex':_0xd8513c,'slotIndex':_0x293b5b,'lastUsedFrame':_0x48a6bf,'generation':this[_0x2065b6(0x355)],'occupied':!0x1,'skippedSampleCount':0x0};return this[_0x2065b6(0x243)][_0x2065b6(0x466)](_0xd8513c,_0x39b283),this[_0x2065b6(0x364)][_0x2065b6(0x466)](_0x293b5b,_0x39b283),_0x39b283;}[_0x3cf00e(0x2c4)](_0x530a17){const _0x47ce4c=_0x3cf00e;let _0x2c044c=_0x530a17[_0x47ce4c(0x2b3)]*0x4;this[_0x47ce4c(0x1a1)][_0x2c044c]=_0x530a17['slotIndex']%this['atlasLayout']['slotCount']+0x1,this[_0x47ce4c(0x1a1)][_0x2c044c+0x1]=_0x530a17[_0x47ce4c(0x355)],this['pageTableValues'][_0x2c044c+0x2]=+!!_0x530a17['occupied'],this[_0x47ce4c(0x1a1)][_0x2c044c+0x3]=Math[_0x47ce4c(0x193)](_0x530a17[_0x47ce4c(0x3f5)]/this[_0x47ce4c(0x45b)][_0x47ce4c(0x3ae)]),this['device'][_0x47ce4c(0x3e6)][_0x47ce4c(0x391)](this[_0x47ce4c(0x306)](),_0x2c044c*Uint32Array[_0x47ce4c(0x1bb)],this[_0x47ce4c(0x1a1)],_0x2c044c,0x4);}[_0x3cf00e(0x3db)](_0x24097f){const _0x3ca395=_0x3cf00e;let _0x2b920d=_0x24097f*0x4;this['pageTableValues'][_0x3ca395(0x48e)](0x0,_0x2b920d,_0x2b920d+0x4),this[_0x3ca395(0x42d)]['queue']['writeBuffer'](this[_0x3ca395(0x306)](),_0x2b920d*Uint32Array['BYTES_PER_ELEMENT'],this[_0x3ca395(0x1a1)],_0x2b920d,0x4);}['getAtlasTexture'](_0x264f66){const _0x279cbe=_0x3cf00e;let _0x81dd9=this[_0x279cbe(0x1bc)][_0x264f66];if(!_0x81dd9)throw Error('WebGPU\x20volume\x20atlas\x20texture\x20is\x20unavailable.\x20WebGPU\x20体积图集纹理不可用。');return _0x81dd9;}['clearAtlasTexture'](_0x2dc938,_0xf52f81,_0x3ab52b,_0x91a7c8){const _0x23f396=_0x3cf00e;let _0x4a01d5=this[_0x23f396(0x42d)][_0x23f396(0x1f4)]({'label':'volume\x20atlas\x20clear\x20shader','code':'\x0a@group(0)\x20@binding(0)\x20var\x20atlas:\x20texture_storage_3d<r32float,\x20write>;\x0a\x0a@compute\x20@workgroup_size(4,\x204,\x204)\x0afn\x20main(@builtin(global_invocation_id)\x20invocation:\x20vec3u)\x20{\x0a\x20\x20\x20\x20let\x20dimensions\x20=\x20textureDimensions(atlas);\x0a\x20\x20\x20\x20if\x20(all(invocation\x20<\x20dimensions))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20textureStore(atlas,\x20vec3i(invocation),\x20vec4f(0.0));\x0a\x20\x20\x20\x20}\x0a}\x0a'}),_0x2ce362=this[_0x23f396(0x42d)][_0x23f396(0x34f)]({'label':'volume\x20atlas\x20clear\x20pipeline','layout':_0x23f396(0x1d4),'compute':{'module':_0x4a01d5,'entryPoint':_0x23f396(0x213)}}),_0x42d75c=this['device']['createBindGroup']({'label':_0x23f396(0x268),'layout':_0x2ce362[_0x23f396(0x314)](0x0),'entries':[{'binding':0x0,'resource':_0x2dc938[_0x23f396(0x3e1)]({'dimension':'3d'})}]}),_0x3e99ef=this['device'][_0x23f396(0x398)]({'label':_0x23f396(0x340)}),_0x861b1d=_0x3e99ef[_0x23f396(0x17d)]({'label':_0x23f396(0x258)});_0x861b1d[_0x23f396(0x3d2)](_0x2ce362),_0x861b1d[_0x23f396(0x244)](0x0,_0x42d75c),_0x861b1d[_0x23f396(0x1e4)](Math['ceil'](_0xf52f81/0x4),Math[_0x23f396(0x42a)](_0x3ab52b/0x4),Math[_0x23f396(0x42a)](_0x91a7c8/0x4)),_0x861b1d[_0x23f396(0x196)](),this['device'][_0x23f396(0x3e6)][_0x23f396(0x2af)]([_0x3e99ef[_0x23f396(0x416)]()]);}['getPageTableBuffer'](){const _0x566c90=_0x3cf00e;if(!this[_0x566c90(0x23b)])throw Error(_0x566c90(0x327));return this[_0x566c90(0x23b)];}[_0x3cf00e(0x465)](){const _0x73f93a=_0x3cf00e;for(let _0x93a852 of this[_0x73f93a(0x1bc)])_0x93a852[_0x73f93a(0x32b)]();this['pageTableBuffer']?.[_0x73f93a(0x32b)](),this[_0x73f93a(0x1bc)]=[],this[_0x73f93a(0x274)]=[],this[_0x73f93a(0x23b)]=null,this[_0x73f93a(0x243)]['clear'](),this[_0x73f93a(0x364)][_0x73f93a(0x203)]();}},_0x8b9a82=class{[_0x3cf00e(0x42d)];[_0x3cf00e(0x1e2)]=null;[_0x3cf00e(0x2cf)]=null;[_0x3cf00e(0x362)]=0x0;[_0x3cf00e(0x488)]=0x0;constructor(_0x18b96f){const _0x4c25e1=_0x3cf00e;this[_0x4c25e1(0x42d)]=_0x18b96f;}get[_0x3cf00e(0x1a7)](){const _0x9e4645=_0x3cf00e;if(!this[_0x9e4645(0x2cf)])throw Error(_0x9e4645(0x227));return this[_0x9e4645(0x2cf)];}[_0x3cf00e(0x3d8)](_0x5e2435,_0x46a6c2){const _0x5ab443=_0x3cf00e;if(this[_0x5ab443(0x362)]===_0x5e2435&&this[_0x5ab443(0x488)]===_0x46a6c2)return;let _0x230d14=this[_0x5ab443(0x42d)][_0x5ab443(0x3f3)]({'label':_0x5ab443(0x3ac),'size':[_0x5e2435,_0x46a6c2],'format':_0x5ab443(0x3c2),'usage':GPUTextureUsage['RENDER_ATTACHMENT']|GPUTextureUsage['TEXTURE_BINDING']}),_0x1e1294=this[_0x5ab443(0x1e2)];this[_0x5ab443(0x1e2)]=_0x230d14,this[_0x5ab443(0x2cf)]=_0x230d14['createView'](),this[_0x5ab443(0x362)]=_0x5e2435,this[_0x5ab443(0x488)]=_0x46a6c2,_0x1e1294?.[_0x5ab443(0x32b)]();}['destroy'](){const _0x55a0bc=_0x3cf00e;this[_0x55a0bc(0x1e2)]?.[_0x55a0bc(0x32b)](),this['depthTexture']=null,this[_0x55a0bc(0x2cf)]=null,this[_0x55a0bc(0x362)]=0x0,this[_0x55a0bc(0x488)]=0x0;}},_0xa1570a=class{['device'];[_0x3cf00e(0x2d4)]=[];constructor(_0x30023b){const _0x443709=_0x3cf00e;this[_0x443709(0x42d)]=_0x30023b;}get[_0x3cf00e(0x400)](){const _0x14e8f7=_0x3cf00e;return this[_0x14e8f7(0x2d4)][_0x14e8f7(0x29e)];}[_0x3cf00e(0x1de)](_0x349fcf){const _0x3e99bd=_0x3cf00e;let _0x1078ec=[];try{for(let _0x46910d of _0x349fcf)_0x1078ec[_0x3e99bd(0x432)](this[_0x3e99bd(0x433)](_0x46910d));}catch(_0x188ff3){for(let _0x47f112 of _0x1078ec)_0x47f112['buffer'][_0x3e99bd(0x32b)]();throw _0x188ff3;}this[_0x3e99bd(0x465)](),this[_0x3e99bd(0x2d4)]=_0x1078ec;}[_0x3cf00e(0x3b2)](_0xe0cb95,_0x3ce64d,_0x111958){const _0x5dd98b=_0x3cf00e;for(let _0xb7e4e7 of this[_0x5dd98b(0x2d4)])_0xb7e4e7[_0x5dd98b(0x22d)]!==_0x3ce64d||_0xb7e4e7['depthMode']!==_0x111958||(_0xe0cb95['setVertexBuffer'](0x0,_0xb7e4e7['buffer']),_0xe0cb95[_0x5dd98b(0x3b2)](_0xb7e4e7[_0x5dd98b(0x405)]));}['destroy'](){const _0x3a4c3a=_0x3cf00e;this[_0x3a4c3a(0x465)]();}[_0x3cf00e(0x433)](_0x4d5336){const _0x78b3e2=_0x3cf00e;if(_0x4d5336[_0x78b3e2(0x2b8)][_0x78b3e2(0x29e)]===0x0||_0x4d5336['vertices'][_0x78b3e2(0x29e)]%0x7!=0x0)throw Error(_0x78b3e2(0x348)+_0x4d5336['id']+_0x78b3e2(0x418));let _0x1e4534=new Float32Array(_0x4d5336[_0x78b3e2(0x2b8)]),_0x1a871a=this[_0x78b3e2(0x42d)][_0x78b3e2(0x1cc)]({'label':_0x78b3e2(0x1b0)+_0x4d5336['id'],'size':_0x1e4534[_0x78b3e2(0x408)],'usage':GPUBufferUsage[_0x78b3e2(0x187)]|GPUBufferUsage[_0x78b3e2(0x473)]});return this['device']['queue'][_0x78b3e2(0x391)](_0x1a871a,0x0,_0x1e4534),{'id':_0x4d5336['id'],'topology':_0x4d5336[_0x78b3e2(0x22d)],'depthMode':_0x4d5336['depthMode'],'buffer':_0x1a871a,'vertexCount':_0x4d5336[_0x78b3e2(0x2b8)][_0x78b3e2(0x29e)]/0x7};}['destroyResources'](){const _0xb500c3=_0x3cf00e;for(let _0x588c45 of this[_0xb500c3(0x2d4)])_0x588c45['buffer'][_0xb500c3(0x32b)]();this['resources']=[];}},_0x2e8bc7=class{[_0x3cf00e(0x42d)];[_0x3cf00e(0x1d2)];[_0x3cf00e(0x2d4)]=[];[_0x3cf00e(0x3f6)]=0x0;[_0x3cf00e(0x2e0)]=0x0;constructor(_0x15c578,_0x1c9b8a){const _0x207fa8=_0x3cf00e;this[_0x207fa8(0x42d)]=_0x15c578,this[_0x207fa8(0x1d2)]=_0x1c9b8a;}get[_0x3cf00e(0x400)](){const _0x51fc73=_0x3cf00e;return this[_0x51fc73(0x2d4)][_0x51fc73(0x29e)];}get['statistics'](){const _0x2767ec=_0x3cf00e;return{'uniformUpdateCount':this['uniformUpdateCount'],'resourceRebuildCount':this[_0x2767ec(0x2e0)]};}[_0x3cf00e(0x1de)](_0x243cf8){const _0x568bb=_0x3cf00e;let _0x5b094e=new Map(this[_0x568bb(0x2d4)][_0x568bb(0x4bc)](_0x5c9046=>[_0x5c9046['id'],_0x5c9046])),_0xee240c=[],_0x52fee4=new Set();try{for(let _0x47a596 of _0x243cf8){if(!_0x47a596[_0x568bb(0x4ae)])continue;if(_0x52fee4[_0x568bb(0x170)](_0x47a596['id']))throw Error(_0x568bb(0x3d5)+_0x47a596['id']+_0x568bb(0x36a));_0x52fee4[_0x568bb(0x2fa)](_0x47a596['id']);let _0x1fb17=this[_0x568bb(0x2db)](_0x47a596),_0x32a4b0=_0x5b094e['get'](_0x47a596['id']);if(!_0x32a4b0){_0xee240c[_0x568bb(0x432)](this[_0x568bb(0x433)](_0x47a596,_0x1fb17));continue;}_0x5b094e[_0x568bb(0x370)](_0x47a596['id']),_0x32a4b0[_0x568bb(0x438)]=_0x47a596['depthMode'],this[_0x568bb(0x2a2)](_0x32a4b0[_0x568bb(0x441)],_0x1fb17)||(this[_0x568bb(0x42d)][_0x568bb(0x3e6)]['writeBuffer'](_0x32a4b0[_0x568bb(0x22f)],0x0,_0x1fb17),_0x32a4b0[_0x568bb(0x441)]=_0x1fb17,this['uniformUpdateCount']+=0x1),_0xee240c[_0x568bb(0x432)](_0x32a4b0);}}catch(_0xda37fa){for(let _0xdf604 of _0xee240c)this[_0x568bb(0x2d4)][_0x568bb(0x277)](_0xdf604)||_0xdf604['buffer'][_0x568bb(0x32b)]();throw _0xda37fa;}for(let _0x295aa7 of _0x5b094e[_0x568bb(0x441)]())_0x295aa7['buffer']['destroy']();this[_0x568bb(0x2d4)]=_0xee240c;}[_0x3cf00e(0x3b2)](_0x4a9fe3,_0x153b90,_0x57dce4){const _0xd25842=_0x3cf00e;_0x4a9fe3[_0xd25842(0x3d2)](_0x153b90);for(let _0x17e8a of this[_0xd25842(0x2d4)])_0x17e8a[_0xd25842(0x438)]===_0x57dce4&&(_0x4a9fe3['setBindGroup'](0x3,_0x17e8a[_0xd25842(0x2bd)]),_0x4a9fe3[_0xd25842(0x3b2)](0x1800));}[_0x3cf00e(0x32b)](){this['destroyResources']();}[_0x3cf00e(0x2db)](_0x1af471){const _0x2479b1=_0x3cf00e;if(!Number[_0x2479b1(0x2f3)](_0x1af471[_0x2479b1(0x1f9)])||_0x1af471[_0x2479b1(0x1f9)]<0x0||_0x1af471['position']>0x1)throw Error(_0x2479b1(0x401)+_0x1af471['id']+_0x2479b1(0x16b));let _0x5af5a5=_0x1af471[_0x2479b1(0x16a)]==='x'?0x0:_0x1af471[_0x2479b1(0x16a)]==='y'?0x1:0x2,_0x548866=_0x1af471[_0x2479b1(0x1d3)]??[0x0,0x0,0x0,0x0];if(_0x548866[_0x2479b1(0x21c)](_0x4ecd40=>!Number[_0x2479b1(0x2f3)](_0x4ecd40)||_0x4ecd40<0x0||_0x4ecd40>0x1))throw Error(_0x2479b1(0x401)+_0x1af471['id']+_0x2479b1(0x1cb));return new Float32Array([_0x5af5a5,_0x1af471[_0x2479b1(0x1f9)],_0x1af471[_0x2479b1(0x2cd)]??0x1,0x0,..._0x548866]);}[_0x3cf00e(0x433)](_0x597475,_0x525650){const _0x4ccb4d=_0x3cf00e;let _0x499168=this['device'][_0x4ccb4d(0x1cc)]({'label':_0x4ccb4d(0x24a)+_0x597475['id'],'size':0x20,'usage':GPUBufferUsage['UNIFORM']|GPUBufferUsage[_0x4ccb4d(0x473)]});this['device'][_0x4ccb4d(0x3e6)][_0x4ccb4d(0x391)](_0x499168,0x0,_0x525650);let _0x33fdb9=this[_0x4ccb4d(0x42d)]['createBindGroup']({'layout':this['layout'],'entries':[{'binding':0x0,'resource':{'buffer':_0x499168}}]});return this['resourceRebuildCount']+=0x1,{'id':_0x597475['id'],'depthMode':_0x597475[_0x4ccb4d(0x438)],'buffer':_0x499168,'bindGroup':_0x33fdb9,'values':_0x525650};}[_0x3cf00e(0x2a2)](_0x43cebd,_0x383b2e){const _0x2d5164=_0x3cf00e;for(let _0x7318b2=0x0;_0x7318b2<_0x43cebd[_0x2d5164(0x29e)];_0x7318b2+=0x1)if(_0x43cebd[_0x7318b2]!==_0x383b2e[_0x7318b2])return!0x1;return!0x0;}[_0x3cf00e(0x465)](){const _0xee34a1=_0x3cf00e;for(let _0x435547 of this[_0xee34a1(0x2d4)])_0x435547['buffer'][_0xee34a1(0x32b)]();this['resources']=[];}};let _0x18df4f=(_0x116190,_0x2578bc,_0x439801)=>{const _0x38c881=_0x3cf00e;let _0x401c4e=_0x116190['createBuffer']({'label':_0x439801,'size':Math[_0x38c881(0x181)](0x4,_0x2578bc['byteLength']),'usage':GPUBufferUsage[_0x38c881(0x30b)]|GPUBufferUsage[_0x38c881(0x473)]});return _0x2578bc[_0x38c881(0x408)]>0x0&&_0x116190[_0x38c881(0x3e6)][_0x38c881(0x391)](_0x401c4e,0x0,_0x2578bc),_0x401c4e;},_0x243ab1=(_0x380d97,_0x2e4dde)=>{const _0x3c7a84=_0x3cf00e;if(_0x380d97[_0x3c7a84(0x29e)]===0x0||_0x2e4dde[_0x3c7a84(0x29e)]===0x0)throw Error(_0x3c7a84(0x27d));for(let _0x1635db=0x1;_0x1635db<_0x380d97['length'];_0x1635db+=0x1)if(_0x380d97[_0x1635db][_0x3c7a84(0x2d8)]<_0x380d97[_0x1635db-0x1][_0x3c7a84(0x2d8)])throw Error(_0x3c7a84(0x3d0));for(let _0x4537f6=0x0;_0x4537f6<_0x2e4dde[_0x3c7a84(0x29e)];_0x4537f6+=0x1){if(_0x2e4dde[_0x4537f6][_0x3c7a84(0x2cd)]<0x0||_0x2e4dde[_0x4537f6][_0x3c7a84(0x2cd)]>0x1)throw Error(_0x3c7a84(0x39d));if(_0x4537f6>0x0&&_0x2e4dde[_0x4537f6][_0x3c7a84(0x2d8)]<_0x2e4dde[_0x4537f6-0x1][_0x3c7a84(0x2d8)])throw Error('Volume\x20opacity\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积透明度色标必须按数值升序排列。');}};var _0x100497=class{[_0x3cf00e(0x42d)];[_0x3cf00e(0x1a4)]=null;[_0x3cf00e(0x373)]=null;[_0x3cf00e(0x1f2)]=null;[_0x3cf00e(0x461)]=null;['colorStopCount']=0x0;[_0x3cf00e(0x463)]=0x0;constructor(_0x1150c7){this['device']=_0x1150c7;}get['counts'](){const _0x41b7a3=_0x3cf00e;return[this[_0x41b7a3(0x1b5)],this[_0x41b7a3(0x463)]];}[_0x3cf00e(0x176)](_0x2953ab,_0x1d9e81){const _0xbc031d=_0x3cf00e;_0x243ab1(_0x2953ab,_0x1d9e81);let _0x2b6bf5=new Float32Array(_0x2953ab[_0xbc031d(0x29e)]),_0x491659=new Float32Array(_0x2953ab['length']*0x4),_0x2538af=new Float32Array(_0x1d9e81[_0xbc031d(0x29e)]),_0x379af4=new Float32Array(_0x1d9e81[_0xbc031d(0x29e)]);for(let _0x41031e=0x0;_0x41031e<_0x2953ab['length'];_0x41031e+=0x1)_0x2b6bf5[_0x41031e]=_0x2953ab[_0x41031e][_0xbc031d(0x2d8)],_0x491659[_0xbc031d(0x466)](_0x2953ab[_0x41031e][_0xbc031d(0x2a4)],_0x41031e*0x4);for(let _0x3365bb=0x0;_0x3365bb<_0x1d9e81['length'];_0x3365bb+=0x1)_0x2538af[_0x3365bb]=_0x1d9e81[_0x3365bb][_0xbc031d(0x2d8)],_0x379af4[_0x3365bb]=_0x1d9e81[_0x3365bb][_0xbc031d(0x2cd)];let _0x5669ac=[_0x18df4f(this[_0xbc031d(0x42d)],_0x2b6bf5,'volume\x20color\x20stop\x20values'),_0x18df4f(this[_0xbc031d(0x42d)],_0x491659,'volume\x20color\x20stop\x20colors'),_0x18df4f(this[_0xbc031d(0x42d)],_0x2538af,_0xbc031d(0x4a2)),_0x18df4f(this[_0xbc031d(0x42d)],_0x379af4,_0xbc031d(0x255))];this[_0xbc031d(0x1be)](),this[_0xbc031d(0x1a4)]=_0x5669ac[0x0],this[_0xbc031d(0x373)]=_0x5669ac[0x1],this[_0xbc031d(0x1f2)]=_0x5669ac[0x2],this[_0xbc031d(0x461)]=_0x5669ac[0x3],this[_0xbc031d(0x1b5)]=_0x2953ab[_0xbc031d(0x29e)],this[_0xbc031d(0x463)]=_0x1d9e81[_0xbc031d(0x29e)];}['createBindGroup'](_0x1f62cd){const _0xd9797b=_0x3cf00e;if(!this[_0xd9797b(0x1a4)]||!this[_0xd9797b(0x373)]||!this[_0xd9797b(0x1f2)]||!this[_0xd9797b(0x461)])throw Error('WebGPU\x20volume\x20transfer\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积传递函数资源不完整。');return this[_0xd9797b(0x42d)][_0xd9797b(0x1d1)]({'label':'volume\x20transfer\x20bind\x20group','layout':_0x1f62cd,'entries':[{'binding':0x0,'resource':{'buffer':this[_0xd9797b(0x1a4)]}},{'binding':0x1,'resource':{'buffer':this['colorBuffer']}},{'binding':0x2,'resource':{'buffer':this[_0xd9797b(0x1f2)]}},{'binding':0x3,'resource':{'buffer':this[_0xd9797b(0x461)]}}]});}[_0x3cf00e(0x32b)](){this['destroyBuffers'](),this['colorStopCount']=0x0,this['opacityStopCount']=0x0;}[_0x3cf00e(0x1be)](){const _0x3eec12=_0x3cf00e;this[_0x3eec12(0x1a4)]?.[_0x3eec12(0x32b)](),this[_0x3eec12(0x373)]?.[_0x3eec12(0x32b)](),this[_0x3eec12(0x1f2)]?.['destroy'](),this[_0x3eec12(0x461)]?.['destroy'](),this['colorValuesBuffer']=null,this[_0x3eec12(0x373)]=null,this['opacityValuesBuffer']=null,this['opacityBuffer']=null;}};let _0x28e69d=0x200*0x400*0x400,_0x184b49=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],_0x322505=[{'value':0x0,'color':[0x0,0x0,0x1,0x1]},{'value':0x1,'color':[0x1,0x0,0x0,0x1]}],_0x7de6da=[{'value':0x0,'opacity':0x0},{'value':0x1,'opacity':0x1}],_0x550eff=()=>({'color':{'srcFactor':_0x3cf00e(0x2dc),'dstFactor':_0x3cf00e(0x1d5),'operation':_0x3cf00e(0x2fa)},'alpha':{'srcFactor':_0x3cf00e(0x2dc),'dstFactor':_0x3cf00e(0x1d5),'operation':_0x3cf00e(0x2fa)}}),_0x4a83ee=(_0x22364c,_0x522cc3)=>{const _0x2e7c5a=_0x3cf00e;if(_0x22364c[_0x2e7c5a(0x29e)]!==0x10||_0x22364c[_0x2e7c5a(0x21c)](_0x393216=>!Number[_0x2e7c5a(0x2f3)](_0x393216)))throw Error(_0x522cc3+_0x2e7c5a(0x494)+_0x522cc3+_0x2e7c5a(0x29f));},_0x2a7552=(_0x2ca598,_0xdb0955)=>{const _0x589587=_0x3cf00e;if(!Number['isFinite'](_0x2ca598)||_0x2ca598<0x0)throw Error(_0xdb0955+_0x589587(0x195)+_0xdb0955+_0x589587(0x19d));return _0x2ca598;},_0x226a8a=(_0x21f6c1,_0x40db6e)=>{const _0x5b858c=_0x3cf00e;if(!Number[_0x5b858c(0x2f3)](_0x21f6c1)||_0x21f6c1<=0x0)throw Error(_0x40db6e+_0x5b858c(0x2ec)+_0x40db6e+_0x5b858c(0x1f7));return _0x21f6c1;},_0x2c864c=_0x520110=>_0x520110[_0x3cf00e(0x4bc)](_0x13970c=>({..._0x13970c,'vertices':new Float32Array(_0x13970c[_0x3cf00e(0x2b8)])})),_0x529eec=_0x24d6b0=>{const _0x51dba8=_0x3cf00e;let _0x41f3aa=_0x24d6b0[_0x51dba8(0x26f)]+_0x24d6b0['halo']*0x2,_0x5ba5bb=_0x24d6b0[_0x51dba8(0x2a5)]+_0x24d6b0['halo']*0x2,_0x27e4f0=_0x24d6b0[_0x51dba8(0x328)]+_0x24d6b0[_0x51dba8(0x296)]*0x2;return Math[_0x51dba8(0x42a)](_0x41f3aa*Float32Array[_0x51dba8(0x1bb)]/0x100)*0x100*_0x5ba5bb*_0x27e4f0+0x10;};var _0x522902=class{[_0x3cf00e(0x211)];[_0x3cf00e(0x455)]='idle';[_0x3cf00e(0x3b3)]=null;[_0x3cf00e(0x315)]=null;['device']=null;[_0x3cf00e(0x2ac)]=null;[_0x3cf00e(0x2b4)]=null;[_0x3cf00e(0x4c3)]=null;[_0x3cf00e(0x312)]=null;['geometryBindGroupLayout']=null;[_0x3cf00e(0x21a)]=null;[_0x3cf00e(0x24d)]=null;[_0x3cf00e(0x25f)]=null;[_0x3cf00e(0x38f)]=null;[_0x3cf00e(0x36e)]=null;[_0x3cf00e(0x3af)]=null;[_0x3cf00e(0x16e)]=null;['transferBindGroup']=null;[_0x3cf00e(0x3bd)]=null;[_0x3cf00e(0x28a)]=null;[_0x3cf00e(0x1cf)]=null;['overlayTrianglePipeline']=null;['overlayLinePipeline']=null;[_0x3cf00e(0x17e)]=null;[_0x3cf00e(0x20d)]=null;['attachments']=null;['atlas']=null;[_0x3cf00e(0x413)]=null;[_0x3cf00e(0x319)]=null;[_0x3cf00e(0x454)]=null;[_0x3cf00e(0x435)]=null;[_0x3cf00e(0x284)]=null;[_0x3cf00e(0x48c)]={'viewProjection':_0x184b49,'inverseViewProjection':_0x184b49,'cameraPosition':[0x0,0x0,0x2]};['modelMatrix']=_0x184b49;[_0x3cf00e(0x49f)]=_0x184b49;[_0x3cf00e(0x1ab)]=[0x0,0x0,0x0];[_0x3cf00e(0x4bd)]=[0x1,0x1,0x1];[_0x3cf00e(0x285)]=_0x3cf00e(0x173);['opacity']=0.3;[_0x3cf00e(0x429)]=0x1;[_0x3cf00e(0x230)]=0.005;['volumeDimFactor']=0x1;[_0x3cf00e(0x298)]='smooth';[_0x3cf00e(0x3e2)]=null;['colorStops']=_0x322505;[_0x3cf00e(0x389)]=_0x7de6da;[_0x3cf00e(0x3c1)]=0x0;['submittedFrameCount']=0x0;[_0x3cf00e(0x362)]=0x0;[_0x3cf00e(0x488)]=0x0;[_0x3cf00e(0x47a)]=0x0;[_0x3cf00e(0x419)]=0x0;[_0x3cf00e(0x26b)]=[];[_0x3cf00e(0x29c)]=[];['cachedAxes']=[];['cachedBricks']=new Map();[_0x3cf00e(0x1dc)]=[];[_0x3cf00e(0x333)]=null;[_0x3cf00e(0x2c7)]=0x0;['uploadStagingBuffer']=null;['uploadStagingBufferSize']=0x0;[_0x3cf00e(0x3c5)]=0x0;['uploadBatchCount']=0x0;['maximumUploadBatchBytes']=0x0;['frameInFlight']=!0x1;['frameAvailableCallback']=null;constructor(_0x988318={}){const _0x5b7726=_0x3cf00e;this[_0x5b7726(0x211)]={..._0x988318};}get[_0x3cf00e(0x165)](){const _0x26b4b6=_0x3cf00e;return this[_0x26b4b6(0x455)];}get[_0x3cf00e(0x246)](){const _0x1a41b3=_0x3cf00e;let _0x3a91c4=this[_0x1a41b3(0x18f)]?.[_0x1a41b3(0x246)]??{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this[_0x1a41b3(0x211)][_0x1a41b3(0x208)]??this[_0x1a41b3(0x211)][_0x1a41b3(0x46d)]??_0x28e69d,'budgetLimited':!0x1,'skippedSamples':0x0,'skippedCells':0x0},_0x4348f8=this[_0x1a41b3(0x454)]?.['statistics']??{'uniformUpdateCount':0x0,'resourceRebuildCount':0x0};return{'logicalBrickCount':_0x3a91c4[_0x1a41b3(0x3b6)],'residentBrickCount':this[_0x1a41b3(0x18f)]?.[_0x1a41b3(0x1ee)]??0x0,'pendingBrickCount':0x0,'atlasCapacity':_0x3a91c4[_0x1a41b3(0x2c6)],'gpuBytes':_0x3a91c4[_0x1a41b3(0x374)],'memoryLimitBytes':_0x3a91c4[_0x1a41b3(0x367)],'budgetLimited':_0x3a91c4[_0x1a41b3(0x44d)],'frameTimeMilliseconds':this[_0x1a41b3(0x419)],'submittedFrameCount':this[_0x1a41b3(0x334)],'uploadedBrickCount':this[_0x1a41b3(0x3c5)],'uploadBatchCount':this['uploadBatchCount'],'maximumUploadBatchBytes':this[_0x1a41b3(0x180)],'sliceUniformUpdateCount':_0x4348f8[_0x1a41b3(0x3f6)],'sliceResourceRebuildCount':_0x4348f8['resourceRebuildCount'],'skippedSamples':_0x3a91c4[_0x1a41b3(0x186)],'skippedCells':_0x3a91c4[_0x1a41b3(0x40b)]};}['setFrameAvailableCallback'](_0x34036c){const _0x16752d=_0x3cf00e;this[_0x16752d(0x299)]=_0x34036c;}async[_0x3cf00e(0x3ad)](_0x46366f){const _0xf1b243=_0x3cf00e;if(this[_0xf1b243(0x455)]===_0xf1b243(0x28f))throw Error(_0xf1b243(0x260));let _0x4530f6=++this[_0xf1b243(0x47a)];this[_0xf1b243(0x33b)](),this[_0xf1b243(0x3b3)]=_0x46366f,this['lifecycleState']=_0xf1b243(0x300);let _0x1e8f31=navigator['gpu'];if(!_0x1e8f31)throw this[_0xf1b243(0x455)]=_0xf1b243(0x3dd),Error(_0xf1b243(0x1c6));let _0x99f38=await _0x1e8f31['requestAdapter']({'powerPreference':this[_0xf1b243(0x211)]['powerPreference']??_0xf1b243(0x25c)});if(_0x4530f6!==this[_0xf1b243(0x47a)])return;if(!_0x99f38)throw this[_0xf1b243(0x455)]=_0xf1b243(0x3dd),Error(_0xf1b243(0x4ab));let _0x2e042f=await _0x99f38['requestDevice']();if(_0x4530f6!==this[_0xf1b243(0x47a)]){_0x2e042f[_0xf1b243(0x32b)]();return;}let _0xbdb26e=_0x46366f[_0xf1b243(0x16f)](_0xf1b243(0x4a8));if(!_0xbdb26e)throw _0x2e042f[_0xf1b243(0x32b)](),this[_0xf1b243(0x455)]=_0xf1b243(0x3dd),Error(_0xf1b243(0x3ed));let _0x13ea9d=_0x1e8f31[_0xf1b243(0x34c)]();_0xbdb26e[_0xf1b243(0x481)]({'device':_0x2e042f,'format':_0x13ea9d,'alphaMode':_0xf1b243(0x219),'usage':GPUTextureUsage[_0xf1b243(0x2e2)]|GPUTextureUsage['COPY_SRC']}),this['adapter']=_0x99f38,this['device']=_0x2e042f,this[_0xf1b243(0x2ac)]=_0xbdb26e,this['format']=_0x13ea9d,_0x2e042f[_0xf1b243(0x232)]('validation'),this[_0xf1b243(0x3d6)]();let _0x437fa0=await _0x2e042f[_0xf1b243(0x48b)]();if(_0x437fa0)throw this[_0xf1b243(0x33b)](),this[_0xf1b243(0x455)]=_0xf1b243(0x3dd),Error('Failed\x20to\x20create\x20WebGPU\x20volume\x20pipelines:\x20'+_0x437fa0[_0xf1b243(0x202)]+_0xf1b243(0x41a));if(this[_0xf1b243(0x24b)](_0x2e042f),this[_0xf1b243(0x455)]=_0xf1b243(0x271),this[_0xf1b243(0x284)]){this[_0xf1b243(0x291)](this[_0xf1b243(0x284)]);let _0x278cf5=Array[_0xf1b243(0x2e9)](this[_0xf1b243(0x480)][_0xf1b243(0x161)]());await Promise[_0xf1b243(0x2c0)](_0x278cf5[_0xf1b243(0x4bc)](([_0x4a29c1,_0x4ba230])=>this[_0xf1b243(0x4a3)]({'logicalIndex':_0x4a29c1,'values':_0x4ba230},!0x1)));}this['updateTransferResources'](),this['getProfileResources']()[_0xf1b243(0x1de)](this[_0xf1b243(0x26b)]),this[_0xf1b243(0x497)]()[_0xf1b243(0x1de)](this[_0xf1b243(0x29c)]),this[_0xf1b243(0x2de)]()[_0xf1b243(0x1de)](this['cachedAxes']),this[_0xf1b243(0x3d8)](_0x46366f[_0xf1b243(0x362)]||_0x46366f[_0xf1b243(0x34b)]||0x1,_0x46366f[_0xf1b243(0x488)]||_0x46366f['clientHeight']||0x1);}['setSource'](_0x35c6af){const _0x2e22c6=_0x3cf00e;this[_0x2e22c6(0x2c7)]+=0x1,this['rejectPendingBrickUploads'](new DOMException('Volume\x20brick\x20upload\x20was\x20superseded\x20by\x20a\x20new\x20source.\x20体积砖上传已被新数据源替代。',_0x2e22c6(0x234))),this[_0x2e22c6(0x284)]={..._0x35c6af},this[_0x2e22c6(0x480)]['clear'](),this[_0x2e22c6(0x3c5)]=0x0,this[_0x2e22c6(0x1b6)]=0x0,this['maximumUploadBatchBytes']=0x0,this[_0x2e22c6(0x455)]===_0x2e22c6(0x271)&&this[_0x2e22c6(0x291)](_0x35c6af);}['uploadBrick'](_0x46ffba){const _0x1754c7=_0x3cf00e;return this[_0x1754c7(0x4a3)](_0x46ffba,!0x0);}[_0x3cf00e(0x31b)](_0x4fb051){const _0x244c05=_0x3cf00e;this[_0x244c05(0x4be)]()['touch'](_0x4fb051,this[_0x244c05(0x3c1)]);for(let _0x83f5b2 of _0x4fb051){let _0x23dd0c=this[_0x244c05(0x480)]['get'](_0x83f5b2);_0x23dd0c&&(this[_0x244c05(0x480)][_0x244c05(0x370)](_0x83f5b2),this[_0x244c05(0x480)]['set'](_0x83f5b2,_0x23dd0c));}}['setCamera'](_0x2c2042){const _0x76dc06=_0x3cf00e;_0x4a83ee(_0x2c2042[_0x76dc06(0x317)],_0x76dc06(0x317)),_0x4a83ee(_0x2c2042[_0x76dc06(0x2d5)],'inverseViewProjection'),this[_0x76dc06(0x48c)]={'viewProjection':[..._0x2c2042['viewProjection']],'inverseViewProjection':[..._0x2c2042[_0x76dc06(0x2d5)]],'cameraPosition':[..._0x2c2042[_0x76dc06(0x160)]]};}[_0x3cf00e(0x437)](_0x45a088){const _0x915eb7=_0x3cf00e;this[_0x915eb7(0x26b)]=_0x2c864c(_0x45a088),this[_0x915eb7(0x2e8)]()[_0x915eb7(0x1de)](_0x45a088);}[_0x3cf00e(0x307)](_0xc0ac84){const _0x45746d=_0x3cf00e;this[_0x45746d(0x29c)]=_0xc0ac84[_0x45746d(0x4bc)](_0x3e653b=>({..._0x3e653b})),this['getSliceResources']()[_0x45746d(0x1de)](_0xc0ac84);}[_0x3cf00e(0x3a5)](_0x237fc3){const _0x1113f4=_0x3cf00e;this[_0x1113f4(0x205)]=_0x2c864c(_0x237fc3),this[_0x1113f4(0x2de)]()[_0x1113f4(0x1de)](_0x237fc3);}['setTransfer'](_0xcad74e,_0x1da7e1,_0x43f7e8){const _0x1bbe7c=_0x3cf00e;this[_0x1bbe7c(0x231)]=_0xcad74e['map'](_0x1fa377=>({'value':_0x1fa377[_0x1bbe7c(0x2d8)],'color':[..._0x1fa377[_0x1bbe7c(0x2a4)]]})),this[_0x1bbe7c(0x389)]=_0x1da7e1[_0x1bbe7c(0x4bc)](_0x2f49d9=>({..._0x2f49d9})),_0x43f7e8&&(this['colorMode']=_0x43f7e8),this[_0x1bbe7c(0x455)]===_0x1bbe7c(0x271)&&this['updateTransferResources']();}[_0x3cf00e(0x176)](_0x587c10){const _0x36577b=_0x3cf00e;_0x587c10['modelMatrix']&&(_0x4a83ee(_0x587c10[_0x36577b(0x295)],_0x36577b(0x295)),this['modelMatrix']=[..._0x587c10['modelMatrix']]),_0x587c10[_0x36577b(0x49f)]&&(_0x4a83ee(_0x587c10[_0x36577b(0x49f)],_0x36577b(0x49f)),this[_0x36577b(0x49f)]=[..._0x587c10['inverseModelMatrix']]),_0x587c10['clipMinimum']&&(this[_0x36577b(0x1ab)]=[..._0x587c10['clipMinimum']]),_0x587c10[_0x36577b(0x4bd)]&&(this['clipMaximum']=[..._0x587c10[_0x36577b(0x4bd)]]),_0x587c10[_0x36577b(0x285)]&&(this[_0x36577b(0x285)]=_0x587c10['renderMode']),_0x587c10[_0x36577b(0x2cd)]!==void 0x0&&(this['opacity']=_0x2a7552(_0x587c10[_0x36577b(0x2cd)],_0x36577b(0x2cd))),_0x587c10['densityScale']!==void 0x0&&(this['densityScale']=_0x2a7552(_0x587c10['densityScale'],'densityScale')),_0x587c10['stepLength']!==void 0x0&&(this[_0x36577b(0x230)]=_0x226a8a(_0x587c10[_0x36577b(0x230)],_0x36577b(0x230))),_0x587c10[_0x36577b(0x308)]!==void 0x0&&(this[_0x36577b(0x308)]=_0x2a7552(_0x587c10['volumeDimFactor'],_0x36577b(0x308))),_0x587c10[_0x36577b(0x298)]&&(this['colorMode']=_0x587c10[_0x36577b(0x298)]),_0x587c10[_0x36577b(0x3e2)]!==void 0x0&&(this[_0x36577b(0x3e2)]=_0x587c10[_0x36577b(0x3e2)]?{..._0x587c10['geographicTransform']}:null);}[_0x3cf00e(0x3d8)](_0x428d65,_0x1cdfd6){const _0x23b477=_0x3cf00e;if(!Number[_0x23b477(0x483)](_0x428d65)||!Number[_0x23b477(0x483)](_0x1cdfd6)||_0x428d65<=0x0||_0x1cdfd6<=0x0)throw Error(_0x23b477(0x21b));let _0x30b1ff=this[_0x23b477(0x22a)]();_0x30b1ff[_0x23b477(0x362)]=_0x428d65,_0x30b1ff['height']=_0x1cdfd6,this[_0x23b477(0x362)]=_0x428d65,this[_0x23b477(0x488)]=_0x1cdfd6,this[_0x23b477(0x192)]()[_0x23b477(0x3d8)](_0x428d65,_0x1cdfd6),this[_0x23b477(0x249)]();}[_0x3cf00e(0x22b)](){const _0x47bcd5=_0x3cf00e;if(this[_0x47bcd5(0x455)]!==_0x47bcd5(0x271)||!this[_0x47bcd5(0x284)]||this[_0x47bcd5(0x362)]<=0x0||this[_0x47bcd5(0x488)]<=0x0||this[_0x47bcd5(0x2cb)])return!0x1;let _0x2e1dea=performance[_0x47bcd5(0x4ba)]();this[_0x47bcd5(0x3c1)]+=0x1,this[_0x47bcd5(0x273)]();let _0x3f2d81=this[_0x47bcd5(0x26c)](),_0x542aa2=_0x3f2d81['createCommandEncoder']({'label':'volume\x20scene\x20frame'}),_0x12ff2a=this['getContext']()[_0x47bcd5(0x238)]()['createView']();return this[_0x47bcd5(0x2d9)](_0x542aa2,_0x12ff2a),this[_0x47bcd5(0x46b)](_0x542aa2,_0x12ff2a),this['encodeOverlayPass'](_0x542aa2,_0x12ff2a),_0x3f2d81['queue'][_0x47bcd5(0x2af)]([_0x542aa2['finish']()]),this['frameInFlight']=!0x0,this[_0x47bcd5(0x334)]+=0x1,this['lastFrameTimeMilliseconds']=Math['max'](0.000001,performance[_0x47bcd5(0x4ba)]()-_0x2e1dea),_0x3f2d81[_0x47bcd5(0x3e6)][_0x47bcd5(0x2fe)]()[_0x47bcd5(0x453)](()=>{const _0x4f6a98=_0x47bcd5;this[_0x4f6a98(0x42d)]!==_0x3f2d81||this[_0x4f6a98(0x455)]!=='ready'||(this[_0x4f6a98(0x2cb)]=!0x1,this[_0x4f6a98(0x299)]?.());})[_0x47bcd5(0x1b8)](()=>{const _0x381ee5=_0x47bcd5;this[_0x381ee5(0x42d)]===_0x3f2d81&&(this['frameInFlight']=!0x1);}),!0x0;}async[_0x3cf00e(0x477)](){const _0x3d9485=_0x3cf00e;if(this[_0x3d9485(0x455)]!==_0x3d9485(0x271)||!this['metadata']||this[_0x3d9485(0x362)]<=0x0||this[_0x3d9485(0x488)]<=0x0)throw Error('WebGPU\x20volume\x20renderer\x20is\x20not\x20ready\x20for\x20frame\x20capture.\x20WebGPU\x20体积渲染器尚不能读取帧。');let _0x39f3b9=this[_0x3d9485(0x26c)](),_0x28b919=this[_0x3d9485(0x362)]*0x4,_0x38ac69=Math[_0x3d9485(0x42a)](_0x28b919/0x100)*0x100,_0x5da2c4=_0x39f3b9[_0x3d9485(0x1cc)]({'label':'volume\x20frame\x20readback','size':_0x38ac69*this[_0x3d9485(0x488)],'usage':GPUBufferUsage['COPY_DST']|GPUBufferUsage['MAP_READ']});_0x39f3b9[_0x3d9485(0x232)](_0x3d9485(0x3b4)),this['frameIndex']+=0x1,this['writeParams']();let _0x3505b4=_0x39f3b9['createCommandEncoder']({'label':_0x3d9485(0x280)}),_0x3029aa=this[_0x3d9485(0x16f)]()[_0x3d9485(0x238)](),_0x66c38e=_0x3029aa['createView']();this[_0x3d9485(0x2d9)](_0x3505b4,_0x66c38e),this[_0x3d9485(0x46b)](_0x3505b4,_0x66c38e),this[_0x3d9485(0x20b)](_0x3505b4,_0x66c38e),_0x3505b4['copyTextureToBuffer']({'texture':_0x3029aa},{'buffer':_0x5da2c4,'bytesPerRow':_0x38ac69,'rowsPerImage':this['height']},[this[_0x3d9485(0x362)],this['height']]),_0x39f3b9[_0x3d9485(0x3e6)]['submit']([_0x3505b4[_0x3d9485(0x416)]()]);let _0x5b530e=await _0x39f3b9['popErrorScope']();if(_0x5b530e)throw _0x5da2c4[_0x3d9485(0x32b)](),Error(_0x3d9485(0x1e9)+_0x5b530e[_0x3d9485(0x202)]+_0x3d9485(0x40a));await _0x5da2c4[_0x3d9485(0x27c)](GPUMapMode[_0x3d9485(0x464)]);let _0x15e7ab=new Uint8Array(_0x5da2c4[_0x3d9485(0x430)]()),_0x4c4f27=new Uint8Array(_0x28b919*this[_0x3d9485(0x488)]),_0x10b3a1=this[_0x3d9485(0x3eb)]()===_0x3d9485(0x49d);for(let _0x15ac3f=0x0;_0x15ac3f<this[_0x3d9485(0x488)];_0x15ac3f+=0x1){let _0x34bd71=_0x15e7ab[_0x3d9485(0x3d9)](_0x15ac3f*_0x38ac69,_0x15ac3f*_0x38ac69+_0x28b919),_0x299609=_0x15ac3f*_0x28b919;if(!_0x10b3a1){_0x4c4f27[_0x3d9485(0x466)](_0x34bd71,_0x299609);continue;}for(let _0x1ec571=0x0;_0x1ec571<this[_0x3d9485(0x362)];_0x1ec571+=0x1){let _0x4b1c33=_0x1ec571*0x4,_0x58a7dc=_0x299609+_0x4b1c33;_0x4c4f27[_0x58a7dc]=_0x34bd71[_0x4b1c33+0x2],_0x4c4f27[_0x58a7dc+0x1]=_0x34bd71[_0x4b1c33+0x1],_0x4c4f27[_0x58a7dc+0x2]=_0x34bd71[_0x4b1c33],_0x4c4f27[_0x58a7dc+0x3]=_0x34bd71[_0x4b1c33+0x3];}}return _0x5da2c4[_0x3d9485(0x19b)](),_0x5da2c4[_0x3d9485(0x32b)](),this['submittedFrameCount']+=0x1,{'width':this[_0x3d9485(0x362)],'height':this['height'],'pixels':_0x4c4f27};}['destroy'](){const _0x34b3b2=_0x3cf00e;this[_0x34b3b2(0x455)]!==_0x34b3b2(0x28f)&&(++this['initializationGeneration'],this[_0x34b3b2(0x33b)](),this[_0x34b3b2(0x3b3)]=null,this[_0x34b3b2(0x284)]=null,this[_0x34b3b2(0x299)]=null,this['lifecycleState']=_0x34b3b2(0x28f));}['createGpuResources'](){const _0x353427=_0x3cf00e;let _0x3cf934=this['getDevice']();this['sceneParamsBuffer']=_0x3cf934[_0x353427(0x1cc)]({'label':_0x353427(0x414),'size':0x190,'usage':GPUBufferUsage[_0x353427(0x4a0)]|GPUBufferUsage[_0x353427(0x473)]}),this[_0x353427(0x312)]=_0x3cf934[_0x353427(0x1cc)]({'label':_0x353427(0x420),'size':0x60,'usage':GPUBufferUsage[_0x353427(0x4a0)]|GPUBufferUsage['COPY_DST']}),this['geometryBindGroupLayout']=_0x3cf934[_0x353427(0x30a)]({'label':_0x353427(0x332),'entries':[{'binding':0x0,'visibility':GPUShaderStage['VERTEX']|GPUShaderStage['FRAGMENT'],'buffer':{'type':_0x353427(0x1f5)}}]}),this[_0x353427(0x21a)]=_0x3cf934[_0x353427(0x30a)]({'label':_0x353427(0x4b0),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x353427(0x187)]|GPUShaderStage[_0x353427(0x2aa)],'buffer':{'type':_0x353427(0x1f5)}},{'binding':0x1,'visibility':GPUShaderStage[_0x353427(0x2aa)],'texture':{'sampleType':_0x353427(0x34a)}}]}),this['volumeBindGroupLayout']=_0x3cf934[_0x353427(0x30a)]({'label':'volume\x20atlas\x20bind\x20group\x20layout','entries':[...Array['from']({'length':0x8},(_0x51a002,_0x3b966d)=>({'binding':_0x3b966d,'visibility':GPUShaderStage[_0x353427(0x2aa)],'texture':{'sampleType':'unfilterable-float','viewDimension':'3d'}})),{'binding':0x8,'visibility':GPUShaderStage[_0x353427(0x2aa)],'buffer':{'type':_0x353427(0x43e)}},{'binding':0x9,'visibility':GPUShaderStage[_0x353427(0x2aa)],'buffer':{'type':_0x353427(0x1f5)}}]}),this['transferBindGroupLayout']=_0x3cf934[_0x353427(0x30a)]({'label':_0x353427(0x1ce),'entries':[0x0,0x1,0x2,0x3]['map'](_0x2671f1=>({'binding':_0x2671f1,'visibility':GPUShaderStage[_0x353427(0x2aa)],'buffer':{'type':_0x353427(0x43e)}}))}),this[_0x353427(0x38f)]=_0x3cf934[_0x353427(0x30a)]({'label':_0x353427(0x443),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x353427(0x187)]|GPUShaderStage['FRAGMENT'],'buffer':{'type':_0x353427(0x1f5)}}]}),this[_0x353427(0x475)]=new _0x8b9a82(_0x3cf934),this['transferResources']=new _0x100497(_0x3cf934),this[_0x353427(0x319)]=new _0xa1570a(_0x3cf934),this[_0x353427(0x454)]=new _0x2e8bc7(_0x3cf934,this[_0x353427(0x45d)]()),this[_0x353427(0x435)]=new _0xa1570a(_0x3cf934),this[_0x353427(0x21e)]();}[_0x3cf00e(0x21e)](){const _0xa1e196=_0x3cf00e;let _0xfbc1bd=this[_0xa1e196(0x26c)](),_0xf3b2e8=this['getFormat'](),_0x3c4d61=this['getGeometryBindGroupLayout'](),_0x1bd1c5=this[_0xa1e196(0x42c)](),_0x3fee34=_0xfbc1bd[_0xa1e196(0x1f4)]({'label':_0xa1e196(0x3cb),'code':_0x4303d1}),_0x55ef14={'module':_0x3fee34,'entryPoint':_0xa1e196(0x1f3),'buffers':[{'arrayStride':0x1c,'attributes':[{'shaderLocation':0x0,'offset':0x0,'format':_0xa1e196(0x4b4)},{'shaderLocation':0x1,'offset':0xc,'format':_0xa1e196(0x1a6)}]}]},_0x38aa0e={'module':_0x3fee34,'entryPoint':'fragmentMain','targets':[{'format':_0xf3b2e8,'blend':_0x550eff()}]},_0x39136b=(_0x5e123b,_0x5d2560)=>_0xfbc1bd[_0xa1e196(0x294)]({'layout':_0xfbc1bd[_0xa1e196(0x3ff)]({'bindGroupLayouts':[_0x3c4d61]}),'vertex':_0x55ef14,'fragment':_0x38aa0e,'primitive':{'topology':_0x5e123b},'depthStencil':_0x5d2560?{'format':_0xa1e196(0x3c2),'depthWriteEnabled':!0x0,'depthCompare':_0xa1e196(0x286)}:void 0x0});this['sceneTrianglePipeline']=_0x39136b(_0xa1e196(0x36b),!0x0),this[_0xa1e196(0x1cf)]=_0x39136b(_0xa1e196(0x47d),!0x0),this[_0xa1e196(0x476)]=_0x39136b(_0xa1e196(0x36b),!0x1),this['overlayLinePipeline']=_0x39136b(_0xa1e196(0x47d),!0x1);let _0xce3598=_0xfbc1bd[_0xa1e196(0x1f4)]({'label':'volume\x20raymarch\x20shader','code':_0x255239});this[_0xa1e196(0x3bd)]=_0xfbc1bd[_0xa1e196(0x294)]({'layout':_0xfbc1bd[_0xa1e196(0x3ff)]({'bindGroupLayouts':[_0x1bd1c5,this[_0xa1e196(0x34e)](),this[_0xa1e196(0x206)]()]}),'vertex':{'module':_0xce3598,'entryPoint':_0xa1e196(0x1f3)},'fragment':{'module':_0xce3598,'entryPoint':_0xa1e196(0x1ed),'targets':[{'format':_0xf3b2e8,'blend':_0x550eff()}]},'primitive':{'topology':_0xa1e196(0x36b)}});let _0x266f95=_0xfbc1bd['createShaderModule']({'label':_0xa1e196(0x372),'code':_0x41aa11}),_0x497718=_0x1324e2=>_0xfbc1bd[_0xa1e196(0x294)]({'layout':_0xfbc1bd[_0xa1e196(0x3ff)]({'bindGroupLayouts':[_0x3c4d61,this[_0xa1e196(0x34e)](),this[_0xa1e196(0x206)](),this[_0xa1e196(0x45d)]()]}),'vertex':{'module':_0x266f95,'entryPoint':_0xa1e196(0x1f3)},'fragment':{'module':_0x266f95,'entryPoint':'fragmentMain','targets':[{'format':_0xf3b2e8,'blend':_0x550eff()}]},'primitive':{'topology':_0xa1e196(0x36b)},'depthStencil':_0x1324e2?{'format':_0xa1e196(0x3c2),'depthWriteEnabled':!0x0,'depthCompare':_0xa1e196(0x286)}:void 0x0});this[_0xa1e196(0x17e)]=_0x497718(!0x0),this['overlaySlicePipeline']=_0x497718(!0x1);}[_0x3cf00e(0x291)](_0x7513b8){const _0x2397db=_0x3cf00e;this[_0x2397db(0x18f)]?.[_0x2397db(0x32b)](),this[_0x2397db(0x18f)]=new _0x42b6f4(this[_0x2397db(0x26c)](),this['options']['memoryTargetBytes']??_0x28e69d,this[_0x2397db(0x211)][_0x2397db(0x208)]??this[_0x2397db(0x211)][_0x2397db(0x46d)]??_0x28e69d),this[_0x2397db(0x18f)][_0x2397db(0x481)](_0x7513b8),this[_0x2397db(0x1ef)](),this[_0x2397db(0x16e)]=this[_0x2397db(0x18f)][_0x2397db(0x1d1)](this[_0x2397db(0x34e)](),this[_0x2397db(0x448)]());}[_0x3cf00e(0x4a3)](_0x3d1912,_0x41e4f3){return new Promise((_0x7e7f24,_0x1a19dd)=>{const _0x2672f7=_0x312f;this[_0x2672f7(0x1dc)][_0x2672f7(0x432)]({'upload':_0x3d1912,'generation':this['uploadGeneration'],'cacheOnSuccess':_0x41e4f3,'resolve':_0x7e7f24,'reject':_0x1a19dd}),this[_0x2672f7(0x486)]();});}[_0x3cf00e(0x486)](){const _0x303925=_0x3cf00e;this[_0x303925(0x333)]||=Promise[_0x303925(0x184)]()['then'](()=>this[_0x303925(0x26e)]())['finally'](()=>{const _0x4f6650=_0x303925;this[_0x4f6650(0x333)]=null,this[_0x4f6650(0x1dc)][_0x4f6650(0x29e)]>0x0&&this[_0x4f6650(0x455)]===_0x4f6650(0x271)&&this[_0x4f6650(0x486)]();});}async[_0x3cf00e(0x26e)](){const _0x152191=_0x3cf00e;for(;this[_0x152191(0x1dc)][_0x152191(0x29e)]>0x0&&this[_0x152191(0x455)]===_0x152191(0x271)&&this[_0x152191(0x284)];){let _0x94d2ba=this[_0x152191(0x26c)](),_0x400171=_0x529eec(this[_0x152191(0x284)]),_0x5b050f=Math['min'](0x4000000,Math['max'](_0x400171,Math[_0x152191(0x193)](_0x94d2ba[_0x152191(0x2eb)][_0x152191(0x3de)]/0x4))),_0x334c98=[],_0x4f5612=0x0;for(;this[_0x152191(0x1dc)][_0x152191(0x29e)]>0x0&&_0x334c98[_0x152191(0x29e)]<0x10;){let _0x37c539=this[_0x152191(0x1dc)][0x0];if(_0x334c98[_0x152191(0x29e)]>0x0&&_0x4f5612+_0x400171>_0x5b050f)break;if(this['pendingBrickUploads'][_0x152191(0x393)](),_0x37c539['generation']!==this[_0x152191(0x2c7)]){_0x37c539['reject'](new DOMException('Volume\x20brick\x20upload\x20became\x20stale.\x20体积砖上传已过期。',_0x152191(0x234)));continue;}_0x334c98['push'](_0x37c539),_0x4f5612+=_0x400171;}if(_0x334c98[_0x152191(0x29e)]!==0x0)try{let _0x418a66=[],_0x1ce16f=0x0;for(let _0x502358 of _0x334c98){let _0xc1ab10=this[_0x152191(0x4be)]()[_0x152191(0x19e)](_0x502358[_0x152191(0x197)],this[_0x152191(0x3c1)]),_0x5b47c5=Math[_0x152191(0x42a)](_0x1ce16f/0x100)*0x100;_0x418a66[_0x152191(0x432)]({'item':_0x502358,'prepared':_0xc1ab10,'bufferOffset':_0x5b47c5}),_0x1ce16f=_0x5b47c5+_0xc1ab10['values'][_0x152191(0x408)];}let _0x1f0a90=this['getUploadStagingBuffer'](_0x1ce16f);await _0x1f0a90[_0x152191(0x27c)](GPUMapMode[_0x152191(0x1a0)]);let _0x52e2db=new Uint8Array(_0x1f0a90[_0x152191(0x430)]());for(let _0x230f50 of _0x418a66){let _0x1cd4ac=_0x230f50[_0x152191(0x19f)][_0x152191(0x441)];_0x52e2db['set'](new Uint8Array(_0x1cd4ac[_0x152191(0x22f)],_0x1cd4ac[_0x152191(0x2f1)],_0x1cd4ac[_0x152191(0x408)]),_0x230f50['bufferOffset']);}_0x1f0a90[_0x152191(0x19b)]();let _0x40880f=_0x94d2ba[_0x152191(0x398)]({'label':_0x152191(0x25e)});for(let _0x19f56b of _0x418a66)this['getAtlas']()[_0x152191(0x302)](_0x40880f,_0x1f0a90,_0x19f56b[_0x152191(0x368)],_0x19f56b['prepared']);_0x94d2ba[_0x152191(0x3e6)][_0x152191(0x2af)]([_0x40880f['finish']()]),await _0x94d2ba[_0x152191(0x3e6)][_0x152191(0x2fe)](),await new Promise(_0x3bcbcf=>setTimeout(_0x3bcbcf,0x0)),this[_0x152191(0x3c5)]+=_0x334c98['length'],this[_0x152191(0x1b6)]+=0x1,this[_0x152191(0x180)]=Math['max'](this[_0x152191(0x180)],_0x4f5612);for(let _0x378d8b of _0x334c98){if(_0x378d8b[_0x152191(0x355)]!==this['uploadGeneration']){_0x378d8b['reject'](new DOMException(_0x152191(0x1d0),_0x152191(0x234)));continue;}_0x378d8b[_0x152191(0x2ff)]&&this[_0x152191(0x4af)](_0x378d8b[_0x152191(0x197)]),_0x378d8b['resolve']();}}catch(_0x3168ad){for(let _0xf388d4 of _0x334c98)_0xf388d4[_0x152191(0x20f)](_0x3168ad);}}}[_0x3cf00e(0x1c4)](_0x4cb363){const _0x1d7384=_0x3cf00e;let _0x2074c7=Math[_0x1d7384(0x181)](0x100,Math[_0x1d7384(0x42a)](_0x4cb363/0x100)*0x100);return this[_0x1d7384(0x263)]&&this[_0x1d7384(0x270)]>=_0x2074c7?this['uploadStagingBuffer']:(this['uploadStagingBuffer']?.['destroy'](),this[_0x1d7384(0x263)]=this['getDevice']()[_0x1d7384(0x1cc)]({'label':'volume\x20brick\x20reusable\x20upload\x20staging','size':_0x2074c7,'usage':GPUBufferUsage[_0x1d7384(0x310)]|GPUBufferUsage['COPY_SRC']}),this[_0x1d7384(0x270)]=_0x2074c7,this[_0x1d7384(0x263)]);}[_0x3cf00e(0x4af)](_0x2dc81d){const _0x26bb5c=_0x3cf00e;for(this['cachedBricks'][_0x26bb5c(0x370)](_0x2dc81d[_0x26bb5c(0x2b3)]),this[_0x26bb5c(0x480)][_0x26bb5c(0x466)](_0x2dc81d[_0x26bb5c(0x2b3)],new Float32Array(_0x2dc81d[_0x26bb5c(0x441)]));this[_0x26bb5c(0x480)][_0x26bb5c(0x304)]>this[_0x26bb5c(0x246)]['atlasCapacity'];){let _0x13374c=this['cachedBricks'][_0x26bb5c(0x221)]()[_0x26bb5c(0x283)]()[_0x26bb5c(0x2d8)];if(_0x13374c===void 0x0)break;this['cachedBricks']['delete'](_0x13374c);}}[_0x3cf00e(0x425)](_0x6a638a){const _0x487af5=_0x3cf00e;for(let _0x4c0ad5 of this[_0x487af5(0x1dc)][_0x487af5(0x3cc)](0x0))_0x4c0ad5[_0x487af5(0x20f)](_0x6a638a);}['updateTransferResources'](){const _0x1d748b=_0x3cf00e;let _0x3068e4=this[_0x1d748b(0x32f)]();_0x3068e4['update'](this['colorStops'],this[_0x1d748b(0x389)]),this[_0x1d748b(0x491)]=_0x3068e4[_0x1d748b(0x1d1)](this['getTransferBindGroupLayout']());}[_0x3cf00e(0x249)](){const _0x5cdff5=_0x3cf00e;!this[_0x5cdff5(0x4c3)]||!this['attachments']||!this['geometryBindGroupLayout']||!this[_0x5cdff5(0x21a)]||(this[_0x5cdff5(0x36e)]=this[_0x5cdff5(0x26c)]()['createBindGroup']({'label':_0x5cdff5(0x2c3),'layout':this['geometryBindGroupLayout'],'entries':[{'binding':0x0,'resource':{'buffer':this[_0x5cdff5(0x4c3)]}}]}),this[_0x5cdff5(0x3af)]=this[_0x5cdff5(0x26c)]()[_0x5cdff5(0x1d1)]({'label':_0x5cdff5(0x24c),'layout':this[_0x5cdff5(0x21a)],'entries':[{'binding':0x0,'resource':{'buffer':this[_0x5cdff5(0x4c3)]}},{'binding':0x1,'resource':this[_0x5cdff5(0x475)][_0x5cdff5(0x1a7)]}]}));}[_0x3cf00e(0x273)](){const _0x438223=_0x3cf00e;let _0x43cacd=new Float32Array(0x64);_0x43cacd[_0x438223(0x466)](this[_0x438223(0x48c)][_0x438223(0x317)],0x0),_0x43cacd[_0x438223(0x466)](this['camera'][_0x438223(0x2d5)],0x10),_0x43cacd[_0x438223(0x466)](this[_0x438223(0x295)],0x20),_0x43cacd[_0x438223(0x466)](this[_0x438223(0x49f)],0x30),_0x43cacd[_0x438223(0x466)]([...this[_0x438223(0x48c)][_0x438223(0x160)],0x1],0x40),_0x43cacd[_0x438223(0x466)]([this['width'],this[_0x438223(0x488)],0x1/this['width'],0x1/this[_0x438223(0x488)]],0x44),_0x43cacd[_0x438223(0x466)]([...this[_0x438223(0x1ab)],0x0],0x48),_0x43cacd[_0x438223(0x466)]([...this['clipMaximum'],0x0],0x4c),_0x43cacd['set']([+(this[_0x438223(0x285)]===_0x438223(0x1bd)),this[_0x438223(0x2cd)],this[_0x438223(0x429)],this['stepLength']],0x50),_0x43cacd[_0x438223(0x466)]([this[_0x438223(0x231)]['length'],this['opacityStops'][_0x438223(0x29e)],this[_0x438223(0x308)],+(this['colorMode']===_0x438223(0x1a9))],0x54);let _0x5d6b2b=this[_0x438223(0x3e2)];_0x5d6b2b&&(_0x43cacd['set']([0x1,..._0x5d6b2b[_0x438223(0x282)]],0x58),_0x43cacd[_0x438223(0x466)]([_0x5d6b2b[_0x438223(0x2df)],_0x5d6b2b['semiMinorAxisScaled'],..._0x5d6b2b[_0x438223(0x2bf)]],0x5c),_0x43cacd[_0x438223(0x466)]([..._0x5d6b2b[_0x438223(0x3f4)],..._0x5d6b2b[_0x438223(0x27e)]],0x60)),this['getDevice']()[_0x438223(0x3e6)][_0x438223(0x391)](this[_0x438223(0x3a9)](),0x0,_0x43cacd);}[_0x3cf00e(0x1ef)](){const _0x2a7c93=_0x3cf00e;let _0xb119ff=this['metadata'],_0x170d9d=this['atlas'];if(!_0xb119ff||!_0x170d9d)return;let _0x461c2c=_0x170d9d[_0x2a7c93(0x45b)],_0x1191f4=new Uint32Array(0x60/0x4),_0x4a391f=Math[_0x2a7c93(0x42a)](_0xb119ff[_0x2a7c93(0x49a)][_0x2a7c93(0x400)]/_0xb119ff[_0x2a7c93(0x26f)]),_0x1282fb=Math['ceil'](_0xb119ff[_0x2a7c93(0x46c)][_0x2a7c93(0x400)]/_0xb119ff[_0x2a7c93(0x2a5)]),_0x2a1696=Math[_0x2a7c93(0x42a)](_0xb119ff[_0x2a7c93(0x28b)]['count']/_0xb119ff[_0x2a7c93(0x328)]);_0x1191f4[_0x2a7c93(0x466)]([_0xb119ff[_0x2a7c93(0x49a)][_0x2a7c93(0x400)],_0xb119ff['yAxis'][_0x2a7c93(0x400)],_0xb119ff[_0x2a7c93(0x28b)][_0x2a7c93(0x400)],0x0],0x0),_0x1191f4['set']([_0xb119ff[_0x2a7c93(0x26f)],_0xb119ff[_0x2a7c93(0x2a5)],_0xb119ff[_0x2a7c93(0x328)],0x1],0x4),_0x1191f4[_0x2a7c93(0x466)]([_0x4a391f,_0x1282fb,_0x2a1696,0x0],0x8),_0x1191f4[_0x2a7c93(0x466)]([_0x461c2c[_0x2a7c93(0x371)],_0x461c2c[_0x2a7c93(0x37f)],_0x461c2c[_0x2a7c93(0x17a)],_0x461c2c[_0x2a7c93(0x3ae)]],0xc),_0x1191f4[_0x2a7c93(0x466)]([(_0xb119ff[_0x2a7c93(0x26f)]+0x2)*_0x461c2c[_0x2a7c93(0x371)],(_0xb119ff[_0x2a7c93(0x2a5)]+0x2)*_0x461c2c[_0x2a7c93(0x37f)],(_0xb119ff[_0x2a7c93(0x328)]+0x2)*_0x461c2c[_0x2a7c93(0x17a)],0x0],0x10),new Float32Array(_0x1191f4[_0x2a7c93(0x22f)])[_0x2a7c93(0x466)]([_0xb119ff['noData']??0x0,_0xb119ff[_0x2a7c93(0x4c9)]===void 0x0?0x0:0x1,0x0,0x0],0x14),this[_0x2a7c93(0x26c)]()[_0x2a7c93(0x3e6)][_0x2a7c93(0x391)](this[_0x2a7c93(0x448)](),0x0,_0x1191f4);}[_0x3cf00e(0x2d9)](_0x413e9e,_0x3d2264){const _0x2473e4=_0x3cf00e;let _0x5189e4=_0x413e9e[_0x2473e4(0x43a)]({'label':_0x2473e4(0x2ab),'colorAttachments':[{'view':_0x3d2264,'clearValue':{'r':0x0,'g':0x0,'b':0x0,'a':0x0},'loadOp':'clear','storeOp':_0x2473e4(0x43f)}],'depthStencilAttachment':{'view':this[_0x2473e4(0x192)]()[_0x2473e4(0x1a7)],'depthClearValue':0x1,'depthLoadOp':_0x2473e4(0x203),'depthStoreOp':'store'}});this[_0x2473e4(0x426)](_0x5189e4,_0x2473e4(0x2d0)),this[_0x2473e4(0x18b)](_0x5189e4,'scene'),_0x5189e4[_0x2473e4(0x196)]();}[_0x3cf00e(0x46b)](_0x386d48,_0x5a8ec4){const _0x512016=_0x3cf00e;if(!this[_0x512016(0x16e)]||!this['transferBindGroup']||!this['sceneBindGroup']||!this['volumePipeline'])return;let _0xc96ca4=_0x386d48[_0x512016(0x43a)]({'label':_0x512016(0x198),'colorAttachments':[{'view':_0x5a8ec4,'loadOp':'load','storeOp':'store'}]});_0xc96ca4[_0x512016(0x3d2)](this[_0x512016(0x3bd)]),_0xc96ca4[_0x512016(0x244)](0x0,this[_0x512016(0x3af)]),_0xc96ca4[_0x512016(0x244)](0x1,this['volumeBindGroup']),_0xc96ca4[_0x512016(0x244)](0x2,this[_0x512016(0x491)]),_0xc96ca4[_0x512016(0x3b2)](0x3),_0xc96ca4[_0x512016(0x196)]();}[_0x3cf00e(0x20b)](_0x15de13,_0x102409){const _0x279df1=_0x3cf00e;let _0x322c83=_0x15de13['beginRenderPass']({'label':_0x279df1(0x496),'colorAttachments':[{'view':_0x102409,'loadOp':_0x279df1(0x442),'storeOp':_0x279df1(0x43f)}]});this[_0x279df1(0x426)](_0x322c83,_0x279df1(0x313)),this['drawSlices'](_0x322c83,'always-visible'),_0x322c83[_0x279df1(0x196)]();}[_0x3cf00e(0x426)](_0x1a84f4,_0x54cacc){const _0x1fca33=_0x3cf00e;let _0x4ed9a7=this['geometryBindGroup'];if(!_0x4ed9a7)return;let _0x413d02=_0x54cacc===_0x1fca33(0x2d0)?this[_0x1fca33(0x28a)]:this['overlayTrianglePipeline'],_0x13fcfb=_0x54cacc==='scene'?this[_0x1fca33(0x1cf)]:this['overlayLinePipeline'];_0x413d02&&(_0x1a84f4[_0x1fca33(0x3d2)](_0x413d02),_0x1a84f4[_0x1fca33(0x244)](0x0,_0x4ed9a7),this['profileResources']?.[_0x1fca33(0x3b2)](_0x1a84f4,_0x1fca33(0x36b),_0x54cacc),this[_0x1fca33(0x435)]?.['draw'](_0x1a84f4,_0x1fca33(0x36b),_0x54cacc)),_0x13fcfb&&(_0x1a84f4[_0x1fca33(0x3d2)](_0x13fcfb),_0x1a84f4[_0x1fca33(0x244)](0x0,_0x4ed9a7),this[_0x1fca33(0x319)]?.[_0x1fca33(0x3b2)](_0x1a84f4,_0x1fca33(0x47d),_0x54cacc),this[_0x1fca33(0x435)]?.[_0x1fca33(0x3b2)](_0x1a84f4,_0x1fca33(0x47d),_0x54cacc));}[_0x3cf00e(0x18b)](_0x1108f6,_0x231b39){const _0x8fa9db=_0x3cf00e;let _0x1fd095=_0x231b39===_0x8fa9db(0x2d0)?this[_0x8fa9db(0x17e)]:this['overlaySlicePipeline'];!_0x1fd095||!this[_0x8fa9db(0x36e)]||!this[_0x8fa9db(0x16e)]||!this[_0x8fa9db(0x491)]||(_0x1108f6[_0x8fa9db(0x244)](0x0,this[_0x8fa9db(0x36e)]),_0x1108f6['setBindGroup'](0x1,this[_0x8fa9db(0x16e)]),_0x1108f6[_0x8fa9db(0x244)](0x2,this['transferBindGroup']),this['sliceResources']?.['draw'](_0x1108f6,_0x1fd095,_0x231b39));}[_0x3cf00e(0x24b)](_0x488a1f){const _0x3ea850=_0x3cf00e;_0x488a1f[_0x3ea850(0x2f8)]['then'](_0xdfbf51=>{const _0x10d11c=_0x3ea850;if(this['device']!==_0x488a1f||this[_0x10d11c(0x455)]===_0x10d11c(0x28f))return;this[_0x10d11c(0x455)]='lost',console[_0x10d11c(0x2da)](_0x10d11c(0x27f)+_0xdfbf51[_0x10d11c(0x202)]+_0x10d11c(0x3cf));let _0x8a64eb=this[_0x10d11c(0x3b3)];this[_0x10d11c(0x33b)](),_0x8a64eb&&this[_0x10d11c(0x3ad)](_0x8a64eb)[_0x10d11c(0x1b8)](_0x42cccc=>{const _0x5866ff=_0x10d11c;console[_0x5866ff(0x2da)]('WebGPU\x20volume\x20device\x20restoration\x20failed.\x20WebGPU\x20体积设备恢复失败。',_0x42cccc);});});}[_0x3cf00e(0x33b)](){const _0xec71d=_0x3cf00e;this[_0xec71d(0x2c7)]+=0x1,this[_0xec71d(0x425)](new DOMException(_0xec71d(0x215),'AbortError')),this[_0xec71d(0x18f)]?.[_0xec71d(0x32b)](),this[_0xec71d(0x413)]?.[_0xec71d(0x32b)](),this['profileResources']?.['destroy'](),this[_0xec71d(0x454)]?.[_0xec71d(0x32b)](),this[_0xec71d(0x435)]?.[_0xec71d(0x32b)](),this['attachments']?.[_0xec71d(0x32b)](),this[_0xec71d(0x4c3)]?.[_0xec71d(0x32b)](),this[_0xec71d(0x312)]?.[_0xec71d(0x32b)](),this[_0xec71d(0x263)]?.['destroy']();try{this[_0xec71d(0x2ac)]?.[_0xec71d(0x2b9)]();}catch{}this[_0xec71d(0x42d)]?.[_0xec71d(0x32b)](),this[_0xec71d(0x315)]=null,this[_0xec71d(0x42d)]=null,this[_0xec71d(0x2ac)]=null,this[_0xec71d(0x2b4)]=null,this['sceneParamsBuffer']=null,this[_0xec71d(0x312)]=null,this[_0xec71d(0x263)]=null,this[_0xec71d(0x270)]=0x0,this[_0xec71d(0x44c)]=null,this[_0xec71d(0x21a)]=null,this[_0xec71d(0x24d)]=null,this[_0xec71d(0x25f)]=null,this[_0xec71d(0x38f)]=null,this[_0xec71d(0x36e)]=null,this[_0xec71d(0x3af)]=null,this[_0xec71d(0x16e)]=null,this['transferBindGroup']=null,this[_0xec71d(0x3bd)]=null,this['sceneTrianglePipeline']=null,this[_0xec71d(0x1cf)]=null,this[_0xec71d(0x476)]=null,this['overlayLinePipeline']=null,this[_0xec71d(0x17e)]=null,this[_0xec71d(0x20d)]=null,this['attachments']=null,this[_0xec71d(0x18f)]=null,this[_0xec71d(0x413)]=null,this[_0xec71d(0x319)]=null,this['sliceResources']=null,this[_0xec71d(0x435)]=null,this['frameInFlight']=!0x1,this[_0xec71d(0x362)]=0x0,this[_0xec71d(0x488)]=0x0;}[_0x3cf00e(0x26c)](){const _0x366533=_0x3cf00e;if(!this[_0x366533(0x42d)])throw Error('WebGPU\x20volume\x20device\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20device\x20尚未初始化。');return this[_0x366533(0x42d)];}['getContext'](){const _0x12f3db=_0x3cf00e;if(!this[_0x12f3db(0x2ac)])throw Error(_0x12f3db(0x23c));return this[_0x12f3db(0x2ac)];}[_0x3cf00e(0x3eb)](){const _0x392425=_0x3cf00e;if(!this[_0x392425(0x2b4)])throw Error(_0x392425(0x275));return this['format'];}['getCanvas'](){const _0x1dd4e7=_0x3cf00e;if(!this[_0x1dd4e7(0x3b3)])throw Error(_0x1dd4e7(0x3c7));return this[_0x1dd4e7(0x3b3)];}[_0x3cf00e(0x192)](){const _0x1ab768=_0x3cf00e;if(!this[_0x1ab768(0x475)])throw Error(_0x1ab768(0x434));return this[_0x1ab768(0x475)];}[_0x3cf00e(0x4be)](){const _0x26c05c=_0x3cf00e;if(!this[_0x26c05c(0x18f)])throw Error('WebGPU\x20volume\x20source\x20must\x20be\x20configured\x20before\x20uploading\x20bricks.\x20上传砖块前必须配置\x20WebGPU\x20体积数据源。');return this[_0x26c05c(0x18f)];}[_0x3cf00e(0x32f)](){const _0x3aa7ff=_0x3cf00e;if(!this[_0x3aa7ff(0x413)])throw Error('WebGPU\x20transfer\x20resources\x20are\x20unavailable.\x20WebGPU\x20传递函数资源不可用。');return this['transferResources'];}[_0x3cf00e(0x2e8)](){const _0x1f4f4d=_0x3cf00e;if(!this[_0x1f4f4d(0x319)])throw Error(_0x1f4f4d(0x47e));return this['profileResources'];}[_0x3cf00e(0x497)](){const _0xf78949=_0x3cf00e;if(!this['sliceResources'])throw Error(_0xf78949(0x47c));return this[_0xf78949(0x454)];}[_0x3cf00e(0x2de)](){const _0x2d313e=_0x3cf00e;if(!this[_0x2d313e(0x435)])throw Error('WebGPU\x20axis\x20resources\x20are\x20unavailable.\x20WebGPU\x20轴线资源不可用。');return this[_0x2d313e(0x435)];}[_0x3cf00e(0x42c)](){const _0x56dbfb=_0x3cf00e;if(!this[_0x56dbfb(0x21a)])throw Error('WebGPU\x20scene\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20场景绑定布局不可用。');return this[_0x56dbfb(0x21a)];}['getGeometryBindGroupLayout'](){const _0xbc3a1e=_0x3cf00e;if(!this[_0xbc3a1e(0x44c)])throw Error(_0xbc3a1e(0x1eb));return this[_0xbc3a1e(0x44c)];}[_0x3cf00e(0x34e)](){const _0x237226=_0x3cf00e;if(!this[_0x237226(0x24d)])throw Error(_0x237226(0x218));return this[_0x237226(0x24d)];}[_0x3cf00e(0x206)](){const _0x598559=_0x3cf00e;if(!this[_0x598559(0x25f)])throw Error(_0x598559(0x33c));return this['transferBindGroupLayout'];}['getSliceBindGroupLayout'](){const _0x5a46bc=_0x3cf00e;if(!this['sliceBindGroupLayout'])throw Error(_0x5a46bc(0x35f));return this[_0x5a46bc(0x38f)];}[_0x3cf00e(0x3a9)](){const _0x3d9320=_0x3cf00e;if(!this[_0x3d9320(0x4c3)])throw Error(_0x3d9320(0x350));return this[_0x3d9320(0x4c3)];}[_0x3cf00e(0x448)](){const _0x522f49=_0x3cf00e;if(!this[_0x522f49(0x312)])throw Error('WebGPU\x20volume\x20params\x20buffer\x20is\x20unavailable.\x20WebGPU\x20体积参数\x20Buffer\x20不可用。');return this['volumeParamsBuffer'];}};let _0x5b8dd0=(_0x29bec2,_0x2b5333)=>_0x2b5333==='x'?_0x29bec2[_0x3cf00e(0x49a)]:_0x2b5333==='y'?_0x29bec2['yAxis']:_0x29bec2[_0x3cf00e(0x28b)],_0x4c6fcd=(_0xe39b85,_0x4fef35,_0x3a94a7)=>{const _0x556fcc=_0x3cf00e;if(!Number['isFinite'](_0x3a94a7))throw Error(_0x556fcc(0x43b));let _0x33a72f=_0x5b8dd0(_0xe39b85,_0x4fef35),_0x2d05e3=Math[_0x556fcc(0x46a)](_0x33a72f[_0x556fcc(0x17f)],_0x33a72f['end']),_0x1191a1=Math['max'](_0x33a72f[_0x556fcc(0x17f)],_0x33a72f['end']);return Math[_0x556fcc(0x46a)](_0x1191a1,Math[_0x556fcc(0x181)](_0x2d05e3,_0x3a94a7));},_0x2623c9=_0x4d37db=>_0x4d37db?{..._0x4d37db}:null,_0x8f85a7=_0x5390b4=>({..._0x5390b4}),_0x6595b9=_0x22ca59=>{const _0x244c62=_0x3cf00e;for(let _0x5637a7 of[_0x22ca59['xAxis'],_0x22ca59[_0x244c62(0x46c)],_0x22ca59[_0x244c62(0x28b)]]){if(!Number['isFinite'](_0x5637a7['start'])||!Number[_0x244c62(0x2f3)](_0x5637a7[_0x244c62(0x196)]))throw Error('切面轴端点必须是有限数。');if(!(Number['isInteger'](_0x5637a7['count'])&&_0x5637a7['count']>0x0))throw Error(_0x244c62(0x382));if(_0x5637a7['count']>0x1&&_0x5637a7[_0x244c62(0x17f)]===_0x5637a7[_0x244c62(0x196)])throw Error(_0x244c62(0x37d));}},_0x52d8c6=(_0x2b8124,_0x4519b4)=>_0x2b8124[_0x3cf00e(0x17f)]===_0x2b8124[_0x3cf00e(0x196)]?0x0:(_0x4519b4-_0x2b8124[_0x3cf00e(0x17f)])/(_0x2b8124[_0x3cf00e(0x196)]-_0x2b8124[_0x3cf00e(0x17f)]),_0x552d4f=(_0x45b372,_0x39d9b0)=>_0x45b372[_0x3cf00e(0x17f)]+_0x39d9b0*(_0x45b372[_0x3cf00e(0x196)]-_0x45b372[_0x3cf00e(0x17f)]);var _0x4d9d8e=class{[_0x3cf00e(0x35c)];[_0x3cf00e(0x1ba)]=new Set();['onLimitReached'];['maxLockedSlices'];['depthMode'];[_0x3cf00e(0x47f)]=0x1;['currentPreview']=null;[_0x3cf00e(0x4b6)]=[];[_0x3cf00e(0x23a)]=_0x3cf00e(0x1d4);['volumeDimFactor'];constructor(_0x59c62f,_0x29358b={}){const _0x4614e5=_0x3cf00e;if(_0x6595b9(_0x59c62f),this[_0x4614e5(0x35c)]={'xAxis':{..._0x59c62f[_0x4614e5(0x49a)]},'yAxis':{..._0x59c62f[_0x4614e5(0x46c)]},'zAxis':{..._0x59c62f[_0x4614e5(0x28b)]}},this[_0x4614e5(0x308)]=_0x29358b[_0x4614e5(0x308)]??0.25,this['depthMode']=_0x29358b[_0x4614e5(0x438)]??_0x4614e5(0x2d0),this['maxLockedSlices']=_0x29358b[_0x4614e5(0x3bb)]??0xc,this['onLimitReached']=_0x29358b[_0x4614e5(0x3a1)],!(this[_0x4614e5(0x308)]>=0x0&&this['volumeDimFactor']<=0x1))throw Error(_0x4614e5(0x396));if(this[_0x4614e5(0x438)]!==_0x4614e5(0x2d0)&&this[_0x4614e5(0x438)]!==_0x4614e5(0x313))throw Error(_0x4614e5(0x338));if(!(Number[_0x4614e5(0x483)](this[_0x4614e5(0x3bb)])&&this[_0x4614e5(0x3bb)]>0x0))throw Error(_0x4614e5(0x17c));}get[_0x3cf00e(0x1e0)](){const _0x5d07e2=_0x3cf00e;return _0x2623c9(this[_0x5d07e2(0x2a7)]);}get[_0x3cf00e(0x240)](){const _0x41c0de=_0x3cf00e;return this[_0x41c0de(0x4b6)][_0x41c0de(0x4bc)](_0x8f85a7);}get[_0x3cf00e(0x185)](){return this['mode'];}get['snapshot'](){const _0x504b1e=_0x3cf00e;return{'preview':this[_0x504b1e(0x1e0)],'lockedSlices':this[_0x504b1e(0x240)],'toolMode':this[_0x504b1e(0x23a)],'volumeDimFactor':this[_0x504b1e(0x308)]};}[_0x3cf00e(0x48f)](_0x34c19f){const _0x260e61=_0x3cf00e;return this[_0x260e61(0x1ba)][_0x260e61(0x2fa)](_0x34c19f),_0x34c19f(this[_0x260e61(0x1f8)]),()=>this[_0x260e61(0x1ba)]['delete'](_0x34c19f);}get[_0x3cf00e(0x3ce)](){const _0x2449bc=_0x3cf00e;return{'xAxis':{...this[_0x2449bc(0x35c)][_0x2449bc(0x49a)]},'yAxis':{...this[_0x2449bc(0x35c)][_0x2449bc(0x46c)]},'zAxis':{...this[_0x2449bc(0x35c)]['zAxis']}};}[_0x3cf00e(0x3a5)](_0x5e4f33){const _0x301a24=_0x3cf00e;_0x6595b9(_0x5e4f33),this[_0x301a24(0x35c)]={'xAxis':{..._0x5e4f33[_0x301a24(0x49a)]},'yAxis':{..._0x5e4f33[_0x301a24(0x46c)]},'zAxis':{..._0x5e4f33['zAxis']}},this[_0x301a24(0x2a7)]&&(this[_0x301a24(0x2a7)][_0x301a24(0x1f9)]=_0x4c6fcd(this[_0x301a24(0x35c)],this[_0x301a24(0x2a7)][_0x301a24(0x16a)],this[_0x301a24(0x2a7)]['position'])),this[_0x301a24(0x4b6)]=this[_0x301a24(0x4b6)]['map'](_0x445010=>({..._0x445010,'position':_0x4c6fcd(this[_0x301a24(0x35c)],_0x445010[_0x301a24(0x16a)],_0x445010[_0x301a24(0x1f9)])})),this[_0x301a24(0x1c0)]();}[_0x3cf00e(0x349)](_0x2aad3a){const _0xc84f9d=_0x3cf00e;this['mode']!==_0x2aad3a&&(this[_0xc84f9d(0x23a)]=_0x2aad3a,(_0x2aad3a===null||_0x2aad3a!=='auto'&&this[_0xc84f9d(0x2a7)]?.[_0xc84f9d(0x16a)]!==_0x2aad3a)&&(this[_0xc84f9d(0x2a7)]=null),this[_0xc84f9d(0x1c0)]());}[_0x3cf00e(0x492)](_0x64a469,_0x417f51){const _0x44d123=_0x3cf00e;if(this['mode']===null||this['mode']!=='auto'&&this['mode']!==_0x64a469)return;let _0x24e7a7=_0x4c6fcd(this[_0x44d123(0x35c)],_0x64a469,_0x417f51);this[_0x44d123(0x2a7)]?.['axis']===_0x64a469&&this[_0x44d123(0x2a7)]['position']===_0x24e7a7||(this[_0x44d123(0x2a7)]={'axis':_0x64a469,'position':_0x24e7a7},this['notify']());}[_0x3cf00e(0x361)](){const _0x18ecfb=_0x3cf00e;this[_0x18ecfb(0x2a7)]&&(this[_0x18ecfb(0x2a7)]=null,this['notify']());}[_0x3cf00e(0x4c6)](_0x82ce00=this['depthMode']){const _0x1253bd=_0x3cf00e;return this[_0x1253bd(0x2a7)]?this[_0x1253bd(0x2a6)](this[_0x1253bd(0x2a7)][_0x1253bd(0x16a)],this[_0x1253bd(0x2a7)]['position'],_0x82ce00):null;}[_0x3cf00e(0x2a6)](_0x3f09e5,_0x2546e0,_0x32b9f7=this[_0x3cf00e(0x438)]){const _0x3218e3=_0x3cf00e;if(this[_0x3218e3(0x4b6)][_0x3218e3(0x29e)]>=this[_0x3218e3(0x3bb)])return this[_0x3218e3(0x3a1)]?.(this[_0x3218e3(0x3bb)]),null;let _0x4314a2={'id':'volume-slice-'+this['nextId'],'axis':_0x3f09e5,'position':_0x4c6fcd(this[_0x3218e3(0x35c)],_0x3f09e5,_0x2546e0),'depthMode':_0x32b9f7,'visible':!0x0};return this['nextId']+=0x1,this[_0x3218e3(0x4b6)]=[...this[_0x3218e3(0x4b6)],_0x4314a2],this['notify'](),_0x8f85a7(_0x4314a2);}['updateLockedSlice'](_0x3d5230,_0x113dc1){const _0x212a4b=_0x3cf00e;let _0x3592bf=this[_0x212a4b(0x4b6)][_0x212a4b(0x1b3)](_0x55a0d9=>_0x55a0d9['id']===_0x3d5230);if(_0x3592bf<0x0)return;let _0x46c7ec=this[_0x212a4b(0x4b6)][_0x3592bf],_0x2cd979=_0x4c6fcd(this[_0x212a4b(0x35c)],_0x46c7ec[_0x212a4b(0x16a)],_0x113dc1);_0x2cd979!==_0x46c7ec[_0x212a4b(0x1f9)]&&(this[_0x212a4b(0x4b6)]=this[_0x212a4b(0x4b6)]['map'](_0x425d72=>_0x425d72['id']===_0x3d5230?{..._0x425d72,'position':_0x2cd979}:_0x425d72),this[_0x212a4b(0x1c0)]());}['removeSlice'](_0x525753){const _0x53dc46=_0x3cf00e;let _0x196f88=this[_0x53dc46(0x4b6)]['filter'](_0xc1b559=>_0xc1b559['id']!==_0x525753);_0x196f88[_0x53dc46(0x29e)]!==this[_0x53dc46(0x4b6)][_0x53dc46(0x29e)]&&(this[_0x53dc46(0x4b6)]=_0x196f88,this[_0x53dc46(0x1c0)]());}[_0x3cf00e(0x293)](){const _0x18eeea=_0x3cf00e;this[_0x18eeea(0x4b6)][_0x18eeea(0x29e)]!==0x0&&(this[_0x18eeea(0x4b6)]=[],this[_0x18eeea(0x1c0)]());}[_0x3cf00e(0x1c0)](){const _0x2c5a14=_0x3cf00e;let _0x397a20=this[_0x2c5a14(0x1f8)];for(let _0xe577a1 of this['listeners'])_0xe577a1(_0x397a20);}};let _0xd5bd05=_0x5ced62=>_0x5ced62==='x'?[[0x0,0x0,0x0],[0x1,0x0,0x0]]:_0x5ced62==='y'?[[0x0,0x0,0x0],[0x0,0x1,0x0]]:[[0x0,0x0,0x0],[0x0,0x0,0x1]],_0x19be50=(_0x3d0ed2,_0x547a98)=>{const _0x52cf7b=_0x3cf00e;let _0x225b5f=_0x3c1d6a(_0x547a98['viewProjectionMatrix'],_0x547a98[_0x52cf7b(0x295)]),[_0x4b6faa,_0x9eb5a5]=_0xd5bd05(_0x3d0ed2),_0xb16293=_0x33bf35(_0x225b5f,_0x4b6faa,_0x547a98['viewportWidth'],_0x547a98['viewportHeight']),_0x494612=_0x33bf35(_0x225b5f,_0x9eb5a5,_0x547a98[_0x52cf7b(0x264)],_0x547a98[_0x52cf7b(0x210)]);return!_0xb16293||!_0x494612?null:{'axis':_0x3d0ed2,'startX':_0xb16293[0x0],'startY':_0xb16293[0x1],'endX':_0x494612[0x0],'endY':_0x494612[0x1]};},_0x3bffd7=(_0x19c45b,_0x514d1d,_0x5a7ce2)=>{const _0x4b9992=_0x3cf00e;let _0x415569=_0x19c45b[_0x4b9992(0x3d1)]-_0x19c45b[_0x4b9992(0x2d1)],_0x4dfc9d=_0x19c45b['endY']-_0x19c45b[_0x4b9992(0x190)],_0x4a3af3=_0x415569*_0x415569+_0x4dfc9d*_0x4dfc9d,_0xcf91a2=_0x4a3af3===0x0?0x0:((_0x514d1d-_0x19c45b[_0x4b9992(0x2d1)])*_0x415569+(_0x5a7ce2-_0x19c45b['startY'])*_0x4dfc9d)/_0x4a3af3,_0x431403=Math[_0x4b9992(0x46a)](0x1,Math['max'](0x0,_0xcf91a2)),_0xeb26a8=_0x19c45b[_0x4b9992(0x2d1)]+_0x431403*_0x415569,_0x117a64=_0x19c45b[_0x4b9992(0x190)]+_0x431403*_0x4dfc9d;return{'axis':_0x19c45b['axis'],'distance':Math[_0x4b9992(0x241)](_0x514d1d-_0xeb26a8,_0x5a7ce2-_0x117a64),'normalizedPosition':_0x431403};},_0x802d=(_0x476bd7,_0xf22fa0,_0xeedd3e)=>{const _0x3f2e56=_0x3cf00e;let _0x1e8a38=_0xf22fa0[_0x3f2e56(0x3e8)]();return[_0x1e8a38[_0x3f2e56(0x362)]===0x0?0x0:(_0x476bd7[_0x3f2e56(0x383)]-_0x1e8a38[_0x3f2e56(0x1fd)])*_0xeedd3e[_0x3f2e56(0x264)]/_0x1e8a38[_0x3f2e56(0x362)],_0x1e8a38[_0x3f2e56(0x488)]===0x0?0x0:(_0x476bd7[_0x3f2e56(0x351)]-_0x1e8a38[_0x3f2e56(0x23f)])*_0xeedd3e[_0x3f2e56(0x210)]/_0x1e8a38[_0x3f2e56(0x488)]];},_0x8d5d06=(_0x227abc,_0x7f465d,_0x344524)=>{const _0x170aae=_0x3cf00e;let _0x87a59b=_0x227abc['axisDefinitions'];return _0x552d4f(_0x7f465d==='x'?_0x87a59b[_0x170aae(0x49a)]:_0x7f465d==='y'?_0x87a59b[_0x170aae(0x46c)]:_0x87a59b[_0x170aae(0x28b)],_0x344524);};var _0x9cb23b=class{[_0x3cf00e(0x261)];['state'];[_0x3cf00e(0x324)];[_0x3cf00e(0x4b7)];[_0x3cf00e(0x26d)];[_0x3cf00e(0x40d)];[_0x3cf00e(0x1b2)];[_0x3cf00e(0x44a)]=null;['previousAxis']=null;[_0x3cf00e(0x369)]=!0x1;constructor(_0x240339,_0x134703,_0x21abff,_0x4e816b={}){const _0x42b3e3=_0x3cf00e;this['element']=_0x240339,this[_0x42b3e3(0x165)]=_0x134703,this[_0x42b3e3(0x324)]=_0x21abff,this['hitTolerance']=_0x4e816b[_0x42b3e3(0x207)]??0xa,this[_0x42b3e3(0x26d)]=_0x4e816b[_0x42b3e3(0x21d)]??0x4,this[_0x42b3e3(0x40d)]=_0x4e816b[_0x42b3e3(0x40d)],this['onInteractionEnd']=_0x4e816b[_0x42b3e3(0x1b2)];}[_0x3cf00e(0x3ad)](){const _0xb6ebd3=_0x3cf00e;this[_0xb6ebd3(0x369)]||(this[_0xb6ebd3(0x369)]=!0x0,this[_0xb6ebd3(0x261)][_0xb6ebd3(0x3e5)](_0xb6ebd3(0x27a),this[_0xb6ebd3(0x2f6)],!0x0),this[_0xb6ebd3(0x261)]['addEventListener']('pointermove',this[_0xb6ebd3(0x3a4)],!0x0),this[_0xb6ebd3(0x261)][_0xb6ebd3(0x3e5)](_0xb6ebd3(0x2e7),this[_0xb6ebd3(0x499)],!0x0),window[_0xb6ebd3(0x3e5)](_0xb6ebd3(0x1db),this[_0xb6ebd3(0x474)],!0x0),window[_0xb6ebd3(0x3e5)]('pointerup',this[_0xb6ebd3(0x214)],!0x0),window[_0xb6ebd3(0x3e5)](_0xb6ebd3(0x177),this[_0xb6ebd3(0x214)],!0x0));}[_0x3cf00e(0x39c)](_0x13fea9,_0x26b9d9){const _0x4bff80=_0x3cf00e;let _0x56b6af=this[_0x4bff80(0x165)]['lockedSlices'][_0x4bff80(0x1fa)](_0x4a418d=>_0x4a418d['id']===_0x13fea9);_0x56b6af&&(this[_0x4bff80(0x44a)]={'kind':'locked','axis':_0x56b6af[_0x4bff80(0x16a)],'pointerId':_0x26b9d9['pointerId'],'sliceId':_0x13fea9,'startX':_0x26b9d9['clientX'],'startY':_0x26b9d9[_0x4bff80(0x351)],'moved':!0x1},this[_0x4bff80(0x40d)]?.(),_0x26b9d9[_0x4bff80(0x225)](),_0x26b9d9['stopPropagation']());}['destroy'](){const _0x5161a3=_0x3cf00e;this['initialized']&&(this['initialized']=!0x1,this[_0x5161a3(0x261)][_0x5161a3(0x4bf)](_0x5161a3(0x27a),this[_0x5161a3(0x2f6)],!0x0),this[_0x5161a3(0x261)][_0x5161a3(0x4bf)](_0x5161a3(0x1db),this[_0x5161a3(0x3a4)],!0x0),this['element'][_0x5161a3(0x4bf)](_0x5161a3(0x2e7),this[_0x5161a3(0x499)],!0x0),window[_0x5161a3(0x4bf)](_0x5161a3(0x1db),this[_0x5161a3(0x474)],!0x0),window[_0x5161a3(0x4bf)](_0x5161a3(0x1f1),this[_0x5161a3(0x214)],!0x0),window[_0x5161a3(0x4bf)](_0x5161a3(0x177),this['handlePointerUp'],!0x0),this[_0x5161a3(0x44a)]&&this['onInteractionEnd']?.(),this[_0x5161a3(0x44a)]=null,this[_0x5161a3(0x4b9)]=null,this[_0x5161a3(0x165)][_0x5161a3(0x361)]());}[_0x3cf00e(0x163)](_0x28e10c,_0x42007e){const _0x8ee9fc=_0x3cf00e;let _0x241302=this[_0x8ee9fc(0x324)]();if(!_0x241302)return null;let [_0x177868,_0x3bdeee]=_0x802d(_0x28e10c,this[_0x8ee9fc(0x261)],_0x241302),_0x358122=this[_0x8ee9fc(0x165)][_0x8ee9fc(0x185)];if(_0x358122===null)return null;let _0xa2b332=(_0x42007e?[_0x42007e]:_0x358122==='auto'?['x','y','z']:[_0x358122])[_0x8ee9fc(0x4bc)](_0xc54d5=>_0x19be50(_0xc54d5,_0x241302))[_0x8ee9fc(0x49e)](_0x117bf6=>_0x117bf6!==null)['map'](_0x40e1cb=>_0x3bffd7(_0x40e1cb,_0x177868,_0x3bdeee));if(_0xa2b332[_0x8ee9fc(0x29e)]===0x0)return null;_0xa2b332['sort']((_0x29c1d0,_0x3b3ccc)=>_0x29c1d0[_0x8ee9fc(0x24e)]-_0x3b3ccc['distance']);let _0x40bc1c=_0xa2b332[0x0];if(!_0x42007e&&this[_0x8ee9fc(0x4b9)]){let _0x4291ef=_0xa2b332[_0x8ee9fc(0x1fa)](_0x403eda=>_0x403eda['axis']===this[_0x8ee9fc(0x4b9)]);_0x4291ef&&_0x4291ef[_0x8ee9fc(0x24e)]<=_0x40bc1c['distance']+this[_0x8ee9fc(0x26d)]&&(_0x40bc1c=_0x4291ef);}return!_0x42007e&&_0x40bc1c[_0x8ee9fc(0x24e)]>this['hitTolerance']?null:_0x40bc1c;}[_0x3cf00e(0x397)](_0xf631cc,_0x1667c0){const _0x34969d=_0x3cf00e;let _0x178c8a=_0x8d5d06(this[_0x34969d(0x165)],_0xf631cc[_0x34969d(0x16a)],_0xf631cc[_0x34969d(0x346)]);_0x1667c0?this['state']['updateLockedSlice'](_0x1667c0,_0x178c8a):this[_0x34969d(0x165)][_0x34969d(0x492)](_0xf631cc['axis'],_0x178c8a),this[_0x34969d(0x4b9)]=_0xf631cc[_0x34969d(0x16a)];}[_0x3cf00e(0x2f6)]=_0x25af5c=>{const _0x141796=_0x3cf00e;if(_0x25af5c['button']!==0x0||this['activePointer'])return;let _0x45d758=this[_0x141796(0x163)](_0x25af5c);_0x45d758&&(this[_0x141796(0x397)](_0x45d758),this[_0x141796(0x44a)]={'kind':_0x141796(0x1e0),'axis':_0x45d758[_0x141796(0x16a)],'pointerId':_0x25af5c['pointerId'],'startX':_0x25af5c[_0x141796(0x383)],'startY':_0x25af5c['clientY'],'moved':!0x1},this[_0x141796(0x40d)]?.(),this[_0x141796(0x261)]['setPointerCapture']?.(_0x25af5c[_0x141796(0x395)]),_0x25af5c['preventDefault'](),_0x25af5c[_0x141796(0x21f)]());};[_0x3cf00e(0x3a4)]=_0x482fb9=>{const _0x353ded=_0x3cf00e;if(this[_0x353ded(0x44a)])return;let _0x26df34=this[_0x353ded(0x163)](_0x482fb9);if(!_0x26df34){this[_0x353ded(0x4b9)]=null,this[_0x353ded(0x165)]['clearPreview']();return;}this[_0x353ded(0x397)](_0x26df34);};[_0x3cf00e(0x474)]=_0x27d37b=>{const _0x303d33=_0x3cf00e;let _0x2a88b0=this['activePointer'];if(!_0x2a88b0||_0x2a88b0[_0x303d33(0x395)]!==_0x27d37b[_0x303d33(0x395)])return;let _0x53d72e=this[_0x303d33(0x163)](_0x27d37b,_0x2a88b0[_0x303d33(0x16a)]);_0x53d72e&&(Math[_0x303d33(0x241)](_0x27d37b[_0x303d33(0x383)]-_0x2a88b0[_0x303d33(0x2d1)],_0x27d37b[_0x303d33(0x351)]-_0x2a88b0[_0x303d33(0x190)])>0x4&&(_0x2a88b0[_0x303d33(0x2ce)]=!0x0),this[_0x303d33(0x397)](_0x53d72e,_0x2a88b0[_0x303d33(0x1b4)]),_0x27d37b[_0x303d33(0x225)](),_0x27d37b['stopPropagation']());};['handlePointerUp']=_0x2926b2=>{const _0x334f9b=_0x3cf00e;let _0x3a0f61=this['activePointer'];!_0x3a0f61||_0x3a0f61[_0x334f9b(0x395)]!==_0x2926b2[_0x334f9b(0x395)]||(_0x3a0f61[_0x334f9b(0x25b)]===_0x334f9b(0x1e0)&&!_0x3a0f61[_0x334f9b(0x2ce)]&&this['state'][_0x334f9b(0x4c6)](),this[_0x334f9b(0x261)][_0x334f9b(0x1c3)]?.(_0x2926b2['pointerId'])&&this['element'][_0x334f9b(0x41d)](_0x2926b2[_0x334f9b(0x395)]),this[_0x334f9b(0x44a)]=null,this['onInteractionEnd']?.(),_0x2926b2['preventDefault'](),_0x2926b2['stopPropagation']());};[_0x3cf00e(0x499)]=()=>{const _0x9ab729=_0x3cf00e;this[_0x9ab729(0x44a)]||this[_0x9ab729(0x165)]['clearPreview']();};};let _0x5d787c=_0x31fe5f=>_0x31fe5f[_0x3cf00e(0x2fd)](),_0x161d0d=(_0x57b514,_0x45ab40)=>_0x5d787c(_0x57b514)+'\x20'+Number(_0x45ab40[_0x3cf00e(0x3dc)](0x4)),_0x51fd79=(_0x104291,_0x312c4d)=>{const _0x3e67ef=_0x3cf00e;let _0xd20779=_0x104291['axisDefinitions'];return _0x312c4d==='x'?_0xd20779[_0x3e67ef(0x49a)]:_0x312c4d==='y'?_0xd20779[_0x3e67ef(0x46c)]:_0xd20779[_0x3e67ef(0x28b)];},_0x2fc112=(_0x40f0ef,_0x5ba78d)=>{const _0x3a5e0e=_0x3cf00e;let _0xb3c57c=_0x52d8c6(_0x51fd79(_0x40f0ef,_0x5ba78d['axis']),_0x5ba78d[_0x3a5e0e(0x1f9)]);return _0x5ba78d[_0x3a5e0e(0x16a)]==='x'?[_0xb3c57c,0x0,0x0]:_0x5ba78d[_0x3a5e0e(0x16a)]==='y'?[0x0,_0xb3c57c,0x0]:[0x0,0x0,_0xb3c57c];},_0x44dbe1=_0x39b4b8=>{const _0x4d1f0f=_0x3cf00e;_0x39b4b8['style'][_0x4d1f0f(0x1f9)]=_0x4d1f0f(0x3a3),_0x39b4b8[_0x4d1f0f(0x2b6)]['zIndex']='1',_0x39b4b8['style'][_0x4d1f0f(0x3ec)]=_0x4d1f0f(0x41b),_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x37e)]=_0x4d1f0f(0x325),_0x39b4b8['style'][_0x4d1f0f(0x45a)]='4px',_0x39b4b8['style']['padding']=_0x4d1f0f(0x4b2),_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x2d7)]='1px\x20solid\x20rgb(255\x20255\x20255\x20/\x2065%)',_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x3ef)]=_0x4d1f0f(0x212),_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x2a4)]='#fff',_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x385)]=_0x4d1f0f(0x32d),_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x402)]=_0x4d1f0f(0x3c0),_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x42b)]=_0x4d1f0f(0x18c),_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x3d4)]=_0x4d1f0f(0x2a8),_0x39b4b8[_0x4d1f0f(0x2b6)]['userSelect']='none',_0x39b4b8[_0x4d1f0f(0x2b6)][_0x4d1f0f(0x20a)]='none';},_0x28b91d=()=>{const _0x471e71=_0x3cf00e;let _0x1de578=document[_0x471e71(0x262)]('button');return _0x1de578[_0x471e71(0x2f2)]=_0x471e71(0x3fd),_0x1de578[_0x471e71(0x482)]='×',_0x1de578[_0x471e71(0x378)](_0x471e71(0x380),_0x471e71(0x29b)),_0x1de578[_0x471e71(0x2b6)][_0x471e71(0x478)]=_0x471e71(0x174),_0x1de578[_0x471e71(0x2b6)][_0x471e71(0x2d7)]='0',_0x1de578[_0x471e71(0x2b6)][_0x471e71(0x2a4)]='inherit',_0x1de578[_0x471e71(0x2b6)][_0x471e71(0x385)]=_0x471e71(0x32e),_0x1de578[_0x471e71(0x2b6)][_0x471e71(0x479)]=_0x471e71(0x40e),_0x1de578;};var _0x2a45b6=class{['container'];['state'];[_0x3cf00e(0x324)];[_0x3cf00e(0x2b1)];[_0x3cf00e(0x309)];[_0x3cf00e(0x40f)]=new Map();[_0x3cf00e(0x2b7)];['unsubscribe'];[_0x3cf00e(0x1ac)]=null;constructor(_0x2cfbe3,_0x1e5f68,_0x372212,_0x58e0ad={}){const _0x311a18=_0x3cf00e;this[_0x311a18(0x220)]=_0x2cfbe3,this[_0x311a18(0x165)]=_0x1e5f68,this['getFrame']=_0x372212,this['interactionController']=_0x58e0ad['interactionController'],this['formatPosition']=_0x58e0ad[_0x311a18(0x309)]??_0x161d0d,this[_0x311a18(0x2b7)]=_0x2cfbe3[_0x311a18(0x2b6)][_0x311a18(0x1f9)],getComputedStyle(_0x2cfbe3)[_0x311a18(0x1f9)]===_0x311a18(0x28e)&&(_0x2cfbe3[_0x311a18(0x2b6)][_0x311a18(0x1f9)]=_0x311a18(0x493)),this[_0x311a18(0x24f)]=_0x1e5f68['subscribe'](()=>this[_0x311a18(0x176)]());}[_0x3cf00e(0x176)](){const _0x3cd6ec=_0x3cf00e;let _0x5b5227=this[_0x3cd6ec(0x165)]['snapshot'];this['syncPreview'](_0x5b5227[_0x3cd6ec(0x1e0)]),this[_0x3cd6ec(0x44f)](_0x5b5227['lockedSlices']);let _0x24e60f=this['getFrame']();if(!_0x24e60f){this['hideAllMarkers']();return;}_0x5b5227['preview']&&this['previewMarker']&&this[_0x3cd6ec(0x194)](this[_0x3cd6ec(0x1ac)],_0x5b5227['preview'],_0x24e60f);for(let _0x37c633 of _0x5b5227['lockedSlices']){let _0x493b38=this[_0x3cd6ec(0x40f)][_0x3cd6ec(0x226)](_0x37c633['id']);_0x493b38&&this[_0x3cd6ec(0x194)](_0x493b38,_0x37c633,_0x24e60f);}}[_0x3cf00e(0x32b)](){const _0x25f0fa=_0x3cf00e;this['unsubscribe'](),this[_0x25f0fa(0x1ac)]?.[_0x25f0fa(0x320)](),this[_0x25f0fa(0x1ac)]=null;for(let _0xf795c0 of this[_0x25f0fa(0x40f)][_0x25f0fa(0x441)]())_0xf795c0['remove']();this[_0x25f0fa(0x40f)][_0x25f0fa(0x203)](),this[_0x25f0fa(0x220)][_0x25f0fa(0x2b6)][_0x25f0fa(0x1f9)]=this[_0x25f0fa(0x2b7)];}[_0x3cf00e(0x278)](_0x364d09){const _0x5f19de=_0x3cf00e;if(!_0x364d09){this[_0x5f19de(0x1ac)]?.[_0x5f19de(0x320)](),this[_0x5f19de(0x1ac)]=null;return;}this[_0x5f19de(0x1ac)]||(this[_0x5f19de(0x1ac)]=document[_0x5f19de(0x262)](_0x5f19de(0x204)),_0x44dbe1(this['previewMarker']),this[_0x5f19de(0x1ac)][_0x5f19de(0x2b6)][_0x5f19de(0x428)]=_0x5f19de(0x392),this[_0x5f19de(0x1ac)][_0x5f19de(0x2b6)]['opacity']=_0x5f19de(0x363),this['container'][_0x5f19de(0x39e)](this[_0x5f19de(0x1ac)])),this[_0x5f19de(0x1ac)][_0x5f19de(0x482)]=this['formatPosition'](_0x364d09['axis'],_0x364d09['position']);}[_0x3cf00e(0x44f)](_0x803f5b){const _0x373f57=_0x3cf00e;let _0x3bf9e7=new Set(_0x803f5b[_0x373f57(0x4bc)](_0xb363b8=>_0xb363b8['id']));for(let [_0xf8bc3,_0x59ad05]of this['markers'])_0x3bf9e7['has'](_0xf8bc3)||(_0x59ad05[_0x373f57(0x320)](),this[_0x373f57(0x40f)][_0x373f57(0x370)](_0xf8bc3));for(let _0x27617b of _0x803f5b){let _0x139848=this[_0x373f57(0x40f)][_0x373f57(0x226)](_0x27617b['id']);_0x139848||(_0x139848=this[_0x373f57(0x45f)](_0x27617b['id']),this[_0x373f57(0x40f)][_0x373f57(0x466)](_0x27617b['id'],_0x139848),this[_0x373f57(0x220)][_0x373f57(0x39e)](_0x139848));let _0x2778e3=_0x139848[_0x373f57(0x1af)];_0x2778e3&&(_0x2778e3['textContent']=this[_0x373f57(0x309)](_0x27617b[_0x373f57(0x16a)],_0x27617b[_0x373f57(0x1f9)]));}}[_0x3cf00e(0x45f)](_0x5c3d0d){const _0x47fb3a=_0x3cf00e;let _0x102e60=document[_0x47fb3a(0x262)](_0x47fb3a(0x204));_0x44dbe1(_0x102e60),_0x102e60['style']['cursor']='grab',_0x102e60[_0x47fb3a(0x39e)](document[_0x47fb3a(0x490)](''));let _0x56734f=_0x28b91d();return _0x56734f[_0x47fb3a(0x3e5)](_0x47fb3a(0x27a),_0x1e9235=>_0x1e9235[_0x47fb3a(0x21f)]()),_0x56734f[_0x47fb3a(0x3e5)]('click',_0x4acab5=>{const _0x5b57d3=_0x47fb3a;_0x4acab5[_0x5b57d3(0x21f)](),this[_0x5b57d3(0x165)]['removeSlice'](_0x5c3d0d);}),_0x102e60['addEventListener'](_0x47fb3a(0x27a),_0xc13dc4=>this[_0x47fb3a(0x2b1)]?.[_0x47fb3a(0x39c)](_0x5c3d0d,_0xc13dc4)),_0x102e60[_0x47fb3a(0x39e)](_0x56734f),_0x102e60;}[_0x3cf00e(0x194)](_0x26bed3,_0x35f1c3,_0x5af111){const _0x4bc1d7=_0x3cf00e;let _0xd53f47=_0x33bf35(_0x3c1d6a(_0x5af111[_0x4bc1d7(0x256)],_0x5af111[_0x4bc1d7(0x295)]),_0x2fc112(this[_0x4bc1d7(0x165)],_0x35f1c3),_0x5af111[_0x4bc1d7(0x264)],_0x5af111['viewportHeight']);if(!_0xd53f47||_0xd53f47[0x2]<0x0||_0xd53f47[0x2]>0x1){_0x26bed3[_0x4bc1d7(0x2b6)][_0x4bc1d7(0x3ec)]=_0x4bc1d7(0x392);return;}_0x26bed3[_0x4bc1d7(0x2b6)][_0x4bc1d7(0x3ec)]='flex',_0x26bed3[_0x4bc1d7(0x2b6)]['left']=_0xd53f47[0x0]+'px',_0x26bed3['style'][_0x4bc1d7(0x23f)]=_0xd53f47[0x1]+'px';}[_0x3cf00e(0x4a6)](){const _0x459563=_0x3cf00e;this[_0x459563(0x1ac)]&&(this[_0x459563(0x1ac)]['style'][_0x459563(0x3ec)]=_0x459563(0x392));for(let _0x5dced2 of this['markers'][_0x459563(0x441)]())_0x5dced2[_0x459563(0x2b6)][_0x459563(0x3ec)]=_0x459563(0x392);}};let _0x262b78=(_0x24b645,_0x498a18)=>Math[_0x3cf00e(0x46a)](_0x498a18-0x1,Math[_0x3cf00e(0x181)](0x0,_0x24b645)),_0x4d7b12=(_0x50da9,_0x21ad9e,_0x3fc05a,_0x270547)=>{const _0x116bca=_0x3cf00e;_0x4100b9(_0x50da9,_0x270547,_0x3fc05a['readRange']);let _0x295489=_0x21ad9e[_0x116bca(0x362)]+_0x21ad9e[_0x116bca(0x296)]*0x2,_0xc5a400=_0x21ad9e['height']+_0x21ad9e[_0x116bca(0x296)]*0x2,_0x147ed0=_0x21ad9e['depth']+_0x21ad9e[_0x116bca(0x296)]*0x2,_0x33457c=new Float32Array(_0x295489*_0xc5a400*_0x147ed0);for(let _0x731c7a=0x0;_0x731c7a<_0x147ed0;_0x731c7a+=0x1){let _0x21bcb3=_0x262b78(_0x3fc05a['coreRange'][_0x116bca(0x336)]+_0x731c7a-_0x21ad9e[_0x116bca(0x296)],_0x50da9[_0x116bca(0x28b)][_0x116bca(0x400)])-_0x270547['range'][_0x116bca(0x336)];for(let _0x5da6d7=0x0;_0x5da6d7<_0xc5a400;_0x5da6d7+=0x1){let _0x146822=_0x262b78(_0x3fc05a['coreRange'][_0x116bca(0x498)]+_0x5da6d7-_0x21ad9e[_0x116bca(0x296)],_0x50da9[_0x116bca(0x46c)][_0x116bca(0x400)])-_0x270547[_0x116bca(0x164)]['levelStart'];for(let _0x557cd3=0x0;_0x557cd3<_0x295489;_0x557cd3+=0x1){let _0x2ae09d=_0x262b78(_0x3fc05a[_0x116bca(0x3f2)][_0x116bca(0x254)]+_0x557cd3-_0x21ad9e[_0x116bca(0x296)],_0x50da9[_0x116bca(0x49a)][_0x116bca(0x400)])-_0x270547[_0x116bca(0x164)][_0x116bca(0x254)];_0x33457c[(_0x731c7a*_0xc5a400+_0x5da6d7)*_0x295489+_0x557cd3]=_0x270547['values'][(_0x21bcb3*_0x270547[_0x116bca(0x488)]+_0x146822)*_0x270547[_0x116bca(0x362)]+_0x2ae09d];}}}return _0x33457c;},_0x471e0a=_0x1ed862=>{const _0x11873e=_0x3cf00e;if(_0x1ed862[_0x11873e(0x29e)]===0x0)throw Error(_0x11873e(0x242));return _0x1ed862[_0x11873e(0x4bc)]((_0x3b0feb,_0x3e4ac2)=>{const _0x1f2a86=_0x11873e;if(Number['isNaN'](_0x3b0feb[_0x1f2a86(0x46a)])||Number[_0x1f2a86(0x229)](_0x3b0feb[_0x1f2a86(0x181)]))throw TypeError('第'+(_0x3e4ac2+0x1)+_0x1f2a86(0x228));if(_0x3b0feb['min']>=_0x3b0feb['max'])throw Error('第'+(_0x3e4ac2+0x1)+_0x1f2a86(0x4c0));return{'min':_0x3b0feb['min'],'max':_0x3b0feb[_0x1f2a86(0x181)],'color':_0x44225f(_0x3b0feb[_0x1f2a86(0x2a4)])};})[_0x11873e(0x3a6)]((_0xd77776,_0x165226)=>_0xd77776[_0x11873e(0x46a)]-_0x165226[_0x11873e(0x46a)]);},_0x44225f=_0x2f76d6=>{const _0x55cbb2=_0x3cf00e;let _0xabc85a=_0x2f76d6['trim']()['toLowerCase']();if(_0xabc85a['startsWith']('#'))return _0xf99c4a(_0xabc85a);if(_0xabc85a[_0x55cbb2(0x323)]('rgba('))return _0x498f9c(_0xabc85a,!0x0);if(_0xabc85a[_0x55cbb2(0x323)]('rgb('))return _0x498f9c(_0xabc85a,!0x1);throw Error(_0x55cbb2(0x423)+_0x2f76d6);},_0xf99c4a=_0xb52d2d=>{const _0x10a9ed=_0x3cf00e;if(_0xb52d2d[_0x10a9ed(0x29e)]===0x4)return _0xd637cc(Number['parseInt'](''+_0xb52d2d[0x1]+_0xb52d2d[0x1],0x10),Number['parseInt'](''+_0xb52d2d[0x2]+_0xb52d2d[0x2],0x10),Number[_0x10a9ed(0x2d3)](''+_0xb52d2d[0x3]+_0xb52d2d[0x3],0x10),0x1);if(_0xb52d2d['length']===0x7)return _0xd637cc(Number[_0x10a9ed(0x2d3)](_0xb52d2d[_0x10a9ed(0x2f4)](0x1,0x3),0x10),Number[_0x10a9ed(0x2d3)](_0xb52d2d[_0x10a9ed(0x2f4)](0x3,0x5),0x10),Number[_0x10a9ed(0x2d3)](_0xb52d2d[_0x10a9ed(0x2f4)](0x5,0x7),0x10),0x1);throw Error(_0x10a9ed(0x18e)+_0xb52d2d);},_0x498f9c=(_0x211591,_0xa02ad7)=>{const _0x1feb14=_0x3cf00e;let _0x3d3502=_0x211591[_0x1feb14(0x183)](/^rgba?\(([^)]+)\)$/);if(!_0x3d3502)throw Error(_0x1feb14(0x167)+_0x211591);let _0x3b6eac=_0x3d3502[0x1][_0x1feb14(0x487)](',')['map'](_0x5f4898=>_0x5f4898[_0x1feb14(0x3a2)]()),_0xf705ca=_0xa02ad7?0x4:0x3;if(_0x3b6eac['length']!==_0xf705ca)throw Error('rgb\x20颜色通道数量不正确:\x20'+_0x211591);return _0xd637cc(Number(_0x3b6eac[0x0]),Number(_0x3b6eac[0x1]),Number(_0x3b6eac[0x2]),_0xa02ad7?Number(_0x3b6eac[0x3]):0x1);},_0xd637cc=(_0x3dfa8b,_0x5e480b,_0x4bdd2d,_0x441ee2)=>{const _0x11d181=_0x3cf00e;if(!_0x12c1e6(_0x3dfa8b)||!_0x12c1e6(_0x5e480b)||!_0x12c1e6(_0x4bdd2d))throw Error('RGB\x20颜色通道必须在\x200\x20~\x20255\x20之间');if(!Number[_0x11d181(0x2f3)](_0x441ee2)||_0x441ee2<0x0||_0x441ee2>0x1)throw Error('Alpha\x20颜色通道必须在0\x20~\x201之间');return[_0x3dfa8b/0xff,_0x5e480b/0xff,_0x4bdd2d/0xff,_0x441ee2];},_0x12c1e6=_0x505a12=>Number[_0x3cf00e(0x2f3)](_0x505a12)&&_0x505a12>=0x0&&_0x505a12<=0xff,_0x139cbe=_0x3df2ea=>{const _0x3fabd=_0x3cf00e;if(_0x3df2ea['length']===0x0)throw Error(_0x3fabd(0x354));let _0x1a8a94=-0x1/0x0;for(let _0x318881 of _0x3df2ea){if(!Number[_0x3fabd(0x2f3)](_0x318881[_0x3fabd(0x2d8)])||_0x318881[_0x3fabd(0x2d8)]<=_0x1a8a94)throw Error(_0x3fabd(0x1e1));if(!Number[_0x3fabd(0x2f3)](_0x318881[_0x3fabd(0x2cd)])||_0x318881['opacity']<0x0||_0x318881[_0x3fabd(0x2cd)]>0x1)throw Error(_0x3fabd(0x1ec));_0x1a8a94=_0x318881[_0x3fabd(0x2d8)];}},_0x212435=(_0x3e0233,_0x60355)=>{const _0x3334ef=_0x3cf00e;if(_0x3e0233<=_0x60355[0x0])return[0x0,0x0,0x0];for(let _0x202d26=0x1;_0x202d26<_0x60355[_0x3334ef(0x29e)];_0x202d26+=0x1)if(_0x3e0233<=_0x60355[_0x202d26]){let _0xdc542e=_0x60355[_0x202d26]-_0x60355[_0x202d26-0x1];return[_0x202d26-0x1,_0x202d26,_0xdc542e===0x0?0x0:Math[_0x3334ef(0x46a)](0x1,Math[_0x3334ef(0x181)](0x0,(_0x3e0233-_0x60355[_0x202d26-0x1])/_0xdc542e))];}let _0x33b911=_0x60355[_0x3334ef(0x29e)]-0x1;return[_0x33b911,_0x33b911,0x0];},_0x4f9dba=(_0x11dbc0,_0x35c23c)=>{const _0x394f41=_0x3cf00e;_0x139cbe(_0x35c23c);let _0x3d2c0a=_0x471e0a([..._0x11dbc0]);return{'colorStops':_0x3d2c0a['flatMap']((_0x581248,_0x3c81cb)=>{const _0x3b5a7c=_0x312f;let _0x384ca2=_0x3d2c0a[Math[_0x3b5a7c(0x46a)](_0x3c81cb+0x1,_0x3d2c0a['length']-0x1)]['color'];return[{'value':_0x581248['min'],'color':_0x581248[_0x3b5a7c(0x2a4)]},{'value':_0x581248['max'],'color':_0x384ca2}];}),'opacityStops':_0x35c23c[_0x394f41(0x4bc)](_0x37998e=>({..._0x37998e}))};},_0x1da033=(_0x5783c1,_0xff497d,_0x49af3d,_0x5a75cf)=>{const _0x2096bf=_0x3cf00e;if(!Number['isFinite'](_0x5783c1))return[0x0,0x0,0x0,0x0];let [_0x7425d9,_0x2136ee,_0x5f0510]=_0x212435(_0x5783c1,_0xff497d[_0x2096bf(0x4bc)](_0x44b586=>_0x44b586['value'])),_0x5e3cbf=_0xff497d[_0x7425d9],_0xe06dab=_0xff497d[_0x2136ee],_0x4a53b1=_0x5a75cf==='step'?0x0:_0x5f0510;return[_0x5e3cbf[_0x2096bf(0x2a4)][0x0]+(_0xe06dab['color'][0x0]-_0x5e3cbf[_0x2096bf(0x2a4)][0x0])*_0x4a53b1,_0x5e3cbf[_0x2096bf(0x2a4)][0x1]+(_0xe06dab[_0x2096bf(0x2a4)][0x1]-_0x5e3cbf[_0x2096bf(0x2a4)][0x1])*_0x4a53b1,_0x5e3cbf['color'][0x2]+(_0xe06dab['color'][0x2]-_0x5e3cbf[_0x2096bf(0x2a4)][0x2])*_0x4a53b1,(_0x5e3cbf[_0x2096bf(0x2a4)][0x3]+(_0xe06dab['color'][0x3]-_0x5e3cbf[_0x2096bf(0x2a4)][0x3])*_0x4a53b1)*_0x49af3d];},_0x367325=(_0x28cf68,_0x24b9e1,_0x1ae3e2)=>{const _0x2ff202=_0x3cf00e;if(!Number[_0x2ff202(0x2f3)](_0x28cf68))return 0x0;let [_0xe9d3b5,_0x4bf1b2,_0x5aea52]=_0x212435(_0x28cf68,_0x24b9e1['map'](_0x1e2811=>_0x1e2811[_0x2ff202(0x2d8)])),_0x10299f=_0x1ae3e2===_0x2ff202(0x1a9)?0x0:_0x5aea52;return _0x24b9e1[_0xe9d3b5][_0x2ff202(0x2cd)]+(_0x24b9e1[_0x4bf1b2][_0x2ff202(0x2cd)]-_0x24b9e1[_0xe9d3b5][_0x2ff202(0x2cd)])*_0x10299f;},_0x338677={'position':[1.4,1.2,2.1],'target':[0.5,0.5,0.5],'up':[0x0,0x1,0x0],'projection':{'type':'perspective','fovYDegrees':0x2d,'near':0.01,'far':0x64}},_0x219c34=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],_0x414afa=_0x1bcd18=>Math['min'](0x1,Math[_0x3cf00e(0x181)](0x0,_0x1bcd18)),_0x75c048=_0x7540e3=>_0x7540e3===_0x3cf00e(0x1a5)?0.012:_0x7540e3===_0x3cf00e(0x3c4)?0.0025:_0x7540e3==='balanced'?0.005:0.006,_0x5d5900=_0x10cd71=>_0x10cd71==='performance'?0x8:_0x10cd71===_0x3cf00e(0x3c4)?0x2:0x4,_0x38ffac=(_0x33bac5,_0x59e774)=>_0x59e774>0x18?_0x33bac5==='quality'?_0x3cf00e(0x3e4):_0x3cf00e(0x1a5):_0x59e774<0xe?_0x33bac5===_0x3cf00e(0x1a5)?'balanced':_0x3cf00e(0x3c4):_0x33bac5,_0x3d95fa=(_0x5518d9,_0x16265c)=>{const _0x363e08=_0x3cf00e;if(!Number[_0x363e08(0x2f3)](_0x5518d9)||_0x5518d9<=0x0)throw Error(_0x16265c+'\x20must\x20be\x20a\x20positive\x20finite\x20number.\x20'+_0x16265c+'\x20必须是大于\x200\x20的有限数。');return _0x5518d9;},_0x5815bc=(_0x2f3378,_0x26c256)=>{const _0x1a2852=_0x3cf00e;if(!_0x26c256)return{'minimum':[0x0,0x0,0x0],'maximum':[0x1,0x1,0x1]};let _0x1d1d4f=_0x414afa(_0x52d8c6(_0x2f3378['metadata'][_0x1a2852(0x49a)],_0x26c256[_0x1a2852(0x1e7)])),_0x3997b0=_0x414afa(_0x52d8c6(_0x2f3378['metadata']['xAxis'],_0x26c256[_0x1a2852(0x38a)])),_0x3412d5=_0x414afa(_0x52d8c6(_0x2f3378[_0x1a2852(0x284)][_0x1a2852(0x46c)],_0x26c256['minY'])),_0x447db3=_0x414afa(_0x52d8c6(_0x2f3378[_0x1a2852(0x284)][_0x1a2852(0x46c)],_0x26c256[_0x1a2852(0x489)])),_0x45951a=_0x414afa(_0x52d8c6(_0x2f3378[_0x1a2852(0x284)][_0x1a2852(0x28b)],_0x26c256[_0x1a2852(0x421)])),_0x3eb649=_0x414afa(_0x52d8c6(_0x2f3378[_0x1a2852(0x284)][_0x1a2852(0x28b)],_0x26c256[_0x1a2852(0x2ae)]));return{'minimum':[Math[_0x1a2852(0x46a)](_0x1d1d4f,_0x3997b0),Math['min'](_0x3412d5,_0x447db3),Math[_0x1a2852(0x46a)](_0x45951a,_0x3eb649)],'maximum':[Math[_0x1a2852(0x181)](_0x1d1d4f,_0x3997b0),Math[_0x1a2852(0x181)](_0x3412d5,_0x447db3),Math[_0x1a2852(0x181)](_0x45951a,_0x3eb649)]};},_0x3b61a6=()=>({'id':_0x3cf00e(0x3da),'topology':_0x3cf00e(0x47d),'depthMode':_0x3cf00e(0x313),'vertices':new Float32Array([0x0,0x0,0x0,0x1,0.2,0.2,0x1,0x1,0x0,0x0,0x1,0.2,0.2,0x1,0x0,0x0,0x0,0.2,0x1,0.2,0x1,0x0,0x1,0x0,0.2,0x1,0.2,0x1,0x0,0x0,0x0,0.2,0.5,0x1,0x1,0x0,0x0,0x1,0.2,0.5,0x1,0x1])}),_0x9d3787=()=>{const _0x17ce17=_0x3cf00e;let _0x29c091=[0.1,0.53,0.56,0.62],_0x3d7482=[[0x0,0x0,0x0],[0x1,0x0,0x0],[0x0,0x1,0x0],[0x1,0x1,0x0],[0x0,0x0,0x1],[0x1,0x0,0x1],[0x0,0x1,0x1],[0x1,0x1,0x1]],_0x4c431d=[[0x0,0x1],[0x0,0x2],[0x1,0x3],[0x2,0x3],[0x4,0x5],[0x4,0x6],[0x5,0x7],[0x6,0x7],[0x0,0x4],[0x1,0x5],[0x2,0x6],[0x3,0x7]],_0x2b944d=new Float32Array(_0x4c431d[_0x17ce17(0x29e)]*0x2*0x7),_0x8052a8=0x0;for(let _0x4699dc of _0x4c431d)for(let _0x33c122 of _0x4699dc)_0x2b944d['set']([..._0x3d7482[_0x33c122],..._0x29c091],_0x8052a8),_0x8052a8+=0x7;return{'id':_0x17ce17(0x394),'topology':_0x17ce17(0x47d),'depthMode':'scene','vertices':_0x2b944d};},_0x191de6=(_0x357a55,_0x1053a0,_0x41bdc8,_0x298412)=>{const _0x55ef0e=_0x3cf00e;let _0x50f59a=new Float32Array(_0x357a55[_0x55ef0e(0x287)][_0x55ef0e(0x29e)]*0x7);for(let _0x41526f=0x0;_0x41526f<_0x357a55[_0x55ef0e(0x287)][_0x55ef0e(0x29e)];_0x41526f+=0x1){let _0x428ba5=_0x357a55[_0x55ef0e(0x287)][_0x41526f],_0x4249b7=_0x428ba5*0x3,_0x209369=_0x367325(_0x357a55['values'][_0x428ba5],_0x41bdc8,_0x298412),_0x375a99=_0x1da033(_0x357a55[_0x55ef0e(0x441)][_0x428ba5],_0x1053a0,_0x357a55['opacity']*_0x209369,_0x298412);_0x50f59a['set']([_0x357a55['positions'][_0x4249b7],_0x357a55['positions'][_0x4249b7+0x1],_0x357a55['positions'][_0x4249b7+0x2],_0x375a99[0x0]*_0x375a99[0x3],_0x375a99[0x1]*_0x375a99[0x3],_0x375a99[0x2]*_0x375a99[0x3],_0x375a99[0x3]],_0x41526f*0x7);}return{'id':_0x357a55['id'],'topology':_0x55ef0e(0x36b),'depthMode':_0x357a55[_0x55ef0e(0x438)],'vertices':_0x50f59a};},_0x4fc8b5=(_0x2bfba6,_0x227bf1,_0x2506f9)=>{const _0x5d3a64=_0x3cf00e;let _0x2897ad=(_0x2bfba6[_0x5d3a64(0x352)]['x']+0.5)/_0x227bf1['countX'],_0x183b4a=(_0x2bfba6[_0x5d3a64(0x352)]['y']+0.5)/_0x227bf1[_0x5d3a64(0x359)],_0x48f036=(_0x2bfba6[_0x5d3a64(0x352)]['z']+0.5)/_0x227bf1[_0x5d3a64(0x32a)];return Math['hypot'](_0x2897ad-_0x2506f9[_0x5d3a64(0x1f9)][0x0],_0x183b4a-_0x2506f9[_0x5d3a64(0x1f9)][0x1],_0x48f036-_0x2506f9[_0x5d3a64(0x1f9)][0x2]);},_0x45ed3b=(_0xda5f,_0x30be05)=>(_0xda5f[_0x3cf00e(0x352)]['z']*_0x30be05[_0x3cf00e(0x359)]+_0xda5f[_0x3cf00e(0x352)]['y'])*_0x30be05[_0x3cf00e(0x2d2)]+_0xda5f[_0x3cf00e(0x352)]['x'],_0x1da776=(_0x146df4,_0x25cc41,_0x2da93b,_0x408012)=>{const _0x5787e1=_0x3cf00e;let _0x22163e=_0x2da93b==='x'?{'start':_0x146df4['coreRange']['xStart'],'count':_0x146df4['coreRange'][_0x5787e1(0x290)],'size':_0x25cc41[_0x5787e1(0x284)][_0x5787e1(0x49a)]['count']}:_0x2da93b==='y'?{'start':_0x146df4[_0x5787e1(0x3f2)][_0x5787e1(0x498)],'count':_0x146df4[_0x5787e1(0x3f2)][_0x5787e1(0x201)],'size':_0x25cc41[_0x5787e1(0x284)][_0x5787e1(0x46c)]['count']}:{'start':_0x146df4['coreRange'][_0x5787e1(0x336)],'count':_0x146df4[_0x5787e1(0x3f2)][_0x5787e1(0x322)],'size':_0x25cc41[_0x5787e1(0x284)][_0x5787e1(0x28b)]['count']};return _0x408012>=_0x22163e[_0x5787e1(0x17f)]/_0x22163e['size']&&_0x408012<=(_0x22163e['start']+_0x22163e[_0x5787e1(0x400)])/_0x22163e[_0x5787e1(0x304)];},_0x29ecac=(_0x4ec20f,_0x3c26a5,_0x91443a)=>{const _0x2a7bca=_0x3cf00e;let _0x134fa9=_0x4ec20f['coreRange'][_0x2a7bca(0x254)]/_0x3c26a5['metadata'][_0x2a7bca(0x49a)][_0x2a7bca(0x400)],_0x323c63=(_0x4ec20f[_0x2a7bca(0x3f2)][_0x2a7bca(0x254)]+_0x4ec20f[_0x2a7bca(0x3f2)][_0x2a7bca(0x290)])/_0x3c26a5[_0x2a7bca(0x284)]['xAxis'][_0x2a7bca(0x400)],_0x41eaff=_0x4ec20f[_0x2a7bca(0x3f2)][_0x2a7bca(0x498)]/_0x3c26a5[_0x2a7bca(0x284)][_0x2a7bca(0x46c)]['count'],_0x552477=(_0x4ec20f[_0x2a7bca(0x3f2)][_0x2a7bca(0x498)]+_0x4ec20f[_0x2a7bca(0x3f2)][_0x2a7bca(0x201)])/_0x3c26a5[_0x2a7bca(0x284)]['yAxis'][_0x2a7bca(0x400)],_0x128444=_0x4ec20f[_0x2a7bca(0x3f2)][_0x2a7bca(0x336)]/_0x3c26a5[_0x2a7bca(0x284)][_0x2a7bca(0x28b)]['count'],_0x399c8a=(_0x4ec20f[_0x2a7bca(0x3f2)]['sourceYStart']+_0x4ec20f[_0x2a7bca(0x3f2)]['sourceYCount'])/_0x3c26a5[_0x2a7bca(0x284)][_0x2a7bca(0x28b)][_0x2a7bca(0x400)];return _0x91443a[_0x2a7bca(0x21c)](_0x429d51=>{const _0x48e0ce=_0x2a7bca;let _0x28dcea=_0x52d8c6(_0x3c26a5[_0x48e0ce(0x284)][_0x48e0ce(0x46c)],_0x429d51['heights'][0x0]),_0x253789=_0x52d8c6(_0x3c26a5[_0x48e0ce(0x284)][_0x48e0ce(0x46c)],_0x429d51[_0x48e0ce(0x45e)][_0x429d51[_0x48e0ce(0x45e)][_0x48e0ce(0x29e)]-0x1]);if(Math[_0x48e0ce(0x181)](_0x28dcea,_0x253789)<_0x41eaff||Math[_0x48e0ce(0x46a)](_0x28dcea,_0x253789)>_0x552477)return!0x1;for(let _0x59bfc0=0x0;_0x59bfc0<_0x429d51[_0x48e0ce(0x1f0)][_0x48e0ce(0x29e)];_0x59bfc0+=0x2){let _0x55010b=_0x52d8c6(_0x3c26a5[_0x48e0ce(0x284)][_0x48e0ce(0x49a)],_0x429d51[_0x48e0ce(0x1f0)][_0x59bfc0]),_0x3958ca=_0x52d8c6(_0x3c26a5[_0x48e0ce(0x284)][_0x48e0ce(0x28b)],_0x429d51[_0x48e0ce(0x1f0)][_0x59bfc0+0x1]);if(_0x55010b>=_0x134fa9&&_0x55010b<=_0x323c63&&_0x3958ca>=_0x128444&&_0x3958ca<=_0x399c8a)return!0x0;}return!0x1;});},_0x235250=(_0x1bf041,_0x2ed806,_0x3c532b,_0x571a60)=>{const _0x2b110b=_0x3cf00e;let _0x5495c2=_0x3c532b[_0x2b110b(0x1e0)];if(_0x5495c2){let _0x13f244=_0x5495c2[_0x2b110b(0x16a)]==='x'?_0x2ed806['metadata'][_0x2b110b(0x49a)]:_0x5495c2[_0x2b110b(0x16a)]==='y'?_0x2ed806[_0x2b110b(0x284)][_0x2b110b(0x46c)]:_0x2ed806[_0x2b110b(0x284)]['zAxis'];if(_0x1da776(_0x1bf041,_0x2ed806,_0x5495c2[_0x2b110b(0x16a)],_0x52d8c6(_0x13f244,_0x5495c2[_0x2b110b(0x1f9)])))return 0x0;}for(let _0x252ad9 of _0x3c532b[_0x2b110b(0x240)]){let _0x2ff566=_0x252ad9[_0x2b110b(0x16a)]==='x'?_0x2ed806[_0x2b110b(0x284)][_0x2b110b(0x49a)]:_0x252ad9[_0x2b110b(0x16a)]==='y'?_0x2ed806['metadata'][_0x2b110b(0x46c)]:_0x2ed806[_0x2b110b(0x284)][_0x2b110b(0x28b)];if(_0x252ad9['visible']&&_0x1da776(_0x1bf041,_0x2ed806,_0x252ad9[_0x2b110b(0x16a)],_0x52d8c6(_0x2ff566,_0x252ad9['position'])))return 0x1;}return _0x29ecac(_0x1bf041,_0x2ed806,_0x571a60)?0x2:0x3;};var _0x3a9ada=class _0x5bd013{[_0x3cf00e(0x43d)]=_0x3cf00e(0x4a8);['renderer'];[_0x3cf00e(0x316)];[_0x3cf00e(0x3b3)];[_0x3cf00e(0x285)];[_0x3cf00e(0x38b)];['eventDisposers']=[];['source'];[_0x3cf00e(0x1d2)];['descriptors'];['sliceState'];[_0x3cf00e(0x231)];['colorInputs'];[_0x3cf00e(0x389)];[_0x3cf00e(0x33d)]=[];[_0x3cf00e(0x3fc)];['sourceGeneration']=0x0;[_0x3cf00e(0x3df)]=new Set();[_0x3cf00e(0x3e9)]=new Map();[_0x3cf00e(0x288)]=new Set();[_0x3cf00e(0x1a3)]=0x0;[_0x3cf00e(0x28f)]=!0x1;[_0x3cf00e(0x46e)];[_0x3cf00e(0x2ea)];[_0x3cf00e(0x460)];['clipBox'];[_0x3cf00e(0x3c4)];[_0x3cf00e(0x2c8)]=_0x3cf00e(0x3e4);['autoFrameCount']=0x0;[_0x3cf00e(0x41f)]=0x0;[_0x3cf00e(0x298)];[_0x3cf00e(0x40e)]=null;[_0x3cf00e(0x337)];[_0x3cf00e(0x326)];[_0x3cf00e(0x415)];['interactionRenderScale'];[_0x3cf00e(0x272)];[_0x3cf00e(0x4c8)]=new Set();[_0x3cf00e(0x4cd)]=!0x0;[_0x3cf00e(0x44e)]=!0x1;[_0x3cf00e(0x292)]=0x0;[_0x3cf00e(0x410)]=0x0;['pendingSliceSnapshot']=null;[_0x3cf00e(0x484)];[_0x3cf00e(0x1fb)];['onSlicesChange'];[_0x3cf00e(0x3fb)]=0x0;['lastTimingFrameTimestamp']=0x0;[_0x3cf00e(0x3f1)]=0x0;['requestControllers']=new Set();[_0x3cf00e(0x169)]=null;[_0x3cf00e(0x2b0)]=null;constructor(_0x475e4c,_0x3bcd0a){const _0x2fccbc=_0x3cf00e;this[_0x2fccbc(0x457)]=_0x3bcd0a,this[_0x2fccbc(0x3b3)]=_0x475e4c[_0x2fccbc(0x3b3)],this[_0x2fccbc(0x38b)]=_0x475e4c['interactionElement']??_0x475e4c[_0x2fccbc(0x3b3)],this['renderMode']=_0x475e4c[_0x2fccbc(0x285)]??_0x2fccbc(0x179),this['source']=_0x475e4c[_0x2fccbc(0x20e)],this['timeIndex']=_0x475e4c['timeIndex']??0x0,this[_0x2fccbc(0x1d2)]=this[_0x2fccbc(0x1b1)](_0x475e4c),this['descriptors']=_0x5057ae(this[_0x2fccbc(0x20e)][_0x2fccbc(0x284)],this[_0x2fccbc(0x1d2)]),this[_0x2fccbc(0x316)]=new _0x1b58be({'state':_0x475e4c[_0x2fccbc(0x48c)]??_0x338677}),this[_0x2fccbc(0x28d)]=this[_0x2fccbc(0x289)](_0x475e4c);let _0x7e9113=_0x4f9dba(_0x475e4c[_0x2fccbc(0x231)],_0x475e4c[_0x2fccbc(0x389)]);if(this['colorStops']=_0x7e9113[_0x2fccbc(0x231)],this[_0x2fccbc(0x366)]=_0x475e4c[_0x2fccbc(0x231)],this[_0x2fccbc(0x389)]=_0x475e4c[_0x2fccbc(0x389)],this[_0x2fccbc(0x46e)]=_0x475e4c[_0x2fccbc(0x295)]??_0x219c34,this[_0x2fccbc(0x2ea)]=_0x3d95fa(_0x475e4c[_0x2fccbc(0x2ea)]??0x1,_0x2fccbc(0x2ea)),this[_0x2fccbc(0x460)]=_0x475e4c['coordinateSystem']??_0x2fccbc(0x3fe),this[_0x2fccbc(0x460)]===_0x2fccbc(0x409)&&_0x475e4c[_0x2fccbc(0x295)])throw Error(_0x2fccbc(0x345));this[_0x2fccbc(0x253)]=_0x475e4c[_0x2fccbc(0x253)]??null,this[_0x2fccbc(0x3c4)]=_0x475e4c[_0x2fccbc(0x3c4)]??_0x2fccbc(0x1d4),this['navigationMode']=_0x475e4c['navigationMode']??'orbit',this[_0x2fccbc(0x326)]=_0x3d95fa(_0x475e4c[_0x2fccbc(0x326)]??0x2,'pixelRatioCap'),this[_0x2fccbc(0x415)]=_0x3d95fa(_0x475e4c[_0x2fccbc(0x415)]??0x1,_0x2fccbc(0x415)),this[_0x2fccbc(0x4b5)]=_0x3d95fa(_0x475e4c['interactionRenderScale']??0.6,_0x2fccbc(0x4b5)),this[_0x2fccbc(0x272)]=_0x3d95fa(_0x475e4c['interactionStepScale']??0x1,_0x2fccbc(0x272)),this[_0x2fccbc(0x298)]=_0x475e4c[_0x2fccbc(0x298)]??_0x2fccbc(0x35b),this[_0x2fccbc(0x484)]=_0x475e4c[_0x2fccbc(0x169)]?.['depthMode']??_0x2fccbc(0x2d0),this[_0x2fccbc(0x1fb)]=_0x475e4c[_0x2fccbc(0x169)]?.[_0x2fccbc(0x1d3)],this[_0x2fccbc(0x3d7)]=_0x475e4c[_0x2fccbc(0x169)]?.[_0x2fccbc(0x3d7)],this[_0x2fccbc(0x457)][_0x2fccbc(0x247)](()=>this['handleFrameAvailable']()),this[_0x2fccbc(0x457)][_0x2fccbc(0x46f)](_0x7e9113[_0x2fccbc(0x231)],_0x7e9113[_0x2fccbc(0x389)]);let _0x2a1378=_0x475e4c[_0x2fccbc(0x32c)]??this['coordinateSystem']===_0x2fccbc(0x3fe);this['renderer']['setAxes'](_0x2a1378?[_0x9d3787(),_0x3b61a6()]:[]),this[_0x2fccbc(0x457)][_0x2fccbc(0x176)]({'renderMode':_0x475e4c[_0x2fccbc(0x23a)]??_0x2fccbc(0x173),'colorMode':this[_0x2fccbc(0x298)],'opacity':_0x475e4c['opacity']??0.3,'densityScale':_0x475e4c[_0x2fccbc(0x429)]??0x1,'stepLength':this[_0x2fccbc(0x403)](),'volumeDimFactor':this[_0x2fccbc(0x28d)][_0x2fccbc(0x308)]}),this[_0x2fccbc(0x1ad)](),this['configureModel'](),this[_0x2fccbc(0x25a)](),this[_0x2fccbc(0x168)](_0x475e4c),this[_0x2fccbc(0x447)]();}static async[_0x3cf00e(0x357)](_0xdcb19a){const _0x303b25=_0x3cf00e;if(_0x27b8ee(_0xdcb19a['source']),_0x34931b(_0xdcb19a['source']['metadata'],_0xdcb19a[_0x303b25(0x3fc)]??0x0),(_0xdcb19a[_0x303b25(0x2bb)]?.[_0x303b25(0x296)]??0x1)!==0x1)throw Error(_0x303b25(0x1c9));let _0x2f66f2=_0xdcb19a[_0x303b25(0x2bb)]?.[_0x303b25(0x46d)]??0x20000000,_0x42f48a=new _0x522902({'memoryTargetBytes':_0x2f66f2,'memoryHardLimitBytes':_0xdcb19a['chunk']?.['memoryLimitBytes']??_0x2f66f2});await _0x42f48a[_0x303b25(0x3ad)](_0xdcb19a[_0x303b25(0x3b3)]);let _0x641af7=new _0x5bd013(_0xdcb19a,_0x42f48a);return _0x641af7['resize'](),_0x641af7[_0x303b25(0x422)](),_0x641af7[_0x303b25(0x285)]===_0x303b25(0x179)&&_0x641af7[_0x303b25(0x4c2)](),_0x641af7;}get[_0x3cf00e(0x48c)](){const _0x3fa458=_0x3cf00e;return this[_0x3fa458(0x316)][_0x3fa458(0x165)];}get[_0x3cf00e(0x240)](){const _0x21cc0b=_0x3cf00e;return this['sliceState'][_0x21cc0b(0x240)];}get[_0x3cf00e(0x246)](){const _0x4845af=_0x3cf00e;let _0x23cc4f=this[_0x4845af(0x285)]===_0x4845af(0x456)||this[_0x4845af(0x3f7)]()||performance['now']()-this['lastSubmittedFrameTimestamp']<=0xfa?this['actualFrameIntervalMilliseconds']:0x0;return{...this[_0x4845af(0x457)][_0x4845af(0x246)],'pendingBrickCount':this[_0x4845af(0x3e9)][_0x4845af(0x304)],'brickScheduleCount':this[_0x4845af(0x292)],'brickSortCount':this[_0x4845af(0x410)],'actualFrameIntervalMilliseconds':_0x23cc4f,'estimatedFps':_0x23cc4f>0x0?0x3e8/_0x23cc4f:0x0,'effectiveQuality':this['getEffectiveQuality'](),'effectiveRenderScale':this[_0x4845af(0x1b9)](),'interactionKind':this[_0x4845af(0x365)]()};}['update'](_0x52616b){const _0x33b08a=_0x3cf00e;_0x52616b[_0x33b08a(0x48c)]&&this[_0x33b08a(0x2ef)](_0x52616b[_0x33b08a(0x48c)]),_0x52616b[_0x33b08a(0x295)]&&(this['baseModelMatrix']=[..._0x52616b['modelMatrix']]),_0x52616b[_0x33b08a(0x2ea)]!==void 0x0&&(this[_0x33b08a(0x2ea)]=_0x3d95fa(_0x52616b[_0x33b08a(0x2ea)],_0x33b08a(0x2ea))),_0x52616b[_0x33b08a(0x253)]!==void 0x0&&(this['clipBox']=_0x52616b[_0x33b08a(0x253)]),_0x52616b[_0x33b08a(0x3c4)]&&(this[_0x33b08a(0x3c4)]=_0x52616b[_0x33b08a(0x3c4)]),_0x52616b[_0x33b08a(0x337)]&&(this[_0x33b08a(0x337)]=_0x52616b['navigationMode']);let _0x5222b3=!0x1;if(_0x52616b[_0x33b08a(0x326)]!==void 0x0&&(this['pixelRatioCap']=_0x3d95fa(_0x52616b['pixelRatioCap'],_0x33b08a(0x326)),_0x5222b3=!0x0),_0x52616b[_0x33b08a(0x415)]!==void 0x0&&(this[_0x33b08a(0x415)]=_0x3d95fa(_0x52616b[_0x33b08a(0x415)],'renderScale'),_0x5222b3=!0x0),_0x52616b['interactionRenderScale']!==void 0x0&&(this[_0x33b08a(0x4b5)]=_0x3d95fa(_0x52616b[_0x33b08a(0x4b5)],'interactionRenderScale'),_0x5222b3=this[_0x33b08a(0x3f7)]()),_0x52616b['interactionStepScale']!==void 0x0&&(this[_0x33b08a(0x272)]=_0x3d95fa(_0x52616b[_0x33b08a(0x272)],_0x33b08a(0x272))),_0x52616b[_0x33b08a(0x298)]&&(this[_0x33b08a(0x298)]=_0x52616b['colorMode']),_0x52616b[_0x33b08a(0x231)]||_0x52616b['opacityStops']){let _0x28dc27=_0x4f9dba(_0x52616b['colorStops']??this[_0x33b08a(0x366)],_0x52616b[_0x33b08a(0x389)]??this[_0x33b08a(0x389)]);this[_0x33b08a(0x231)]=_0x28dc27[_0x33b08a(0x231)],this['colorInputs']=_0x52616b[_0x33b08a(0x231)]??this[_0x33b08a(0x366)],this[_0x33b08a(0x389)]=_0x52616b[_0x33b08a(0x389)]??this[_0x33b08a(0x389)],this['renderer'][_0x33b08a(0x46f)](_0x28dc27[_0x33b08a(0x231)],_0x28dc27[_0x33b08a(0x389)]),this[_0x33b08a(0x20c)]();}_0x52616b['colorMode']&&!_0x52616b[_0x33b08a(0x231)]&&!_0x52616b[_0x33b08a(0x389)]&&this['rebuildProfiles'](),this[_0x33b08a(0x457)][_0x33b08a(0x176)]({'renderMode':_0x52616b[_0x33b08a(0x23a)],'colorMode':_0x52616b[_0x33b08a(0x298)],'opacity':_0x52616b[_0x33b08a(0x2cd)],'densityScale':_0x52616b['densityScale'],'stepLength':this[_0x33b08a(0x403)]()}),this[_0x33b08a(0x44b)](),_0x5222b3&&this[_0x33b08a(0x3d8)](),this['requestRender']();}[_0x3cf00e(0x2ef)](_0x4482c8){const _0x6700f7=_0x3cf00e;this[_0x6700f7(0x316)][_0x6700f7(0x48d)](_0x4482c8),this[_0x6700f7(0x235)](),this[_0x6700f7(0x4c2)]();}['setTimeIndex'](_0x191e91){const _0x2c09bb=_0x3cf00e;_0x34931b(this[_0x2c09bb(0x20e)][_0x2c09bb(0x284)],_0x191e91),_0x191e91!==this['timeIndex']&&(this['timeIndex']=_0x191e91,this['resetBrickRequests']());}[_0x3cf00e(0x178)](_0x2b8920){const _0x5855fc=_0x3cf00e;_0x27b8ee(_0x2b8920),this[_0x5855fc(0x20e)]=_0x2b8920,this['timeIndex']=Math['min'](this[_0x5855fc(0x3fc)],_0x2b8920[_0x5855fc(0x284)][_0x5855fc(0x2e4)]-0x1),this[_0x5855fc(0x1d2)]=_0x595a51(_0x2b8920['metadata'],this[_0x5855fc(0x1d2)][_0x5855fc(0x445)]),this['descriptors']=_0x5057ae(_0x2b8920['metadata'],this['layout']),this[_0x5855fc(0x28d)][_0x5855fc(0x3a5)](_0x2b8920[_0x5855fc(0x284)]),this['configureSource'](),this[_0x5855fc(0x44b)](),this[_0x5855fc(0x424)](),this[_0x5855fc(0x20c)](),this['requestRender']();}[_0x3cf00e(0x412)](_0x401125){const _0x4c4cc0=_0x3cf00e;this[_0x4c4cc0(0x33d)]=_0x401125,this[_0x4c4cc0(0x20c)](),this[_0x4c4cc0(0x235)](),this['requestRender']();}[_0x3cf00e(0x182)](_0x272c87){const _0x4a7be5=_0x3cf00e;this['sliceState'][_0x4a7be5(0x349)](_0x272c87);}[_0x3cf00e(0x4c5)](_0x317573){const _0x2431ac=_0x3cf00e;if(this[_0x2431ac(0x28f)]||this['activeInteractions'][_0x2431ac(0x170)](_0x317573))return;let _0x4bc047=!this[_0x2431ac(0x3f7)]();this[_0x2431ac(0x4c8)]['add'](_0x317573),_0x4bc047&&(this[_0x2431ac(0x3f8)]=0x0,this['resize']());}[_0x3cf00e(0x1e8)](_0x1b49f9){const _0x4f7a61=_0x3cf00e;this[_0x4f7a61(0x28f)]||!this[_0x4f7a61(0x4c8)][_0x4f7a61(0x370)](_0x1b49f9)||this['isInteracting']()||(this[_0x4f7a61(0x3f8)]=0x0,this[_0x4f7a61(0x3d8)]());}[_0x3cf00e(0x2a6)](_0x3d42b4,_0x19215a){const _0x4466aa=_0x3cf00e;this['sliceState'][_0x4466aa(0x492)](_0x3d42b4,_0x19215a);let _0x36172e=this[_0x4466aa(0x28d)]['lockPreview']();if(!_0x36172e)throw Error(_0x4466aa(0x27b));return _0x36172e;}[_0x3cf00e(0x38e)](_0x2d3451,_0x3557f6){const _0xb431d5=_0x3cf00e;this[_0xb431d5(0x28d)][_0xb431d5(0x3b8)](_0x2d3451,_0x3557f6);}[_0x3cf00e(0x33e)](_0x25a458){const _0x1303d5=_0x3cf00e;this[_0x1303d5(0x28d)]['removeSlice'](_0x25a458);}[_0x3cf00e(0x293)](){const _0x4f3246=_0x3cf00e;this[_0x4f3246(0x28d)]['clearLockedSlices']();}[_0x3cf00e(0x3d8)](){const _0x456d1d=_0x3cf00e;let _0x4b967b=Math[_0x456d1d(0x46a)](window[_0x456d1d(0x35e)]||0x1,this[_0x456d1d(0x326)])*this['getEffectiveRenderScale'](),_0x1acf35=Math[_0x456d1d(0x181)](0x1,Math[_0x456d1d(0x4cc)](this['canvas'][_0x456d1d(0x34b)]*_0x4b967b||this['canvas'][_0x456d1d(0x362)]||0x1)),_0x44e9cd=Math['max'](0x1,Math[_0x456d1d(0x4cc)](this[_0x456d1d(0x3b3)][_0x456d1d(0x2c2)]*_0x4b967b||this[_0x456d1d(0x3b3)][_0x456d1d(0x488)]||0x1));this[_0x456d1d(0x316)][_0x456d1d(0x1a2)](_0x1acf35/_0x44e9cd),(this[_0x456d1d(0x3b3)][_0x456d1d(0x362)]!==_0x1acf35||this['canvas'][_0x456d1d(0x488)]!==_0x44e9cd)&&this[_0x456d1d(0x457)][_0x456d1d(0x3d8)](_0x1acf35,_0x44e9cd),this[_0x456d1d(0x4c2)]();}[_0x3cf00e(0x22b)](){const _0x16faab=_0x3cf00e;if(this[_0x16faab(0x28f)])return;this['flushSliceState'](),this[_0x16faab(0x257)]();let _0x164b71=this[_0x16faab(0x316)][_0x16faab(0x36f)];if(this[_0x16faab(0x457)]['setCamera']({'viewProjection':Array[_0x16faab(0x2e9)](_0x164b71[_0x16faab(0x317)]),'inverseViewProjection':Array[_0x16faab(0x2e9)](_0x164b71[_0x16faab(0x2d5)]),'cameraPosition':this[_0x16faab(0x316)]['state'][_0x16faab(0x1f9)]}),this['renderer'][_0x16faab(0x176)]({'stepLength':this[_0x16faab(0x403)]()}),!this[_0x16faab(0x457)][_0x16faab(0x22b)]()){this[_0x16faab(0x4cd)]=!0x0;return;}this['renderDirty']=!0x1,this[_0x16faab(0x4cb)](performance[_0x16faab(0x4ba)]()),this[_0x16faab(0x2b0)]?.[_0x16faab(0x176)]();}[_0x3cf00e(0x477)](){const _0x3d5ee6=_0x3cf00e;if(this[_0x3d5ee6(0x28f)])return Promise[_0x3d5ee6(0x20f)](Error('A\x20destroyed\x20volume\x20scene\x20cannot\x20capture\x20a\x20frame.\x20已销毁的体积场景不能读取帧。'));this[_0x3d5ee6(0x1c2)](),this[_0x3d5ee6(0x257)]();let _0x518b8c=this[_0x3d5ee6(0x316)][_0x3d5ee6(0x36f)];return this[_0x3d5ee6(0x457)][_0x3d5ee6(0x2ef)]({'viewProjection':Array[_0x3d5ee6(0x2e9)](_0x518b8c[_0x3d5ee6(0x317)]),'inverseViewProjection':Array['from'](_0x518b8c['inverseViewProjection']),'cameraPosition':this[_0x3d5ee6(0x316)][_0x3d5ee6(0x165)][_0x3d5ee6(0x1f9)]}),this[_0x3d5ee6(0x457)][_0x3d5ee6(0x477)]();}[_0x3cf00e(0x32b)](){const _0x154e48=_0x3cf00e;if(!this['destroyed']){this['destroyed']=!0x0,this[_0x154e48(0x191)]+=0x1;for(let _0x22048e of this[_0x154e48(0x16d)])_0x22048e[_0x154e48(0x449)]();this[_0x154e48(0x16d)][_0x154e48(0x203)](),cancelAnimationFrame(this[_0x154e48(0x1a3)]),this[_0x154e48(0x457)][_0x154e48(0x247)](null),this[_0x154e48(0x189)][_0x154e48(0x3cc)](0x0)[_0x154e48(0x2ad)](_0x1ff30a=>_0x1ff30a()),this['renderer'][_0x154e48(0x32b)](),this[_0x154e48(0x169)]?.[_0x154e48(0x32b)](),this[_0x154e48(0x2b0)]?.['destroy'](),this[_0x154e48(0x3df)][_0x154e48(0x203)](),this['pendingKeys'][_0x154e48(0x203)](),this['desiredKeys'][_0x154e48(0x203)](),this[_0x154e48(0x4c8)]['clear'](),this[_0x154e48(0x4c1)]=null;}}['createLayout'](_0xcf1a58){const _0x5bb273=_0x3cf00e;return _0x595a51(_0xcf1a58[_0x5bb273(0x20e)][_0x5bb273(0x284)],{'width':_0xcf1a58['chunk']?.[_0x5bb273(0x362)],'height':_0xcf1a58[_0x5bb273(0x2bb)]?.[_0x5bb273(0x488)],'depth':_0xcf1a58['chunk']?.['depth'],'halo':_0xcf1a58[_0x5bb273(0x2bb)]?.[_0x5bb273(0x296)]});}[_0x3cf00e(0x18d)](){const _0x4fa392=_0x3cf00e;return this[_0x4fa392(0x3c4)]==='auto'?this['autoQuality']:this['quality'];}['getStepLength'](){const _0x4d2541=_0x3cf00e;let _0x5817f8=_0x75c048(this[_0x4d2541(0x18d)]());return(this[_0x4d2541(0x460)]===_0x4d2541(0x409)?_0x5817f8*0.05:_0x5817f8)*(this[_0x4d2541(0x3f7)]()?this['interactionStepScale']:0x1);}[_0x3cf00e(0x3f7)](){const _0x3069b0=_0x3cf00e;return this[_0x3069b0(0x4c8)][_0x3069b0(0x304)]>0x0;}[_0x3cf00e(0x365)](){const _0x4eb566=_0x3cf00e;return this[_0x4eb566(0x4c8)]['size']===0x0?'idle':this[_0x4eb566(0x4c8)][_0x4eb566(0x304)]>0x1?_0x4eb566(0x31e):this[_0x4eb566(0x4c8)][_0x4eb566(0x441)]()[_0x4eb566(0x283)]()[_0x4eb566(0x2d8)]??_0x4eb566(0x3dd);}[_0x3cf00e(0x1b9)](){const _0x64716f=_0x3cf00e;return this[_0x64716f(0x415)]*(this[_0x64716f(0x3f7)]()?this['interactionRenderScale']:0x1);}[_0x3cf00e(0x4cb)](_0x176df3){const _0x7149b7=_0x3cf00e;if(this[_0x7149b7(0x3fb)]=_0x176df3,!(this[_0x7149b7(0x285)]===_0x7149b7(0x456)||this[_0x7149b7(0x3f7)]())){this['lastTimingFrameTimestamp']=0x0;return;}if(this['lastTimingFrameTimestamp']>0x0){let _0x396640=_0x176df3-this[_0x7149b7(0x3f8)];_0x396640>0x0&&_0x396640<=0xfa&&(this['actualFrameIntervalMilliseconds']=this[_0x7149b7(0x3f1)]===0x0?_0x396640:this['actualFrameIntervalMilliseconds']*0.8+_0x396640*0.2,this[_0x7149b7(0x1c7)](_0x396640));}this[_0x7149b7(0x3f8)]=_0x176df3;}['updateAutoQuality'](_0x2a0efc){const _0x119925=_0x3cf00e;if(this[_0x119925(0x3c4)]!==_0x119925(0x1d4)||(this['autoFrameCount']+=0x1,this[_0x119925(0x41f)]+=_0x2a0efc,this[_0x119925(0x237)]<0x1e))return;let _0x2206c5=this[_0x119925(0x41f)]/this['autoFrameCount'];if(this[_0x119925(0x237)]=0x0,this[_0x119925(0x41f)]=0x0,this[_0x119925(0x3f7)]()&&_0x2206c5<0xe)return;let _0x49d929=_0x38ffac(this[_0x119925(0x2c8)],_0x2206c5);_0x49d929!==this['autoQuality']&&(this[_0x119925(0x2c8)]=_0x49d929,this['requestBrickSchedule'](),this[_0x119925(0x4c2)]());}[_0x3cf00e(0x289)](_0xee26e4){const _0x2158e0=_0x3cf00e;return new _0x4d9d8e(_0xee26e4[_0x2158e0(0x20e)][_0x2158e0(0x284)],{'volumeDimFactor':_0xee26e4['sliceInteraction']?.['volumeDimFactor'],'depthMode':_0xee26e4[_0x2158e0(0x169)]?.['depthMode'],'maxLockedSlices':_0xee26e4['sliceInteraction']?.[_0x2158e0(0x3bb)],'onLimitReached':_0x4864ba=>_0xee26e4['sliceInteraction']?.[_0x2158e0(0x29d)]?.(Error(_0x2158e0(0x452)+_0x4864ba+_0x2158e0(0x166)+_0x4864ba+'。'))});}[_0x3cf00e(0x25a)](){const _0x5ef0bf=_0x3cf00e;let _0x2c0132=this['sliceState'][_0x5ef0bf(0x48f)](_0x4a00f5=>{const _0x1a4c0e=_0x5ef0bf;this['pendingSliceSnapshot']=_0x4a00f5,this[_0x1a4c0e(0x4c2)]();});this[_0x5ef0bf(0x189)]['push'](_0x2c0132);}['flushSliceState'](){const _0x1c3bbe=_0x3cf00e;let _0x1ee2ba=this[_0x1c3bbe(0x4c1)];if(!_0x1ee2ba)return;this[_0x1c3bbe(0x4c1)]=null;let _0x2ccd78=[];if(_0x1ee2ba['preview']){let _0x5b73a4=_0x1ee2ba[_0x1c3bbe(0x1e0)][_0x1c3bbe(0x16a)]==='x'?this[_0x1c3bbe(0x20e)][_0x1c3bbe(0x284)]['xAxis']:_0x1ee2ba[_0x1c3bbe(0x1e0)]['axis']==='y'?this[_0x1c3bbe(0x20e)][_0x1c3bbe(0x284)][_0x1c3bbe(0x46c)]:this[_0x1c3bbe(0x20e)][_0x1c3bbe(0x284)][_0x1c3bbe(0x28b)];_0x2ccd78[_0x1c3bbe(0x432)]({'id':_0x1c3bbe(0x36d),'axis':_0x1ee2ba[_0x1c3bbe(0x1e0)][_0x1c3bbe(0x16a)],'position':_0x414afa(_0x52d8c6(_0x5b73a4,_0x1ee2ba[_0x1c3bbe(0x1e0)][_0x1c3bbe(0x1f9)])),'depthMode':this[_0x1c3bbe(0x484)],'visible':!0x0,'opacity':0.72,'plateColor':this[_0x1c3bbe(0x1fb)]});}for(let _0x4c2a5e of _0x1ee2ba[_0x1c3bbe(0x240)]){let _0x1a0c1b=_0x4c2a5e[_0x1c3bbe(0x16a)]==='x'?this[_0x1c3bbe(0x20e)][_0x1c3bbe(0x284)]['xAxis']:_0x4c2a5e['axis']==='y'?this[_0x1c3bbe(0x20e)]['metadata'][_0x1c3bbe(0x46c)]:this['source'][_0x1c3bbe(0x284)]['zAxis'];_0x2ccd78[_0x1c3bbe(0x432)]({..._0x4c2a5e,'position':_0x414afa(_0x52d8c6(_0x1a0c1b,_0x4c2a5e['position'])),'opacity':0x1,'plateColor':this['slicePlateColor']});}this[_0x1c3bbe(0x457)][_0x1c3bbe(0x307)](_0x2ccd78),this[_0x1c3bbe(0x457)]['update']({'volumeDimFactor':_0x1ee2ba['preview']||_0x1ee2ba[_0x1c3bbe(0x240)][_0x1c3bbe(0x21c)](_0x5ec65b=>_0x5ec65b[_0x1c3bbe(0x4ae)])?_0x1ee2ba[_0x1c3bbe(0x308)]:0x1}),this[_0x1c3bbe(0x3d7)]?.(_0x1ee2ba[_0x1c3bbe(0x240)]),this['brickScheduleDirty']=!0x0;}[_0x3cf00e(0x168)](_0x1b71ec){const _0x5578a5=_0x3cf00e;let _0x4b7e56=()=>({'viewProjectionMatrix':this[_0x5578a5(0x316)][_0x5578a5(0x36f)]['viewProjection'],'modelMatrix':_0x54cb47(this[_0x5578a5(0x46e)],this[_0x5578a5(0x2ea)]),'viewportWidth':Math['max'](0x1,this[_0x5578a5(0x3b3)][_0x5578a5(0x34b)]),'viewportHeight':Math[_0x5578a5(0x181)](0x1,this[_0x5578a5(0x3b3)][_0x5578a5(0x2c2)])});this[_0x5578a5(0x169)]=new _0x9cb23b(this[_0x5578a5(0x38b)],this[_0x5578a5(0x28d)],_0x4b7e56,{'hitTolerancePixels':_0x1b71ec[_0x5578a5(0x169)]?.[_0x5578a5(0x2a3)],'onInteractionStart':()=>this[_0x5578a5(0x4c5)](_0x5578a5(0x2f4)),'onInteractionEnd':()=>this[_0x5578a5(0x1e8)]('slice')}),this['sliceInteraction']['initialize'](),_0x1b71ec[_0x5578a5(0x3d3)]&&(this[_0x5578a5(0x2b0)]=new _0x2a45b6(_0x1b71ec[_0x5578a5(0x3d3)],this[_0x5578a5(0x28d)],_0x4b7e56,{'interactionController':this[_0x5578a5(0x169)]}));}[_0x3cf00e(0x447)](){const _0x17aa2b=_0x3cf00e;let _0xf5aa77=_0x2bd0b3=>{const _0x4010e9=_0x312f;_0x2bd0b3[_0x4010e9(0x3fd)]!==0x0&&_0x2bd0b3[_0x4010e9(0x3fd)]!==0x2||(this[_0x4010e9(0x40e)]={'id':_0x2bd0b3[_0x4010e9(0x395)],'x':_0x2bd0b3[_0x4010e9(0x383)],'y':_0x2bd0b3['clientY'],'pan':_0x2bd0b3['button']===0x2||_0x2bd0b3[_0x4010e9(0x239)]!==_0x4010e9(0x335)&&this['navigationMode']===_0x4010e9(0x358)},this[_0x4010e9(0x4c5)](_0x4010e9(0x48c)),this['interactionElement'][_0x4010e9(0x3e0)]?.(_0x2bd0b3[_0x4010e9(0x395)]),_0x2bd0b3[_0x4010e9(0x225)]());},_0x25e77c=_0x2a8f67=>{const _0x2da821=_0x312f;if(!this[_0x2da821(0x40e)]||this[_0x2da821(0x40e)]['id']!==_0x2a8f67[_0x2da821(0x395)])return;let _0x120041=_0x2a8f67[_0x2da821(0x383)]-this[_0x2da821(0x40e)]['x'],_0xa06382=_0x2a8f67[_0x2da821(0x351)]-this['pointer']['y'];this[_0x2da821(0x40e)]['x']=_0x2a8f67[_0x2da821(0x383)],this['pointer']['y']=_0x2a8f67['clientY'],this[_0x2da821(0x40e)]['pan']?this[_0x2da821(0x316)][_0x2da821(0x358)](_0x120041,_0xa06382,this[_0x2da821(0x3b3)]['clientHeight']):this['volumeCamera'][_0x2da821(0x3b9)](_0x120041,_0xa06382),this[_0x2da821(0x235)](),this[_0x2da821(0x4c2)]();},_0x144e38=_0x3ed4db=>{const _0x231015=_0x312f;this[_0x231015(0x40e)]?.['id']===_0x3ed4db['pointerId']&&(this['pointer']=null,this['endInteraction'](_0x231015(0x48c)));},_0x2ce8f9=_0x245555=>{const _0x5909fa=_0x312f;_0x245555[_0x5909fa(0x225)](),this[_0x5909fa(0x316)][_0x5909fa(0x233)](_0x245555[_0x5909fa(0x2ca)]),this[_0x5909fa(0x235)](),this[_0x5909fa(0x4c2)]();},_0x23d7e5=_0x36ffb5=>_0x36ffb5['preventDefault']();this['interactionElement'][_0x17aa2b(0x3e5)](_0x17aa2b(0x27a),_0xf5aa77),this['interactionElement'][_0x17aa2b(0x3e5)](_0x17aa2b(0x1db),_0x25e77c),this[_0x17aa2b(0x38b)]['addEventListener']('pointerup',_0x144e38),this['interactionElement'][_0x17aa2b(0x3e5)](_0x17aa2b(0x177),_0x144e38),this['interactionElement'][_0x17aa2b(0x3e5)](_0x17aa2b(0x251),_0x2ce8f9,{'passive':!0x1}),this['interactionElement'][_0x17aa2b(0x3e5)](_0x17aa2b(0x3ba),_0x23d7e5),this[_0x17aa2b(0x189)]['push'](()=>this['interactionElement'][_0x17aa2b(0x4bf)](_0x17aa2b(0x27a),_0xf5aa77),()=>this['interactionElement']['removeEventListener'](_0x17aa2b(0x1db),_0x25e77c),()=>this[_0x17aa2b(0x38b)][_0x17aa2b(0x4bf)](_0x17aa2b(0x1f1),_0x144e38),()=>this[_0x17aa2b(0x38b)]['removeEventListener'](_0x17aa2b(0x177),_0x144e38),()=>this[_0x17aa2b(0x38b)]['removeEventListener'](_0x17aa2b(0x251),_0x2ce8f9),()=>this[_0x17aa2b(0x38b)][_0x17aa2b(0x4bf)](_0x17aa2b(0x3ba),_0x23d7e5));}[_0x3cf00e(0x1ad)](){const _0x1fe04b=_0x3cf00e;this['renderer'][_0x1fe04b(0x178)]({'xAxis':this[_0x1fe04b(0x20e)][_0x1fe04b(0x284)][_0x1fe04b(0x49a)],'yAxis':this[_0x1fe04b(0x20e)]['metadata'][_0x1fe04b(0x46c)],'zAxis':this[_0x1fe04b(0x20e)][_0x1fe04b(0x284)]['zAxis'],'brickWidth':this[_0x1fe04b(0x1d2)]['shape'][_0x1fe04b(0x362)],'brickHeight':this[_0x1fe04b(0x1d2)]['shape'][_0x1fe04b(0x488)],'brickDepth':this['layout'][_0x1fe04b(0x445)][_0x1fe04b(0x34a)],'halo':0x1,'noData':this[_0x1fe04b(0x20e)]['metadata'][_0x1fe04b(0x4c9)]});}['configureModel'](){const _0x18c635=_0x3cf00e;if(this[_0x18c635(0x460)]==='geographic-wgs84'){let _0x20c7ae=_0x1393b7(this[_0x18c635(0x20e)][_0x18c635(0x284)],this[_0x18c635(0x2ea)]);this[_0x18c635(0x457)]['update']({'modelMatrix':_0x20c7ae['proxyModelMatrix'],'inverseModelMatrix':Array['from'](_0x134d8e(_0x20c7ae[_0x18c635(0x1a8)])),'geographicTransform':_0x20c7ae['transform'],'clipMinimum':[0x0,0x0,0x0],'clipMaximum':[0x1,0x1,0x1]}),this['requestRender']();return;}let _0x179b66=_0x54cb47(this['baseModelMatrix'],this[_0x18c635(0x2ea)]),_0x36b3c4=_0x5815bc(this[_0x18c635(0x20e)],this[_0x18c635(0x253)]);this['renderer']['update']({'modelMatrix':Array[_0x18c635(0x2e9)](_0x179b66),'inverseModelMatrix':Array[_0x18c635(0x2e9)](_0x134d8e(_0x179b66)),'geographicTransform':null,'clipMinimum':_0x36b3c4[_0x18c635(0x3a7)],'clipMaximum':_0x36b3c4[_0x18c635(0x1bd)]}),this['requestRender']();}[_0x3cf00e(0x20c)](){const _0x502a53=_0x3cf00e;let _0x36f7a7=this[_0x502a53(0x33d)][_0x502a53(0x4bc)](_0x3fc36f=>_0x191de6(_0x562375(_0x3fc36f,this[_0x502a53(0x20e)][_0x502a53(0x284)]),this[_0x502a53(0x231)],this[_0x502a53(0x389)],this[_0x502a53(0x298)]));this[_0x502a53(0x457)][_0x502a53(0x437)](_0x36f7a7),this[_0x502a53(0x4c2)]();}[_0x3cf00e(0x424)](){const _0x51dd8f=_0x3cf00e;this['sourceGeneration']+=0x1;for(let _0x473a41 of this['requestControllers'])_0x473a41[_0x51dd8f(0x449)]();this[_0x51dd8f(0x16d)][_0x51dd8f(0x203)](),this['loadedKeys'][_0x51dd8f(0x203)](),this[_0x51dd8f(0x3e9)][_0x51dd8f(0x203)](),this['desiredKeys'][_0x51dd8f(0x203)](),this[_0x51dd8f(0x1ad)](),this[_0x51dd8f(0x422)]();}[_0x3cf00e(0x235)](){const _0x37a330=_0x3cf00e;this[_0x37a330(0x44e)]=!0x0,this[_0x37a330(0x4c2)]();}[_0x3cf00e(0x257)](){const _0xbba00f=_0x3cf00e;this[_0xbba00f(0x44e)]&&(this['brickScheduleDirty']=!0x1,this[_0xbba00f(0x422)]());}['scheduleBricks'](){const _0x519bd8=_0x3cf00e;if(this[_0x519bd8(0x28f)])return;this[_0x519bd8(0x44e)]=!0x1,this[_0x519bd8(0x292)]+=0x1;let _0x3c7b21=this['renderer']['statistics']['atlasCapacity'];if(_0x3c7b21<=0x0)return;let _0x47c4b0=_0x3c7b21>=this[_0x519bd8(0x35a)][_0x519bd8(0x29e)];if(_0x47c4b0&&this[_0x519bd8(0x288)][_0x519bd8(0x304)]===this[_0x519bd8(0x35a)][_0x519bd8(0x29e)]&&this['loadedKeys'][_0x519bd8(0x304)]===this[_0x519bd8(0x35a)][_0x519bd8(0x29e)]&&this[_0x519bd8(0x3e9)][_0x519bd8(0x304)]===0x0)return;let _0x4a5fb8;_0x47c4b0?_0x4a5fb8=this[_0x519bd8(0x35a)]:(this[_0x519bd8(0x410)]+=0x1,_0x4a5fb8=[...this[_0x519bd8(0x35a)]][_0x519bd8(0x3a6)]((_0x285489,_0x418fa3)=>_0x235250(_0x285489,this[_0x519bd8(0x20e)],this['sliceState'],this[_0x519bd8(0x33d)])-_0x235250(_0x418fa3,this[_0x519bd8(0x20e)],this[_0x519bd8(0x28d)],this[_0x519bd8(0x33d)])||_0x4fc8b5(_0x285489,this[_0x519bd8(0x1d2)],this[_0x519bd8(0x316)][_0x519bd8(0x165)])-_0x4fc8b5(_0x418fa3,this[_0x519bd8(0x1d2)],this[_0x519bd8(0x316)][_0x519bd8(0x165)]))['slice'](0x0,_0x3c7b21));let _0x5a3be5=new Set(_0x4a5fb8[_0x519bd8(0x4bc)](_0x1a460d=>_0x1a460d['key']));this[_0x519bd8(0x288)]=_0x5a3be5,_0x47c4b0||this[_0x519bd8(0x457)][_0x519bd8(0x31b)](_0x4a5fb8['filter'](_0x2992b0=>this[_0x519bd8(0x3df)][_0x519bd8(0x170)](_0x2992b0[_0x519bd8(0x2dd)]))['map'](_0x44da0c=>_0x45ed3b(_0x44da0c,this['layout'])));for(let _0x51fc7c of this['loadedKeys'])_0x5a3be5[_0x519bd8(0x170)](_0x51fc7c)||this[_0x519bd8(0x3df)][_0x519bd8(0x370)](_0x51fc7c);let _0x240f67=Math['max'](0x0,_0x5d5900(this[_0x519bd8(0x18d)]())-this[_0x519bd8(0x3e9)][_0x519bd8(0x304)]),_0x58d721=_0x4a5fb8[_0x519bd8(0x49e)](_0x2dbac9=>!this[_0x519bd8(0x3df)][_0x519bd8(0x170)](_0x2dbac9[_0x519bd8(0x2dd)])&&!this[_0x519bd8(0x3e9)][_0x519bd8(0x170)](_0x2dbac9['key']))[_0x519bd8(0x2f4)](0x0,_0x240f67);for(let _0x3f24b5 of _0x58d721)this[_0x519bd8(0x30d)](_0x3f24b5);}[_0x3cf00e(0x30d)](_0x320683){const _0x3de6d7=_0x3cf00e;let _0x468cfe=this[_0x3de6d7(0x191)],_0x4bb715=this[_0x3de6d7(0x20e)],_0x55fe66=this[_0x3de6d7(0x3fc)],_0x57fdc5=new AbortController();this[_0x3de6d7(0x16d)][_0x3de6d7(0x2fa)](_0x57fdc5),this[_0x3de6d7(0x3e9)][_0x3de6d7(0x466)](_0x320683[_0x3de6d7(0x2dd)],_0x468cfe),Promise[_0x3de6d7(0x184)](_0x4bb715[_0x3de6d7(0x377)](_0x55fe66,_0x320683[_0x3de6d7(0x39a)],_0x57fdc5[_0x3de6d7(0x4ac)]))[_0x3de6d7(0x453)](async _0x115331=>{const _0x19413e=_0x3de6d7;if(this[_0x19413e(0x28f)]||_0x468cfe!==this[_0x19413e(0x191)]||_0x4bb715!==this[_0x19413e(0x20e)]||_0x55fe66!==this[_0x19413e(0x3fc)]||!this['desiredKeys']['has'](_0x320683[_0x19413e(0x2dd)]))return;let _0x255e81=_0x4d7b12(_0x4bb715[_0x19413e(0x284)],this[_0x19413e(0x1d2)][_0x19413e(0x445)],_0x320683,_0x115331),_0x2c380a=_0x45ed3b(_0x320683,this[_0x19413e(0x1d2)]);await this[_0x19413e(0x457)][_0x19413e(0x360)]({'logicalIndex':_0x2c380a,'values':_0x255e81}),!(this['destroyed']||_0x468cfe!==this[_0x19413e(0x191)]||_0x4bb715!==this['source']||_0x55fe66!==this[_0x19413e(0x3fc)]||!this[_0x19413e(0x288)]['has'](_0x320683['key']))&&(this[_0x19413e(0x3df)]['add'](_0x320683[_0x19413e(0x2dd)]),this[_0x19413e(0x4c2)]());})[_0x3de6d7(0x1b8)](_0x5d930f=>{const _0x2bd485=_0x3de6d7;_0x5d930f instanceof DOMException&&_0x5d930f[_0x2bd485(0x1ae)]===_0x2bd485(0x234)||console[_0x2bd485(0x2da)](_0x5d930f);})[_0x3de6d7(0x3be)](()=>{const _0x1be460=_0x3de6d7;this[_0x1be460(0x16d)][_0x1be460(0x370)](_0x57fdc5),this[_0x1be460(0x3e9)][_0x1be460(0x226)](_0x320683[_0x1be460(0x2dd)])===_0x468cfe&&this[_0x1be460(0x3e9)]['delete'](_0x320683[_0x1be460(0x2dd)]),_0x468cfe===this[_0x1be460(0x191)]&&this[_0x1be460(0x422)]();});}['handleFrameAvailable'](){const _0x3d5012=_0x3cf00e;this[_0x3d5012(0x4cd)]&&this['requestRender']();}[_0x3cf00e(0x4c2)](){const _0x402b71=_0x3cf00e;this[_0x402b71(0x28f)]||(this[_0x402b71(0x4cd)]=!0x0,!(this[_0x402b71(0x285)]!==_0x402b71(0x179)||this['frameRequest']!==0x0)&&(this[_0x402b71(0x1a3)]=requestAnimationFrame(()=>{const _0x2f936f=_0x402b71;this['frameRequest']=0x0,!(this['destroyed']||!this[_0x2f936f(0x4cd)])&&this[_0x2f936f(0x22b)]();})));}};let _0x2097a0=_0x3bc88c=>_0x3a9ada['create'](_0x3bc88c),_0x1c74bc=(_0x5935ea,_0x59a9df,_0x426335)=>{const _0x2445b0=_0x3cf00e;let _0x4730a2=_0x5935ea['indexOf'](_0x59a9df);if(_0x4730a2<0x0||_0x5935ea[_0x2445b0(0x38c)](_0x59a9df,_0x4730a2+_0x59a9df[_0x2445b0(0x29e)])>=0x0)throw Error(_0x2445b0(0x3ca)+_0x59a9df);return''+_0x5935ea[_0x2445b0(0x2f4)](0x0,_0x4730a2)+_0x426335+_0x5935ea[_0x2445b0(0x2f4)](_0x4730a2+_0x59a9df[_0x2445b0(0x29e)]);},_0x343945=_0x1c74bc(_0x1c74bc(_0x255239,'fn\x20getPageIndex',_0x3cf00e(0x252)),_0x3cf00e(0x40c),_0x3cf00e(0x2ee)),_0x3d577f=()=>({'color':{'srcFactor':_0x3cf00e(0x2dc),'dstFactor':'one-minus-src-alpha','operation':_0x3cf00e(0x2fa)},'alpha':{'srcFactor':'one','dstFactor':_0x3cf00e(0x1d5),'operation':_0x3cf00e(0x2fa)}}),_0x1a55e4=_0x522902[_0x3cf00e(0x199)],_0x59a210=new WeakSet(),_0x4a9293=!0x1,_0x26343b=()=>{const _0x2ad00d=_0x3cf00e;if(_0x4a9293)return;let _0x4c4180=_0x1a55e4[_0x2ad00d(0x21e)];_0x1a55e4[_0x2ad00d(0x21e)]=function(){const _0x2a06c8=_0x2ad00d;if(_0x4c4180[_0x2a06c8(0x450)](this),!this[_0x2a06c8(0x3b3)]||!_0x59a210[_0x2a06c8(0x170)](this[_0x2a06c8(0x3b3)]))return;let _0xe85e1f=this[_0x2a06c8(0x26c)](),_0x393a6e=_0xe85e1f[_0x2a06c8(0x1f4)]({'label':_0x2a06c8(0x2c5),'code':_0x343945});this['volumePipeline']=_0xe85e1f[_0x2a06c8(0x294)]({'label':_0x2a06c8(0x462),'layout':_0xe85e1f[_0x2a06c8(0x3ff)]({'bindGroupLayouts':[this[_0x2a06c8(0x42c)](),this[_0x2a06c8(0x34e)](),this[_0x2a06c8(0x206)]()]}),'vertex':{'module':_0x393a6e,'entryPoint':_0x2a06c8(0x1f3)},'fragment':{'module':_0x393a6e,'entryPoint':'fragmentMain','targets':[{'format':this[_0x2a06c8(0x3eb)](),'blend':_0x3d577f()}]},'primitive':{'topology':_0x2a06c8(0x36b)}});},_0x4a9293=!0x0;},_0x4715f4=async _0x498cc3=>{const _0xa9657b=_0x3cf00e;_0x26343b(),_0x59a210[_0xa9657b(0x2fa)](_0x498cc3['canvas']);try{let _0x41a69f=await _0x2097a0(_0x498cc3),_0xf388e9=_0x41a69f[_0xa9657b(0x32b)]['bind'](_0x41a69f);return _0x41a69f[_0xa9657b(0x32b)]=()=>{const _0xc6c548=_0xa9657b;_0x59a210[_0xc6c548(0x370)](_0x498cc3[_0xc6c548(0x3b3)]),_0xf388e9();},_0x41a69f;}catch(_0xcab045){throw _0x59a210[_0xa9657b(0x370)](_0x498cc3[_0xa9657b(0x3b3)]),_0xcab045;}},_0x41493d=(_0x23a1ab,_0x3b3927)=>[_0x23a1ab[0x1]*_0x3b3927[0x2]-_0x23a1ab[0x2]*_0x3b3927[0x1],_0x23a1ab[0x2]*_0x3b3927[0x0]-_0x23a1ab[0x0]*_0x3b3927[0x2],_0x23a1ab[0x0]*_0x3b3927[0x1]-_0x23a1ab[0x1]*_0x3b3927[0x0]],_0x30d276=_0x342b58=>{const _0x3fe11f=_0x3cf00e;let _0x3802f6=Math[_0x3fe11f(0x241)](_0x342b58[0x0],_0x342b58[0x1],_0x342b58[0x2]);return _0x3802f6>1e-10?[_0x342b58[0x0]/_0x3802f6,_0x342b58[0x1]/_0x3802f6,_0x342b58[0x2]/_0x3802f6]:null;},_0x7b5d1c=(_0x2b6dea,_0x278497)=>_0x2b6dea[0x0]*_0x278497[0x0]+_0x2b6dea[0x1]*_0x278497[0x1]+_0x2b6dea[0x2]*_0x278497[0x2],_0x4dc146=(_0x481e3d,_0x3a1a4d,_0x44d1eb)=>[_0x481e3d[0x0]+_0x3a1a4d[0x0]*_0x44d1eb,_0x481e3d[0x1]+_0x3a1a4d[0x1]*_0x44d1eb,_0x481e3d[0x2]+_0x3a1a4d[0x2]*_0x44d1eb],_0x3362c6=(_0x54fd75,_0x162e3a,_0xb5d926)=>{const _0x42974e=_0x3cf00e;let _0x41b4e7=_0x30d276(_0x54fd75[_0x42974e(0x3a8)]),_0x474b89=_0x41b4e7?_0x30d276(_0x41493d(_0x41b4e7,_0x54fd75['up'])):null,_0x1e7ee7=_0x41b4e7&&_0x474b89?_0x30d276(_0x41493d(_0x474b89,_0x41b4e7)):null,_0x1f1667=Math[_0x42974e(0x470)](_0x54fd75[_0x42974e(0x3c9)]/0x2),_0xeecf4d=_0x162e3a/_0xb5d926;if(!_0x41b4e7||!_0x474b89||!_0x1e7ee7||!(_0x1f1667>0x0)||!(_0xeecf4d>0x0)||!(_0x54fd75[_0x42974e(0x25d)]>0x0))return null;let _0x507b8c=_0x4dc146(_0x54fd75['position'],_0x41b4e7,_0x54fd75[_0x42974e(0x25d)]),_0x15193d=[_0x507b8c,_0x4dc146(_0x507b8c,_0x474b89,_0x54fd75[_0x42974e(0x25d)]*_0x1f1667*_0xeecf4d*0.5),_0x4dc146(_0x507b8c,_0x1e7ee7,_0x54fd75[_0x42974e(0x25d)]*_0x1f1667*0.5)],_0x250421=_0x4d4db7(_0x54fd75,_0x15193d,_0x162e3a,_0xb5d926);return _0x250421?{'worldAnchors':_0x15193d,'screenAnchors':_0x250421}:null;},_0x4d4db7=(_0x5783b8,_0x3a5ca4,_0x32fbd7,_0x35ffa8)=>{const _0x2ebd8f=_0x3cf00e;let _0x5a48d5=_0x30d276(_0x5783b8[_0x2ebd8f(0x3a8)]),_0x50fb4c=_0x5a48d5?_0x30d276(_0x41493d(_0x5a48d5,_0x5783b8['up'])):null,_0x27de1a=_0x5a48d5&&_0x50fb4c?_0x30d276(_0x41493d(_0x50fb4c,_0x5a48d5)):null,_0x2bd969=Math[_0x2ebd8f(0x470)](_0x5783b8[_0x2ebd8f(0x3c9)]/0x2),_0x38077e=_0x32fbd7/_0x35ffa8;if(!_0x5a48d5||!_0x50fb4c||!_0x27de1a||!(_0x2bd969>0x0)||!(_0x38077e>0x0))return null;let _0x41f1a9=[];for(let _0x19e18e of _0x3a5ca4){let _0x3e6413=[_0x19e18e[0x0]-_0x5783b8['position'][0x0],_0x19e18e[0x1]-_0x5783b8['position'][0x1],_0x19e18e[0x2]-_0x5783b8[_0x2ebd8f(0x1f9)][0x2]],_0x55d0eb=_0x7b5d1c(_0x3e6413,_0x5a48d5);if(!(_0x55d0eb>0.000001))return null;let _0x50a579=_0x7b5d1c(_0x3e6413,_0x50fb4c)/(_0x55d0eb*_0x2bd969*_0x38077e),_0x185565=_0x7b5d1c(_0x3e6413,_0x27de1a)/(_0x55d0eb*_0x2bd969);_0x41f1a9[_0x2ebd8f(0x432)]({'x':(_0x50a579*0.5+0.5)*_0x32fbd7,'y':(0.5-_0x185565*0.5)*_0x35ffa8});}return _0x41f1a9;},_0x456b82=(_0x3de2e5,_0x576cd9)=>{const _0x4851ff=_0x3cf00e;if(_0x3de2e5[_0x4851ff(0x29e)]!==0x3||_0x576cd9[_0x4851ff(0x29e)]!==0x3)return null;let _0x43e5af={'x':_0x3de2e5[0x1]['x']-_0x3de2e5[0x0]['x'],'y':_0x3de2e5[0x1]['y']-_0x3de2e5[0x0]['y']},_0x47ac60={'x':_0x3de2e5[0x2]['x']-_0x3de2e5[0x0]['x'],'y':_0x3de2e5[0x2]['y']-_0x3de2e5[0x0]['y']},_0x5c2ad4={'x':_0x576cd9[0x1]['x']-_0x576cd9[0x0]['x'],'y':_0x576cd9[0x1]['y']-_0x576cd9[0x0]['y']},_0x64954e={'x':_0x576cd9[0x2]['x']-_0x576cd9[0x0]['x'],'y':_0x576cd9[0x2]['y']-_0x576cd9[0x0]['y']},_0x333451=_0x43e5af['x']*_0x47ac60['y']-_0x47ac60['x']*_0x43e5af['y'];if(Math[_0x4851ff(0x200)](_0x333451)<0.000001)return null;let _0x57e5a4=(_0x5c2ad4['x']*_0x47ac60['y']-_0x64954e['x']*_0x43e5af['y'])/_0x333451,_0x413ec4=(-_0x5c2ad4['x']*_0x47ac60['x']+_0x64954e['x']*_0x43e5af['x'])/_0x333451,_0x56a57=(_0x5c2ad4['y']*_0x47ac60['y']-_0x64954e['y']*_0x43e5af['y'])/_0x333451,_0x4b5c9c=(-_0x5c2ad4['y']*_0x47ac60['x']+_0x64954e['y']*_0x43e5af['x'])/_0x333451,_0x3629d2=[_0x57e5a4,_0x56a57,_0x413ec4,_0x4b5c9c,_0x576cd9[0x0]['x']-_0x57e5a4*_0x3de2e5[0x0]['x']-_0x413ec4*_0x3de2e5[0x0]['y'],_0x576cd9[0x0]['y']-_0x56a57*_0x3de2e5[0x0]['x']-_0x4b5c9c*_0x3de2e5[0x0]['y']];return _0x3629d2[_0x4851ff(0x485)](Number['isFinite'])?_0x4851ff(0x222)+_0x3629d2[_0x4851ff(0x2e6)](',')+')':null;},_0x416ce7=_0xc51f09=>_0xc51f09 instanceof Error?_0xc51f09:Error(String(_0xc51f09));var _0xdd97f2=class{['readyPromise'];['map'];[_0x3cf00e(0x3b3)];[_0x3cf00e(0x4aa)];[_0x3cf00e(0x411)];[_0x3cf00e(0x2d0)]=null;['source'];[_0x3cf00e(0x1d2)];[_0x3cf00e(0x1a3)]=0x0;[_0x3cf00e(0x224)]=0x0;[_0x3cf00e(0x172)]=0x0;[_0x3cf00e(0x4b8)];[_0x3cf00e(0x28f)]=!0x1;[_0x3cf00e(0x390)]=!0x1;[_0x3cf00e(0x41c)]='';[_0x3cf00e(0x3b1)]=null;[_0x3cf00e(0x41e)]=null;constructor(_0x2d1993,_0x19c374){const _0x1a1fc6=_0x3cf00e;this[_0x1a1fc6(0x4bc)]=_0x2d1993,this[_0x1a1fc6(0x20e)]=_0x19c374[_0x1a1fc6(0x20e)],this[_0x1a1fc6(0x1d2)]=_0x1393b7(_0x19c374['source'][_0x1a1fc6(0x284)]),this[_0x1a1fc6(0x4aa)]=_0x19c374[_0x1a1fc6(0x4aa)],this[_0x1a1fc6(0x411)]=_0x19c374[_0x1a1fc6(0x411)]??!0x0,this[_0x1a1fc6(0x4b8)]=_0x19c374[_0x1a1fc6(0x18a)]??!0x0,this[_0x1a1fc6(0x3b3)]=this[_0x1a1fc6(0x468)](_0x2d1993['scene'][_0x1a1fc6(0x3b3)]),this[_0x1a1fc6(0x2f7)]=this[_0x1a1fc6(0x3ad)](_0x19c374);}get[_0x3cf00e(0x246)](){const _0x30410f=_0x3cf00e;return this[_0x30410f(0x2d0)]?.[_0x30410f(0x246)]??null;}get['lockedSlices'](){const _0x5c93de=_0x3cf00e;return this[_0x5c93de(0x2d0)]?.[_0x5c93de(0x240)]??[];}[_0x3cf00e(0x3aa)](_0xc86c52){const _0x1aea03=_0x3cf00e;this[_0x1aea03(0x471)](),this[_0x1aea03(0x4b8)]=_0xc86c52,this[_0x1aea03(0x3b3)]['style'][_0x1aea03(0x3ec)]=_0xc86c52?_0x1aea03(0x43c):_0x1aea03(0x392),_0xc86c52&&this['requestFrames'](0x3);}[_0x3cf00e(0x176)](_0x68809e){const _0x2da4be=_0x3cf00e;this[_0x2da4be(0x23e)]()['update'](_0x68809e),this[_0x2da4be(0x281)](0x3);}['setTimeIndex'](_0xf6321a){const _0x111f16=_0x3cf00e;this['requireScene']()['setTimeIndex'](_0xf6321a),this[_0x111f16(0x281)](0x3);}[_0x3cf00e(0x412)](_0x5cba0a){const _0x4e6f27=_0x3cf00e;this[_0x4e6f27(0x23e)]()[_0x4e6f27(0x412)](_0x5cba0a),this[_0x4e6f27(0x281)](0x3);}[_0x3cf00e(0x38e)](_0x4cf18f,_0xb02bd7){const _0x24ce31=_0x3cf00e;this[_0x24ce31(0x23e)]()[_0x24ce31(0x38e)](_0x4cf18f,_0xb02bd7),this[_0x24ce31(0x281)](0x3);}[_0x3cf00e(0x33e)](_0x44c118){const _0x5e00db=_0x3cf00e;this[_0x5e00db(0x23e)]()[_0x5e00db(0x33e)](_0x44c118),this[_0x5e00db(0x281)](0x3);}[_0x3cf00e(0x293)](){const _0x10882a=_0x3cf00e;this[_0x10882a(0x23e)]()[_0x10882a(0x293)](),this[_0x10882a(0x281)](0x3);}[_0x3cf00e(0x2a6)](_0x33baad,_0x162d92){const _0x200df8=_0x3cf00e;let _0x533400=this[_0x200df8(0x23e)]()['lockSlice'](_0x33baad,_0x162d92);return this['requestFrames'](0x3),_0x533400;}[_0x3cf00e(0x178)](_0x4b303d){const _0x8ad7a5=_0x3cf00e;this[_0x8ad7a5(0x471)](),this[_0x8ad7a5(0x20e)]=_0x4b303d,this[_0x8ad7a5(0x1d2)]=_0x1393b7(_0x4b303d['metadata']),this[_0x8ad7a5(0x35d)](),this[_0x8ad7a5(0x23e)]()['setSource'](_0x4b303d),this[_0x8ad7a5(0x342)](),this[_0x8ad7a5(0x281)](0x3);}['destroy'](){const _0x218745=_0x3cf00e;this[_0x218745(0x28f)]||(this[_0x218745(0x28f)]=!0x0,cancelAnimationFrame(this['frameRequest']),window[_0x218745(0x216)](this[_0x218745(0x224)]),this[_0x218745(0x1a3)]=0x0,this[_0x218745(0x224)]=0x0,this['map'][_0x218745(0x2d0)][_0x218745(0x1aa)][_0x218745(0x4bf)](this['handlePreRender']),window[_0x218745(0x4bf)](_0x218745(0x3d8),this[_0x218745(0x3bf)]),this[_0x218745(0x2d0)]?.[_0x218745(0x32b)](),this[_0x218745(0x2d0)]=null,this['canvas']['remove']());}['finishCameraInteraction'](){const _0x8e6235=_0x3cf00e;this[_0x8e6235(0x390)]&&(window[_0x8e6235(0x216)](this[_0x8e6235(0x224)]),this['cameraEndTimer']=0x0,this[_0x8e6235(0x390)]=!0x1,this[_0x8e6235(0x2d0)]?.[_0x8e6235(0x1e8)](_0x8e6235(0x48c)),this[_0x8e6235(0x342)](),this[_0x8e6235(0x281)](0x3));}[_0x3cf00e(0x2fc)]=()=>{const _0x2ff6ae=_0x3cf00e;let _0x189ee8=this[_0x2ff6ae(0x223)](this[_0x2ff6ae(0x4bc)][_0x2ff6ae(0x2d0)][_0x2ff6ae(0x48c)]);_0x189ee8!==this[_0x2ff6ae(0x41c)]&&(this['cameraSignature']=_0x189ee8,this['beginCameraInteraction'](),this[_0x2ff6ae(0x342)](),this[_0x2ff6ae(0x451)](),this[_0x2ff6ae(0x1ea)](0x1));};[_0x3cf00e(0x3bf)]=()=>{const _0x574e16=_0x3cf00e;this['clearCameraFrameCompensation'](),this['scene']?.[_0x574e16(0x3d8)](),this['syncCamera'](),this[_0x574e16(0x281)](0x3);};async['initialize'](_0x60112c){const _0x19540e=_0x3cf00e;try{let _0x20929b=await _0x4715f4({..._0x60112c,'interactionStepScale':_0x60112c[_0x19540e(0x272)]??1.35,'canvas':this[_0x19540e(0x3b3)],'coordinateSystem':_0x19540e(0x409),'showDebugGeometry':!0x1,'renderMode':'external'});if(this[_0x19540e(0x28f)]){_0x20929b[_0x19540e(0x32b)]();return;}this[_0x19540e(0x2d0)]=_0x20929b,this[_0x19540e(0x26a)](_0x20929b),this['map'][_0x19540e(0x2d0)][_0x19540e(0x1aa)]['addEventListener'](this['handlePreRender']),window[_0x19540e(0x3e5)]('resize',this[_0x19540e(0x3bf)]),this[_0x19540e(0x342)](),this[_0x19540e(0x281)](0x3);}catch(_0x154240){let _0x214bac=_0x416ce7(_0x154240);throw this[_0x19540e(0x3b3)][_0x19540e(0x320)](),this[_0x19540e(0x4aa)]?.(_0x214bac),_0x214bac;}}[_0x3cf00e(0x342)](){const _0x420bd0=_0x3cf00e;let _0x3a3afc=this[_0x420bd0(0x2d0)];if(!_0x3a3afc)return;let _0x5d313e=this['map']['scene']['camera'],_0x4632e6=_0x5258e0([_0x5d313e[_0x420bd0(0x384)]['x'],_0x5d313e[_0x420bd0(0x384)]['y'],_0x5d313e[_0x420bd0(0x384)]['z']],this['layout']),_0x3ef0ee=[_0x5d313e['directionWC']['x'],_0x5d313e[_0x420bd0(0x446)]['y'],_0x5d313e['directionWC']['z']],_0x1ca3be=[_0x5d313e['upWC']['x'],_0x5d313e['upWC']['y'],_0x5d313e['upWC']['z']],_0x3e667d=Math['max'](0.001,Math[_0x420bd0(0x200)](_0x5d313e[_0x420bd0(0x250)]['height'])/this[_0x420bd0(0x1d2)][_0x420bd0(0x1da)]),_0x5af163=[_0x4632e6[0x0]+_0x3ef0ee[0x0]*_0x3e667d,_0x4632e6[0x1]+_0x3ef0ee[0x1]*_0x3e667d,_0x4632e6[0x2]+_0x3ef0ee[0x2]*_0x3e667d],_0x3c4b69=_0x5d313e['frustum']['fovy']??_0x5d313e['frustum'][_0x420bd0(0x4a1)]??Math['PI']/0x3,_0xc55442=Math[_0x420bd0(0x181)](0.0001,_0x3e667d/0x2710),_0x345e0c=Math[_0x420bd0(0x181)](0x64,_0x3e667d*0x4);_0x3a3afc[_0x420bd0(0x2ef)]({'position':_0x4632e6,'target':_0x5af163,'up':_0x1ca3be,'projection':{'type':'perspective','fovYDegrees':_0x3c4b69*0xb4/Math['PI'],'near':_0xc55442,'far':_0x345e0c}});}[_0x3cf00e(0x26a)](_0x55bfa7){const _0x8d4cce=_0x3cf00e;let _0x1afd13=_0x55bfa7['renderer'],_0x52d424=_0x1afd13['frameAvailableCallback'];_0x1afd13[_0x8d4cce(0x299)]=()=>{const _0x55a7ec=_0x8d4cce;this[_0x55a7ec(0x3b1)]&&(this['displayedCompensationFrame']=this[_0x55a7ec(0x3b1)],this[_0x55a7ec(0x3b1)]=null,this['applyCameraFrameCompensation']()),_0x52d424?.();};}[_0x3cf00e(0x3ab)](){const _0x4d1a36=_0x3cf00e;let _0x2e46b9=this[_0x4d1a36(0x4bc)][_0x4d1a36(0x2d0)][_0x4d1a36(0x48c)];return{'position':[_0x2e46b9[_0x4d1a36(0x384)]['x'],_0x2e46b9[_0x4d1a36(0x384)]['y'],_0x2e46b9[_0x4d1a36(0x384)]['z']],'direction':[_0x2e46b9[_0x4d1a36(0x446)]['x'],_0x2e46b9[_0x4d1a36(0x446)]['y'],_0x2e46b9[_0x4d1a36(0x446)]['z']],'up':[_0x2e46b9['upWC']['x'],_0x2e46b9[_0x4d1a36(0x4c4)]['y'],_0x2e46b9[_0x4d1a36(0x4c4)]['z']],'fovYRadians':_0x2e46b9[_0x4d1a36(0x2e5)][_0x4d1a36(0x1cd)]??_0x2e46b9[_0x4d1a36(0x2e5)][_0x4d1a36(0x4a1)]??Math['PI']/0x3,'anchorDistance':Math[_0x4d1a36(0x181)](0x3e8,Math[_0x4d1a36(0x200)](_0x2e46b9[_0x4d1a36(0x250)][_0x4d1a36(0x488)])*0x2)};}[_0x3cf00e(0x22c)](){const _0x2a7361=_0x3cf00e;return _0x3362c6(this[_0x2a7361(0x3ab)](),this[_0x2a7361(0x3b3)][_0x2a7361(0x34b)],this[_0x2a7361(0x3b3)]['clientHeight']);}[_0x3cf00e(0x451)](){const _0x5b0620=_0x3cf00e;if(!this['cameraFrameCompensation']||!this[_0x5b0620(0x41e)]){this[_0x5b0620(0x3b3)]['style'][_0x5b0620(0x3d4)]=_0x5b0620(0x392);return;}let _0x5801ea=_0x4d4db7(this[_0x5b0620(0x3ab)](),this[_0x5b0620(0x41e)][_0x5b0620(0x3bc)],this[_0x5b0620(0x3b3)]['clientWidth'],this[_0x5b0620(0x3b3)][_0x5b0620(0x2c2)]),_0x1a1e38=_0x5801ea?_0x456b82(this[_0x5b0620(0x41e)][_0x5b0620(0x341)],_0x5801ea):null;this[_0x5b0620(0x3b3)][_0x5b0620(0x2b6)][_0x5b0620(0x3d4)]=_0x1a1e38??_0x5b0620(0x392);}[_0x3cf00e(0x35d)](){const _0x4019f6=_0x3cf00e;this[_0x4019f6(0x3b1)]=null,this[_0x4019f6(0x41e)]=null,this[_0x4019f6(0x3b3)][_0x4019f6(0x2b6)]['transform']=_0x4019f6(0x392);}[_0x3cf00e(0x281)](_0x56eaf0){const _0x3f00e9=_0x3cf00e;!this[_0x3f00e9(0x4b8)]||this['destroyed']||(this[_0x3f00e9(0x172)]=Math[_0x3f00e9(0x181)](this[_0x3f00e9(0x172)],_0x56eaf0),this[_0x3f00e9(0x1a3)]||=requestAnimationFrame(this['renderFrame']));}[_0x3cf00e(0x1ea)](_0x3625b4){const _0x232492=_0x3cf00e;!this[_0x232492(0x4b8)]||this[_0x232492(0x28f)]||(this[_0x232492(0x172)]=Math['max'](this[_0x232492(0x172)],_0x3625b4),this[_0x232492(0x1a3)]&&cancelAnimationFrame(this[_0x232492(0x1a3)]),this[_0x232492(0x1a3)]=0x0,this[_0x232492(0x171)]());}[_0x3cf00e(0x171)]=()=>{const _0x4c119c=_0x3cf00e;this['frameRequest']=0x0;let _0x518277=this[_0x4c119c(0x2d0)];if(!(!_0x518277||!this[_0x4c119c(0x4b8)]||this[_0x4c119c(0x28f)]))try{_0x518277['resize']();let _0x47df8f=_0x518277['statistics']['submittedFrameCount'];_0x518277[_0x4c119c(0x22b)](),_0x518277[_0x4c119c(0x246)][_0x4c119c(0x334)]>_0x47df8f&&(this[_0x4c119c(0x3b1)]=this[_0x4c119c(0x22c)](),this['framesRemaining']=Math[_0x4c119c(0x181)](0x0,this[_0x4c119c(0x172)]-0x1));let _0x52b469=_0x518277[_0x4c119c(0x246)];(_0x52b469['pendingBrickCount']>0x0||_0x52b469['uploadedBrickCount']<_0x52b469['logicalBrickCount']||this[_0x4c119c(0x172)]>0x0)&&(this[_0x4c119c(0x1a3)]=requestAnimationFrame(this['renderFrame']));}catch(_0x45865f){this[_0x4c119c(0x4aa)]?.(_0x416ce7(_0x45865f));}};[_0x3cf00e(0x468)](_0x25e7c3){const _0x15af21=_0x3cf00e;let _0x250364=_0x25e7c3[_0x15af21(0x388)];if(!_0x250364)throw Error(_0x15af21(0x3ea));let _0x2219ed=document[_0x15af21(0x262)](_0x15af21(0x3b3));return _0x2219ed[_0x15af21(0x2b6)][_0x15af21(0x1f9)]=_0x15af21(0x3a3),_0x2219ed[_0x15af21(0x2b6)][_0x15af21(0x31f)]='0',_0x2219ed[_0x15af21(0x2b6)][_0x15af21(0x362)]=_0x15af21(0x1d9),_0x2219ed[_0x15af21(0x2b6)][_0x15af21(0x488)]=_0x15af21(0x1d9),_0x2219ed[_0x15af21(0x2b6)][_0x15af21(0x428)]='none',_0x2219ed[_0x15af21(0x2b6)]['display']=this[_0x15af21(0x4b8)]?'block':_0x15af21(0x392),_0x2219ed[_0x15af21(0x2b6)][_0x15af21(0x386)]='1',_0x250364['append'](_0x2219ed),_0x2219ed;}['createCameraSignature'](_0x44e4e1){const _0x5dbb82=_0x3cf00e;return[_0x44e4e1['positionWC']['x'],_0x44e4e1['positionWC']['y'],_0x44e4e1[_0x5dbb82(0x384)]['z'],_0x44e4e1[_0x5dbb82(0x446)]['x'],_0x44e4e1['directionWC']['y'],_0x44e4e1[_0x5dbb82(0x446)]['z'],_0x44e4e1[_0x5dbb82(0x4c4)]['x'],_0x44e4e1[_0x5dbb82(0x4c4)]['y'],_0x44e4e1['upWC']['z'],_0x44e4e1['frustum'][_0x5dbb82(0x1cd)]??_0x44e4e1[_0x5dbb82(0x2e5)][_0x5dbb82(0x4a1)]??0x0,_0x44e4e1[_0x5dbb82(0x2e5)][_0x5dbb82(0x339)],_0x44e4e1['frustum'][_0x5dbb82(0x267)]][_0x5dbb82(0x4bc)](_0x38cbd4=>_0x38cbd4[_0x5dbb82(0x42f)](0xa))[_0x5dbb82(0x2e6)]('|');}[_0x3cf00e(0x436)](){const _0x4d044a=_0x3cf00e;window[_0x4d044a(0x216)](this['cameraEndTimer']),this[_0x4d044a(0x224)]=window['setTimeout'](this[_0x4d044a(0x4c7)][_0x4d044a(0x4ad)](this),0xc8);}['beginCameraInteraction'](){const _0x50c11f=_0x3cf00e;this[_0x50c11f(0x390)]||(this[_0x50c11f(0x390)]=!0x0,this[_0x50c11f(0x2d0)]?.[_0x50c11f(0x4c5)](_0x50c11f(0x48c))),this[_0x50c11f(0x436)]();}[_0x3cf00e(0x23e)](){const _0x17a8b4=_0x3cf00e;if(this[_0x17a8b4(0x471)](),!this[_0x17a8b4(0x2d0)])throw Error(_0x17a8b4(0x33a));return this[_0x17a8b4(0x2d0)];}[_0x3cf00e(0x471)](){const _0x500f2e=_0x3cf00e;if(this[_0x500f2e(0x28f)])throw Error('A\x20destroyed\x20Mars3D\x20volume\x20layer\x20cannot\x20be\x20used.\x20已销毁的\x20Mars3D\x20体积层不能继续使用。');}};let _0x5ac031=new WeakMap(),_0x31f2cf=_0xb4bad1=>{const _0x349022=_0x3cf00e;let _0x4e066d=_0x5ac031[_0x349022(0x226)](_0xb4bad1);if(_0x4e066d)return _0x4e066d;let _0x14e124=_0xb4bad1[_0x349022(0x3c6)][_0x349022(0x4a5)];class _0x38afd0 extends _0x14e124{[_0x349022(0x28c)];[_0x349022(0x457)]=null;['readyResolve']=null;[_0x349022(0x2e3)]=null;[_0x349022(0x2f7)]=new Promise((resolve,reject)=>{const _0x185ea8=_0x349022;this[_0x185ea8(0x1d6)]=resolve,this[_0x185ea8(0x2e3)]=reject;});constructor(_0x3697f3){const _0x272fed=_0x349022;super({..._0x3697f3}),this[_0x272fed(0x28c)]={..._0x3697f3};}get['statistics'](){const _0x434258=_0x349022;return this[_0x434258(0x457)]?.[_0x434258(0x246)]??null;}get[_0x349022(0x240)](){const _0x535118=_0x349022;return this['renderer']?.[_0x535118(0x240)]??[];}[_0x349022(0x176)](_0x48a7da){const _0xd2507c=_0x349022;this[_0xd2507c(0x457)]?.[_0xd2507c(0x176)](_0x48a7da);}[_0x349022(0x178)](_0x27f0fb){const _0x3b288d=_0x349022;this[_0x3b288d(0x28c)][_0x3b288d(0x20e)]=_0x27f0fb,this[_0x3b288d(0x387)]()['setSource'](_0x27f0fb);}[_0x349022(0x1ca)](_0x4f8c3c){const _0x1d93ed=_0x349022;this[_0x1d93ed(0x387)]()[_0x1d93ed(0x1ca)](_0x4f8c3c);}[_0x349022(0x412)](_0x4fbd2b){const _0x431ed3=_0x349022;this[_0x431ed3(0x387)]()[_0x431ed3(0x412)](_0x4fbd2b);}[_0x349022(0x2a6)](_0x1d4d80,_0x4f9e64){const _0x50ddd4=_0x349022;return this[_0x50ddd4(0x387)]()[_0x50ddd4(0x2a6)](_0x1d4d80,_0x4f9e64);}['updateSlice'](_0x2116be,_0x16e1bf){const _0x22d089=_0x349022;this[_0x22d089(0x387)]()[_0x22d089(0x38e)](_0x2116be,_0x16e1bf);}['removeSlice'](_0x2ac4e6){const _0x2d08e6=_0x349022;this[_0x2d08e6(0x387)]()[_0x2d08e6(0x33e)](_0x2ac4e6);}[_0x349022(0x293)](){const _0x4cc93b=_0x349022;this[_0x4cc93b(0x387)]()[_0x4cc93b(0x293)]();}['_mountedHook'](){}['_addedHook'](){const _0x2401c5=_0x349022;if(!this[_0x2401c5(0x4a7)])throw Error('Mars3D\x20volume\x20layer\x20is\x20not\x20attached\x20to\x20a\x20map.\x20Mars3D\x20体积层尚未关联地图。');this[_0x2401c5(0x457)]?.['destroy'](),this['renderer']=new _0xdd97f2(this[_0x2401c5(0x4a7)],this[_0x2401c5(0x28c)]),this[_0x2401c5(0x457)][_0x2401c5(0x3aa)](this[_0x2401c5(0x18a)]),this['renderer']['readyPromise'][_0x2401c5(0x453)](()=>this[_0x2401c5(0x1d6)]?.())[_0x2401c5(0x1b8)](_0x4838dd=>this[_0x2401c5(0x2e3)]?.(_0x4838dd));}[_0x349022(0x1c8)](_0x4dda6c){const _0x1274a1=_0x349022;this[_0x1274a1(0x457)]?.[_0x1274a1(0x3aa)](_0x4dda6c);}[_0x349022(0x4b3)](){const _0x522151=_0x349022;this[_0x522151(0x457)]?.[_0x522151(0x32b)](),this[_0x522151(0x457)]=null;}[_0x349022(0x387)](){const _0x34001c=_0x349022;if(!this['renderer'])throw Error('Mars3D\x20volume\x20layer\x20is\x20not\x20added\x20to\x20a\x20map.\x20Mars3D\x20体积层尚未添加到地图。');return this[_0x34001c(0x457)];}}let _0x1ca08e=_0x38afd0;return _0x5ac031[_0x349022(0x466)](_0xb4bad1,_0x1ca08e),_0x1ca08e;};_0x34e394[_0x3cf00e(0x22e)]=(_0x2cbab5,_0x585309)=>new(_0x31f2cf(_0x2cbab5))(_0x585309);}));
|