m4-w-fast 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +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 -2
- package/dist/raster-leaflet/index.js +1 -1
- package/dist/raster-leaflet/index.mjs +2 -2
- package/dist/raster-leaflet/m4-w-raster-leaflet.umd.js +2 -2
- package/dist/raster-mars3d/cesiumRasterPlaneRenderer.js +1 -1
- package/dist/raster-mars3d/cesiumRasterTextureAdapter.js +1 -1
- package/dist/raster-mars3d/index.cjs +2 -2
- package/dist/raster-mars3d/index.js +1 -1
- package/dist/raster-mars3d/index.mjs +2 -2
- package/dist/raster-mars3d/m4-w-raster-mars3d.umd.js +2 -2
- package/dist/raster-mars3d/mars3dRasterImageryProvider.js +1 -1
- package/dist/raster-mars3d/mars3dRasterPlaneLayer.js +1 -1
- package/dist/raster-mars3d/rasterPlaneGeometry.js +1 -1
- package/dist/raster-mars3d/rasterPlaneGridChunks.js +1 -1
- package/dist/raster-mars3d/rasterPlaneMaterial.js +1 -1
- package/dist/raster-overlay/color.js +1 -1
- package/dist/raster-overlay/core.js +1 -1
- package/dist/raster-overlay/index.cjs +2 -2
- package/dist/raster-overlay/index.js +1 -1
- package/dist/raster-overlay/index.mjs +2 -2
- package/dist/raster-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/raster-overlay/leafletLayer.js +1 -1
- package/dist/raster-overlay/m4-w-raster-overlay.umd.js +2 -2
- package/dist/raster-overlay/query.js +1 -1
- package/dist/raster-overlay/rendering/createRasterRenderer.js +1 -1
- package/dist/raster-overlay/rendering/index.js +1 -1
- package/dist/raster-overlay/rendering/rasterRenderState.js +1 -1
- package/dist/raster-overlay/rendering/webgl2RasterRenderer.js +1 -1
- package/dist/raster-overlay/rendering/webgpuRasterRenderer.js +1 -1
- package/dist/raster-rendering/index.cjs +2 -2
- package/dist/raster-rendering/index.js +1 -1
- package/dist/raster-rendering/index.mjs +2 -2
- package/dist/raster-rendering/m4-w-raster-rendering.umd.js +2 -2
- package/dist/raster-rendering/webgpuRasterTileRenderer.js +1 -1
- package/dist/readFile.js +1 -1
- package/dist/rendering/index.js +1 -1
- package/dist/rendering/webgl2/baseWebgl2Renderer.js +1 -1
- package/dist/rendering/webgl2/index.js +1 -1
- package/dist/rendering/webgl2/webgl2CoverageResources.js +1 -1
- package/dist/rendering/webgl2/webgl2VisualizationResources.js +1 -1
- package/dist/rendering/webgpu/baseWebgpuRenderer.js +1 -1
- package/dist/rendering/webgpu/index.js +1 -1
- package/dist/rendering/webgpu/visualizationParams.js +1 -1
- package/dist/rendering/webgpu/visualizationResources.js +1 -1
- package/dist/rendering/webgpu/webgpuCoverageResources.js +1 -1
- package/dist/road-overlay/coordinateTransform.js +1 -1
- package/dist/road-overlay/index.cjs +2 -2
- package/dist/road-overlay/index.js +1 -1
- package/dist/road-overlay/index.mjs +2 -2
- package/dist/road-overlay/leaflet-renderers/createRenderer.js +1 -1
- 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.js +1 -1
- package/dist/road-overlay/rendering/index.js +1 -1
- package/dist/road-overlay/rendering/roadRenderState.js +1 -1
- package/dist/road-overlay/rendering/webgl2RoadRenderer.js +1 -1
- package/dist/road-overlay/rendering/webgpuRoadRenderer.js +1 -1
- package/dist/road-overlay/roadData.js +1 -1
- package/dist/road-overlay/roadGeometry.js +1 -1
- package/dist/road-overlay/roadMesh.js +1 -1
- package/dist/shared/coordinate-shader/webgl2/index.js +1 -1
- package/dist/shared/coordinate-shader/webgpu/index.js +1 -1
- package/dist/shared/map/index.js +1 -1
- package/dist/shared/map/leaflet.js +1 -1
- package/dist/shared/polygon/contains.js +1 -1
- package/dist/shared/polygon/index.js +1 -1
- package/dist/shared/polygon/polygonMesh.js +1 -1
- package/dist/shared/shader/assemble.js +1 -1
- package/dist/shared/visualization/index.js +1 -1
- package/dist/shared/visualization/shader/webgl2/index.js +1 -1
- package/dist/shared/visualization/shader/webgpu/index.js +1 -1
- package/dist/shared/visualization/utils.js +1 -1
- package/dist/volume-data/index.cjs +1 -0
- package/dist/volume-data/index.d.ts +5 -0
- package/dist/volume-data/index.js +1 -0
- package/dist/volume-data/index.mjs +1 -0
- package/dist/volume-data/input.d.ts +2 -0
- package/dist/volume-data/input.js +1 -0
- package/dist/volume-data/loadVolumeSource.d.ts +2 -0
- package/dist/volume-data/loadVolumeSource.js +1 -0
- package/dist/volume-data/m4-w-volume-data.umd.js +1 -0
- package/dist/volume-data/parserRegistry.d.ts +5 -0
- package/dist/volume-data/parserRegistry.js +1 -0
- package/dist/volume-data/radarGridVolumeMetadata.d.ts +2 -0
- package/dist/volume-data/radarGridVolumeMetadata.js +1 -0
- package/dist/volume-data/radarGridVolumeParser.d.ts +2 -0
- package/dist/volume-data/radarGridVolumeParser.js +1 -0
- package/dist/volume-data/radarGridVolumeSource.d.ts +3 -0
- package/dist/volume-data/radarGridVolumeSource.js +1 -0
- package/dist/volume-data/volumeDataError.d.ts +5 -0
- package/dist/volume-data/volumeDataError.js +1 -0
- package/dist/volume-data/volumeDataTypes.d.ts +54 -0
- package/dist/volume-data/volumeDataTypes.js +1 -0
- package/dist/volume-data/zipArchive.d.ts +6 -0
- package/dist/volume-data/zipArchive.js +1 -0
- package/dist/volume-mars3d/createMars3dVolumeScene.js +1 -1
- package/dist/volume-mars3d/index.cjs +1 -1
- package/dist/volume-mars3d/index.js +1 -1
- package/dist/volume-mars3d/index.mjs +1 -1
- package/dist/volume-mars3d/m4-w-volume-mars3d.umd.js +1 -1
- package/dist/volume-mars3d/mars3dCanvasCompensation.js +1 -1
- package/dist/volume-mars3d/mars3dRaymarchShader.js +1 -1
- package/dist/volume-mars3d/mars3dVolumeLayer.js +1 -1
- package/dist/volume-mars3d/mars3dVolumeRenderer.js +1 -1
- package/dist/volume-mars3d-native/index.cjs +1 -1
- package/dist/volume-mars3d-native/index.js +1 -1
- package/dist/volume-mars3d-native/index.mjs +1 -1
- package/dist/volume-mars3d-native/liveUpdateScheduler.js +1 -1
- package/dist/volume-mars3d-native/m4-w-volume-mars3d-native.umd.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeSliceLayer.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.js +1 -1
- package/dist/volume-mars3d-native/nativeAxisSliceRenderer.js +1 -1
- package/dist/volume-mars3d-native/nativeSliceAtlas.js +1 -1
- package/dist/volume-mars3d-native/nativeVoxelProvider.js +1 -1
- package/dist/volume-mars3d-native/nativeVoxelShader.js +1 -1
- package/dist/volume-mars3d-native/voxelData.js +1 -1
- package/dist/volume-scene/brickLayout.js +1 -1
- package/dist/volume-scene/brickResidency.js +1 -1
- package/dist/volume-scene/camera.js +1 -1
- package/dist/volume-scene/createVolumeScene.js +1 -1
- package/dist/volume-scene/geographicVolume.js +1 -1
- package/dist/volume-scene/inMemoryVolumeSource.js +1 -1
- package/dist/volume-scene/index.cjs +1 -1
- package/dist/volume-scene/index.js +1 -1
- package/dist/volume-scene/index.mjs +1 -1
- package/dist/volume-scene/m4-w-volume-scene.umd.js +1 -1
- package/dist/volume-scene/matrix.js +1 -1
- package/dist/volume-scene/rendering/webgpu/index.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.js +1 -1
- package/dist/volume-scene/routeProfileMesh.js +1 -1
- package/dist/volume-scene/sliceInteractionController.js +1 -1
- package/dist/volume-scene/sliceMarkerOverlay.js +1 -1
- package/dist/volume-scene/sliceState.js +1 -1
- package/dist/volume-scene/volumeBrickData.js +1 -1
- package/dist/volume-scene/volumeScene.js +1 -1
- package/dist/volume-scene/volumeTransfer.js +1 -1
- package/dist/volume-scene/volumeValidation.js +1 -1
- package/dist/volume-section/createHorizontalRasterGrid.d.ts +3 -0
- package/dist/volume-section/createHorizontalRasterGrid.js +1 -0
- package/dist/volume-section/createVolumeSection.d.ts +3 -0
- package/dist/volume-section/createVolumeSection.js +1 -0
- package/dist/volume-section/createVolumeSectionRasterGrid.d.ts +3 -0
- package/dist/volume-section/createVolumeSectionRasterGrid.js +1 -0
- package/dist/volume-section/createVolumeSectionRouteProfile.d.ts +3 -0
- package/dist/volume-section/createVolumeSectionRouteProfile.js +1 -0
- package/dist/volume-section/geographic.d.ts +3 -0
- package/dist/volume-section/geographic.js +1 -0
- package/dist/volume-section/gridLayerStatistics.d.ts +9 -0
- package/dist/volume-section/gridLayerStatistics.js +1 -0
- package/dist/volume-section/index.cjs +1 -0
- package/dist/volume-section/index.d.ts +8 -0
- package/dist/volume-section/index.js +1 -0
- package/dist/volume-section/index.mjs +1 -0
- package/dist/volume-section/m4-w-volume-section.umd.js +1 -0
- package/dist/volume-section/routeSampling.d.ts +9 -0
- package/dist/volume-section/routeSampling.js +1 -0
- package/dist/volume-section/volumeSectionTypes.d.ts +39 -0
- package/dist/volume-section/volumeSectionTypes.js +1 -0
- package/package.json +58 -12
|
@@ -1 +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);}));
|
|
1
|
+
function _0x341a(_0x5dcc22,_0x301205){const _0xc969bf=_0xc969();return _0x341a=function(_0x341aa8,_0x3fbd22){_0x341aa8=_0x341aa8-0x95;let _0x1787da=_0xc969bf[_0x341aa8];return _0x1787da;},_0x341a(_0x5dcc22,_0x301205);}function _0xc969(){const _0x206fc8=['bindSliceInteraction','overlaySlicePipeline','pointerdown','bytesPerRow','end','resourceRebuildCount','8tagImI','destroyResources','split','\x20的\x20path\x20包含非有限坐标。','pointerleave','memoryHardLimitBytes','setFrameAvailableCallback','setSource','syncPreview','\x20至少需要两个高度层。','.\x20WebGPU\x20体积设备已丢失。','logicalBrickCount','updateAutoQuality','createCurrentCompensationFrame','Volume\x20opacity\x20stop\x20values\x20must\x20be\x20finite\x20and\x20strictly\x20increasing.\x20体积透明度节点值必须有限且严格递增。','transferBindGroup','getProfileResources','next','Maximum\x20locked\x20slice\x20count\x20is\x20','extent','coreRange','The\x20maximum\x20locked\x20slice\x20count\x20has\x20been\x20reached.\x20已达到最大锁定切面数量。','load','formatPosition','validation','pointer','pendingBrickUploads','删除切面','render','volume\x20atlas\x20clear\x20pass','isInteracting','getStepLength','slotCount','createView','3159180eZZtTH','WebGPU\x20volume\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积绑定布局不可用。','createSliceState','相机裁剪距离必须满足\x200\x20<=\x20near\x20<\x20far。','direction','sceneSlicePipeline','coordinateSystem','uploadGeneration','atlasCapacity','setState','Volume\x20chunk\x20','getSliceResources','max','The\x20current\x20WebGPU\x20volume\x20atlas\x20requires\x20halo:\x201.\x20当前\x20WebGPU\x20体积图集要求\x20halo\x20为\x201。','positionCartographic','encodeVolumePass','key','ready','setVertexBuffer','maximumUploadBatchBytes','idle','positions','createCommandEncoder','Volume\x20X\x20axis','brickScheduleCount','replace','cameraPosition','getVolumeBindGroupLayout','mapAsync','uniformUpdateCount','requestBrickSchedule','_showHook','preventDefault','line-list','onInteractionStart','\x20must\x20be\x20a\x20positive\x20integer.\x20','\x20必须是非负有限数值。','_map','memoryLimitBytes','getFrame','\x20must\x20be\x20a\x20positive\x20integer.\x20体积分块\x20','destroyBuffers','bindSliceState','beginCameraInteraction','Volume\x20brick\x20halo\x20must\x20be\x20a\x20positive\x20integer.\x20体积分块\x20halo\x20必须是正整数。','READ','tan','相机宽高比必须大于\x200。','beginLockedSliceDrag','mars3d\x20volume\x20shell\x20raymarch\x20shader','read-only-storage','\x20\x20\x20\x20var\x20interval\x20=\x20intersectClipBox(nearModel,\x20direction);','logicalIndex','toLowerCase','enqueueBrickUpload','Volume\x20slice\x20ID\x20','FRAGMENT','WebGPU\x20volume\x20atlas\x20is\x20not\x20configured.\x20WebGPU\x20体积图集尚未配置。','zAxis','prototype','maximumDistance','count','floor','handlePointerUp','lastFrameTimeMilliseconds','destroyed','getUploadStagingBuffer','getAttachments','findIndex','counts','fovYDegrees','framesRemaining','colorStops','sliceResources','WebGPU\x20axis\x20resources\x20are\x20unavailable.\x20WebGPU\x20轴线资源不可用。','profileResources','readyReject','volume\x20raymarch\x20shader','uploadPump','handlePreRender','clearCameraFrameCompensation','sqrt','Scene\x20mesh\x20','colorBuffer','\x20is\x20duplicated.\x20体积切面\x20ID\x20重复。','map','atan2','upWC','scheduleUploadPump','asin','verticalScale\x20must\x20be\x20a\x20positive\x20finite\x20value.\x20verticalScale\x20必须是大于\x200\x20的有限数。','volume\x20atlas\x20clear\x20pipeline','cartesian','vertices','bind','getTransferResources','pendingKeys','Volume\x20timeIndex\x20is\x20out\x20of\x20range:\x20','upload','createRenderPipeline','quality','uploadStagingBufferSize','\x20必须是正有限数值。','cachedAxes','isSafeInteger','Volume\x20chunk\x20range\x20exceeds\x20source\x20dimensions.\x20体积分块范围超出源数据尺寸。','shown','Invalid\x20logical\x20volume\x20brick\x20index:\x20','byteLength','interactionElement','update','normalizationMeters','r32float','renderer','far','Volume\x20Z\x20axis','pendingSliceSnapshot','volume-axes','矩阵不可逆。','function','centerEcef','opacityValuesBuffer','minimumPitch','whiteSpace','atlasViews','encodeOverlayPass','scheduleBricks','draw','WebGPU\x20volume\x20memory\x20limits\x20must\x20be\x20positive.\x20WebGPU\x20体积显存限制必须大于零。','setTimeIndex','layout','updatePreview','div','show','snapshot','autoQuality','Volume\x20revision\x20must\x20be\x20a\x20non-negative\x20integer.\x20体积\x20revision\x20必须是非负整数。','performance','writeBuffer','volume\x20scene\x20mesh\x20','step','transferBindGroupLayout','camera','\x20noData\x20必须是有限数值或\x20NaN。','queue','backend','pushErrorScope','bgra8unorm','handlePointerMove','prepareBrickUpload','volume\x20slice\x20shader','volumeDimFactor\x20必须位于\x200\x20到\x201。','includes','interactionStepScale','click','fovy','flushSliceState','Volume\x20Y\x20axis','colorInputs','skippedSampleCount','4343460QvEtIb','setPointerCapture','个色标范围的\x20min\x20必须小于\x20max','filter','semiMinorAxisScaled','dispatchWorkgroups','volume\x20scene\x20bind\x20group\x20layout','getEffectiveRenderScale','getEffectiveQuality','volume\x20raymarch\x20pass','WebGPU\x20transfer\x20resources\x20are\x20unavailable.\x20WebGPU\x20传递函数资源不可用。','encodeScenePass','verticalScale','lockSlice','.\x20WebGPU\x20体积帧读取失败。','color','minY','A\x20destroyed\x20WebGPU\x20volume\x20renderer\x20cannot\x20be\x20initialized\x20again.\x20已销毁的\x20WebGPU\x20体积渲染器不能再次初始化。','WebGPU\x20volume\x20atlas\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积图集布局不可用。','cachedProfiles','不支持的\x20rgb\x20颜色格式:\x20','initializing','timeIndex','Volume\x20valueScale\x20must\x20be\x20finite.\x20体积\x20valueScale\x20必须是有限数值。','COPY_DST','setBindGroup','sort','activeInteractions','inverseViewProjection','Volume\x20brick\x20','requireRenderer','touch','set','切面轴端点必须是有限数。','main','sourceYStart','fn\x20getPageIndex','rejectPendingBrickUploads','AbortError','addEventListener','handlePointerDown','handleFrameAvailable','button','setProjectionType','WebGPU\x20volume\x20format\x20is\x20not\x20initialized.\x20WebGPU\x20体积格式尚未初始化。','scene','volume\x20opacity\x20stop\x20alphas','stepLength','showDebugGeometry','setRouteProfiles','minimumPitchDegrees','drawMeshes','brickWidth','lastSubmittedFrameTimestamp','getTransferBindGroupLayout','Volume\x20chunk\x20requires\x20','fov','lockPreview','onSlicesChange','defineProperty','brickSortCount','minZ','hideAllMarkers','borderRadius','bufferOffset','pointercancel','processBrickUploads','相机宽高比必须是大于\x200\x20的有限数。','message','.\x20体积逻辑砖块索引无效。','modelMatrix','clear','Volume\x20color\x20and\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积颜色和透明度色标不能为空。','residentBrickCount','cameraEndTimer','unsubscribe','sin','cos','getSliceBindGroupLayout','3965969qQzMWZ','distance','minX','\x20noData\x20must\x20be\x20finite\x20or\x20NaN.\x20','navigationMode','shift','chunk','border','volumeOptions','pixelRatioCap','start','RGB\x20颜色通道必须在\x200\x20~\x20255\x20之间','translate(-50%,\x20-100%)','dolly','clientHeight','cameraFrameCompensation','brickHeight','hitRadius','nextId','Alpha\x20颜色通道必须在0\x20~\x201之间','uploadedBrickCount','volume\x20scene\x20params','format','requestDevice','xAxis','setSliceTool','getFormat','pointerup','frameAvailableCallback','cameraMoving','listeners','store','value','5523912IIdULj','volume\x20scene\x20mesh\x20shader','near','Geographic\x20WGS84\x20volume\x20scenes\x20manage\x20their\x20own\x20model\x20transform.\x20WGS84\x20地理体积场景自行管理模型变换。','options','getPreferredCanvasFormat','slices','sliceDepthMode','desiredKeys','range','depthTexture','getBoundingClientRect','.\x20体积分块\x20','volume\x20metadata\x20params','M4WVolumeMars3d','smooth','cameraSignature','abs','zoomSpeed','anchorDistance','block','configureSourceResources','now','1px\x20solid\x20rgb(255\x20255\x20255\x20/\x2065%)','maxZ','directionWC','\x20values\x20but\x20received\x20','setTransfer','resetBrickRequests','maxBufferSize','路线剖面\x20','rebuildProfiles','requestAdapter','auto','createCanvas','noData','WebGPU\x20scene\x20attachments\x20are\x20unavailable.\x20WebGPU\x20场景附件不可用。','positionWC','finish','createBindGroup','\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}','getInteractionKind','endsWith','unmap','beginInteraction','Volume\x20color\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积颜色色标必须按数值升序排列。','transparent','volumeBindGroupLayout','shape','releasePointerCapture','Volume','syncLockedMarkers','zIndex','\x20的\x20path\x20必须包含至少两个\x20[x,\x20z]\x20点。','切面轴采样数必须是正整数。','createBindGroupLayout','cameraState','viewProjectionMatrix','always-visible','popErrorScope','volume\x20scene\x20geometry\x20pass','removeEventListener','preRender','type','createTexture','locked','sceneBindGroupLayout','top','maxTextureDimension3D','volumeDimFactor','WebGPU\x20volume\x20bricks\x20require\x20halo\x201.\x20WebGPU\x20体积砖块要求\x20halo\x20为\x201。','length','orthographic','beginComputePass','wgs84','MAP_WRITE','relative','display','colorStops\x20不能为空','renderFrame','previousAxis','adapter','assertAlive','Height\x20/\x20高度','lifecycleState','abort','slicePlateColor','xStart','some','geometryBindGroup','longitudeRadians','target','configure','\x20requires\x20','frameRequest','startY','pointermove','Volume\x20opacity\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积透明度色标必须按数值升序排列。','\x20with\x20one\x20sample\x20must\x20use\x20equal\x20endpoints.\x20','onSubmittedWorkDone','opacityBuffer','.\x20体积分块数值数量与尺寸不一致。','volume\x20frame\x20readback','getContext','countZ','hypot','volume\x20frame\x20capture','axes','Geographic\x20volume\x20normalization\x20must\x20be\x20a\x20positive\x20finite\x20distance.\x20地理体积归一化尺度必须是正有限距离。','atlasIndex','eventDisposers','createResource','depth','handlePointerLeave','Count','worldAnchors','flushBrickSchedule','subscribe','font','origin','394457lyfKFd','clipMinimum','volume\x20transfer\x20bind\x20group','maxX','find','volumePipeline','slotCountY','opacity','volume\x20slice\x20bind\x20group\x20layout','densityScale','bindFrameAvailableCallback','WebGPU\x20volume\x20resources\x20were\x20released.\x20WebGPU\x20体积资源已释放。','atlas','mars3d\x20volume\x20shell\x20raymarch\x20pipeline','_mountedHook','pan','plateColor','heights','exports','Module','gap','frustum','trim','error','sourceYCount','readyResolve','contextmenu','path','flex','captureFrame','webgpu','ceil','fragmentMain','slotCountX','volumeCamera','indices','descriptors','onError','volume\x20atlas\x20clear\x20shader','releaseGpuResources','buffer','volume-bounds','\x20的\x20heights\x20包含非有限高度。','keys','viewportHeight','then','verticalScale\x20必须是大于\x200\x20的有限数。','lost','slotIndex','createCameraSignature','vertexMain','occupied','size','\x20position\x20must\x20be\x20normalized\x20to\x20zero\x20through\x20one.\x20体积切面位置必须归一化到零至一。','正交相机高度必须大于\x200。','displayedCompensationFrame','float32x3','values','metadata','setAspect','grab','splice','canvas','Volume\x20opacity\x20stops\x20must\x20be\x20between\x20zero\x20and\x20one.\x20体积透明度色标必须位于零到一之间。','\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','hitTolerance','writeParams','18850vtxkUS','onInteractionEnd','mouse','attachments','axis','createGpuResources','lastUsedFrame','createProjectionCamera','triangle-list','perspective','volumeMetadata','readRange','get','autoFrameCount','aspect','managed','sceneParamsBuffer','writeVolumeParams','isInteger','preview','axisHysteresis','getPageTableBuffer','depthView','COPY_SRC','volume\x20geometry\x20bind\x20group\x20layout','volume\x20brick\x20upload\x20batch\x20flush','setAxes','colorValuesBuffer','WebGPU\x20transfer\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20传递函数绑定布局不可用。','createShaderModule','device','clientWidth','autoFrameIntervalTotal','reject','delete','个色标范围不能是NaN','Failed\x20to\x20acquire\x20a\x20WebGPU\x20adapter\x20for\x20the\x20volume\x20scene.\x20无法为体积场景获取\x20WebGPU\x20adapter。','encodePreparedBrickUpload','brickDepth','revision','frameInFlight','setCamera','writePageEntry','catch','amd','absolute','requestFrames','axisResources','updateLockedSlice','add','atlasLayout','uploadBatchCount','WebGPU\x20slice\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20切面绑定布局不可用。','levelStart','pointerEvents','startsWith','sliceState','lockedSlices','transform','userSelect','latitudeRadians','requestControllers','external','markers','透视相机参数无效。','watchDeviceLost','atlasTextures','pendingBrickCount','\x20轴必须包含两个不同的有限端点。','source','statistics','\x20endpoints\x20must\x20be\x20finite.\x20','initialized','不支持的\x20hex\x20颜色格式:\x20','layer','baseModelMatrix','initializationGeneration','rgb(17\x2024\x2039\x20/\x2082%)','signal','setShow','submittedFrameCount','pointerId','touchBricks','initialize','requireScene','\x20with\x20multiple\x20samples\x20must\x20have\x20a\x20non-zero\x20step.\x20','high-performance','xCount','countX','scheduleCameraMoveEnd','recreateSceneBindGroup','clearPageEntry','toolMode','setPipeline','opacityStops','textContent','volume\x20color\x20stop\x20values','colorStopCount','profiles','798656WhFGAl','clearPreview','\x20is\x20invalid:\x20','WebGPU\x20scene\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20场景绑定布局不可用。','timeCount','setSlices','WebGPU\x20volume\x20context\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20context\x20尚未初始化。','volume\x20atlas\x20clear\x20bind\x20group','slotCountZ','volume\x20brick\x20reusable\x20upload\x20staging','createLayout','volume\x20scene\x20bind\x20group','uploadStagingBuffer','updateTransferResources','createLockedMarker','setProfiles','positionMarker','clearTimeout','4px','RENDER_ATTACHMENT','submit','createComputePipeline','notify','volumeParamsBuffer','geographic-wgs84','padding','stopPropagation','countY','uniform','volume\x20transfer\x20bind\x20group\x20layout','style','colorMode','Returned\x20volume\x20chunk\x20range\x20does\x20not\x20match\x20the\x20request.\x20返回体积分块范围与请求不一致。','geometryBindGroupLayout','Returned\x20volume\x20chunk\x20dimensions\x20do\x20not\x20match\x20its\x20range.\x20返回体积分块尺寸与范围不一致。','subarray','Volume\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积透明度节点不能为空。','generation','axisDefinitions','moved','projection','coordinate','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','requestRender','cacheBrickUpload','slice','background','inset','createTextNode','levelCount','viewportWidth','kind','viewProjection','Volume\x20brick\x20coordinate\x20is\x20out\x20of\x20range.\x20体积分块坐标越界。','finishCameraInteraction','entries','Mars3D\x20map\x20canvas\x20must\x20have\x20a\x20parent\x20element.\x20Mars3D\x20地图\x20Canvas\x20必须存在父元素。','memoryTargetBytes','valueScale','centerEcefScaled','clientX','maxLockedSlices','STORAGE_BINDING','balanced','left','applyCameraFrameCompensation','getAtlasTexture','\x20只有一个采样点时端点必须相等。','interactionController','inverseModelMatrix','createPipelineLayout','resolve','readyPromise','无法归一化长度为零的三维向量。','getGeometryBindGroupLayout','overlayContainer','Volume\x20opacity\x20must\x20be\x20within\x20[0,\x201].\x20体积透明度必须位于\x20[0,\x201]。','touchAction','transferResources','element','Volume\x20brick\x20upload\x20became\x20stale.\x20体积砖上传已过期。','copyTextureToBuffer','proxyModelMatrix','container','remove','lastTimingFrameTimestamp','cursor','matrices','overlayTrianglePipeline','WebGPU\x20scene\x20depth\x20attachment\x20is\x20not\x20initialized.\x20WebGPU\x20场景深度附件尚未初始化。','正交相机高度和宽高比必须大于\x200。','\x20必须是大于\x200\x20的有限数。','volume\x20geometry\x20bind\x20group','STORAGE','mode','Volume\x20slice\x20','removeSlice','MAP_READ','create','acquireSlot','onSliceError','applyHit','interactionRenderScale','createBuffer','brickScheduleDirty','handleResize','uploadBrick','\x20端点必须是有限数值。','firstChild','depthMode','readChunk','depth32float','capacity','actualFrameIntervalMilliseconds','WebGPU\x20volume\x20page\x20table\x20exceeds\x20the\x20configured\x20memory\x20limit.\x20WebGPU\x20体积页表超过显存限制。','visible','requestFramesImmediately','isFinite','none','sliceInteraction','isNaN','maximum','volume\x20brick\x20atlas\x20','clipBox','120OvqAuL','Mars3D\x20volume\x20layer\x20is\x20not\x20ready;\x20await\x20readyPromise\x20first.\x20Mars3D\x20体积层尚未就绪,请先等待\x20readyPromise。','findAxisHit','beginRenderPass','volume\x20always\x20visible\x20pass','renderMode','every','sliceBindGroupLayout','sceneBindGroup','yAxis','WebGPU\x20volume\x20atlas\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积图集资源不完整。','透视相机视场角必须位于\x200\x20到\x20180\x20度之间。','Returned\x20volume\x20chunk\x20timeIndex\x20does\x20not\x20match\x20the\x20request.\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','rgb\x20颜色通道数量不正确:\x20','getAxisResources','syncCamera','Mars3D\x20volume\x20shader\x20marker\x20is\x20missing\x20or\x20duplicated:\x20','finally','geographicTransform','from','one','rowsPerImage','parseInt','WebGPU\x20slice\x20resources\x20are\x20unavailable.\x20WebGPU\x20切面资源不可用。','Volume\x20source\x20must\x20provide\x20readChunk().\x20体积数据源必须提供\x20readChunk()。','WebGPU\x20scene\x20params\x20buffer\x20is\x20unavailable.\x20WebGPU\x20场景参数\x20Buffer\x20不可用。','bindGroup','resources','getVolumeParamsBuffer','sceneDepthView','center','updateSlice','resize','renderScale','composite','context','round','markerOverlay','loadBrick','object','residentBySlotIndex','previewMarker','maxLockedSlices\x20必须是正整数。','\x20count','toFixed','screenAnchors','unfilterable-float','clearLockedSlices','getAtlas','cachedBricks','limits','clientY','one-minus-src-alpha','exp','loadedKeys','.\x20创建\x20WebGPU\x20体积管线失败。','WebGPU\x20is\x20required\x20for\x20the\x20volume\x20scene\x20but\x20is\x20unavailable.\x20体积场景需要\x20WebGPU,但当前环境不可用。','has','clipMaximum','halo','destroy','push','previousContainerPosition','100%','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','sceneTrianglePipeline','float32x4','onLimitReached','frameIndex','Geographic\x20volume\x20proxy\x20bounds\x20are\x20invalid.\x20地理体积代理范围无效。','indexOf','join','fill','prepared','renderDirty','configureModel','startX','Unable\x20to\x20allocate\x20a\x20WebGPU\x20R32F\x20volume\x20atlas\x20within\x20device\x20limits.\x20无法在设备限制内分配\x20WebGPU\x20R32F\x20体积图集。','volume-slice-preview','pendingCompensationFrame','createPipelines','rotateSpeed','createElement','WebGPU\x20geometry\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20几何绑定布局不可用。','\x20的\x20values\x20长度与\x20path、heights\x20不匹配。','byteOffset','maximumPitch','parentElement','WebGPU\x20volume\x20transfer\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积传递函数资源不完整。','createProjectionMatrix','\x20must\x20be\x20a\x20positive\x20finite\x20number.\x20','configureSource','activePointer','nowrap','endInteraction','recordFrameInterval','pageTableBuffer','residentByLogicalIndex','sourceGeneration','volume\x20atlas\x20bind\x20group','cachedSlices','panSpeed','WebGPU\x20volume\x20atlas\x20texture\x20is\x20unavailable.\x20WebGPU\x20体积图集纹理不可用。','currentPreview','handleWindowPointerMove','endY','WebGPU\x20volume\x20device\x20restoration\x20failed.\x20WebGPU\x20体积设备恢复失败。','opacityStopCount','toUpperCase','getCurrentTexture','mixed','WebGPU\x20volume\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积尺寸必须是正整数。','WebGPU\x20volume\x20page\x20table\x20is\x20unavailable.\x20WebGPU\x20体积页表不可用。','WebGPU\x20volume\x20device\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20device\x20尚未初始化。','BYTES_PER_ELEMENT','name','minimumDistance','height','append','UNIFORM','all','setTimeout','less','getDevice','getSceneParamsBuffer','\x20的\x20opacity\x20必须位于\x200\x20到\x201。','minimum','pageTableValues','min','orbit','WebGPU\x20volume\x20canvas\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20Canvas\x20尚未初始化。','setAttribute','semiMajorAxisScaled','相机裁剪距离必须满足\x200\x20<\x20near\x20<\x20far。','position','inherit','\x20必须包含十六个有限数值。','sceneLinePipeline','budgetLimited','getSceneBindGroupLayout','width','volumeBindGroup','state','overlayLinePipeline','drawSlices','VERTEX'];_0xc969=function(){return _0x206fc8;};return _0xc969();}(function(_0x31e9c9,_0x2f4e71){const _0x41c2b8=_0x341a,_0x5e018=_0x31e9c9();while(!![]){try{const _0x12cd4c=-parseInt(_0x41c2b8(0x3ee))/0x1+parseInt(_0x41c2b8(0xcc))/0x2*(-parseInt(_0x41c2b8(0x1ab))/0x3)+-parseInt(_0x41c2b8(0x12f))/0x4+parseInt(_0x41c2b8(0x266))/0x5+parseInt(_0x41c2b8(0x306))/0x6+-parseInt(_0x41c2b8(0x355))/0x7*(parseInt(_0x41c2b8(0x244))/0x8)+parseInt(_0x41c2b8(0x376))/0x9;if(_0x12cd4c===_0x2f4e71)break;else _0x5e018['push'](_0x5e018['shift']());}catch(_0x9188da){_0x5e018['push'](_0x5e018['shift']());}}}(_0xc969,0x696d2),function(_0xadcb4c,_0x311250){const _0x281da2=_0x341a;typeof exports==_0x281da2(0x1d3)&&typeof module<'u'?_0x311250(exports):typeof define==_0x281da2(0x2dd)&&define[_0x281da2(0xf8)]?define([_0x281da2(0x9b)],_0x311250):(_0xadcb4c=typeof globalThis<'u'?globalThis:_0xadcb4c||self,_0x311250(_0xadcb4c[_0x281da2(0x384)]={}));}(this,function(_0x3c68fe){const _0xe1b81f=_0x341a;Object[_0xe1b81f(0x341)](_0x3c68fe,Symbol['toStringTag'],{'value':_0xe1b81f(0x9c)});let _0x2887f7=0x615299,_0x501c05=_0x2887f7*(0x1-0x1/298.257223563),_0x44731f=0x1-_0x501c05**0x2/_0x2887f7**0x2,_0x1c2261=_0x4591c4=>_0x4591c4*Math['PI']/0xb4,_0x1ddb65=(_0x422642,_0x104917,_0x121494)=>{const _0x1dacf1=_0xe1b81f;let _0x177803=Math[_0x1dacf1(0x352)](_0x104917),_0x24fffd=Math[_0x1dacf1(0x353)](_0x104917),_0x462591=Math['sin'](_0x422642),_0x33ebe5=Math['cos'](_0x422642),_0x6afdf3=_0x2887f7/Math[_0x1dacf1(0x2b7)](0x1-_0x44731f*_0x177803*_0x177803);return[(_0x6afdf3+_0x121494)*_0x24fffd*_0x33ebe5,(_0x6afdf3+_0x121494)*_0x24fffd*_0x462591,(_0x6afdf3*(0x1-_0x44731f)+_0x121494)*_0x177803];},_0x5047b5=(_0x8855ff,_0x13b84e,_0x50da30)=>{const _0x3138ed=_0xe1b81f;if(!Number['isFinite'](_0x8855ff)||!Number[_0x3138ed(0x1a4)](_0x13b84e)||_0x8855ff===_0x13b84e)throw Error(_0x50da30+'\x20axis\x20must\x20contain\x20two\x20different\x20finite\x20endpoints.\x20'+_0x50da30+_0x3138ed(0x110));},_0x12cfab=(_0x3d80c2,_0x651072=0x1)=>{const _0x4ca197=_0xe1b81f;let _0x1eac2a=_0x1c2261(_0x3d80c2[_0x4ca197(0x36d)]['start']),_0x56292b=_0x1c2261(_0x3d80c2[_0x4ca197(0x36d)][_0x4ca197(0x242)]),_0xf673cc=_0x1c2261(_0x3d80c2[_0x4ca197(0x2a0)]['start']),_0x3e356f=_0x1c2261(_0x3d80c2['zAxis'][_0x4ca197(0x242)]);_0x5047b5(_0x1eac2a,_0x56292b,'Longitude\x20/\x20经度'),_0x5047b5(_0xf673cc,_0x3e356f,'Latitude\x20/\x20纬度');let _0x1ec8f1=_0x3d80c2[_0x4ca197(0x1b4)][_0x4ca197(0x35f)],_0x983834=_0x3d80c2[_0x4ca197(0x1b4)]['end'];if(_0x5047b5(_0x1ec8f1,_0x983834,_0x4ca197(0x3c9)),!(_0x651072>0x0)||!Number[_0x4ca197(0x1a4)](_0x651072))throw Error(_0x4ca197(0x2c0));let _0x538dbf=_0x1ec8f1+(_0x983834-_0x1ec8f1)*_0x651072,_0x2c31cc=(_0x1eac2a+_0x56292b)/0x2,_0x13783f=(_0xf673cc+_0x3e356f)/0x2,_0x15a95b=_0x1ddb65(_0x2c31cc,_0x13783f,0x0),_0x45ff8b=Math['abs'](_0x56292b-_0x1eac2a)*_0x2887f7*Math['max'](0.01,Math['cos'](_0x13783f)),_0x467408=Math['abs'](_0x3e356f-_0xf673cc)*_0x2887f7,_0x5427da=Math['max'](_0x45ff8b,_0x467408);if(!(_0x5427da>0x0)||!Number['isFinite'](_0x5427da))throw Error(_0x4ca197(0x3e2));let _0x4749ec=[0x1/0x0,0x1/0x0,0x1/0x0],_0x5ca3e4=[-0x1/0x0,-0x1/0x0,-0x1/0x0];for(let _0x118fae=0x0;_0x118fae<=0x8;_0x118fae+=0x1){let _0x20b0cf=_0xf673cc+(_0x3e356f-_0xf673cc)*_0x118fae/0x8;for(let _0x8bd7ab=0x0;_0x8bd7ab<=0x8;_0x8bd7ab+=0x1){let _0x42942c=_0x1eac2a+(_0x56292b-_0x1eac2a)*_0x8bd7ab/0x8;for(let _0x51e2bf of[_0x1ec8f1,_0x538dbf]){let _0x77f58f=_0x1ddb65(_0x42942c,_0x20b0cf,_0x51e2bf);for(let _0x5c083c=0x0;_0x5c083c<0x3;_0x5c083c+=0x1){let _0x58c0d5=(_0x77f58f[_0x5c083c]-_0x15a95b[_0x5c083c])/_0x5427da;_0x4749ec[_0x5c083c]=Math[_0x4ca197(0x22c)](_0x4749ec[_0x5c083c],_0x58c0d5),_0x5ca3e4[_0x5c083c]=Math[_0x4ca197(0x272)](_0x5ca3e4[_0x5c083c],_0x58c0d5);}}}}let _0x47daea=_0x5ca3e4['map']((_0x4252df,_0x18d757)=>_0x4252df-_0x4749ec[_0x18d757]);if(_0x47daea[_0x4ca197(0x3ce)](_0x4bc9ce=>!(_0x4bc9ce>0x0)||!Number[_0x4ca197(0x1a4)](_0x4bc9ce)))throw Error(_0x4ca197(0x1f1));return{'centerEcef':_0x15a95b,'normalizationMeters':_0x5427da,'proxyModelMatrix':[_0x47daea[0x0],0x0,0x0,0x0,0x0,_0x47daea[0x1],0x0,0x0,0x0,0x0,_0x47daea[0x2],0x0,_0x4749ec[0x0],_0x4749ec[0x1],_0x4749ec[0x2],0x1],'transform':{'mode':_0x4ca197(0x3c0),'centerEcefScaled':[_0x15a95b[0x0]/_0x5427da,_0x15a95b[0x1]/_0x5427da,_0x15a95b[0x2]/_0x5427da],'semiMajorAxisScaled':_0x2887f7/_0x5427da,'semiMinorAxisScaled':_0x501c05/_0x5427da,'longitudeRadians':[_0x1eac2a,_0x56292b],'latitudeRadians':[_0xf673cc,_0x3e356f],'heightScaled':[_0x1ec8f1/_0x5427da,_0x538dbf/_0x5427da]}};},_0x267637=(_0x3e28db,_0xd228e2)=>[(_0x3e28db[0x0]-_0xd228e2[_0xe1b81f(0x2de)][0x0])/_0xd228e2['normalizationMeters'],(_0x3e28db[0x1]-_0xd228e2[_0xe1b81f(0x2de)][0x1])/_0xd228e2[_0xe1b81f(0x2d5)],(_0x3e28db[0x2]-_0xd228e2[_0xe1b81f(0x2de)][0x2])/_0xd228e2[_0xe1b81f(0x2d5)]],_0x6c95b8=(_0x126e8b,_0x57ffa5)=>{const _0x47a418=_0xe1b81f;if(!Number[_0x47a418(0xde)](_0x126e8b)||_0x126e8b<=0x0)throw Error(_0x57ffa5+_0x47a418(0x289)+_0x57ffa5+'\x20必须是正整数。');},_0x25a1e2=(_0x1888b9,_0x515da6)=>{const _0x4d5fa0=_0xe1b81f;if(_0x6c95b8(_0x1888b9[_0x4d5fa0(0x2a3)],_0x515da6+_0x4d5fa0(0x1d7)),!Number['isFinite'](_0x1888b9[_0x4d5fa0(0x35f)])||!Number[_0x4d5fa0(0x1a4)](_0x1888b9[_0x4d5fa0(0x242)]))throw Error(_0x515da6+_0x4d5fa0(0x113)+_0x515da6+_0x4d5fa0(0x19a));if(_0x1888b9[_0x4d5fa0(0x2a3)]===0x1&&_0x1888b9[_0x4d5fa0(0x35f)]!==_0x1888b9[_0x4d5fa0(0x242)])throw Error(_0x515da6+_0x4d5fa0(0x3d8)+_0x515da6+_0x4d5fa0(0x172));if(_0x1888b9[_0x4d5fa0(0x2a3)]>0x1&&_0x1888b9[_0x4d5fa0(0x35f)]===_0x1888b9[_0x4d5fa0(0x242)])throw Error(_0x515da6+_0x4d5fa0(0x121)+_0x515da6+'\x20包含多个采样点时步长不能为零。');},_0x1d41d2=(_0x1ce39f,_0x858abf)=>{const _0x5baeb6=_0xe1b81f;if(_0x1ce39f!==void 0x0&&!Number[_0x5baeb6(0x1a4)](_0x1ce39f)&&!Number[_0x5baeb6(0x1a7)](_0x1ce39f))throw Error(_0x858abf+_0x5baeb6(0x358)+_0x858abf+_0x5baeb6(0x2f5));},_0x42b78f=(_0x51a642,_0x173bdc)=>_0x51a642['xStart']===_0x173bdc['xStart']&&_0x51a642[_0xe1b81f(0x123)]===_0x173bdc[_0xe1b81f(0x123)]&&_0x51a642[_0xe1b81f(0x101)]===_0x173bdc[_0xe1b81f(0x101)]&&_0x51a642['levelCount']===_0x173bdc['levelCount']&&_0x51a642[_0xe1b81f(0x329)]===_0x173bdc[_0xe1b81f(0x329)]&&_0x51a642['sourceYCount']===_0x173bdc[_0xe1b81f(0xa1)],_0x19be11=_0x39d5ad=>{const _0xb39009=_0xe1b81f;if(_0x25a1e2(_0x39d5ad[_0xb39009(0x36d)],_0xb39009(0x27d)),_0x25a1e2(_0x39d5ad['yAxis'],_0xb39009(0x303)),_0x25a1e2(_0x39d5ad[_0xb39009(0x2a0)],_0xb39009(0x2d9)),_0x6c95b8(_0x39d5ad[_0xb39009(0x133)],'Volume\x20timeCount'),_0x1d41d2(_0x39d5ad[_0xb39009(0x399)],_0xb39009(0x3a8)),_0x39d5ad['valueScale']!==void 0x0&&!Number[_0xb39009(0x1a4)](_0x39d5ad[_0xb39009(0x169)]))throw Error(_0xb39009(0x31d));if(_0x39d5ad[_0xb39009(0xf3)]!==void 0x0&&(!Number[_0xb39009(0xde)](_0x39d5ad[_0xb39009(0xf3)])||_0x39d5ad[_0xb39009(0xf3)]<0x0))throw Error(_0xb39009(0x2ee));},_0x38c33a=(_0x18ab47,_0x4fce72)=>{const _0x3f521d=_0xe1b81f;if(!Number[_0x3f521d(0xde)](_0x4fce72)||_0x4fce72<0x0||_0x4fce72>=_0x18ab47[_0x3f521d(0x133)])throw Error(_0x3f521d(0x2c7)+_0x4fce72+'.\x20体积时间索引越界。');},_0x2a3921=(_0xe1a02d,_0x3bd5bf)=>{const _0x377749=_0xe1b81f;let _0x31c2d4=[[_0x3bd5bf[_0x377749(0x3cd)],_0x377749(0x3cd)],[_0x3bd5bf[_0x377749(0x123)],_0x377749(0x123)],[_0x3bd5bf[_0x377749(0x101)],'levelStart'],[_0x3bd5bf[_0x377749(0x160)],_0x377749(0x160)],[_0x3bd5bf[_0x377749(0x329)],'sourceYStart'],[_0x3bd5bf[_0x377749(0xa1)],'sourceYCount']];for(let [_0xc829bd,_0x22bd42]of _0x31c2d4)if(!Number['isInteger'](_0xc829bd)||_0xc829bd<0x0||_0x22bd42[_0x377749(0x3a0)](_0x377749(0x3e8))&&_0xc829bd===0x0)throw Error(_0x377749(0x270)+_0x22bd42+_0x377749(0x131)+_0xc829bd+_0x377749(0x382)+_0x22bd42+'\x20无效。');if(_0x3bd5bf[_0x377749(0x3cd)]+_0x3bd5bf['xCount']>_0xe1a02d[_0x377749(0x36d)][_0x377749(0x2a3)]||_0x3bd5bf[_0x377749(0x101)]+_0x3bd5bf[_0x377749(0x160)]>_0xe1a02d['yAxis'][_0x377749(0x2a3)]||_0x3bd5bf[_0x377749(0x329)]+_0x3bd5bf['sourceYCount']>_0xe1a02d['zAxis'][_0x377749(0x2a3)])throw Error(_0x377749(0x2cf));},_0x4e0d0d=(_0x3eda29,_0x26c964,_0x2c316d,_0x4add89)=>{const _0x374626=_0xe1b81f;if(_0x38c33a(_0x3eda29,_0x26c964[_0x374626(0x31c)]),_0x2a3921(_0x3eda29,_0x26c964['range']),_0x4add89!==void 0x0&&_0x26c964['timeIndex']!==_0x4add89)throw Error(_0x374626(0x1b7));if(_0x2c316d&&!_0x42b78f(_0x26c964['range'],_0x2c316d))throw Error(_0x374626(0x14f));if(_0x26c964[_0x374626(0x238)]!==_0x26c964[_0x374626(0x37f)][_0x374626(0x123)]||_0x26c964[_0x374626(0x221)]!==_0x26c964[_0x374626(0x37f)]['levelCount']||_0x26c964[_0x374626(0x3e6)]!==_0x26c964[_0x374626(0x37f)][_0x374626(0xa1)])throw Error(_0x374626(0x151));let _0x3c2218=_0x26c964[_0x374626(0x238)]*_0x26c964[_0x374626(0x221)]*_0x26c964[_0x374626(0x3e6)];if(!Number[_0x374626(0x2ce)](_0x3c2218)||_0x26c964[_0x374626(0xc2)][_0x374626(0x3bd)]!==_0x3c2218)throw Error(_0x374626(0x33d)+_0x3c2218+_0x374626(0x390)+_0x26c964[_0x374626(0xc2)][_0x374626(0x3bd)]+_0x374626(0x3db));},_0x2a33b0=_0x285eb7=>{const _0x395f88=_0xe1b81f;if(!_0x285eb7||typeof _0x285eb7[_0x395f88(0x19d)]!=_0x395f88(0x2dd))throw Error(_0x395f88(0x1c4));_0x19be11(_0x285eb7['metadata']);},_0x539a9d=_0x37aab0=>{const _0x3070fd=_0xe1b81f;for(let [_0x4c3931,_0x1395dc]of[[_0x37aab0[_0x3070fd(0x238)],'width'],[_0x37aab0[_0x3070fd(0x221)],_0x3070fd(0x221)],[_0x37aab0['depth'],_0x3070fd(0x3e6)]])if(!Number[_0x3070fd(0xde)](_0x4c3931)||_0x4c3931<=0x0)throw Error(_0x3070fd(0x323)+_0x1395dc+_0x3070fd(0x28e)+_0x1395dc+'\x20必须是正整数。');if(!Number[_0x3070fd(0xde)](_0x37aab0[_0x3070fd(0x1e7)])||_0x37aab0['halo']<0x1)throw Error(_0x3070fd(0x292));},_0x159251=(_0x34bb99={})=>{const _0x571a5a=_0xe1b81f;let _0x2956ca={'width':_0x34bb99[_0x571a5a(0x238)]??0x100,'height':_0x34bb99[_0x571a5a(0x221)]??0x8,'depth':_0x34bb99[_0x571a5a(0x3e6)]??0x100,'halo':_0x34bb99[_0x571a5a(0x1e7)]??0x1};return _0x539a9d(_0x2956ca),_0x2956ca;},_0x5b653f=(_0x45493d,_0x461368={})=>{const _0x406989=_0xe1b81f;_0x19be11(_0x45493d);let _0x2ee3d5=_0x159251(_0x461368),_0x6d661e=Math[_0x406989(0xa8)](_0x45493d['xAxis'][_0x406989(0x2a3)]/_0x2ee3d5[_0x406989(0x238)]),_0x4912fe=Math[_0x406989(0xa8)](_0x45493d['yAxis']['count']/_0x2ee3d5[_0x406989(0x221)]),_0x5c57f3=Math['ceil'](_0x45493d[_0x406989(0x2a0)]['count']/_0x2ee3d5[_0x406989(0x3e6)]);return{'shape':_0x2ee3d5,'countX':_0x6d661e,'countY':_0x4912fe,'countZ':_0x5c57f3,'brickCount':_0x6d661e*_0x4912fe*_0x5c57f3};},_0xae8afb=_0x1c9dc0=>_0x1c9dc0['x']+':'+_0x1c9dc0['y']+':'+_0x1c9dc0['z'],_0xfa2103=(_0x43f793,_0x12f2a9,_0x4fddac)=>{const _0x15f388=_0xe1b81f;if(!Number[_0x15f388(0xde)](_0x4fddac['x'])||!Number[_0x15f388(0xde)](_0x4fddac['y'])||!Number[_0x15f388(0xde)](_0x4fddac['z'])||_0x4fddac['x']<0x0||_0x4fddac['x']>=_0x12f2a9['countX']||_0x4fddac['y']<0x0||_0x4fddac['y']>=_0x12f2a9[_0x15f388(0x14a)]||_0x4fddac['z']<0x0||_0x4fddac['z']>=_0x12f2a9[_0x15f388(0x3de)])throw Error(_0x15f388(0x164));let _0x12cb65=_0x4fddac['x']*_0x12f2a9['shape'][_0x15f388(0x238)],_0x249bc7=_0x4fddac['y']*_0x12f2a9[_0x15f388(0x3a6)]['height'],_0x1320c1=_0x4fddac['z']*_0x12f2a9[_0x15f388(0x3a6)][_0x15f388(0x3e6)],_0x371435=Math['min'](_0x12f2a9['shape'][_0x15f388(0x238)],_0x43f793[_0x15f388(0x36d)][_0x15f388(0x2a3)]-_0x12cb65),_0x5e7b46=Math[_0x15f388(0x22c)](_0x12f2a9[_0x15f388(0x3a6)][_0x15f388(0x221)],_0x43f793[_0x15f388(0x1b4)]['count']-_0x249bc7),_0xbeb47a=Math[_0x15f388(0x22c)](_0x12f2a9[_0x15f388(0x3a6)][_0x15f388(0x3e6)],_0x43f793['zAxis']['count']-_0x1320c1),_0x4571c9=_0x12f2a9[_0x15f388(0x3a6)][_0x15f388(0x1e7)],_0x15f7c6=Math['max'](0x0,_0x12cb65-_0x4571c9),_0x32d350=Math['max'](0x0,_0x249bc7-_0x4571c9),_0x5b0d7b=Math['max'](0x0,_0x1320c1-_0x4571c9),_0xbf98e7=Math[_0x15f388(0x22c)](_0x43f793[_0x15f388(0x36d)][_0x15f388(0x2a3)],_0x12cb65+_0x371435+_0x4571c9),_0x214494=Math[_0x15f388(0x22c)](_0x43f793[_0x15f388(0x1b4)]['count'],_0x249bc7+_0x5e7b46+_0x4571c9),_0x5b583b=Math['min'](_0x43f793[_0x15f388(0x2a0)][_0x15f388(0x2a3)],_0x1320c1+_0xbeb47a+_0x4571c9),_0x137d9b=_0x12f2a9[_0x15f388(0x3a6)]['width']+_0x4571c9*0x2,_0x544133=_0x12f2a9[_0x15f388(0x3a6)][_0x15f388(0x221)]+_0x4571c9*0x2,_0x92fdc=_0x12f2a9['shape'][_0x15f388(0x3e6)]+_0x4571c9*0x2;return{'key':_0xae8afb(_0x4fddac),'coordinate':_0x4fddac,'coreRange':{'xStart':_0x12cb65,'xCount':_0x371435,'levelStart':_0x249bc7,'levelCount':_0x5e7b46,'sourceYStart':_0x1320c1,'sourceYCount':_0xbeb47a},'readRange':{'xStart':_0x15f7c6,'xCount':_0xbf98e7-_0x15f7c6,'levelStart':_0x32d350,'levelCount':_0x214494-_0x32d350,'sourceYStart':_0x5b0d7b,'sourceYCount':_0x5b583b-_0x5b0d7b},'physicalWidth':_0x137d9b,'physicalHeight':_0x544133,'physicalDepth':_0x92fdc,'byteLength':_0x137d9b*_0x544133*_0x92fdc*Float32Array[_0x15f388(0x21e)]};},_0x441a97=(_0x5b925a,_0x127d13)=>{const _0x40a31b=_0xe1b81f;let _0x52dbba=[];for(let _0x3bf023=0x0;_0x3bf023<_0x127d13[_0x40a31b(0x3de)];_0x3bf023+=0x1)for(let _0x4dad5b=0x0;_0x4dad5b<_0x127d13[_0x40a31b(0x14a)];_0x4dad5b+=0x1)for(let _0x2e7e1f=0x0;_0x2e7e1f<_0x127d13[_0x40a31b(0x124)];_0x2e7e1f+=0x1)_0x52dbba['push'](_0xfa2103(_0x5b925a,_0x127d13,{'x':_0x2e7e1f,'y':_0x4dad5b,'z':_0x3bf023}));return _0x52dbba;},_0x4d63ff=1e-8,_0x3a39e9=()=>new Float32Array(0x10),_0x23ed0f=(_0x46c0ec,_0x39cc93)=>_0x46c0ec[0x0]*_0x39cc93[0x0]+_0x46c0ec[0x1]*_0x39cc93[0x1]+_0x46c0ec[0x2]*_0x39cc93[0x2],_0x2876b4=(_0x34d478,_0x784226)=>[_0x34d478[0x0]-_0x784226[0x0],_0x34d478[0x1]-_0x784226[0x1],_0x34d478[0x2]-_0x784226[0x2]],_0x428a55=(_0x1d1805,_0x1218e1)=>[_0x1d1805[0x1]*_0x1218e1[0x2]-_0x1d1805[0x2]*_0x1218e1[0x1],_0x1d1805[0x2]*_0x1218e1[0x0]-_0x1d1805[0x0]*_0x1218e1[0x2],_0x1d1805[0x0]*_0x1218e1[0x1]-_0x1d1805[0x1]*_0x1218e1[0x0]],_0x4049fa=_0x297f7a=>{const _0xe66601=_0xe1b81f;let _0x440a7f=Math['hypot'](_0x297f7a[0x0],_0x297f7a[0x1],_0x297f7a[0x2]);if(_0x440a7f<=_0x4d63ff)throw Error(_0xe66601(0x178));return[_0x297f7a[0x0]/_0x440a7f,_0x297f7a[0x1]/_0x440a7f,_0x297f7a[0x2]/_0x440a7f];},_0x13bd1d=()=>{let _0x472c21=_0x3a39e9();return _0x472c21[0x0]=0x1,_0x472c21[0x5]=0x1,_0x472c21[0xa]=0x1,_0x472c21[0xf]=0x1,_0x472c21;},_0x15126f=(_0x2e282c,_0x51a4d9)=>{let _0x3c0911=_0x3a39e9();for(let _0x22359f=0x0;_0x22359f<0x4;_0x22359f+=0x1)for(let _0xb79789=0x0;_0xb79789<0x4;_0xb79789+=0x1){let _0x235eac=0x0;for(let _0x38a4ef=0x0;_0x38a4ef<0x4;_0x38a4ef+=0x1)_0x235eac+=_0x2e282c[_0x38a4ef*0x4+_0xb79789]*_0x51a4d9[_0x22359f*0x4+_0x38a4ef];_0x3c0911[_0x22359f*0x4+_0xb79789]=_0x235eac;}return _0x3c0911;},_0x20ecf6=_0x4ae5c3=>{const _0x4923ee=_0xe1b81f;let _0x1bc245=Array['from']({'length':0x4},(_0x444dc0,_0x2d8fac)=>{let _0x1efb36=new Float64Array(0x8);for(let _0x44b4f0=0x0;_0x44b4f0<0x4;_0x44b4f0+=0x1)_0x1efb36[_0x44b4f0]=_0x4ae5c3[_0x44b4f0*0x4+_0x2d8fac];return _0x1efb36[_0x2d8fac+0x4]=0x1,_0x1efb36;});for(let _0x2575d1=0x0;_0x2575d1<0x4;_0x2575d1+=0x1){let _0x5dafb1=_0x2575d1;for(let _0x80a5fa=_0x2575d1+0x1;_0x80a5fa<0x4;_0x80a5fa+=0x1)Math['abs'](_0x1bc245[_0x80a5fa][_0x2575d1])>Math[_0x4923ee(0x387)](_0x1bc245[_0x5dafb1][_0x2575d1])&&(_0x5dafb1=_0x80a5fa);if(Math[_0x4923ee(0x387)](_0x1bc245[_0x5dafb1][_0x2575d1])<=_0x4d63ff)throw Error(_0x4923ee(0x2dc));_0x5dafb1!==_0x2575d1&&([_0x1bc245[_0x2575d1],_0x1bc245[_0x5dafb1]]=[_0x1bc245[_0x5dafb1],_0x1bc245[_0x2575d1]]);let _0x5d2eb7=_0x1bc245[_0x2575d1][_0x2575d1];for(let _0x4707e5=0x0;_0x4707e5<0x8;_0x4707e5+=0x1)_0x1bc245[_0x2575d1][_0x4707e5]/=_0x5d2eb7;for(let _0x523d9b=0x0;_0x523d9b<0x4;_0x523d9b+=0x1){if(_0x523d9b===_0x2575d1)continue;let _0x376eb9=_0x1bc245[_0x523d9b][_0x2575d1];for(let _0x5e1e97=0x0;_0x5e1e97<0x8;_0x5e1e97+=0x1)_0x1bc245[_0x523d9b][_0x5e1e97]-=_0x376eb9*_0x1bc245[_0x2575d1][_0x5e1e97];}}let _0x5972ce=_0x3a39e9();for(let _0x11b09c=0x0;_0x11b09c<0x4;_0x11b09c+=0x1)for(let _0x286832=0x0;_0x286832<0x4;_0x286832+=0x1)_0x5972ce[_0x286832*0x4+_0x11b09c]=_0x1bc245[_0x11b09c][_0x286832+0x4];return _0x5972ce;},_0xda8236=(_0x211216,_0x2f0825,_0xb077a2)=>{let _0x5cfbd9=_0x4049fa(_0x2876b4(_0x211216,_0x2f0825)),_0x3ff6f9=_0x4049fa(_0x428a55(_0xb077a2,_0x5cfbd9)),_0x17b1fb=_0x428a55(_0x5cfbd9,_0x3ff6f9),_0x530297=_0x13bd1d();return _0x530297[0x0]=_0x3ff6f9[0x0],_0x530297[0x1]=_0x17b1fb[0x0],_0x530297[0x2]=_0x5cfbd9[0x0],_0x530297[0x4]=_0x3ff6f9[0x1],_0x530297[0x5]=_0x17b1fb[0x1],_0x530297[0x6]=_0x5cfbd9[0x1],_0x530297[0x8]=_0x3ff6f9[0x2],_0x530297[0x9]=_0x17b1fb[0x2],_0x530297[0xa]=_0x5cfbd9[0x2],_0x530297[0xc]=-_0x23ed0f(_0x3ff6f9,_0x211216),_0x530297[0xd]=-_0x23ed0f(_0x17b1fb,_0x211216),_0x530297[0xe]=-_0x23ed0f(_0x5cfbd9,_0x211216),_0x530297;},_0x29921f=(_0x187a23,_0x5ac653,_0x211bcd,_0x9b16db)=>{const _0x481c14=_0xe1b81f;if(!(_0x187a23>0x0&&_0x187a23<Math['PI']))throw Error(_0x481c14(0x1b6));if(!(_0x5ac653>0x0))throw Error(_0x481c14(0x295));if(!(_0x211bcd>0x0&&_0x9b16db>_0x211bcd))throw Error(_0x481c14(0x231));let _0x18a0e2=0x1/Math[_0x481c14(0x294)](_0x187a23/0x2),_0x42ba4a=_0x3a39e9();return _0x42ba4a[0x0]=_0x18a0e2/_0x5ac653,_0x42ba4a[0x5]=_0x18a0e2,_0x42ba4a[0xa]=_0x9b16db/(_0x211bcd-_0x9b16db),_0x42ba4a[0xb]=-0x1,_0x42ba4a[0xe]=_0x211bcd*_0x9b16db/(_0x211bcd-_0x9b16db),_0x42ba4a;},_0x2308dd=(_0xf264c9,_0x1b114a,_0x4af632,_0x13c755)=>{const _0x4b4fb7=_0xe1b81f;if(!(_0xf264c9>0x0&&_0x1b114a>0x0))throw Error(_0x4b4fb7(0x189));if(!(_0x4af632>=0x0&&_0x13c755>_0x4af632))throw Error(_0x4b4fb7(0x269));let _0x2b2687=_0xf264c9*_0x1b114a,_0x41c72c=_0x13bd1d();return _0x41c72c[0x0]=0x2/_0x2b2687,_0x41c72c[0x5]=0x2/_0xf264c9,_0x41c72c[0xa]=0x1/(_0x4af632-_0x13c755),_0x41c72c[0xe]=_0x4af632/(_0x4af632-_0x13c755),_0x41c72c;},_0x53e907=(_0x2d1e2c,_0x63d3be,_0x31bf50)=>{let _0x54b5e3=_0x13bd1d();return _0x54b5e3[0x0]=_0x2d1e2c,_0x54b5e3[0x5]=_0x63d3be,_0x54b5e3[0xa]=_0x31bf50,_0x54b5e3;},_0x2c52f2=(_0x3d6aad,_0x54756e)=>{const _0x2b136e=_0xe1b81f;if(!(_0x54756e>0x0)||!Number['isFinite'](_0x54756e))throw Error(_0x2b136e(0xb7));let _0x53f0df=_0x53e907(0x1,_0x54756e,0x1);return _0x3d6aad?_0x15126f(_0x3d6aad,_0x53f0df):_0x53f0df;},_0x400f39=(_0x14518c,_0x355db7,_0x291ef4=0x1)=>[_0x14518c[0x0]*_0x355db7[0x0]+_0x14518c[0x4]*_0x355db7[0x1]+_0x14518c[0x8]*_0x355db7[0x2]+_0x14518c[0xc]*_0x291ef4,_0x14518c[0x1]*_0x355db7[0x0]+_0x14518c[0x5]*_0x355db7[0x1]+_0x14518c[0x9]*_0x355db7[0x2]+_0x14518c[0xd]*_0x291ef4,_0x14518c[0x2]*_0x355db7[0x0]+_0x14518c[0x6]*_0x355db7[0x1]+_0x14518c[0xa]*_0x355db7[0x2]+_0x14518c[0xe]*_0x291ef4,_0x14518c[0x3]*_0x355db7[0x0]+_0x14518c[0x7]*_0x355db7[0x1]+_0x14518c[0xb]*_0x355db7[0x2]+_0x14518c[0xf]*_0x291ef4],_0x36debe=(_0x2e2c1b,_0x2308a6,_0x4cdf78,_0x358ace)=>{let _0x25bb46=_0x400f39(_0x2e2c1b,_0x2308a6);if(_0x25bb46[0x3]<=_0x4d63ff)return null;let _0x524526=0x1/_0x25bb46[0x3];return[(_0x25bb46[0x0]*_0x524526*0.5+0.5)*_0x4cdf78,(0.5-_0x25bb46[0x1]*_0x524526*0.5)*_0x358ace,_0x25bb46[0x2]*_0x524526];},_0xbd7d36=[0x0,0x1,0x2],_0x27f079=[0x0,0x0,0x0],_0x5d222d=[0x0,0x1,0x0],_0x3d0f11={'type':'perspective','fovYDegrees':0x2d,'near':0.01,'far':0x2710},_0x508880=Math['PI']/0xb4,_0xaa5842=_0x191818=>[_0x191818[0x0],_0x191818[0x1],_0x191818[0x2]],_0x392f29=_0x334a3d=>(_0x334a3d['type'],{..._0x334a3d}),_0x214a8f=_0xf1115f=>({'position':_0xaa5842(_0xf1115f[_0xe1b81f(0x232)]),'target':_0xaa5842(_0xf1115f['target']),'up':_0xaa5842(_0xf1115f['up']),'projection':_0x392f29(_0xf1115f[_0xe1b81f(0x157)])}),_0x1c7230=(_0x300a41,_0x2eded2)=>[_0x300a41[0x0]-_0x2eded2[0x0],_0x300a41[0x1]-_0x2eded2[0x1],_0x300a41[0x2]-_0x2eded2[0x2]],_0x2c3795=(_0x272ccb,_0x5b92e3)=>[_0x272ccb[0x0]+_0x5b92e3[0x0],_0x272ccb[0x1]+_0x5b92e3[0x1],_0x272ccb[0x2]+_0x5b92e3[0x2]],_0x1f7b24=(_0xed40e9,_0x10f779)=>[_0xed40e9[0x0]*_0x10f779,_0xed40e9[0x1]*_0x10f779,_0xed40e9[0x2]*_0x10f779],_0x532084=(_0x4b5e17,_0x5c25c6)=>[_0x4b5e17[0x1]*_0x5c25c6[0x2]-_0x4b5e17[0x2]*_0x5c25c6[0x1],_0x4b5e17[0x2]*_0x5c25c6[0x0]-_0x4b5e17[0x0]*_0x5c25c6[0x2],_0x4b5e17[0x0]*_0x5c25c6[0x1]-_0x4b5e17[0x1]*_0x5c25c6[0x0]],_0x18c6ca=_0x1a691e=>{const _0x2f2245=_0xe1b81f;let _0x3832dd=Math[_0x2f2245(0x3df)](_0x1a691e[0x0],_0x1a691e[0x1],_0x1a691e[0x2]);return _0x3832dd===0x0?[0x0,0x0,0x0]:_0x1f7b24(_0x1a691e,0x1/_0x3832dd);},_0x25bed9=(_0x44c149,_0x388fb7,_0x356897)=>Math[_0xe1b81f(0x22c)](_0x356897,Math[_0xe1b81f(0x272)](_0x388fb7,_0x44c149)),_0x3d95e1=_0x3a12e3=>{const _0x3ac57a=_0xe1b81f;if(!(_0x3a12e3[_0x3ac57a(0x378)]>=0x0&&_0x3a12e3['far']>_0x3a12e3[_0x3ac57a(0x378)]))throw Error('相机裁剪距离必须满足\x200\x20<=\x20near\x20<\x20far。');if(_0x3a12e3[_0x3ac57a(0x3b5)]===_0x3ac57a(0xd5)&&!(_0x3a12e3[_0x3ac57a(0x378)]>0x0&&_0x3a12e3[_0x3ac57a(0x2ac)]>0x0&&_0x3a12e3[_0x3ac57a(0x2ac)]<0xb4))throw Error(_0x3ac57a(0x10c));if(_0x3a12e3[_0x3ac57a(0x3b5)]===_0x3ac57a(0x3be)&&!(_0x3a12e3['height']>0x0))throw Error(_0x3ac57a(0xbf));},_0x5d4ea2=_0x566391=>{const _0x55663e=_0xe1b81f;let _0x4c2679={'position':_0x566391['state']?.[_0x55663e(0x232)]?_0xaa5842(_0x566391[_0x55663e(0x23a)][_0x55663e(0x232)]):_0xaa5842(_0xbd7d36),'target':_0x566391[_0x55663e(0x23a)]?.[_0x55663e(0x3d1)]?_0xaa5842(_0x566391[_0x55663e(0x23a)][_0x55663e(0x3d1)]):_0xaa5842(_0x27f079),'up':_0x566391[_0x55663e(0x23a)]?.['up']?_0xaa5842(_0x566391['state']['up']):_0xaa5842(_0x5d222d),'projection':_0x566391[_0x55663e(0x23a)]?.[_0x55663e(0x157)]?_0x392f29(_0x566391[_0x55663e(0x23a)][_0x55663e(0x157)]):_0x392f29(_0x3d0f11)};return _0x3d95e1(_0x4c2679[_0x55663e(0x157)]),_0x4c2679;};var _0x2e8793=class{[_0xe1b81f(0x3ae)];['aspect'];[_0xe1b81f(0x1fd)];[_0xe1b81f(0x211)];['zoomSpeed'];[_0xe1b81f(0x220)];[_0xe1b81f(0x2a2)];[_0xe1b81f(0x2e0)];[_0xe1b81f(0x202)];constructor(_0xaf4df4={}){const _0xe57547=_0xe1b81f;if(this[_0xe57547(0x3ae)]=_0x5d4ea2(_0xaf4df4),this['aspect']=_0xaf4df4[_0xe57547(0xda)]??0x1,this[_0xe57547(0x1fd)]=_0xaf4df4[_0xe57547(0x1fd)]??0.005,this[_0xe57547(0x211)]=_0xaf4df4[_0xe57547(0x211)]??0x1,this[_0xe57547(0x388)]=_0xaf4df4[_0xe57547(0x388)]??0.0015,this['minimumDistance']=_0xaf4df4[_0xe57547(0x220)]??0.001,this[_0xe57547(0x2a2)]=_0xaf4df4[_0xe57547(0x2a2)]??0x1/0x0,this[_0xe57547(0x2e0)]=(_0xaf4df4[_0xe57547(0x338)]??-0x59)*_0x508880,this[_0xe57547(0x202)]=(_0xaf4df4['maximumPitchDegrees']??0x59)*_0x508880,!(this[_0xe57547(0xda)]>0x0))throw Error(_0xe57547(0x295));}get[_0xe1b81f(0x23a)](){const _0xb60e0d=_0xe1b81f;return _0x214a8f(this[_0xb60e0d(0x3ae)]);}get[_0xe1b81f(0x186)](){const _0x8c0a2c=_0xe1b81f;let _0x120c1e=_0xda8236(this[_0x8c0a2c(0x3ae)][_0x8c0a2c(0x232)],this[_0x8c0a2c(0x3ae)][_0x8c0a2c(0x3d1)],this[_0x8c0a2c(0x3ae)]['up']),_0x1d7b45=this[_0x8c0a2c(0x205)](),_0x271bf6=_0x15126f(_0x1d7b45,_0x120c1e);return{'view':_0x120c1e,'projection':_0x1d7b45,'viewProjection':_0x271bf6,'inverseViewProjection':_0x20ecf6(_0x271bf6)};}[_0xe1b81f(0x26f)](_0x3743b7){const _0x153087=_0xe1b81f;_0x3d95e1(_0x3743b7[_0x153087(0x157)]),this[_0x153087(0x3ae)]=_0x214a8f(_0x3743b7);}['setAspect'](_0x5b4d38){const _0x25830d=_0xe1b81f;if(!(_0x5b4d38>0x0)||!Number[_0x25830d(0x1a4)](_0x5b4d38))throw Error(_0x25830d(0x349));this[_0x25830d(0xda)]=_0x5b4d38;}[_0xe1b81f(0x331)](_0x47251d){const _0x1a5f08=_0xe1b81f;if(_0x47251d===this['cameraState'][_0x1a5f08(0x157)][_0x1a5f08(0x3b5)])return;let _0x591f06=Math['hypot'](..._0x1c7230(this[_0x1a5f08(0x3ae)][_0x1a5f08(0x232)],this[_0x1a5f08(0x3ae)][_0x1a5f08(0x3d1)]));if(_0x47251d===_0x1a5f08(0x3be)){let _0x15d308=this['cameraState'][_0x1a5f08(0x157)],_0x5038a6=_0x15d308[_0x1a5f08(0x3b5)]===_0x1a5f08(0xd5)?_0x15d308[_0x1a5f08(0x2ac)]*_0x508880:0x2d*_0x508880;this[_0x1a5f08(0x3ae)][_0x1a5f08(0x157)]={'type':_0x47251d,'height':0x2*_0x591f06*Math[_0x1a5f08(0x294)](_0x5038a6/0x2),'near':_0x15d308['near'],'far':_0x15d308[_0x1a5f08(0x2d8)]};return;}let _0x23b19c=this[_0x1a5f08(0x3ae)][_0x1a5f08(0x157)],_0x4fa04d=_0x23b19c[_0x1a5f08(0x3b5)]===_0x1a5f08(0x3be)?_0x23b19c[_0x1a5f08(0x221)]/(0x2*Math[_0x1a5f08(0x294)](0x2d*_0x508880/0x2)):_0x591f06,_0x43474e=_0x18c6ca(_0x1c7230(this[_0x1a5f08(0x3ae)]['position'],this[_0x1a5f08(0x3ae)][_0x1a5f08(0x3d1)]));this[_0x1a5f08(0x3ae)][_0x1a5f08(0x232)]=_0x2c3795(this[_0x1a5f08(0x3ae)][_0x1a5f08(0x3d1)],_0x1f7b24(_0x43474e,_0x4fa04d)),this[_0x1a5f08(0x3ae)][_0x1a5f08(0x157)]={'type':_0x47251d,'fovYDegrees':0x2d,'near':_0x23b19c[_0x1a5f08(0x378)],'far':_0x23b19c[_0x1a5f08(0x2d8)]};}[_0xe1b81f(0x22d)](_0x3c351b,_0x12b729){const _0x2fc3ee=_0xe1b81f;let _0x1101b3=_0x1c7230(this['cameraState']['position'],this['cameraState']['target']),_0x14e3e4=Math['hypot'](..._0x1101b3);if(_0x14e3e4===0x0)return;let _0x567ee9=Math[_0x2fc3ee(0x2bc)](_0x1101b3[0x0],_0x1101b3[0x2])-_0x3c351b*this['rotateSpeed'],_0x57adb5=_0x25bed9(Math[_0x2fc3ee(0x2bf)](_0x1101b3[0x1]/_0x14e3e4)+_0x12b729*this[_0x2fc3ee(0x1fd)],this[_0x2fc3ee(0x2e0)],this[_0x2fc3ee(0x202)]),_0x3663cd=Math[_0x2fc3ee(0x353)](_0x57adb5)*_0x14e3e4;this[_0x2fc3ee(0x3ae)][_0x2fc3ee(0x232)]=_0x2c3795(this[_0x2fc3ee(0x3ae)]['target'],[Math[_0x2fc3ee(0x352)](_0x567ee9)*_0x3663cd,Math[_0x2fc3ee(0x352)](_0x57adb5)*_0x14e3e4,Math[_0x2fc3ee(0x353)](_0x567ee9)*_0x3663cd]);}['pan'](_0x32ef59,_0x599df5,_0x187d2b){const _0x25b878=_0xe1b81f;if(!(_0x187d2b>0x0))return;let _0x5f4ac0=_0x18c6ca(_0x1c7230(this[_0x25b878(0x3ae)][_0x25b878(0x3d1)],this[_0x25b878(0x3ae)][_0x25b878(0x232)])),_0x40c143=_0x18c6ca(_0x532084(_0x5f4ac0,this[_0x25b878(0x3ae)]['up'])),_0x192ac2=_0x18c6ca(_0x532084(_0x40c143,_0x5f4ac0)),_0x5b9b55=Math['hypot'](..._0x1c7230(this[_0x25b878(0x3ae)][_0x25b878(0x232)],this['cameraState'][_0x25b878(0x3d1)])),_0x111547=(this['cameraState'][_0x25b878(0x157)]['type']==='orthographic'?this[_0x25b878(0x3ae)][_0x25b878(0x157)][_0x25b878(0x221)]:0x2*_0x5b9b55*Math['tan'](this[_0x25b878(0x3ae)][_0x25b878(0x157)][_0x25b878(0x2ac)]*_0x508880/0x2))/_0x187d2b*this[_0x25b878(0x211)],_0x3c2562=_0x2c3795(_0x1f7b24(_0x40c143,-_0x32ef59*_0x111547),_0x1f7b24(_0x192ac2,_0x599df5*_0x111547));this[_0x25b878(0x3ae)][_0x25b878(0x232)]=_0x2c3795(this[_0x25b878(0x3ae)]['position'],_0x3c2562),this[_0x25b878(0x3ae)][_0x25b878(0x3d1)]=_0x2c3795(this['cameraState'][_0x25b878(0x3d1)],_0x3c2562);}[_0xe1b81f(0x362)](_0x2daa3b){const _0x340880=_0xe1b81f;let _0x57145f=Math[_0x340880(0x1e1)](_0x2daa3b*this[_0x340880(0x388)]);if(this[_0x340880(0x3ae)][_0x340880(0x157)][_0x340880(0x3b5)]==='orthographic'){this[_0x340880(0x3ae)][_0x340880(0x157)]={...this[_0x340880(0x3ae)][_0x340880(0x157)],'height':Math['max'](this['minimumDistance'],this[_0x340880(0x3ae)][_0x340880(0x157)][_0x340880(0x221)]*_0x57145f)};return;}let _0x11a9fc=_0x1c7230(this[_0x340880(0x3ae)][_0x340880(0x232)],this[_0x340880(0x3ae)][_0x340880(0x3d1)]),_0x1171d8=_0x25bed9(Math[_0x340880(0x3df)](..._0x11a9fc)*_0x57145f,this[_0x340880(0x220)],this['maximumDistance']);this[_0x340880(0x3ae)][_0x340880(0x232)]=_0x2c3795(this[_0x340880(0x3ae)][_0x340880(0x3d1)],_0x1f7b24(_0x18c6ca(_0x11a9fc),_0x1171d8));}[_0xe1b81f(0x205)](){const _0x30fd5c=_0xe1b81f;let _0x370be9=this['cameraState'][_0x30fd5c(0x157)];return _0x370be9[_0x30fd5c(0x3b5)]==='perspective'?_0x29921f(_0x370be9[_0x30fd5c(0x2ac)]*_0x508880,this['aspect'],_0x370be9['near'],_0x370be9[_0x30fd5c(0x2d8)]):_0x2308dd(_0x370be9[_0x30fd5c(0x221)],this[_0x30fd5c(0xda)],_0x370be9[_0x30fd5c(0x378)],_0x370be9[_0x30fd5c(0x2d8)]);}};let _0x836a00=(_0x29fb00,_0x3c73eb)=>Number[_0xe1b81f(0x1a7)](_0x29fb00)||_0x3c73eb!==void 0x0&&_0x29fb00===_0x3c73eb,_0x2e6a97=(_0x53261b,_0x48bdfb)=>_0x53261b[_0xe1b81f(0x35f)]===_0x53261b['end']?0x0:(_0x48bdfb-_0x53261b[_0xe1b81f(0x35f)])/(_0x53261b[_0xe1b81f(0x242)]-_0x53261b[_0xe1b81f(0x35f)]),_0xae2c2f=_0x49d7f0=>{const _0x392b21=_0xe1b81f;if(!_0x49d7f0['id'])throw Error('路线剖面\x20id\x20不能为空。');if(_0x49d7f0['path'][_0x392b21(0x3bd)]<0x4||_0x49d7f0[_0x392b21(0xa4)]['length']%0x2!=0x0)throw Error('路线剖面\x20'+_0x49d7f0['id']+_0x392b21(0x3ab));if(_0x49d7f0[_0x392b21(0x9a)]['length']<0x2)throw Error(_0x392b21(0x394)+_0x49d7f0['id']+_0x392b21(0x24d));let _0x114906=_0x49d7f0[_0x392b21(0xa4)][_0x392b21(0x3bd)]/0x2;if(_0x49d7f0[_0x392b21(0xc2)][_0x392b21(0x3bd)]!==_0x114906*_0x49d7f0[_0x392b21(0x9a)][_0x392b21(0x3bd)])throw Error(_0x392b21(0x394)+_0x49d7f0['id']+_0x392b21(0x200));if(_0x49d7f0['opacity']!==void 0x0&&(!(_0x49d7f0[_0x392b21(0x3f5)]>=0x0&&_0x49d7f0[_0x392b21(0x3f5)]<=0x1)||!Number[_0x392b21(0x1a4)](_0x49d7f0[_0x392b21(0x3f5)])))throw Error('路线剖面\x20'+_0x49d7f0['id']+_0x392b21(0x229));for(let _0x16f25a of _0x49d7f0['path'])if(!Number[_0x392b21(0x1a4)](_0x16f25a))throw Error(_0x392b21(0x394)+_0x49d7f0['id']+_0x392b21(0x247));for(let _0x1d7ccc of _0x49d7f0[_0x392b21(0x9a)])if(!Number[_0x392b21(0x1a4)](_0x1d7ccc))throw Error('路线剖面\x20'+_0x49d7f0['id']+_0x392b21(0xb3));return _0x114906;},_0x54990c=(_0x328bbe,_0x88d053,_0x4200f7)=>{const _0x5ecbd2=_0xe1b81f;let _0x2687d8=new Float32Array(_0x88d053*_0x328bbe['heights'][_0x5ecbd2(0x3bd)]*0x3);for(let _0x26c844=0x0;_0x26c844<_0x328bbe[_0x5ecbd2(0x9a)][_0x5ecbd2(0x3bd)];_0x26c844+=0x1)for(let _0x479d96=0x0;_0x479d96<_0x88d053;_0x479d96+=0x1){let _0x201c81=(_0x26c844*_0x88d053+_0x479d96)*0x3;_0x2687d8[_0x201c81]=_0x2e6a97(_0x4200f7[_0x5ecbd2(0x36d)],_0x328bbe[_0x5ecbd2(0xa4)][_0x479d96*0x2]),_0x2687d8[_0x201c81+0x1]=_0x2e6a97(_0x4200f7['yAxis'],_0x328bbe[_0x5ecbd2(0x9a)][_0x26c844]),_0x2687d8[_0x201c81+0x2]=_0x2e6a97(_0x4200f7['zAxis'],_0x328bbe[_0x5ecbd2(0xa4)][_0x479d96*0x2+0x1]);}return _0x2687d8;},_0x562a76=_0x4efe09=>{const _0x179c77=_0xe1b81f;let _0x426c90=new Float32Array(_0x4efe09[_0x179c77(0xc2)][_0x179c77(0x3bd)]);for(let _0x2cee59=0x0;_0x2cee59<_0x4efe09[_0x179c77(0xc2)][_0x179c77(0x3bd)];_0x2cee59+=0x1){let _0x45bf4f=_0x4efe09[_0x179c77(0xc2)][_0x2cee59];_0x426c90[_0x2cee59]=_0x836a00(_0x45bf4f,_0x4efe09[_0x179c77(0x399)])?NaN:_0x45bf4f;}return _0x426c90;},_0x288d5e=(_0x4d63c4,_0x2f27b8)=>{let _0x11fb20=new Uint32Array((_0x4d63c4-0x1)*(_0x2f27b8-0x1)*0x6),_0x5664c1=0x0;for(let _0x240ee2=0x0;_0x240ee2<_0x2f27b8-0x1;_0x240ee2+=0x1)for(let _0x2162a9=0x0;_0x2162a9<_0x4d63c4-0x1;_0x2162a9+=0x1){let _0x5da3da=_0x240ee2*_0x4d63c4+_0x2162a9,_0x1ad124=_0x5da3da+0x1,_0x12552c=_0x5da3da+_0x4d63c4,_0x2e02f5=_0x12552c+0x1;_0x11fb20[_0x5664c1]=_0x5da3da,_0x11fb20[_0x5664c1+0x1]=_0x1ad124,_0x11fb20[_0x5664c1+0x2]=_0x12552c,_0x11fb20[_0x5664c1+0x3]=_0x12552c,_0x11fb20[_0x5664c1+0x4]=_0x1ad124,_0x11fb20[_0x5664c1+0x5]=_0x2e02f5,_0x5664c1+=0x6;}return _0x11fb20;},_0x4a723e=(_0x4e1ef9,_0x141c01)=>{const _0x28087c=_0xe1b81f;let _0x22c7c6=_0xae2c2f(_0x4e1ef9);return{'id':_0x4e1ef9['id'],'positions':_0x54990c(_0x4e1ef9,_0x22c7c6,_0x141c01),'values':_0x562a76(_0x4e1ef9),'indices':_0x288d5e(_0x22c7c6,_0x4e1ef9[_0x28087c(0x9a)][_0x28087c(0x3bd)]),'opacity':_0x4e1ef9[_0x28087c(0x3f5)]??0x1,'depthMode':_0x4e1ef9[_0x28087c(0x19c)]??_0x28087c(0x333),'revision':_0x4e1ef9['revision']};};var _0x2e4185=_0xe1b81f(0x1b8),_0x5987a7=_0xe1b81f(0x159),_0x3c7c11=_0xe1b81f(0x1ec);let _0x27d20a=_0x14b357=>{const _0x4c58c7=_0xe1b81f;if([_0x14b357['xAxis']['count'],_0x14b357[_0x4c58c7(0x1b4)]['count'],_0x14b357[_0x4c58c7(0x2a0)][_0x4c58c7(0x2a3)],_0x14b357[_0x4c58c7(0x33a)],_0x14b357['brickHeight'],_0x14b357['brickDepth']][_0x4c58c7(0x3ce)](_0x36addc=>!Number['isInteger'](_0x36addc)||_0x36addc<=0x0))throw Error(_0x4c58c7(0x21b));if(_0x14b357['halo']!==0x1)throw Error(_0x4c58c7(0x3bc));},_0x50b48c=_0x45cf95=>[Math[_0xe1b81f(0xa8)](_0x45cf95[_0xe1b81f(0x36d)][_0xe1b81f(0x2a3)]/_0x45cf95[_0xe1b81f(0x33a)]),Math[_0xe1b81f(0xa8)](_0x45cf95['yAxis'][_0xe1b81f(0x2a3)]/_0x45cf95[_0xe1b81f(0x365)]),Math[_0xe1b81f(0xa8)](_0x45cf95[_0xe1b81f(0x2a0)][_0xe1b81f(0x2a3)]/_0x45cf95['brickDepth'])],_0x94701=(_0x472390,_0x6e8b9f)=>{const _0x49f48f=_0xe1b81f;let _0x58ebf5=_0x6e8b9f[0x0]*_0x6e8b9f[0x1],_0x4a51d0=Math[_0x49f48f(0x2a4)](_0x472390/_0x58ebf5),_0x583ad0=_0x472390-_0x4a51d0*_0x58ebf5,_0x253c5a=Math['floor'](_0x583ad0/_0x6e8b9f[0x0]);return[_0x583ad0-_0x253c5a*_0x6e8b9f[0x0],_0x253c5a,_0x4a51d0];},_0xfde901=(_0x492c70,_0x5ade2f,_0x359ced)=>{const _0x17c5c3=_0xe1b81f;let _0x153f8e=_0x5ade2f[_0x17c5c3(0x33a)]+0x2,_0x49db88=_0x5ade2f[_0x17c5c3(0x365)]+0x2,_0x592a34=_0x94701(_0x492c70[_0x17c5c3(0x29a)],_0x359ced),_0x4ec0f0=Math[_0x17c5c3(0x22c)](_0x5ade2f['brickWidth'],_0x5ade2f[_0x17c5c3(0x36d)][_0x17c5c3(0x2a3)]-_0x592a34[0x0]*_0x5ade2f[_0x17c5c3(0x33a)]),_0x4dad71=Math[_0x17c5c3(0x22c)](_0x5ade2f[_0x17c5c3(0x365)],_0x5ade2f[_0x17c5c3(0x1b4)]['count']-_0x592a34[0x1]*_0x5ade2f[_0x17c5c3(0x365)]),_0x1c9245=Math[_0x17c5c3(0x22c)](_0x5ade2f['brickDepth'],_0x5ade2f[_0x17c5c3(0x2a0)][_0x17c5c3(0x2a3)]-_0x592a34[0x2]*_0x5ade2f['brickDepth']);for(let _0x3cd7da=0x0;_0x3cd7da<_0x1c9245;_0x3cd7da+=0x1)for(let _0x1a5595=0x0;_0x1a5595<_0x4dad71;_0x1a5595+=0x1){let _0x26650d=((_0x3cd7da+0x1)*_0x49db88+_0x1a5595+0x1)*_0x153f8e+0x1;for(let _0x3f42c9=0x0;_0x3f42c9<_0x4ec0f0;_0x3f42c9+=0x1){let _0x234ef1=_0x492c70[_0x17c5c3(0xc2)][_0x26650d+_0x3f42c9];if(_0x234ef1===_0x234ef1&&(_0x5ade2f[_0x17c5c3(0x399)]===void 0x0||_0x234ef1!==_0x5ade2f[_0x17c5c3(0x399)]))return{'occupied':!0x0,'coreSampleCount':_0x4ec0f0*_0x4dad71*_0x1c9245};}}return{'occupied':!0x1,'coreSampleCount':_0x4ec0f0*_0x4dad71*_0x1c9245};},_0x193b2b=(_0x15f84a,_0x884f0,_0x45b2b2,_0x3560ef,_0x565ffc)=>{const _0x2ffe49=_0xe1b81f;if(_0x15f84a<=0x0)return null;let _0x9ef67a=Math[_0x2ffe49(0x2a4)](_0x565ffc/_0x884f0),_0x11698b=Math[_0x2ffe49(0x2a4)](_0x565ffc/_0x45b2b2),_0x1aab10=Math['floor'](_0x565ffc/_0x3560ef),_0x2019b4=null;for(let _0x4c4c22=0x1;_0x4c4c22<=_0x9ef67a;_0x4c4c22+=0x1)for(let _0x1af40b=0x1;_0x1af40b<=_0x11698b;_0x1af40b+=0x1){let _0x3a3d22=Math[_0x2ffe49(0x22c)](_0x1aab10,Math['floor'](_0x15f84a/(_0x4c4c22*_0x1af40b))),_0x196cb5=_0x4c4c22*_0x1af40b*_0x3a3d22;_0x3a3d22<=0x0||_0x196cb5<=(_0x2019b4?.[_0x2ffe49(0x264)]??0x0)||(_0x2019b4={'slotCountX':_0x4c4c22,'slotCountY':_0x1af40b,'slotCountZ':_0x3a3d22,'slotCount':_0x196cb5,'textureCount':0x1,'capacity':_0x196cb5});}return _0x2019b4;},_0x155581=(_0x115409,_0x55c3aa)=>{const _0x13551c=_0xe1b81f;let _0x4c5315=_0x55c3aa[_0x13551c(0xaa)]*_0x55c3aa[_0x13551c(0x3f4)],_0x3b4319=Math[_0x13551c(0x2a4)](_0x115409/_0x4c5315),_0x3b685c=_0x115409-_0x3b4319*_0x4c5315,_0x36c784=Math[_0x13551c(0x2a4)](_0x3b685c/_0x55c3aa['slotCountX']);return[_0x3b685c-_0x36c784*_0x55c3aa[_0x13551c(0xaa)],_0x36c784,_0x3b4319];},_0x48c1b8=(_0x1c261c,_0x5eda0)=>{const _0x30c3a3=_0xe1b81f;let _0x54cdc9=null;for(let _0x44e6f3 of _0x1c261c)_0x44e6f3[_0x30c3a3(0xd2)]!==_0x5eda0&&(!_0x54cdc9||_0x44e6f3['lastUsedFrame']<_0x54cdc9['lastUsedFrame'])&&(_0x54cdc9=_0x44e6f3);return _0x54cdc9;},_0x3adccc=(_0xed0e99,_0x39a7f0,_0x4fe751,_0x2c87e3)=>{const _0x227f7a=_0xe1b81f;let _0x2840c8=_0x39a7f0*Float32Array[_0x227f7a(0x21e)],_0x426a45=Math[_0x227f7a(0xa8)](_0x2840c8/0x100)*0x100;if(_0x2840c8===_0x426a45)return{'values':_0xed0e99,'bytesPerRow':_0x426a45};let _0x1c8104=_0x426a45/Float32Array['BYTES_PER_ELEMENT'],_0x3ca3b2=new Float32Array(_0x1c8104*_0x4fe751*_0x2c87e3);for(let _0xefa408=0x0;_0xefa408<_0x2c87e3;_0xefa408+=0x1)for(let _0x5553db=0x0;_0x5553db<_0x4fe751;_0x5553db+=0x1){let _0x2352fd=(_0xefa408*_0x4fe751+_0x5553db)*_0x39a7f0,_0x5d7955=(_0xefa408*_0x4fe751+_0x5553db)*_0x1c8104;_0x3ca3b2[_0x227f7a(0x326)](_0xed0e99[_0x227f7a(0x152)](_0x2352fd,_0x2352fd+_0x39a7f0),_0x5d7955);}return{'values':_0x3ca3b2,'bytesPerRow':_0x426a45};};var _0x2fabfd=class{['device'];[_0xe1b81f(0x168)];[_0xe1b81f(0x249)];[_0xe1b81f(0xc3)]=null;[_0xe1b81f(0x2e8)]=null;[_0xe1b81f(0x10e)]=[];['atlasViews']=[];[_0xe1b81f(0x20c)]=null;[_0xe1b81f(0x22b)]=new Uint32Array();['residentByLogicalIndex']=new Map();[_0xe1b81f(0x1d4)]=new Map();[_0xe1b81f(0x154)]=0x0;constructor(_0x5db461,_0x11b29d=0x20000000,_0x57a9e1=_0x11b29d){const _0x2448af=_0xe1b81f;if(!Number[_0x2448af(0x1a4)](_0x11b29d)||!Number[_0x2448af(0x1a4)](_0x57a9e1)||_0x11b29d<=0x0||_0x57a9e1<=0x0)throw Error(_0x2448af(0x2e6));this[_0x2448af(0xea)]=_0x5db461,this['memoryTargetBytes']=Math[_0x2448af(0x22c)](_0x11b29d,_0x57a9e1),this[_0x2448af(0x249)]=_0x57a9e1;}get[_0xe1b81f(0xd6)](){const _0x19aea0=_0xe1b81f;if(!this[_0x19aea0(0xc3)])throw Error(_0x19aea0(0x29f));return this[_0x19aea0(0xc3)];}get['atlasLayout'](){const _0x35d42e=_0xe1b81f;if(!this['layout'])throw Error(_0x35d42e(0x318));return this['layout'];}get[_0xe1b81f(0x34f)](){const _0x4d7653=_0xe1b81f;return this[_0x4d7653(0x20d)]['size'];}get[_0xe1b81f(0x112)](){const _0x458ca8=_0xe1b81f;if(!this['metadata']||!this['layout'])return{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this['memoryHardLimitBytes'],'budgetLimited':!0x1,'skippedSamples':0x0,'skippedCells':0x0};let _0x3bc9c5=_0x50b48c(this[_0x458ca8(0xc3)]),_0x473427=_0x3bc9c5[0x0]*_0x3bc9c5[0x1]*_0x3bc9c5[0x2],_0x4509a8=this['metadata']['brickWidth']+0x2,_0x392da6=this[_0x458ca8(0xc3)][_0x458ca8(0x365)]+0x2,_0x227be7=this[_0x458ca8(0xc3)][_0x458ca8(0xf2)]+0x2,_0x2f8c49=_0x4509a8*_0x392da6*_0x227be7*this[_0x458ca8(0x2e8)][_0x458ca8(0x19f)]*Float32Array[_0x458ca8(0x21e)],_0xf318c7=_0x473427*0x4*Uint32Array['BYTES_PER_ELEMENT'],_0x13d877=0x0,_0x29484c=0x0;for(let _0x16ab55 of this['residentByLogicalIndex']['values']())_0x16ab55[_0x458ca8(0xbc)]||(_0x29484c+=0x1,_0x13d877+=_0x16ab55[_0x458ca8(0x305)]);return{'logicalBrickCount':_0x473427,'atlasCapacity':this['layout'][_0x458ca8(0x19f)],'gpuBytes':_0x2f8c49+_0xf318c7,'memoryLimitBytes':this['memoryHardLimitBytes'],'budgetLimited':this[_0x458ca8(0x2e8)][_0x458ca8(0x19f)]<_0x473427,'skippedSamples':_0x13d877,'skippedCells':_0x29484c};}[_0xe1b81f(0x3d2)](_0x518e83){const _0x19977a=_0xe1b81f;_0x27d20a(_0x518e83);let _0x101338=_0x518e83[_0x19977a(0x33a)]+0x2,_0x3a559b=_0x518e83['brickHeight']+0x2,_0x1aa443=_0x518e83[_0x19977a(0xf2)]+0x2,_0x48742b=_0x50b48c(_0x518e83),_0x12b470=_0x48742b[0x0]*_0x48742b[0x1]*_0x48742b[0x2],_0x2910bf=_0x12b470*0x4*Uint32Array[_0x19977a(0x21e)],_0xd4d10f=Math[_0x19977a(0x22c)](this[_0x19977a(0x168)],this['memoryHardLimitBytes'])-_0x2910bf;if(_0xd4d10f<=0x0)throw Error(_0x19977a(0x1a1));let _0x32a37c=_0x101338*_0x3a559b*_0x1aa443*Float32Array['BYTES_PER_ELEMENT'],_0x22fd19=Math[_0x19977a(0x22c)](_0x12b470,Math[_0x19977a(0x2a4)](_0xd4d10f/_0x32a37c)),_0x41fec7=Math[_0x19977a(0x272)](0x1,Math['floor'](0x4000000/_0x32a37c)),_0x46b4ab=Math[_0x19977a(0x22c)](0x8,Math[_0x19977a(0x272)](0x1,Math['ceil'](_0x22fd19/_0x41fec7))),_0x486833=_0x193b2b(Math['max'](0x1,Math[_0x19977a(0x2a4)](_0x22fd19/_0x46b4ab)),_0x101338,_0x3a559b,_0x1aa443,this[_0x19977a(0xea)][_0x19977a(0x1de)][_0x19977a(0x3ba)]);if(!_0x486833)throw Error(_0x19977a(0x1f9));let _0x5b3c71={..._0x486833,'textureCount':_0x46b4ab,'capacity':_0x486833[_0x19977a(0x264)]*_0x46b4ab},_0x1a85e9=_0x101338*_0x5b3c71['slotCountX'],_0x1d3a44=_0x3a559b*_0x5b3c71[_0x19977a(0x3f4)],_0x44d668=_0x1aa443*_0x5b3c71[_0x19977a(0x137)],_0x54d89b=Array['from']({'length':_0x46b4ab},(_0x326577,_0x2e8a8b)=>this['device'][_0x19977a(0x3b6)]({'label':_0x19977a(0x1a9)+_0x2e8a8b,'size':[_0x1a85e9,_0x1d3a44,_0x44d668],'dimension':'3d','format':_0x19977a(0x2d6),'usage':GPUTextureUsage['TEXTURE_BINDING']|GPUTextureUsage[_0x19977a(0x31e)]|GPUTextureUsage[_0x19977a(0x16d)]})),_0x2246f5=this[_0x19977a(0xea)][_0x19977a(0x196)]({'label':'volume\x20brick\x20page\x20table','size':Math[_0x19977a(0x272)](0x10,_0x2910bf),'usage':GPUBufferUsage[_0x19977a(0x18c)]|GPUBufferUsage[_0x19977a(0x31e)]});this[_0x19977a(0x245)](),this[_0x19977a(0xc3)]={..._0x518e83},this[_0x19977a(0x2e8)]=_0x5b3c71,this['atlasTextures']=_0x54d89b,this['atlasViews']=_0x54d89b['map'](_0x429515=>_0x429515[_0x19977a(0x265)]({'dimension':'3d'})),this['pageTableBuffer']=_0x2246f5,this[_0x19977a(0x22b)]=new Uint32Array(_0x12b470*0x4),this['device']['queue']['writeBuffer'](_0x2246f5,0x0,this[_0x19977a(0x22b)]);for(let _0x17fa01 of _0x54d89b)this['clearAtlasTexture'](_0x17fa01,_0x1a85e9,_0x1d3a44,_0x44d668);this[_0x19977a(0x154)]+=0x1;}[_0xe1b81f(0x2fb)](_0x128c6f,_0x332fa6){const _0x377412=_0xe1b81f;let _0x352812=this['volumeMetadata'],_0x2ee656=this['atlasLayout'],_0x31f332=_0x50b48c(_0x352812),_0x73a822=_0x31f332[0x0]*_0x31f332[0x1]*_0x31f332[0x2];if(!Number[_0x377412(0xde)](_0x128c6f[_0x377412(0x29a)])||_0x128c6f[_0x377412(0x29a)]<0x0||_0x128c6f['logicalIndex']>=_0x73a822)throw Error(_0x377412(0x2d1)+_0x128c6f[_0x377412(0x29a)]+_0x377412(0x34b));let _0x5c6a59=_0x352812[_0x377412(0x33a)]+0x2,_0x3e233d=_0x352812[_0x377412(0x365)]+0x2,_0x5327cf=_0x352812[_0x377412(0xf2)]+0x2,_0x36e57f=_0x5c6a59*_0x3e233d*_0x5327cf;if(_0x128c6f[_0x377412(0xc2)][_0x377412(0x3bd)]!==_0x36e57f)throw Error(_0x377412(0x323)+_0x128c6f['logicalIndex']+_0x377412(0x3d3)+_0x36e57f+_0x377412(0x390)+_0x128c6f[_0x377412(0xc2)][_0x377412(0x3bd)]+'.\x20体积砖块数据长度不正确。');let _0x39ac41=this[_0x377412(0x20d)][_0x377412(0xd8)](_0x128c6f[_0x377412(0x29a)])??this['acquireSlot'](_0x128c6f['logicalIndex'],_0x332fa6),_0x36ec22=_0xfde901(_0x128c6f,_0x352812,_0x31f332),_0x1ee0a2=Math['floor'](_0x39ac41['slotIndex']/_0x2ee656[_0x377412(0x264)]),_0x1b27d6=_0x155581(_0x39ac41['slotIndex']%_0x2ee656['slotCount'],_0x2ee656),_0x539ff3=_0x3adccc(new Float32Array(_0x128c6f[_0x377412(0xc2)]),_0x5c6a59,_0x3e233d,_0x5327cf);return _0x39ac41[_0x377412(0xd2)]=_0x332fa6,_0x39ac41['generation']=this[_0x377412(0x154)],_0x39ac41[_0x377412(0xbc)]=_0x36ec22['occupied'],_0x39ac41[_0x377412(0x305)]=_0x36ec22['coreSampleCount'],this[_0x377412(0xf6)](_0x39ac41),{'values':_0x539ff3[_0x377412(0xc2)],'bytesPerRow':_0x539ff3[_0x377412(0x241)],'rowsPerImage':_0x3e233d,'origin':{'x':_0x1b27d6[0x0]*_0x5c6a59,'y':_0x1b27d6[0x1]*_0x3e233d,'z':_0x1b27d6[0x2]*_0x5327cf},'extent':[_0x5c6a59,_0x3e233d,_0x5327cf],'atlasIndex':_0x1ee0a2};}[_0xe1b81f(0xf1)](_0x3f2172,_0x447202,_0x525e9c,_0x312f91){const _0x319144=_0xe1b81f;_0x3f2172['copyBufferToTexture']({'buffer':_0x447202,'offset':_0x525e9c,'bytesPerRow':_0x312f91['bytesPerRow'],'rowsPerImage':_0x312f91[_0x319144(0x1c1)]},{'texture':this[_0x319144(0x171)](_0x312f91[_0x319144(0x3e3)]),'origin':_0x312f91[_0x319144(0x3ed)]},_0x312f91[_0x319144(0x257)]);}[_0xe1b81f(0x325)](_0xc0ccfb,_0x183eeb){const _0x28b3be=_0xe1b81f;for(let _0x3acb4d of _0xc0ccfb){let _0x59204c=this[_0x28b3be(0x20d)]['get'](_0x3acb4d);_0x59204c&&(_0x59204c[_0x28b3be(0xd2)]=_0x183eeb);}}[_0xe1b81f(0x39d)](_0x4415b1,_0x1b646c){const _0x59efb8=_0xe1b81f;if(this['atlasViews'][_0x59efb8(0x3bd)]===0x0||!this[_0x59efb8(0x20c)])throw Error(_0x59efb8(0x1b5));return this[_0x59efb8(0xea)][_0x59efb8(0x39d)]({'label':_0x59efb8(0x20f),'layout':_0x4415b1,'entries':[...Array['from']({'length':0x8},(_0x19d57c,_0x16e193)=>({'binding':_0x16e193,'resource':this[_0x59efb8(0x2e2)][_0x16e193]??this[_0x59efb8(0x2e2)][0x0]})),{'binding':0x8,'resource':{'buffer':this[_0x59efb8(0x20c)]}},{'binding':0x9,'resource':{'buffer':_0x1b646c}}]});}[_0xe1b81f(0x1e8)](){const _0x8ed925=_0xe1b81f;this[_0x8ed925(0x245)](),this['metadata']=null,this[_0x8ed925(0x2e8)]=null,this[_0x8ed925(0x22b)]=new Uint32Array();}[_0xe1b81f(0x192)](_0x493475,_0x32d7e0){const _0x547d4c=_0xe1b81f;let _0x1e4fba=this[_0x547d4c(0xfe)],_0x406460=this[_0x547d4c(0x1d4)][_0x547d4c(0xbd)];if(_0x406460>=_0x1e4fba['capacity']){let _0x474e49=_0x48c1b8(this[_0x547d4c(0x1d4)]['values'](),_0x32d7e0);if(!_0x474e49)throw Error('WebGPU\x20volume\x20atlas\x20has\x20no\x20evictable\x20slot.\x20WebGPU\x20体积图集没有可驱逐的槽位。');_0x406460=_0x474e49[_0x547d4c(0xb9)],this[_0x547d4c(0x127)](_0x474e49[_0x547d4c(0x29a)]),this[_0x547d4c(0x20d)][_0x547d4c(0xee)](_0x474e49[_0x547d4c(0x29a)]),this['residentBySlotIndex'][_0x547d4c(0xee)](_0x406460);}let _0x42cfd0={'logicalIndex':_0x493475,'slotIndex':_0x406460,'lastUsedFrame':_0x32d7e0,'generation':this['generation'],'occupied':!0x1,'skippedSampleCount':0x0};return this['residentByLogicalIndex'][_0x547d4c(0x326)](_0x493475,_0x42cfd0),this['residentBySlotIndex']['set'](_0x406460,_0x42cfd0),_0x42cfd0;}['writePageEntry'](_0x11b66f){const _0x16addb=_0xe1b81f;let _0x1e0b1f=_0x11b66f[_0x16addb(0x29a)]*0x4;this[_0x16addb(0x22b)][_0x1e0b1f]=_0x11b66f[_0x16addb(0xb9)]%this[_0x16addb(0xfe)][_0x16addb(0x264)]+0x1,this[_0x16addb(0x22b)][_0x1e0b1f+0x1]=_0x11b66f[_0x16addb(0x154)],this['pageTableValues'][_0x1e0b1f+0x2]=+!!_0x11b66f['occupied'],this[_0x16addb(0x22b)][_0x1e0b1f+0x3]=Math[_0x16addb(0x2a4)](_0x11b66f[_0x16addb(0xb9)]/this[_0x16addb(0xfe)][_0x16addb(0x264)]),this[_0x16addb(0xea)]['queue'][_0x16addb(0x2f0)](this[_0x16addb(0xe1)](),_0x1e0b1f*Uint32Array['BYTES_PER_ELEMENT'],this[_0x16addb(0x22b)],_0x1e0b1f,0x4);}[_0xe1b81f(0x127)](_0x1156e2){const _0x3c2cb6=_0xe1b81f;let _0x113cba=_0x1156e2*0x4;this[_0x3c2cb6(0x22b)][_0x3c2cb6(0x1f4)](0x0,_0x113cba,_0x113cba+0x4),this[_0x3c2cb6(0xea)][_0x3c2cb6(0x2f6)]['writeBuffer'](this[_0x3c2cb6(0xe1)](),_0x113cba*Uint32Array['BYTES_PER_ELEMENT'],this[_0x3c2cb6(0x22b)],_0x113cba,0x4);}[_0xe1b81f(0x171)](_0x22596b){const _0x1ba461=_0xe1b81f;let _0x36d6fd=this[_0x1ba461(0x10e)][_0x22596b];if(!_0x36d6fd)throw Error(_0x1ba461(0x212));return _0x36d6fd;}['clearAtlasTexture'](_0x5365b1,_0x26dbc7,_0x2ad38d,_0x40c1d2){const _0x2acaf7=_0xe1b81f;let _0x245199=this['device'][_0x2acaf7(0xe9)]({'label':_0x2acaf7(0xaf),'code':_0x2acaf7(0xc9)}),_0x20502a=this[_0x2acaf7(0xea)][_0x2acaf7(0x144)]({'label':_0x2acaf7(0x2c1),'layout':_0x2acaf7(0x397),'compute':{'module':_0x245199,'entryPoint':_0x2acaf7(0x328)}}),_0x49b5b0=this['device'][_0x2acaf7(0x39d)]({'label':_0x2acaf7(0x136),'layout':_0x20502a['getBindGroupLayout'](0x0),'entries':[{'binding':0x0,'resource':_0x5365b1['createView']({'dimension':'3d'})}]}),_0x443e0c=this['device'][_0x2acaf7(0x27c)]({'label':'volume\x20atlas\x20clear'}),_0x31f2b9=_0x443e0c[_0x2acaf7(0x3bf)]({'label':_0x2acaf7(0x261)});_0x31f2b9[_0x2acaf7(0x129)](_0x20502a),_0x31f2b9[_0x2acaf7(0x31f)](0x0,_0x49b5b0),_0x31f2b9[_0x2acaf7(0x30b)](Math[_0x2acaf7(0xa8)](_0x26dbc7/0x4),Math[_0x2acaf7(0xa8)](_0x2ad38d/0x4),Math[_0x2acaf7(0xa8)](_0x40c1d2/0x4)),_0x31f2b9[_0x2acaf7(0x242)](),this[_0x2acaf7(0xea)]['queue'][_0x2acaf7(0x143)]([_0x443e0c[_0x2acaf7(0x39c)]()]);}['getPageTableBuffer'](){const _0xe635f6=_0xe1b81f;if(!this[_0xe635f6(0x20c)])throw Error(_0xe635f6(0x21c));return this[_0xe635f6(0x20c)];}['destroyResources'](){const _0x5a299b=_0xe1b81f;for(let _0x2c7c28 of this['atlasTextures'])_0x2c7c28[_0x5a299b(0x1e8)]();this[_0x5a299b(0x20c)]?.['destroy'](),this['atlasTextures']=[],this[_0x5a299b(0x2e2)]=[],this[_0x5a299b(0x20c)]=null,this[_0x5a299b(0x20d)][_0x5a299b(0x34d)](),this['residentBySlotIndex'][_0x5a299b(0x34d)]();}},_0x44ce4a=class{[_0xe1b81f(0xea)];['depthTexture']=null;['depthView']=null;[_0xe1b81f(0x238)]=0x0;[_0xe1b81f(0x221)]=0x0;constructor(_0x17edcd){const _0xb7c823=_0xe1b81f;this[_0xb7c823(0xea)]=_0x17edcd;}get[_0xe1b81f(0x1c9)](){const _0x30576b=_0xe1b81f;if(!this[_0x30576b(0xe2)])throw Error(_0x30576b(0x188));return this['depthView'];}[_0xe1b81f(0x1cc)](_0x306d7e,_0x4bb96a){const _0xb2a46d=_0xe1b81f;if(this[_0xb2a46d(0x238)]===_0x306d7e&&this[_0xb2a46d(0x221)]===_0x4bb96a)return;let _0x5aea3d=this['device'][_0xb2a46d(0x3b6)]({'label':'volume\x20scene\x20depth','size':[_0x306d7e,_0x4bb96a],'format':_0xb2a46d(0x19e),'usage':GPUTextureUsage[_0xb2a46d(0x142)]|GPUTextureUsage['TEXTURE_BINDING']}),_0x18ff16=this['depthTexture'];this['depthTexture']=_0x5aea3d,this[_0xb2a46d(0xe2)]=_0x5aea3d[_0xb2a46d(0x265)](),this['width']=_0x306d7e,this['height']=_0x4bb96a,_0x18ff16?.[_0xb2a46d(0x1e8)]();}['destroy'](){const _0x3f0649=_0xe1b81f;this[_0x3f0649(0x380)]?.[_0x3f0649(0x1e8)](),this['depthTexture']=null,this[_0x3f0649(0xe2)]=null,this[_0x3f0649(0x238)]=0x0,this['height']=0x0;}},_0x231398=class{[_0xe1b81f(0xea)];[_0xe1b81f(0x1c7)]=[];constructor(_0x2eb59c){const _0x5520fe=_0xe1b81f;this[_0x5520fe(0xea)]=_0x2eb59c;}get[_0xe1b81f(0x2a3)](){const _0x5206e7=_0xe1b81f;return this['resources'][_0x5206e7(0x3bd)];}['replace'](_0x394e5c){const _0x2ab5c7=_0xe1b81f;let _0x4ec757=[];try{for(let _0x25647b of _0x394e5c)_0x4ec757[_0x2ab5c7(0x1e9)](this['createResource'](_0x25647b));}catch(_0x302cc5){for(let _0x218b93 of _0x4ec757)_0x218b93['buffer'][_0x2ab5c7(0x1e8)]();throw _0x302cc5;}this[_0x2ab5c7(0x245)](),this[_0x2ab5c7(0x1c7)]=_0x4ec757;}[_0xe1b81f(0x2e5)](_0x438df8,_0x44d8bf,_0x3c7347){const _0x20510e=_0xe1b81f;for(let _0x49092f of this['resources'])_0x49092f['topology']!==_0x44d8bf||_0x49092f[_0x20510e(0x19c)]!==_0x3c7347||(_0x438df8[_0x20510e(0x278)](0x0,_0x49092f[_0x20510e(0xb1)]),_0x438df8[_0x20510e(0x2e5)](_0x49092f['vertexCount']));}[_0xe1b81f(0x1e8)](){const _0xd6f6ca=_0xe1b81f;this[_0xd6f6ca(0x245)]();}['createResource'](_0x1ba52c){const _0x54d52d=_0xe1b81f;if(_0x1ba52c[_0x54d52d(0x2c3)][_0x54d52d(0x3bd)]===0x0||_0x1ba52c[_0x54d52d(0x2c3)][_0x54d52d(0x3bd)]%0x7!=0x0)throw Error(_0x54d52d(0x2b8)+_0x1ba52c['id']+'\x20must\x20contain\x20position\x20and\x20RGBA\x20values\x20for\x20every\x20vertex.\x20场景网格顶点必须包含位置和\x20RGBA。');let _0x300395=new Float32Array(_0x1ba52c[_0x54d52d(0x2c3)]),_0x1f10be=this['device'][_0x54d52d(0x196)]({'label':_0x54d52d(0x2f1)+_0x1ba52c['id'],'size':_0x300395['byteLength'],'usage':GPUBufferUsage['VERTEX']|GPUBufferUsage[_0x54d52d(0x31e)]});return this[_0x54d52d(0xea)][_0x54d52d(0x2f6)][_0x54d52d(0x2f0)](_0x1f10be,0x0,_0x300395),{'id':_0x1ba52c['id'],'topology':_0x1ba52c['topology'],'depthMode':_0x1ba52c[_0x54d52d(0x19c)],'buffer':_0x1f10be,'vertexCount':_0x1ba52c[_0x54d52d(0x2c3)][_0x54d52d(0x3bd)]/0x7};}['destroyResources'](){const _0x5c6d7d=_0xe1b81f;for(let _0x25e26a of this[_0x5c6d7d(0x1c7)])_0x25e26a['buffer'][_0x5c6d7d(0x1e8)]();this[_0x5c6d7d(0x1c7)]=[];}},_0x56b71c=class{[_0xe1b81f(0xea)];['layout'];[_0xe1b81f(0x1c7)]=[];[_0xe1b81f(0x283)]=0x0;['resourceRebuildCount']=0x0;constructor(_0x5e8a29,_0x244f22){const _0x1e841d=_0xe1b81f;this[_0x1e841d(0xea)]=_0x5e8a29,this['layout']=_0x244f22;}get[_0xe1b81f(0x2a3)](){const _0x1aca4f=_0xe1b81f;return this['resources'][_0x1aca4f(0x3bd)];}get['statistics'](){const _0x3b196d=_0xe1b81f;return{'uniformUpdateCount':this[_0x3b196d(0x283)],'resourceRebuildCount':this[_0x3b196d(0x243)]};}[_0xe1b81f(0x27f)](_0x7b3400){const _0x2e497a=_0xe1b81f;let _0x49d59c=new Map(this[_0x2e497a(0x1c7)]['map'](_0x4e836d=>[_0x4e836d['id'],_0x4e836d])),_0x534875=[],_0x2cda65=new Set();try{for(let _0x489cf0 of _0x7b3400){if(!_0x489cf0[_0x2e497a(0x1a2)])continue;if(_0x2cda65[_0x2e497a(0x1e5)](_0x489cf0['id']))throw Error(_0x2e497a(0x29d)+_0x489cf0['id']+_0x2e497a(0x2ba));_0x2cda65[_0x2e497a(0xfd)](_0x489cf0['id']);let _0x5558ee=this['createValues'](_0x489cf0),_0xda5b76=_0x49d59c[_0x2e497a(0xd8)](_0x489cf0['id']);if(!_0xda5b76){_0x534875[_0x2e497a(0x1e9)](this['createResource'](_0x489cf0,_0x5558ee));continue;}_0x49d59c['delete'](_0x489cf0['id']),_0xda5b76[_0x2e497a(0x19c)]=_0x489cf0['depthMode'],this['valuesEqual'](_0xda5b76['values'],_0x5558ee)||(this[_0x2e497a(0xea)][_0x2e497a(0x2f6)][_0x2e497a(0x2f0)](_0xda5b76[_0x2e497a(0xb1)],0x0,_0x5558ee),_0xda5b76[_0x2e497a(0xc2)]=_0x5558ee,this[_0x2e497a(0x283)]+=0x1),_0x534875[_0x2e497a(0x1e9)](_0xda5b76);}}catch(_0x33d4a3){for(let _0x3ffa74 of _0x534875)this[_0x2e497a(0x1c7)][_0x2e497a(0x2fe)](_0x3ffa74)||_0x3ffa74[_0x2e497a(0xb1)][_0x2e497a(0x1e8)]();throw _0x33d4a3;}for(let _0x2455b8 of _0x49d59c[_0x2e497a(0xc2)]())_0x2455b8[_0x2e497a(0xb1)][_0x2e497a(0x1e8)]();this[_0x2e497a(0x1c7)]=_0x534875;}[_0xe1b81f(0x2e5)](_0x5d55c1,_0x476a73,_0xf889a9){const _0x363f1c=_0xe1b81f;_0x5d55c1[_0x363f1c(0x129)](_0x476a73);for(let _0x3f1cc4 of this[_0x363f1c(0x1c7)])_0x3f1cc4[_0x363f1c(0x19c)]===_0xf889a9&&(_0x5d55c1[_0x363f1c(0x31f)](0x3,_0x3f1cc4[_0x363f1c(0x1c6)]),_0x5d55c1['draw'](0x1800));}[_0xe1b81f(0x1e8)](){const _0x171556=_0xe1b81f;this[_0x171556(0x245)]();}['createValues'](_0x45e640){const _0x356b74=_0xe1b81f;if(!Number[_0x356b74(0x1a4)](_0x45e640[_0x356b74(0x232)])||_0x45e640['position']<0x0||_0x45e640[_0x356b74(0x232)]>0x1)throw Error(_0x356b74(0x18e)+_0x45e640['id']+_0x356b74(0xbe));let _0x1f1888=_0x45e640[_0x356b74(0xd0)]==='x'?0x0:_0x45e640['axis']==='y'?0x1:0x2,_0x39d0e3=_0x45e640[_0x356b74(0x99)]??[0x0,0x0,0x0,0x0];if(_0x39d0e3[_0x356b74(0x3ce)](_0xa9ba2a=>!Number[_0x356b74(0x1a4)](_0xa9ba2a)||_0xa9ba2a<0x0||_0xa9ba2a>0x1))throw Error(_0x356b74(0x18e)+_0x45e640['id']+'\x20plate\x20color\x20must\x20use\x20values\x20from\x20zero\x20through\x20one.\x20体积切面底板颜色必须位于零至一。');return new Float32Array([_0x1f1888,_0x45e640[_0x356b74(0x232)],_0x45e640[_0x356b74(0x3f5)]??0x1,0x0,..._0x39d0e3]);}[_0xe1b81f(0x3e5)](_0x164de1,_0xed4452){const _0x30c999=_0xe1b81f;let _0x1f957a=this[_0x30c999(0xea)]['createBuffer']({'label':'volume\x20slice\x20'+_0x164de1['id'],'size':0x20,'usage':GPUBufferUsage[_0x30c999(0x223)]|GPUBufferUsage[_0x30c999(0x31e)]});this['device'][_0x30c999(0x2f6)][_0x30c999(0x2f0)](_0x1f957a,0x0,_0xed4452);let _0x41bf86=this[_0x30c999(0xea)][_0x30c999(0x39d)]({'layout':this['layout'],'entries':[{'binding':0x0,'resource':{'buffer':_0x1f957a}}]});return this['resourceRebuildCount']+=0x1,{'id':_0x164de1['id'],'depthMode':_0x164de1[_0x30c999(0x19c)],'buffer':_0x1f957a,'bindGroup':_0x41bf86,'values':_0xed4452};}['valuesEqual'](_0x681007,_0x98abb3){for(let _0x39da15=0x0;_0x39da15<_0x681007['length'];_0x39da15+=0x1)if(_0x681007[_0x39da15]!==_0x98abb3[_0x39da15])return!0x1;return!0x0;}[_0xe1b81f(0x245)](){const _0x48b2e7=_0xe1b81f;for(let _0x343868 of this[_0x48b2e7(0x1c7)])_0x343868['buffer'][_0x48b2e7(0x1e8)]();this[_0x48b2e7(0x1c7)]=[];}};let _0x26ed95=(_0x2dfff7,_0x4c4247,_0x27a52a)=>{const _0x41d290=_0xe1b81f;let _0x318180=_0x2dfff7[_0x41d290(0x196)]({'label':_0x27a52a,'size':Math[_0x41d290(0x272)](0x4,_0x4c4247[_0x41d290(0x2d2)]),'usage':GPUBufferUsage[_0x41d290(0x18c)]|GPUBufferUsage[_0x41d290(0x31e)]});return _0x4c4247[_0x41d290(0x2d2)]>0x0&&_0x2dfff7[_0x41d290(0x2f6)]['writeBuffer'](_0x318180,0x0,_0x4c4247),_0x318180;},_0x273051=(_0x1738a7,_0x1d267f)=>{const _0x1e9c38=_0xe1b81f;if(_0x1738a7[_0x1e9c38(0x3bd)]===0x0||_0x1d267f[_0x1e9c38(0x3bd)]===0x0)throw Error(_0x1e9c38(0x34e));for(let _0x4fb286=0x1;_0x4fb286<_0x1738a7[_0x1e9c38(0x3bd)];_0x4fb286+=0x1)if(_0x1738a7[_0x4fb286]['value']<_0x1738a7[_0x4fb286-0x1][_0x1e9c38(0x375)])throw Error(_0x1e9c38(0x3a3));for(let _0x2c21a6=0x0;_0x2c21a6<_0x1d267f[_0x1e9c38(0x3bd)];_0x2c21a6+=0x1){if(_0x1d267f[_0x2c21a6][_0x1e9c38(0x3f5)]<0x0||_0x1d267f[_0x2c21a6][_0x1e9c38(0x3f5)]>0x1)throw Error(_0x1e9c38(0xc8));if(_0x2c21a6>0x0&&_0x1d267f[_0x2c21a6][_0x1e9c38(0x375)]<_0x1d267f[_0x2c21a6-0x1]['value'])throw Error(_0x1e9c38(0x3d7));}};var _0x2c7fa3=class{[_0xe1b81f(0xea)];[_0xe1b81f(0xe7)]=null;['colorBuffer']=null;[_0xe1b81f(0x2df)]=null;[_0xe1b81f(0x3da)]=null;[_0xe1b81f(0x12d)]=0x0;[_0xe1b81f(0x217)]=0x0;constructor(_0x4345ad){const _0x159c0c=_0xe1b81f;this[_0x159c0c(0xea)]=_0x4345ad;}get[_0xe1b81f(0x2ab)](){const _0x326d97=_0xe1b81f;return[this[_0x326d97(0x12d)],this[_0x326d97(0x217)]];}[_0xe1b81f(0x2d4)](_0x496dd4,_0x1b8d5d){const _0x1e3e97=_0xe1b81f;_0x273051(_0x496dd4,_0x1b8d5d);let _0x295a47=new Float32Array(_0x496dd4[_0x1e3e97(0x3bd)]),_0x2eea4c=new Float32Array(_0x496dd4[_0x1e3e97(0x3bd)]*0x4),_0x1ae170=new Float32Array(_0x1b8d5d[_0x1e3e97(0x3bd)]),_0xc5dd99=new Float32Array(_0x1b8d5d[_0x1e3e97(0x3bd)]);for(let _0x9165cc=0x0;_0x9165cc<_0x496dd4[_0x1e3e97(0x3bd)];_0x9165cc+=0x1)_0x295a47[_0x9165cc]=_0x496dd4[_0x9165cc]['value'],_0x2eea4c[_0x1e3e97(0x326)](_0x496dd4[_0x9165cc][_0x1e3e97(0x315)],_0x9165cc*0x4);for(let _0x44012e=0x0;_0x44012e<_0x1b8d5d[_0x1e3e97(0x3bd)];_0x44012e+=0x1)_0x1ae170[_0x44012e]=_0x1b8d5d[_0x44012e]['value'],_0xc5dd99[_0x44012e]=_0x1b8d5d[_0x44012e][_0x1e3e97(0x3f5)];let _0x518860=[_0x26ed95(this[_0x1e3e97(0xea)],_0x295a47,_0x1e3e97(0x12c)),_0x26ed95(this[_0x1e3e97(0xea)],_0x2eea4c,'volume\x20color\x20stop\x20colors'),_0x26ed95(this['device'],_0x1ae170,'volume\x20opacity\x20stop\x20values'),_0x26ed95(this['device'],_0xc5dd99,_0x1e3e97(0x334))];this[_0x1e3e97(0x28f)](),this['colorValuesBuffer']=_0x518860[0x0],this['colorBuffer']=_0x518860[0x1],this[_0x1e3e97(0x2df)]=_0x518860[0x2],this['opacityBuffer']=_0x518860[0x3],this[_0x1e3e97(0x12d)]=_0x496dd4[_0x1e3e97(0x3bd)],this[_0x1e3e97(0x217)]=_0x1b8d5d[_0x1e3e97(0x3bd)];}[_0xe1b81f(0x39d)](_0x179173){const _0x4b9398=_0xe1b81f;if(!this[_0x4b9398(0xe7)]||!this[_0x4b9398(0x2b9)]||!this['opacityValuesBuffer']||!this[_0x4b9398(0x3da)])throw Error(_0x4b9398(0x204));return this[_0x4b9398(0xea)][_0x4b9398(0x39d)]({'label':_0x4b9398(0x3f0),'layout':_0x179173,'entries':[{'binding':0x0,'resource':{'buffer':this[_0x4b9398(0xe7)]}},{'binding':0x1,'resource':{'buffer':this[_0x4b9398(0x2b9)]}},{'binding':0x2,'resource':{'buffer':this[_0x4b9398(0x2df)]}},{'binding':0x3,'resource':{'buffer':this[_0x4b9398(0x3da)]}}]});}[_0xe1b81f(0x1e8)](){const _0x227d3e=_0xe1b81f;this[_0x227d3e(0x28f)](),this['colorStopCount']=0x0,this[_0x227d3e(0x217)]=0x0;}[_0xe1b81f(0x28f)](){const _0x5d6027=_0xe1b81f;this[_0x5d6027(0xe7)]?.[_0x5d6027(0x1e8)](),this[_0x5d6027(0x2b9)]?.[_0x5d6027(0x1e8)](),this[_0x5d6027(0x2df)]?.[_0x5d6027(0x1e8)](),this[_0x5d6027(0x3da)]?.[_0x5d6027(0x1e8)](),this['colorValuesBuffer']=null,this[_0x5d6027(0x2b9)]=null,this[_0x5d6027(0x2df)]=null,this[_0x5d6027(0x3da)]=null;}};let _0x51be08=0x200*0x400*0x400,_0x2ac2fb=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],_0x26915f=[{'value':0x0,'color':[0x0,0x0,0x1,0x1]},{'value':0x1,'color':[0x1,0x0,0x0,0x1]}],_0x3a4e85=[{'value':0x0,'opacity':0x0},{'value':0x1,'opacity':0x1}],_0x320854=()=>({'color':{'srcFactor':_0xe1b81f(0x1c0),'dstFactor':'one-minus-src-alpha','operation':_0xe1b81f(0xfd)},'alpha':{'srcFactor':_0xe1b81f(0x1c0),'dstFactor':_0xe1b81f(0x1e0),'operation':_0xe1b81f(0xfd)}}),_0x4f7376=(_0x5e4468,_0x5b4f64)=>{const _0x1c67a0=_0xe1b81f;if(_0x5e4468[_0x1c67a0(0x3bd)]!==0x10||_0x5e4468[_0x1c67a0(0x3ce)](_0x381dd1=>!Number['isFinite'](_0x381dd1)))throw Error(_0x5b4f64+'\x20must\x20contain\x20sixteen\x20finite\x20values.\x20'+_0x5b4f64+_0x1c67a0(0x234));},_0x5e541e=(_0x1ce70d,_0x2b2164)=>{const _0x50677e=_0xe1b81f;if(!Number[_0x50677e(0x1a4)](_0x1ce70d)||_0x1ce70d<0x0)throw Error(_0x2b2164+'\x20must\x20be\x20a\x20non-negative\x20finite\x20value.\x20'+_0x2b2164+_0x50677e(0x28a));return _0x1ce70d;},_0x17c455=(_0x424251,_0x3390a6)=>{const _0x5274f4=_0xe1b81f;if(!Number[_0x5274f4(0x1a4)](_0x424251)||_0x424251<=0x0)throw Error(_0x3390a6+'\x20must\x20be\x20a\x20positive\x20finite\x20value.\x20'+_0x3390a6+_0x5274f4(0x2cc));return _0x424251;},_0x253ccc=_0x2bbe3b=>_0x2bbe3b[_0xe1b81f(0x2bb)](_0x4dae48=>({..._0x4dae48,'vertices':new Float32Array(_0x4dae48[_0xe1b81f(0x2c3)])})),_0x20329e=_0xed5c06=>{const _0x476448=_0xe1b81f;let _0x1c3ba3=_0xed5c06['brickWidth']+_0xed5c06[_0x476448(0x1e7)]*0x2,_0x2e278f=_0xed5c06[_0x476448(0x365)]+_0xed5c06[_0x476448(0x1e7)]*0x2,_0x489132=_0xed5c06[_0x476448(0xf2)]+_0xed5c06[_0x476448(0x1e7)]*0x2;return Math['ceil'](_0x1c3ba3*Float32Array['BYTES_PER_ELEMENT']/0x100)*0x100*_0x2e278f*_0x489132+0x10;};var _0x2942e8=class{[_0xe1b81f(0x37a)];[_0xe1b81f(0x3ca)]=_0xe1b81f(0x27a);['canvas']=null;['adapter']=null;[_0xe1b81f(0xea)]=null;['context']=null;['format']=null;[_0xe1b81f(0xdc)]=null;['volumeParamsBuffer']=null;[_0xe1b81f(0x150)]=null;['sceneBindGroupLayout']=null;[_0xe1b81f(0x3a5)]=null;[_0xe1b81f(0x2f3)]=null;[_0xe1b81f(0x1b2)]=null;[_0xe1b81f(0x3cf)]=null;[_0xe1b81f(0x1b3)]=null;[_0xe1b81f(0x239)]=null;['transferBindGroup']=null;['volumePipeline']=null;[_0xe1b81f(0x1ed)]=null;[_0xe1b81f(0x235)]=null;['overlayTrianglePipeline']=null;[_0xe1b81f(0x23b)]=null;[_0xe1b81f(0x26b)]=null;[_0xe1b81f(0x23f)]=null;[_0xe1b81f(0xcf)]=null;[_0xe1b81f(0x95)]=null;['transferResources']=null;[_0xe1b81f(0x2b1)]=null;['sliceResources']=null;[_0xe1b81f(0xfb)]=null;[_0xe1b81f(0xc3)]=null;[_0xe1b81f(0x2f4)]={'viewProjection':_0x2ac2fb,'inverseViewProjection':_0x2ac2fb,'cameraPosition':[0x0,0x0,0x2]};[_0xe1b81f(0x34c)]=_0x2ac2fb;[_0xe1b81f(0x174)]=_0x2ac2fb;[_0xe1b81f(0x3ef)]=[0x0,0x0,0x0];[_0xe1b81f(0x1e6)]=[0x1,0x1,0x1];[_0xe1b81f(0x1b0)]=_0xe1b81f(0x1ce);[_0xe1b81f(0x3f5)]=0.3;[_0xe1b81f(0x3f7)]=0x1;[_0xe1b81f(0x335)]=0.005;[_0xe1b81f(0x3bb)]=0x1;[_0xe1b81f(0x14e)]=_0xe1b81f(0x385);['geographicTransform']=null;['colorStops']=_0x26915f;[_0xe1b81f(0x12a)]=_0x3a4e85;['frameIndex']=0x0;['submittedFrameCount']=0x0;[_0xe1b81f(0x238)]=0x0;['height']=0x0;[_0xe1b81f(0x118)]=0x0;[_0xe1b81f(0x2a6)]=0x0;[_0xe1b81f(0x319)]=[];[_0xe1b81f(0x210)]=[];[_0xe1b81f(0x2cd)]=[];[_0xe1b81f(0x1dd)]=new Map();[_0xe1b81f(0x25e)]=[];[_0xe1b81f(0x2b4)]=null;[_0xe1b81f(0x26d)]=0x0;[_0xe1b81f(0x13b)]=null;['uploadStagingBufferSize']=0x0;[_0xe1b81f(0x369)]=0x0;[_0xe1b81f(0xff)]=0x0;[_0xe1b81f(0x279)]=0x0;['frameInFlight']=!0x1;[_0xe1b81f(0x371)]=null;constructor(_0xe5cfdd={}){const _0x3981cb=_0xe1b81f;this[_0x3981cb(0x37a)]={..._0xe5cfdd};}get[_0xe1b81f(0x23a)](){return this['lifecycleState'];}get[_0xe1b81f(0x112)](){const _0x587ed5=_0xe1b81f;let _0x2e351d=this[_0x587ed5(0x95)]?.['statistics']??{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this['options'][_0x587ed5(0x249)]??this['options'][_0x587ed5(0x168)]??_0x51be08,'budgetLimited':!0x1,'skippedSamples':0x0,'skippedCells':0x0},_0x49f144=this[_0x587ed5(0x2af)]?.[_0x587ed5(0x112)]??{'uniformUpdateCount':0x0,'resourceRebuildCount':0x0};return{'logicalBrickCount':_0x2e351d[_0x587ed5(0x24f)],'residentBrickCount':this[_0x587ed5(0x95)]?.['residentBrickCount']??0x0,'pendingBrickCount':0x0,'atlasCapacity':_0x2e351d['atlasCapacity'],'gpuBytes':_0x2e351d['gpuBytes'],'memoryLimitBytes':_0x2e351d[_0x587ed5(0x28c)],'budgetLimited':_0x2e351d[_0x587ed5(0x236)],'frameTimeMilliseconds':this[_0x587ed5(0x2a6)],'submittedFrameCount':this['submittedFrameCount'],'uploadedBrickCount':this[_0x587ed5(0x369)],'uploadBatchCount':this[_0x587ed5(0xff)],'maximumUploadBatchBytes':this[_0x587ed5(0x279)],'sliceUniformUpdateCount':_0x49f144['uniformUpdateCount'],'sliceResourceRebuildCount':_0x49f144[_0x587ed5(0x243)],'skippedSamples':_0x2e351d['skippedSamples'],'skippedCells':_0x2e351d['skippedCells']};}['setFrameAvailableCallback'](_0x56c6ea){this['frameAvailableCallback']=_0x56c6ea;}async[_0xe1b81f(0x11f)](_0x51e91d){const _0xa1e54c=_0xe1b81f;if(this[_0xa1e54c(0x3ca)]===_0xa1e54c(0x2a7))throw Error(_0xa1e54c(0x317));let _0x3279d2=++this[_0xa1e54c(0x118)];this['releaseGpuResources'](),this[_0xa1e54c(0xc7)]=_0x51e91d,this[_0xa1e54c(0x3ca)]=_0xa1e54c(0x31b);let _0x1ff04c=navigator['gpu'];if(!_0x1ff04c)throw this[_0xa1e54c(0x3ca)]=_0xa1e54c(0x27a),Error(_0xa1e54c(0x1e4));let _0x34ecde=await _0x1ff04c[_0xa1e54c(0x396)]({'powerPreference':this['options']['powerPreference']??_0xa1e54c(0x122)});if(_0x3279d2!==this[_0xa1e54c(0x118)])return;if(!_0x34ecde)throw this['lifecycleState']=_0xa1e54c(0x27a),Error(_0xa1e54c(0xf0));let _0x32d234=await _0x34ecde[_0xa1e54c(0x36c)]();if(_0x3279d2!==this['initializationGeneration']){_0x32d234[_0xa1e54c(0x1e8)]();return;}let _0x5efd93=_0x51e91d['getContext']('webgpu');if(!_0x5efd93)throw _0x32d234[_0xa1e54c(0x1e8)](),this['lifecycleState']='idle',Error('Failed\x20to\x20create\x20a\x20WebGPU\x20canvas\x20context\x20for\x20the\x20volume\x20scene.\x20无法为体积场景创建\x20WebGPU\x20Canvas\x20上下文。');let _0x56e8a1=_0x1ff04c[_0xa1e54c(0x37b)]();_0x5efd93[_0xa1e54c(0x3d2)]({'device':_0x32d234,'format':_0x56e8a1,'alphaMode':'premultiplied','usage':GPUTextureUsage[_0xa1e54c(0x142)]|GPUTextureUsage[_0xa1e54c(0xe3)]}),this[_0xa1e54c(0x3c7)]=_0x34ecde,this[_0xa1e54c(0xea)]=_0x32d234,this[_0xa1e54c(0x1cf)]=_0x5efd93,this[_0xa1e54c(0x36b)]=_0x56e8a1,_0x32d234[_0xa1e54c(0x2f8)]('validation'),this[_0xa1e54c(0xd1)]();let _0x4fda54=await _0x32d234[_0xa1e54c(0x3b1)]();if(_0x4fda54)throw this[_0xa1e54c(0xb0)](),this[_0xa1e54c(0x3ca)]=_0xa1e54c(0x27a),Error('Failed\x20to\x20create\x20WebGPU\x20volume\x20pipelines:\x20'+_0x4fda54[_0xa1e54c(0x34a)]+_0xa1e54c(0x1e3));if(this[_0xa1e54c(0x10d)](_0x32d234),this[_0xa1e54c(0x3ca)]=_0xa1e54c(0x277),this['metadata']){this[_0xa1e54c(0x38b)](this['metadata']);let _0xd79557=Array[_0xa1e54c(0x1bf)](this[_0xa1e54c(0x1dd)][_0xa1e54c(0x166)]());await Promise[_0xa1e54c(0x224)](_0xd79557[_0xa1e54c(0x2bb)](([_0x4a45c1,_0x3ca04e])=>this[_0xa1e54c(0x29c)]({'logicalIndex':_0x4a45c1,'values':_0x3ca04e},!0x1)));}this[_0xa1e54c(0x13c)](),this[_0xa1e54c(0x254)]()['replace'](this[_0xa1e54c(0x319)]),this[_0xa1e54c(0x271)]()[_0xa1e54c(0x27f)](this['cachedSlices']),this['getAxisResources']()[_0xa1e54c(0x27f)](this[_0xa1e54c(0x2cd)]),this[_0xa1e54c(0x1cc)](_0x51e91d[_0xa1e54c(0x238)]||_0x51e91d[_0xa1e54c(0xeb)]||0x1,_0x51e91d[_0xa1e54c(0x221)]||_0x51e91d[_0xa1e54c(0x363)]||0x1);}[_0xe1b81f(0x24b)](_0x214dac){const _0x26cbe9=_0xe1b81f;this[_0x26cbe9(0x26d)]+=0x1,this[_0x26cbe9(0x32b)](new DOMException('Volume\x20brick\x20upload\x20was\x20superseded\x20by\x20a\x20new\x20source.\x20体积砖上传已被新数据源替代。',_0x26cbe9(0x32c))),this[_0x26cbe9(0xc3)]={..._0x214dac},this['cachedBricks'][_0x26cbe9(0x34d)](),this[_0x26cbe9(0x369)]=0x0,this[_0x26cbe9(0xff)]=0x0,this[_0x26cbe9(0x279)]=0x0,this[_0x26cbe9(0x3ca)]==='ready'&&this[_0x26cbe9(0x38b)](_0x214dac);}[_0xe1b81f(0x199)](_0x5893ce){const _0x1d2ace=_0xe1b81f;return this[_0x1d2ace(0x29c)](_0x5893ce,!0x0);}[_0xe1b81f(0x11e)](_0x4cc8e9){const _0x1c3997=_0xe1b81f;this['getAtlas']()[_0x1c3997(0x325)](_0x4cc8e9,this[_0x1c3997(0x1f0)]);for(let _0x47232f of _0x4cc8e9){let _0x1ba07a=this[_0x1c3997(0x1dd)][_0x1c3997(0xd8)](_0x47232f);_0x1ba07a&&(this[_0x1c3997(0x1dd)][_0x1c3997(0xee)](_0x47232f),this[_0x1c3997(0x1dd)][_0x1c3997(0x326)](_0x47232f,_0x1ba07a));}}[_0xe1b81f(0xf5)](_0x3f4898){const _0x873ca5=_0xe1b81f;_0x4f7376(_0x3f4898[_0x873ca5(0x163)],'viewProjection'),_0x4f7376(_0x3f4898[_0x873ca5(0x322)],_0x873ca5(0x322)),this[_0x873ca5(0x2f4)]={'viewProjection':[..._0x3f4898[_0x873ca5(0x163)]],'inverseViewProjection':[..._0x3f4898['inverseViewProjection']],'cameraPosition':[..._0x3f4898[_0x873ca5(0x280)]]};}[_0xe1b81f(0x13e)](_0x37a030){const _0x214ea5=_0xe1b81f;this[_0x214ea5(0x319)]=_0x253ccc(_0x37a030),this[_0x214ea5(0x254)]()[_0x214ea5(0x27f)](_0x37a030);}[_0xe1b81f(0x134)](_0x395176){const _0x2e704c=_0xe1b81f;this[_0x2e704c(0x210)]=_0x395176[_0x2e704c(0x2bb)](_0x514233=>({..._0x514233})),this[_0x2e704c(0x271)]()['replace'](_0x395176);}[_0xe1b81f(0xe6)](_0x50c924){const _0x1e8f58=_0xe1b81f;this['cachedAxes']=_0x253ccc(_0x50c924),this[_0x1e8f58(0x1ba)]()['replace'](_0x50c924);}[_0xe1b81f(0x391)](_0x5331af,_0x570d01,_0x222c81){const _0x3074ed=_0xe1b81f;this[_0x3074ed(0x2ae)]=_0x5331af[_0x3074ed(0x2bb)](_0x25d10d=>({'value':_0x25d10d[_0x3074ed(0x375)],'color':[..._0x25d10d[_0x3074ed(0x315)]]})),this[_0x3074ed(0x12a)]=_0x570d01[_0x3074ed(0x2bb)](_0x1a2d18=>({..._0x1a2d18})),_0x222c81&&(this[_0x3074ed(0x14e)]=_0x222c81),this['lifecycleState']===_0x3074ed(0x277)&&this[_0x3074ed(0x13c)]();}['update'](_0x2a24c5){const _0x16f9ff=_0xe1b81f;_0x2a24c5[_0x16f9ff(0x34c)]&&(_0x4f7376(_0x2a24c5[_0x16f9ff(0x34c)],'modelMatrix'),this[_0x16f9ff(0x34c)]=[..._0x2a24c5[_0x16f9ff(0x34c)]]),_0x2a24c5[_0x16f9ff(0x174)]&&(_0x4f7376(_0x2a24c5[_0x16f9ff(0x174)],_0x16f9ff(0x174)),this['inverseModelMatrix']=[..._0x2a24c5[_0x16f9ff(0x174)]]),_0x2a24c5[_0x16f9ff(0x3ef)]&&(this[_0x16f9ff(0x3ef)]=[..._0x2a24c5[_0x16f9ff(0x3ef)]]),_0x2a24c5[_0x16f9ff(0x1e6)]&&(this[_0x16f9ff(0x1e6)]=[..._0x2a24c5['clipMaximum']]),_0x2a24c5[_0x16f9ff(0x1b0)]&&(this[_0x16f9ff(0x1b0)]=_0x2a24c5[_0x16f9ff(0x1b0)]),_0x2a24c5[_0x16f9ff(0x3f5)]!==void 0x0&&(this[_0x16f9ff(0x3f5)]=_0x5e541e(_0x2a24c5['opacity'],'opacity')),_0x2a24c5[_0x16f9ff(0x3f7)]!==void 0x0&&(this['densityScale']=_0x5e541e(_0x2a24c5[_0x16f9ff(0x3f7)],'densityScale')),_0x2a24c5[_0x16f9ff(0x335)]!==void 0x0&&(this[_0x16f9ff(0x335)]=_0x17c455(_0x2a24c5[_0x16f9ff(0x335)],'stepLength')),_0x2a24c5['volumeDimFactor']!==void 0x0&&(this[_0x16f9ff(0x3bb)]=_0x5e541e(_0x2a24c5['volumeDimFactor'],_0x16f9ff(0x3bb))),_0x2a24c5['colorMode']&&(this[_0x16f9ff(0x14e)]=_0x2a24c5['colorMode']),_0x2a24c5[_0x16f9ff(0x1be)]!==void 0x0&&(this[_0x16f9ff(0x1be)]=_0x2a24c5[_0x16f9ff(0x1be)]?{..._0x2a24c5[_0x16f9ff(0x1be)]}:null);}[_0xe1b81f(0x1cc)](_0x54823c,_0x3d6dc8){const _0x29833a=_0xe1b81f;if(!Number[_0x29833a(0xde)](_0x54823c)||!Number[_0x29833a(0xde)](_0x3d6dc8)||_0x54823c<=0x0||_0x3d6dc8<=0x0)throw Error('WebGPU\x20volume\x20scene\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积场景尺寸必须是正整数。');let _0x368761=this['getCanvas']();_0x368761[_0x29833a(0x238)]=_0x54823c,_0x368761[_0x29833a(0x221)]=_0x3d6dc8,this[_0x29833a(0x238)]=_0x54823c,this[_0x29833a(0x221)]=_0x3d6dc8,this['getAttachments']()[_0x29833a(0x1cc)](_0x54823c,_0x3d6dc8),this[_0x29833a(0x126)]();}[_0xe1b81f(0x260)](){const _0x1ded12=_0xe1b81f;if(this[_0x1ded12(0x3ca)]!==_0x1ded12(0x277)||!this[_0x1ded12(0xc3)]||this['width']<=0x0||this[_0x1ded12(0x221)]<=0x0||this[_0x1ded12(0xf4)])return!0x1;let _0x24eee7=performance[_0x1ded12(0x38c)]();this[_0x1ded12(0x1f0)]+=0x1,this[_0x1ded12(0xcb)]();let _0x35b169=this['getDevice'](),_0x14ebb3=_0x35b169['createCommandEncoder']({'label':'volume\x20scene\x20frame'}),_0x3cd144=this[_0x1ded12(0x3dd)]()[_0x1ded12(0x219)]()[_0x1ded12(0x265)]();return this[_0x1ded12(0x311)](_0x14ebb3,_0x3cd144),this[_0x1ded12(0x275)](_0x14ebb3,_0x3cd144),this[_0x1ded12(0x2e3)](_0x14ebb3,_0x3cd144),_0x35b169[_0x1ded12(0x2f6)]['submit']([_0x14ebb3[_0x1ded12(0x39c)]()]),this[_0x1ded12(0xf4)]=!0x0,this[_0x1ded12(0x11c)]+=0x1,this[_0x1ded12(0x2a6)]=Math[_0x1ded12(0x272)](0.000001,performance[_0x1ded12(0x38c)]()-_0x24eee7),_0x35b169[_0x1ded12(0x2f6)][_0x1ded12(0x3d9)]()['then'](()=>{const _0x4397f1=_0x1ded12;this[_0x4397f1(0xea)]!==_0x35b169||this['lifecycleState']!=='ready'||(this[_0x4397f1(0xf4)]=!0x1,this[_0x4397f1(0x371)]?.());})[_0x1ded12(0xf7)](()=>{const _0x564d92=_0x1ded12;this['device']===_0x35b169&&(this[_0x564d92(0xf4)]=!0x1);}),!0x0;}async['captureFrame'](){const _0x55635b=_0xe1b81f;if(this[_0x55635b(0x3ca)]!==_0x55635b(0x277)||!this[_0x55635b(0xc3)]||this[_0x55635b(0x238)]<=0x0||this['height']<=0x0)throw Error('WebGPU\x20volume\x20renderer\x20is\x20not\x20ready\x20for\x20frame\x20capture.\x20WebGPU\x20体积渲染器尚不能读取帧。');let _0x244490=this[_0x55635b(0x227)](),_0x1b4a6c=this[_0x55635b(0x238)]*0x4,_0x284b2d=Math[_0x55635b(0xa8)](_0x1b4a6c/0x100)*0x100,_0x1091de=_0x244490[_0x55635b(0x196)]({'label':_0x55635b(0x3dc),'size':_0x284b2d*this['height'],'usage':GPUBufferUsage[_0x55635b(0x31e)]|GPUBufferUsage[_0x55635b(0x190)]});_0x244490[_0x55635b(0x2f8)](_0x55635b(0x25c)),this[_0x55635b(0x1f0)]+=0x1,this[_0x55635b(0xcb)]();let _0x8a990d=_0x244490[_0x55635b(0x27c)]({'label':_0x55635b(0x3e0)}),_0x3d5d4a=this[_0x55635b(0x3dd)]()[_0x55635b(0x219)](),_0x148dc9=_0x3d5d4a[_0x55635b(0x265)]();this[_0x55635b(0x311)](_0x8a990d,_0x148dc9),this[_0x55635b(0x275)](_0x8a990d,_0x148dc9),this['encodeOverlayPass'](_0x8a990d,_0x148dc9),_0x8a990d[_0x55635b(0x180)]({'texture':_0x3d5d4a},{'buffer':_0x1091de,'bytesPerRow':_0x284b2d,'rowsPerImage':this[_0x55635b(0x221)]},[this[_0x55635b(0x238)],this[_0x55635b(0x221)]]),_0x244490[_0x55635b(0x2f6)][_0x55635b(0x143)]([_0x8a990d[_0x55635b(0x39c)]()]);let _0x5ec7b1=await _0x244490[_0x55635b(0x3b1)]();if(_0x5ec7b1)throw _0x1091de['destroy'](),Error('WebGPU\x20volume\x20frame\x20capture\x20failed:\x20'+_0x5ec7b1[_0x55635b(0x34a)]+_0x55635b(0x314));await _0x1091de[_0x55635b(0x282)](GPUMapMode[_0x55635b(0x293)]);let _0x5d0fb4=new Uint8Array(_0x1091de['getMappedRange']()),_0x5e1cf7=new Uint8Array(_0x1b4a6c*this['height']),_0x2d8288=this[_0x55635b(0x36f)]()===_0x55635b(0x2f9);for(let _0xfca60e=0x0;_0xfca60e<this[_0x55635b(0x221)];_0xfca60e+=0x1){let _0x5ab7a3=_0x5d0fb4[_0x55635b(0x152)](_0xfca60e*_0x284b2d,_0xfca60e*_0x284b2d+_0x1b4a6c),_0x54f1db=_0xfca60e*_0x1b4a6c;if(!_0x2d8288){_0x5e1cf7['set'](_0x5ab7a3,_0x54f1db);continue;}for(let _0x2984f7=0x0;_0x2984f7<this[_0x55635b(0x238)];_0x2984f7+=0x1){let _0x106a7d=_0x2984f7*0x4,_0x37bbba=_0x54f1db+_0x106a7d;_0x5e1cf7[_0x37bbba]=_0x5ab7a3[_0x106a7d+0x2],_0x5e1cf7[_0x37bbba+0x1]=_0x5ab7a3[_0x106a7d+0x1],_0x5e1cf7[_0x37bbba+0x2]=_0x5ab7a3[_0x106a7d],_0x5e1cf7[_0x37bbba+0x3]=_0x5ab7a3[_0x106a7d+0x3];}}return _0x1091de['unmap'](),_0x1091de[_0x55635b(0x1e8)](),this[_0x55635b(0x11c)]+=0x1,{'width':this[_0x55635b(0x238)],'height':this[_0x55635b(0x221)],'pixels':_0x5e1cf7};}[_0xe1b81f(0x1e8)](){const _0x297fdf=_0xe1b81f;this[_0x297fdf(0x3ca)]!==_0x297fdf(0x2a7)&&(++this[_0x297fdf(0x118)],this[_0x297fdf(0xb0)](),this[_0x297fdf(0xc7)]=null,this[_0x297fdf(0xc3)]=null,this[_0x297fdf(0x371)]=null,this[_0x297fdf(0x3ca)]=_0x297fdf(0x2a7));}[_0xe1b81f(0xd1)](){const _0x201d9b=_0xe1b81f;let _0x2e0805=this[_0x201d9b(0x227)]();this[_0x201d9b(0xdc)]=_0x2e0805['createBuffer']({'label':_0x201d9b(0x36a),'size':0x190,'usage':GPUBufferUsage[_0x201d9b(0x223)]|GPUBufferUsage[_0x201d9b(0x31e)]}),this['volumeParamsBuffer']=_0x2e0805[_0x201d9b(0x196)]({'label':_0x201d9b(0x383),'size':0x60,'usage':GPUBufferUsage[_0x201d9b(0x223)]|GPUBufferUsage['COPY_DST']}),this[_0x201d9b(0x150)]=_0x2e0805[_0x201d9b(0x3ad)]({'label':_0x201d9b(0xe4),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x201d9b(0x23d)]|GPUShaderStage['FRAGMENT'],'buffer':{'type':_0x201d9b(0x14b)}}]}),this[_0x201d9b(0x3b8)]=_0x2e0805['createBindGroupLayout']({'label':_0x201d9b(0x30c),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x201d9b(0x23d)]|GPUShaderStage[_0x201d9b(0x29e)],'buffer':{'type':_0x201d9b(0x14b)}},{'binding':0x1,'visibility':GPUShaderStage[_0x201d9b(0x29e)],'texture':{'sampleType':_0x201d9b(0x3e6)}}]}),this[_0x201d9b(0x3a5)]=_0x2e0805[_0x201d9b(0x3ad)]({'label':'volume\x20atlas\x20bind\x20group\x20layout','entries':[...Array['from']({'length':0x8},(_0x3e1b71,_0x1d1ac3)=>({'binding':_0x1d1ac3,'visibility':GPUShaderStage[_0x201d9b(0x29e)],'texture':{'sampleType':_0x201d9b(0x1da),'viewDimension':'3d'}})),{'binding':0x8,'visibility':GPUShaderStage[_0x201d9b(0x29e)],'buffer':{'type':_0x201d9b(0x298)}},{'binding':0x9,'visibility':GPUShaderStage[_0x201d9b(0x29e)],'buffer':{'type':_0x201d9b(0x14b)}}]}),this['transferBindGroupLayout']=_0x2e0805[_0x201d9b(0x3ad)]({'label':_0x201d9b(0x14c),'entries':[0x0,0x1,0x2,0x3][_0x201d9b(0x2bb)](_0x1fbce8=>({'binding':_0x1fbce8,'visibility':GPUShaderStage[_0x201d9b(0x29e)],'buffer':{'type':_0x201d9b(0x298)}}))}),this['sliceBindGroupLayout']=_0x2e0805[_0x201d9b(0x3ad)]({'label':_0x201d9b(0x3f6),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x201d9b(0x23d)]|GPUShaderStage['FRAGMENT'],'buffer':{'type':_0x201d9b(0x14b)}}]}),this['attachments']=new _0x44ce4a(_0x2e0805),this[_0x201d9b(0x17d)]=new _0x2c7fa3(_0x2e0805),this[_0x201d9b(0x2b1)]=new _0x231398(_0x2e0805),this[_0x201d9b(0x2af)]=new _0x56b71c(_0x2e0805,this['getSliceBindGroupLayout']()),this[_0x201d9b(0xfb)]=new _0x231398(_0x2e0805),this[_0x201d9b(0x1fc)]();}[_0xe1b81f(0x1fc)](){const _0x59f6d2=_0xe1b81f;let _0x543e7c=this[_0x59f6d2(0x227)](),_0x3a1bbb=this[_0x59f6d2(0x36f)](),_0x31fdfb=this['getGeometryBindGroupLayout'](),_0x524cc7=this[_0x59f6d2(0x237)](),_0x372399=_0x543e7c[_0x59f6d2(0xe9)]({'label':_0x59f6d2(0x377),'code':_0x5987a7}),_0x97598a={'module':_0x372399,'entryPoint':'vertexMain','buffers':[{'arrayStride':0x1c,'attributes':[{'shaderLocation':0x0,'offset':0x0,'format':_0x59f6d2(0xc1)},{'shaderLocation':0x1,'offset':0xc,'format':_0x59f6d2(0x1ee)}]}]},_0x2afc04={'module':_0x372399,'entryPoint':_0x59f6d2(0xa9),'targets':[{'format':_0x3a1bbb,'blend':_0x320854()}]},_0xf5756f=(_0x58b001,_0x2bed01)=>_0x543e7c[_0x59f6d2(0x2c9)]({'layout':_0x543e7c[_0x59f6d2(0x175)]({'bindGroupLayouts':[_0x31fdfb]}),'vertex':_0x97598a,'fragment':_0x2afc04,'primitive':{'topology':_0x58b001},'depthStencil':_0x2bed01?{'format':_0x59f6d2(0x19e),'depthWriteEnabled':!0x0,'depthCompare':_0x59f6d2(0x226)}:void 0x0});this['sceneTrianglePipeline']=_0xf5756f(_0x59f6d2(0xd4),!0x0),this[_0x59f6d2(0x235)]=_0xf5756f(_0x59f6d2(0x287),!0x0),this[_0x59f6d2(0x187)]=_0xf5756f(_0x59f6d2(0xd4),!0x1),this['overlayLinePipeline']=_0xf5756f(_0x59f6d2(0x287),!0x1);let _0x19ae84=_0x543e7c[_0x59f6d2(0xe9)]({'label':_0x59f6d2(0x2b3),'code':_0x2e4185});this[_0x59f6d2(0x3f3)]=_0x543e7c[_0x59f6d2(0x2c9)]({'layout':_0x543e7c[_0x59f6d2(0x175)]({'bindGroupLayouts':[_0x524cc7,this[_0x59f6d2(0x281)](),this[_0x59f6d2(0x33c)]()]}),'vertex':{'module':_0x19ae84,'entryPoint':_0x59f6d2(0xbb)},'fragment':{'module':_0x19ae84,'entryPoint':_0x59f6d2(0xa9),'targets':[{'format':_0x3a1bbb,'blend':_0x320854()}]},'primitive':{'topology':_0x59f6d2(0xd4)}});let _0x2fc5a4=_0x543e7c[_0x59f6d2(0xe9)]({'label':_0x59f6d2(0x2fc),'code':_0x3c7c11}),_0x5c62e0=_0x13245a=>_0x543e7c[_0x59f6d2(0x2c9)]({'layout':_0x543e7c['createPipelineLayout']({'bindGroupLayouts':[_0x31fdfb,this[_0x59f6d2(0x281)](),this[_0x59f6d2(0x33c)](),this[_0x59f6d2(0x354)]()]}),'vertex':{'module':_0x2fc5a4,'entryPoint':_0x59f6d2(0xbb)},'fragment':{'module':_0x2fc5a4,'entryPoint':_0x59f6d2(0xa9),'targets':[{'format':_0x3a1bbb,'blend':_0x320854()}]},'primitive':{'topology':'triangle-list'},'depthStencil':_0x13245a?{'format':_0x59f6d2(0x19e),'depthWriteEnabled':!0x0,'depthCompare':_0x59f6d2(0x226)}:void 0x0});this[_0x59f6d2(0x26b)]=_0x5c62e0(!0x0),this[_0x59f6d2(0x23f)]=_0x5c62e0(!0x1);}[_0xe1b81f(0x38b)](_0x35f9b0){const _0x21990c=_0xe1b81f;this['atlas']?.[_0x21990c(0x1e8)](),this[_0x21990c(0x95)]=new _0x2fabfd(this[_0x21990c(0x227)](),this['options'][_0x21990c(0x168)]??_0x51be08,this[_0x21990c(0x37a)]['memoryHardLimitBytes']??this[_0x21990c(0x37a)][_0x21990c(0x168)]??_0x51be08),this['atlas'][_0x21990c(0x3d2)](_0x35f9b0),this[_0x21990c(0xdd)](),this[_0x21990c(0x239)]=this[_0x21990c(0x95)][_0x21990c(0x39d)](this['getVolumeBindGroupLayout'](),this['getVolumeParamsBuffer']());}[_0xe1b81f(0x29c)](_0xef57d4,_0x4ef799){return new Promise((_0x80059b,_0xdfc5fa)=>{const _0xab3721=_0x341a;this[_0xab3721(0x25e)][_0xab3721(0x1e9)]({'upload':_0xef57d4,'generation':this[_0xab3721(0x26d)],'cacheOnSuccess':_0x4ef799,'resolve':_0x80059b,'reject':_0xdfc5fa}),this[_0xab3721(0x2be)]();});}[_0xe1b81f(0x2be)](){const _0xefdebb=_0xe1b81f;this[_0xefdebb(0x2b4)]||=Promise['resolve']()['then'](()=>this[_0xefdebb(0x348)]())['finally'](()=>{const _0x3dcc57=_0xefdebb;this[_0x3dcc57(0x2b4)]=null,this[_0x3dcc57(0x25e)][_0x3dcc57(0x3bd)]>0x0&&this[_0x3dcc57(0x3ca)]===_0x3dcc57(0x277)&&this['scheduleUploadPump']();});}async[_0xe1b81f(0x348)](){const _0x83ebd8=_0xe1b81f;for(;this[_0x83ebd8(0x25e)]['length']>0x0&&this[_0x83ebd8(0x3ca)]===_0x83ebd8(0x277)&&this[_0x83ebd8(0xc3)];){let _0x3c2ad9=this[_0x83ebd8(0x227)](),_0x74e1f9=_0x20329e(this['metadata']),_0x1b91b4=Math[_0x83ebd8(0x22c)](0x4000000,Math[_0x83ebd8(0x272)](_0x74e1f9,Math[_0x83ebd8(0x2a4)](_0x3c2ad9['limits'][_0x83ebd8(0x393)]/0x4))),_0x407685=[],_0x3f6962=0x0;for(;this[_0x83ebd8(0x25e)]['length']>0x0&&_0x407685[_0x83ebd8(0x3bd)]<0x10;){let _0x2e5174=this[_0x83ebd8(0x25e)][0x0];if(_0x407685[_0x83ebd8(0x3bd)]>0x0&&_0x3f6962+_0x74e1f9>_0x1b91b4)break;if(this['pendingBrickUploads'][_0x83ebd8(0x35a)](),_0x2e5174[_0x83ebd8(0x154)]!==this[_0x83ebd8(0x26d)]){_0x2e5174['reject'](new DOMException('Volume\x20brick\x20upload\x20became\x20stale.\x20体积砖上传已过期。',_0x83ebd8(0x32c)));continue;}_0x407685[_0x83ebd8(0x1e9)](_0x2e5174),_0x3f6962+=_0x74e1f9;}if(_0x407685[_0x83ebd8(0x3bd)]!==0x0)try{let _0x58fa25=[],_0x10b74f=0x0;for(let _0x171f30 of _0x407685){let _0x2225ed=this[_0x83ebd8(0x1dc)]()['prepareBrickUpload'](_0x171f30['upload'],this[_0x83ebd8(0x1f0)]),_0x1bf79f=Math[_0x83ebd8(0xa8)](_0x10b74f/0x100)*0x100;_0x58fa25[_0x83ebd8(0x1e9)]({'item':_0x171f30,'prepared':_0x2225ed,'bufferOffset':_0x1bf79f}),_0x10b74f=_0x1bf79f+_0x2225ed[_0x83ebd8(0xc2)]['byteLength'];}let _0x304b28=this[_0x83ebd8(0x2a8)](_0x10b74f);await _0x304b28[_0x83ebd8(0x282)](GPUMapMode['WRITE']);let _0x52c010=new Uint8Array(_0x304b28['getMappedRange']());for(let _0x430566 of _0x58fa25){let _0x51b585=_0x430566[_0x83ebd8(0x1f5)][_0x83ebd8(0xc2)];_0x52c010[_0x83ebd8(0x326)](new Uint8Array(_0x51b585[_0x83ebd8(0xb1)],_0x51b585[_0x83ebd8(0x201)],_0x51b585[_0x83ebd8(0x2d2)]),_0x430566[_0x83ebd8(0x346)]);}_0x304b28[_0x83ebd8(0x3a1)]();let _0x298621=_0x3c2ad9[_0x83ebd8(0x27c)]({'label':_0x83ebd8(0xe5)});for(let _0x5cfa26 of _0x58fa25)this[_0x83ebd8(0x1dc)]()[_0x83ebd8(0xf1)](_0x298621,_0x304b28,_0x5cfa26[_0x83ebd8(0x346)],_0x5cfa26[_0x83ebd8(0x1f5)]);_0x3c2ad9[_0x83ebd8(0x2f6)]['submit']([_0x298621[_0x83ebd8(0x39c)]()]),await _0x3c2ad9[_0x83ebd8(0x2f6)][_0x83ebd8(0x3d9)](),await new Promise(_0x4cb8a8=>setTimeout(_0x4cb8a8,0x0)),this[_0x83ebd8(0x369)]+=_0x407685[_0x83ebd8(0x3bd)],this[_0x83ebd8(0xff)]+=0x1,this[_0x83ebd8(0x279)]=Math[_0x83ebd8(0x272)](this[_0x83ebd8(0x279)],_0x3f6962);for(let _0x50ff54 of _0x407685){if(_0x50ff54['generation']!==this[_0x83ebd8(0x26d)]){_0x50ff54[_0x83ebd8(0xed)](new DOMException(_0x83ebd8(0x17f),_0x83ebd8(0x32c)));continue;}_0x50ff54['cacheOnSuccess']&&this[_0x83ebd8(0x15b)](_0x50ff54[_0x83ebd8(0x2c8)]),_0x50ff54[_0x83ebd8(0x176)]();}}catch(_0x4cf6da){for(let _0xabb6a0 of _0x407685)_0xabb6a0[_0x83ebd8(0xed)](_0x4cf6da);}}}[_0xe1b81f(0x2a8)](_0x3ae118){const _0x34cf80=_0xe1b81f;let _0x46f827=Math[_0x34cf80(0x272)](0x100,Math[_0x34cf80(0xa8)](_0x3ae118/0x100)*0x100);return this['uploadStagingBuffer']&&this[_0x34cf80(0x2cb)]>=_0x46f827?this[_0x34cf80(0x13b)]:(this[_0x34cf80(0x13b)]?.['destroy'](),this['uploadStagingBuffer']=this['getDevice']()['createBuffer']({'label':_0x34cf80(0x138),'size':_0x46f827,'usage':GPUBufferUsage[_0x34cf80(0x3c1)]|GPUBufferUsage[_0x34cf80(0xe3)]}),this['uploadStagingBufferSize']=_0x46f827,this[_0x34cf80(0x13b)]);}[_0xe1b81f(0x15b)](_0xea4704){const _0x13e8ea=_0xe1b81f;for(this['cachedBricks'][_0x13e8ea(0xee)](_0xea4704[_0x13e8ea(0x29a)]),this[_0x13e8ea(0x1dd)][_0x13e8ea(0x326)](_0xea4704[_0x13e8ea(0x29a)],new Float32Array(_0xea4704[_0x13e8ea(0xc2)]));this[_0x13e8ea(0x1dd)][_0x13e8ea(0xbd)]>this['statistics']['atlasCapacity'];){let _0x13c1d0=this[_0x13e8ea(0x1dd)][_0x13e8ea(0xb4)]()['next']()['value'];if(_0x13c1d0===void 0x0)break;this['cachedBricks'][_0x13e8ea(0xee)](_0x13c1d0);}}['rejectPendingBrickUploads'](_0xe93205){const _0x37dc45=_0xe1b81f;for(let _0x3aa407 of this[_0x37dc45(0x25e)][_0x37dc45(0xc6)](0x0))_0x3aa407[_0x37dc45(0xed)](_0xe93205);}[_0xe1b81f(0x13c)](){const _0x5f179a=_0xe1b81f;let _0xe8421f=this['getTransferResources']();_0xe8421f['update'](this[_0x5f179a(0x2ae)],this[_0x5f179a(0x12a)]),this[_0x5f179a(0x253)]=_0xe8421f[_0x5f179a(0x39d)](this['getTransferBindGroupLayout']());}[_0xe1b81f(0x126)](){const _0x326e0d=_0xe1b81f;!this[_0x326e0d(0xdc)]||!this[_0x326e0d(0xcf)]||!this['geometryBindGroupLayout']||!this[_0x326e0d(0x3b8)]||(this[_0x326e0d(0x3cf)]=this[_0x326e0d(0x227)]()[_0x326e0d(0x39d)]({'label':_0x326e0d(0x18b),'layout':this[_0x326e0d(0x150)],'entries':[{'binding':0x0,'resource':{'buffer':this[_0x326e0d(0xdc)]}}]}),this['sceneBindGroup']=this[_0x326e0d(0x227)]()['createBindGroup']({'label':_0x326e0d(0x13a),'layout':this[_0x326e0d(0x3b8)],'entries':[{'binding':0x0,'resource':{'buffer':this[_0x326e0d(0xdc)]}},{'binding':0x1,'resource':this['attachments'][_0x326e0d(0x1c9)]}]}));}[_0xe1b81f(0xcb)](){const _0x588e1b=_0xe1b81f;let _0x4ab3ee=new Float32Array(0x64);_0x4ab3ee[_0x588e1b(0x326)](this['camera'][_0x588e1b(0x163)],0x0),_0x4ab3ee[_0x588e1b(0x326)](this[_0x588e1b(0x2f4)]['inverseViewProjection'],0x10),_0x4ab3ee[_0x588e1b(0x326)](this[_0x588e1b(0x34c)],0x20),_0x4ab3ee['set'](this[_0x588e1b(0x174)],0x30),_0x4ab3ee[_0x588e1b(0x326)]([...this[_0x588e1b(0x2f4)][_0x588e1b(0x280)],0x1],0x40),_0x4ab3ee[_0x588e1b(0x326)]([this[_0x588e1b(0x238)],this[_0x588e1b(0x221)],0x1/this['width'],0x1/this[_0x588e1b(0x221)]],0x44),_0x4ab3ee[_0x588e1b(0x326)]([...this[_0x588e1b(0x3ef)],0x0],0x48),_0x4ab3ee['set']([...this[_0x588e1b(0x1e6)],0x0],0x4c),_0x4ab3ee[_0x588e1b(0x326)]([+(this['renderMode']===_0x588e1b(0x1a8)),this[_0x588e1b(0x3f5)],this['densityScale'],this[_0x588e1b(0x335)]],0x50),_0x4ab3ee[_0x588e1b(0x326)]([this[_0x588e1b(0x2ae)][_0x588e1b(0x3bd)],this[_0x588e1b(0x12a)]['length'],this[_0x588e1b(0x3bb)],+(this[_0x588e1b(0x14e)]===_0x588e1b(0x2f2))],0x54);let _0x247485=this[_0x588e1b(0x1be)];_0x247485&&(_0x4ab3ee[_0x588e1b(0x326)]([0x1,..._0x247485[_0x588e1b(0x16a)]],0x58),_0x4ab3ee[_0x588e1b(0x326)]([_0x247485[_0x588e1b(0x230)],_0x247485[_0x588e1b(0x30a)],..._0x247485[_0x588e1b(0x3d0)]],0x5c),_0x4ab3ee[_0x588e1b(0x326)]([..._0x247485[_0x588e1b(0x108)],..._0x247485['heightScaled']],0x60)),this[_0x588e1b(0x227)]()['queue'][_0x588e1b(0x2f0)](this[_0x588e1b(0x228)](),0x0,_0x4ab3ee);}[_0xe1b81f(0xdd)](){const _0x3efab2=_0xe1b81f;let _0x3834c5=this[_0x3efab2(0xc3)],_0x48fc76=this[_0x3efab2(0x95)];if(!_0x3834c5||!_0x48fc76)return;let _0x521622=_0x48fc76[_0x3efab2(0xfe)],_0x44a6d8=new Uint32Array(0x60/0x4),_0x5661b9=Math[_0x3efab2(0xa8)](_0x3834c5['xAxis'][_0x3efab2(0x2a3)]/_0x3834c5[_0x3efab2(0x33a)]),_0x4996e0=Math[_0x3efab2(0xa8)](_0x3834c5[_0x3efab2(0x1b4)][_0x3efab2(0x2a3)]/_0x3834c5[_0x3efab2(0x365)]),_0x17f986=Math[_0x3efab2(0xa8)](_0x3834c5[_0x3efab2(0x2a0)][_0x3efab2(0x2a3)]/_0x3834c5[_0x3efab2(0xf2)]);_0x44a6d8[_0x3efab2(0x326)]([_0x3834c5[_0x3efab2(0x36d)][_0x3efab2(0x2a3)],_0x3834c5['yAxis'][_0x3efab2(0x2a3)],_0x3834c5['zAxis'][_0x3efab2(0x2a3)],0x0],0x0),_0x44a6d8[_0x3efab2(0x326)]([_0x3834c5['brickWidth'],_0x3834c5['brickHeight'],_0x3834c5['brickDepth'],0x1],0x4),_0x44a6d8[_0x3efab2(0x326)]([_0x5661b9,_0x4996e0,_0x17f986,0x0],0x8),_0x44a6d8[_0x3efab2(0x326)]([_0x521622[_0x3efab2(0xaa)],_0x521622['slotCountY'],_0x521622[_0x3efab2(0x137)],_0x521622[_0x3efab2(0x264)]],0xc),_0x44a6d8['set']([(_0x3834c5['brickWidth']+0x2)*_0x521622[_0x3efab2(0xaa)],(_0x3834c5[_0x3efab2(0x365)]+0x2)*_0x521622[_0x3efab2(0x3f4)],(_0x3834c5[_0x3efab2(0xf2)]+0x2)*_0x521622[_0x3efab2(0x137)],0x0],0x10),new Float32Array(_0x44a6d8[_0x3efab2(0xb1)])[_0x3efab2(0x326)]([_0x3834c5[_0x3efab2(0x399)]??0x0,_0x3834c5[_0x3efab2(0x399)]===void 0x0?0x0:0x1,0x0,0x0],0x14),this[_0x3efab2(0x227)]()[_0x3efab2(0x2f6)][_0x3efab2(0x2f0)](this[_0x3efab2(0x1c8)](),0x0,_0x44a6d8);}[_0xe1b81f(0x311)](_0x3272c1,_0x160b35){const _0x3fd1d3=_0xe1b81f;let _0x3410df=_0x3272c1['beginRenderPass']({'label':_0x3fd1d3(0x3b2),'colorAttachments':[{'view':_0x160b35,'clearValue':{'r':0x0,'g':0x0,'b':0x0,'a':0x0},'loadOp':_0x3fd1d3(0x34d),'storeOp':_0x3fd1d3(0x374)}],'depthStencilAttachment':{'view':this[_0x3fd1d3(0x2a9)]()[_0x3fd1d3(0x1c9)],'depthClearValue':0x1,'depthLoadOp':_0x3fd1d3(0x34d),'depthStoreOp':'store'}});this['drawMeshes'](_0x3410df,_0x3fd1d3(0x333)),this[_0x3fd1d3(0x23c)](_0x3410df,_0x3fd1d3(0x333)),_0x3410df['end']();}[_0xe1b81f(0x275)](_0x634e6b,_0x526527){const _0x59a482=_0xe1b81f;if(!this[_0x59a482(0x239)]||!this[_0x59a482(0x253)]||!this[_0x59a482(0x1b3)]||!this[_0x59a482(0x3f3)])return;let _0x5965d6=_0x634e6b['beginRenderPass']({'label':_0x59a482(0x30f),'colorAttachments':[{'view':_0x526527,'loadOp':_0x59a482(0x25a),'storeOp':'store'}]});_0x5965d6[_0x59a482(0x129)](this['volumePipeline']),_0x5965d6[_0x59a482(0x31f)](0x0,this[_0x59a482(0x1b3)]),_0x5965d6[_0x59a482(0x31f)](0x1,this[_0x59a482(0x239)]),_0x5965d6[_0x59a482(0x31f)](0x2,this[_0x59a482(0x253)]),_0x5965d6[_0x59a482(0x2e5)](0x3),_0x5965d6[_0x59a482(0x242)]();}[_0xe1b81f(0x2e3)](_0x5e1eea,_0x2beb33){const _0x2ac765=_0xe1b81f;let _0x54fafd=_0x5e1eea[_0x2ac765(0x1ae)]({'label':_0x2ac765(0x1af),'colorAttachments':[{'view':_0x2beb33,'loadOp':_0x2ac765(0x25a),'storeOp':'store'}]});this[_0x2ac765(0x339)](_0x54fafd,'always-visible'),this['drawSlices'](_0x54fafd,'always-visible'),_0x54fafd['end']();}[_0xe1b81f(0x339)](_0x361903,_0x148159){const _0x38686e=_0xe1b81f;let _0x5209ed=this[_0x38686e(0x3cf)];if(!_0x5209ed)return;let _0x2c0654=_0x148159===_0x38686e(0x333)?this[_0x38686e(0x1ed)]:this[_0x38686e(0x187)],_0x52ee17=_0x148159==='scene'?this[_0x38686e(0x235)]:this[_0x38686e(0x23b)];_0x2c0654&&(_0x361903['setPipeline'](_0x2c0654),_0x361903[_0x38686e(0x31f)](0x0,_0x5209ed),this[_0x38686e(0x2b1)]?.[_0x38686e(0x2e5)](_0x361903,'triangle-list',_0x148159),this[_0x38686e(0xfb)]?.[_0x38686e(0x2e5)](_0x361903,_0x38686e(0xd4),_0x148159)),_0x52ee17&&(_0x361903[_0x38686e(0x129)](_0x52ee17),_0x361903[_0x38686e(0x31f)](0x0,_0x5209ed),this[_0x38686e(0x2b1)]?.[_0x38686e(0x2e5)](_0x361903,_0x38686e(0x287),_0x148159),this[_0x38686e(0xfb)]?.['draw'](_0x361903,_0x38686e(0x287),_0x148159));}[_0xe1b81f(0x23c)](_0x4006e6,_0x58f295){const _0x45f6ed=_0xe1b81f;let _0x13c35c=_0x58f295===_0x45f6ed(0x333)?this[_0x45f6ed(0x26b)]:this[_0x45f6ed(0x23f)];!_0x13c35c||!this[_0x45f6ed(0x3cf)]||!this[_0x45f6ed(0x239)]||!this['transferBindGroup']||(_0x4006e6[_0x45f6ed(0x31f)](0x0,this[_0x45f6ed(0x3cf)]),_0x4006e6[_0x45f6ed(0x31f)](0x1,this[_0x45f6ed(0x239)]),_0x4006e6[_0x45f6ed(0x31f)](0x2,this[_0x45f6ed(0x253)]),this['sliceResources']?.[_0x45f6ed(0x2e5)](_0x4006e6,_0x13c35c,_0x58f295));}[_0xe1b81f(0x10d)](_0x5953de){const _0x21d9e7=_0xe1b81f;_0x5953de[_0x21d9e7(0xb8)]['then'](_0x193bf4=>{const _0x1b4b97=_0x21d9e7;if(this[_0x1b4b97(0xea)]!==_0x5953de||this[_0x1b4b97(0x3ca)]===_0x1b4b97(0x2a7))return;this[_0x1b4b97(0x3ca)]=_0x1b4b97(0xb8),console['error']('WebGPU\x20volume\x20device\x20was\x20lost:\x20'+_0x193bf4['message']+_0x1b4b97(0x24e));let _0x55fb63=this['canvas'];this[_0x1b4b97(0xb0)](),_0x55fb63&&this['initialize'](_0x55fb63)[_0x1b4b97(0xf7)](_0x3487ae=>{const _0x29a502=_0x1b4b97;console[_0x29a502(0xa0)](_0x29a502(0x216),_0x3487ae);});});}[_0xe1b81f(0xb0)](){const _0x513e5f=_0xe1b81f;this[_0x513e5f(0x26d)]+=0x1,this[_0x513e5f(0x32b)](new DOMException(_0x513e5f(0x3f9),_0x513e5f(0x32c))),this[_0x513e5f(0x95)]?.['destroy'](),this[_0x513e5f(0x17d)]?.[_0x513e5f(0x1e8)](),this[_0x513e5f(0x2b1)]?.[_0x513e5f(0x1e8)](),this['sliceResources']?.[_0x513e5f(0x1e8)](),this[_0x513e5f(0xfb)]?.[_0x513e5f(0x1e8)](),this[_0x513e5f(0xcf)]?.[_0x513e5f(0x1e8)](),this[_0x513e5f(0xdc)]?.['destroy'](),this[_0x513e5f(0x146)]?.['destroy'](),this[_0x513e5f(0x13b)]?.[_0x513e5f(0x1e8)]();try{this[_0x513e5f(0x1cf)]?.['unconfigure']();}catch{}this[_0x513e5f(0xea)]?.[_0x513e5f(0x1e8)](),this[_0x513e5f(0x3c7)]=null,this[_0x513e5f(0xea)]=null,this[_0x513e5f(0x1cf)]=null,this[_0x513e5f(0x36b)]=null,this[_0x513e5f(0xdc)]=null,this['volumeParamsBuffer']=null,this[_0x513e5f(0x13b)]=null,this[_0x513e5f(0x2cb)]=0x0,this['geometryBindGroupLayout']=null,this[_0x513e5f(0x3b8)]=null,this[_0x513e5f(0x3a5)]=null,this['transferBindGroupLayout']=null,this[_0x513e5f(0x1b2)]=null,this[_0x513e5f(0x3cf)]=null,this[_0x513e5f(0x1b3)]=null,this[_0x513e5f(0x239)]=null,this[_0x513e5f(0x253)]=null,this[_0x513e5f(0x3f3)]=null,this[_0x513e5f(0x1ed)]=null,this[_0x513e5f(0x235)]=null,this[_0x513e5f(0x187)]=null,this[_0x513e5f(0x23b)]=null,this[_0x513e5f(0x26b)]=null,this[_0x513e5f(0x23f)]=null,this[_0x513e5f(0xcf)]=null,this[_0x513e5f(0x95)]=null,this[_0x513e5f(0x17d)]=null,this['profileResources']=null,this[_0x513e5f(0x2af)]=null,this[_0x513e5f(0xfb)]=null,this['frameInFlight']=!0x1,this[_0x513e5f(0x238)]=0x0,this[_0x513e5f(0x221)]=0x0;}['getDevice'](){const _0x3bf942=_0xe1b81f;if(!this[_0x3bf942(0xea)])throw Error(_0x3bf942(0x21d));return this['device'];}[_0xe1b81f(0x3dd)](){const _0x3862c1=_0xe1b81f;if(!this[_0x3862c1(0x1cf)])throw Error(_0x3862c1(0x135));return this[_0x3862c1(0x1cf)];}[_0xe1b81f(0x36f)](){const _0x206bec=_0xe1b81f;if(!this['format'])throw Error(_0x206bec(0x332));return this[_0x206bec(0x36b)];}['getCanvas'](){const _0x30026e=_0xe1b81f;if(!this[_0x30026e(0xc7)])throw Error(_0x30026e(0x22e));return this[_0x30026e(0xc7)];}[_0xe1b81f(0x2a9)](){const _0x348c48=_0xe1b81f;if(!this[_0x348c48(0xcf)])throw Error(_0x348c48(0x39a));return this['attachments'];}['getAtlas'](){const _0x1a4201=_0xe1b81f;if(!this['atlas'])throw Error('WebGPU\x20volume\x20source\x20must\x20be\x20configured\x20before\x20uploading\x20bricks.\x20上传砖块前必须配置\x20WebGPU\x20体积数据源。');return this[_0x1a4201(0x95)];}[_0xe1b81f(0x2c5)](){const _0x13323e=_0xe1b81f;if(!this[_0x13323e(0x17d)])throw Error(_0x13323e(0x310));return this[_0x13323e(0x17d)];}[_0xe1b81f(0x254)](){const _0x4c726e=_0xe1b81f;if(!this[_0x4c726e(0x2b1)])throw Error('WebGPU\x20profile\x20resources\x20are\x20unavailable.\x20WebGPU\x20剖面资源不可用。');return this[_0x4c726e(0x2b1)];}[_0xe1b81f(0x271)](){const _0x3b62c1=_0xe1b81f;if(!this[_0x3b62c1(0x2af)])throw Error(_0x3b62c1(0x1c3));return this[_0x3b62c1(0x2af)];}[_0xe1b81f(0x1ba)](){const _0x189f58=_0xe1b81f;if(!this['axisResources'])throw Error(_0x189f58(0x2b0));return this['axisResources'];}[_0xe1b81f(0x237)](){const _0x52385d=_0xe1b81f;if(!this['sceneBindGroupLayout'])throw Error(_0x52385d(0x132));return this[_0x52385d(0x3b8)];}[_0xe1b81f(0x179)](){const _0x1f9af3=_0xe1b81f;if(!this[_0x1f9af3(0x150)])throw Error(_0x1f9af3(0x1ff));return this[_0x1f9af3(0x150)];}[_0xe1b81f(0x281)](){const _0x5677b7=_0xe1b81f;if(!this['volumeBindGroupLayout'])throw Error(_0x5677b7(0x267));return this[_0x5677b7(0x3a5)];}[_0xe1b81f(0x33c)](){const _0x2bc582=_0xe1b81f;if(!this['transferBindGroupLayout'])throw Error(_0x2bc582(0xe8));return this['transferBindGroupLayout'];}[_0xe1b81f(0x354)](){const _0x39ed1a=_0xe1b81f;if(!this[_0x39ed1a(0x1b2)])throw Error(_0x39ed1a(0x100));return this[_0x39ed1a(0x1b2)];}['getSceneParamsBuffer'](){const _0x45ad6d=_0xe1b81f;if(!this['sceneParamsBuffer'])throw Error(_0x45ad6d(0x1c5));return this['sceneParamsBuffer'];}['getVolumeParamsBuffer'](){const _0x563df7=_0xe1b81f;if(!this[_0x563df7(0x146)])throw Error('WebGPU\x20volume\x20params\x20buffer\x20is\x20unavailable.\x20WebGPU\x20体积参数\x20Buffer\x20不可用。');return this[_0x563df7(0x146)];}};let _0x42dae5=(_0x5a3f10,_0x572735)=>_0x572735==='x'?_0x5a3f10[_0xe1b81f(0x36d)]:_0x572735==='y'?_0x5a3f10[_0xe1b81f(0x1b4)]:_0x5a3f10[_0xe1b81f(0x2a0)],_0x49f31f=(_0x4893e9,_0x346102,_0x428a58)=>{const _0x5a0186=_0xe1b81f;if(!Number[_0x5a0186(0x1a4)](_0x428a58))throw Error('切面位置必须是有限数。');let _0x13b980=_0x42dae5(_0x4893e9,_0x346102),_0x134614=Math['min'](_0x13b980[_0x5a0186(0x35f)],_0x13b980[_0x5a0186(0x242)]),_0x2ad854=Math[_0x5a0186(0x272)](_0x13b980[_0x5a0186(0x35f)],_0x13b980[_0x5a0186(0x242)]);return Math[_0x5a0186(0x22c)](_0x2ad854,Math[_0x5a0186(0x272)](_0x134614,_0x428a58));},_0xca153d=_0x483191=>_0x483191?{..._0x483191}:null,_0x12b7a1=_0xc14bdf=>({..._0xc14bdf}),_0x524a85=_0x4f1fe8=>{const _0x6982e4=_0xe1b81f;for(let _0x315ee5 of[_0x4f1fe8[_0x6982e4(0x36d)],_0x4f1fe8[_0x6982e4(0x1b4)],_0x4f1fe8[_0x6982e4(0x2a0)]]){if(!Number[_0x6982e4(0x1a4)](_0x315ee5[_0x6982e4(0x35f)])||!Number[_0x6982e4(0x1a4)](_0x315ee5['end']))throw Error(_0x6982e4(0x327));if(!(Number[_0x6982e4(0xde)](_0x315ee5[_0x6982e4(0x2a3)])&&_0x315ee5['count']>0x0))throw Error(_0x6982e4(0x3ac));if(_0x315ee5[_0x6982e4(0x2a3)]>0x1&&_0x315ee5[_0x6982e4(0x35f)]===_0x315ee5[_0x6982e4(0x242)])throw Error('多采样点切面轴的起止值不能相等。');}},_0x2bf3c9=(_0x19e3d2,_0xb3f14)=>_0x19e3d2[_0xe1b81f(0x35f)]===_0x19e3d2[_0xe1b81f(0x242)]?0x0:(_0xb3f14-_0x19e3d2[_0xe1b81f(0x35f)])/(_0x19e3d2[_0xe1b81f(0x242)]-_0x19e3d2[_0xe1b81f(0x35f)]),_0x3dca4e=(_0x145a66,_0x43d33f)=>_0x145a66[_0xe1b81f(0x35f)]+_0x43d33f*(_0x145a66['end']-_0x145a66['start']);var _0x2a83b3=class{[_0xe1b81f(0x3e1)];[_0xe1b81f(0x373)]=new Set();['onLimitReached'];['maxLockedSlices'];[_0xe1b81f(0x19c)];[_0xe1b81f(0x367)]=0x1;[_0xe1b81f(0x213)]=null;[_0xe1b81f(0x37c)]=[];[_0xe1b81f(0x18d)]=_0xe1b81f(0x397);[_0xe1b81f(0x3bb)];constructor(_0x16cf14,_0x222625={}){const _0x5d651d=_0xe1b81f;if(_0x524a85(_0x16cf14),this['axes']={'xAxis':{..._0x16cf14[_0x5d651d(0x36d)]},'yAxis':{..._0x16cf14['yAxis']},'zAxis':{..._0x16cf14[_0x5d651d(0x2a0)]}},this[_0x5d651d(0x3bb)]=_0x222625[_0x5d651d(0x3bb)]??0.25,this[_0x5d651d(0x19c)]=_0x222625['depthMode']??'scene',this[_0x5d651d(0x16c)]=_0x222625[_0x5d651d(0x16c)]??0xc,this[_0x5d651d(0x1ef)]=_0x222625[_0x5d651d(0x1ef)],!(this[_0x5d651d(0x3bb)]>=0x0&&this[_0x5d651d(0x3bb)]<=0x1))throw Error(_0x5d651d(0x2fd));if(this[_0x5d651d(0x19c)]!==_0x5d651d(0x333)&&this[_0x5d651d(0x19c)]!=='always-visible')throw Error('切面深度模式无效\x20/\x20Slice\x20depth\x20mode\x20is\x20invalid');if(!(Number[_0x5d651d(0xde)](this[_0x5d651d(0x16c)])&&this['maxLockedSlices']>0x0))throw Error(_0x5d651d(0x1d6));}get[_0xe1b81f(0xdf)](){const _0x375f8d=_0xe1b81f;return _0xca153d(this[_0x375f8d(0x213)]);}get[_0xe1b81f(0x105)](){return this['slices']['map'](_0x12b7a1);}get[_0xe1b81f(0x128)](){const _0x3b3886=_0xe1b81f;return this[_0x3b3886(0x18d)];}get['snapshot'](){const _0x3a5698=_0xe1b81f;return{'preview':this[_0x3a5698(0xdf)],'lockedSlices':this[_0x3a5698(0x105)],'toolMode':this[_0x3a5698(0x18d)],'volumeDimFactor':this[_0x3a5698(0x3bb)]};}['subscribe'](_0x57db48){const _0x3be35f=_0xe1b81f;return this[_0x3be35f(0x373)]['add'](_0x57db48),_0x57db48(this[_0x3be35f(0x2ec)]),()=>this[_0x3be35f(0x373)][_0x3be35f(0xee)](_0x57db48);}get[_0xe1b81f(0x155)](){const _0x267496=_0xe1b81f;return{'xAxis':{...this[_0x267496(0x3e1)]['xAxis']},'yAxis':{...this[_0x267496(0x3e1)]['yAxis']},'zAxis':{...this[_0x267496(0x3e1)]['zAxis']}};}[_0xe1b81f(0xe6)](_0x4dee20){const _0x56018a=_0xe1b81f;_0x524a85(_0x4dee20),this[_0x56018a(0x3e1)]={'xAxis':{..._0x4dee20['xAxis']},'yAxis':{..._0x4dee20[_0x56018a(0x1b4)]},'zAxis':{..._0x4dee20[_0x56018a(0x2a0)]}},this[_0x56018a(0x213)]&&(this[_0x56018a(0x213)][_0x56018a(0x232)]=_0x49f31f(this[_0x56018a(0x3e1)],this[_0x56018a(0x213)][_0x56018a(0xd0)],this[_0x56018a(0x213)][_0x56018a(0x232)])),this[_0x56018a(0x37c)]=this[_0x56018a(0x37c)]['map'](_0x1b3041=>({..._0x1b3041,'position':_0x49f31f(this['axes'],_0x1b3041['axis'],_0x1b3041[_0x56018a(0x232)])})),this[_0x56018a(0x145)]();}['setToolMode'](_0x22dfd5){const _0x3e5dea=_0xe1b81f;this[_0x3e5dea(0x18d)]!==_0x22dfd5&&(this[_0x3e5dea(0x18d)]=_0x22dfd5,(_0x22dfd5===null||_0x22dfd5!==_0x3e5dea(0x397)&&this[_0x3e5dea(0x213)]?.['axis']!==_0x22dfd5)&&(this[_0x3e5dea(0x213)]=null),this['notify']());}[_0xe1b81f(0x2e9)](_0xdd2b63,_0x1b80eb){const _0x22b4fb=_0xe1b81f;if(this[_0x22b4fb(0x18d)]===null||this[_0x22b4fb(0x18d)]!==_0x22b4fb(0x397)&&this[_0x22b4fb(0x18d)]!==_0xdd2b63)return;let _0x33efa6=_0x49f31f(this[_0x22b4fb(0x3e1)],_0xdd2b63,_0x1b80eb);this[_0x22b4fb(0x213)]?.[_0x22b4fb(0xd0)]===_0xdd2b63&&this[_0x22b4fb(0x213)][_0x22b4fb(0x232)]===_0x33efa6||(this[_0x22b4fb(0x213)]={'axis':_0xdd2b63,'position':_0x33efa6},this[_0x22b4fb(0x145)]());}[_0xe1b81f(0x130)](){const _0x489cdf=_0xe1b81f;this[_0x489cdf(0x213)]&&(this[_0x489cdf(0x213)]=null,this['notify']());}[_0xe1b81f(0x33f)](_0x23e469=this['depthMode']){const _0x5499f2=_0xe1b81f;return this[_0x5499f2(0x213)]?this[_0x5499f2(0x313)](this['currentPreview'][_0x5499f2(0xd0)],this[_0x5499f2(0x213)][_0x5499f2(0x232)],_0x23e469):null;}[_0xe1b81f(0x313)](_0x3c0fc7,_0x585990,_0x4e7963=this[_0xe1b81f(0x19c)]){const _0x1d7a6f=_0xe1b81f;if(this[_0x1d7a6f(0x37c)][_0x1d7a6f(0x3bd)]>=this[_0x1d7a6f(0x16c)])return this[_0x1d7a6f(0x1ef)]?.(this['maxLockedSlices']),null;let _0x21de74={'id':'volume-slice-'+this[_0x1d7a6f(0x367)],'axis':_0x3c0fc7,'position':_0x49f31f(this[_0x1d7a6f(0x3e1)],_0x3c0fc7,_0x585990),'depthMode':_0x4e7963,'visible':!0x0};return this[_0x1d7a6f(0x367)]+=0x1,this[_0x1d7a6f(0x37c)]=[...this[_0x1d7a6f(0x37c)],_0x21de74],this[_0x1d7a6f(0x145)](),_0x12b7a1(_0x21de74);}[_0xe1b81f(0xfc)](_0x29093f,_0x28f2a5){const _0x108a30=_0xe1b81f;let _0x148283=this[_0x108a30(0x37c)][_0x108a30(0x2aa)](_0x121010=>_0x121010['id']===_0x29093f);if(_0x148283<0x0)return;let _0x10a891=this[_0x108a30(0x37c)][_0x148283],_0x35f9c1=_0x49f31f(this['axes'],_0x10a891[_0x108a30(0xd0)],_0x28f2a5);_0x35f9c1!==_0x10a891[_0x108a30(0x232)]&&(this[_0x108a30(0x37c)]=this[_0x108a30(0x37c)]['map'](_0x3b1726=>_0x3b1726['id']===_0x29093f?{..._0x3b1726,'position':_0x35f9c1}:_0x3b1726),this[_0x108a30(0x145)]());}[_0xe1b81f(0x18f)](_0xd16c4a){const _0x2e2cf7=_0xe1b81f;let _0x379a30=this['slices'][_0x2e2cf7(0x309)](_0x29c569=>_0x29c569['id']!==_0xd16c4a);_0x379a30[_0x2e2cf7(0x3bd)]!==this[_0x2e2cf7(0x37c)][_0x2e2cf7(0x3bd)]&&(this[_0x2e2cf7(0x37c)]=_0x379a30,this[_0x2e2cf7(0x145)]());}[_0xe1b81f(0x1db)](){const _0x464700=_0xe1b81f;this['slices']['length']!==0x0&&(this[_0x464700(0x37c)]=[],this['notify']());}[_0xe1b81f(0x145)](){let _0x3484c2=this['snapshot'];for(let _0x2f90ec of this['listeners'])_0x2f90ec(_0x3484c2);}};let _0x130f55=_0x1b3401=>_0x1b3401==='x'?[[0x0,0x0,0x0],[0x1,0x0,0x0]]:_0x1b3401==='y'?[[0x0,0x0,0x0],[0x0,0x1,0x0]]:[[0x0,0x0,0x0],[0x0,0x0,0x1]],_0x5e105d=(_0x5711d1,_0x7a9036)=>{const _0x467756=_0xe1b81f;let _0x54230f=_0x15126f(_0x7a9036[_0x467756(0x3af)],_0x7a9036[_0x467756(0x34c)]),[_0xc707a1,_0x4bf601]=_0x130f55(_0x5711d1),_0x3f1877=_0x36debe(_0x54230f,_0xc707a1,_0x7a9036['viewportWidth'],_0x7a9036[_0x467756(0xb5)]),_0x6ed6f7=_0x36debe(_0x54230f,_0x4bf601,_0x7a9036[_0x467756(0x161)],_0x7a9036[_0x467756(0xb5)]);return!_0x3f1877||!_0x6ed6f7?null:{'axis':_0x5711d1,'startX':_0x3f1877[0x0],'startY':_0x3f1877[0x1],'endX':_0x6ed6f7[0x0],'endY':_0x6ed6f7[0x1]};},_0x341fc7=(_0x127705,_0x54ca29,_0xebb5f0)=>{const _0x4fa650=_0xe1b81f;let _0x518fb6=_0x127705['endX']-_0x127705[_0x4fa650(0x1f8)],_0x66e31b=_0x127705[_0x4fa650(0x215)]-_0x127705[_0x4fa650(0x3d5)],_0x14461b=_0x518fb6*_0x518fb6+_0x66e31b*_0x66e31b,_0x1316ff=_0x14461b===0x0?0x0:((_0x54ca29-_0x127705[_0x4fa650(0x1f8)])*_0x518fb6+(_0xebb5f0-_0x127705[_0x4fa650(0x3d5)])*_0x66e31b)/_0x14461b,_0x3a0c9a=Math[_0x4fa650(0x22c)](0x1,Math['max'](0x0,_0x1316ff)),_0x4ca22f=_0x127705[_0x4fa650(0x1f8)]+_0x3a0c9a*_0x518fb6,_0x49b59b=_0x127705[_0x4fa650(0x3d5)]+_0x3a0c9a*_0x66e31b;return{'axis':_0x127705[_0x4fa650(0xd0)],'distance':Math[_0x4fa650(0x3df)](_0x54ca29-_0x4ca22f,_0xebb5f0-_0x49b59b),'normalizedPosition':_0x3a0c9a};},_0x2d122a=(_0x4dc31e,_0x4e784f,_0x58d7e2)=>{const _0x376f66=_0xe1b81f;let _0x4e7a67=_0x4e784f[_0x376f66(0x381)]();return[_0x4e7a67[_0x376f66(0x238)]===0x0?0x0:(_0x4dc31e[_0x376f66(0x16b)]-_0x4e7a67[_0x376f66(0x16f)])*_0x58d7e2['viewportWidth']/_0x4e7a67[_0x376f66(0x238)],_0x4e7a67[_0x376f66(0x221)]===0x0?0x0:(_0x4dc31e[_0x376f66(0x1df)]-_0x4e7a67[_0x376f66(0x3b9)])*_0x58d7e2[_0x376f66(0xb5)]/_0x4e7a67[_0x376f66(0x221)]];},_0x341aa1=(_0x5213cf,_0x9741e8,_0xe40c30)=>{const _0x171d38=_0xe1b81f;let _0x461b60=_0x5213cf[_0x171d38(0x155)];return _0x3dca4e(_0x9741e8==='x'?_0x461b60[_0x171d38(0x36d)]:_0x9741e8==='y'?_0x461b60['yAxis']:_0x461b60['zAxis'],_0xe40c30);};var _0x4fa2e6=class{[_0xe1b81f(0x17e)];[_0xe1b81f(0x23a)];[_0xe1b81f(0x28d)];['hitTolerance'];[_0xe1b81f(0xe0)];['onInteractionStart'];[_0xe1b81f(0xcd)];[_0xe1b81f(0x208)]=null;['previousAxis']=null;[_0xe1b81f(0x114)]=!0x1;constructor(_0x418ceb,_0x12b0f2,_0x500a66,_0xe6dedf={}){const _0x16e852=_0xe1b81f;this['element']=_0x418ceb,this[_0x16e852(0x23a)]=_0x12b0f2,this[_0x16e852(0x28d)]=_0x500a66,this[_0x16e852(0xca)]=_0xe6dedf['hitTolerancePixels']??0xa,this[_0x16e852(0xe0)]=_0xe6dedf['axisHysteresisPixels']??0x4,this[_0x16e852(0x288)]=_0xe6dedf[_0x16e852(0x288)],this[_0x16e852(0xcd)]=_0xe6dedf[_0x16e852(0xcd)];}[_0xe1b81f(0x11f)](){const _0x5f4456=_0xe1b81f;this[_0x5f4456(0x114)]||(this[_0x5f4456(0x114)]=!0x0,this['element'][_0x5f4456(0x32d)](_0x5f4456(0x240),this['handlePointerDown'],!0x0),this[_0x5f4456(0x17e)][_0x5f4456(0x32d)]('pointermove',this[_0x5f4456(0x2fa)],!0x0),this['element'][_0x5f4456(0x32d)](_0x5f4456(0x248),this[_0x5f4456(0x3e7)],!0x0),window[_0x5f4456(0x32d)](_0x5f4456(0x3d6),this[_0x5f4456(0x214)],!0x0),window[_0x5f4456(0x32d)](_0x5f4456(0x370),this['handlePointerUp'],!0x0),window['addEventListener'](_0x5f4456(0x347),this['handlePointerUp'],!0x0));}['beginLockedSliceDrag'](_0x12fd0c,_0x4ba61d){const _0x4875f7=_0xe1b81f;let _0x15d15d=this[_0x4875f7(0x23a)][_0x4875f7(0x105)][_0x4875f7(0x3f2)](_0x350a21=>_0x350a21['id']===_0x12fd0c);_0x15d15d&&(this[_0x4875f7(0x208)]={'kind':_0x4875f7(0x3b7),'axis':_0x15d15d['axis'],'pointerId':_0x4ba61d[_0x4875f7(0x11d)],'sliceId':_0x12fd0c,'startX':_0x4ba61d[_0x4875f7(0x16b)],'startY':_0x4ba61d[_0x4875f7(0x1df)],'moved':!0x1},this[_0x4875f7(0x288)]?.(),_0x4ba61d[_0x4875f7(0x286)](),_0x4ba61d[_0x4875f7(0x149)]());}[_0xe1b81f(0x1e8)](){const _0x117372=_0xe1b81f;this[_0x117372(0x114)]&&(this[_0x117372(0x114)]=!0x1,this['element'][_0x117372(0x3b3)](_0x117372(0x240),this[_0x117372(0x32e)],!0x0),this['element'][_0x117372(0x3b3)]('pointermove',this[_0x117372(0x2fa)],!0x0),this[_0x117372(0x17e)]['removeEventListener']('pointerleave',this['handlePointerLeave'],!0x0),window[_0x117372(0x3b3)](_0x117372(0x3d6),this[_0x117372(0x214)],!0x0),window[_0x117372(0x3b3)](_0x117372(0x370),this[_0x117372(0x2a5)],!0x0),window[_0x117372(0x3b3)](_0x117372(0x347),this['handlePointerUp'],!0x0),this[_0x117372(0x208)]&&this[_0x117372(0xcd)]?.(),this[_0x117372(0x208)]=null,this['previousAxis']=null,this['state']['clearPreview']());}[_0xe1b81f(0x1ad)](_0x309774,_0x523fca){const _0x3fe59f=_0xe1b81f;let _0x3790e6=this[_0x3fe59f(0x28d)]();if(!_0x3790e6)return null;let [_0xd99e4c,_0x5b3692]=_0x2d122a(_0x309774,this[_0x3fe59f(0x17e)],_0x3790e6),_0x336192=this[_0x3fe59f(0x23a)][_0x3fe59f(0x128)];if(_0x336192===null)return null;let _0x31c0ed=(_0x523fca?[_0x523fca]:_0x336192===_0x3fe59f(0x397)?['x','y','z']:[_0x336192])[_0x3fe59f(0x2bb)](_0xcc0e6d=>_0x5e105d(_0xcc0e6d,_0x3790e6))[_0x3fe59f(0x309)](_0x3ec614=>_0x3ec614!==null)[_0x3fe59f(0x2bb)](_0x4647ce=>_0x341fc7(_0x4647ce,_0xd99e4c,_0x5b3692));if(_0x31c0ed[_0x3fe59f(0x3bd)]===0x0)return null;_0x31c0ed['sort']((_0x1c33c1,_0x315af7)=>_0x1c33c1[_0x3fe59f(0x356)]-_0x315af7[_0x3fe59f(0x356)]);let _0x2f2cc0=_0x31c0ed[0x0];if(!_0x523fca&&this[_0x3fe59f(0x3c6)]){let _0xf94927=_0x31c0ed['find'](_0x1eb6f1=>_0x1eb6f1[_0x3fe59f(0xd0)]===this['previousAxis']);_0xf94927&&_0xf94927[_0x3fe59f(0x356)]<=_0x2f2cc0[_0x3fe59f(0x356)]+this[_0x3fe59f(0xe0)]&&(_0x2f2cc0=_0xf94927);}return!_0x523fca&&_0x2f2cc0['distance']>this[_0x3fe59f(0xca)]?null:_0x2f2cc0;}[_0xe1b81f(0x194)](_0x3224af,_0x450a10){const _0xf6eac8=_0xe1b81f;let _0x1ba218=_0x341aa1(this[_0xf6eac8(0x23a)],_0x3224af[_0xf6eac8(0xd0)],_0x3224af['normalizedPosition']);_0x450a10?this[_0xf6eac8(0x23a)][_0xf6eac8(0xfc)](_0x450a10,_0x1ba218):this['state'][_0xf6eac8(0x2e9)](_0x3224af[_0xf6eac8(0xd0)],_0x1ba218),this['previousAxis']=_0x3224af[_0xf6eac8(0xd0)];}[_0xe1b81f(0x32e)]=_0xfa5f3=>{const _0x1315c7=_0xe1b81f;if(_0xfa5f3[_0x1315c7(0x330)]!==0x0||this[_0x1315c7(0x208)])return;let _0xbed5ec=this[_0x1315c7(0x1ad)](_0xfa5f3);_0xbed5ec&&(this['applyHit'](_0xbed5ec),this[_0x1315c7(0x208)]={'kind':_0x1315c7(0xdf),'axis':_0xbed5ec[_0x1315c7(0xd0)],'pointerId':_0xfa5f3[_0x1315c7(0x11d)],'startX':_0xfa5f3[_0x1315c7(0x16b)],'startY':_0xfa5f3[_0x1315c7(0x1df)],'moved':!0x1},this[_0x1315c7(0x288)]?.(),this[_0x1315c7(0x17e)][_0x1315c7(0x307)]?.(_0xfa5f3[_0x1315c7(0x11d)]),_0xfa5f3[_0x1315c7(0x286)](),_0xfa5f3[_0x1315c7(0x149)]());};['handlePointerMove']=_0x2abd30=>{const _0x2c42b3=_0xe1b81f;if(this[_0x2c42b3(0x208)])return;let _0x11d7f2=this[_0x2c42b3(0x1ad)](_0x2abd30);if(!_0x11d7f2){this['previousAxis']=null,this[_0x2c42b3(0x23a)]['clearPreview']();return;}this[_0x2c42b3(0x194)](_0x11d7f2);};['handleWindowPointerMove']=_0x1ee37f=>{const _0xb2c507=_0xe1b81f;let _0x1de2c3=this[_0xb2c507(0x208)];if(!_0x1de2c3||_0x1de2c3[_0xb2c507(0x11d)]!==_0x1ee37f['pointerId'])return;let _0x346a68=this[_0xb2c507(0x1ad)](_0x1ee37f,_0x1de2c3[_0xb2c507(0xd0)]);_0x346a68&&(Math['hypot'](_0x1ee37f[_0xb2c507(0x16b)]-_0x1de2c3[_0xb2c507(0x1f8)],_0x1ee37f[_0xb2c507(0x1df)]-_0x1de2c3['startY'])>0x4&&(_0x1de2c3['moved']=!0x0),this[_0xb2c507(0x194)](_0x346a68,_0x1de2c3['sliceId']),_0x1ee37f[_0xb2c507(0x286)](),_0x1ee37f[_0xb2c507(0x149)]());};[_0xe1b81f(0x2a5)]=_0x4fe0e8=>{const _0x230714=_0xe1b81f;let _0x57be8a=this['activePointer'];!_0x57be8a||_0x57be8a[_0x230714(0x11d)]!==_0x4fe0e8[_0x230714(0x11d)]||(_0x57be8a[_0x230714(0x162)]===_0x230714(0xdf)&&!_0x57be8a[_0x230714(0x156)]&&this[_0x230714(0x23a)][_0x230714(0x33f)](),this[_0x230714(0x17e)]['hasPointerCapture']?.(_0x4fe0e8[_0x230714(0x11d)])&&this[_0x230714(0x17e)][_0x230714(0x3a7)](_0x4fe0e8[_0x230714(0x11d)]),this[_0x230714(0x208)]=null,this[_0x230714(0xcd)]?.(),_0x4fe0e8[_0x230714(0x286)](),_0x4fe0e8[_0x230714(0x149)]());};[_0xe1b81f(0x3e7)]=()=>{const _0x2a7c75=_0xe1b81f;this[_0x2a7c75(0x208)]||this[_0x2a7c75(0x23a)][_0x2a7c75(0x130)]();};};let _0x54729a=_0x441e50=>_0x441e50[_0xe1b81f(0x218)](),_0x81922c=(_0x49eb73,_0x4f6aa9)=>_0x54729a(_0x49eb73)+'\x20'+Number(_0x4f6aa9[_0xe1b81f(0x1d8)](0x4)),_0x6dc322=(_0xefd9e6,_0x32cdd6)=>{const _0x1d797e=_0xe1b81f;let _0x38618a=_0xefd9e6['axisDefinitions'];return _0x32cdd6==='x'?_0x38618a[_0x1d797e(0x36d)]:_0x32cdd6==='y'?_0x38618a[_0x1d797e(0x1b4)]:_0x38618a[_0x1d797e(0x2a0)];},_0x364c70=(_0x592ad2,_0x2ad61b)=>{const _0x47e9f9=_0xe1b81f;let _0x3b67e8=_0x2bf3c9(_0x6dc322(_0x592ad2,_0x2ad61b[_0x47e9f9(0xd0)]),_0x2ad61b[_0x47e9f9(0x232)]);return _0x2ad61b[_0x47e9f9(0xd0)]==='x'?[_0x3b67e8,0x0,0x0]:_0x2ad61b[_0x47e9f9(0xd0)]==='y'?[0x0,_0x3b67e8,0x0]:[0x0,0x0,_0x3b67e8];},_0x451869=_0x458b04=>{const _0x288544=_0xe1b81f;_0x458b04[_0x288544(0x14d)]['position']=_0x288544(0xf9),_0x458b04[_0x288544(0x14d)][_0x288544(0x3aa)]='1',_0x458b04['style'][_0x288544(0x3c3)]='flex',_0x458b04[_0x288544(0x14d)]['alignItems']=_0x288544(0x1ca),_0x458b04['style'][_0x288544(0x9d)]=_0x288544(0x141),_0x458b04['style'][_0x288544(0x148)]='3px\x206px',_0x458b04[_0x288544(0x14d)][_0x288544(0x35c)]=_0x288544(0x38d),_0x458b04[_0x288544(0x14d)][_0x288544(0x345)]=_0x288544(0x141),_0x458b04['style'][_0x288544(0x315)]='#fff',_0x458b04[_0x288544(0x14d)][_0x288544(0x15d)]=_0x288544(0x119),_0x458b04[_0x288544(0x14d)][_0x288544(0x3ec)]='12px/1.2\x20sans-serif',_0x458b04['style'][_0x288544(0x2e1)]=_0x288544(0x209),_0x458b04[_0x288544(0x14d)][_0x288544(0x106)]=_0x288544(0x361),_0x458b04[_0x288544(0x14d)][_0x288544(0x107)]=_0x288544(0x1a5),_0x458b04[_0x288544(0x14d)][_0x288544(0x17c)]=_0x288544(0x1a5);},_0x1688d7=()=>{const _0x36d7df=_0xe1b81f;let _0x586aed=document[_0x36d7df(0x1fe)]('button');return _0x586aed[_0x36d7df(0x3b5)]=_0x36d7df(0x330),_0x586aed[_0x36d7df(0x12b)]='×',_0x586aed[_0x36d7df(0x22f)]('aria-label',_0x36d7df(0x25f)),_0x586aed[_0x36d7df(0x14d)]['padding']='0\x202px',_0x586aed['style'][_0x36d7df(0x35c)]='0',_0x586aed[_0x36d7df(0x14d)]['color']=_0x36d7df(0x233),_0x586aed[_0x36d7df(0x14d)][_0x36d7df(0x15d)]=_0x36d7df(0x3a4),_0x586aed['style'][_0x36d7df(0x185)]='pointer',_0x586aed;};var _0x8a100b=class{['container'];[_0xe1b81f(0x23a)];[_0xe1b81f(0x28d)];['interactionController'];[_0xe1b81f(0x25b)];['markers']=new Map();[_0xe1b81f(0x1ea)];[_0xe1b81f(0x351)];[_0xe1b81f(0x1d5)]=null;constructor(_0x261b4e,_0x3a1a65,_0x206c92,_0x5a8326={}){const _0x3187f7=_0xe1b81f;this['container']=_0x261b4e,this[_0x3187f7(0x23a)]=_0x3a1a65,this[_0x3187f7(0x28d)]=_0x206c92,this[_0x3187f7(0x173)]=_0x5a8326[_0x3187f7(0x173)],this[_0x3187f7(0x25b)]=_0x5a8326[_0x3187f7(0x25b)]??_0x81922c,this['previousContainerPosition']=_0x261b4e['style'][_0x3187f7(0x232)],getComputedStyle(_0x261b4e)[_0x3187f7(0x232)]==='static'&&(_0x261b4e[_0x3187f7(0x14d)]['position']=_0x3187f7(0x3c2)),this[_0x3187f7(0x351)]=_0x3a1a65['subscribe'](()=>this['update']());}[_0xe1b81f(0x2d4)](){const _0x4af9e5=_0xe1b81f;let _0xe432d5=this['state'][_0x4af9e5(0x2ec)];this[_0x4af9e5(0x24c)](_0xe432d5[_0x4af9e5(0xdf)]),this[_0x4af9e5(0x3a9)](_0xe432d5[_0x4af9e5(0x105)]);let _0x507b0e=this[_0x4af9e5(0x28d)]();if(!_0x507b0e){this[_0x4af9e5(0x344)]();return;}_0xe432d5['preview']&&this[_0x4af9e5(0x1d5)]&&this['positionMarker'](this[_0x4af9e5(0x1d5)],_0xe432d5['preview'],_0x507b0e);for(let _0x3b7c6d of _0xe432d5['lockedSlices']){let _0x3a9a2d=this[_0x4af9e5(0x10b)][_0x4af9e5(0xd8)](_0x3b7c6d['id']);_0x3a9a2d&&this[_0x4af9e5(0x13f)](_0x3a9a2d,_0x3b7c6d,_0x507b0e);}}[_0xe1b81f(0x1e8)](){const _0x20aef9=_0xe1b81f;this[_0x20aef9(0x351)](),this[_0x20aef9(0x1d5)]?.[_0x20aef9(0x183)](),this[_0x20aef9(0x1d5)]=null;for(let _0x3f3502 of this[_0x20aef9(0x10b)]['values']())_0x3f3502[_0x20aef9(0x183)]();this[_0x20aef9(0x10b)][_0x20aef9(0x34d)](),this['container'][_0x20aef9(0x14d)][_0x20aef9(0x232)]=this['previousContainerPosition'];}[_0xe1b81f(0x24c)](_0x40795f){const _0x3e6e5=_0xe1b81f;if(!_0x40795f){this[_0x3e6e5(0x1d5)]?.['remove'](),this['previewMarker']=null;return;}this['previewMarker']||(this[_0x3e6e5(0x1d5)]=document[_0x3e6e5(0x1fe)](_0x3e6e5(0x2ea)),_0x451869(this[_0x3e6e5(0x1d5)]),this[_0x3e6e5(0x1d5)]['style'][_0x3e6e5(0x102)]=_0x3e6e5(0x1a5),this[_0x3e6e5(0x1d5)]['style'][_0x3e6e5(0x3f5)]='0.72',this[_0x3e6e5(0x182)][_0x3e6e5(0x222)](this[_0x3e6e5(0x1d5)])),this[_0x3e6e5(0x1d5)][_0x3e6e5(0x12b)]=this['formatPosition'](_0x40795f['axis'],_0x40795f[_0x3e6e5(0x232)]);}[_0xe1b81f(0x3a9)](_0x45ed5a){const _0x5c05da=_0xe1b81f;let _0x4b6fe9=new Set(_0x45ed5a[_0x5c05da(0x2bb)](_0x592905=>_0x592905['id']));for(let [_0x28dfa5,_0x3cbce6]of this[_0x5c05da(0x10b)])_0x4b6fe9[_0x5c05da(0x1e5)](_0x28dfa5)||(_0x3cbce6[_0x5c05da(0x183)](),this['markers'][_0x5c05da(0xee)](_0x28dfa5));for(let _0x1948e5 of _0x45ed5a){let _0x177cce=this[_0x5c05da(0x10b)]['get'](_0x1948e5['id']);_0x177cce||(_0x177cce=this[_0x5c05da(0x13d)](_0x1948e5['id']),this[_0x5c05da(0x10b)][_0x5c05da(0x326)](_0x1948e5['id'],_0x177cce),this['container'][_0x5c05da(0x222)](_0x177cce));let _0xe5f86d=_0x177cce[_0x5c05da(0x19b)];_0xe5f86d&&(_0xe5f86d[_0x5c05da(0x12b)]=this['formatPosition'](_0x1948e5[_0x5c05da(0xd0)],_0x1948e5[_0x5c05da(0x232)]));}}[_0xe1b81f(0x13d)](_0x5008f6){const _0x18dfcf=_0xe1b81f;let _0x4aac3f=document[_0x18dfcf(0x1fe)](_0x18dfcf(0x2ea));_0x451869(_0x4aac3f),_0x4aac3f[_0x18dfcf(0x14d)]['cursor']=_0x18dfcf(0xc5),_0x4aac3f[_0x18dfcf(0x222)](document[_0x18dfcf(0x15f)](''));let _0x252a69=_0x1688d7();return _0x252a69['addEventListener']('pointerdown',_0x2db2d2=>_0x2db2d2[_0x18dfcf(0x149)]()),_0x252a69[_0x18dfcf(0x32d)](_0x18dfcf(0x300),_0x4aca10=>{const _0x5d3bb0=_0x18dfcf;_0x4aca10[_0x5d3bb0(0x149)](),this[_0x5d3bb0(0x23a)][_0x5d3bb0(0x18f)](_0x5008f6);}),_0x4aac3f['addEventListener'](_0x18dfcf(0x240),_0x3e89c9=>this['interactionController']?.[_0x18dfcf(0x296)](_0x5008f6,_0x3e89c9)),_0x4aac3f[_0x18dfcf(0x222)](_0x252a69),_0x4aac3f;}[_0xe1b81f(0x13f)](_0x5ab8dd,_0x1f9863,_0x460c57){const _0x321034=_0xe1b81f;let _0x478ce4=_0x36debe(_0x15126f(_0x460c57['viewProjectionMatrix'],_0x460c57[_0x321034(0x34c)]),_0x364c70(this[_0x321034(0x23a)],_0x1f9863),_0x460c57[_0x321034(0x161)],_0x460c57['viewportHeight']);if(!_0x478ce4||_0x478ce4[0x2]<0x0||_0x478ce4[0x2]>0x1){_0x5ab8dd[_0x321034(0x14d)][_0x321034(0x3c3)]=_0x321034(0x1a5);return;}_0x5ab8dd[_0x321034(0x14d)][_0x321034(0x3c3)]=_0x321034(0xa5),_0x5ab8dd[_0x321034(0x14d)][_0x321034(0x16f)]=_0x478ce4[0x0]+'px',_0x5ab8dd['style'][_0x321034(0x3b9)]=_0x478ce4[0x1]+'px';}[_0xe1b81f(0x344)](){const _0x2c9f7d=_0xe1b81f;this['previewMarker']&&(this[_0x2c9f7d(0x1d5)][_0x2c9f7d(0x14d)][_0x2c9f7d(0x3c3)]=_0x2c9f7d(0x1a5));for(let _0x37c189 of this['markers'][_0x2c9f7d(0xc2)]())_0x37c189[_0x2c9f7d(0x14d)][_0x2c9f7d(0x3c3)]=_0x2c9f7d(0x1a5);}};let _0x5f1b2e=(_0x247d70,_0x2c154b)=>Math['min'](_0x2c154b-0x1,Math[_0xe1b81f(0x272)](0x0,_0x247d70)),_0x2fb2c7=(_0x1f7beb,_0x3b63cf,_0x8693a0,_0x31b716)=>{const _0x48dfe9=_0xe1b81f;_0x4e0d0d(_0x1f7beb,_0x31b716,_0x8693a0[_0x48dfe9(0xd7)]);let _0x328cab=_0x3b63cf[_0x48dfe9(0x238)]+_0x3b63cf[_0x48dfe9(0x1e7)]*0x2,_0x4fb120=_0x3b63cf[_0x48dfe9(0x221)]+_0x3b63cf[_0x48dfe9(0x1e7)]*0x2,_0x11f95b=_0x3b63cf[_0x48dfe9(0x3e6)]+_0x3b63cf[_0x48dfe9(0x1e7)]*0x2,_0x559ad1=new Float32Array(_0x328cab*_0x4fb120*_0x11f95b);for(let _0xe08dd2=0x0;_0xe08dd2<_0x11f95b;_0xe08dd2+=0x1){let _0x5383e4=_0x5f1b2e(_0x8693a0[_0x48dfe9(0x258)][_0x48dfe9(0x329)]+_0xe08dd2-_0x3b63cf[_0x48dfe9(0x1e7)],_0x1f7beb[_0x48dfe9(0x2a0)]['count'])-_0x31b716['range'][_0x48dfe9(0x329)];for(let _0x311b79=0x0;_0x311b79<_0x4fb120;_0x311b79+=0x1){let _0x4472c4=_0x5f1b2e(_0x8693a0[_0x48dfe9(0x258)]['levelStart']+_0x311b79-_0x3b63cf['halo'],_0x1f7beb[_0x48dfe9(0x1b4)][_0x48dfe9(0x2a3)])-_0x31b716[_0x48dfe9(0x37f)]['levelStart'];for(let _0x1a2dca=0x0;_0x1a2dca<_0x328cab;_0x1a2dca+=0x1){let _0x44aa9b=_0x5f1b2e(_0x8693a0[_0x48dfe9(0x258)][_0x48dfe9(0x3cd)]+_0x1a2dca-_0x3b63cf['halo'],_0x1f7beb[_0x48dfe9(0x36d)]['count'])-_0x31b716[_0x48dfe9(0x37f)][_0x48dfe9(0x3cd)];_0x559ad1[(_0xe08dd2*_0x4fb120+_0x311b79)*_0x328cab+_0x1a2dca]=_0x31b716['values'][(_0x5383e4*_0x31b716['height']+_0x4472c4)*_0x31b716['width']+_0x44aa9b];}}}return _0x559ad1;},_0x51e9f9=_0xfe1fa7=>{const _0x1227ed=_0xe1b81f;if(_0xfe1fa7[_0x1227ed(0x3bd)]===0x0)throw Error(_0x1227ed(0x3c4));return _0xfe1fa7[_0x1227ed(0x2bb)]((_0x3d6597,_0x170564)=>{const _0x1f20a2=_0x1227ed;if(Number[_0x1f20a2(0x1a7)](_0x3d6597[_0x1f20a2(0x22c)])||Number[_0x1f20a2(0x1a7)](_0x3d6597['max']))throw TypeError('第'+(_0x170564+0x1)+_0x1f20a2(0xef));if(_0x3d6597[_0x1f20a2(0x22c)]>=_0x3d6597['max'])throw Error('第'+(_0x170564+0x1)+_0x1f20a2(0x308));return{'min':_0x3d6597[_0x1f20a2(0x22c)],'max':_0x3d6597['max'],'color':_0x4da7db(_0x3d6597[_0x1f20a2(0x315)])};})[_0x1227ed(0x320)]((_0x34fafe,_0x52280e)=>_0x34fafe[_0x1227ed(0x22c)]-_0x52280e[_0x1227ed(0x22c)]);},_0x4da7db=_0x55b863=>{const _0x5f09ec=_0xe1b81f;let _0x2b37eb=_0x55b863[_0x5f09ec(0x9f)]()[_0x5f09ec(0x29b)]();if(_0x2b37eb[_0x5f09ec(0x103)]('#'))return _0x545a52(_0x2b37eb);if(_0x2b37eb[_0x5f09ec(0x103)]('rgba('))return _0x3d0ff2(_0x2b37eb,!0x0);if(_0x2b37eb[_0x5f09ec(0x103)]('rgb('))return _0x3d0ff2(_0x2b37eb,!0x1);throw Error('不支持的颜色格式:\x20'+_0x55b863);},_0x545a52=_0x37b016=>{const _0x364a29=_0xe1b81f;if(_0x37b016['length']===0x4)return _0x418279(Number['parseInt'](''+_0x37b016[0x1]+_0x37b016[0x1],0x10),Number[_0x364a29(0x1c2)](''+_0x37b016[0x2]+_0x37b016[0x2],0x10),Number['parseInt'](''+_0x37b016[0x3]+_0x37b016[0x3],0x10),0x1);if(_0x37b016[_0x364a29(0x3bd)]===0x7)return _0x418279(Number[_0x364a29(0x1c2)](_0x37b016[_0x364a29(0x15c)](0x1,0x3),0x10),Number[_0x364a29(0x1c2)](_0x37b016[_0x364a29(0x15c)](0x3,0x5),0x10),Number[_0x364a29(0x1c2)](_0x37b016[_0x364a29(0x15c)](0x5,0x7),0x10),0x1);throw Error(_0x364a29(0x115)+_0x37b016);},_0x3d0ff2=(_0x4e8af4,_0x2652d5)=>{const _0x3892f3=_0xe1b81f;let _0x3c009c=_0x4e8af4['match'](/^rgba?\(([^)]+)\)$/);if(!_0x3c009c)throw Error(_0x3892f3(0x31a)+_0x4e8af4);let _0x4113b9=_0x3c009c[0x1][_0x3892f3(0x246)](',')['map'](_0x40618e=>_0x40618e['trim']()),_0x284212=_0x2652d5?0x4:0x3;if(_0x4113b9[_0x3892f3(0x3bd)]!==_0x284212)throw Error(_0x3892f3(0x1b9)+_0x4e8af4);return _0x418279(Number(_0x4113b9[0x0]),Number(_0x4113b9[0x1]),Number(_0x4113b9[0x2]),_0x2652d5?Number(_0x4113b9[0x3]):0x1);},_0x418279=(_0x1bcd01,_0x4f8989,_0x388622,_0x2eb5de)=>{const _0x423296=_0xe1b81f;if(!_0x3fcba1(_0x1bcd01)||!_0x3fcba1(_0x4f8989)||!_0x3fcba1(_0x388622))throw Error(_0x423296(0x360));if(!Number[_0x423296(0x1a4)](_0x2eb5de)||_0x2eb5de<0x0||_0x2eb5de>0x1)throw Error(_0x423296(0x368));return[_0x1bcd01/0xff,_0x4f8989/0xff,_0x388622/0xff,_0x2eb5de];},_0x3fcba1=_0x21ec69=>Number[_0xe1b81f(0x1a4)](_0x21ec69)&&_0x21ec69>=0x0&&_0x21ec69<=0xff,_0x293c1a=_0x3d99d1=>{const _0x500e46=_0xe1b81f;if(_0x3d99d1[_0x500e46(0x3bd)]===0x0)throw Error(_0x500e46(0x153));let _0x2a68fe=-0x1/0x0;for(let _0x424e5a of _0x3d99d1){if(!Number[_0x500e46(0x1a4)](_0x424e5a['value'])||_0x424e5a['value']<=_0x2a68fe)throw Error(_0x500e46(0x252));if(!Number[_0x500e46(0x1a4)](_0x424e5a['opacity'])||_0x424e5a['opacity']<0x0||_0x424e5a[_0x500e46(0x3f5)]>0x1)throw Error(_0x500e46(0x17b));_0x2a68fe=_0x424e5a[_0x500e46(0x375)];}},_0x692a1a=(_0x45c3fa,_0x54d8b7)=>{if(_0x45c3fa<=_0x54d8b7[0x0])return[0x0,0x0,0x0];for(let _0x4e59f6=0x1;_0x4e59f6<_0x54d8b7['length'];_0x4e59f6+=0x1)if(_0x45c3fa<=_0x54d8b7[_0x4e59f6]){let _0x3b0c77=_0x54d8b7[_0x4e59f6]-_0x54d8b7[_0x4e59f6-0x1];return[_0x4e59f6-0x1,_0x4e59f6,_0x3b0c77===0x0?0x0:Math['min'](0x1,Math['max'](0x0,(_0x45c3fa-_0x54d8b7[_0x4e59f6-0x1])/_0x3b0c77))];}let _0x47b527=_0x54d8b7['length']-0x1;return[_0x47b527,_0x47b527,0x0];},_0x231d04=(_0x3e8a95,_0x47f61d)=>{const _0x126ded=_0xe1b81f;_0x293c1a(_0x47f61d);let _0x5f0f34=_0x51e9f9([..._0x3e8a95]);return{'colorStops':_0x5f0f34['flatMap']((_0x34da2d,_0x139474)=>{const _0x2fa730=_0x341a;let _0x22d6db=_0x5f0f34[Math[_0x2fa730(0x22c)](_0x139474+0x1,_0x5f0f34[_0x2fa730(0x3bd)]-0x1)][_0x2fa730(0x315)];return[{'value':_0x34da2d['min'],'color':_0x34da2d[_0x2fa730(0x315)]},{'value':_0x34da2d['max'],'color':_0x22d6db}];}),'opacityStops':_0x47f61d[_0x126ded(0x2bb)](_0x3bd35f=>({..._0x3bd35f}))};},_0x102a2d=(_0x33a45e,_0x435851,_0x4ca330,_0x465c54)=>{const _0x18563c=_0xe1b81f;if(!Number['isFinite'](_0x33a45e))return[0x0,0x0,0x0,0x0];let [_0x12fbf5,_0x5c7b01,_0x274050]=_0x692a1a(_0x33a45e,_0x435851['map'](_0x47e40b=>_0x47e40b[_0x18563c(0x375)])),_0x133fee=_0x435851[_0x12fbf5],_0x523078=_0x435851[_0x5c7b01],_0x4f16fe=_0x465c54==='step'?0x0:_0x274050;return[_0x133fee[_0x18563c(0x315)][0x0]+(_0x523078[_0x18563c(0x315)][0x0]-_0x133fee['color'][0x0])*_0x4f16fe,_0x133fee[_0x18563c(0x315)][0x1]+(_0x523078[_0x18563c(0x315)][0x1]-_0x133fee[_0x18563c(0x315)][0x1])*_0x4f16fe,_0x133fee[_0x18563c(0x315)][0x2]+(_0x523078[_0x18563c(0x315)][0x2]-_0x133fee['color'][0x2])*_0x4f16fe,(_0x133fee[_0x18563c(0x315)][0x3]+(_0x523078[_0x18563c(0x315)][0x3]-_0x133fee[_0x18563c(0x315)][0x3])*_0x4f16fe)*_0x4ca330];},_0x4e1978=(_0x33ec4c,_0x4550e4,_0x32e5eb)=>{const _0x995b24=_0xe1b81f;if(!Number[_0x995b24(0x1a4)](_0x33ec4c))return 0x0;let [_0x21f752,_0x30aafa,_0x14dd11]=_0x692a1a(_0x33ec4c,_0x4550e4[_0x995b24(0x2bb)](_0x568148=>_0x568148['value'])),_0x2cba92=_0x32e5eb==='step'?0x0:_0x14dd11;return _0x4550e4[_0x21f752]['opacity']+(_0x4550e4[_0x30aafa][_0x995b24(0x3f5)]-_0x4550e4[_0x21f752][_0x995b24(0x3f5)])*_0x2cba92;},_0xf62489={'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}},_0x3f6ec4=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],_0x4b9b32=_0xbcc664=>Math[_0xe1b81f(0x22c)](0x1,Math[_0xe1b81f(0x272)](0x0,_0xbcc664)),_0x17c6cc=_0x34c63f=>_0x34c63f===_0xe1b81f(0x2ef)?0.012:_0x34c63f===_0xe1b81f(0x2ca)?0.0025:_0x34c63f===_0xe1b81f(0x16e)?0.005:0.006,_0x21c913=_0x4255fb=>_0x4255fb==='performance'?0x8:_0x4255fb===_0xe1b81f(0x2ca)?0x2:0x4,_0x1f3b87=(_0x18fb9e,_0xac5f68)=>_0xac5f68>0x18?_0x18fb9e===_0xe1b81f(0x2ca)?_0xe1b81f(0x16e):'performance':_0xac5f68<0xe?_0x18fb9e===_0xe1b81f(0x2ef)?_0xe1b81f(0x16e):'quality':_0x18fb9e,_0x1294eb=(_0x510928,_0x2aed8a)=>{const _0x24262e=_0xe1b81f;if(!Number[_0x24262e(0x1a4)](_0x510928)||_0x510928<=0x0)throw Error(_0x2aed8a+_0x24262e(0x206)+_0x2aed8a+_0x24262e(0x18a));return _0x510928;},_0x45740f=(_0x1894c8,_0x2ffb24)=>{const _0x2d4496=_0xe1b81f;if(!_0x2ffb24)return{'minimum':[0x0,0x0,0x0],'maximum':[0x1,0x1,0x1]};let _0x175b1e=_0x4b9b32(_0x2bf3c9(_0x1894c8['metadata'][_0x2d4496(0x36d)],_0x2ffb24[_0x2d4496(0x357)])),_0x52644f=_0x4b9b32(_0x2bf3c9(_0x1894c8['metadata'][_0x2d4496(0x36d)],_0x2ffb24[_0x2d4496(0x3f1)])),_0x52be0f=_0x4b9b32(_0x2bf3c9(_0x1894c8['metadata'][_0x2d4496(0x1b4)],_0x2ffb24[_0x2d4496(0x316)])),_0x1cd20b=_0x4b9b32(_0x2bf3c9(_0x1894c8['metadata'][_0x2d4496(0x1b4)],_0x2ffb24['maxY'])),_0x5c2da4=_0x4b9b32(_0x2bf3c9(_0x1894c8[_0x2d4496(0xc3)][_0x2d4496(0x2a0)],_0x2ffb24[_0x2d4496(0x343)])),_0x5cbe43=_0x4b9b32(_0x2bf3c9(_0x1894c8[_0x2d4496(0xc3)][_0x2d4496(0x2a0)],_0x2ffb24[_0x2d4496(0x38e)]));return{'minimum':[Math[_0x2d4496(0x22c)](_0x175b1e,_0x52644f),Math[_0x2d4496(0x22c)](_0x52be0f,_0x1cd20b),Math[_0x2d4496(0x22c)](_0x5c2da4,_0x5cbe43)],'maximum':[Math[_0x2d4496(0x272)](_0x175b1e,_0x52644f),Math[_0x2d4496(0x272)](_0x52be0f,_0x1cd20b),Math[_0x2d4496(0x272)](_0x5c2da4,_0x5cbe43)]};},_0x3494a3=()=>({'id':_0xe1b81f(0x2db),'topology':_0xe1b81f(0x287),'depthMode':_0xe1b81f(0x3b0),'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])}),_0x4ad80b=()=>{const _0x4ad6ef=_0xe1b81f;let _0x488104=[0.1,0.53,0.56,0.62],_0x5a7568=[[0x0,0x0,0x0],[0x1,0x0,0x0],[0x0,0x1,0x0],[0x1,0x1,0x0],[0x0,0x0,0x1],[0x1,0x0,0x1],[0x0,0x1,0x1],[0x1,0x1,0x1]],_0x5dbb50=[[0x0,0x1],[0x0,0x2],[0x1,0x3],[0x2,0x3],[0x4,0x5],[0x4,0x6],[0x5,0x7],[0x6,0x7],[0x0,0x4],[0x1,0x5],[0x2,0x6],[0x3,0x7]],_0x2678ca=new Float32Array(_0x5dbb50['length']*0x2*0x7),_0x2ff801=0x0;for(let _0x189eec of _0x5dbb50)for(let _0x2c6e43 of _0x189eec)_0x2678ca['set']([..._0x5a7568[_0x2c6e43],..._0x488104],_0x2ff801),_0x2ff801+=0x7;return{'id':_0x4ad6ef(0xb2),'topology':_0x4ad6ef(0x287),'depthMode':_0x4ad6ef(0x333),'vertices':_0x2678ca};},_0x5a5b05=(_0x50c719,_0x201884,_0x28e7ee,_0x5c499a)=>{const _0x3c635d=_0xe1b81f;let _0x9e98ff=new Float32Array(_0x50c719[_0x3c635d(0xac)][_0x3c635d(0x3bd)]*0x7);for(let _0x2ad1b7=0x0;_0x2ad1b7<_0x50c719['indices'][_0x3c635d(0x3bd)];_0x2ad1b7+=0x1){let _0x2d8329=_0x50c719['indices'][_0x2ad1b7],_0x98428d=_0x2d8329*0x3,_0x3842e4=_0x4e1978(_0x50c719[_0x3c635d(0xc2)][_0x2d8329],_0x28e7ee,_0x5c499a),_0x565a71=_0x102a2d(_0x50c719[_0x3c635d(0xc2)][_0x2d8329],_0x201884,_0x50c719[_0x3c635d(0x3f5)]*_0x3842e4,_0x5c499a);_0x9e98ff['set']([_0x50c719[_0x3c635d(0x27b)][_0x98428d],_0x50c719[_0x3c635d(0x27b)][_0x98428d+0x1],_0x50c719['positions'][_0x98428d+0x2],_0x565a71[0x0]*_0x565a71[0x3],_0x565a71[0x1]*_0x565a71[0x3],_0x565a71[0x2]*_0x565a71[0x3],_0x565a71[0x3]],_0x2ad1b7*0x7);}return{'id':_0x50c719['id'],'topology':_0x3c635d(0xd4),'depthMode':_0x50c719['depthMode'],'vertices':_0x9e98ff};},_0xcc2420=(_0x4ff5c5,_0x17b742,_0x35d05e)=>{const _0xf82b17=_0xe1b81f;let _0x22c468=(_0x4ff5c5[_0xf82b17(0x158)]['x']+0.5)/_0x17b742[_0xf82b17(0x124)],_0x1d6c77=(_0x4ff5c5[_0xf82b17(0x158)]['y']+0.5)/_0x17b742[_0xf82b17(0x14a)],_0xe3ab0e=(_0x4ff5c5[_0xf82b17(0x158)]['z']+0.5)/_0x17b742[_0xf82b17(0x3de)];return Math[_0xf82b17(0x3df)](_0x22c468-_0x35d05e[_0xf82b17(0x232)][0x0],_0x1d6c77-_0x35d05e[_0xf82b17(0x232)][0x1],_0xe3ab0e-_0x35d05e[_0xf82b17(0x232)][0x2]);},_0x137339=(_0x4ffaa7,_0xbb0b8d)=>(_0x4ffaa7['coordinate']['z']*_0xbb0b8d[_0xe1b81f(0x14a)]+_0x4ffaa7[_0xe1b81f(0x158)]['y'])*_0xbb0b8d[_0xe1b81f(0x124)]+_0x4ffaa7['coordinate']['x'],_0xda050f=(_0x6e1d92,_0x2ad199,_0x275b09,_0xa0c5f6)=>{const _0x41612e=_0xe1b81f;let _0x1a8582=_0x275b09==='x'?{'start':_0x6e1d92[_0x41612e(0x258)][_0x41612e(0x3cd)],'count':_0x6e1d92[_0x41612e(0x258)][_0x41612e(0x123)],'size':_0x2ad199['metadata']['xAxis'][_0x41612e(0x2a3)]}:_0x275b09==='y'?{'start':_0x6e1d92[_0x41612e(0x258)][_0x41612e(0x101)],'count':_0x6e1d92[_0x41612e(0x258)][_0x41612e(0x160)],'size':_0x2ad199[_0x41612e(0xc3)][_0x41612e(0x1b4)][_0x41612e(0x2a3)]}:{'start':_0x6e1d92[_0x41612e(0x258)][_0x41612e(0x329)],'count':_0x6e1d92[_0x41612e(0x258)][_0x41612e(0xa1)],'size':_0x2ad199[_0x41612e(0xc3)][_0x41612e(0x2a0)][_0x41612e(0x2a3)]};return _0xa0c5f6>=_0x1a8582[_0x41612e(0x35f)]/_0x1a8582[_0x41612e(0xbd)]&&_0xa0c5f6<=(_0x1a8582[_0x41612e(0x35f)]+_0x1a8582[_0x41612e(0x2a3)])/_0x1a8582['size'];},_0xfd1219=(_0x268e59,_0x3faf5f,_0x2404f9)=>{const _0x3d5b07=_0xe1b81f;let _0x551c59=_0x268e59[_0x3d5b07(0x258)]['xStart']/_0x3faf5f[_0x3d5b07(0xc3)][_0x3d5b07(0x36d)][_0x3d5b07(0x2a3)],_0x595060=(_0x268e59[_0x3d5b07(0x258)][_0x3d5b07(0x3cd)]+_0x268e59['coreRange'][_0x3d5b07(0x123)])/_0x3faf5f[_0x3d5b07(0xc3)][_0x3d5b07(0x36d)][_0x3d5b07(0x2a3)],_0x4762df=_0x268e59[_0x3d5b07(0x258)]['levelStart']/_0x3faf5f[_0x3d5b07(0xc3)][_0x3d5b07(0x1b4)][_0x3d5b07(0x2a3)],_0x577ca2=(_0x268e59[_0x3d5b07(0x258)]['levelStart']+_0x268e59[_0x3d5b07(0x258)][_0x3d5b07(0x160)])/_0x3faf5f[_0x3d5b07(0xc3)]['yAxis']['count'],_0x526974=_0x268e59['coreRange'][_0x3d5b07(0x329)]/_0x3faf5f['metadata'][_0x3d5b07(0x2a0)][_0x3d5b07(0x2a3)],_0x1f520d=(_0x268e59[_0x3d5b07(0x258)][_0x3d5b07(0x329)]+_0x268e59['coreRange'][_0x3d5b07(0xa1)])/_0x3faf5f[_0x3d5b07(0xc3)]['zAxis']['count'];return _0x2404f9[_0x3d5b07(0x3ce)](_0x4a25d5=>{const _0x170f15=_0x3d5b07;let _0x608a8f=_0x2bf3c9(_0x3faf5f[_0x170f15(0xc3)][_0x170f15(0x1b4)],_0x4a25d5[_0x170f15(0x9a)][0x0]),_0x10eafb=_0x2bf3c9(_0x3faf5f[_0x170f15(0xc3)][_0x170f15(0x1b4)],_0x4a25d5[_0x170f15(0x9a)][_0x4a25d5['heights'][_0x170f15(0x3bd)]-0x1]);if(Math[_0x170f15(0x272)](_0x608a8f,_0x10eafb)<_0x4762df||Math[_0x170f15(0x22c)](_0x608a8f,_0x10eafb)>_0x577ca2)return!0x1;for(let _0x221be6=0x0;_0x221be6<_0x4a25d5[_0x170f15(0xa4)][_0x170f15(0x3bd)];_0x221be6+=0x2){let _0x66ba36=_0x2bf3c9(_0x3faf5f[_0x170f15(0xc3)][_0x170f15(0x36d)],_0x4a25d5[_0x170f15(0xa4)][_0x221be6]),_0x4ccdde=_0x2bf3c9(_0x3faf5f[_0x170f15(0xc3)][_0x170f15(0x2a0)],_0x4a25d5[_0x170f15(0xa4)][_0x221be6+0x1]);if(_0x66ba36>=_0x551c59&&_0x66ba36<=_0x595060&&_0x4ccdde>=_0x526974&&_0x4ccdde<=_0x1f520d)return!0x0;}return!0x1;});},_0x26c70b=(_0xc1b4bf,_0xd6e25,_0x3d2201,_0x589b70)=>{const _0x11a4f0=_0xe1b81f;let _0x103f62=_0x3d2201[_0x11a4f0(0xdf)];if(_0x103f62){let _0xfeebb5=_0x103f62[_0x11a4f0(0xd0)]==='x'?_0xd6e25[_0x11a4f0(0xc3)][_0x11a4f0(0x36d)]:_0x103f62[_0x11a4f0(0xd0)]==='y'?_0xd6e25['metadata'][_0x11a4f0(0x1b4)]:_0xd6e25[_0x11a4f0(0xc3)]['zAxis'];if(_0xda050f(_0xc1b4bf,_0xd6e25,_0x103f62['axis'],_0x2bf3c9(_0xfeebb5,_0x103f62[_0x11a4f0(0x232)])))return 0x0;}for(let _0x2bb8f4 of _0x3d2201[_0x11a4f0(0x105)]){let _0x235947=_0x2bb8f4[_0x11a4f0(0xd0)]==='x'?_0xd6e25['metadata']['xAxis']:_0x2bb8f4[_0x11a4f0(0xd0)]==='y'?_0xd6e25[_0x11a4f0(0xc3)][_0x11a4f0(0x1b4)]:_0xd6e25[_0x11a4f0(0xc3)][_0x11a4f0(0x2a0)];if(_0x2bb8f4[_0x11a4f0(0x1a2)]&&_0xda050f(_0xc1b4bf,_0xd6e25,_0x2bb8f4[_0x11a4f0(0xd0)],_0x2bf3c9(_0x235947,_0x2bb8f4[_0x11a4f0(0x232)])))return 0x1;}return _0xfd1219(_0xc1b4bf,_0xd6e25,_0x589b70)?0x2:0x3;};var _0x1f9590=class _0x250861{[_0xe1b81f(0x2f7)]=_0xe1b81f(0xa7);['renderer'];[_0xe1b81f(0xab)];['canvas'];[_0xe1b81f(0x1b0)];[_0xe1b81f(0x2d3)];[_0xe1b81f(0x3e4)]=[];['source'];[_0xe1b81f(0x2e8)];['descriptors'];['sliceState'];['colorStops'];['colorInputs'];['opacityStops'];['profiles']=[];[_0xe1b81f(0x31c)];[_0xe1b81f(0x20e)]=0x0;[_0xe1b81f(0x1e2)]=new Set();[_0xe1b81f(0x2c6)]=new Map();[_0xe1b81f(0x37e)]=new Set();[_0xe1b81f(0x3d4)]=0x0;[_0xe1b81f(0x2a7)]=!0x1;[_0xe1b81f(0x117)];[_0xe1b81f(0x312)];[_0xe1b81f(0x26c)];[_0xe1b81f(0x1aa)];[_0xe1b81f(0x2ca)];[_0xe1b81f(0x2ed)]=_0xe1b81f(0x16e);['autoFrameCount']=0x0;[_0xe1b81f(0xec)]=0x0;['colorMode'];[_0xe1b81f(0x25d)]=null;[_0xe1b81f(0x359)];[_0xe1b81f(0x35e)];[_0xe1b81f(0x1cd)];[_0xe1b81f(0x195)];[_0xe1b81f(0x2ff)];['activeInteractions']=new Set();[_0xe1b81f(0x1f6)]=!0x0;[_0xe1b81f(0x197)]=!0x1;[_0xe1b81f(0x27e)]=0x0;[_0xe1b81f(0x342)]=0x0;['pendingSliceSnapshot']=null;['sliceDepthMode'];[_0xe1b81f(0x3cc)];[_0xe1b81f(0x340)];[_0xe1b81f(0x33b)]=0x0;['lastTimingFrameTimestamp']=0x0;[_0xe1b81f(0x1a0)]=0x0;[_0xe1b81f(0x109)]=new Set();['sliceInteraction']=null;[_0xe1b81f(0x1d1)]=null;constructor(_0x1908a9,_0x1b4598){const _0x112116=_0xe1b81f;this[_0x112116(0x2d7)]=_0x1b4598,this[_0x112116(0xc7)]=_0x1908a9['canvas'],this[_0x112116(0x2d3)]=_0x1908a9[_0x112116(0x2d3)]??_0x1908a9['canvas'],this[_0x112116(0x1b0)]=_0x1908a9[_0x112116(0x1b0)]??_0x112116(0xdb),this[_0x112116(0x111)]=_0x1908a9['source'],this['timeIndex']=_0x1908a9['timeIndex']??0x0,this[_0x112116(0x2e8)]=this['createLayout'](_0x1908a9),this['descriptors']=_0x441a97(this['source']['metadata'],this['layout']),this['volumeCamera']=new _0x2e8793({'state':_0x1908a9[_0x112116(0x2f4)]??_0xf62489}),this['sliceState']=this[_0x112116(0x268)](_0x1908a9);let _0x22816b=_0x231d04(_0x1908a9[_0x112116(0x2ae)],_0x1908a9[_0x112116(0x12a)]);if(this[_0x112116(0x2ae)]=_0x22816b[_0x112116(0x2ae)],this[_0x112116(0x304)]=_0x1908a9[_0x112116(0x2ae)],this[_0x112116(0x12a)]=_0x1908a9['opacityStops'],this[_0x112116(0x117)]=_0x1908a9[_0x112116(0x34c)]??_0x3f6ec4,this['verticalScale']=_0x1294eb(_0x1908a9[_0x112116(0x312)]??0x1,_0x112116(0x312)),this[_0x112116(0x26c)]=_0x1908a9[_0x112116(0x26c)]??_0x112116(0x2c2),this['coordinateSystem']===_0x112116(0x147)&&_0x1908a9[_0x112116(0x34c)])throw Error(_0x112116(0x379));this[_0x112116(0x1aa)]=_0x1908a9[_0x112116(0x1aa)]??null,this['quality']=_0x1908a9[_0x112116(0x2ca)]??_0x112116(0x397),this[_0x112116(0x359)]=_0x1908a9[_0x112116(0x359)]??_0x112116(0x22d),this['pixelRatioCap']=_0x1294eb(_0x1908a9[_0x112116(0x35e)]??0x2,_0x112116(0x35e)),this[_0x112116(0x1cd)]=_0x1294eb(_0x1908a9['renderScale']??0x1,_0x112116(0x1cd)),this['interactionRenderScale']=_0x1294eb(_0x1908a9['interactionRenderScale']??0.6,_0x112116(0x195)),this['interactionStepScale']=_0x1294eb(_0x1908a9[_0x112116(0x2ff)]??0x1,_0x112116(0x2ff)),this['colorMode']=_0x1908a9[_0x112116(0x14e)]??_0x112116(0x385),this[_0x112116(0x37d)]=_0x1908a9[_0x112116(0x1a6)]?.[_0x112116(0x19c)]??_0x112116(0x333),this[_0x112116(0x3cc)]=_0x1908a9[_0x112116(0x1a6)]?.[_0x112116(0x99)],this['onSlicesChange']=_0x1908a9['sliceInteraction']?.[_0x112116(0x340)],this[_0x112116(0x2d7)][_0x112116(0x24a)](()=>this[_0x112116(0x32f)]()),this[_0x112116(0x2d7)]['setTransfer'](_0x22816b[_0x112116(0x2ae)],_0x22816b[_0x112116(0x12a)]);let _0x24d476=_0x1908a9[_0x112116(0x336)]??this[_0x112116(0x26c)]===_0x112116(0x2c2);this[_0x112116(0x2d7)][_0x112116(0xe6)](_0x24d476?[_0x4ad80b(),_0x3494a3()]:[]),this[_0x112116(0x2d7)][_0x112116(0x2d4)]({'renderMode':_0x1908a9['mode']??_0x112116(0x1ce),'colorMode':this[_0x112116(0x14e)],'opacity':_0x1908a9[_0x112116(0x3f5)]??0.3,'densityScale':_0x1908a9[_0x112116(0x3f7)]??0x1,'stepLength':this[_0x112116(0x263)](),'volumeDimFactor':this[_0x112116(0x104)][_0x112116(0x3bb)]}),this[_0x112116(0x207)](),this[_0x112116(0x1f7)](),this[_0x112116(0x290)](),this[_0x112116(0x23e)](_0x1908a9),this['bindControls']();}static async[_0xe1b81f(0x191)](_0x4f9dd2){const _0x326e6f=_0xe1b81f;if(_0x2a33b0(_0x4f9dd2[_0x326e6f(0x111)]),_0x38c33a(_0x4f9dd2['source'][_0x326e6f(0xc3)],_0x4f9dd2[_0x326e6f(0x31c)]??0x0),(_0x4f9dd2[_0x326e6f(0x35b)]?.[_0x326e6f(0x1e7)]??0x1)!==0x1)throw Error(_0x326e6f(0x273));let _0xc25ef6=_0x4f9dd2[_0x326e6f(0x35b)]?.[_0x326e6f(0x168)]??0x20000000,_0x1ca53d=new _0x2942e8({'memoryTargetBytes':_0xc25ef6,'memoryHardLimitBytes':_0x4f9dd2[_0x326e6f(0x35b)]?.[_0x326e6f(0x28c)]??_0xc25ef6});await _0x1ca53d[_0x326e6f(0x11f)](_0x4f9dd2['canvas']);let _0x20a0b8=new _0x250861(_0x4f9dd2,_0x1ca53d);return _0x20a0b8[_0x326e6f(0x1cc)](),_0x20a0b8[_0x326e6f(0x2e4)](),_0x20a0b8['renderMode']===_0x326e6f(0xdb)&&_0x20a0b8['requestRender'](),_0x20a0b8;}get['camera'](){const _0x28aea6=_0xe1b81f;return this[_0x28aea6(0xab)][_0x28aea6(0x23a)];}get[_0xe1b81f(0x105)](){const _0x4dab26=_0xe1b81f;return this[_0x4dab26(0x104)]['lockedSlices'];}get[_0xe1b81f(0x112)](){const _0x426f37=_0xe1b81f;let _0x14010f=this['renderMode']===_0x426f37(0x10a)||this[_0x426f37(0x262)]()||performance[_0x426f37(0x38c)]()-this[_0x426f37(0x33b)]<=0xfa?this[_0x426f37(0x1a0)]:0x0;return{...this[_0x426f37(0x2d7)][_0x426f37(0x112)],'pendingBrickCount':this[_0x426f37(0x2c6)]['size'],'brickScheduleCount':this[_0x426f37(0x27e)],'brickSortCount':this[_0x426f37(0x342)],'actualFrameIntervalMilliseconds':_0x14010f,'estimatedFps':_0x14010f>0x0?0x3e8/_0x14010f:0x0,'effectiveQuality':this['getEffectiveQuality'](),'effectiveRenderScale':this[_0x426f37(0x30d)](),'interactionKind':this['getInteractionKind']()};}['update'](_0x202061){const _0x48107a=_0xe1b81f;_0x202061[_0x48107a(0x2f4)]&&this[_0x48107a(0xf5)](_0x202061[_0x48107a(0x2f4)]),_0x202061['modelMatrix']&&(this[_0x48107a(0x117)]=[..._0x202061[_0x48107a(0x34c)]]),_0x202061[_0x48107a(0x312)]!==void 0x0&&(this[_0x48107a(0x312)]=_0x1294eb(_0x202061[_0x48107a(0x312)],_0x48107a(0x312))),_0x202061['clipBox']!==void 0x0&&(this[_0x48107a(0x1aa)]=_0x202061[_0x48107a(0x1aa)]),_0x202061[_0x48107a(0x2ca)]&&(this[_0x48107a(0x2ca)]=_0x202061['quality']),_0x202061[_0x48107a(0x359)]&&(this[_0x48107a(0x359)]=_0x202061['navigationMode']);let _0x143434=!0x1;if(_0x202061[_0x48107a(0x35e)]!==void 0x0&&(this[_0x48107a(0x35e)]=_0x1294eb(_0x202061[_0x48107a(0x35e)],'pixelRatioCap'),_0x143434=!0x0),_0x202061[_0x48107a(0x1cd)]!==void 0x0&&(this[_0x48107a(0x1cd)]=_0x1294eb(_0x202061[_0x48107a(0x1cd)],_0x48107a(0x1cd)),_0x143434=!0x0),_0x202061['interactionRenderScale']!==void 0x0&&(this[_0x48107a(0x195)]=_0x1294eb(_0x202061[_0x48107a(0x195)],_0x48107a(0x195)),_0x143434=this[_0x48107a(0x262)]()),_0x202061[_0x48107a(0x2ff)]!==void 0x0&&(this[_0x48107a(0x2ff)]=_0x1294eb(_0x202061[_0x48107a(0x2ff)],_0x48107a(0x2ff))),_0x202061[_0x48107a(0x14e)]&&(this[_0x48107a(0x14e)]=_0x202061[_0x48107a(0x14e)]),_0x202061[_0x48107a(0x2ae)]||_0x202061[_0x48107a(0x12a)]){let _0x8c64d5=_0x231d04(_0x202061['colorStops']??this[_0x48107a(0x304)],_0x202061[_0x48107a(0x12a)]??this[_0x48107a(0x12a)]);this[_0x48107a(0x2ae)]=_0x8c64d5[_0x48107a(0x2ae)],this[_0x48107a(0x304)]=_0x202061[_0x48107a(0x2ae)]??this[_0x48107a(0x304)],this[_0x48107a(0x12a)]=_0x202061['opacityStops']??this['opacityStops'],this[_0x48107a(0x2d7)][_0x48107a(0x391)](_0x8c64d5[_0x48107a(0x2ae)],_0x8c64d5[_0x48107a(0x12a)]),this[_0x48107a(0x395)]();}_0x202061[_0x48107a(0x14e)]&&!_0x202061[_0x48107a(0x2ae)]&&!_0x202061['opacityStops']&&this[_0x48107a(0x395)](),this[_0x48107a(0x2d7)][_0x48107a(0x2d4)]({'renderMode':_0x202061[_0x48107a(0x18d)],'colorMode':_0x202061[_0x48107a(0x14e)],'opacity':_0x202061[_0x48107a(0x3f5)],'densityScale':_0x202061[_0x48107a(0x3f7)],'stepLength':this[_0x48107a(0x263)]()}),this['configureModel'](),_0x143434&&this[_0x48107a(0x1cc)](),this[_0x48107a(0x15a)]();}[_0xe1b81f(0xf5)](_0x248318){const _0x4037af=_0xe1b81f;this[_0x4037af(0xab)]['setState'](_0x248318),this[_0x4037af(0x284)](),this[_0x4037af(0x15a)]();}['setTimeIndex'](_0x3c593f){const _0x4ab683=_0xe1b81f;_0x38c33a(this[_0x4ab683(0x111)][_0x4ab683(0xc3)],_0x3c593f),_0x3c593f!==this[_0x4ab683(0x31c)]&&(this[_0x4ab683(0x31c)]=_0x3c593f,this[_0x4ab683(0x392)]());}['setSource'](_0x2bdb3e){const _0x3c39c7=_0xe1b81f;_0x2a33b0(_0x2bdb3e),this[_0x3c39c7(0x111)]=_0x2bdb3e,this[_0x3c39c7(0x31c)]=Math[_0x3c39c7(0x22c)](this[_0x3c39c7(0x31c)],_0x2bdb3e[_0x3c39c7(0xc3)][_0x3c39c7(0x133)]-0x1),this['layout']=_0x5b653f(_0x2bdb3e[_0x3c39c7(0xc3)],this[_0x3c39c7(0x2e8)][_0x3c39c7(0x3a6)]),this[_0x3c39c7(0xad)]=_0x441a97(_0x2bdb3e[_0x3c39c7(0xc3)],this[_0x3c39c7(0x2e8)]),this[_0x3c39c7(0x104)][_0x3c39c7(0xe6)](_0x2bdb3e[_0x3c39c7(0xc3)]),this[_0x3c39c7(0x207)](),this[_0x3c39c7(0x1f7)](),this[_0x3c39c7(0x392)](),this[_0x3c39c7(0x395)](),this[_0x3c39c7(0x15a)]();}['setRouteProfiles'](_0x506ad1){const _0x11b4b3=_0xe1b81f;this['profiles']=_0x506ad1,this[_0x11b4b3(0x395)](),this[_0x11b4b3(0x284)](),this[_0x11b4b3(0x15a)]();}[_0xe1b81f(0x36e)](_0x3fe410){const _0x1abb0a=_0xe1b81f;this[_0x1abb0a(0x104)]['setToolMode'](_0x3fe410);}[_0xe1b81f(0x3a2)](_0x243083){const _0x4ce841=_0xe1b81f;if(this['destroyed']||this[_0x4ce841(0x321)][_0x4ce841(0x1e5)](_0x243083))return;let _0xf89055=!this['isInteracting']();this[_0x4ce841(0x321)][_0x4ce841(0xfd)](_0x243083),_0xf89055&&(this[_0x4ce841(0x184)]=0x0,this[_0x4ce841(0x1cc)]());}[_0xe1b81f(0x20a)](_0x50993d){const _0x415bc7=_0xe1b81f;this[_0x415bc7(0x2a7)]||!this[_0x415bc7(0x321)][_0x415bc7(0xee)](_0x50993d)||this[_0x415bc7(0x262)]()||(this['lastTimingFrameTimestamp']=0x0,this[_0x415bc7(0x1cc)]());}[_0xe1b81f(0x313)](_0x3092fb,_0x23dbd4){const _0x21fd4a=_0xe1b81f;this[_0x21fd4a(0x104)][_0x21fd4a(0x2e9)](_0x3092fb,_0x23dbd4);let _0x3962cb=this[_0x21fd4a(0x104)]['lockPreview']();if(!_0x3962cb)throw Error(_0x21fd4a(0x259));return _0x3962cb;}[_0xe1b81f(0x1cb)](_0x1ebbe6,_0x53ea9f){const _0x557035=_0xe1b81f;this[_0x557035(0x104)][_0x557035(0xfc)](_0x1ebbe6,_0x53ea9f);}[_0xe1b81f(0x18f)](_0x3949f5){const _0x5338e1=_0xe1b81f;this[_0x5338e1(0x104)][_0x5338e1(0x18f)](_0x3949f5);}[_0xe1b81f(0x1db)](){const _0x4b56db=_0xe1b81f;this[_0x4b56db(0x104)][_0x4b56db(0x1db)]();}[_0xe1b81f(0x1cc)](){const _0x149b14=_0xe1b81f;let _0x24c863=Math[_0x149b14(0x22c)](window['devicePixelRatio']||0x1,this['pixelRatioCap'])*this[_0x149b14(0x30d)](),_0xac1514=Math[_0x149b14(0x272)](0x1,Math[_0x149b14(0x1d0)](this[_0x149b14(0xc7)][_0x149b14(0xeb)]*_0x24c863||this[_0x149b14(0xc7)][_0x149b14(0x238)]||0x1)),_0x1d110a=Math[_0x149b14(0x272)](0x1,Math[_0x149b14(0x1d0)](this['canvas'][_0x149b14(0x363)]*_0x24c863||this[_0x149b14(0xc7)][_0x149b14(0x221)]||0x1));this[_0x149b14(0xab)][_0x149b14(0xc4)](_0xac1514/_0x1d110a),(this[_0x149b14(0xc7)][_0x149b14(0x238)]!==_0xac1514||this[_0x149b14(0xc7)][_0x149b14(0x221)]!==_0x1d110a)&&this['renderer'][_0x149b14(0x1cc)](_0xac1514,_0x1d110a),this['requestRender']();}[_0xe1b81f(0x260)](){const _0x1e8d5a=_0xe1b81f;if(this['destroyed'])return;this['flushSliceState'](),this[_0x1e8d5a(0x3ea)]();let _0x2f7131=this['volumeCamera'][_0x1e8d5a(0x186)];if(this[_0x1e8d5a(0x2d7)][_0x1e8d5a(0xf5)]({'viewProjection':Array[_0x1e8d5a(0x1bf)](_0x2f7131[_0x1e8d5a(0x163)]),'inverseViewProjection':Array[_0x1e8d5a(0x1bf)](_0x2f7131['inverseViewProjection']),'cameraPosition':this[_0x1e8d5a(0xab)]['state'][_0x1e8d5a(0x232)]}),this[_0x1e8d5a(0x2d7)][_0x1e8d5a(0x2d4)]({'stepLength':this['getStepLength']()}),!this[_0x1e8d5a(0x2d7)][_0x1e8d5a(0x260)]()){this[_0x1e8d5a(0x1f6)]=!0x0;return;}this[_0x1e8d5a(0x1f6)]=!0x1,this[_0x1e8d5a(0x20b)](performance[_0x1e8d5a(0x38c)]()),this[_0x1e8d5a(0x1d1)]?.[_0x1e8d5a(0x2d4)]();}[_0xe1b81f(0xa6)](){const _0xbb3b62=_0xe1b81f;if(this['destroyed'])return Promise[_0xbb3b62(0xed)](Error('A\x20destroyed\x20volume\x20scene\x20cannot\x20capture\x20a\x20frame.\x20已销毁的体积场景不能读取帧。'));this[_0xbb3b62(0x302)](),this[_0xbb3b62(0x3ea)]();let _0x5be8c9=this['volumeCamera'][_0xbb3b62(0x186)];return this[_0xbb3b62(0x2d7)][_0xbb3b62(0xf5)]({'viewProjection':Array[_0xbb3b62(0x1bf)](_0x5be8c9['viewProjection']),'inverseViewProjection':Array[_0xbb3b62(0x1bf)](_0x5be8c9[_0xbb3b62(0x322)]),'cameraPosition':this[_0xbb3b62(0xab)][_0xbb3b62(0x23a)][_0xbb3b62(0x232)]}),this['renderer'][_0xbb3b62(0xa6)]();}[_0xe1b81f(0x1e8)](){const _0x4084bc=_0xe1b81f;if(!this[_0x4084bc(0x2a7)]){this[_0x4084bc(0x2a7)]=!0x0,this['sourceGeneration']+=0x1;for(let _0x2ebf0e of this[_0x4084bc(0x109)])_0x2ebf0e[_0x4084bc(0x3cb)]();this['requestControllers']['clear'](),cancelAnimationFrame(this[_0x4084bc(0x3d4)]),this[_0x4084bc(0x2d7)]['setFrameAvailableCallback'](null),this['eventDisposers']['splice'](0x0)['forEach'](_0x21115f=>_0x21115f()),this['renderer'][_0x4084bc(0x1e8)](),this[_0x4084bc(0x1a6)]?.[_0x4084bc(0x1e8)](),this[_0x4084bc(0x1d1)]?.['destroy'](),this[_0x4084bc(0x1e2)][_0x4084bc(0x34d)](),this[_0x4084bc(0x2c6)][_0x4084bc(0x34d)](),this['desiredKeys']['clear'](),this[_0x4084bc(0x321)][_0x4084bc(0x34d)](),this[_0x4084bc(0x2da)]=null;}}[_0xe1b81f(0x139)](_0x393f55){const _0x396522=_0xe1b81f;return _0x5b653f(_0x393f55['source']['metadata'],{'width':_0x393f55[_0x396522(0x35b)]?.[_0x396522(0x238)],'height':_0x393f55[_0x396522(0x35b)]?.[_0x396522(0x221)],'depth':_0x393f55[_0x396522(0x35b)]?.['depth'],'halo':_0x393f55[_0x396522(0x35b)]?.[_0x396522(0x1e7)]});}[_0xe1b81f(0x30e)](){const _0x1a2539=_0xe1b81f;return this['quality']===_0x1a2539(0x397)?this[_0x1a2539(0x2ed)]:this['quality'];}[_0xe1b81f(0x263)](){const _0x3b244e=_0xe1b81f;let _0xd95e7c=_0x17c6cc(this[_0x3b244e(0x30e)]());return(this[_0x3b244e(0x26c)]===_0x3b244e(0x147)?_0xd95e7c*0.05:_0xd95e7c)*(this[_0x3b244e(0x262)]()?this[_0x3b244e(0x2ff)]:0x1);}[_0xe1b81f(0x262)](){const _0x4bcdb8=_0xe1b81f;return this[_0x4bcdb8(0x321)][_0x4bcdb8(0xbd)]>0x0;}[_0xe1b81f(0x39f)](){const _0x4a8c44=_0xe1b81f;return this[_0x4a8c44(0x321)][_0x4a8c44(0xbd)]===0x0?_0x4a8c44(0x27a):this[_0x4a8c44(0x321)][_0x4a8c44(0xbd)]>0x1?_0x4a8c44(0x21a):this[_0x4a8c44(0x321)][_0x4a8c44(0xc2)]()[_0x4a8c44(0x255)]()[_0x4a8c44(0x375)]??_0x4a8c44(0x27a);}[_0xe1b81f(0x30d)](){const _0x175af4=_0xe1b81f;return this[_0x175af4(0x1cd)]*(this['isInteracting']()?this[_0x175af4(0x195)]:0x1);}[_0xe1b81f(0x20b)](_0x1af54f){const _0x5cdba9=_0xe1b81f;if(this[_0x5cdba9(0x33b)]=_0x1af54f,!(this[_0x5cdba9(0x1b0)]==='external'||this['isInteracting']())){this[_0x5cdba9(0x184)]=0x0;return;}if(this[_0x5cdba9(0x184)]>0x0){let _0x4f6d1d=_0x1af54f-this[_0x5cdba9(0x184)];_0x4f6d1d>0x0&&_0x4f6d1d<=0xfa&&(this['actualFrameIntervalMilliseconds']=this['actualFrameIntervalMilliseconds']===0x0?_0x4f6d1d:this[_0x5cdba9(0x1a0)]*0.8+_0x4f6d1d*0.2,this[_0x5cdba9(0x250)](_0x4f6d1d));}this[_0x5cdba9(0x184)]=_0x1af54f;}[_0xe1b81f(0x250)](_0x5d25ad){const _0x23ebcb=_0xe1b81f;if(this['quality']!==_0x23ebcb(0x397)||(this[_0x23ebcb(0xd9)]+=0x1,this[_0x23ebcb(0xec)]+=_0x5d25ad,this[_0x23ebcb(0xd9)]<0x1e))return;let _0x413a55=this[_0x23ebcb(0xec)]/this[_0x23ebcb(0xd9)];if(this[_0x23ebcb(0xd9)]=0x0,this['autoFrameIntervalTotal']=0x0,this[_0x23ebcb(0x262)]()&&_0x413a55<0xe)return;let _0x18bf4d=_0x1f3b87(this[_0x23ebcb(0x2ed)],_0x413a55);_0x18bf4d!==this[_0x23ebcb(0x2ed)]&&(this[_0x23ebcb(0x2ed)]=_0x18bf4d,this[_0x23ebcb(0x284)](),this[_0x23ebcb(0x15a)]());}[_0xe1b81f(0x268)](_0x473651){const _0x4dfd70=_0xe1b81f;return new _0x2a83b3(_0x473651[_0x4dfd70(0x111)]['metadata'],{'volumeDimFactor':_0x473651['sliceInteraction']?.[_0x4dfd70(0x3bb)],'depthMode':_0x473651['sliceInteraction']?.[_0x4dfd70(0x19c)],'maxLockedSlices':_0x473651[_0x4dfd70(0x1a6)]?.[_0x4dfd70(0x16c)],'onLimitReached':_0x2b82c5=>_0x473651[_0x4dfd70(0x1a6)]?.[_0x4dfd70(0x193)]?.(Error(_0x4dfd70(0x256)+_0x2b82c5+'.\x20最大锁定切面数量为\x20'+_0x2b82c5+'。'))});}[_0xe1b81f(0x290)](){const _0x5bdac1=_0xe1b81f;let _0x2056a6=this['sliceState'][_0x5bdac1(0x3eb)](_0x2149c2=>{const _0x4fb597=_0x5bdac1;this[_0x4fb597(0x2da)]=_0x2149c2,this[_0x4fb597(0x15a)]();});this[_0x5bdac1(0x3e4)]['push'](_0x2056a6);}[_0xe1b81f(0x302)](){const _0xc81e2a=_0xe1b81f;let _0x11d819=this[_0xc81e2a(0x2da)];if(!_0x11d819)return;this['pendingSliceSnapshot']=null;let _0x3a6651=[];if(_0x11d819['preview']){let _0x2f47c1=_0x11d819[_0xc81e2a(0xdf)]['axis']==='x'?this[_0xc81e2a(0x111)][_0xc81e2a(0xc3)][_0xc81e2a(0x36d)]:_0x11d819[_0xc81e2a(0xdf)][_0xc81e2a(0xd0)]==='y'?this[_0xc81e2a(0x111)][_0xc81e2a(0xc3)][_0xc81e2a(0x1b4)]:this[_0xc81e2a(0x111)][_0xc81e2a(0xc3)][_0xc81e2a(0x2a0)];_0x3a6651['push']({'id':_0xc81e2a(0x1fa),'axis':_0x11d819[_0xc81e2a(0xdf)][_0xc81e2a(0xd0)],'position':_0x4b9b32(_0x2bf3c9(_0x2f47c1,_0x11d819['preview'][_0xc81e2a(0x232)])),'depthMode':this[_0xc81e2a(0x37d)],'visible':!0x0,'opacity':0.72,'plateColor':this[_0xc81e2a(0x3cc)]});}for(let _0x4536d7 of _0x11d819['lockedSlices']){let _0x3a056d=_0x4536d7[_0xc81e2a(0xd0)]==='x'?this[_0xc81e2a(0x111)]['metadata'][_0xc81e2a(0x36d)]:_0x4536d7['axis']==='y'?this['source'][_0xc81e2a(0xc3)][_0xc81e2a(0x1b4)]:this[_0xc81e2a(0x111)][_0xc81e2a(0xc3)][_0xc81e2a(0x2a0)];_0x3a6651[_0xc81e2a(0x1e9)]({..._0x4536d7,'position':_0x4b9b32(_0x2bf3c9(_0x3a056d,_0x4536d7[_0xc81e2a(0x232)])),'opacity':0x1,'plateColor':this['slicePlateColor']});}this[_0xc81e2a(0x2d7)][_0xc81e2a(0x134)](_0x3a6651),this[_0xc81e2a(0x2d7)][_0xc81e2a(0x2d4)]({'volumeDimFactor':_0x11d819[_0xc81e2a(0xdf)]||_0x11d819[_0xc81e2a(0x105)][_0xc81e2a(0x3ce)](_0xfb068d=>_0xfb068d[_0xc81e2a(0x1a2)])?_0x11d819[_0xc81e2a(0x3bb)]:0x1}),this[_0xc81e2a(0x340)]?.(_0x11d819[_0xc81e2a(0x105)]),this[_0xc81e2a(0x197)]=!0x0;}[_0xe1b81f(0x23e)](_0x2a9f9a){const _0x42609b=_0xe1b81f;let _0x2109a1=()=>({'viewProjectionMatrix':this[_0x42609b(0xab)][_0x42609b(0x186)][_0x42609b(0x163)],'modelMatrix':_0x2c52f2(this[_0x42609b(0x117)],this['verticalScale']),'viewportWidth':Math['max'](0x1,this['canvas'][_0x42609b(0xeb)]),'viewportHeight':Math['max'](0x1,this['canvas'][_0x42609b(0x363)])});this[_0x42609b(0x1a6)]=new _0x4fa2e6(this['interactionElement'],this[_0x42609b(0x104)],_0x2109a1,{'hitTolerancePixels':_0x2a9f9a[_0x42609b(0x1a6)]?.[_0x42609b(0x366)],'onInteractionStart':()=>this['beginInteraction'](_0x42609b(0x15c)),'onInteractionEnd':()=>this['endInteraction']('slice')}),this['sliceInteraction'][_0x42609b(0x11f)](),_0x2a9f9a[_0x42609b(0x17a)]&&(this['markerOverlay']=new _0x8a100b(_0x2a9f9a[_0x42609b(0x17a)],this['sliceState'],_0x2109a1,{'interactionController':this[_0x42609b(0x1a6)]}));}['bindControls'](){const _0xaba186=_0xe1b81f;let _0x4bcf49=_0x4f022a=>{const _0x49d2dd=_0x341a;_0x4f022a['button']!==0x0&&_0x4f022a[_0x49d2dd(0x330)]!==0x2||(this[_0x49d2dd(0x25d)]={'id':_0x4f022a['pointerId'],'x':_0x4f022a[_0x49d2dd(0x16b)],'y':_0x4f022a[_0x49d2dd(0x1df)],'pan':_0x4f022a['button']===0x2||_0x4f022a['pointerType']!==_0x49d2dd(0xce)&&this[_0x49d2dd(0x359)]===_0x49d2dd(0x98)},this[_0x49d2dd(0x3a2)](_0x49d2dd(0x2f4)),this[_0x49d2dd(0x2d3)][_0x49d2dd(0x307)]?.(_0x4f022a[_0x49d2dd(0x11d)]),_0x4f022a['preventDefault']());},_0x15875a=_0x281aa4=>{const _0x3dbf0b=_0x341a;if(!this[_0x3dbf0b(0x25d)]||this[_0x3dbf0b(0x25d)]['id']!==_0x281aa4[_0x3dbf0b(0x11d)])return;let _0x2afeea=_0x281aa4[_0x3dbf0b(0x16b)]-this[_0x3dbf0b(0x25d)]['x'],_0x2165c2=_0x281aa4['clientY']-this[_0x3dbf0b(0x25d)]['y'];this['pointer']['x']=_0x281aa4['clientX'],this[_0x3dbf0b(0x25d)]['y']=_0x281aa4[_0x3dbf0b(0x1df)],this[_0x3dbf0b(0x25d)][_0x3dbf0b(0x98)]?this['volumeCamera']['pan'](_0x2afeea,_0x2165c2,this[_0x3dbf0b(0xc7)]['clientHeight']):this[_0x3dbf0b(0xab)][_0x3dbf0b(0x22d)](_0x2afeea,_0x2165c2),this[_0x3dbf0b(0x284)](),this[_0x3dbf0b(0x15a)]();},_0x22b328=_0x30eb8a=>{const _0x555743=_0x341a;this[_0x555743(0x25d)]?.['id']===_0x30eb8a[_0x555743(0x11d)]&&(this['pointer']=null,this[_0x555743(0x20a)](_0x555743(0x2f4)));},_0x10183f=_0x12b371=>{const _0x41681a=_0x341a;_0x12b371[_0x41681a(0x286)](),this['volumeCamera'][_0x41681a(0x362)](_0x12b371['deltaY']),this['requestBrickSchedule'](),this['requestRender']();},_0x2f5fa0=_0x4046e6=>_0x4046e6['preventDefault']();this['interactionElement'][_0xaba186(0x32d)]('pointerdown',_0x4bcf49),this[_0xaba186(0x2d3)][_0xaba186(0x32d)](_0xaba186(0x3d6),_0x15875a),this[_0xaba186(0x2d3)][_0xaba186(0x32d)](_0xaba186(0x370),_0x22b328),this['interactionElement'][_0xaba186(0x32d)](_0xaba186(0x347),_0x22b328),this[_0xaba186(0x2d3)][_0xaba186(0x32d)]('wheel',_0x10183f,{'passive':!0x1}),this[_0xaba186(0x2d3)][_0xaba186(0x32d)](_0xaba186(0xa3),_0x2f5fa0),this[_0xaba186(0x3e4)]['push'](()=>this['interactionElement'][_0xaba186(0x3b3)](_0xaba186(0x240),_0x4bcf49),()=>this[_0xaba186(0x2d3)][_0xaba186(0x3b3)](_0xaba186(0x3d6),_0x15875a),()=>this[_0xaba186(0x2d3)][_0xaba186(0x3b3)](_0xaba186(0x370),_0x22b328),()=>this[_0xaba186(0x2d3)][_0xaba186(0x3b3)](_0xaba186(0x347),_0x22b328),()=>this[_0xaba186(0x2d3)]['removeEventListener']('wheel',_0x10183f),()=>this['interactionElement'][_0xaba186(0x3b3)](_0xaba186(0xa3),_0x2f5fa0));}['configureSource'](){const _0x37e47b=_0xe1b81f;this[_0x37e47b(0x2d7)][_0x37e47b(0x24b)]({'xAxis':this[_0x37e47b(0x111)][_0x37e47b(0xc3)][_0x37e47b(0x36d)],'yAxis':this[_0x37e47b(0x111)][_0x37e47b(0xc3)][_0x37e47b(0x1b4)],'zAxis':this[_0x37e47b(0x111)]['metadata']['zAxis'],'brickWidth':this[_0x37e47b(0x2e8)][_0x37e47b(0x3a6)][_0x37e47b(0x238)],'brickHeight':this[_0x37e47b(0x2e8)][_0x37e47b(0x3a6)][_0x37e47b(0x221)],'brickDepth':this[_0x37e47b(0x2e8)][_0x37e47b(0x3a6)]['depth'],'halo':0x1,'noData':this['source'][_0x37e47b(0xc3)][_0x37e47b(0x399)]});}[_0xe1b81f(0x1f7)](){const _0xff25b7=_0xe1b81f;if(this['coordinateSystem']===_0xff25b7(0x147)){let _0x3fe630=_0x12cfab(this[_0xff25b7(0x111)][_0xff25b7(0xc3)],this[_0xff25b7(0x312)]);this['renderer'][_0xff25b7(0x2d4)]({'modelMatrix':_0x3fe630[_0xff25b7(0x181)],'inverseModelMatrix':Array[_0xff25b7(0x1bf)](_0x20ecf6(_0x3fe630[_0xff25b7(0x181)])),'geographicTransform':_0x3fe630[_0xff25b7(0x106)],'clipMinimum':[0x0,0x0,0x0],'clipMaximum':[0x1,0x1,0x1]}),this[_0xff25b7(0x15a)]();return;}let _0x384cd0=_0x2c52f2(this[_0xff25b7(0x117)],this[_0xff25b7(0x312)]),_0x1aef40=_0x45740f(this['source'],this[_0xff25b7(0x1aa)]);this[_0xff25b7(0x2d7)][_0xff25b7(0x2d4)]({'modelMatrix':Array[_0xff25b7(0x1bf)](_0x384cd0),'inverseModelMatrix':Array[_0xff25b7(0x1bf)](_0x20ecf6(_0x384cd0)),'geographicTransform':null,'clipMinimum':_0x1aef40[_0xff25b7(0x22a)],'clipMaximum':_0x1aef40[_0xff25b7(0x1a8)]}),this['requestRender']();}[_0xe1b81f(0x395)](){const _0xae4405=_0xe1b81f;let _0x4ef0b5=this[_0xae4405(0x12e)]['map'](_0x5d09dd=>_0x5a5b05(_0x4a723e(_0x5d09dd,this[_0xae4405(0x111)][_0xae4405(0xc3)]),this[_0xae4405(0x2ae)],this[_0xae4405(0x12a)],this['colorMode']));this[_0xae4405(0x2d7)][_0xae4405(0x13e)](_0x4ef0b5),this['requestRender']();}[_0xe1b81f(0x392)](){const _0x86bc60=_0xe1b81f;this[_0x86bc60(0x20e)]+=0x1;for(let _0x291f5d of this[_0x86bc60(0x109)])_0x291f5d[_0x86bc60(0x3cb)]();this[_0x86bc60(0x109)][_0x86bc60(0x34d)](),this[_0x86bc60(0x1e2)]['clear'](),this['pendingKeys'][_0x86bc60(0x34d)](),this[_0x86bc60(0x37e)][_0x86bc60(0x34d)](),this[_0x86bc60(0x207)](),this['scheduleBricks']();}[_0xe1b81f(0x284)](){const _0x40defc=_0xe1b81f;this[_0x40defc(0x197)]=!0x0,this[_0x40defc(0x15a)]();}[_0xe1b81f(0x3ea)](){const _0x473bf5=_0xe1b81f;this[_0x473bf5(0x197)]&&(this[_0x473bf5(0x197)]=!0x1,this[_0x473bf5(0x2e4)]());}['scheduleBricks'](){const _0x531be9=_0xe1b81f;if(this[_0x531be9(0x2a7)])return;this[_0x531be9(0x197)]=!0x1,this['brickScheduleCount']+=0x1;let _0xf187fc=this[_0x531be9(0x2d7)][_0x531be9(0x112)][_0x531be9(0x26e)];if(_0xf187fc<=0x0)return;let _0xa34d8b=_0xf187fc>=this[_0x531be9(0xad)][_0x531be9(0x3bd)];if(_0xa34d8b&&this[_0x531be9(0x37e)][_0x531be9(0xbd)]===this[_0x531be9(0xad)][_0x531be9(0x3bd)]&&this[_0x531be9(0x1e2)][_0x531be9(0xbd)]===this[_0x531be9(0xad)][_0x531be9(0x3bd)]&&this['pendingKeys'][_0x531be9(0xbd)]===0x0)return;let _0xd027e1;_0xa34d8b?_0xd027e1=this['descriptors']:(this['brickSortCount']+=0x1,_0xd027e1=[...this[_0x531be9(0xad)]]['sort']((_0x4b8b04,_0x18be8f)=>_0x26c70b(_0x4b8b04,this['source'],this[_0x531be9(0x104)],this['profiles'])-_0x26c70b(_0x18be8f,this['source'],this[_0x531be9(0x104)],this[_0x531be9(0x12e)])||_0xcc2420(_0x4b8b04,this['layout'],this[_0x531be9(0xab)]['state'])-_0xcc2420(_0x18be8f,this[_0x531be9(0x2e8)],this[_0x531be9(0xab)][_0x531be9(0x23a)]))[_0x531be9(0x15c)](0x0,_0xf187fc));let _0x45aed5=new Set(_0xd027e1[_0x531be9(0x2bb)](_0x334f8d=>_0x334f8d[_0x531be9(0x276)]));this[_0x531be9(0x37e)]=_0x45aed5,_0xa34d8b||this[_0x531be9(0x2d7)][_0x531be9(0x11e)](_0xd027e1[_0x531be9(0x309)](_0xba81b7=>this[_0x531be9(0x1e2)][_0x531be9(0x1e5)](_0xba81b7[_0x531be9(0x276)]))['map'](_0x228370=>_0x137339(_0x228370,this['layout'])));for(let _0x802de5 of this[_0x531be9(0x1e2)])_0x45aed5[_0x531be9(0x1e5)](_0x802de5)||this[_0x531be9(0x1e2)][_0x531be9(0xee)](_0x802de5);let _0x456c46=Math[_0x531be9(0x272)](0x0,_0x21c913(this[_0x531be9(0x30e)]())-this[_0x531be9(0x2c6)]['size']),_0x2c0e1b=_0xd027e1[_0x531be9(0x309)](_0x228bbb=>!this['loadedKeys']['has'](_0x228bbb[_0x531be9(0x276)])&&!this[_0x531be9(0x2c6)][_0x531be9(0x1e5)](_0x228bbb[_0x531be9(0x276)]))[_0x531be9(0x15c)](0x0,_0x456c46);for(let _0x4be7e4 of _0x2c0e1b)this[_0x531be9(0x1d2)](_0x4be7e4);}[_0xe1b81f(0x1d2)](_0x2a5ce2){const _0x4a9faf=_0xe1b81f;let _0x283c0f=this['sourceGeneration'],_0x391633=this['source'],_0xe0f51f=this[_0x4a9faf(0x31c)],_0x17fac7=new AbortController();this[_0x4a9faf(0x109)][_0x4a9faf(0xfd)](_0x17fac7),this['pendingKeys'][_0x4a9faf(0x326)](_0x2a5ce2[_0x4a9faf(0x276)],_0x283c0f),Promise[_0x4a9faf(0x176)](_0x391633[_0x4a9faf(0x19d)](_0xe0f51f,_0x2a5ce2[_0x4a9faf(0xd7)],_0x17fac7[_0x4a9faf(0x11a)]))[_0x4a9faf(0xb6)](async _0x3d7423=>{const _0x33cacc=_0x4a9faf;if(this['destroyed']||_0x283c0f!==this[_0x33cacc(0x20e)]||_0x391633!==this[_0x33cacc(0x111)]||_0xe0f51f!==this[_0x33cacc(0x31c)]||!this[_0x33cacc(0x37e)][_0x33cacc(0x1e5)](_0x2a5ce2['key']))return;let _0x1b2f71=_0x2fb2c7(_0x391633[_0x33cacc(0xc3)],this[_0x33cacc(0x2e8)][_0x33cacc(0x3a6)],_0x2a5ce2,_0x3d7423),_0x2ff4f4=_0x137339(_0x2a5ce2,this[_0x33cacc(0x2e8)]);await this[_0x33cacc(0x2d7)][_0x33cacc(0x199)]({'logicalIndex':_0x2ff4f4,'values':_0x1b2f71}),!(this[_0x33cacc(0x2a7)]||_0x283c0f!==this['sourceGeneration']||_0x391633!==this[_0x33cacc(0x111)]||_0xe0f51f!==this['timeIndex']||!this[_0x33cacc(0x37e)][_0x33cacc(0x1e5)](_0x2a5ce2[_0x33cacc(0x276)]))&&(this[_0x33cacc(0x1e2)]['add'](_0x2a5ce2[_0x33cacc(0x276)]),this[_0x33cacc(0x15a)]());})[_0x4a9faf(0xf7)](_0x1cb51c=>{const _0x4d4333=_0x4a9faf;_0x1cb51c instanceof DOMException&&_0x1cb51c[_0x4d4333(0x21f)]==='AbortError'||console['error'](_0x1cb51c);})[_0x4a9faf(0x1bd)](()=>{const _0x5e6277=_0x4a9faf;this[_0x5e6277(0x109)]['delete'](_0x17fac7),this[_0x5e6277(0x2c6)][_0x5e6277(0xd8)](_0x2a5ce2[_0x5e6277(0x276)])===_0x283c0f&&this[_0x5e6277(0x2c6)][_0x5e6277(0xee)](_0x2a5ce2['key']),_0x283c0f===this[_0x5e6277(0x20e)]&&this['scheduleBricks']();});}['handleFrameAvailable'](){const _0x4a81a0=_0xe1b81f;this['renderDirty']&&this[_0x4a81a0(0x15a)]();}[_0xe1b81f(0x15a)](){const _0x2a897b=_0xe1b81f;this[_0x2a897b(0x2a7)]||(this['renderDirty']=!0x0,!(this['renderMode']!==_0x2a897b(0xdb)||this['frameRequest']!==0x0)&&(this[_0x2a897b(0x3d4)]=requestAnimationFrame(()=>{const _0x5400de=_0x2a897b;this[_0x5400de(0x3d4)]=0x0,!(this[_0x5400de(0x2a7)]||!this[_0x5400de(0x1f6)])&&this[_0x5400de(0x260)]();})));}};let _0xfdde07=_0x76a187=>_0x1f9590[_0xe1b81f(0x191)](_0x76a187),_0x1929e5=(_0x5cdb44,_0x57886f,_0x96c3c4)=>{const _0x4037cf=_0xe1b81f;let _0x4ebfb6=_0x5cdb44[_0x4037cf(0x1f2)](_0x57886f);if(_0x4ebfb6<0x0||_0x5cdb44[_0x4037cf(0x1f2)](_0x57886f,_0x4ebfb6+_0x57886f[_0x4037cf(0x3bd)])>=0x0)throw Error(_0x4037cf(0x1bc)+_0x57886f);return''+_0x5cdb44[_0x4037cf(0x15c)](0x0,_0x4ebfb6)+_0x96c3c4+_0x5cdb44[_0x4037cf(0x15c)](_0x4ebfb6+_0x57886f[_0x4037cf(0x3bd)]);},_0x3c82c4=_0x1929e5(_0x1929e5(_0x2e4185,_0xe1b81f(0x32a),'\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'),_0xe1b81f(0x299),_0xe1b81f(0x39e)),_0x336a99=()=>({'color':{'srcFactor':_0xe1b81f(0x1c0),'dstFactor':_0xe1b81f(0x1e0),'operation':_0xe1b81f(0xfd)},'alpha':{'srcFactor':_0xe1b81f(0x1c0),'dstFactor':_0xe1b81f(0x1e0),'operation':_0xe1b81f(0xfd)}}),_0x476829=_0x2942e8[_0xe1b81f(0x2a1)],_0x19c4d6=new WeakSet(),_0xb867c7=!0x1,_0xea3bbc=()=>{const _0x21a564=_0xe1b81f;if(_0xb867c7)return;let _0x2473b3=_0x476829[_0x21a564(0x1fc)];_0x476829['createPipelines']=function(){const _0x2cfb00=_0x21a564;if(_0x2473b3['call'](this),!this['canvas']||!_0x19c4d6[_0x2cfb00(0x1e5)](this[_0x2cfb00(0xc7)]))return;let _0x4d92ee=this[_0x2cfb00(0x227)](),_0x12a13c=_0x4d92ee[_0x2cfb00(0xe9)]({'label':_0x2cfb00(0x297),'code':_0x3c82c4});this[_0x2cfb00(0x3f3)]=_0x4d92ee[_0x2cfb00(0x2c9)]({'label':_0x2cfb00(0x96),'layout':_0x4d92ee['createPipelineLayout']({'bindGroupLayouts':[this[_0x2cfb00(0x237)](),this[_0x2cfb00(0x281)](),this[_0x2cfb00(0x33c)]()]}),'vertex':{'module':_0x12a13c,'entryPoint':_0x2cfb00(0xbb)},'fragment':{'module':_0x12a13c,'entryPoint':'fragmentMain','targets':[{'format':this['getFormat'](),'blend':_0x336a99()}]},'primitive':{'topology':_0x2cfb00(0xd4)}});},_0xb867c7=!0x0;},_0x8b2f87=async _0x3158a7=>{const _0xbcc69a=_0xe1b81f;_0xea3bbc(),_0x19c4d6['add'](_0x3158a7[_0xbcc69a(0xc7)]);try{let _0x58a73d=await _0xfdde07(_0x3158a7),_0x3ad396=_0x58a73d[_0xbcc69a(0x1e8)][_0xbcc69a(0x2c4)](_0x58a73d);return _0x58a73d[_0xbcc69a(0x1e8)]=()=>{const _0x153de3=_0xbcc69a;_0x19c4d6[_0x153de3(0xee)](_0x3158a7['canvas']),_0x3ad396();},_0x58a73d;}catch(_0x4518e1){throw _0x19c4d6['delete'](_0x3158a7[_0xbcc69a(0xc7)]),_0x4518e1;}},_0x1d3bff=(_0x471e30,_0x5ed672)=>[_0x471e30[0x1]*_0x5ed672[0x2]-_0x471e30[0x2]*_0x5ed672[0x1],_0x471e30[0x2]*_0x5ed672[0x0]-_0x471e30[0x0]*_0x5ed672[0x2],_0x471e30[0x0]*_0x5ed672[0x1]-_0x471e30[0x1]*_0x5ed672[0x0]],_0x3d9dd4=_0x16ebed=>{const _0x17d282=_0xe1b81f;let _0xc15bca=Math[_0x17d282(0x3df)](_0x16ebed[0x0],_0x16ebed[0x1],_0x16ebed[0x2]);return _0xc15bca>1e-10?[_0x16ebed[0x0]/_0xc15bca,_0x16ebed[0x1]/_0xc15bca,_0x16ebed[0x2]/_0xc15bca]:null;},_0x37b6bf=(_0x1c5718,_0x4ae589)=>_0x1c5718[0x0]*_0x4ae589[0x0]+_0x1c5718[0x1]*_0x4ae589[0x1]+_0x1c5718[0x2]*_0x4ae589[0x2],_0x16b2de=(_0x406526,_0x1c119f,_0x666c80)=>[_0x406526[0x0]+_0x1c119f[0x0]*_0x666c80,_0x406526[0x1]+_0x1c119f[0x1]*_0x666c80,_0x406526[0x2]+_0x1c119f[0x2]*_0x666c80],_0x41417c=(_0x430269,_0x13aa16,_0x27cfc9)=>{const _0xb91eca=_0xe1b81f;let _0x2a6f63=_0x3d9dd4(_0x430269[_0xb91eca(0x26a)]),_0x3b6e53=_0x2a6f63?_0x3d9dd4(_0x1d3bff(_0x2a6f63,_0x430269['up'])):null,_0x141a23=_0x2a6f63&&_0x3b6e53?_0x3d9dd4(_0x1d3bff(_0x3b6e53,_0x2a6f63)):null,_0x262072=Math[_0xb91eca(0x294)](_0x430269['fovYRadians']/0x2),_0x3104f8=_0x13aa16/_0x27cfc9;if(!_0x2a6f63||!_0x3b6e53||!_0x141a23||!(_0x262072>0x0)||!(_0x3104f8>0x0)||!(_0x430269[_0xb91eca(0x389)]>0x0))return null;let _0x407091=_0x16b2de(_0x430269[_0xb91eca(0x232)],_0x2a6f63,_0x430269[_0xb91eca(0x389)]),_0x1173a0=[_0x407091,_0x16b2de(_0x407091,_0x3b6e53,_0x430269['anchorDistance']*_0x262072*_0x3104f8*0.5),_0x16b2de(_0x407091,_0x141a23,_0x430269[_0xb91eca(0x389)]*_0x262072*0.5)],_0x4d9127=_0x5e5fbd(_0x430269,_0x1173a0,_0x13aa16,_0x27cfc9);return _0x4d9127?{'worldAnchors':_0x1173a0,'screenAnchors':_0x4d9127}:null;},_0x5e5fbd=(_0x480212,_0x43daaa,_0x28e158,_0x46ad2a)=>{const _0x5e4cac=_0xe1b81f;let _0xe8122e=_0x3d9dd4(_0x480212['direction']),_0x43ca8b=_0xe8122e?_0x3d9dd4(_0x1d3bff(_0xe8122e,_0x480212['up'])):null,_0x308416=_0xe8122e&&_0x43ca8b?_0x3d9dd4(_0x1d3bff(_0x43ca8b,_0xe8122e)):null,_0x3e335a=Math['tan'](_0x480212['fovYRadians']/0x2),_0x2753a2=_0x28e158/_0x46ad2a;if(!_0xe8122e||!_0x43ca8b||!_0x308416||!(_0x3e335a>0x0)||!(_0x2753a2>0x0))return null;let _0x1a7335=[];for(let _0x58400e of _0x43daaa){let _0x5a7d18=[_0x58400e[0x0]-_0x480212[_0x5e4cac(0x232)][0x0],_0x58400e[0x1]-_0x480212['position'][0x1],_0x58400e[0x2]-_0x480212[_0x5e4cac(0x232)][0x2]],_0x2cc28f=_0x37b6bf(_0x5a7d18,_0xe8122e);if(!(_0x2cc28f>0.000001))return null;let _0x218b42=_0x37b6bf(_0x5a7d18,_0x43ca8b)/(_0x2cc28f*_0x3e335a*_0x2753a2),_0x5caf16=_0x37b6bf(_0x5a7d18,_0x308416)/(_0x2cc28f*_0x3e335a);_0x1a7335[_0x5e4cac(0x1e9)]({'x':(_0x218b42*0.5+0.5)*_0x28e158,'y':(0.5-_0x5caf16*0.5)*_0x46ad2a});}return _0x1a7335;},_0x316e89=(_0x1f5309,_0x40b418)=>{const _0x249d17=_0xe1b81f;if(_0x1f5309[_0x249d17(0x3bd)]!==0x3||_0x40b418[_0x249d17(0x3bd)]!==0x3)return null;let _0x55013b={'x':_0x1f5309[0x1]['x']-_0x1f5309[0x0]['x'],'y':_0x1f5309[0x1]['y']-_0x1f5309[0x0]['y']},_0xf02508={'x':_0x1f5309[0x2]['x']-_0x1f5309[0x0]['x'],'y':_0x1f5309[0x2]['y']-_0x1f5309[0x0]['y']},_0x41431a={'x':_0x40b418[0x1]['x']-_0x40b418[0x0]['x'],'y':_0x40b418[0x1]['y']-_0x40b418[0x0]['y']},_0x563867={'x':_0x40b418[0x2]['x']-_0x40b418[0x0]['x'],'y':_0x40b418[0x2]['y']-_0x40b418[0x0]['y']},_0x5fdc8a=_0x55013b['x']*_0xf02508['y']-_0xf02508['x']*_0x55013b['y'];if(Math[_0x249d17(0x387)](_0x5fdc8a)<0.000001)return null;let _0x1061d9=(_0x41431a['x']*_0xf02508['y']-_0x563867['x']*_0x55013b['y'])/_0x5fdc8a,_0x4d9f3b=(-_0x41431a['x']*_0xf02508['x']+_0x563867['x']*_0x55013b['x'])/_0x5fdc8a,_0x300fc1=(_0x41431a['y']*_0xf02508['y']-_0x563867['y']*_0x55013b['y'])/_0x5fdc8a,_0x20e349=(-_0x41431a['y']*_0xf02508['x']+_0x563867['y']*_0x55013b['x'])/_0x5fdc8a,_0xd16ba=[_0x1061d9,_0x300fc1,_0x4d9f3b,_0x20e349,_0x40b418[0x0]['x']-_0x1061d9*_0x1f5309[0x0]['x']-_0x4d9f3b*_0x1f5309[0x0]['y'],_0x40b418[0x0]['y']-_0x300fc1*_0x1f5309[0x0]['x']-_0x20e349*_0x1f5309[0x0]['y']];return _0xd16ba[_0x249d17(0x1b1)](Number[_0x249d17(0x1a4)])?'matrix('+_0xd16ba[_0x249d17(0x1f3)](',')+')':null;},_0x178f9d=_0x117929=>_0x117929 instanceof Error?_0x117929:Error(String(_0x117929));var _0xbc8910=class{['readyPromise'];[_0xe1b81f(0x2bb)];[_0xe1b81f(0xc7)];[_0xe1b81f(0xae)];[_0xe1b81f(0x364)];['scene']=null;['source'];[_0xe1b81f(0x2e8)];['frameRequest']=0x0;[_0xe1b81f(0x350)]=0x0;[_0xe1b81f(0x2ad)]=0x0;[_0xe1b81f(0x2d0)];[_0xe1b81f(0x2a7)]=!0x1;['cameraMoving']=!0x1;[_0xe1b81f(0x386)]='';[_0xe1b81f(0x1fb)]=null;[_0xe1b81f(0xc0)]=null;constructor(_0x2133c1,_0x23d624){const _0x3b9a6b=_0xe1b81f;this[_0x3b9a6b(0x2bb)]=_0x2133c1,this[_0x3b9a6b(0x111)]=_0x23d624[_0x3b9a6b(0x111)],this[_0x3b9a6b(0x2e8)]=_0x12cfab(_0x23d624[_0x3b9a6b(0x111)][_0x3b9a6b(0xc3)]),this[_0x3b9a6b(0xae)]=_0x23d624['onError'],this['cameraFrameCompensation']=_0x23d624['cameraFrameCompensation']??!0x0,this[_0x3b9a6b(0x2d0)]=_0x23d624[_0x3b9a6b(0x2eb)]??!0x0,this[_0x3b9a6b(0xc7)]=this[_0x3b9a6b(0x398)](_0x2133c1['scene']['canvas']),this[_0x3b9a6b(0x177)]=this[_0x3b9a6b(0x11f)](_0x23d624);}get[_0xe1b81f(0x112)](){const _0x537150=_0xe1b81f;return this['scene']?.[_0x537150(0x112)]??null;}get['lockedSlices'](){const _0xf59492=_0xe1b81f;return this['scene']?.[_0xf59492(0x105)]??[];}[_0xe1b81f(0x11b)](_0x203471){const _0x13b026=_0xe1b81f;this[_0x13b026(0x3c8)](),this[_0x13b026(0x2d0)]=_0x203471,this[_0x13b026(0xc7)][_0x13b026(0x14d)][_0x13b026(0x3c3)]=_0x203471?_0x13b026(0x38a):_0x13b026(0x1a5),_0x203471&&this[_0x13b026(0xfa)](0x3);}['update'](_0x1dd3f2){const _0x33f33e=_0xe1b81f;this[_0x33f33e(0x120)]()[_0x33f33e(0x2d4)](_0x1dd3f2),this[_0x33f33e(0xfa)](0x3);}[_0xe1b81f(0x2e7)](_0x410dec){const _0x5d649=_0xe1b81f;this[_0x5d649(0x120)]()[_0x5d649(0x2e7)](_0x410dec),this['requestFrames'](0x3);}[_0xe1b81f(0x337)](_0x5add35){const _0x57597c=_0xe1b81f;this[_0x57597c(0x120)]()[_0x57597c(0x337)](_0x5add35),this['requestFrames'](0x3);}[_0xe1b81f(0x1cb)](_0x4d45fb,_0x2c3496){const _0x459ea2=_0xe1b81f;this[_0x459ea2(0x120)]()[_0x459ea2(0x1cb)](_0x4d45fb,_0x2c3496),this[_0x459ea2(0xfa)](0x3);}['removeSlice'](_0x1aa928){const _0x109291=_0xe1b81f;this[_0x109291(0x120)]()[_0x109291(0x18f)](_0x1aa928),this[_0x109291(0xfa)](0x3);}[_0xe1b81f(0x1db)](){const _0xe75d16=_0xe1b81f;this[_0xe75d16(0x120)]()['clearLockedSlices'](),this[_0xe75d16(0xfa)](0x3);}[_0xe1b81f(0x313)](_0x262ba1,_0x598fea){const _0x37d7ca=_0xe1b81f;let _0x4ed6ae=this[_0x37d7ca(0x120)]()[_0x37d7ca(0x313)](_0x262ba1,_0x598fea);return this[_0x37d7ca(0xfa)](0x3),_0x4ed6ae;}[_0xe1b81f(0x24b)](_0x191bed){const _0x102630=_0xe1b81f;this['assertAlive'](),this[_0x102630(0x111)]=_0x191bed,this[_0x102630(0x2e8)]=_0x12cfab(_0x191bed[_0x102630(0xc3)]),this['clearCameraFrameCompensation'](),this[_0x102630(0x120)]()[_0x102630(0x24b)](_0x191bed),this['syncCamera'](),this['requestFrames'](0x3);}['destroy'](){const _0x33ea8c=_0xe1b81f;this['destroyed']||(this['destroyed']=!0x0,cancelAnimationFrame(this[_0x33ea8c(0x3d4)]),window[_0x33ea8c(0x140)](this[_0x33ea8c(0x350)]),this[_0x33ea8c(0x3d4)]=0x0,this[_0x33ea8c(0x350)]=0x0,this[_0x33ea8c(0x2bb)][_0x33ea8c(0x333)]['preRender'][_0x33ea8c(0x3b3)](this[_0x33ea8c(0x2b5)]),window[_0x33ea8c(0x3b3)](_0x33ea8c(0x1cc),this['handleResize']),this[_0x33ea8c(0x333)]?.['destroy'](),this[_0x33ea8c(0x333)]=null,this[_0x33ea8c(0xc7)][_0x33ea8c(0x183)]());}[_0xe1b81f(0x165)](){const _0x2c92c2=_0xe1b81f;this[_0x2c92c2(0x372)]&&(window[_0x2c92c2(0x140)](this[_0x2c92c2(0x350)]),this[_0x2c92c2(0x350)]=0x0,this['cameraMoving']=!0x1,this[_0x2c92c2(0x333)]?.['endInteraction'](_0x2c92c2(0x2f4)),this[_0x2c92c2(0x1bb)](),this['requestFrames'](0x3));}[_0xe1b81f(0x2b5)]=()=>{const _0x39f6c2=_0xe1b81f;let _0x3ce8a5=this[_0x39f6c2(0xba)](this[_0x39f6c2(0x2bb)]['scene'][_0x39f6c2(0x2f4)]);_0x3ce8a5!==this[_0x39f6c2(0x386)]&&(this[_0x39f6c2(0x386)]=_0x3ce8a5,this[_0x39f6c2(0x291)](),this[_0x39f6c2(0x1bb)](),this[_0x39f6c2(0x170)](),this[_0x39f6c2(0x1a3)](0x1));};['handleResize']=()=>{const _0x45f590=_0xe1b81f;this[_0x45f590(0x2b6)](),this['scene']?.[_0x45f590(0x1cc)](),this[_0x45f590(0x1bb)](),this[_0x45f590(0xfa)](0x3);};async['initialize'](_0x51d3eb){const _0x12c0f1=_0xe1b81f;try{let _0x4d1e66=await _0x8b2f87({..._0x51d3eb,'interactionStepScale':_0x51d3eb[_0x12c0f1(0x2ff)]??1.35,'canvas':this[_0x12c0f1(0xc7)],'coordinateSystem':_0x12c0f1(0x147),'showDebugGeometry':!0x1,'renderMode':_0x12c0f1(0x10a)});if(this[_0x12c0f1(0x2a7)]){_0x4d1e66[_0x12c0f1(0x1e8)]();return;}this[_0x12c0f1(0x333)]=_0x4d1e66,this['bindFrameAvailableCallback'](_0x4d1e66),this[_0x12c0f1(0x2bb)][_0x12c0f1(0x333)][_0x12c0f1(0x3b4)][_0x12c0f1(0x32d)](this[_0x12c0f1(0x2b5)]),window[_0x12c0f1(0x32d)](_0x12c0f1(0x1cc),this[_0x12c0f1(0x198)]),this['syncCamera'](),this[_0x12c0f1(0xfa)](0x3);}catch(_0x217ab4){let _0x3eab9c=_0x178f9d(_0x217ab4);throw this[_0x12c0f1(0xc7)][_0x12c0f1(0x183)](),this['onError']?.(_0x3eab9c),_0x3eab9c;}}[_0xe1b81f(0x1bb)](){const _0x54f559=_0xe1b81f;let _0x107613=this[_0x54f559(0x333)];if(!_0x107613)return;let _0x37baed=this['map']['scene'][_0x54f559(0x2f4)],_0x2efc21=_0x267637([_0x37baed[_0x54f559(0x39b)]['x'],_0x37baed['positionWC']['y'],_0x37baed['positionWC']['z']],this[_0x54f559(0x2e8)]),_0x4220ad=[_0x37baed['directionWC']['x'],_0x37baed[_0x54f559(0x38f)]['y'],_0x37baed[_0x54f559(0x38f)]['z']],_0xd47b42=[_0x37baed['upWC']['x'],_0x37baed[_0x54f559(0x2bd)]['y'],_0x37baed[_0x54f559(0x2bd)]['z']],_0x504d42=Math[_0x54f559(0x272)](0.001,Math[_0x54f559(0x387)](_0x37baed[_0x54f559(0x274)][_0x54f559(0x221)])/this[_0x54f559(0x2e8)][_0x54f559(0x2d5)]),_0x4f37cc=[_0x2efc21[0x0]+_0x4220ad[0x0]*_0x504d42,_0x2efc21[0x1]+_0x4220ad[0x1]*_0x504d42,_0x2efc21[0x2]+_0x4220ad[0x2]*_0x504d42],_0x3bfdd3=_0x37baed[_0x54f559(0x9e)][_0x54f559(0x301)]??_0x37baed[_0x54f559(0x9e)]['fov']??Math['PI']/0x3,_0x2fe084=Math['max'](0.0001,_0x504d42/0x2710),_0x14e162=Math[_0x54f559(0x272)](0x64,_0x504d42*0x4);_0x107613[_0x54f559(0xf5)]({'position':_0x2efc21,'target':_0x4f37cc,'up':_0xd47b42,'projection':{'type':_0x54f559(0xd5),'fovYDegrees':_0x3bfdd3*0xb4/Math['PI'],'near':_0x2fe084,'far':_0x14e162}});}[_0xe1b81f(0x3f8)](_0x8509e9){const _0xcbf76f=_0xe1b81f;let _0x1be184=_0x8509e9[_0xcbf76f(0x2d7)],_0x22f565=_0x1be184['frameAvailableCallback'];_0x1be184[_0xcbf76f(0x371)]=()=>{const _0xa291de=_0xcbf76f;this['pendingCompensationFrame']&&(this[_0xa291de(0xc0)]=this[_0xa291de(0x1fb)],this['pendingCompensationFrame']=null,this[_0xa291de(0x170)]()),_0x22f565?.();};}[_0xe1b81f(0xd3)](){const _0xd77264=_0xe1b81f;let _0x2dd35e=this[_0xd77264(0x2bb)]['scene']['camera'];return{'position':[_0x2dd35e[_0xd77264(0x39b)]['x'],_0x2dd35e[_0xd77264(0x39b)]['y'],_0x2dd35e[_0xd77264(0x39b)]['z']],'direction':[_0x2dd35e['directionWC']['x'],_0x2dd35e['directionWC']['y'],_0x2dd35e[_0xd77264(0x38f)]['z']],'up':[_0x2dd35e['upWC']['x'],_0x2dd35e[_0xd77264(0x2bd)]['y'],_0x2dd35e[_0xd77264(0x2bd)]['z']],'fovYRadians':_0x2dd35e[_0xd77264(0x9e)]['fovy']??_0x2dd35e[_0xd77264(0x9e)]['fov']??Math['PI']/0x3,'anchorDistance':Math[_0xd77264(0x272)](0x3e8,Math[_0xd77264(0x387)](_0x2dd35e[_0xd77264(0x274)]['height'])*0x2)};}[_0xe1b81f(0x251)](){const _0x4c585b=_0xe1b81f;return _0x41417c(this[_0x4c585b(0xd3)](),this[_0x4c585b(0xc7)][_0x4c585b(0xeb)],this[_0x4c585b(0xc7)][_0x4c585b(0x363)]);}[_0xe1b81f(0x170)](){const _0x32d58d=_0xe1b81f;if(!this[_0x32d58d(0x364)]||!this[_0x32d58d(0xc0)]){this[_0x32d58d(0xc7)][_0x32d58d(0x14d)]['transform']=_0x32d58d(0x1a5);return;}let _0x472b05=_0x5e5fbd(this[_0x32d58d(0xd3)](),this[_0x32d58d(0xc0)][_0x32d58d(0x3e9)],this[_0x32d58d(0xc7)][_0x32d58d(0xeb)],this[_0x32d58d(0xc7)][_0x32d58d(0x363)]),_0x22fe24=_0x472b05?_0x316e89(this['displayedCompensationFrame'][_0x32d58d(0x1d9)],_0x472b05):null;this[_0x32d58d(0xc7)][_0x32d58d(0x14d)][_0x32d58d(0x106)]=_0x22fe24??_0x32d58d(0x1a5);}[_0xe1b81f(0x2b6)](){const _0x48a7f4=_0xe1b81f;this[_0x48a7f4(0x1fb)]=null,this[_0x48a7f4(0xc0)]=null,this[_0x48a7f4(0xc7)][_0x48a7f4(0x14d)][_0x48a7f4(0x106)]=_0x48a7f4(0x1a5);}[_0xe1b81f(0xfa)](_0x375d55){const _0x41448c=_0xe1b81f;!this[_0x41448c(0x2d0)]||this['destroyed']||(this[_0x41448c(0x2ad)]=Math[_0x41448c(0x272)](this[_0x41448c(0x2ad)],_0x375d55),this[_0x41448c(0x3d4)]||=requestAnimationFrame(this[_0x41448c(0x3c5)]));}['requestFramesImmediately'](_0x36f30c){const _0xdecf50=_0xe1b81f;!this[_0xdecf50(0x2d0)]||this[_0xdecf50(0x2a7)]||(this[_0xdecf50(0x2ad)]=Math[_0xdecf50(0x272)](this['framesRemaining'],_0x36f30c),this[_0xdecf50(0x3d4)]&&cancelAnimationFrame(this[_0xdecf50(0x3d4)]),this[_0xdecf50(0x3d4)]=0x0,this[_0xdecf50(0x3c5)]());}[_0xe1b81f(0x3c5)]=()=>{const _0xff4340=_0xe1b81f;this[_0xff4340(0x3d4)]=0x0;let _0xd0c101=this[_0xff4340(0x333)];if(!(!_0xd0c101||!this[_0xff4340(0x2d0)]||this['destroyed']))try{_0xd0c101[_0xff4340(0x1cc)]();let _0x2de9a2=_0xd0c101[_0xff4340(0x112)][_0xff4340(0x11c)];_0xd0c101[_0xff4340(0x260)](),_0xd0c101[_0xff4340(0x112)]['submittedFrameCount']>_0x2de9a2&&(this[_0xff4340(0x1fb)]=this[_0xff4340(0x251)](),this[_0xff4340(0x2ad)]=Math[_0xff4340(0x272)](0x0,this[_0xff4340(0x2ad)]-0x1));let _0x3132a6=_0xd0c101[_0xff4340(0x112)];(_0x3132a6[_0xff4340(0x10f)]>0x0||_0x3132a6[_0xff4340(0x369)]<_0x3132a6[_0xff4340(0x24f)]||this['framesRemaining']>0x0)&&(this['frameRequest']=requestAnimationFrame(this[_0xff4340(0x3c5)]));}catch(_0x19ef2f){this[_0xff4340(0xae)]?.(_0x178f9d(_0x19ef2f));}};[_0xe1b81f(0x398)](_0x1c738b){const _0x572307=_0xe1b81f;let _0x59f16a=_0x1c738b[_0x572307(0x203)];if(!_0x59f16a)throw Error(_0x572307(0x167));let _0x5db68f=document[_0x572307(0x1fe)](_0x572307(0xc7));return _0x5db68f['style'][_0x572307(0x232)]=_0x572307(0xf9),_0x5db68f[_0x572307(0x14d)][_0x572307(0x15e)]='0',_0x5db68f[_0x572307(0x14d)][_0x572307(0x238)]=_0x572307(0x1eb),_0x5db68f[_0x572307(0x14d)]['height']='100%',_0x5db68f[_0x572307(0x14d)][_0x572307(0x102)]=_0x572307(0x1a5),_0x5db68f[_0x572307(0x14d)][_0x572307(0x3c3)]=this[_0x572307(0x2d0)]?_0x572307(0x38a):_0x572307(0x1a5),_0x5db68f[_0x572307(0x14d)]['zIndex']='1',_0x59f16a[_0x572307(0x222)](_0x5db68f),_0x5db68f;}[_0xe1b81f(0xba)](_0xbbeaf3){const _0x5eebaf=_0xe1b81f;return[_0xbbeaf3['positionWC']['x'],_0xbbeaf3[_0x5eebaf(0x39b)]['y'],_0xbbeaf3['positionWC']['z'],_0xbbeaf3[_0x5eebaf(0x38f)]['x'],_0xbbeaf3[_0x5eebaf(0x38f)]['y'],_0xbbeaf3[_0x5eebaf(0x38f)]['z'],_0xbbeaf3[_0x5eebaf(0x2bd)]['x'],_0xbbeaf3['upWC']['y'],_0xbbeaf3['upWC']['z'],_0xbbeaf3['frustum'][_0x5eebaf(0x301)]??_0xbbeaf3[_0x5eebaf(0x9e)][_0x5eebaf(0x33e)]??0x0,_0xbbeaf3[_0x5eebaf(0x9e)][_0x5eebaf(0x378)],_0xbbeaf3[_0x5eebaf(0x9e)]['far']]['map'](_0x274cee=>_0x274cee['toPrecision'](0xa))[_0x5eebaf(0x1f3)]('|');}[_0xe1b81f(0x125)](){const _0x49faa4=_0xe1b81f;window[_0x49faa4(0x140)](this['cameraEndTimer']),this[_0x49faa4(0x350)]=window[_0x49faa4(0x225)](this[_0x49faa4(0x165)][_0x49faa4(0x2c4)](this),0xc8);}[_0xe1b81f(0x291)](){const _0x4ee8e7=_0xe1b81f;this[_0x4ee8e7(0x372)]||(this['cameraMoving']=!0x0,this[_0x4ee8e7(0x333)]?.[_0x4ee8e7(0x3a2)](_0x4ee8e7(0x2f4))),this[_0x4ee8e7(0x125)]();}[_0xe1b81f(0x120)](){const _0x5a6e70=_0xe1b81f;if(this[_0x5a6e70(0x3c8)](),!this['scene'])throw Error(_0x5a6e70(0x1ac));return this[_0x5a6e70(0x333)];}[_0xe1b81f(0x3c8)](){const _0x433658=_0xe1b81f;if(this[_0x433658(0x2a7)])throw Error('A\x20destroyed\x20Mars3D\x20volume\x20layer\x20cannot\x20be\x20used.\x20已销毁的\x20Mars3D\x20体积层不能继续使用。');}};let _0x14a993=new WeakMap(),_0x164c1b=_0x40fadb=>{const _0x5a1e00=_0xe1b81f;let _0x6f76ec=_0x14a993[_0x5a1e00(0xd8)](_0x40fadb);if(_0x6f76ec)return _0x6f76ec;let _0x1fa6ed=_0x40fadb[_0x5a1e00(0x116)]['BaseLayer'];class _0x24e374 extends _0x1fa6ed{['volumeOptions'];['renderer']=null;['readyResolve']=null;[_0x5a1e00(0x2b2)]=null;[_0x5a1e00(0x177)]=new Promise((resolve,reject)=>{this['readyResolve']=resolve,this['readyReject']=reject;});constructor(_0x232bcf){const _0x4b4f98=_0x5a1e00;super({..._0x232bcf}),this[_0x4b4f98(0x35d)]={..._0x232bcf};}get['statistics'](){return this['renderer']?.['statistics']??null;}get[_0x5a1e00(0x105)](){const _0x505025=_0x5a1e00;return this[_0x505025(0x2d7)]?.[_0x505025(0x105)]??[];}[_0x5a1e00(0x2d4)](_0x2dad75){const _0x2722e4=_0x5a1e00;this[_0x2722e4(0x2d7)]?.[_0x2722e4(0x2d4)](_0x2dad75);}[_0x5a1e00(0x24b)](_0x31c8a0){const _0x15d98c=_0x5a1e00;this[_0x15d98c(0x35d)][_0x15d98c(0x111)]=_0x31c8a0,this[_0x15d98c(0x324)]()[_0x15d98c(0x24b)](_0x31c8a0);}[_0x5a1e00(0x2e7)](_0x10a4ca){const _0x24825e=_0x5a1e00;this[_0x24825e(0x324)]()[_0x24825e(0x2e7)](_0x10a4ca);}[_0x5a1e00(0x337)](_0x421add){const _0x3bacf1=_0x5a1e00;this[_0x3bacf1(0x324)]()[_0x3bacf1(0x337)](_0x421add);}[_0x5a1e00(0x313)](_0x53c22a,_0x5d7ad9){const _0x28c1a2=_0x5a1e00;return this['requireRenderer']()[_0x28c1a2(0x313)](_0x53c22a,_0x5d7ad9);}[_0x5a1e00(0x1cb)](_0x5ce296,_0x2c3232){const _0x2153b8=_0x5a1e00;this['requireRenderer']()[_0x2153b8(0x1cb)](_0x5ce296,_0x2c3232);}['removeSlice'](_0x991f91){const _0x588233=_0x5a1e00;this[_0x588233(0x324)]()['removeSlice'](_0x991f91);}[_0x5a1e00(0x1db)](){const _0x522271=_0x5a1e00;this['requireRenderer']()[_0x522271(0x1db)]();}[_0x5a1e00(0x97)](){}['_addedHook'](){const _0x50b7f4=_0x5a1e00;if(!this['_map'])throw Error('Mars3D\x20volume\x20layer\x20is\x20not\x20attached\x20to\x20a\x20map.\x20Mars3D\x20体积层尚未关联地图。');this[_0x50b7f4(0x2d7)]?.[_0x50b7f4(0x1e8)](),this[_0x50b7f4(0x2d7)]=new _0xbc8910(this[_0x50b7f4(0x28b)],this[_0x50b7f4(0x35d)]),this[_0x50b7f4(0x2d7)][_0x50b7f4(0x11b)](this['show']),this[_0x50b7f4(0x2d7)][_0x50b7f4(0x177)][_0x50b7f4(0xb6)](()=>this[_0x50b7f4(0xa2)]?.())[_0x50b7f4(0xf7)](_0x370abd=>this[_0x50b7f4(0x2b2)]?.(_0x370abd));}[_0x5a1e00(0x285)](_0x327361){const _0x2c4a8d=_0x5a1e00;this[_0x2c4a8d(0x2d7)]?.[_0x2c4a8d(0x11b)](_0x327361);}['_removedHook'](){const _0x3c2faa=_0x5a1e00;this['renderer']?.[_0x3c2faa(0x1e8)](),this[_0x3c2faa(0x2d7)]=null;}['requireRenderer'](){const _0x3c4d08=_0x5a1e00;if(!this[_0x3c4d08(0x2d7)])throw Error('Mars3D\x20volume\x20layer\x20is\x20not\x20added\x20to\x20a\x20map.\x20Mars3D\x20体积层尚未添加到地图。');return this[_0x3c4d08(0x2d7)];}}let _0xebbf01=_0x24e374;return _0x14a993['set'](_0x40fadb,_0xebbf01),_0xebbf01;};_0x3c68fe['createMars3dVolumeLayer']=(_0x5a84fa,_0x86a753)=>new(_0x164c1b(_0x5a84fa))(_0x86a753);}));
|