m4-w-fast 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/README.md +6 -0
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.mjs +1 -1
  6. package/dist/intersect.worker.js +2 -2
  7. package/dist/isoBands.worker.js +1 -1
  8. package/dist/m4-w-fast.umd.js +1 -1
  9. package/dist/raster-leaflet/index.cjs +2 -0
  10. package/dist/raster-leaflet/index.d.ts +5 -0
  11. package/dist/raster-leaflet/index.js +1 -0
  12. package/dist/raster-leaflet/index.mjs +2 -0
  13. package/dist/raster-leaflet/m4-w-raster-leaflet.umd.js +2 -0
  14. package/dist/raster-mars3d/cesiumRasterPlaneRenderer.d.ts +28 -0
  15. package/dist/raster-mars3d/cesiumRasterPlaneRenderer.js +1 -0
  16. package/dist/raster-mars3d/cesiumRasterTextureAdapter.d.ts +14 -0
  17. package/dist/raster-mars3d/cesiumRasterTextureAdapter.js +1 -0
  18. package/dist/raster-mars3d/index.cjs +2 -0
  19. package/dist/raster-mars3d/index.d.ts +6 -0
  20. package/dist/raster-mars3d/index.js +1 -0
  21. package/dist/raster-mars3d/index.mjs +2 -0
  22. package/dist/raster-mars3d/m4-w-raster-mars3d.umd.js +2 -0
  23. package/dist/raster-mars3d/mars3dRasterImageryProvider.d.ts +30 -0
  24. package/dist/raster-mars3d/mars3dRasterImageryProvider.js +1 -0
  25. package/dist/raster-mars3d/mars3dRasterPlaneLayer.d.ts +3 -0
  26. package/dist/raster-mars3d/mars3dRasterPlaneLayer.js +1 -0
  27. package/dist/raster-mars3d/rasterPlaneCesiumTypes.d.ts +95 -0
  28. package/dist/raster-mars3d/rasterPlaneCesiumTypes.js +1 -0
  29. package/dist/raster-mars3d/rasterPlaneGeometry.d.ts +5 -0
  30. package/dist/raster-mars3d/rasterPlaneGeometry.js +1 -0
  31. package/dist/raster-mars3d/rasterPlaneGridChunks.d.ts +4 -0
  32. package/dist/raster-mars3d/rasterPlaneGridChunks.js +1 -0
  33. package/dist/raster-mars3d/rasterPlaneMaterial.d.ts +21 -0
  34. package/dist/raster-mars3d/rasterPlaneMaterial.js +1 -0
  35. package/dist/raster-mars3d/rasterPlaneTypes.d.ts +33 -0
  36. package/dist/raster-mars3d/rasterPlaneTypes.js +1 -0
  37. package/dist/raster-mars3d/types.d.ts +30 -0
  38. package/dist/raster-mars3d/types.js +1 -0
  39. package/dist/raster-overlay/color.d.ts +1 -1
  40. package/dist/raster-overlay/color.js +1 -1
  41. package/dist/raster-overlay/core.d.ts +1 -1
  42. package/dist/raster-overlay/core.js +1 -1
  43. package/dist/raster-overlay/index.cjs +2 -2
  44. package/dist/raster-overlay/index.d.ts +5 -2
  45. package/dist/raster-overlay/index.js +1 -1
  46. package/dist/raster-overlay/index.mjs +2 -2
  47. package/dist/raster-overlay/leaflet-renderers/createRenderer.d.ts +3 -7
  48. package/dist/raster-overlay/leaflet-renderers/createRenderer.js +1 -1
  49. package/dist/raster-overlay/leaflet-renderers/renderer.d.ts +1 -59
  50. package/dist/raster-overlay/leafletLayer.d.ts +4 -0
  51. package/dist/raster-overlay/leafletLayer.js +1 -1
  52. package/dist/raster-overlay/leafletTypes.d.ts +21 -0
  53. package/dist/raster-overlay/leafletTypes.js +1 -0
  54. package/dist/raster-overlay/m4-w-raster-overlay.umd.js +2 -2
  55. package/dist/raster-overlay/query.d.ts +1 -1
  56. package/dist/raster-overlay/query.js +1 -1
  57. package/dist/raster-overlay/rasterTypes.d.ts +73 -0
  58. package/dist/raster-overlay/rasterTypes.js +1 -0
  59. package/dist/raster-overlay/rendering/createRasterRenderer.d.ts +4 -0
  60. package/dist/raster-overlay/rendering/createRasterRenderer.js +1 -0
  61. package/dist/raster-overlay/rendering/index.d.ts +5 -0
  62. package/dist/raster-overlay/rendering/index.js +1 -0
  63. package/dist/raster-overlay/rendering/rasterRenderState.d.ts +27 -0
  64. package/dist/raster-overlay/rendering/rasterRenderState.js +1 -0
  65. package/dist/raster-overlay/rendering/renderer.d.ts +15 -0
  66. package/dist/raster-overlay/rendering/renderer.js +1 -0
  67. package/dist/raster-overlay/rendering/webgl2RasterRenderer.d.ts +34 -0
  68. package/dist/raster-overlay/rendering/webgl2RasterRenderer.js +1 -0
  69. package/dist/raster-overlay/rendering/webgpuRasterRenderer.d.ts +42 -0
  70. package/dist/raster-overlay/rendering/webgpuRasterRenderer.js +1 -0
  71. package/dist/raster-overlay/types.d.ts +2 -235
  72. package/dist/raster-rendering/index.cjs +2 -0
  73. package/dist/raster-rendering/index.d.ts +8 -0
  74. package/dist/raster-rendering/index.js +1 -0
  75. package/dist/raster-rendering/index.mjs +2 -0
  76. package/dist/raster-rendering/m4-w-raster-rendering.umd.js +2 -0
  77. package/dist/raster-rendering/types.d.ts +13 -0
  78. package/dist/raster-rendering/types.js +1 -0
  79. package/dist/raster-rendering/webgpuRasterTileRenderer.d.ts +29 -0
  80. package/dist/raster-rendering/webgpuRasterTileRenderer.js +1 -0
  81. package/dist/readFile.d.ts +2 -2
  82. package/dist/readFile.js +1 -1
  83. package/dist/rendering/index.d.ts +6 -0
  84. package/dist/rendering/index.js +1 -0
  85. package/dist/rendering/renderer.d.ts +35 -0
  86. package/dist/rendering/renderer.js +1 -0
  87. package/dist/rendering/types.d.ts +20 -0
  88. package/dist/rendering/types.js +1 -0
  89. package/dist/rendering/webgl2/baseWebgl2Renderer.d.ts +37 -0
  90. package/dist/rendering/webgl2/baseWebgl2Renderer.js +1 -0
  91. package/dist/rendering/webgl2/index.d.ts +4 -0
  92. package/dist/rendering/webgl2/index.js +1 -0
  93. package/dist/rendering/webgl2/types.d.ts +24 -0
  94. package/dist/rendering/webgl2/types.js +1 -0
  95. package/dist/rendering/webgl2/webgl2CoverageResources.d.ts +29 -0
  96. package/dist/rendering/webgl2/webgl2CoverageResources.js +1 -0
  97. package/dist/rendering/webgl2/webgl2VisualizationResources.d.ts +33 -0
  98. package/dist/rendering/webgl2/webgl2VisualizationResources.js +1 -0
  99. package/dist/rendering/webgpu/baseWebgpuRenderer.d.ts +181 -0
  100. package/dist/rendering/webgpu/baseWebgpuRenderer.js +1 -0
  101. package/dist/rendering/webgpu/index.d.ts +3 -0
  102. package/dist/rendering/webgpu/index.js +1 -0
  103. package/dist/rendering/webgpu/types.d.ts +33 -0
  104. package/dist/rendering/webgpu/types.js +1 -0
  105. package/dist/rendering/webgpu/visualizationParams.d.ts +25 -0
  106. package/dist/rendering/webgpu/visualizationParams.js +1 -0
  107. package/dist/rendering/webgpu/visualizationResources.d.ts +50 -0
  108. package/dist/rendering/webgpu/visualizationResources.js +1 -0
  109. package/dist/rendering/webgpu/webgpuCoverageResources.d.ts +36 -0
  110. package/dist/rendering/webgpu/webgpuCoverageResources.js +1 -0
  111. package/dist/road-overlay/coordinateTransform.js +1 -1
  112. package/dist/road-overlay/index.cjs +2 -2
  113. package/dist/road-overlay/index.d.ts +3 -1
  114. package/dist/road-overlay/index.js +1 -1
  115. package/dist/road-overlay/index.mjs +2 -2
  116. package/dist/road-overlay/leaflet-renderers/createRenderer.d.ts +3 -7
  117. package/dist/road-overlay/leaflet-renderers/createRenderer.js +1 -1
  118. package/dist/road-overlay/leaflet-renderers/renderer.d.ts +1 -82
  119. package/dist/road-overlay/leafletLayer.d.ts +2 -0
  120. package/dist/road-overlay/leafletLayer.js +1 -1
  121. package/dist/road-overlay/m4-w-road-overlay.umd.js +2 -2
  122. package/dist/road-overlay/options.d.ts +5 -1
  123. package/dist/road-overlay/options.js +1 -1
  124. package/dist/road-overlay/rendering/index.d.ts +4 -0
  125. package/dist/road-overlay/rendering/index.js +1 -0
  126. package/dist/road-overlay/rendering/renderer.d.ts +54 -0
  127. package/dist/road-overlay/rendering/renderer.js +1 -0
  128. package/dist/road-overlay/rendering/roadRenderState.d.ts +137 -0
  129. package/dist/road-overlay/rendering/roadRenderState.js +1 -0
  130. package/dist/road-overlay/rendering/webgl2RoadRenderer.d.ts +38 -0
  131. package/dist/road-overlay/rendering/webgl2RoadRenderer.js +1 -0
  132. package/dist/road-overlay/rendering/webgpuRoadRenderer.d.ts +134 -0
  133. package/dist/road-overlay/rendering/webgpuRoadRenderer.js +1 -0
  134. package/dist/road-overlay/roadData.d.ts +3 -2
  135. package/dist/road-overlay/roadData.js +1 -1
  136. package/dist/road-overlay/roadGeometry.d.ts +2 -2
  137. package/dist/road-overlay/roadGeometry.js +1 -1
  138. package/dist/road-overlay/roadMesh.d.ts +7 -5
  139. package/dist/road-overlay/roadMesh.js +1 -1
  140. package/dist/road-overlay/types.d.ts +10 -2
  141. package/dist/shared/coordinate-shader/webgl2/index.d.ts +3 -0
  142. package/dist/shared/coordinate-shader/webgl2/index.js +1 -0
  143. package/dist/shared/coordinate-shader/webgpu/index.d.ts +5 -0
  144. package/dist/shared/coordinate-shader/webgpu/index.js +1 -0
  145. package/dist/shared/coverage/index.d.ts +1 -0
  146. package/dist/shared/coverage/index.js +1 -0
  147. package/dist/shared/coverage/types.d.ts +8 -0
  148. package/dist/shared/coverage/types.js +1 -0
  149. package/dist/shared/map/index.d.ts +2 -0
  150. package/dist/shared/map/index.js +1 -0
  151. package/dist/shared/map/leaflet.d.ts +7 -0
  152. package/dist/shared/map/leaflet.js +1 -0
  153. package/dist/shared/map/types.d.ts +19 -0
  154. package/dist/shared/map/types.js +1 -0
  155. package/dist/shared/polygon/contains.d.ts +3 -0
  156. package/dist/shared/polygon/contains.js +1 -0
  157. package/dist/shared/polygon/index.d.ts +3 -0
  158. package/dist/shared/polygon/index.js +1 -0
  159. package/dist/shared/polygon/polygonMesh.d.ts +3 -0
  160. package/dist/shared/polygon/polygonMesh.js +1 -0
  161. package/dist/shared/polygon/types.d.ts +11 -0
  162. package/dist/shared/polygon/types.js +1 -0
  163. package/dist/shared/shader/assemble.d.ts +5 -0
  164. package/dist/shared/shader/assemble.js +1 -0
  165. package/dist/shared/visualization/index.d.ts +2 -0
  166. package/dist/shared/visualization/index.js +1 -0
  167. package/dist/shared/visualization/shader/webgl2/index.d.ts +1 -0
  168. package/dist/shared/visualization/shader/webgl2/index.js +1 -0
  169. package/dist/shared/visualization/shader/webgpu/index.d.ts +10 -0
  170. package/dist/shared/visualization/shader/webgpu/index.js +1 -0
  171. package/dist/shared/visualization/types.d.ts +68 -0
  172. package/dist/shared/visualization/types.js +1 -0
  173. package/dist/shared/visualization/utils.d.ts +46 -0
  174. package/dist/shared/visualization/utils.js +1 -0
  175. package/dist/volume-mars3d/createMars3dVolumeScene.d.ts +3 -0
  176. package/dist/volume-mars3d/createMars3dVolumeScene.js +1 -0
  177. package/dist/volume-mars3d/index.cjs +1 -0
  178. package/dist/volume-mars3d/index.d.ts +2 -0
  179. package/dist/volume-mars3d/index.js +1 -0
  180. package/dist/volume-mars3d/index.mjs +1 -0
  181. package/dist/volume-mars3d/m4-w-volume-mars3d.umd.js +1 -0
  182. package/dist/volume-mars3d/mars3dCanvasCompensation.d.ts +22 -0
  183. package/dist/volume-mars3d/mars3dCanvasCompensation.js +1 -0
  184. package/dist/volume-mars3d/mars3dRaymarchShader.d.ts +1 -0
  185. package/dist/volume-mars3d/mars3dRaymarchShader.js +1 -0
  186. package/dist/volume-mars3d/mars3dVolumeLayer.d.ts +2 -0
  187. package/dist/volume-mars3d/mars3dVolumeLayer.js +1 -0
  188. package/dist/volume-mars3d/mars3dVolumeRenderer.d.ts +56 -0
  189. package/dist/volume-mars3d/mars3dVolumeRenderer.js +1 -0
  190. package/dist/volume-mars3d/volumeMars3dTypes.d.ts +85 -0
  191. package/dist/volume-mars3d/volumeMars3dTypes.js +1 -0
  192. package/dist/volume-mars3d-native/index.cjs +1 -0
  193. package/dist/volume-mars3d-native/index.d.ts +4 -0
  194. package/dist/volume-mars3d-native/index.js +1 -0
  195. package/dist/volume-mars3d-native/index.mjs +1 -0
  196. package/dist/volume-mars3d-native/liveUpdateScheduler.d.ts +10 -0
  197. package/dist/volume-mars3d-native/liveUpdateScheduler.js +1 -0
  198. package/dist/volume-mars3d-native/m4-w-volume-mars3d-native.umd.js +1 -0
  199. package/dist/volume-mars3d-native/mars3dNativeSliceLayer.d.ts +2 -0
  200. package/dist/volume-mars3d-native/mars3dNativeSliceLayer.js +1 -0
  201. package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.d.ts +56 -0
  202. package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.js +1 -0
  203. package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.d.ts +2 -0
  204. package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.js +1 -0
  205. package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.d.ts +34 -0
  206. package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.js +1 -0
  207. package/dist/volume-mars3d-native/nativeAxisSliceRenderer.d.ts +40 -0
  208. package/dist/volume-mars3d-native/nativeAxisSliceRenderer.js +1 -0
  209. package/dist/volume-mars3d-native/nativeSliceAtlas.d.ts +50 -0
  210. package/dist/volume-mars3d-native/nativeSliceAtlas.js +1 -0
  211. package/dist/volume-mars3d-native/nativeSliceRuntimeTypes.d.ts +17 -0
  212. package/dist/volume-mars3d-native/nativeSliceRuntimeTypes.js +1 -0
  213. package/dist/volume-mars3d-native/nativeTypes.d.ts +174 -0
  214. package/dist/volume-mars3d-native/nativeTypes.js +1 -0
  215. package/dist/volume-mars3d-native/nativeVoxelProvider.d.ts +6 -0
  216. package/dist/volume-mars3d-native/nativeVoxelProvider.js +1 -0
  217. package/dist/volume-mars3d-native/nativeVoxelShader.d.ts +2 -0
  218. package/dist/volume-mars3d-native/nativeVoxelShader.js +1 -0
  219. package/dist/volume-mars3d-native/voxelData.d.ts +9 -0
  220. package/dist/volume-mars3d-native/voxelData.js +1 -0
  221. package/dist/volume-scene/brickLayout.d.ts +75 -0
  222. package/dist/volume-scene/brickLayout.js +1 -0
  223. package/dist/volume-scene/brickResidency.d.ts +54 -0
  224. package/dist/volume-scene/brickResidency.js +1 -0
  225. package/dist/volume-scene/camera.d.ts +22 -0
  226. package/dist/volume-scene/camera.js +1 -0
  227. package/dist/volume-scene/cameraTypes.d.ts +37 -0
  228. package/dist/volume-scene/cameraTypes.js +1 -0
  229. package/dist/volume-scene/createVolumeScene.d.ts +4 -0
  230. package/dist/volume-scene/createVolumeScene.js +1 -0
  231. package/dist/volume-scene/geographicTypes.d.ts +16 -0
  232. package/dist/volume-scene/geographicTypes.js +1 -0
  233. package/dist/volume-scene/geographicVolume.d.ts +4 -0
  234. package/dist/volume-scene/geographicVolume.js +1 -0
  235. package/dist/volume-scene/inMemoryVolumeSource.d.ts +3 -0
  236. package/dist/volume-scene/inMemoryVolumeSource.js +1 -0
  237. package/dist/volume-scene/index.cjs +1 -0
  238. package/dist/volume-scene/index.d.ts +12 -0
  239. package/dist/volume-scene/index.js +1 -0
  240. package/dist/volume-scene/index.mjs +1 -0
  241. package/dist/volume-scene/m4-w-volume-scene.umd.js +1 -0
  242. package/dist/volume-scene/matrix.d.ts +11 -0
  243. package/dist/volume-scene/matrix.js +1 -0
  244. package/dist/volume-scene/profileTypes.d.ts +20 -0
  245. package/dist/volume-scene/profileTypes.js +1 -0
  246. package/dist/volume-scene/rendering/webgpu/index.d.ts +2 -0
  247. package/dist/volume-scene/rendering/webgpu/index.js +1 -0
  248. package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.d.ts +59 -0
  249. package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.js +1 -0
  250. package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.d.ts +11 -0
  251. package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.js +1 -0
  252. package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.d.ts +12 -0
  253. package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.js +1 -0
  254. package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.d.ts +21 -0
  255. package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.js +1 -0
  256. package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.d.ts +16 -0
  257. package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.js +1 -0
  258. package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.d.ts +126 -0
  259. package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.js +1 -0
  260. package/dist/volume-scene/rendering/webgpu/webgpuVolumeTypes.d.ts +108 -0
  261. package/dist/volume-scene/rendering/webgpu/webgpuVolumeTypes.js +1 -0
  262. package/dist/volume-scene/routeProfileMesh.d.ts +7 -0
  263. package/dist/volume-scene/routeProfileMesh.js +1 -0
  264. package/dist/volume-scene/sceneTypes.d.ts +136 -0
  265. package/dist/volume-scene/sceneTypes.js +1 -0
  266. package/dist/volume-scene/sliceInteractionController.d.ts +27 -0
  267. package/dist/volume-scene/sliceInteractionController.js +1 -0
  268. package/dist/volume-scene/sliceMarkerOverlay.d.ts +28 -0
  269. package/dist/volume-scene/sliceMarkerOverlay.js +1 -0
  270. package/dist/volume-scene/sliceState.d.ts +34 -0
  271. package/dist/volume-scene/sliceState.js +1 -0
  272. package/dist/volume-scene/sliceTypes.d.ts +52 -0
  273. package/dist/volume-scene/sliceTypes.js +1 -0
  274. package/dist/volume-scene/sourceTypes.d.ts +47 -0
  275. package/dist/volume-scene/sourceTypes.js +1 -0
  276. package/dist/volume-scene/transferTypes.d.ts +12 -0
  277. package/dist/volume-scene/transferTypes.js +1 -0
  278. package/dist/volume-scene/volumeBrickData.d.ts +3 -0
  279. package/dist/volume-scene/volumeBrickData.js +1 -0
  280. package/dist/volume-scene/volumeScene.d.ts +103 -0
  281. package/dist/volume-scene/volumeScene.js +1 -0
  282. package/dist/volume-scene/volumeTransfer.d.ts +8 -0
  283. package/dist/volume-scene/volumeTransfer.js +1 -0
  284. package/dist/volume-scene/volumeValidation.d.ts +27 -0
  285. package/dist/volume-scene/volumeValidation.js +1 -0
  286. package/package.json +6 -3
  287. package/dist/raster-overlay/leaflet-renderers/cpuRenderer.d.ts +0 -0
  288. package/dist/raster-overlay/leaflet-renderers/cpuRenderer.js +0 -1
  289. package/dist/raster-overlay/leaflet-renderers/rasterRendererUtils.d.ts +0 -52
  290. package/dist/raster-overlay/leaflet-renderers/rasterRendererUtils.js +0 -1
  291. package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.d.ts +0 -111
  292. package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.js +0 -1
  293. package/dist/raster-overlay/leaflet-renderers/webglRenderer.d.ts +0 -0
  294. package/dist/raster-overlay/leaflet-renderers/webglRenderer.js +0 -1
  295. package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -114
  296. package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.js +0 -1
  297. package/dist/road-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -55
  298. package/dist/road-overlay/leaflet-renderers/webgpuRenderer.js +0 -1
@@ -0,0 +1 @@
1
+ function _0x571d(_0xef965a,_0x2ad63a){const _0x1214e8=_0x1214();return _0x571d=function(_0x571dd6,_0x121920){_0x571dd6=_0x571dd6-0x179;let _0x3ce135=_0x1214e8[_0x571dd6];return _0x3ce135;},_0x571d(_0xef965a,_0x2ad63a);}(function(_0x31d914,_0x235fb1){const _0x1583d6=_0x571d,_0x396b33=_0x31d914();while(!![]){try{const _0x362738=-parseInt(_0x1583d6(0x449))/0x1*(-parseInt(_0x1583d6(0x356))/0x2)+parseInt(_0x1583d6(0x1ff))/0x3+-parseInt(_0x1583d6(0x2d3))/0x4*(-parseInt(_0x1583d6(0x411))/0x5)+-parseInt(_0x1583d6(0x2ea))/0x6+-parseInt(_0x1583d6(0x416))/0x7+-parseInt(_0x1583d6(0x291))/0x8+parseInt(_0x1583d6(0x405))/0x9*(parseInt(_0x1583d6(0x460))/0xa);if(_0x362738===_0x235fb1)break;else _0x396b33['push'](_0x396b33['shift']());}catch(_0x57515a){_0x396b33['push'](_0x396b33['shift']());}}}(_0x1214,0x46a4c),function(_0x7ec994,_0x78ef3e){const _0x23ba3f=_0x571d;typeof exports==_0x23ba3f(0x3f7)&&typeof module<'u'?_0x78ef3e(exports):typeof define==_0x23ba3f(0x2b2)&&define[_0x23ba3f(0x34e)]?define([_0x23ba3f(0x3a2)],_0x78ef3e):(_0x7ec994=typeof globalThis<'u'?globalThis:_0x7ec994||self,_0x78ef3e(_0x7ec994[_0x23ba3f(0x490)]={}));}(this,function(_0x5588ea){const _0x3a9ea2=_0x571d;Object['defineProperty'](_0x5588ea,Symbol[_0x3a9ea2(0x20a)],{'value':_0x3a9ea2(0x278)});let _0x3a43d4=(_0x231603,_0x2d3293)=>{const _0x2be23e=_0x3a9ea2;if(!Number[_0x2be23e(0x34f)](_0x231603)||_0x231603<=0x0)throw Error(_0x2d3293+'\x20must\x20be\x20a\x20positive\x20integer.\x20'+_0x2d3293+_0x2be23e(0x226));},_0x219516=(_0x446b93,_0x54370b)=>{const _0x5ed09d=_0x3a9ea2;if(_0x3a43d4(_0x446b93[_0x5ed09d(0x25f)],_0x54370b+_0x5ed09d(0x263)),!Number[_0x5ed09d(0x2ba)](_0x446b93[_0x5ed09d(0x239)])||!Number[_0x5ed09d(0x2ba)](_0x446b93['end']))throw Error(_0x54370b+'\x20endpoints\x20must\x20be\x20finite.\x20'+_0x54370b+_0x5ed09d(0x1fd));if(_0x446b93['count']===0x1&&_0x446b93[_0x5ed09d(0x239)]!==_0x446b93[_0x5ed09d(0x1e7)])throw Error(_0x54370b+'\x20with\x20one\x20sample\x20must\x20use\x20equal\x20endpoints.\x20'+_0x54370b+'\x20只有一个采样点时端点必须相等。');if(_0x446b93[_0x5ed09d(0x25f)]>0x1&&_0x446b93[_0x5ed09d(0x239)]===_0x446b93[_0x5ed09d(0x1e7)])throw Error(_0x54370b+_0x5ed09d(0x344)+_0x54370b+_0x5ed09d(0x3ea));},_0x145b12=(_0x4cf619,_0x40163d)=>{const _0x2ed13d=_0x3a9ea2;if(_0x4cf619!==void 0x0&&!Number[_0x2ed13d(0x2ba)](_0x4cf619)&&!Number[_0x2ed13d(0x2c9)](_0x4cf619))throw Error(_0x40163d+_0x2ed13d(0x3a7)+_0x40163d+_0x2ed13d(0x2a2));},_0x20dfbd=(_0x159dfc,_0x2d376a)=>_0x159dfc[_0x3a9ea2(0x3b3)]===_0x2d376a[_0x3a9ea2(0x3b3)]&&_0x159dfc[_0x3a9ea2(0x243)]===_0x2d376a[_0x3a9ea2(0x243)]&&_0x159dfc[_0x3a9ea2(0x1dc)]===_0x2d376a[_0x3a9ea2(0x1dc)]&&_0x159dfc['levelCount']===_0x2d376a[_0x3a9ea2(0x3f3)]&&_0x159dfc[_0x3a9ea2(0x38c)]===_0x2d376a[_0x3a9ea2(0x38c)]&&_0x159dfc[_0x3a9ea2(0x189)]===_0x2d376a[_0x3a9ea2(0x189)],_0x15d88c=_0x4b3abf=>{const _0x595c94=_0x3a9ea2;if(_0x219516(_0x4b3abf[_0x595c94(0x1f2)],_0x595c94(0x3fe)),_0x219516(_0x4b3abf[_0x595c94(0x42c)],_0x595c94(0x1cd)),_0x219516(_0x4b3abf[_0x595c94(0x46c)],'Volume\x20Z\x20axis'),_0x3a43d4(_0x4b3abf[_0x595c94(0x45c)],'Volume\x20timeCount'),_0x145b12(_0x4b3abf[_0x595c94(0x268)],_0x595c94(0x41f)),_0x4b3abf[_0x595c94(0x486)]!==void 0x0&&!Number['isFinite'](_0x4b3abf[_0x595c94(0x486)]))throw Error(_0x595c94(0x1fe));if(_0x4b3abf[_0x595c94(0x3f5)]!==void 0x0&&(!Number[_0x595c94(0x34f)](_0x4b3abf[_0x595c94(0x3f5)])||_0x4b3abf['revision']<0x0))throw Error('Volume\x20revision\x20must\x20be\x20a\x20non-negative\x20integer.\x20体积\x20revision\x20必须是非负整数。');},_0x18abc7=(_0x1431b1,_0x198371)=>{const _0x188d4a=_0x3a9ea2;if(!Number[_0x188d4a(0x34f)](_0x198371)||_0x198371<0x0||_0x198371>=_0x1431b1[_0x188d4a(0x45c)])throw Error(_0x188d4a(0x1b8)+_0x198371+_0x188d4a(0x450));},_0x121789=(_0x41a94d,_0x407844)=>{const _0x417775=_0x3a9ea2;let _0xc6cb49=[[_0x407844[_0x417775(0x3b3)],_0x417775(0x3b3)],[_0x407844[_0x417775(0x243)],_0x417775(0x243)],[_0x407844[_0x417775(0x1dc)],'levelStart'],[_0x407844[_0x417775(0x3f3)],_0x417775(0x3f3)],[_0x407844['sourceYStart'],_0x417775(0x38c)],[_0x407844[_0x417775(0x189)],_0x417775(0x189)]];for(let [_0x32681d,_0x1cf3ca]of _0xc6cb49)if(!Number['isInteger'](_0x32681d)||_0x32681d<0x0||_0x1cf3ca[_0x417775(0x1b0)]('Count')&&_0x32681d===0x0)throw Error(_0x417775(0x3b5)+_0x1cf3ca+_0x417775(0x271)+_0x32681d+_0x417775(0x297)+_0x1cf3ca+_0x417775(0x240));if(_0x407844[_0x417775(0x3b3)]+_0x407844[_0x417775(0x243)]>_0x41a94d[_0x417775(0x1f2)][_0x417775(0x25f)]||_0x407844['levelStart']+_0x407844[_0x417775(0x3f3)]>_0x41a94d[_0x417775(0x42c)]['count']||_0x407844[_0x417775(0x38c)]+_0x407844[_0x417775(0x189)]>_0x41a94d['zAxis'][_0x417775(0x25f)])throw Error(_0x417775(0x27a));},_0x466b16=(_0x440037,_0x5bf9da,_0x9ce9e8,_0x15b24a)=>{const _0x51c942=_0x3a9ea2;if(_0x18abc7(_0x440037,_0x5bf9da[_0x51c942(0x48d)]),_0x121789(_0x440037,_0x5bf9da[_0x51c942(0x17e)]),_0x15b24a!==void 0x0&&_0x5bf9da[_0x51c942(0x48d)]!==_0x15b24a)throw Error('Returned\x20volume\x20chunk\x20timeIndex\x20does\x20not\x20match\x20the\x20request.\x20返回体积分块的时间索引与请求不一致。');if(_0x9ce9e8&&!_0x20dfbd(_0x5bf9da[_0x51c942(0x17e)],_0x9ce9e8))throw Error(_0x51c942(0x36d));if(_0x5bf9da[_0x51c942(0x1cc)]!==_0x5bf9da[_0x51c942(0x17e)][_0x51c942(0x243)]||_0x5bf9da[_0x51c942(0x22a)]!==_0x5bf9da[_0x51c942(0x17e)]['levelCount']||_0x5bf9da[_0x51c942(0x30f)]!==_0x5bf9da[_0x51c942(0x17e)][_0x51c942(0x189)])throw Error(_0x51c942(0x1c7));let _0x31eadc=_0x5bf9da[_0x51c942(0x1cc)]*_0x5bf9da[_0x51c942(0x22a)]*_0x5bf9da[_0x51c942(0x30f)];if(!Number[_0x51c942(0x47f)](_0x31eadc)||_0x5bf9da['values'][_0x51c942(0x2e8)]!==_0x31eadc)throw Error(_0x51c942(0x244)+_0x31eadc+'\x20values\x20but\x20received\x20'+_0x5bf9da[_0x51c942(0x1a1)][_0x51c942(0x2e8)]+'.\x20体积分块数值数量与尺寸不一致。');},_0x5d3edd=_0x2f4b41=>{const _0x310fb5=_0x3a9ea2;if(!_0x2f4b41||typeof _0x2f4b41[_0x310fb5(0x2d1)]!='function')throw Error('Volume\x20source\x20must\x20provide\x20readChunk().\x20体积数据源必须提供\x20readChunk()。');_0x15d88c(_0x2f4b41[_0x310fb5(0x474)]);},_0x3d0a50=_0xc32fb6=>{const _0x327c45=_0x3a9ea2;for(let [_0x55c162,_0x242790]of[[_0xc32fb6[_0x327c45(0x1cc)],'width'],[_0xc32fb6[_0x327c45(0x22a)],'height'],[_0xc32fb6[_0x327c45(0x30f)],_0x327c45(0x30f)]])if(!Number[_0x327c45(0x34f)](_0x55c162)||_0x55c162<=0x0)throw Error(_0x327c45(0x231)+_0x242790+_0x327c45(0x433)+_0x242790+_0x327c45(0x226));if(!Number[_0x327c45(0x34f)](_0xc32fb6['halo'])||_0xc32fb6['halo']<0x1)throw Error(_0x327c45(0x2f7));},_0x395d6=(_0x1a9196={})=>{const _0x1b067a=_0x3a9ea2;let _0x3f67b4={'width':_0x1a9196['width']??0x100,'height':_0x1a9196[_0x1b067a(0x22a)]??0x8,'depth':_0x1a9196[_0x1b067a(0x30f)]??0x100,'halo':_0x1a9196[_0x1b067a(0x3ca)]??0x1};return _0x3d0a50(_0x3f67b4),_0x3f67b4;},_0x3712e3=(_0x5a9752,_0x32fddf={})=>{const _0x572674=_0x3a9ea2;_0x15d88c(_0x5a9752);let _0x162c8f=_0x395d6(_0x32fddf),_0x413610=Math[_0x572674(0x37e)](_0x5a9752['xAxis'][_0x572674(0x25f)]/_0x162c8f['width']),_0x37c098=Math['ceil'](_0x5a9752['yAxis']['count']/_0x162c8f[_0x572674(0x22a)]),_0x37af83=Math[_0x572674(0x37e)](_0x5a9752[_0x572674(0x46c)]['count']/_0x162c8f[_0x572674(0x30f)]);return{'shape':_0x162c8f,'countX':_0x413610,'countY':_0x37c098,'countZ':_0x37af83,'brickCount':_0x413610*_0x37c098*_0x37af83};},_0x1ba404=_0x1cd184=>_0x1cd184['x']+':'+_0x1cd184['y']+':'+_0x1cd184['z'],_0xedbd6d=(_0x5b87f6,_0x4958b4,_0x267554)=>{const _0x24914d=_0x3a9ea2;if(!Number['isInteger'](_0x267554['x'])||!Number['isInteger'](_0x267554['y'])||!Number['isInteger'](_0x267554['z'])||_0x267554['x']<0x0||_0x267554['x']>=_0x4958b4[_0x24914d(0x204)]||_0x267554['y']<0x0||_0x267554['y']>=_0x4958b4[_0x24914d(0x17d)]||_0x267554['z']<0x0||_0x267554['z']>=_0x4958b4['countZ'])throw Error('Volume\x20brick\x20coordinate\x20is\x20out\x20of\x20range.\x20体积分块坐标越界。');let _0x266e3f=_0x267554['x']*_0x4958b4['shape']['width'],_0xf91853=_0x267554['y']*_0x4958b4['shape'][_0x24914d(0x22a)],_0x416cc3=_0x267554['z']*_0x4958b4[_0x24914d(0x1ab)][_0x24914d(0x30f)],_0x37b35f=Math[_0x24914d(0x3e9)](_0x4958b4['shape'][_0x24914d(0x1cc)],_0x5b87f6[_0x24914d(0x1f2)][_0x24914d(0x25f)]-_0x266e3f),_0x9f2d73=Math[_0x24914d(0x3e9)](_0x4958b4[_0x24914d(0x1ab)][_0x24914d(0x22a)],_0x5b87f6[_0x24914d(0x42c)][_0x24914d(0x25f)]-_0xf91853),_0x59db4d=Math['min'](_0x4958b4[_0x24914d(0x1ab)][_0x24914d(0x30f)],_0x5b87f6[_0x24914d(0x46c)][_0x24914d(0x25f)]-_0x416cc3),_0x193bae=_0x4958b4[_0x24914d(0x1ab)][_0x24914d(0x3ca)],_0x4d27e4=Math[_0x24914d(0x1ac)](0x0,_0x266e3f-_0x193bae),_0x5ab8f3=Math[_0x24914d(0x1ac)](0x0,_0xf91853-_0x193bae),_0x82b3fd=Math[_0x24914d(0x1ac)](0x0,_0x416cc3-_0x193bae),_0x262262=Math[_0x24914d(0x3e9)](_0x5b87f6[_0x24914d(0x1f2)][_0x24914d(0x25f)],_0x266e3f+_0x37b35f+_0x193bae),_0x327d64=Math['min'](_0x5b87f6[_0x24914d(0x42c)][_0x24914d(0x25f)],_0xf91853+_0x9f2d73+_0x193bae),_0x294ef0=Math['min'](_0x5b87f6[_0x24914d(0x46c)]['count'],_0x416cc3+_0x59db4d+_0x193bae),_0xcb9ed9=_0x4958b4[_0x24914d(0x1ab)][_0x24914d(0x1cc)]+_0x193bae*0x2,_0x182ed3=_0x4958b4[_0x24914d(0x1ab)][_0x24914d(0x22a)]+_0x193bae*0x2,_0x52abea=_0x4958b4['shape'][_0x24914d(0x30f)]+_0x193bae*0x2;return{'key':_0x1ba404(_0x267554),'coordinate':_0x267554,'coreRange':{'xStart':_0x266e3f,'xCount':_0x37b35f,'levelStart':_0xf91853,'levelCount':_0x9f2d73,'sourceYStart':_0x416cc3,'sourceYCount':_0x59db4d},'readRange':{'xStart':_0x4d27e4,'xCount':_0x262262-_0x4d27e4,'levelStart':_0x5ab8f3,'levelCount':_0x327d64-_0x5ab8f3,'sourceYStart':_0x82b3fd,'sourceYCount':_0x294ef0-_0x82b3fd},'physicalWidth':_0xcb9ed9,'physicalHeight':_0x182ed3,'physicalDepth':_0x52abea,'byteLength':_0xcb9ed9*_0x182ed3*_0x52abea*Float32Array['BYTES_PER_ELEMENT']};},_0x151690=(_0x402bb5,_0x18e05f)=>{const _0x5bbafa=_0x3a9ea2;let _0x22f1db=[];for(let _0x54c8=0x0;_0x54c8<_0x18e05f['countZ'];_0x54c8+=0x1)for(let _0x585d4e=0x0;_0x585d4e<_0x18e05f[_0x5bbafa(0x17d)];_0x585d4e+=0x1)for(let _0x5eb563=0x0;_0x5eb563<_0x18e05f[_0x5bbafa(0x204)];_0x5eb563+=0x1)_0x22f1db['push'](_0xedbd6d(_0x402bb5,_0x18e05f,{'x':_0x5eb563,'y':_0x585d4e,'z':_0x54c8}));return _0x22f1db;},_0x15d079=1e-8,_0x308fa2=()=>new Float32Array(0x10),_0x9383df=(_0x5f36ac,_0x1c5e09)=>_0x5f36ac[0x0]*_0x1c5e09[0x0]+_0x5f36ac[0x1]*_0x1c5e09[0x1]+_0x5f36ac[0x2]*_0x1c5e09[0x2],_0x49693e=(_0x286302,_0x518514)=>[_0x286302[0x0]-_0x518514[0x0],_0x286302[0x1]-_0x518514[0x1],_0x286302[0x2]-_0x518514[0x2]],_0x16c055=(_0x3a3796,_0x1a1b48)=>[_0x3a3796[0x1]*_0x1a1b48[0x2]-_0x3a3796[0x2]*_0x1a1b48[0x1],_0x3a3796[0x2]*_0x1a1b48[0x0]-_0x3a3796[0x0]*_0x1a1b48[0x2],_0x3a3796[0x0]*_0x1a1b48[0x1]-_0x3a3796[0x1]*_0x1a1b48[0x0]],_0x2b891f=_0x2570d3=>{const _0x4b49f8=_0x3a9ea2;let _0xc11088=Math['hypot'](_0x2570d3[0x0],_0x2570d3[0x1],_0x2570d3[0x2]);if(_0xc11088<=_0x15d079)throw Error(_0x4b49f8(0x407));return[_0x2570d3[0x0]/_0xc11088,_0x2570d3[0x1]/_0xc11088,_0x2570d3[0x2]/_0xc11088];},_0x343dc5=()=>{let _0x232ac8=_0x308fa2();return _0x232ac8[0x0]=0x1,_0x232ac8[0x5]=0x1,_0x232ac8[0xa]=0x1,_0x232ac8[0xf]=0x1,_0x232ac8;},_0x2f82db=(_0x2a00e4,_0x9c41d9)=>{let _0x68c739=_0x308fa2();for(let _0x5693a1=0x0;_0x5693a1<0x4;_0x5693a1+=0x1)for(let _0x46c1f2=0x0;_0x46c1f2<0x4;_0x46c1f2+=0x1){let _0x352589=0x0;for(let _0x819c3f=0x0;_0x819c3f<0x4;_0x819c3f+=0x1)_0x352589+=_0x2a00e4[_0x819c3f*0x4+_0x46c1f2]*_0x9c41d9[_0x5693a1*0x4+_0x819c3f];_0x68c739[_0x5693a1*0x4+_0x46c1f2]=_0x352589;}return _0x68c739;},_0x50b8ae=_0x1f272e=>{const _0x58f555=_0x3a9ea2;let _0x3704aa=Array[_0x58f555(0x18d)]({'length':0x4},(_0x5d71d1,_0x468f25)=>{let _0x49a796=new Float64Array(0x8);for(let _0x415350=0x0;_0x415350<0x4;_0x415350+=0x1)_0x49a796[_0x415350]=_0x1f272e[_0x415350*0x4+_0x468f25];return _0x49a796[_0x468f25+0x4]=0x1,_0x49a796;});for(let _0x2dacdc=0x0;_0x2dacdc<0x4;_0x2dacdc+=0x1){let _0x309770=_0x2dacdc;for(let _0x2b6d85=_0x2dacdc+0x1;_0x2b6d85<0x4;_0x2b6d85+=0x1)Math[_0x58f555(0x1ae)](_0x3704aa[_0x2b6d85][_0x2dacdc])>Math[_0x58f555(0x1ae)](_0x3704aa[_0x309770][_0x2dacdc])&&(_0x309770=_0x2b6d85);if(Math[_0x58f555(0x1ae)](_0x3704aa[_0x309770][_0x2dacdc])<=_0x15d079)throw Error(_0x58f555(0x2bc));_0x309770!==_0x2dacdc&&([_0x3704aa[_0x2dacdc],_0x3704aa[_0x309770]]=[_0x3704aa[_0x309770],_0x3704aa[_0x2dacdc]]);let _0x3b034e=_0x3704aa[_0x2dacdc][_0x2dacdc];for(let _0x188ae1=0x0;_0x188ae1<0x8;_0x188ae1+=0x1)_0x3704aa[_0x2dacdc][_0x188ae1]/=_0x3b034e;for(let _0x336a97=0x0;_0x336a97<0x4;_0x336a97+=0x1){if(_0x336a97===_0x2dacdc)continue;let _0x844a65=_0x3704aa[_0x336a97][_0x2dacdc];for(let _0x3045de=0x0;_0x3045de<0x8;_0x3045de+=0x1)_0x3704aa[_0x336a97][_0x3045de]-=_0x844a65*_0x3704aa[_0x2dacdc][_0x3045de];}}let _0x1e3569=_0x308fa2();for(let _0x69379b=0x0;_0x69379b<0x4;_0x69379b+=0x1)for(let _0xca8dc5=0x0;_0xca8dc5<0x4;_0xca8dc5+=0x1)_0x1e3569[_0xca8dc5*0x4+_0x69379b]=_0x3704aa[_0x69379b][_0xca8dc5+0x4];return _0x1e3569;},_0x2abd14=(_0x4b0da4,_0x4074c5,_0xc1181b)=>{let _0x2a8e7a=_0x2b891f(_0x49693e(_0x4b0da4,_0x4074c5)),_0x3cec99=_0x2b891f(_0x16c055(_0xc1181b,_0x2a8e7a)),_0x432885=_0x16c055(_0x2a8e7a,_0x3cec99),_0x266556=_0x343dc5();return _0x266556[0x0]=_0x3cec99[0x0],_0x266556[0x1]=_0x432885[0x0],_0x266556[0x2]=_0x2a8e7a[0x0],_0x266556[0x4]=_0x3cec99[0x1],_0x266556[0x5]=_0x432885[0x1],_0x266556[0x6]=_0x2a8e7a[0x1],_0x266556[0x8]=_0x3cec99[0x2],_0x266556[0x9]=_0x432885[0x2],_0x266556[0xa]=_0x2a8e7a[0x2],_0x266556[0xc]=-_0x9383df(_0x3cec99,_0x4b0da4),_0x266556[0xd]=-_0x9383df(_0x432885,_0x4b0da4),_0x266556[0xe]=-_0x9383df(_0x2a8e7a,_0x4b0da4),_0x266556;},_0x2a955b=(_0x29d6ba,_0x329011,_0xd66fa3,_0x2111e0)=>{const _0x2183c9=_0x3a9ea2;if(!(_0x29d6ba>0x0&&_0x29d6ba<Math['PI']))throw Error(_0x2183c9(0x187));if(!(_0x329011>0x0))throw Error(_0x2183c9(0x482));if(!(_0xd66fa3>0x0&&_0x2111e0>_0xd66fa3))throw Error(_0x2183c9(0x1a7));let _0x21cca2=0x1/Math[_0x2183c9(0x206)](_0x29d6ba/0x2),_0x11bf5d=_0x308fa2();return _0x11bf5d[0x0]=_0x21cca2/_0x329011,_0x11bf5d[0x5]=_0x21cca2,_0x11bf5d[0xa]=_0x2111e0/(_0xd66fa3-_0x2111e0),_0x11bf5d[0xb]=-0x1,_0x11bf5d[0xe]=_0xd66fa3*_0x2111e0/(_0xd66fa3-_0x2111e0),_0x11bf5d;},_0x1e6bd5=(_0x1b7270,_0x4ad5dc,_0x316e62,_0x19e0dd)=>{const _0x493623=_0x3a9ea2;if(!(_0x1b7270>0x0&&_0x4ad5dc>0x0))throw Error(_0x493623(0x3ef));if(!(_0x316e62>=0x0&&_0x19e0dd>_0x316e62))throw Error(_0x493623(0x41a));let _0x2234e4=_0x1b7270*_0x4ad5dc,_0x2c70be=_0x343dc5();return _0x2c70be[0x0]=0x2/_0x2234e4,_0x2c70be[0x5]=0x2/_0x1b7270,_0x2c70be[0xa]=0x1/(_0x316e62-_0x19e0dd),_0x2c70be[0xe]=_0x316e62/(_0x316e62-_0x19e0dd),_0x2c70be;},_0x1ec486=(_0x3fa3f3,_0x51d145,_0x4cd0cc)=>{let _0x1b8c2d=_0x343dc5();return _0x1b8c2d[0x0]=_0x3fa3f3,_0x1b8c2d[0x5]=_0x51d145,_0x1b8c2d[0xa]=_0x4cd0cc,_0x1b8c2d;},_0x7388f0=(_0x1436aa,_0x530354)=>{const _0xf99861=_0x3a9ea2;if(!(_0x530354>0x0)||!Number[_0xf99861(0x2ba)](_0x530354))throw Error(_0xf99861(0x435));let _0x238a3d=_0x1ec486(0x1,_0x530354,0x1);return _0x1436aa?_0x2f82db(_0x1436aa,_0x238a3d):_0x238a3d;},_0x514712=(_0x3b4ac2,_0x1dace8,_0x14d394=0x1)=>[_0x3b4ac2[0x0]*_0x1dace8[0x0]+_0x3b4ac2[0x4]*_0x1dace8[0x1]+_0x3b4ac2[0x8]*_0x1dace8[0x2]+_0x3b4ac2[0xc]*_0x14d394,_0x3b4ac2[0x1]*_0x1dace8[0x0]+_0x3b4ac2[0x5]*_0x1dace8[0x1]+_0x3b4ac2[0x9]*_0x1dace8[0x2]+_0x3b4ac2[0xd]*_0x14d394,_0x3b4ac2[0x2]*_0x1dace8[0x0]+_0x3b4ac2[0x6]*_0x1dace8[0x1]+_0x3b4ac2[0xa]*_0x1dace8[0x2]+_0x3b4ac2[0xe]*_0x14d394,_0x3b4ac2[0x3]*_0x1dace8[0x0]+_0x3b4ac2[0x7]*_0x1dace8[0x1]+_0x3b4ac2[0xb]*_0x1dace8[0x2]+_0x3b4ac2[0xf]*_0x14d394],_0x296522=(_0x27687b,_0x520e23,_0x5d037e,_0x156e98)=>{let _0x487996=_0x514712(_0x27687b,_0x520e23);if(_0x487996[0x3]<=_0x15d079)return null;let _0x2c06e2=0x1/_0x487996[0x3];return[(_0x487996[0x0]*_0x2c06e2*0.5+0.5)*_0x5d037e,(0.5-_0x487996[0x1]*_0x2c06e2*0.5)*_0x156e98,_0x487996[0x2]*_0x2c06e2];},_0x497e11=[0x0,0x1,0x2],_0x12d306=[0x0,0x0,0x0],_0x2f04ea=[0x0,0x1,0x0],_0x1e7e7a={'type':_0x3a9ea2(0x288),'fovYDegrees':0x2d,'near':0.01,'far':0x2710},_0x4de34b=Math['PI']/0xb4,_0x2d12f9=_0x33e1e5=>[_0x33e1e5[0x0],_0x33e1e5[0x1],_0x33e1e5[0x2]],_0x1c6925=_0x5e0474=>(_0x5e0474[_0x3a9ea2(0x2f5)],{..._0x5e0474}),_0x5404c6=_0x3cff41=>({'position':_0x2d12f9(_0x3cff41[_0x3a9ea2(0x1d2)]),'target':_0x2d12f9(_0x3cff41['target']),'up':_0x2d12f9(_0x3cff41['up']),'projection':_0x1c6925(_0x3cff41[_0x3a9ea2(0x1a4)])}),_0x4a163a=(_0x33147a,_0x5c86b3)=>[_0x33147a[0x0]-_0x5c86b3[0x0],_0x33147a[0x1]-_0x5c86b3[0x1],_0x33147a[0x2]-_0x5c86b3[0x2]],_0x1d5c14=(_0x4cd8a4,_0x269b22)=>[_0x4cd8a4[0x0]+_0x269b22[0x0],_0x4cd8a4[0x1]+_0x269b22[0x1],_0x4cd8a4[0x2]+_0x269b22[0x2]],_0x5d22a8=(_0x270c7c,_0x51bcde)=>[_0x270c7c[0x0]*_0x51bcde,_0x270c7c[0x1]*_0x51bcde,_0x270c7c[0x2]*_0x51bcde],_0x5be4d0=(_0x1fedef,_0x35e1e4)=>[_0x1fedef[0x1]*_0x35e1e4[0x2]-_0x1fedef[0x2]*_0x35e1e4[0x1],_0x1fedef[0x2]*_0x35e1e4[0x0]-_0x1fedef[0x0]*_0x35e1e4[0x2],_0x1fedef[0x0]*_0x35e1e4[0x1]-_0x1fedef[0x1]*_0x35e1e4[0x0]],_0x40ac16=_0x108108=>{let _0x52c43e=Math['hypot'](_0x108108[0x0],_0x108108[0x1],_0x108108[0x2]);return _0x52c43e===0x0?[0x0,0x0,0x0]:_0x5d22a8(_0x108108,0x1/_0x52c43e);},_0x5f0634=(_0x51a0ce,_0x15b303,_0x162b24)=>Math['min'](_0x162b24,Math['max'](_0x15b303,_0x51a0ce)),_0x399f6c=_0x51087e=>{const _0x4bd02d=_0x3a9ea2;if(!(_0x51087e[_0x4bd02d(0x17b)]>=0x0&&_0x51087e[_0x4bd02d(0x483)]>_0x51087e[_0x4bd02d(0x17b)]))throw Error(_0x4bd02d(0x41a));if(_0x51087e[_0x4bd02d(0x2f5)]===_0x4bd02d(0x288)&&!(_0x51087e['near']>0x0&&_0x51087e[_0x4bd02d(0x20e)]>0x0&&_0x51087e[_0x4bd02d(0x20e)]<0xb4))throw Error('透视相机参数无效。');if(_0x51087e[_0x4bd02d(0x2f5)]===_0x4bd02d(0x216)&&!(_0x51087e[_0x4bd02d(0x22a)]>0x0))throw Error(_0x4bd02d(0x2d9));},_0x22ac65=_0x38b975=>{const _0x1454a6=_0x3a9ea2;let _0x5ee272={'position':_0x38b975[_0x1454a6(0x465)]?.['position']?_0x2d12f9(_0x38b975[_0x1454a6(0x465)][_0x1454a6(0x1d2)]):_0x2d12f9(_0x497e11),'target':_0x38b975['state']?.[_0x1454a6(0x193)]?_0x2d12f9(_0x38b975[_0x1454a6(0x465)][_0x1454a6(0x193)]):_0x2d12f9(_0x12d306),'up':_0x38b975['state']?.['up']?_0x2d12f9(_0x38b975[_0x1454a6(0x465)]['up']):_0x2d12f9(_0x2f04ea),'projection':_0x38b975[_0x1454a6(0x465)]?.[_0x1454a6(0x1a4)]?_0x1c6925(_0x38b975[_0x1454a6(0x465)][_0x1454a6(0x1a4)]):_0x1c6925(_0x1e7e7a)};return _0x399f6c(_0x5ee272[_0x1454a6(0x1a4)]),_0x5ee272;};var _0xbc1613=class{['cameraState'];[_0x3a9ea2(0x343)];[_0x3a9ea2(0x1f6)];[_0x3a9ea2(0x396)];[_0x3a9ea2(0x233)];['minimumDistance'];[_0x3a9ea2(0x305)];['minimumPitch'];[_0x3a9ea2(0x3f6)];constructor(_0x58e7c1={}){const _0x44e88c=_0x3a9ea2;if(this[_0x44e88c(0x1f8)]=_0x22ac65(_0x58e7c1),this[_0x44e88c(0x343)]=_0x58e7c1[_0x44e88c(0x343)]??0x1,this[_0x44e88c(0x1f6)]=_0x58e7c1['rotateSpeed']??0.005,this[_0x44e88c(0x396)]=_0x58e7c1[_0x44e88c(0x396)]??0x1,this[_0x44e88c(0x233)]=_0x58e7c1[_0x44e88c(0x233)]??0.0015,this[_0x44e88c(0x40c)]=_0x58e7c1[_0x44e88c(0x40c)]??0.001,this[_0x44e88c(0x305)]=_0x58e7c1[_0x44e88c(0x305)]??0x1/0x0,this[_0x44e88c(0x331)]=(_0x58e7c1[_0x44e88c(0x408)]??-0x59)*_0x4de34b,this['maximumPitch']=(_0x58e7c1['maximumPitchDegrees']??0x59)*_0x4de34b,!(this['aspect']>0x0))throw Error(_0x44e88c(0x482));}get[_0x3a9ea2(0x465)](){const _0x3120bc=_0x3a9ea2;return _0x5404c6(this[_0x3120bc(0x1f8)]);}get[_0x3a9ea2(0x247)](){const _0x3c3e3a=_0x3a9ea2;let _0x1ba551=_0x2abd14(this[_0x3c3e3a(0x1f8)][_0x3c3e3a(0x1d2)],this['cameraState']['target'],this[_0x3c3e3a(0x1f8)]['up']),_0x59b9ba=this[_0x3c3e3a(0x19c)](),_0x4abd08=_0x2f82db(_0x59b9ba,_0x1ba551);return{'view':_0x1ba551,'projection':_0x59b9ba,'viewProjection':_0x4abd08,'inverseViewProjection':_0x50b8ae(_0x4abd08)};}[_0x3a9ea2(0x1ec)](_0x50349d){const _0x36338b=_0x3a9ea2;_0x399f6c(_0x50349d[_0x36338b(0x1a4)]),this[_0x36338b(0x1f8)]=_0x5404c6(_0x50349d);}[_0x3a9ea2(0x2aa)](_0x3080d2){const _0x4d3e1e=_0x3a9ea2;if(!(_0x3080d2>0x0)||!Number['isFinite'](_0x3080d2))throw Error('相机宽高比必须是大于\x200\x20的有限数。');this[_0x4d3e1e(0x343)]=_0x3080d2;}[_0x3a9ea2(0x260)](_0x48be6d){const _0x5679ff=_0x3a9ea2;if(_0x48be6d===this[_0x5679ff(0x1f8)][_0x5679ff(0x1a4)]['type'])return;let _0x385779=Math['hypot'](..._0x4a163a(this['cameraState'][_0x5679ff(0x1d2)],this[_0x5679ff(0x1f8)]['target']));if(_0x48be6d===_0x5679ff(0x216)){let _0x287078=this['cameraState'][_0x5679ff(0x1a4)],_0x3a0145=_0x287078[_0x5679ff(0x2f5)]===_0x5679ff(0x288)?_0x287078[_0x5679ff(0x20e)]*_0x4de34b:0x2d*_0x4de34b;this['cameraState'][_0x5679ff(0x1a4)]={'type':_0x48be6d,'height':0x2*_0x385779*Math[_0x5679ff(0x206)](_0x3a0145/0x2),'near':_0x287078[_0x5679ff(0x17b)],'far':_0x287078[_0x5679ff(0x483)]};return;}let _0x2f4f41=this[_0x5679ff(0x1f8)][_0x5679ff(0x1a4)],_0x2ac0bc=_0x2f4f41[_0x5679ff(0x2f5)]===_0x5679ff(0x216)?_0x2f4f41[_0x5679ff(0x22a)]/(0x2*Math[_0x5679ff(0x206)](0x2d*_0x4de34b/0x2)):_0x385779,_0x97ee17=_0x40ac16(_0x4a163a(this[_0x5679ff(0x1f8)][_0x5679ff(0x1d2)],this[_0x5679ff(0x1f8)][_0x5679ff(0x193)]));this['cameraState'][_0x5679ff(0x1d2)]=_0x1d5c14(this[_0x5679ff(0x1f8)][_0x5679ff(0x193)],_0x5d22a8(_0x97ee17,_0x2ac0bc)),this['cameraState']['projection']={'type':_0x48be6d,'fovYDegrees':0x2d,'near':_0x2f4f41[_0x5679ff(0x17b)],'far':_0x2f4f41[_0x5679ff(0x483)]};}[_0x3a9ea2(0x2e3)](_0x5509f6,_0x46d83b){const _0x5e9c51=_0x3a9ea2;let _0x1ac89c=_0x4a163a(this[_0x5e9c51(0x1f8)][_0x5e9c51(0x1d2)],this[_0x5e9c51(0x1f8)][_0x5e9c51(0x193)]),_0x38506b=Math[_0x5e9c51(0x1d3)](..._0x1ac89c);if(_0x38506b===0x0)return;let _0x339b27=Math[_0x5e9c51(0x417)](_0x1ac89c[0x0],_0x1ac89c[0x2])-_0x5509f6*this[_0x5e9c51(0x1f6)],_0x2ec3b8=_0x5f0634(Math[_0x5e9c51(0x241)](_0x1ac89c[0x1]/_0x38506b)+_0x46d83b*this['rotateSpeed'],this[_0x5e9c51(0x331)],this[_0x5e9c51(0x3f6)]),_0x15b18e=Math['cos'](_0x2ec3b8)*_0x38506b;this['cameraState'][_0x5e9c51(0x1d2)]=_0x1d5c14(this['cameraState']['target'],[Math[_0x5e9c51(0x476)](_0x339b27)*_0x15b18e,Math[_0x5e9c51(0x476)](_0x2ec3b8)*_0x38506b,Math[_0x5e9c51(0x277)](_0x339b27)*_0x15b18e]);}[_0x3a9ea2(0x25c)](_0xf097a0,_0x56a8e7,_0x287bb6){const _0x25ccc3=_0x3a9ea2;if(!(_0x287bb6>0x0))return;let _0x906456=_0x40ac16(_0x4a163a(this['cameraState'][_0x25ccc3(0x193)],this['cameraState'][_0x25ccc3(0x1d2)])),_0x59226=_0x40ac16(_0x5be4d0(_0x906456,this[_0x25ccc3(0x1f8)]['up'])),_0x367252=_0x40ac16(_0x5be4d0(_0x59226,_0x906456)),_0x520cdb=Math['hypot'](..._0x4a163a(this[_0x25ccc3(0x1f8)][_0x25ccc3(0x1d2)],this[_0x25ccc3(0x1f8)][_0x25ccc3(0x193)])),_0x370564=(this[_0x25ccc3(0x1f8)][_0x25ccc3(0x1a4)][_0x25ccc3(0x2f5)]===_0x25ccc3(0x216)?this[_0x25ccc3(0x1f8)]['projection'][_0x25ccc3(0x22a)]:0x2*_0x520cdb*Math['tan'](this['cameraState'][_0x25ccc3(0x1a4)]['fovYDegrees']*_0x4de34b/0x2))/_0x287bb6*this[_0x25ccc3(0x396)],_0x5e9045=_0x1d5c14(_0x5d22a8(_0x59226,-_0xf097a0*_0x370564),_0x5d22a8(_0x367252,_0x56a8e7*_0x370564));this[_0x25ccc3(0x1f8)][_0x25ccc3(0x1d2)]=_0x1d5c14(this[_0x25ccc3(0x1f8)]['position'],_0x5e9045),this['cameraState'][_0x25ccc3(0x193)]=_0x1d5c14(this[_0x25ccc3(0x1f8)][_0x25ccc3(0x193)],_0x5e9045);}[_0x3a9ea2(0x422)](_0x399ee9){const _0x5512e6=_0x3a9ea2;let _0x37ad67=Math[_0x5512e6(0x30b)](_0x399ee9*this[_0x5512e6(0x233)]);if(this[_0x5512e6(0x1f8)]['projection']['type']===_0x5512e6(0x216)){this[_0x5512e6(0x1f8)][_0x5512e6(0x1a4)]={...this[_0x5512e6(0x1f8)][_0x5512e6(0x1a4)],'height':Math['max'](this[_0x5512e6(0x40c)],this['cameraState'][_0x5512e6(0x1a4)][_0x5512e6(0x22a)]*_0x37ad67)};return;}let _0x4da2e1=_0x4a163a(this[_0x5512e6(0x1f8)]['position'],this['cameraState'][_0x5512e6(0x193)]),_0xa9d32c=_0x5f0634(Math[_0x5512e6(0x1d3)](..._0x4da2e1)*_0x37ad67,this[_0x5512e6(0x40c)],this[_0x5512e6(0x305)]);this[_0x5512e6(0x1f8)]['position']=_0x1d5c14(this[_0x5512e6(0x1f8)]['target'],_0x5d22a8(_0x40ac16(_0x4da2e1),_0xa9d32c));}[_0x3a9ea2(0x19c)](){const _0x3eb0f9=_0x3a9ea2;let _0x2c306a=this[_0x3eb0f9(0x1f8)][_0x3eb0f9(0x1a4)];return _0x2c306a['type']==='perspective'?_0x2a955b(_0x2c306a['fovYDegrees']*_0x4de34b,this[_0x3eb0f9(0x343)],_0x2c306a['near'],_0x2c306a[_0x3eb0f9(0x483)]):_0x1e6bd5(_0x2c306a[_0x3eb0f9(0x22a)],this[_0x3eb0f9(0x343)],_0x2c306a[_0x3eb0f9(0x17b)],_0x2c306a['far']);}};let _0x2e519d=0x615299,_0x1d54f7=_0x2e519d*(0x1-0x1/298.257223563),_0x560411=0x1-_0x1d54f7**0x2/_0x2e519d**0x2,_0xb0b448=_0x364ff6=>_0x364ff6*Math['PI']/0xb4,_0x118267=(_0x374d1d,_0x384af2,_0x2d6e4c)=>{const _0x1ace52=_0x3a9ea2;let _0x1ef485=Math[_0x1ace52(0x476)](_0x384af2),_0x1d227b=Math[_0x1ace52(0x277)](_0x384af2),_0x34cbf5=Math['sin'](_0x374d1d),_0x34fb99=Math['cos'](_0x374d1d),_0x37cb71=_0x2e519d/Math[_0x1ace52(0x183)](0x1-_0x560411*_0x1ef485*_0x1ef485);return[(_0x37cb71+_0x2d6e4c)*_0x1d227b*_0x34fb99,(_0x37cb71+_0x2d6e4c)*_0x1d227b*_0x34cbf5,(_0x37cb71*(0x1-_0x560411)+_0x2d6e4c)*_0x1ef485];},_0xae363a=(_0x1476ee,_0x39aa1d,_0x117f75)=>{const _0x3670aa=_0x3a9ea2;if(!Number[_0x3670aa(0x2ba)](_0x1476ee)||!Number[_0x3670aa(0x2ba)](_0x39aa1d)||_0x1476ee===_0x39aa1d)throw Error(_0x117f75+'\x20axis\x20must\x20contain\x20two\x20different\x20finite\x20endpoints.\x20'+_0x117f75+_0x3670aa(0x40e));},_0x46fb2a=(_0x2888c1,_0xac3b0d=0x1)=>{const _0x11c071=_0x3a9ea2;let _0x9cfbf9=_0xb0b448(_0x2888c1[_0x11c071(0x1f2)][_0x11c071(0x239)]),_0x2b0016=_0xb0b448(_0x2888c1[_0x11c071(0x1f2)][_0x11c071(0x1e7)]),_0x1b5815=_0xb0b448(_0x2888c1['zAxis'][_0x11c071(0x239)]),_0x328d87=_0xb0b448(_0x2888c1[_0x11c071(0x46c)][_0x11c071(0x1e7)]);_0xae363a(_0x9cfbf9,_0x2b0016,_0x11c071(0x21b)),_0xae363a(_0x1b5815,_0x328d87,'Latitude\x20/\x20纬度');let _0x13bbbd=_0x2888c1[_0x11c071(0x42c)]['start'],_0x20198a=_0x2888c1[_0x11c071(0x42c)]['end'];if(_0xae363a(_0x13bbbd,_0x20198a,'Height\x20/\x20高度'),!(_0xac3b0d>0x0)||!Number[_0x11c071(0x2ba)](_0xac3b0d))throw Error(_0x11c071(0x2d4));let _0x11d4ef=_0x13bbbd+(_0x20198a-_0x13bbbd)*_0xac3b0d,_0x11bad4=(_0x9cfbf9+_0x2b0016)/0x2,_0x38739d=(_0x1b5815+_0x328d87)/0x2,_0x42d512=_0x118267(_0x11bad4,_0x38739d,0x0),_0x3d47e5=Math[_0x11c071(0x1ae)](_0x2b0016-_0x9cfbf9)*_0x2e519d*Math[_0x11c071(0x1ac)](0.01,Math[_0x11c071(0x277)](_0x38739d)),_0x337244=Math[_0x11c071(0x1ae)](_0x328d87-_0x1b5815)*_0x2e519d,_0x1f21fe=Math[_0x11c071(0x1ac)](_0x3d47e5,_0x337244);if(!(_0x1f21fe>0x0)||!Number[_0x11c071(0x2ba)](_0x1f21fe))throw Error(_0x11c071(0x410));let _0x2b8300=[0x1/0x0,0x1/0x0,0x1/0x0],_0x212aef=[-0x1/0x0,-0x1/0x0,-0x1/0x0];for(let _0x262994=0x0;_0x262994<=0x8;_0x262994+=0x1){let _0x443493=_0x1b5815+(_0x328d87-_0x1b5815)*_0x262994/0x8;for(let _0x16c995=0x0;_0x16c995<=0x8;_0x16c995+=0x1){let _0x33b166=_0x9cfbf9+(_0x2b0016-_0x9cfbf9)*_0x16c995/0x8;for(let _0x57f3ba of[_0x13bbbd,_0x11d4ef]){let _0x3cbe92=_0x118267(_0x33b166,_0x443493,_0x57f3ba);for(let _0x19941b=0x0;_0x19941b<0x3;_0x19941b+=0x1){let _0x40c48f=(_0x3cbe92[_0x19941b]-_0x42d512[_0x19941b])/_0x1f21fe;_0x2b8300[_0x19941b]=Math['min'](_0x2b8300[_0x19941b],_0x40c48f),_0x212aef[_0x19941b]=Math['max'](_0x212aef[_0x19941b],_0x40c48f);}}}}let _0x34e4a7=_0x212aef[_0x11c071(0x42f)]((_0x3c4317,_0xb07ecd)=>_0x3c4317-_0x2b8300[_0xb07ecd]);if(_0x34e4a7[_0x11c071(0x3fd)](_0x258101=>!(_0x258101>0x0)||!Number[_0x11c071(0x2ba)](_0x258101)))throw Error('Geographic\x20volume\x20proxy\x20bounds\x20are\x20invalid.\x20地理体积代理范围无效。');return{'centerEcef':_0x42d512,'normalizationMeters':_0x1f21fe,'proxyModelMatrix':[_0x34e4a7[0x0],0x0,0x0,0x0,0x0,_0x34e4a7[0x1],0x0,0x0,0x0,0x0,_0x34e4a7[0x2],0x0,_0x2b8300[0x0],_0x2b8300[0x1],_0x2b8300[0x2],0x1],'transform':{'mode':_0x11c071(0x2ac),'centerEcefScaled':[_0x42d512[0x0]/_0x1f21fe,_0x42d512[0x1]/_0x1f21fe,_0x42d512[0x2]/_0x1f21fe],'semiMajorAxisScaled':_0x2e519d/_0x1f21fe,'semiMinorAxisScaled':_0x1d54f7/_0x1f21fe,'longitudeRadians':[_0x9cfbf9,_0x2b0016],'latitudeRadians':[_0x1b5815,_0x328d87],'heightScaled':[_0x13bbbd/_0x1f21fe,_0x11d4ef/_0x1f21fe]}};},_0x195d5e=(_0x37b158,_0x41e213)=>[(_0x37b158[0x0]-_0x41e213[_0x3a9ea2(0x29a)][0x0])/_0x41e213['normalizationMeters'],(_0x37b158[0x1]-_0x41e213[_0x3a9ea2(0x29a)][0x1])/_0x41e213[_0x3a9ea2(0x391)],(_0x37b158[0x2]-_0x41e213[_0x3a9ea2(0x29a)][0x2])/_0x41e213['normalizationMeters']],_0x44bf1f=(_0x3aa2b3,_0x2c56eb)=>Number[_0x3a9ea2(0x2c9)](_0x3aa2b3)||_0x2c56eb!==void 0x0&&_0x3aa2b3===_0x2c56eb,_0x3612fd=(_0x10c75b,_0x863c89)=>_0x10c75b[_0x3a9ea2(0x239)]===_0x10c75b['end']?0x0:(_0x863c89-_0x10c75b[_0x3a9ea2(0x239)])/(_0x10c75b[_0x3a9ea2(0x1e7)]-_0x10c75b[_0x3a9ea2(0x239)]),_0xbb5112=_0xfb3ce9=>{const _0x31cb53=_0x3a9ea2;if(!_0xfb3ce9['id'])throw Error(_0x31cb53(0x210));if(_0xfb3ce9['path'][_0x31cb53(0x2e8)]<0x4||_0xfb3ce9[_0x31cb53(0x284)][_0x31cb53(0x2e8)]%0x2!=0x0)throw Error(_0x31cb53(0x1d1)+_0xfb3ce9['id']+_0x31cb53(0x3cb));if(_0xfb3ce9[_0x31cb53(0x23b)][_0x31cb53(0x2e8)]<0x2)throw Error(_0x31cb53(0x1d1)+_0xfb3ce9['id']+'\x20至少需要两个高度层。');let _0x1c5cb2=_0xfb3ce9[_0x31cb53(0x284)][_0x31cb53(0x2e8)]/0x2;if(_0xfb3ce9['values'][_0x31cb53(0x2e8)]!==_0x1c5cb2*_0xfb3ce9[_0x31cb53(0x23b)][_0x31cb53(0x2e8)])throw Error(_0x31cb53(0x1d1)+_0xfb3ce9['id']+_0x31cb53(0x33e));if(_0xfb3ce9[_0x31cb53(0x23e)]!==void 0x0&&(!(_0xfb3ce9['opacity']>=0x0&&_0xfb3ce9['opacity']<=0x1)||!Number[_0x31cb53(0x2ba)](_0xfb3ce9[_0x31cb53(0x23e)])))throw Error('路线剖面\x20'+_0xfb3ce9['id']+_0x31cb53(0x444));for(let _0x4d8904 of _0xfb3ce9[_0x31cb53(0x284)])if(!Number['isFinite'](_0x4d8904))throw Error('路线剖面\x20'+_0xfb3ce9['id']+_0x31cb53(0x32f));for(let _0x2af138 of _0xfb3ce9[_0x31cb53(0x23b)])if(!Number['isFinite'](_0x2af138))throw Error('路线剖面\x20'+_0xfb3ce9['id']+_0x31cb53(0x397));return _0x1c5cb2;},_0x3c3d68=(_0x11a6ba,_0x56cfc7,_0x425a29)=>{const _0x1af37c=_0x3a9ea2;let _0x147678=new Float32Array(_0x56cfc7*_0x11a6ba[_0x1af37c(0x23b)]['length']*0x3);for(let _0x55a4a3=0x0;_0x55a4a3<_0x11a6ba[_0x1af37c(0x23b)][_0x1af37c(0x2e8)];_0x55a4a3+=0x1)for(let _0x44a1b8=0x0;_0x44a1b8<_0x56cfc7;_0x44a1b8+=0x1){let _0x143a14=(_0x55a4a3*_0x56cfc7+_0x44a1b8)*0x3;_0x147678[_0x143a14]=_0x3612fd(_0x425a29[_0x1af37c(0x1f2)],_0x11a6ba[_0x1af37c(0x284)][_0x44a1b8*0x2]),_0x147678[_0x143a14+0x1]=_0x3612fd(_0x425a29[_0x1af37c(0x42c)],_0x11a6ba[_0x1af37c(0x23b)][_0x55a4a3]),_0x147678[_0x143a14+0x2]=_0x3612fd(_0x425a29[_0x1af37c(0x46c)],_0x11a6ba[_0x1af37c(0x284)][_0x44a1b8*0x2+0x1]);}return _0x147678;},_0x2dbded=_0x3b5387=>{const _0x4452b2=_0x3a9ea2;let _0x4f80af=new Float32Array(_0x3b5387[_0x4452b2(0x1a1)][_0x4452b2(0x2e8)]);for(let _0x3643b2=0x0;_0x3643b2<_0x3b5387[_0x4452b2(0x1a1)]['length'];_0x3643b2+=0x1){let _0x53c5ca=_0x3b5387[_0x4452b2(0x1a1)][_0x3643b2];_0x4f80af[_0x3643b2]=_0x44bf1f(_0x53c5ca,_0x3b5387['noData'])?NaN:_0x53c5ca;}return _0x4f80af;},_0x316ae1=(_0x6e4c5f,_0x3ec6be)=>{let _0x20ff07=new Uint32Array((_0x6e4c5f-0x1)*(_0x3ec6be-0x1)*0x6),_0x479792=0x0;for(let _0x31068f=0x0;_0x31068f<_0x3ec6be-0x1;_0x31068f+=0x1)for(let _0x9bbcc2=0x0;_0x9bbcc2<_0x6e4c5f-0x1;_0x9bbcc2+=0x1){let _0x567a1e=_0x31068f*_0x6e4c5f+_0x9bbcc2,_0x51bea1=_0x567a1e+0x1,_0x417469=_0x567a1e+_0x6e4c5f,_0x5942cf=_0x417469+0x1;_0x20ff07[_0x479792]=_0x567a1e,_0x20ff07[_0x479792+0x1]=_0x51bea1,_0x20ff07[_0x479792+0x2]=_0x417469,_0x20ff07[_0x479792+0x3]=_0x417469,_0x20ff07[_0x479792+0x4]=_0x51bea1,_0x20ff07[_0x479792+0x5]=_0x5942cf,_0x479792+=0x6;}return _0x20ff07;},_0x586fc3=(_0xa54f34,_0x5ac2ed)=>{const _0x5c2d23=_0x3a9ea2;let _0x45f2ce=_0xbb5112(_0xa54f34);return{'id':_0xa54f34['id'],'positions':_0x3c3d68(_0xa54f34,_0x45f2ce,_0x5ac2ed),'values':_0x2dbded(_0xa54f34),'indices':_0x316ae1(_0x45f2ce,_0xa54f34[_0x5c2d23(0x23b)]['length']),'opacity':_0xa54f34[_0x5c2d23(0x23e)]??0x1,'depthMode':_0xa54f34['depthMode']??'scene','revision':_0xa54f34['revision']};};var _0x133e48='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',_0x4fab04=_0x3a9ea2(0x44f),_0x3f7251=_0x3a9ea2(0x2c0);let _0x940f9b=_0x1a8427=>{const _0x1dc804=_0x3a9ea2;if([_0x1a8427['xAxis']['count'],_0x1a8427['yAxis'][_0x1dc804(0x25f)],_0x1a8427[_0x1dc804(0x46c)][_0x1dc804(0x25f)],_0x1a8427[_0x1dc804(0x357)],_0x1a8427[_0x1dc804(0x306)],_0x1a8427[_0x1dc804(0x430)]][_0x1dc804(0x3fd)](_0xceff5e=>!Number['isInteger'](_0xceff5e)||_0xceff5e<=0x0))throw Error(_0x1dc804(0x30c));if(_0x1a8427['halo']!==0x1)throw Error(_0x1dc804(0x258));},_0x46e4ef=_0x32fa6c=>[Math[_0x3a9ea2(0x37e)](_0x32fa6c['xAxis'][_0x3a9ea2(0x25f)]/_0x32fa6c[_0x3a9ea2(0x357)]),Math[_0x3a9ea2(0x37e)](_0x32fa6c[_0x3a9ea2(0x42c)]['count']/_0x32fa6c[_0x3a9ea2(0x306)]),Math['ceil'](_0x32fa6c[_0x3a9ea2(0x46c)][_0x3a9ea2(0x25f)]/_0x32fa6c['brickDepth'])],_0x5e5090=(_0x2925f9,_0x526ee8)=>{const _0x3b3a13=_0x3a9ea2;let _0x5d400d=_0x526ee8[0x0]*_0x526ee8[0x1],_0x593e97=Math[_0x3b3a13(0x248)](_0x2925f9/_0x5d400d),_0x5dba2c=_0x2925f9-_0x593e97*_0x5d400d,_0x38c735=Math[_0x3b3a13(0x248)](_0x5dba2c/_0x526ee8[0x0]);return[_0x5dba2c-_0x38c735*_0x526ee8[0x0],_0x38c735,_0x593e97];},_0x3f93ae=(_0x232468,_0x1f7f1c,_0x1c11a7)=>{const _0x47dadb=_0x3a9ea2;let _0x3e94b2=_0x1f7f1c[_0x47dadb(0x357)]+0x2,_0x3068ff=_0x1f7f1c[_0x47dadb(0x306)]+0x2,_0x34a8b7=_0x5e5090(_0x232468[_0x47dadb(0x1e5)],_0x1c11a7),_0x33b30b=Math['min'](_0x1f7f1c[_0x47dadb(0x357)],_0x1f7f1c[_0x47dadb(0x1f2)]['count']-_0x34a8b7[0x0]*_0x1f7f1c['brickWidth']),_0x17a874=Math['min'](_0x1f7f1c[_0x47dadb(0x306)],_0x1f7f1c['yAxis']['count']-_0x34a8b7[0x1]*_0x1f7f1c[_0x47dadb(0x306)]),_0x57a20f=Math[_0x47dadb(0x3e9)](_0x1f7f1c[_0x47dadb(0x430)],_0x1f7f1c['zAxis'][_0x47dadb(0x25f)]-_0x34a8b7[0x2]*_0x1f7f1c[_0x47dadb(0x430)]);for(let _0x4dce72=0x0;_0x4dce72<_0x57a20f;_0x4dce72+=0x1)for(let _0x4b2e58=0x0;_0x4b2e58<_0x17a874;_0x4b2e58+=0x1){let _0xe56dc5=((_0x4dce72+0x1)*_0x3068ff+_0x4b2e58+0x1)*_0x3e94b2+0x1;for(let _0xafe17d=0x0;_0xafe17d<_0x33b30b;_0xafe17d+=0x1){let _0x32f782=_0x232468[_0x47dadb(0x1a1)][_0xe56dc5+_0xafe17d];if(_0x32f782===_0x32f782&&(_0x1f7f1c['noData']===void 0x0||_0x32f782!==_0x1f7f1c['noData']))return{'occupied':!0x0,'coreSampleCount':_0x33b30b*_0x17a874*_0x57a20f};}}return{'occupied':!0x1,'coreSampleCount':_0x33b30b*_0x17a874*_0x57a20f};},_0x1071f6=(_0x554c27,_0x4427bb,_0x462380,_0x3036ff,_0x55f3ae)=>{const _0x9715a4=_0x3a9ea2;if(_0x554c27<=0x0)return null;let _0x44b95b=Math['floor'](_0x55f3ae/_0x4427bb),_0x3aed64=Math[_0x9715a4(0x248)](_0x55f3ae/_0x462380),_0x55b45a=Math[_0x9715a4(0x248)](_0x55f3ae/_0x3036ff),_0x273901=null;for(let _0x558f77=0x1;_0x558f77<=_0x44b95b;_0x558f77+=0x1)for(let _0x38ebde=0x1;_0x38ebde<=_0x3aed64;_0x38ebde+=0x1){let _0x8d56da=Math[_0x9715a4(0x3e9)](_0x55b45a,Math[_0x9715a4(0x248)](_0x554c27/(_0x558f77*_0x38ebde))),_0x15b420=_0x558f77*_0x38ebde*_0x8d56da;_0x8d56da<=0x0||_0x15b420<=(_0x273901?.[_0x9715a4(0x2b6)]??0x0)||(_0x273901={'slotCountX':_0x558f77,'slotCountY':_0x38ebde,'slotCountZ':_0x8d56da,'slotCount':_0x15b420,'textureCount':0x1,'capacity':_0x15b420});}return _0x273901;},_0x41e716=(_0x15a8a4,_0x5a5657)=>{const _0x5d0e3e=_0x3a9ea2;let _0x2cb51a=_0x5a5657[_0x5d0e3e(0x257)]*_0x5a5657['slotCountY'],_0x47900f=Math[_0x5d0e3e(0x248)](_0x15a8a4/_0x2cb51a),_0xb8f27=_0x15a8a4-_0x47900f*_0x2cb51a,_0x616af1=Math[_0x5d0e3e(0x248)](_0xb8f27/_0x5a5657[_0x5d0e3e(0x257)]);return[_0xb8f27-_0x616af1*_0x5a5657['slotCountX'],_0x616af1,_0x47900f];},_0x38ceec=(_0x204588,_0x4b0cbd)=>{const _0x1332a3=_0x3a9ea2;let _0xaf5a21=null;for(let _0x456749 of _0x204588)_0x456749[_0x1332a3(0x22f)]!==_0x4b0cbd&&(!_0xaf5a21||_0x456749[_0x1332a3(0x22f)]<_0xaf5a21[_0x1332a3(0x22f)])&&(_0xaf5a21=_0x456749);return _0xaf5a21;},_0x24fcd0=(_0x6f421a,_0x11b99c,_0x68d0ed,_0x1a9a29)=>{const _0x25136f=_0x3a9ea2;let _0x4df73a=_0x11b99c*Float32Array['BYTES_PER_ELEMENT'],_0x46ee7e=Math['ceil'](_0x4df73a/0x100)*0x100;if(_0x4df73a===_0x46ee7e)return{'values':_0x6f421a,'bytesPerRow':_0x46ee7e};let _0x4d71fd=_0x46ee7e/Float32Array[_0x25136f(0x202)],_0x24c741=new Float32Array(_0x4d71fd*_0x68d0ed*_0x1a9a29);for(let _0x4342f8=0x0;_0x4342f8<_0x1a9a29;_0x4342f8+=0x1)for(let _0x51068c=0x0;_0x51068c<_0x68d0ed;_0x51068c+=0x1){let _0x147390=(_0x4342f8*_0x68d0ed+_0x51068c)*_0x11b99c,_0x4cfd44=(_0x4342f8*_0x68d0ed+_0x51068c)*_0x4d71fd;_0x24c741[_0x25136f(0x46d)](_0x6f421a[_0x25136f(0x2ef)](_0x147390,_0x147390+_0x11b99c),_0x4cfd44);}return{'values':_0x24c741,'bytesPerRow':_0x46ee7e};};var _0x43815a=class{[_0x3a9ea2(0x3fc)];[_0x3a9ea2(0x292)];[_0x3a9ea2(0x234)];[_0x3a9ea2(0x474)]=null;[_0x3a9ea2(0x44b)]=null;['atlasTextures']=[];['atlasViews']=[];[_0x3a9ea2(0x1a5)]=null;['pageTableValues']=new Uint32Array();[_0x3a9ea2(0x3a9)]=new Map();[_0x3a9ea2(0x17f)]=new Map();[_0x3a9ea2(0x352)]=0x0;constructor(_0x36a41c,_0x32ee40=0x20000000,_0x1a943a=_0x32ee40){const _0x3e62e3=_0x3a9ea2;if(!Number[_0x3e62e3(0x2ba)](_0x32ee40)||!Number[_0x3e62e3(0x2ba)](_0x1a943a)||_0x32ee40<=0x0||_0x1a943a<=0x0)throw Error(_0x3e62e3(0x38f));this[_0x3e62e3(0x3fc)]=_0x36a41c,this[_0x3e62e3(0x292)]=Math[_0x3e62e3(0x3e9)](_0x32ee40,_0x1a943a),this[_0x3e62e3(0x234)]=_0x1a943a;}get[_0x3a9ea2(0x180)](){const _0x409d39=_0x3a9ea2;if(!this[_0x409d39(0x474)])throw Error(_0x409d39(0x3b7));return this[_0x409d39(0x474)];}get[_0x3a9ea2(0x293)](){const _0x1c12ff=_0x3a9ea2;if(!this['layout'])throw Error(_0x1c12ff(0x335));return this[_0x1c12ff(0x44b)];}get[_0x3a9ea2(0x370)](){const _0x139bf4=_0x3a9ea2;return this[_0x139bf4(0x3a9)][_0x139bf4(0x439)];}get[_0x3a9ea2(0x2a4)](){const _0x3c7194=_0x3a9ea2;if(!this['metadata']||!this[_0x3c7194(0x44b)])return{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this[_0x3c7194(0x234)],'budgetLimited':!0x1,'skippedSamples':0x0,'skippedCells':0x0};let _0x72a3be=_0x46e4ef(this['metadata']),_0x2caf52=_0x72a3be[0x0]*_0x72a3be[0x1]*_0x72a3be[0x2],_0x2b226c=this[_0x3c7194(0x474)][_0x3c7194(0x357)]+0x2,_0x439f1f=this[_0x3c7194(0x474)][_0x3c7194(0x306)]+0x2,_0x2aabd5=this[_0x3c7194(0x474)][_0x3c7194(0x430)]+0x2,_0x26940a=_0x2b226c*_0x439f1f*_0x2aabd5*this[_0x3c7194(0x44b)][_0x3c7194(0x3f8)]*Float32Array['BYTES_PER_ELEMENT'],_0x4bdab3=_0x2caf52*0x4*Uint32Array['BYTES_PER_ELEMENT'],_0x411dd6=0x0,_0x10d5ce=0x0;for(let _0x3b52be of this['residentByLogicalIndex'][_0x3c7194(0x1a1)]())_0x3b52be[_0x3c7194(0x3eb)]||(_0x10d5ce+=0x1,_0x411dd6+=_0x3b52be[_0x3c7194(0x27c)]);return{'logicalBrickCount':_0x2caf52,'atlasCapacity':this[_0x3c7194(0x44b)][_0x3c7194(0x3f8)],'gpuBytes':_0x26940a+_0x4bdab3,'memoryLimitBytes':this[_0x3c7194(0x234)],'budgetLimited':this[_0x3c7194(0x44b)][_0x3c7194(0x3f8)]<_0x2caf52,'skippedSamples':_0x411dd6,'skippedCells':_0x10d5ce};}[_0x3a9ea2(0x1d5)](_0x502327){const _0x4ad5f5=_0x3a9ea2;_0x940f9b(_0x502327);let _0x181a37=_0x502327[_0x4ad5f5(0x357)]+0x2,_0x2af982=_0x502327[_0x4ad5f5(0x306)]+0x2,_0x2a7e90=_0x502327[_0x4ad5f5(0x430)]+0x2,_0x430487=_0x46e4ef(_0x502327),_0x3cb4fc=_0x430487[0x0]*_0x430487[0x1]*_0x430487[0x2],_0xbe1762=_0x3cb4fc*0x4*Uint32Array['BYTES_PER_ELEMENT'],_0x31ff57=Math[_0x4ad5f5(0x3e9)](this[_0x4ad5f5(0x292)],this['memoryHardLimitBytes'])-_0xbe1762;if(_0x31ff57<=0x0)throw Error('WebGPU\x20volume\x20page\x20table\x20exceeds\x20the\x20configured\x20memory\x20limit.\x20WebGPU\x20体积页表超过显存限制。');let _0x1bec2c=_0x181a37*_0x2af982*_0x2a7e90*Float32Array[_0x4ad5f5(0x202)],_0xb73ec2=Math[_0x4ad5f5(0x3e9)](_0x3cb4fc,Math[_0x4ad5f5(0x248)](_0x31ff57/_0x1bec2c)),_0x208467=Math['max'](0x1,Math[_0x4ad5f5(0x248)](0x4000000/_0x1bec2c)),_0x50455f=Math[_0x4ad5f5(0x3e9)](0x8,Math['max'](0x1,Math[_0x4ad5f5(0x37e)](_0xb73ec2/_0x208467))),_0x21e714=_0x1071f6(Math[_0x4ad5f5(0x1ac)](0x1,Math['floor'](_0xb73ec2/_0x50455f)),_0x181a37,_0x2af982,_0x2a7e90,this['device'][_0x4ad5f5(0x373)]['maxTextureDimension3D']);if(!_0x21e714)throw Error('Unable\x20to\x20allocate\x20a\x20WebGPU\x20R32F\x20volume\x20atlas\x20within\x20device\x20limits.\x20无法在设备限制内分配\x20WebGPU\x20R32F\x20体积图集。');let _0x1f74ef={..._0x21e714,'textureCount':_0x50455f,'capacity':_0x21e714[_0x4ad5f5(0x2b6)]*_0x50455f},_0x3b45bc=_0x181a37*_0x1f74ef[_0x4ad5f5(0x257)],_0x1c530e=_0x2af982*_0x1f74ef['slotCountY'],_0x250f5a=_0x2a7e90*_0x1f74ef[_0x4ad5f5(0x491)],_0x34615a=Array[_0x4ad5f5(0x18d)]({'length':_0x50455f},(_0x345caa,_0x40965d)=>this['device']['createTexture']({'label':_0x4ad5f5(0x3ce)+_0x40965d,'size':[_0x3b45bc,_0x1c530e,_0x250f5a],'dimension':'3d','format':_0x4ad5f5(0x406),'usage':GPUTextureUsage['TEXTURE_BINDING']|GPUTextureUsage[_0x4ad5f5(0x1f4)]|GPUTextureUsage[_0x4ad5f5(0x432)]})),_0x49f48b=this[_0x4ad5f5(0x3fc)][_0x4ad5f5(0x242)]({'label':_0x4ad5f5(0x2ae),'size':Math['max'](0x10,_0xbe1762),'usage':GPUBufferUsage[_0x4ad5f5(0x336)]|GPUBufferUsage['COPY_DST']});this[_0x4ad5f5(0x3b8)](),this[_0x4ad5f5(0x474)]={..._0x502327},this[_0x4ad5f5(0x44b)]=_0x1f74ef,this[_0x4ad5f5(0x2d7)]=_0x34615a,this[_0x4ad5f5(0x3de)]=_0x34615a[_0x4ad5f5(0x42f)](_0xe302cb=>_0xe302cb[_0x4ad5f5(0x429)]({'dimension':'3d'})),this[_0x4ad5f5(0x1a5)]=_0x49f48b,this['pageTableValues']=new Uint32Array(_0x3cb4fc*0x4),this[_0x4ad5f5(0x3fc)][_0x4ad5f5(0x3c7)]['writeBuffer'](_0x49f48b,0x0,this[_0x4ad5f5(0x2f0)]);for(let _0x4467e3 of _0x34615a)this[_0x4ad5f5(0x2b4)](_0x4467e3,_0x3b45bc,_0x1c530e,_0x250f5a);this[_0x4ad5f5(0x352)]+=0x1;}[_0x3a9ea2(0x3d4)](_0x21d1cb,_0x1fe1f6){const _0x50fb32=_0x3a9ea2;let _0x1462b7=this[_0x50fb32(0x180)],_0x562f0a=this['atlasLayout'],_0x5d643f=_0x46e4ef(_0x1462b7),_0x124cb3=_0x5d643f[0x0]*_0x5d643f[0x1]*_0x5d643f[0x2];if(!Number[_0x50fb32(0x34f)](_0x21d1cb['logicalIndex'])||_0x21d1cb[_0x50fb32(0x1e5)]<0x0||_0x21d1cb['logicalIndex']>=_0x124cb3)throw Error('Invalid\x20logical\x20volume\x20brick\x20index:\x20'+_0x21d1cb[_0x50fb32(0x1e5)]+_0x50fb32(0x251));let _0x3d87e2=_0x1462b7[_0x50fb32(0x357)]+0x2,_0x3c0f04=_0x1462b7[_0x50fb32(0x306)]+0x2,_0x2b501c=_0x1462b7[_0x50fb32(0x430)]+0x2,_0x34489e=_0x3d87e2*_0x3c0f04*_0x2b501c;if(_0x21d1cb[_0x50fb32(0x1a1)][_0x50fb32(0x2e8)]!==_0x34489e)throw Error(_0x50fb32(0x231)+_0x21d1cb[_0x50fb32(0x1e5)]+_0x50fb32(0x2fb)+_0x34489e+_0x50fb32(0x1aa)+_0x21d1cb['values'][_0x50fb32(0x2e8)]+_0x50fb32(0x1b3));let _0x21c7ff=this[_0x50fb32(0x3a9)][_0x50fb32(0x2a8)](_0x21d1cb[_0x50fb32(0x1e5)])??this[_0x50fb32(0x199)](_0x21d1cb[_0x50fb32(0x1e5)],_0x1fe1f6),_0x37c1bf=_0x3f93ae(_0x21d1cb,_0x1462b7,_0x5d643f),_0x4971fa=Math[_0x50fb32(0x248)](_0x21c7ff[_0x50fb32(0x182)]/_0x562f0a[_0x50fb32(0x2b6)]),_0x367c21=_0x41e716(_0x21c7ff['slotIndex']%_0x562f0a[_0x50fb32(0x2b6)],_0x562f0a),_0x4d0c1b=_0x24fcd0(new Float32Array(_0x21d1cb['values']),_0x3d87e2,_0x3c0f04,_0x2b501c);return _0x21c7ff[_0x50fb32(0x22f)]=_0x1fe1f6,_0x21c7ff[_0x50fb32(0x352)]=this[_0x50fb32(0x352)],_0x21c7ff[_0x50fb32(0x3eb)]=_0x37c1bf[_0x50fb32(0x3eb)],_0x21c7ff[_0x50fb32(0x27c)]=_0x37c1bf[_0x50fb32(0x3d0)],this[_0x50fb32(0x2f3)](_0x21c7ff),{'values':_0x4d0c1b[_0x50fb32(0x1a1)],'bytesPerRow':_0x4d0c1b[_0x50fb32(0x26d)],'rowsPerImage':_0x3c0f04,'origin':{'x':_0x367c21[0x0]*_0x3d87e2,'y':_0x367c21[0x1]*_0x3c0f04,'z':_0x367c21[0x2]*_0x2b501c},'extent':[_0x3d87e2,_0x3c0f04,_0x2b501c],'atlasIndex':_0x4971fa};}[_0x3a9ea2(0x394)](_0x157749,_0x24ed6a,_0x3abf7c,_0x379f0b){const _0x4b72f6=_0x3a9ea2;_0x157749[_0x4b72f6(0x27e)]({'buffer':_0x24ed6a,'offset':_0x3abf7c,'bytesPerRow':_0x379f0b[_0x4b72f6(0x26d)],'rowsPerImage':_0x379f0b[_0x4b72f6(0x3c0)]},{'texture':this[_0x4b72f6(0x415)](_0x379f0b['atlasIndex']),'origin':_0x379f0b['origin']},_0x379f0b['extent']);}[_0x3a9ea2(0x19e)](_0x22fba8,_0x1833a8){const _0x185e88=_0x3a9ea2;for(let _0x3afb69 of _0x22fba8){let _0x5c1e92=this[_0x185e88(0x3a9)]['get'](_0x3afb69);_0x5c1e92&&(_0x5c1e92[_0x185e88(0x22f)]=_0x1833a8);}}[_0x3a9ea2(0x31e)](_0x358948,_0x1777ef){const _0x52c150=_0x3a9ea2;if(this[_0x52c150(0x3de)][_0x52c150(0x2e8)]===0x0||!this['pageTableBuffer'])throw Error('WebGPU\x20volume\x20atlas\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积图集资源不完整。');return this[_0x52c150(0x3fc)]['createBindGroup']({'label':'volume\x20atlas\x20bind\x20group','layout':_0x358948,'entries':[...Array[_0x52c150(0x18d)]({'length':0x8},(_0x530235,_0x54593f)=>({'binding':_0x54593f,'resource':this[_0x52c150(0x3de)][_0x54593f]??this[_0x52c150(0x3de)][0x0]})),{'binding':0x8,'resource':{'buffer':this[_0x52c150(0x1a5)]}},{'binding':0x9,'resource':{'buffer':_0x1777ef}}]});}[_0x3a9ea2(0x421)](){const _0x2d92e4=_0x3a9ea2;this[_0x2d92e4(0x3b8)](),this[_0x2d92e4(0x474)]=null,this['layout']=null,this[_0x2d92e4(0x2f0)]=new Uint32Array();}[_0x3a9ea2(0x199)](_0x729842,_0x11efcb){const _0xff24be=_0x3a9ea2;let _0x51983d=this['atlasLayout'],_0x558366=this[_0xff24be(0x17f)][_0xff24be(0x439)];if(_0x558366>=_0x51983d[_0xff24be(0x3f8)]){let _0x16dee7=_0x38ceec(this[_0xff24be(0x17f)][_0xff24be(0x1a1)](),_0x11efcb);if(!_0x16dee7)throw Error('WebGPU\x20volume\x20atlas\x20has\x20no\x20evictable\x20slot.\x20WebGPU\x20体积图集没有可驱逐的槽位。');_0x558366=_0x16dee7['slotIndex'],this['clearPageEntry'](_0x16dee7[_0xff24be(0x1e5)]),this[_0xff24be(0x3a9)][_0xff24be(0x255)](_0x16dee7['logicalIndex']),this['residentBySlotIndex'][_0xff24be(0x255)](_0x558366);}let _0xbaf846={'logicalIndex':_0x729842,'slotIndex':_0x558366,'lastUsedFrame':_0x11efcb,'generation':this[_0xff24be(0x352)],'occupied':!0x1,'skippedSampleCount':0x0};return this[_0xff24be(0x3a9)]['set'](_0x729842,_0xbaf846),this[_0xff24be(0x17f)]['set'](_0x558366,_0xbaf846),_0xbaf846;}['writePageEntry'](_0x436a1a){const _0x57794c=_0x3a9ea2;let _0x22fe46=_0x436a1a['logicalIndex']*0x4;this['pageTableValues'][_0x22fe46]=_0x436a1a['slotIndex']%this[_0x57794c(0x293)][_0x57794c(0x2b6)]+0x1,this[_0x57794c(0x2f0)][_0x22fe46+0x1]=_0x436a1a[_0x57794c(0x352)],this[_0x57794c(0x2f0)][_0x22fe46+0x2]=+!!_0x436a1a[_0x57794c(0x3eb)],this[_0x57794c(0x2f0)][_0x22fe46+0x3]=Math[_0x57794c(0x248)](_0x436a1a['slotIndex']/this[_0x57794c(0x293)]['slotCount']),this['device']['queue'][_0x57794c(0x311)](this[_0x57794c(0x1db)](),_0x22fe46*Uint32Array['BYTES_PER_ELEMENT'],this['pageTableValues'],_0x22fe46,0x4);}[_0x3a9ea2(0x1d0)](_0x4f06b8){const _0x25047d=_0x3a9ea2;let _0x23751=_0x4f06b8*0x4;this[_0x25047d(0x2f0)][_0x25047d(0x467)](0x0,_0x23751,_0x23751+0x4),this[_0x25047d(0x3fc)][_0x25047d(0x3c7)]['writeBuffer'](this[_0x25047d(0x1db)](),_0x23751*Uint32Array[_0x25047d(0x202)],this['pageTableValues'],_0x23751,0x4);}[_0x3a9ea2(0x415)](_0x1c4878){const _0x17fe6c=_0x3a9ea2;let _0x71e285=this[_0x17fe6c(0x2d7)][_0x1c4878];if(!_0x71e285)throw Error(_0x17fe6c(0x437));return _0x71e285;}[_0x3a9ea2(0x2b4)](_0x2cc572,_0x11354a,_0x200ccb,_0x519308){const _0x482d68=_0x3a9ea2;let _0x3a192b=this[_0x482d68(0x3fc)][_0x482d68(0x41d)]({'label':_0x482d68(0x39d),'code':_0x482d68(0x28c)}),_0x161d61=this[_0x482d68(0x3fc)][_0x482d68(0x3c9)]({'label':_0x482d68(0x3db),'layout':'auto','compute':{'module':_0x3a192b,'entryPoint':_0x482d68(0x2a6)}}),_0x52d282=this['device']['createBindGroup']({'label':'volume\x20atlas\x20clear\x20bind\x20group','layout':_0x161d61[_0x482d68(0x307)](0x0),'entries':[{'binding':0x0,'resource':_0x2cc572['createView']({'dimension':'3d'})}]}),_0x5b9eee=this['device'][_0x482d68(0x375)]({'label':'volume\x20atlas\x20clear'}),_0x3099c3=_0x5b9eee[_0x482d68(0x3fb)]({'label':_0x482d68(0x48b)});_0x3099c3[_0x482d68(0x296)](_0x161d61),_0x3099c3[_0x482d68(0x324)](0x0,_0x52d282),_0x3099c3[_0x482d68(0x228)](Math[_0x482d68(0x37e)](_0x11354a/0x4),Math['ceil'](_0x200ccb/0x4),Math[_0x482d68(0x37e)](_0x519308/0x4)),_0x3099c3['end'](),this[_0x482d68(0x3fc)]['queue'][_0x482d68(0x1e4)]([_0x5b9eee[_0x482d68(0x1fa)]()]);}['getPageTableBuffer'](){const _0x4a3e4d=_0x3a9ea2;if(!this[_0x4a3e4d(0x1a5)])throw Error(_0x4a3e4d(0x2de));return this[_0x4a3e4d(0x1a5)];}[_0x3a9ea2(0x3b8)](){const _0x2ec6f8=_0x3a9ea2;for(let _0x9acb68 of this[_0x2ec6f8(0x2d7)])_0x9acb68[_0x2ec6f8(0x421)]();this[_0x2ec6f8(0x1a5)]?.[_0x2ec6f8(0x421)](),this[_0x2ec6f8(0x2d7)]=[],this[_0x2ec6f8(0x3de)]=[],this[_0x2ec6f8(0x1a5)]=null,this[_0x2ec6f8(0x3a9)][_0x2ec6f8(0x33b)](),this[_0x2ec6f8(0x17f)]['clear']();}},_0x5b4554=class{[_0x3a9ea2(0x3fc)];[_0x3a9ea2(0x37d)]=null;[_0x3a9ea2(0x208)]=null;[_0x3a9ea2(0x1cc)]=0x0;[_0x3a9ea2(0x22a)]=0x0;constructor(_0x3303fa){const _0x5efc1b=_0x3a9ea2;this[_0x5efc1b(0x3fc)]=_0x3303fa;}get[_0x3a9ea2(0x29f)](){const _0x1388e8=_0x3a9ea2;if(!this['depthView'])throw Error('WebGPU\x20scene\x20depth\x20attachment\x20is\x20not\x20initialized.\x20WebGPU\x20场景深度附件尚未初始化。');return this[_0x1388e8(0x208)];}[_0x3a9ea2(0x3df)](_0x39fada,_0x11e9b3){const _0x566087=_0x3a9ea2;if(this['width']===_0x39fada&&this[_0x566087(0x22a)]===_0x11e9b3)return;let _0x2a0cc0=this[_0x566087(0x3fc)]['createTexture']({'label':_0x566087(0x3c1),'size':[_0x39fada,_0x11e9b3],'format':'depth32float','usage':GPUTextureUsage[_0x566087(0x369)]|GPUTextureUsage['TEXTURE_BINDING']}),_0x24f948=this[_0x566087(0x37d)];this[_0x566087(0x37d)]=_0x2a0cc0,this[_0x566087(0x208)]=_0x2a0cc0['createView'](),this[_0x566087(0x1cc)]=_0x39fada,this['height']=_0x11e9b3,_0x24f948?.[_0x566087(0x421)]();}[_0x3a9ea2(0x421)](){const _0x2ca989=_0x3a9ea2;this[_0x2ca989(0x37d)]?.[_0x2ca989(0x421)](),this['depthTexture']=null,this[_0x2ca989(0x208)]=null,this[_0x2ca989(0x1cc)]=0x0,this[_0x2ca989(0x22a)]=0x0;}},_0x7a802e=class{[_0x3a9ea2(0x3fc)];['resources']=[];constructor(_0x5c811a){const _0x2683a9=_0x3a9ea2;this[_0x2683a9(0x3fc)]=_0x5c811a;}get['count'](){const _0x56dc91=_0x3a9ea2;return this[_0x56dc91(0x329)][_0x56dc91(0x2e8)];}['replace'](_0x510c1c){const _0x424902=_0x3a9ea2;let _0x3f2d5c=[];try{for(let _0x3a7896 of _0x510c1c)_0x3f2d5c[_0x424902(0x23d)](this[_0x424902(0x2fe)](_0x3a7896));}catch(_0x4492c9){for(let _0x104b2b of _0x3f2d5c)_0x104b2b['buffer']['destroy']();throw _0x4492c9;}this[_0x424902(0x3b8)](),this[_0x424902(0x329)]=_0x3f2d5c;}[_0x3a9ea2(0x308)](_0x469f79,_0x4a0373,_0x157f58){const _0x593233=_0x3a9ea2;for(let _0x31430e of this[_0x593233(0x329)])_0x31430e[_0x593233(0x3a5)]!==_0x4a0373||_0x31430e[_0x593233(0x462)]!==_0x157f58||(_0x469f79[_0x593233(0x485)](0x0,_0x31430e[_0x593233(0x47e)]),_0x469f79[_0x593233(0x308)](_0x31430e['vertexCount']));}[_0x3a9ea2(0x421)](){this['destroyResources']();}[_0x3a9ea2(0x2fe)](_0x268824){const _0x5b93c6=_0x3a9ea2;if(_0x268824[_0x5b93c6(0x37a)]['length']===0x0||_0x268824[_0x5b93c6(0x37a)][_0x5b93c6(0x2e8)]%0x7!=0x0)throw Error(_0x5b93c6(0x2e6)+_0x268824['id']+_0x5b93c6(0x3c5));let _0x42cb02=new Float32Array(_0x268824[_0x5b93c6(0x37a)]),_0x4e1d94=this[_0x5b93c6(0x3fc)][_0x5b93c6(0x242)]({'label':_0x5b93c6(0x364)+_0x268824['id'],'size':_0x42cb02[_0x5b93c6(0x2a7)],'usage':GPUBufferUsage['VERTEX']|GPUBufferUsage[_0x5b93c6(0x1f4)]});return this[_0x5b93c6(0x3fc)]['queue'][_0x5b93c6(0x311)](_0x4e1d94,0x0,_0x42cb02),{'id':_0x268824['id'],'topology':_0x268824[_0x5b93c6(0x3a5)],'depthMode':_0x268824[_0x5b93c6(0x462)],'buffer':_0x4e1d94,'vertexCount':_0x268824['vertices'][_0x5b93c6(0x2e8)]/0x7};}[_0x3a9ea2(0x3b8)](){const _0x3b64a3=_0x3a9ea2;for(let _0xc1dfb4 of this[_0x3b64a3(0x329)])_0xc1dfb4[_0x3b64a3(0x47e)][_0x3b64a3(0x421)]();this[_0x3b64a3(0x329)]=[];}},_0x1d4dd8=class{[_0x3a9ea2(0x3fc)];[_0x3a9ea2(0x44b)];[_0x3a9ea2(0x329)]=[];[_0x3a9ea2(0x461)]=0x0;[_0x3a9ea2(0x3ad)]=0x0;constructor(_0x3e32b7,_0x3732ff){const _0x552594=_0x3a9ea2;this[_0x552594(0x3fc)]=_0x3e32b7,this['layout']=_0x3732ff;}get['count'](){const _0x4aadc1=_0x3a9ea2;return this['resources'][_0x4aadc1(0x2e8)];}get[_0x3a9ea2(0x2a4)](){const _0x357cfe=_0x3a9ea2;return{'uniformUpdateCount':this[_0x357cfe(0x461)],'resourceRebuildCount':this[_0x357cfe(0x3ad)]};}['replace'](_0x1dfed5){const _0x207bd6=_0x3a9ea2;let _0x45ae48=new Map(this[_0x207bd6(0x329)][_0x207bd6(0x42f)](_0x4f47d0=>[_0x4f47d0['id'],_0x4f47d0])),_0x312520=[],_0x307225=new Set();try{for(let _0x192ba3 of _0x1dfed5){if(!_0x192ba3[_0x207bd6(0x1eb)])continue;if(_0x307225[_0x207bd6(0x3cf)](_0x192ba3['id']))throw Error('Volume\x20slice\x20ID\x20'+_0x192ba3['id']+'\x20is\x20duplicated.\x20体积切面\x20ID\x20重复。');_0x307225[_0x207bd6(0x451)](_0x192ba3['id']);let _0x29594f=this[_0x207bd6(0x359)](_0x192ba3),_0x244dfe=_0x45ae48[_0x207bd6(0x2a8)](_0x192ba3['id']);if(!_0x244dfe){_0x312520[_0x207bd6(0x23d)](this['createResource'](_0x192ba3,_0x29594f));continue;}_0x45ae48[_0x207bd6(0x255)](_0x192ba3['id']),_0x244dfe[_0x207bd6(0x462)]=_0x192ba3[_0x207bd6(0x462)],this[_0x207bd6(0x446)](_0x244dfe[_0x207bd6(0x1a1)],_0x29594f)||(this[_0x207bd6(0x3fc)][_0x207bd6(0x3c7)][_0x207bd6(0x311)](_0x244dfe[_0x207bd6(0x47e)],0x0,_0x29594f),_0x244dfe['values']=_0x29594f,this[_0x207bd6(0x461)]+=0x1),_0x312520[_0x207bd6(0x23d)](_0x244dfe);}}catch(_0x4adbff){for(let _0x31a1e6 of _0x312520)this[_0x207bd6(0x329)][_0x207bd6(0x388)](_0x31a1e6)||_0x31a1e6['buffer']['destroy']();throw _0x4adbff;}for(let _0x59d856 of _0x45ae48[_0x207bd6(0x1a1)]())_0x59d856[_0x207bd6(0x47e)][_0x207bd6(0x421)]();this[_0x207bd6(0x329)]=_0x312520;}[_0x3a9ea2(0x308)](_0x1e9b8f,_0x246e1c,_0x442a4c){const _0x266bf2=_0x3a9ea2;_0x1e9b8f[_0x266bf2(0x296)](_0x246e1c);for(let _0x784c85 of this['resources'])_0x784c85[_0x266bf2(0x462)]===_0x442a4c&&(_0x1e9b8f[_0x266bf2(0x324)](0x3,_0x784c85[_0x266bf2(0x42e)]),_0x1e9b8f[_0x266bf2(0x308)](0x1800));}['destroy'](){this['destroyResources']();}[_0x3a9ea2(0x359)](_0x455c9){const _0x5c9b83=_0x3a9ea2;if(!Number[_0x5c9b83(0x2ba)](_0x455c9['position'])||_0x455c9[_0x5c9b83(0x1d2)]<0x0||_0x455c9[_0x5c9b83(0x1d2)]>0x1)throw Error(_0x5c9b83(0x349)+_0x455c9['id']+_0x5c9b83(0x39e));let _0x59e523=_0x455c9[_0x5c9b83(0x35f)]==='x'?0x0:_0x455c9[_0x5c9b83(0x35f)]==='y'?0x1:0x2,_0x58a2d2=_0x455c9[_0x5c9b83(0x454)]??[0x0,0x0,0x0,0x0];if(_0x58a2d2[_0x5c9b83(0x3fd)](_0x63157e=>!Number[_0x5c9b83(0x2ba)](_0x63157e)||_0x63157e<0x0||_0x63157e>0x1))throw Error(_0x5c9b83(0x349)+_0x455c9['id']+'\x20plate\x20color\x20must\x20use\x20values\x20from\x20zero\x20through\x20one.\x20体积切面底板颜色必须位于零至一。');return new Float32Array([_0x59e523,_0x455c9[_0x5c9b83(0x1d2)],_0x455c9[_0x5c9b83(0x23e)]??0x1,0x0,..._0x58a2d2]);}['createResource'](_0xc1857a,_0x18bb13){const _0x3c6c63=_0x3a9ea2;let _0x549e4e=this[_0x3c6c63(0x3fc)][_0x3c6c63(0x242)]({'label':_0x3c6c63(0x392)+_0xc1857a['id'],'size':0x20,'usage':GPUBufferUsage[_0x3c6c63(0x215)]|GPUBufferUsage[_0x3c6c63(0x1f4)]});this[_0x3c6c63(0x3fc)][_0x3c6c63(0x3c7)][_0x3c6c63(0x311)](_0x549e4e,0x0,_0x18bb13);let _0x5d86cb=this[_0x3c6c63(0x3fc)][_0x3c6c63(0x31e)]({'layout':this[_0x3c6c63(0x44b)],'entries':[{'binding':0x0,'resource':{'buffer':_0x549e4e}}]});return this[_0x3c6c63(0x3ad)]+=0x1,{'id':_0xc1857a['id'],'depthMode':_0xc1857a[_0x3c6c63(0x462)],'buffer':_0x549e4e,'bindGroup':_0x5d86cb,'values':_0x18bb13};}[_0x3a9ea2(0x446)](_0x5600b2,_0x4f0fc0){const _0x51bcaa=_0x3a9ea2;for(let _0x158c93=0x0;_0x158c93<_0x5600b2[_0x51bcaa(0x2e8)];_0x158c93+=0x1)if(_0x5600b2[_0x158c93]!==_0x4f0fc0[_0x158c93])return!0x1;return!0x0;}[_0x3a9ea2(0x3b8)](){const _0x5b90e1=_0x3a9ea2;for(let _0x57d86e of this[_0x5b90e1(0x329)])_0x57d86e[_0x5b90e1(0x47e)]['destroy']();this['resources']=[];}};let _0x54e300=(_0x4e8d3f,_0x56a429,_0x5b3eb0)=>{const _0x5e20c1=_0x3a9ea2;let _0x86405c=_0x4e8d3f[_0x5e20c1(0x242)]({'label':_0x5b3eb0,'size':Math[_0x5e20c1(0x1ac)](0x4,_0x56a429[_0x5e20c1(0x2a7)]),'usage':GPUBufferUsage[_0x5e20c1(0x336)]|GPUBufferUsage[_0x5e20c1(0x1f4)]});return _0x56a429[_0x5e20c1(0x2a7)]>0x0&&_0x4e8d3f[_0x5e20c1(0x3c7)][_0x5e20c1(0x311)](_0x86405c,0x0,_0x56a429),_0x86405c;},_0x2f2a05=(_0x5ab7a0,_0x29e811)=>{const _0x1e8893=_0x3a9ea2;if(_0x5ab7a0[_0x1e8893(0x2e8)]===0x0||_0x29e811[_0x1e8893(0x2e8)]===0x0)throw Error('Volume\x20color\x20and\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积颜色和透明度色标不能为空。');for(let _0x29c8b9=0x1;_0x29c8b9<_0x5ab7a0[_0x1e8893(0x2e8)];_0x29c8b9+=0x1)if(_0x5ab7a0[_0x29c8b9][_0x1e8893(0x431)]<_0x5ab7a0[_0x29c8b9-0x1][_0x1e8893(0x431)])throw Error(_0x1e8893(0x428));for(let _0x3e32d9=0x0;_0x3e32d9<_0x29e811[_0x1e8893(0x2e8)];_0x3e32d9+=0x1){if(_0x29e811[_0x3e32d9]['opacity']<0x0||_0x29e811[_0x3e32d9][_0x1e8893(0x23e)]>0x1)throw Error(_0x1e8893(0x2c3));if(_0x3e32d9>0x0&&_0x29e811[_0x3e32d9]['value']<_0x29e811[_0x3e32d9-0x1][_0x1e8893(0x431)])throw Error(_0x1e8893(0x45e));}};var _0x49e786=class{['device'];[_0x3a9ea2(0x31d)]=null;[_0x3a9ea2(0x3dd)]=null;[_0x3a9ea2(0x325)]=null;[_0x3a9ea2(0x374)]=null;['colorStopCount']=0x0;['opacityStopCount']=0x0;constructor(_0x28130b){const _0x5e18b0=_0x3a9ea2;this[_0x5e18b0(0x3fc)]=_0x28130b;}get[_0x3a9ea2(0x46f)](){const _0xf1b45b=_0x3a9ea2;return[this[_0xf1b45b(0x34d)],this[_0xf1b45b(0x418)]];}[_0x3a9ea2(0x3a6)](_0x13f47b,_0x3c232e){const _0x5b0cec=_0x3a9ea2;_0x2f2a05(_0x13f47b,_0x3c232e);let _0x31c72a=new Float32Array(_0x13f47b[_0x5b0cec(0x2e8)]),_0x21f99c=new Float32Array(_0x13f47b[_0x5b0cec(0x2e8)]*0x4),_0x25fd39=new Float32Array(_0x3c232e['length']),_0x24b6dc=new Float32Array(_0x3c232e[_0x5b0cec(0x2e8)]);for(let _0x443c41=0x0;_0x443c41<_0x13f47b['length'];_0x443c41+=0x1)_0x31c72a[_0x443c41]=_0x13f47b[_0x443c41][_0x5b0cec(0x431)],_0x21f99c[_0x5b0cec(0x46d)](_0x13f47b[_0x443c41]['color'],_0x443c41*0x4);for(let _0x529f1e=0x0;_0x529f1e<_0x3c232e[_0x5b0cec(0x2e8)];_0x529f1e+=0x1)_0x25fd39[_0x529f1e]=_0x3c232e[_0x529f1e][_0x5b0cec(0x431)],_0x24b6dc[_0x529f1e]=_0x3c232e[_0x529f1e]['opacity'];let _0x1af136=[_0x54e300(this['device'],_0x31c72a,'volume\x20color\x20stop\x20values'),_0x54e300(this[_0x5b0cec(0x3fc)],_0x21f99c,'volume\x20color\x20stop\x20colors'),_0x54e300(this[_0x5b0cec(0x3fc)],_0x25fd39,'volume\x20opacity\x20stop\x20values'),_0x54e300(this[_0x5b0cec(0x3fc)],_0x24b6dc,_0x5b0cec(0x472))];this[_0x5b0cec(0x31b)](),this['colorValuesBuffer']=_0x1af136[0x0],this[_0x5b0cec(0x3dd)]=_0x1af136[0x1],this['opacityValuesBuffer']=_0x1af136[0x2],this[_0x5b0cec(0x374)]=_0x1af136[0x3],this[_0x5b0cec(0x34d)]=_0x13f47b[_0x5b0cec(0x2e8)],this[_0x5b0cec(0x418)]=_0x3c232e['length'];}[_0x3a9ea2(0x31e)](_0x4d6f74){const _0x48bbd6=_0x3a9ea2;if(!this[_0x48bbd6(0x31d)]||!this[_0x48bbd6(0x3dd)]||!this[_0x48bbd6(0x325)]||!this['opacityBuffer'])throw Error(_0x48bbd6(0x327));return this[_0x48bbd6(0x3fc)][_0x48bbd6(0x31e)]({'label':'volume\x20transfer\x20bind\x20group','layout':_0x4d6f74,'entries':[{'binding':0x0,'resource':{'buffer':this[_0x48bbd6(0x31d)]}},{'binding':0x1,'resource':{'buffer':this[_0x48bbd6(0x3dd)]}},{'binding':0x2,'resource':{'buffer':this[_0x48bbd6(0x325)]}},{'binding':0x3,'resource':{'buffer':this[_0x48bbd6(0x374)]}}]});}[_0x3a9ea2(0x421)](){const _0x1d6ead=_0x3a9ea2;this[_0x1d6ead(0x31b)](),this[_0x1d6ead(0x34d)]=0x0,this['opacityStopCount']=0x0;}[_0x3a9ea2(0x31b)](){const _0x7a3fb2=_0x3a9ea2;this[_0x7a3fb2(0x31d)]?.[_0x7a3fb2(0x421)](),this[_0x7a3fb2(0x3dd)]?.[_0x7a3fb2(0x421)](),this[_0x7a3fb2(0x325)]?.[_0x7a3fb2(0x421)](),this[_0x7a3fb2(0x374)]?.[_0x7a3fb2(0x421)](),this[_0x7a3fb2(0x31d)]=null,this[_0x7a3fb2(0x3dd)]=null,this[_0x7a3fb2(0x325)]=null,this[_0x7a3fb2(0x374)]=null;}};let _0x217e01=0x200*0x400*0x400,_0x39bd65=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],_0x4e600e=[{'value':0x0,'color':[0x0,0x0,0x1,0x1]},{'value':0x1,'color':[0x1,0x0,0x0,0x1]}],_0x24bae3=[{'value':0x0,'opacity':0x0},{'value':0x1,'opacity':0x1}],_0x1c2b5e=()=>({'color':{'srcFactor':'one','dstFactor':_0x3a9ea2(0x1c2),'operation':'add'},'alpha':{'srcFactor':_0x3a9ea2(0x353),'dstFactor':_0x3a9ea2(0x1c2),'operation':'add'}}),_0x3b3848=(_0x2fd23d,_0x513bf8)=>{const _0x40f23f=_0x3a9ea2;if(_0x2fd23d[_0x40f23f(0x2e8)]!==0x10||_0x2fd23d[_0x40f23f(0x3fd)](_0x2e258a=>!Number[_0x40f23f(0x2ba)](_0x2e258a)))throw Error(_0x513bf8+'\x20must\x20contain\x20sixteen\x20finite\x20values.\x20'+_0x513bf8+'\x20必须包含十六个有限数值。');},_0x4f0969=(_0x2e4f04,_0x4d3773)=>{const _0xc3cba6=_0x3a9ea2;if(!Number[_0xc3cba6(0x2ba)](_0x2e4f04)||_0x2e4f04<0x0)throw Error(_0x4d3773+_0xc3cba6(0x2df)+_0x4d3773+_0xc3cba6(0x414));return _0x2e4f04;},_0x51dc63=(_0x2e437b,_0x2ba60a)=>{const _0x113428=_0x3a9ea2;if(!Number['isFinite'](_0x2e437b)||_0x2e437b<=0x0)throw Error(_0x2ba60a+_0x113428(0x479)+_0x2ba60a+_0x113428(0x27b));return _0x2e437b;},_0x41f657=_0x41e3d8=>_0x41e3d8['map'](_0x45345e=>({..._0x45345e,'vertices':new Float32Array(_0x45345e[_0x3a9ea2(0x37a)])})),_0x1d5ecd=_0x46428f=>{const _0x1f1005=_0x3a9ea2;let _0x53fdbc=_0x46428f[_0x1f1005(0x357)]+_0x46428f[_0x1f1005(0x3ca)]*0x2,_0x3cc58c=_0x46428f[_0x1f1005(0x306)]+_0x46428f[_0x1f1005(0x3ca)]*0x2,_0x5ae4ca=_0x46428f[_0x1f1005(0x430)]+_0x46428f[_0x1f1005(0x3ca)]*0x2;return Math[_0x1f1005(0x37e)](_0x53fdbc*Float32Array['BYTES_PER_ELEMENT']/0x100)*0x100*_0x3cc58c*_0x5ae4ca+0x10;};var _0x430b40=class{[_0x3a9ea2(0x18c)];['lifecycleState']='idle';[_0x3a9ea2(0x29d)]=null;[_0x3a9ea2(0x2d5)]=null;[_0x3a9ea2(0x3fc)]=null;[_0x3a9ea2(0x2b7)]=null;['format']=null;[_0x3a9ea2(0x235)]=null;[_0x3a9ea2(0x225)]=null;['geometryBindGroupLayout']=null;[_0x3a9ea2(0x207)]=null;['volumeBindGroupLayout']=null;[_0x3a9ea2(0x37c)]=null;['sliceBindGroupLayout']=null;[_0x3a9ea2(0x3b6)]=null;[_0x3a9ea2(0x3ab)]=null;[_0x3a9ea2(0x313)]=null;[_0x3a9ea2(0x36e)]=null;[_0x3a9ea2(0x188)]=null;[_0x3a9ea2(0x32b)]=null;['sceneLinePipeline']=null;[_0x3a9ea2(0x3e4)]=null;['overlayLinePipeline']=null;[_0x3a9ea2(0x19d)]=null;['overlaySlicePipeline']=null;[_0x3a9ea2(0x223)]=null;[_0x3a9ea2(0x3f0)]=null;[_0x3a9ea2(0x25a)]=null;[_0x3a9ea2(0x1ce)]=null;[_0x3a9ea2(0x39b)]=null;['axisResources']=null;[_0x3a9ea2(0x474)]=null;[_0x3a9ea2(0x34b)]={'viewProjection':_0x39bd65,'inverseViewProjection':_0x39bd65,'cameraPosition':[0x0,0x0,0x2]};[_0x3a9ea2(0x1e0)]=_0x39bd65;['inverseModelMatrix']=_0x39bd65;['clipMinimum']=[0x0,0x0,0x0];[_0x3a9ea2(0x401)]=[0x1,0x1,0x1];['renderMode']=_0x3a9ea2(0x3b0);[_0x3a9ea2(0x23e)]=0.3;[_0x3a9ea2(0x399)]=0x1;[_0x3a9ea2(0x1d8)]=0.005;[_0x3a9ea2(0x3d5)]=0x1;['colorMode']=_0x3a9ea2(0x3d3);[_0x3a9ea2(0x1ef)]=null;[_0x3a9ea2(0x448)]=_0x4e600e;['opacityStops']=_0x24bae3;[_0x3a9ea2(0x45a)]=0x0;['submittedFrameCount']=0x0;[_0x3a9ea2(0x1cc)]=0x0;['height']=0x0;['initializationGeneration']=0x0;[_0x3a9ea2(0x317)]=0x0;[_0x3a9ea2(0x37b)]=[];[_0x3a9ea2(0x345)]=[];[_0x3a9ea2(0x1df)]=[];[_0x3a9ea2(0x19f)]=new Map();[_0x3a9ea2(0x1c1)]=[];['uploadPump']=null;['uploadGeneration']=0x0;[_0x3a9ea2(0x2a5)]=null;[_0x3a9ea2(0x390)]=0x0;['uploadedBrickCount']=0x0;[_0x3a9ea2(0x19a)]=0x0;['maximumUploadBatchBytes']=0x0;[_0x3a9ea2(0x43c)]=!0x1;[_0x3a9ea2(0x1c8)]=null;constructor(_0x3d427b={}){const _0x5af594=_0x3a9ea2;this[_0x5af594(0x18c)]={..._0x3d427b};}get[_0x3a9ea2(0x465)](){const _0x59f745=_0x3a9ea2;return this[_0x59f745(0x198)];}get[_0x3a9ea2(0x2a4)](){const _0x143118=_0x3a9ea2;let _0x2932e4=this[_0x143118(0x3f0)]?.[_0x143118(0x2a4)]??{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this[_0x143118(0x18c)][_0x143118(0x234)]??this[_0x143118(0x18c)][_0x143118(0x292)]??_0x217e01,'budgetLimited':!0x1,'skippedSamples':0x0,'skippedCells':0x0},_0x18be40=this[_0x143118(0x39b)]?.[_0x143118(0x2a4)]??{'uniformUpdateCount':0x0,'resourceRebuildCount':0x0};return{'logicalBrickCount':_0x2932e4[_0x143118(0x426)],'residentBrickCount':this['atlas']?.[_0x143118(0x370)]??0x0,'pendingBrickCount':0x0,'atlasCapacity':_0x2932e4[_0x143118(0x2d0)],'gpuBytes':_0x2932e4['gpuBytes'],'memoryLimitBytes':_0x2932e4['memoryLimitBytes'],'budgetLimited':_0x2932e4[_0x143118(0x3ac)],'frameTimeMilliseconds':this[_0x143118(0x317)],'submittedFrameCount':this[_0x143118(0x43f)],'uploadedBrickCount':this[_0x143118(0x2cf)],'uploadBatchCount':this[_0x143118(0x19a)],'maximumUploadBatchBytes':this[_0x143118(0x368)],'sliceUniformUpdateCount':_0x18be40['uniformUpdateCount'],'sliceResourceRebuildCount':_0x18be40[_0x143118(0x3ad)],'skippedSamples':_0x2932e4[_0x143118(0x272)],'skippedCells':_0x2932e4[_0x143118(0x41b)]};}[_0x3a9ea2(0x3aa)](_0xa82f8a){const _0x31735e=_0x3a9ea2;this[_0x31735e(0x1c8)]=_0xa82f8a;}async[_0x3a9ea2(0x39c)](_0x16c755){const _0x16cb76=_0x3a9ea2;if(this[_0x16cb76(0x198)]===_0x16cb76(0x28a))throw Error('A\x20destroyed\x20WebGPU\x20volume\x20renderer\x20cannot\x20be\x20initialized\x20again.\x20已销毁的\x20WebGPU\x20体积渲染器不能再次初始化。');let _0x59ade6=++this[_0x16cb76(0x469)];this[_0x16cb76(0x298)](),this['canvas']=_0x16c755,this[_0x16cb76(0x198)]=_0x16cb76(0x35d);let _0x5e7f55=navigator[_0x16cb76(0x229)];if(!_0x5e7f55)throw this[_0x16cb76(0x198)]=_0x16cb76(0x1e2),Error(_0x16cb76(0x24a));let _0x4d32c0=await _0x5e7f55[_0x16cb76(0x455)]({'powerPreference':this[_0x16cb76(0x18c)][_0x16cb76(0x238)]??_0x16cb76(0x3c8)});if(_0x59ade6!==this[_0x16cb76(0x469)])return;if(!_0x4d32c0)throw this[_0x16cb76(0x198)]='idle',Error('Failed\x20to\x20acquire\x20a\x20WebGPU\x20adapter\x20for\x20the\x20volume\x20scene.\x20无法为体积场景获取\x20WebGPU\x20adapter。');let _0x3da3e4=await _0x4d32c0[_0x16cb76(0x18f)]();if(_0x59ade6!==this[_0x16cb76(0x469)]){_0x3da3e4[_0x16cb76(0x421)]();return;}let _0x1e56cf=_0x16c755[_0x16cb76(0x318)](_0x16cb76(0x315));if(!_0x1e56cf)throw _0x3da3e4[_0x16cb76(0x421)](),this[_0x16cb76(0x198)]=_0x16cb76(0x1e2),Error(_0x16cb76(0x43b));let _0x270ab2=_0x5e7f55[_0x16cb76(0x1f3)]();_0x1e56cf[_0x16cb76(0x1d5)]({'device':_0x3da3e4,'format':_0x270ab2,'alphaMode':_0x16cb76(0x38d),'usage':GPUTextureUsage[_0x16cb76(0x369)]|GPUTextureUsage['COPY_SRC']}),this['adapter']=_0x4d32c0,this[_0x16cb76(0x3fc)]=_0x3da3e4,this['context']=_0x1e56cf,this[_0x16cb76(0x2cd)]=_0x270ab2,_0x3da3e4[_0x16cb76(0x332)](_0x16cb76(0x492)),this[_0x16cb76(0x213)]();let _0x1012e3=await _0x3da3e4[_0x16cb76(0x2ab)]();if(_0x1012e3)throw this[_0x16cb76(0x298)](),this[_0x16cb76(0x198)]='idle',Error(_0x16cb76(0x30d)+_0x1012e3[_0x16cb76(0x442)]+_0x16cb76(0x34a));if(this['watchDeviceLost'](_0x3da3e4),this[_0x16cb76(0x198)]=_0x16cb76(0x2fc),this[_0x16cb76(0x474)]){this[_0x16cb76(0x326)](this['metadata']);let _0x5799d5=Array[_0x16cb76(0x18d)](this[_0x16cb76(0x19f)][_0x16cb76(0x489)]());await Promise['all'](_0x5799d5[_0x16cb76(0x42f)](([_0x4efea6,_0xf2e5d7])=>this[_0x16cb76(0x20c)]({'logicalIndex':_0x4efea6,'values':_0xf2e5d7},!0x1)));}this[_0x16cb76(0x47d)](),this['getProfileResources']()[_0x16cb76(0x2e9)](this[_0x16cb76(0x37b)]),this[_0x16cb76(0x1f0)]()[_0x16cb76(0x2e9)](this['cachedSlices']),this[_0x16cb76(0x1bb)]()[_0x16cb76(0x2e9)](this[_0x16cb76(0x1df)]),this[_0x16cb76(0x3df)](_0x16c755['width']||_0x16c755[_0x16cb76(0x334)]||0x1,_0x16c755['height']||_0x16c755[_0x16cb76(0x1cf)]||0x1);}['setSource'](_0x3e2eb5){const _0x109d55=_0x3a9ea2;this[_0x109d55(0x295)]+=0x1,this[_0x109d55(0x1b1)](new DOMException('Volume\x20brick\x20upload\x20was\x20superseded\x20by\x20a\x20new\x20source.\x20体积砖上传已被新数据源替代。','AbortError')),this[_0x109d55(0x474)]={..._0x3e2eb5},this['cachedBricks'][_0x109d55(0x33b)](),this['uploadedBrickCount']=0x0,this['uploadBatchCount']=0x0,this[_0x109d55(0x368)]=0x0,this[_0x109d55(0x198)]===_0x109d55(0x2fc)&&this['configureSourceResources'](_0x3e2eb5);}[_0x3a9ea2(0x380)](_0x5f2f58){const _0x42e346=_0x3a9ea2;return this[_0x42e346(0x20c)](_0x5f2f58,!0x0);}[_0x3a9ea2(0x35b)](_0x1fb2a7){const _0x18d1af=_0x3a9ea2;this[_0x18d1af(0x3f1)]()[_0x18d1af(0x19e)](_0x1fb2a7,this[_0x18d1af(0x45a)]);for(let _0x1cfd6f of _0x1fb2a7){let _0x1dbeac=this[_0x18d1af(0x19f)][_0x18d1af(0x2a8)](_0x1cfd6f);_0x1dbeac&&(this[_0x18d1af(0x19f)][_0x18d1af(0x255)](_0x1cfd6f),this[_0x18d1af(0x19f)][_0x18d1af(0x46d)](_0x1cfd6f,_0x1dbeac));}}[_0x3a9ea2(0x3b9)](_0x113594){const _0x3aedd3=_0x3a9ea2;_0x3b3848(_0x113594[_0x3aedd3(0x3f2)],'viewProjection'),_0x3b3848(_0x113594['inverseViewProjection'],_0x3aedd3(0x338)),this[_0x3aedd3(0x34b)]={'viewProjection':[..._0x113594['viewProjection']],'inverseViewProjection':[..._0x113594[_0x3aedd3(0x338)]],'cameraPosition':[..._0x113594[_0x3aedd3(0x3af)]]};}[_0x3a9ea2(0x2ee)](_0x26ee0e){const _0x216fa5=_0x3a9ea2;this[_0x216fa5(0x37b)]=_0x41f657(_0x26ee0e),this[_0x216fa5(0x283)]()[_0x216fa5(0x2e9)](_0x26ee0e);}[_0x3a9ea2(0x1a2)](_0x3526f8){const _0x525bbf=_0x3a9ea2;this[_0x525bbf(0x345)]=_0x3526f8['map'](_0x5d331f=>({..._0x5d331f})),this['getSliceResources']()[_0x525bbf(0x2e9)](_0x3526f8);}[_0x3a9ea2(0x2c1)](_0x4e511b){this['cachedAxes']=_0x41f657(_0x4e511b),this['getAxisResources']()['replace'](_0x4e511b);}['setTransfer'](_0x370490,_0x2160b2,_0x329a68){const _0x38917f=_0x3a9ea2;this[_0x38917f(0x448)]=_0x370490[_0x38917f(0x42f)](_0xbe0a91=>({'value':_0xbe0a91[_0x38917f(0x431)],'color':[..._0xbe0a91[_0x38917f(0x224)]]})),this[_0x38917f(0x32c)]=_0x2160b2['map'](_0x325ec1=>({..._0x325ec1})),_0x329a68&&(this[_0x38917f(0x330)]=_0x329a68),this[_0x38917f(0x198)]===_0x38917f(0x2fc)&&this['updateTransferResources']();}[_0x3a9ea2(0x3a6)](_0x1cd242){const _0x410f78=_0x3a9ea2;_0x1cd242['modelMatrix']&&(_0x3b3848(_0x1cd242[_0x410f78(0x1e0)],_0x410f78(0x1e0)),this[_0x410f78(0x1e0)]=[..._0x1cd242[_0x410f78(0x1e0)]]),_0x1cd242[_0x410f78(0x1ca)]&&(_0x3b3848(_0x1cd242[_0x410f78(0x1ca)],_0x410f78(0x1ca)),this[_0x410f78(0x1ca)]=[..._0x1cd242['inverseModelMatrix']]),_0x1cd242[_0x410f78(0x26c)]&&(this['clipMinimum']=[..._0x1cd242[_0x410f78(0x26c)]]),_0x1cd242[_0x410f78(0x401)]&&(this['clipMaximum']=[..._0x1cd242[_0x410f78(0x401)]]),_0x1cd242[_0x410f78(0x2c4)]&&(this[_0x410f78(0x2c4)]=_0x1cd242[_0x410f78(0x2c4)]),_0x1cd242[_0x410f78(0x23e)]!==void 0x0&&(this['opacity']=_0x4f0969(_0x1cd242[_0x410f78(0x23e)],_0x410f78(0x23e))),_0x1cd242[_0x410f78(0x399)]!==void 0x0&&(this[_0x410f78(0x399)]=_0x4f0969(_0x1cd242[_0x410f78(0x399)],_0x410f78(0x399))),_0x1cd242[_0x410f78(0x1d8)]!==void 0x0&&(this[_0x410f78(0x1d8)]=_0x51dc63(_0x1cd242['stepLength'],_0x410f78(0x1d8))),_0x1cd242['volumeDimFactor']!==void 0x0&&(this[_0x410f78(0x3d5)]=_0x4f0969(_0x1cd242[_0x410f78(0x3d5)],_0x410f78(0x3d5))),_0x1cd242['colorMode']&&(this['colorMode']=_0x1cd242[_0x410f78(0x330)]),_0x1cd242[_0x410f78(0x1ef)]!==void 0x0&&(this[_0x410f78(0x1ef)]=_0x1cd242['geographicTransform']?{..._0x1cd242['geographicTransform']}:null);}[_0x3a9ea2(0x3df)](_0x5a48e1,_0x137758){const _0x8ca299=_0x3a9ea2;if(!Number[_0x8ca299(0x34f)](_0x5a48e1)||!Number[_0x8ca299(0x34f)](_0x137758)||_0x5a48e1<=0x0||_0x137758<=0x0)throw Error(_0x8ca299(0x48a));let _0x2aae13=this['getCanvas']();_0x2aae13[_0x8ca299(0x1cc)]=_0x5a48e1,_0x2aae13[_0x8ca299(0x22a)]=_0x137758,this[_0x8ca299(0x1cc)]=_0x5a48e1,this[_0x8ca299(0x22a)]=_0x137758,this[_0x8ca299(0x1a0)]()['resize'](_0x5a48e1,_0x137758),this[_0x8ca299(0x31f)]();}[_0x3a9ea2(0x273)](){const _0x194b18=_0x3a9ea2;if(this['lifecycleState']!==_0x194b18(0x2fc)||!this[_0x194b18(0x474)]||this[_0x194b18(0x1cc)]<=0x0||this[_0x194b18(0x22a)]<=0x0||this['frameInFlight'])return!0x1;let _0x4b822a=performance[_0x194b18(0x2f2)]();this[_0x194b18(0x45a)]+=0x1,this[_0x194b18(0x44e)]();let _0x275399=this[_0x194b18(0x24f)](),_0x4a3a83=_0x275399[_0x194b18(0x375)]({'label':'volume\x20scene\x20frame'}),_0x1587d5=this[_0x194b18(0x318)]()['getCurrentTexture']()['createView']();return this[_0x194b18(0x3e6)](_0x4a3a83,_0x1587d5),this[_0x194b18(0x3ff)](_0x4a3a83,_0x1587d5),this[_0x194b18(0x254)](_0x4a3a83,_0x1587d5),_0x275399['queue'][_0x194b18(0x1e4)]([_0x4a3a83[_0x194b18(0x1fa)]()]),this[_0x194b18(0x43c)]=!0x0,this[_0x194b18(0x43f)]+=0x1,this[_0x194b18(0x317)]=Math[_0x194b18(0x1ac)](0.000001,performance['now']()-_0x4b822a),_0x275399[_0x194b18(0x3c7)][_0x194b18(0x41e)]()[_0x194b18(0x481)](()=>{const _0x3d0751=_0x194b18;this[_0x3d0751(0x3fc)]!==_0x275399||this['lifecycleState']!==_0x3d0751(0x2fc)||(this[_0x3d0751(0x43c)]=!0x1,this[_0x3d0751(0x1c8)]?.());})[_0x194b18(0x1d7)](()=>{const _0x1f9f30=_0x194b18;this[_0x1f9f30(0x3fc)]===_0x275399&&(this[_0x1f9f30(0x43c)]=!0x1);}),!0x0;}async['captureFrame'](){const _0x556faa=_0x3a9ea2;if(this[_0x556faa(0x198)]!=='ready'||!this[_0x556faa(0x474)]||this[_0x556faa(0x1cc)]<=0x0||this['height']<=0x0)throw Error(_0x556faa(0x2f8));let _0x32f778=this[_0x556faa(0x24f)](),_0x338ef4=this[_0x556faa(0x1cc)]*0x4,_0x339680=Math['ceil'](_0x338ef4/0x100)*0x100,_0x44cacd=_0x32f778[_0x556faa(0x242)]({'label':'volume\x20frame\x20readback','size':_0x339680*this['height'],'usage':GPUBufferUsage[_0x556faa(0x1f4)]|GPUBufferUsage[_0x556faa(0x487)]});_0x32f778[_0x556faa(0x332)](_0x556faa(0x492)),this['frameIndex']+=0x1,this[_0x556faa(0x44e)]();let _0x465d72=_0x32f778[_0x556faa(0x375)]({'label':_0x556faa(0x276)}),_0x176c4a=this['getContext']()[_0x556faa(0x3ba)](),_0x4d9316=_0x176c4a[_0x556faa(0x429)]();this[_0x556faa(0x3e6)](_0x465d72,_0x4d9316),this[_0x556faa(0x3ff)](_0x465d72,_0x4d9316),this['encodeOverlayPass'](_0x465d72,_0x4d9316),_0x465d72[_0x556faa(0x395)]({'texture':_0x176c4a},{'buffer':_0x44cacd,'bytesPerRow':_0x339680,'rowsPerImage':this[_0x556faa(0x22a)]},[this[_0x556faa(0x1cc)],this['height']]),_0x32f778[_0x556faa(0x3c7)]['submit']([_0x465d72[_0x556faa(0x1fa)]()]);let _0xe1c27b=await _0x32f778[_0x556faa(0x2ab)]();if(_0xe1c27b)throw _0x44cacd[_0x556faa(0x421)](),Error(_0x556faa(0x30a)+_0xe1c27b['message']+_0x556faa(0x2ca));await _0x44cacd[_0x556faa(0x453)](GPUMapMode[_0x556faa(0x252)]);let _0x377926=new Uint8Array(_0x44cacd[_0x556faa(0x1b6)]()),_0x41595c=new Uint8Array(_0x338ef4*this[_0x556faa(0x22a)]),_0x49d36d=this[_0x556faa(0x2f1)]()===_0x556faa(0x2fd);for(let _0x560e8f=0x0;_0x560e8f<this[_0x556faa(0x22a)];_0x560e8f+=0x1){let _0x2b5b9b=_0x377926[_0x556faa(0x2ef)](_0x560e8f*_0x339680,_0x560e8f*_0x339680+_0x338ef4),_0x379bd0=_0x560e8f*_0x338ef4;if(!_0x49d36d){_0x41595c[_0x556faa(0x46d)](_0x2b5b9b,_0x379bd0);continue;}for(let _0x24940a=0x0;_0x24940a<this[_0x556faa(0x1cc)];_0x24940a+=0x1){let _0x1a5354=_0x24940a*0x4,_0x1340e7=_0x379bd0+_0x1a5354;_0x41595c[_0x1340e7]=_0x2b5b9b[_0x1a5354+0x2],_0x41595c[_0x1340e7+0x1]=_0x2b5b9b[_0x1a5354+0x1],_0x41595c[_0x1340e7+0x2]=_0x2b5b9b[_0x1a5354],_0x41595c[_0x1340e7+0x3]=_0x2b5b9b[_0x1a5354+0x3];}}return _0x44cacd['unmap'](),_0x44cacd[_0x556faa(0x421)](),this[_0x556faa(0x43f)]+=0x1,{'width':this[_0x556faa(0x1cc)],'height':this[_0x556faa(0x22a)],'pixels':_0x41595c};}['destroy'](){const _0x2a7110=_0x3a9ea2;this[_0x2a7110(0x198)]!==_0x2a7110(0x28a)&&(++this[_0x2a7110(0x469)],this['releaseGpuResources'](),this['canvas']=null,this[_0x2a7110(0x474)]=null,this[_0x2a7110(0x1c8)]=null,this['lifecycleState']=_0x2a7110(0x28a));}[_0x3a9ea2(0x213)](){const _0x907d16=_0x3a9ea2;let _0x5db96=this[_0x907d16(0x24f)]();this[_0x907d16(0x235)]=_0x5db96[_0x907d16(0x242)]({'label':_0x907d16(0x267),'size':0x190,'usage':GPUBufferUsage[_0x907d16(0x215)]|GPUBufferUsage[_0x907d16(0x1f4)]}),this[_0x907d16(0x225)]=_0x5db96[_0x907d16(0x242)]({'label':_0x907d16(0x41c),'size':0x60,'usage':GPUBufferUsage['UNIFORM']|GPUBufferUsage[_0x907d16(0x1f4)]}),this[_0x907d16(0x371)]=_0x5db96['createBindGroupLayout']({'label':_0x907d16(0x475),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x907d16(0x3c3)]|GPUShaderStage[_0x907d16(0x38e)],'buffer':{'type':_0x907d16(0x2b5)}}]}),this[_0x907d16(0x207)]=_0x5db96[_0x907d16(0x1c3)]({'label':'volume\x20scene\x20bind\x20group\x20layout','entries':[{'binding':0x0,'visibility':GPUShaderStage['VERTEX']|GPUShaderStage['FRAGMENT'],'buffer':{'type':_0x907d16(0x2b5)}},{'binding':0x1,'visibility':GPUShaderStage[_0x907d16(0x38e)],'texture':{'sampleType':_0x907d16(0x30f)}}]}),this[_0x907d16(0x3a4)]=_0x5db96[_0x907d16(0x1c3)]({'label':_0x907d16(0x3c6),'entries':[...Array[_0x907d16(0x18d)]({'length':0x8},(_0x3f8c6f,_0x133d94)=>({'binding':_0x133d94,'visibility':GPUShaderStage[_0x907d16(0x38e)],'texture':{'sampleType':_0x907d16(0x2c2),'viewDimension':'3d'}})),{'binding':0x8,'visibility':GPUShaderStage[_0x907d16(0x38e)],'buffer':{'type':_0x907d16(0x366)}},{'binding':0x9,'visibility':GPUShaderStage[_0x907d16(0x38e)],'buffer':{'type':'uniform'}}]}),this[_0x907d16(0x37c)]=_0x5db96[_0x907d16(0x1c3)]({'label':_0x907d16(0x3ec),'entries':[0x0,0x1,0x2,0x3][_0x907d16(0x42f)](_0x105752=>({'binding':_0x105752,'visibility':GPUShaderStage[_0x907d16(0x38e)],'buffer':{'type':_0x907d16(0x366)}}))}),this['sliceBindGroupLayout']=_0x5db96[_0x907d16(0x1c3)]({'label':_0x907d16(0x1f1),'entries':[{'binding':0x0,'visibility':GPUShaderStage[_0x907d16(0x3c3)]|GPUShaderStage[_0x907d16(0x38e)],'buffer':{'type':_0x907d16(0x2b5)}}]}),this['attachments']=new _0x5b4554(_0x5db96),this['transferResources']=new _0x49e786(_0x5db96),this[_0x907d16(0x1ce)]=new _0x7a802e(_0x5db96),this['sliceResources']=new _0x1d4dd8(_0x5db96,this[_0x907d16(0x24c)]()),this[_0x907d16(0x2da)]=new _0x7a802e(_0x5db96),this[_0x907d16(0x218)]();}[_0x3a9ea2(0x218)](){const _0x2a8b09=_0x3a9ea2;let _0x7307ee=this['getDevice'](),_0x183d00=this[_0x2a8b09(0x2f1)](),_0x59b52d=this['getGeometryBindGroupLayout'](),_0x3b4f2c=this[_0x2a8b09(0x25b)](),_0x3ae2bd=_0x7307ee[_0x2a8b09(0x41d)]({'label':_0x2a8b09(0x25d),'code':_0x4fab04}),_0x15e175={'module':_0x3ae2bd,'entryPoint':'vertexMain','buffers':[{'arrayStride':0x1c,'attributes':[{'shaderLocation':0x0,'offset':0x0,'format':'float32x3'},{'shaderLocation':0x1,'offset':0xc,'format':_0x2a8b09(0x1b5)}]}]},_0x107139={'module':_0x3ae2bd,'entryPoint':_0x2a8b09(0x1a8),'targets':[{'format':_0x183d00,'blend':_0x1c2b5e()}]},_0x4c0137=(_0x2bef7a,_0x3dbcbb)=>_0x7307ee['createRenderPipeline']({'layout':_0x7307ee[_0x2a8b09(0x40b)]({'bindGroupLayouts':[_0x59b52d]}),'vertex':_0x15e175,'fragment':_0x107139,'primitive':{'topology':_0x2bef7a},'depthStencil':_0x3dbcbb?{'format':_0x2a8b09(0x249),'depthWriteEnabled':!0x0,'depthCompare':_0x2a8b09(0x404)}:void 0x0});this[_0x2a8b09(0x32b)]=_0x4c0137(_0x2a8b09(0x29b),!0x0),this['sceneLinePipeline']=_0x4c0137(_0x2a8b09(0x186),!0x0),this[_0x2a8b09(0x3e4)]=_0x4c0137(_0x2a8b09(0x29b),!0x1),this[_0x2a8b09(0x1ad)]=_0x4c0137(_0x2a8b09(0x186),!0x1);let _0x54b764=_0x7307ee[_0x2a8b09(0x41d)]({'label':'volume\x20raymarch\x20shader','code':_0x133e48});this['volumePipeline']=_0x7307ee[_0x2a8b09(0x34c)]({'layout':_0x7307ee['createPipelineLayout']({'bindGroupLayouts':[_0x3b4f2c,this['getVolumeBindGroupLayout'](),this[_0x2a8b09(0x452)]()]}),'vertex':{'module':_0x54b764,'entryPoint':'vertexMain'},'fragment':{'module':_0x54b764,'entryPoint':_0x2a8b09(0x1a8),'targets':[{'format':_0x183d00,'blend':_0x1c2b5e()}]},'primitive':{'topology':_0x2a8b09(0x29b)}});let _0x3e02b9=_0x7307ee[_0x2a8b09(0x41d)]({'label':_0x2a8b09(0x45f),'code':_0x3f7251}),_0x3c23ef=_0x4f6a88=>_0x7307ee[_0x2a8b09(0x34c)]({'layout':_0x7307ee[_0x2a8b09(0x40b)]({'bindGroupLayouts':[_0x59b52d,this[_0x2a8b09(0x259)](),this[_0x2a8b09(0x452)](),this['getSliceBindGroupLayout']()]}),'vertex':{'module':_0x3e02b9,'entryPoint':_0x2a8b09(0x2e2)},'fragment':{'module':_0x3e02b9,'entryPoint':_0x2a8b09(0x1a8),'targets':[{'format':_0x183d00,'blend':_0x1c2b5e()}]},'primitive':{'topology':_0x2a8b09(0x29b)},'depthStencil':_0x4f6a88?{'format':'depth32float','depthWriteEnabled':!0x0,'depthCompare':_0x2a8b09(0x404)}:void 0x0});this[_0x2a8b09(0x19d)]=_0x3c23ef(!0x0),this[_0x2a8b09(0x1a6)]=_0x3c23ef(!0x1);}[_0x3a9ea2(0x326)](_0x2ea177){const _0x56216c=_0x3a9ea2;this[_0x56216c(0x3f0)]?.[_0x56216c(0x421)](),this[_0x56216c(0x3f0)]=new _0x43815a(this['getDevice'](),this[_0x56216c(0x18c)][_0x56216c(0x292)]??_0x217e01,this[_0x56216c(0x18c)][_0x56216c(0x234)]??this[_0x56216c(0x18c)][_0x56216c(0x292)]??_0x217e01),this['atlas'][_0x56216c(0x1d5)](_0x2ea177),this[_0x56216c(0x413)](),this[_0x56216c(0x313)]=this['atlas'][_0x56216c(0x31e)](this[_0x56216c(0x259)](),this[_0x56216c(0x1be)]());}[_0x3a9ea2(0x20c)](_0x11dda5,_0x177044){return new Promise((_0x23dfc3,_0x221cca)=>{const _0x1d892d=_0x571d;this['pendingBrickUploads'][_0x1d892d(0x23d)]({'upload':_0x11dda5,'generation':this['uploadGeneration'],'cacheOnSuccess':_0x177044,'resolve':_0x23dfc3,'reject':_0x221cca}),this[_0x1d892d(0x28b)]();});}[_0x3a9ea2(0x28b)](){const _0x13c281=_0x3a9ea2;this[_0x13c281(0x27d)]||=Promise['resolve']()['then'](()=>this[_0x13c281(0x488)]())[_0x13c281(0x205)](()=>{const _0x38738a=_0x13c281;this['uploadPump']=null,this['pendingBrickUploads'][_0x38738a(0x2e8)]>0x0&&this[_0x38738a(0x198)]===_0x38738a(0x2fc)&&this[_0x38738a(0x28b)]();});}async[_0x3a9ea2(0x488)](){const _0xdeff42=_0x3a9ea2;for(;this[_0xdeff42(0x1c1)][_0xdeff42(0x2e8)]>0x0&&this[_0xdeff42(0x198)]===_0xdeff42(0x2fc)&&this[_0xdeff42(0x474)];){let _0x201176=this['getDevice'](),_0x4ecbb6=_0x1d5ecd(this[_0xdeff42(0x474)]),_0x241320=Math[_0xdeff42(0x3e9)](0x4000000,Math[_0xdeff42(0x1ac)](_0x4ecbb6,Math[_0xdeff42(0x248)](_0x201176[_0xdeff42(0x373)]['maxBufferSize']/0x4))),_0x2e80d8=[],_0x21e5e9=0x0;for(;this[_0xdeff42(0x1c1)][_0xdeff42(0x2e8)]>0x0&&_0x2e80d8[_0xdeff42(0x2e8)]<0x10;){let _0xbc5f60=this['pendingBrickUploads'][0x0];if(_0x2e80d8[_0xdeff42(0x2e8)]>0x0&&_0x21e5e9+_0x4ecbb6>_0x241320)break;if(this[_0xdeff42(0x1c1)][_0xdeff42(0x3fa)](),_0xbc5f60[_0xdeff42(0x352)]!==this['uploadGeneration']){_0xbc5f60[_0xdeff42(0x48c)](new DOMException(_0xdeff42(0x18b),_0xdeff42(0x3bd)));continue;}_0x2e80d8[_0xdeff42(0x23d)](_0xbc5f60),_0x21e5e9+=_0x4ecbb6;}if(_0x2e80d8['length']!==0x0)try{let _0x1b9aba=[],_0x28f495=0x0;for(let _0x2981a7 of _0x2e80d8){let _0x3ddaa0=this[_0xdeff42(0x3f1)]()[_0xdeff42(0x3d4)](_0x2981a7[_0xdeff42(0x386)],this[_0xdeff42(0x45a)]),_0x37b9f4=Math[_0xdeff42(0x37e)](_0x28f495/0x100)*0x100;_0x1b9aba[_0xdeff42(0x23d)]({'item':_0x2981a7,'prepared':_0x3ddaa0,'bufferOffset':_0x37b9f4}),_0x28f495=_0x37b9f4+_0x3ddaa0[_0xdeff42(0x1a1)]['byteLength'];}let _0x35ebbc=this[_0xdeff42(0x456)](_0x28f495);await _0x35ebbc[_0xdeff42(0x453)](GPUMapMode[_0xdeff42(0x409)]);let _0x4f8f3d=new Uint8Array(_0x35ebbc[_0xdeff42(0x1b6)]());for(let _0x58257f of _0x1b9aba){let _0x3706f7=_0x58257f[_0xdeff42(0x447)]['values'];_0x4f8f3d['set'](new Uint8Array(_0x3706f7[_0xdeff42(0x47e)],_0x3706f7[_0xdeff42(0x48e)],_0x3706f7['byteLength']),_0x58257f[_0xdeff42(0x350)]);}_0x35ebbc[_0xdeff42(0x28e)]();let _0x786703=_0x201176['createCommandEncoder']({'label':_0xdeff42(0x48f)});for(let _0x5d0b62 of _0x1b9aba)this[_0xdeff42(0x3f1)]()[_0xdeff42(0x394)](_0x786703,_0x35ebbc,_0x5d0b62['bufferOffset'],_0x5d0b62[_0xdeff42(0x447)]);_0x201176['queue']['submit']([_0x786703[_0xdeff42(0x1fa)]()]),await _0x201176['queue']['onSubmittedWorkDone'](),await new Promise(_0x1133df=>setTimeout(_0x1133df,0x0)),this[_0xdeff42(0x2cf)]+=_0x2e80d8[_0xdeff42(0x2e8)],this[_0xdeff42(0x19a)]+=0x1,this[_0xdeff42(0x368)]=Math[_0xdeff42(0x1ac)](this[_0xdeff42(0x368)],_0x21e5e9);for(let _0x5bad3e of _0x2e80d8){if(_0x5bad3e[_0xdeff42(0x352)]!==this[_0xdeff42(0x295)]){_0x5bad3e['reject'](new DOMException(_0xdeff42(0x18b),_0xdeff42(0x3bd)));continue;}_0x5bad3e[_0xdeff42(0x382)]&&this[_0xdeff42(0x184)](_0x5bad3e[_0xdeff42(0x386)]),_0x5bad3e[_0xdeff42(0x203)]();}}catch(_0x595de3){for(let _0xed93e1 of _0x2e80d8)_0xed93e1[_0xdeff42(0x48c)](_0x595de3);}}}['getUploadStagingBuffer'](_0x395b83){const _0x2b922c=_0x3a9ea2;let _0x47e98b=Math[_0x2b922c(0x1ac)](0x100,Math['ceil'](_0x395b83/0x100)*0x100);return this[_0x2b922c(0x2a5)]&&this[_0x2b922c(0x390)]>=_0x47e98b?this[_0x2b922c(0x2a5)]:(this['uploadStagingBuffer']?.[_0x2b922c(0x421)](),this[_0x2b922c(0x2a5)]=this['getDevice']()['createBuffer']({'label':_0x2b922c(0x2a3),'size':_0x47e98b,'usage':GPUBufferUsage[_0x2b922c(0x1b9)]|GPUBufferUsage[_0x2b922c(0x33f)]}),this['uploadStagingBufferSize']=_0x47e98b,this[_0x2b922c(0x2a5)]);}['cacheBrickUpload'](_0x537889){const _0x3a71a7=_0x3a9ea2;for(this['cachedBricks'][_0x3a71a7(0x255)](_0x537889[_0x3a71a7(0x1e5)]),this[_0x3a71a7(0x19f)][_0x3a71a7(0x46d)](_0x537889['logicalIndex'],new Float32Array(_0x537889[_0x3a71a7(0x1a1)]));this[_0x3a71a7(0x19f)][_0x3a71a7(0x439)]>this[_0x3a71a7(0x2a4)][_0x3a71a7(0x2d0)];){let _0x1994e4=this[_0x3a71a7(0x19f)][_0x3a71a7(0x1c4)]()[_0x3a71a7(0x43d)]()['value'];if(_0x1994e4===void 0x0)break;this[_0x3a71a7(0x19f)][_0x3a71a7(0x255)](_0x1994e4);}}[_0x3a9ea2(0x1b1)](_0x36d560){const _0x519989=_0x3a9ea2;for(let _0x11e67c of this[_0x519989(0x1c1)][_0x519989(0x1c5)](0x0))_0x11e67c['reject'](_0x36d560);}[_0x3a9ea2(0x47d)](){const _0x878032=_0x3a9ea2;let _0x3f34ec=this['getTransferResources']();_0x3f34ec[_0x878032(0x3a6)](this[_0x878032(0x448)],this[_0x878032(0x32c)]),this['transferBindGroup']=_0x3f34ec[_0x878032(0x31e)](this[_0x878032(0x452)]());}[_0x3a9ea2(0x31f)](){const _0x24325d=_0x3a9ea2;!this['sceneParamsBuffer']||!this[_0x24325d(0x223)]||!this[_0x24325d(0x371)]||!this[_0x24325d(0x207)]||(this[_0x24325d(0x3b6)]=this[_0x24325d(0x24f)]()['createBindGroup']({'label':'volume\x20geometry\x20bind\x20group','layout':this[_0x24325d(0x371)],'entries':[{'binding':0x0,'resource':{'buffer':this[_0x24325d(0x235)]}}]}),this[_0x24325d(0x3ab)]=this[_0x24325d(0x24f)]()[_0x24325d(0x31e)]({'label':_0x24325d(0x33c),'layout':this[_0x24325d(0x207)],'entries':[{'binding':0x0,'resource':{'buffer':this[_0x24325d(0x235)]}},{'binding':0x1,'resource':this[_0x24325d(0x223)]['sceneDepthView']}]}));}[_0x3a9ea2(0x44e)](){const _0x3dcf62=_0x3a9ea2;let _0x3e13dd=new Float32Array(0x64);_0x3e13dd['set'](this['camera'][_0x3dcf62(0x3f2)],0x0),_0x3e13dd[_0x3dcf62(0x46d)](this[_0x3dcf62(0x34b)]['inverseViewProjection'],0x10),_0x3e13dd[_0x3dcf62(0x46d)](this[_0x3dcf62(0x1e0)],0x20),_0x3e13dd[_0x3dcf62(0x46d)](this[_0x3dcf62(0x1ca)],0x30),_0x3e13dd[_0x3dcf62(0x46d)]([...this[_0x3dcf62(0x34b)][_0x3dcf62(0x3af)],0x1],0x40),_0x3e13dd[_0x3dcf62(0x46d)]([this['width'],this['height'],0x1/this[_0x3dcf62(0x1cc)],0x1/this['height']],0x44),_0x3e13dd[_0x3dcf62(0x46d)]([...this[_0x3dcf62(0x26c)],0x0],0x48),_0x3e13dd[_0x3dcf62(0x46d)]([...this[_0x3dcf62(0x401)],0x0],0x4c),_0x3e13dd['set']([+(this[_0x3dcf62(0x2c4)]===_0x3dcf62(0x1dd)),this[_0x3dcf62(0x23e)],this['densityScale'],this[_0x3dcf62(0x1d8)]],0x50),_0x3e13dd[_0x3dcf62(0x46d)]([this[_0x3dcf62(0x448)][_0x3dcf62(0x2e8)],this[_0x3dcf62(0x32c)][_0x3dcf62(0x2e8)],this[_0x3dcf62(0x3d5)],+(this['colorMode']===_0x3dcf62(0x301))],0x54);let _0x349ac2=this[_0x3dcf62(0x1ef)];_0x349ac2&&(_0x3e13dd[_0x3dcf62(0x46d)]([0x1,..._0x349ac2[_0x3dcf62(0x320)]],0x58),_0x3e13dd[_0x3dcf62(0x46d)]([_0x349ac2[_0x3dcf62(0x2f4)],_0x349ac2['semiMinorAxisScaled'],..._0x349ac2['longitudeRadians']],0x5c),_0x3e13dd[_0x3dcf62(0x46d)]([..._0x349ac2[_0x3dcf62(0x245)],..._0x349ac2[_0x3dcf62(0x403)]],0x60)),this[_0x3dcf62(0x24f)]()[_0x3dcf62(0x3c7)][_0x3dcf62(0x311)](this[_0x3dcf62(0x3a1)](),0x0,_0x3e13dd);}[_0x3a9ea2(0x413)](){const _0x179bdf=_0x3a9ea2;let _0x3ceb47=this['metadata'],_0x265df2=this[_0x179bdf(0x3f0)];if(!_0x3ceb47||!_0x265df2)return;let _0x196df1=_0x265df2[_0x179bdf(0x293)],_0x4935ab=new Uint32Array(0x60/0x4),_0x3a030f=Math[_0x179bdf(0x37e)](_0x3ceb47[_0x179bdf(0x1f2)][_0x179bdf(0x25f)]/_0x3ceb47['brickWidth']),_0x14542a=Math[_0x179bdf(0x37e)](_0x3ceb47[_0x179bdf(0x42c)][_0x179bdf(0x25f)]/_0x3ceb47[_0x179bdf(0x306)]),_0x28ad26=Math[_0x179bdf(0x37e)](_0x3ceb47[_0x179bdf(0x46c)][_0x179bdf(0x25f)]/_0x3ceb47['brickDepth']);_0x4935ab[_0x179bdf(0x46d)]([_0x3ceb47[_0x179bdf(0x1f2)][_0x179bdf(0x25f)],_0x3ceb47[_0x179bdf(0x42c)]['count'],_0x3ceb47['zAxis'][_0x179bdf(0x25f)],0x0],0x0),_0x4935ab[_0x179bdf(0x46d)]([_0x3ceb47[_0x179bdf(0x357)],_0x3ceb47[_0x179bdf(0x306)],_0x3ceb47[_0x179bdf(0x430)],0x1],0x4),_0x4935ab[_0x179bdf(0x46d)]([_0x3a030f,_0x14542a,_0x28ad26,0x0],0x8),_0x4935ab[_0x179bdf(0x46d)]([_0x196df1[_0x179bdf(0x257)],_0x196df1[_0x179bdf(0x3bf)],_0x196df1[_0x179bdf(0x491)],_0x196df1[_0x179bdf(0x2b6)]],0xc),_0x4935ab[_0x179bdf(0x46d)]([(_0x3ceb47['brickWidth']+0x2)*_0x196df1[_0x179bdf(0x257)],(_0x3ceb47[_0x179bdf(0x306)]+0x2)*_0x196df1[_0x179bdf(0x3bf)],(_0x3ceb47[_0x179bdf(0x430)]+0x2)*_0x196df1[_0x179bdf(0x491)],0x0],0x10),new Float32Array(_0x4935ab['buffer'])['set']([_0x3ceb47['noData']??0x0,_0x3ceb47['noData']===void 0x0?0x0:0x1,0x0,0x0],0x14),this[_0x179bdf(0x24f)]()['queue']['writeBuffer'](this[_0x179bdf(0x1be)](),0x0,_0x4935ab);}[_0x3a9ea2(0x3e6)](_0x357b3b,_0x29d719){const _0x27d751=_0x3a9ea2;let _0x588a82=_0x357b3b[_0x27d751(0x323)]({'label':_0x27d751(0x377),'colorAttachments':[{'view':_0x29d719,'clearValue':{'r':0x0,'g':0x0,'b':0x0,'a':0x0},'loadOp':_0x27d751(0x33b),'storeOp':_0x27d751(0x281)}],'depthStencilAttachment':{'view':this[_0x27d751(0x1a0)]()[_0x27d751(0x29f)],'depthClearValue':0x1,'depthLoadOp':'clear','depthStoreOp':_0x27d751(0x281)}});this[_0x27d751(0x17c)](_0x588a82,_0x27d751(0x221)),this[_0x27d751(0x2bb)](_0x588a82,_0x27d751(0x221)),_0x588a82[_0x27d751(0x1e7)]();}[_0x3a9ea2(0x3ff)](_0xe751e8,_0x2edc1d){const _0x1c1f1a=_0x3a9ea2;if(!this[_0x1c1f1a(0x313)]||!this[_0x1c1f1a(0x36e)]||!this[_0x1c1f1a(0x3ab)]||!this[_0x1c1f1a(0x188)])return;let _0x4acd11=_0xe751e8['beginRenderPass']({'label':_0x1c1f1a(0x22e),'colorAttachments':[{'view':_0x2edc1d,'loadOp':_0x1c1f1a(0x412),'storeOp':_0x1c1f1a(0x281)}]});_0x4acd11[_0x1c1f1a(0x296)](this[_0x1c1f1a(0x188)]),_0x4acd11[_0x1c1f1a(0x324)](0x0,this[_0x1c1f1a(0x3ab)]),_0x4acd11[_0x1c1f1a(0x324)](0x1,this['volumeBindGroup']),_0x4acd11['setBindGroup'](0x2,this[_0x1c1f1a(0x36e)]),_0x4acd11[_0x1c1f1a(0x308)](0x3),_0x4acd11[_0x1c1f1a(0x1e7)]();}[_0x3a9ea2(0x254)](_0xdc106a,_0x48cf7b){const _0x37a97d=_0x3a9ea2;let _0xfb483b=_0xdc106a[_0x37a97d(0x323)]({'label':'volume\x20always\x20visible\x20pass','colorAttachments':[{'view':_0x48cf7b,'loadOp':_0x37a97d(0x412),'storeOp':_0x37a97d(0x281)}]});this[_0x37a97d(0x17c)](_0xfb483b,_0x37a97d(0x2c7)),this[_0x37a97d(0x2bb)](_0xfb483b,_0x37a97d(0x2c7)),_0xfb483b[_0x37a97d(0x1e7)]();}[_0x3a9ea2(0x17c)](_0x17c687,_0x78b1b0){const _0x491c9f=_0x3a9ea2;let _0x5cb89a=this['geometryBindGroup'];if(!_0x5cb89a)return;let _0x472757=_0x78b1b0===_0x491c9f(0x221)?this['sceneTrianglePipeline']:this[_0x491c9f(0x3e4)],_0xe86e78=_0x78b1b0===_0x491c9f(0x221)?this[_0x491c9f(0x18a)]:this[_0x491c9f(0x1ad)];_0x472757&&(_0x17c687['setPipeline'](_0x472757),_0x17c687[_0x491c9f(0x324)](0x0,_0x5cb89a),this[_0x491c9f(0x1ce)]?.[_0x491c9f(0x308)](_0x17c687,_0x491c9f(0x29b),_0x78b1b0),this['axisResources']?.[_0x491c9f(0x308)](_0x17c687,_0x491c9f(0x29b),_0x78b1b0)),_0xe86e78&&(_0x17c687[_0x491c9f(0x296)](_0xe86e78),_0x17c687[_0x491c9f(0x324)](0x0,_0x5cb89a),this[_0x491c9f(0x1ce)]?.[_0x491c9f(0x308)](_0x17c687,_0x491c9f(0x186),_0x78b1b0),this[_0x491c9f(0x2da)]?.[_0x491c9f(0x308)](_0x17c687,_0x491c9f(0x186),_0x78b1b0));}[_0x3a9ea2(0x2bb)](_0x2b4447,_0x573830){const _0x530eb0=_0x3a9ea2;let _0x349921=_0x573830===_0x530eb0(0x221)?this['sceneSlicePipeline']:this[_0x530eb0(0x1a6)];!_0x349921||!this['geometryBindGroup']||!this[_0x530eb0(0x313)]||!this[_0x530eb0(0x36e)]||(_0x2b4447[_0x530eb0(0x324)](0x0,this[_0x530eb0(0x3b6)]),_0x2b4447['setBindGroup'](0x1,this['volumeBindGroup']),_0x2b4447[_0x530eb0(0x324)](0x2,this[_0x530eb0(0x36e)]),this['sliceResources']?.[_0x530eb0(0x308)](_0x2b4447,_0x349921,_0x573830));}['watchDeviceLost'](_0xcb6b2c){const _0x5c4f78=_0x3a9ea2;_0xcb6b2c[_0x5c4f78(0x466)][_0x5c4f78(0x481)](_0x39e0bd=>{const _0x3945c8=_0x5c4f78;if(this[_0x3945c8(0x3fc)]!==_0xcb6b2c||this[_0x3945c8(0x198)]===_0x3945c8(0x28a))return;this[_0x3945c8(0x198)]='lost',console[_0x3945c8(0x381)](_0x3945c8(0x2cb)+_0x39e0bd[_0x3945c8(0x442)]+'.\x20WebGPU\x20体积设备已丢失。');let _0x3aa766=this[_0x3945c8(0x29d)];this[_0x3945c8(0x298)](),_0x3aa766&&this['initialize'](_0x3aa766)[_0x3945c8(0x1d7)](_0x5d2f0d=>{const _0x41379c=_0x3945c8;console[_0x41379c(0x381)]('WebGPU\x20volume\x20device\x20restoration\x20failed.\x20WebGPU\x20体积设备恢复失败。',_0x5d2f0d);});});}[_0x3a9ea2(0x298)](){const _0x771306=_0x3a9ea2;this[_0x771306(0x295)]+=0x1,this[_0x771306(0x1b1)](new DOMException(_0x771306(0x385),_0x771306(0x3bd))),this[_0x771306(0x3f0)]?.[_0x771306(0x421)](),this['transferResources']?.['destroy'](),this[_0x771306(0x1ce)]?.[_0x771306(0x421)](),this[_0x771306(0x39b)]?.[_0x771306(0x421)](),this['axisResources']?.['destroy'](),this[_0x771306(0x223)]?.[_0x771306(0x421)](),this[_0x771306(0x235)]?.[_0x771306(0x421)](),this[_0x771306(0x225)]?.[_0x771306(0x421)](),this['uploadStagingBuffer']?.[_0x771306(0x421)]();try{this['context']?.[_0x771306(0x459)]();}catch{}this[_0x771306(0x3fc)]?.[_0x771306(0x421)](),this[_0x771306(0x2d5)]=null,this['device']=null,this[_0x771306(0x2b7)]=null,this[_0x771306(0x2cd)]=null,this['sceneParamsBuffer']=null,this[_0x771306(0x225)]=null,this['uploadStagingBuffer']=null,this['uploadStagingBufferSize']=0x0,this[_0x771306(0x371)]=null,this['sceneBindGroupLayout']=null,this[_0x771306(0x3a4)]=null,this[_0x771306(0x37c)]=null,this[_0x771306(0x2a1)]=null,this['geometryBindGroup']=null,this[_0x771306(0x3ab)]=null,this['volumeBindGroup']=null,this['transferBindGroup']=null,this[_0x771306(0x188)]=null,this[_0x771306(0x32b)]=null,this[_0x771306(0x18a)]=null,this[_0x771306(0x3e4)]=null,this['overlayLinePipeline']=null,this[_0x771306(0x19d)]=null,this[_0x771306(0x1a6)]=null,this[_0x771306(0x223)]=null,this[_0x771306(0x3f0)]=null,this[_0x771306(0x25a)]=null,this[_0x771306(0x1ce)]=null,this[_0x771306(0x39b)]=null,this['axisResources']=null,this[_0x771306(0x43c)]=!0x1,this[_0x771306(0x1cc)]=0x0,this['height']=0x0;}[_0x3a9ea2(0x24f)](){const _0x7d290d=_0x3a9ea2;if(!this[_0x7d290d(0x3fc)])throw Error(_0x7d290d(0x400));return this[_0x7d290d(0x3fc)];}['getContext'](){const _0x836f68=_0x3a9ea2;if(!this[_0x836f68(0x2b7)])throw Error(_0x836f68(0x232));return this[_0x836f68(0x2b7)];}[_0x3a9ea2(0x2f1)](){const _0x2ef608=_0x3a9ea2;if(!this[_0x2ef608(0x2cd)])throw Error('WebGPU\x20volume\x20format\x20is\x20not\x20initialized.\x20WebGPU\x20体积格式尚未初始化。');return this['format'];}[_0x3a9ea2(0x328)](){const _0x2250a9=_0x3a9ea2;if(!this[_0x2250a9(0x29d)])throw Error(_0x2250a9(0x29e));return this[_0x2250a9(0x29d)];}[_0x3a9ea2(0x1a0)](){const _0x55d704=_0x3a9ea2;if(!this[_0x55d704(0x223)])throw Error(_0x55d704(0x290));return this['attachments'];}[_0x3a9ea2(0x3f1)](){const _0x59e506=_0x3a9ea2;if(!this[_0x59e506(0x3f0)])throw Error('WebGPU\x20volume\x20source\x20must\x20be\x20configured\x20before\x20uploading\x20bricks.\x20上传砖块前必须配置\x20WebGPU\x20体积数据源。');return this[_0x59e506(0x3f0)];}['getTransferResources'](){const _0x33f79=_0x3a9ea2;if(!this[_0x33f79(0x25a)])throw Error(_0x33f79(0x477));return this[_0x33f79(0x25a)];}[_0x3a9ea2(0x283)](){const _0x1c9ebe=_0x3a9ea2;if(!this[_0x1c9ebe(0x1ce)])throw Error(_0x1c9ebe(0x337));return this[_0x1c9ebe(0x1ce)];}['getSliceResources'](){if(!this['sliceResources'])throw Error('WebGPU\x20slice\x20resources\x20are\x20unavailable.\x20WebGPU\x20切面资源不可用。');return this['sliceResources'];}[_0x3a9ea2(0x1bb)](){const _0x399174=_0x3a9ea2;if(!this[_0x399174(0x2da)])throw Error(_0x399174(0x463));return this[_0x399174(0x2da)];}[_0x3a9ea2(0x25b)](){const _0x1ff098=_0x3a9ea2;if(!this[_0x1ff098(0x207)])throw Error('WebGPU\x20scene\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20场景绑定布局不可用。');return this[_0x1ff098(0x207)];}[_0x3a9ea2(0x21c)](){const _0x1c23eb=_0x3a9ea2;if(!this['geometryBindGroupLayout'])throw Error(_0x1c23eb(0x3d7));return this['geometryBindGroupLayout'];}[_0x3a9ea2(0x259)](){const _0x70133a=_0x3a9ea2;if(!this[_0x70133a(0x3a4)])throw Error(_0x70133a(0x30e));return this[_0x70133a(0x3a4)];}[_0x3a9ea2(0x452)](){const _0x3525d7=_0x3a9ea2;if(!this[_0x3525d7(0x37c)])throw Error(_0x3525d7(0x191));return this[_0x3525d7(0x37c)];}[_0x3a9ea2(0x24c)](){const _0x40f5e6=_0x3a9ea2;if(!this[_0x40f5e6(0x2a1)])throw Error('WebGPU\x20slice\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20切面绑定布局不可用。');return this['sliceBindGroupLayout'];}[_0x3a9ea2(0x3a1)](){const _0x3a9cd8=_0x3a9ea2;if(!this['sceneParamsBuffer'])throw Error(_0x3a9cd8(0x1bc));return this[_0x3a9cd8(0x235)];}[_0x3a9ea2(0x1be)](){const _0x28d156=_0x3a9ea2;if(!this[_0x28d156(0x225)])throw Error('WebGPU\x20volume\x20params\x20buffer\x20is\x20unavailable.\x20WebGPU\x20体积参数\x20Buffer\x20不可用。');return this[_0x28d156(0x225)];}};let _0x2dd938=(_0x4b034b,_0x5e8663)=>_0x5e8663==='x'?_0x4b034b[_0x3a9ea2(0x1f2)]:_0x5e8663==='y'?_0x4b034b['yAxis']:_0x4b034b[_0x3a9ea2(0x46c)],_0x4194df=(_0x29f1a8,_0x488da4,_0x1eca93)=>{const _0x4f381b=_0x3a9ea2;if(!Number[_0x4f381b(0x2ba)](_0x1eca93))throw Error('切面位置必须是有限数。');let _0x146d22=_0x2dd938(_0x29f1a8,_0x488da4),_0x4ff7ae=Math[_0x4f381b(0x3e9)](_0x146d22[_0x4f381b(0x239)],_0x146d22['end']),_0x149535=Math['max'](_0x146d22[_0x4f381b(0x239)],_0x146d22[_0x4f381b(0x1e7)]);return Math['min'](_0x149535,Math[_0x4f381b(0x1ac)](_0x4ff7ae,_0x1eca93));},_0x2eb06e=_0x2879e7=>_0x2879e7?{..._0x2879e7}:null,_0x2bd5d7=_0x110b14=>({..._0x110b14}),_0x38e985=_0x3a19a9=>{const _0x4eede7=_0x3a9ea2;for(let _0x303e80 of[_0x3a19a9[_0x4eede7(0x1f2)],_0x3a19a9['yAxis'],_0x3a19a9[_0x4eede7(0x46c)]]){if(!Number[_0x4eede7(0x2ba)](_0x303e80[_0x4eede7(0x239)])||!Number['isFinite'](_0x303e80['end']))throw Error(_0x4eede7(0x436));if(!(Number[_0x4eede7(0x34f)](_0x303e80[_0x4eede7(0x25f)])&&_0x303e80[_0x4eede7(0x25f)]>0x0))throw Error(_0x4eede7(0x458));if(_0x303e80[_0x4eede7(0x25f)]>0x1&&_0x303e80[_0x4eede7(0x239)]===_0x303e80['end'])throw Error('多采样点切面轴的起止值不能相等。');}},_0x1514cb=(_0x413bad,_0x68e075)=>_0x413bad[_0x3a9ea2(0x239)]===_0x413bad[_0x3a9ea2(0x1e7)]?0x0:(_0x68e075-_0x413bad[_0x3a9ea2(0x239)])/(_0x413bad[_0x3a9ea2(0x1e7)]-_0x413bad['start']),_0x246a6d=(_0x41c11a,_0x2f5ca6)=>_0x41c11a[_0x3a9ea2(0x239)]+_0x2f5ca6*(_0x41c11a[_0x3a9ea2(0x1e7)]-_0x41c11a['start']);var _0x144448=class{[_0x3a9ea2(0x1d9)];[_0x3a9ea2(0x3ee)]=new Set();['onLimitReached'];[_0x3a9ea2(0x26f)];['depthMode'];[_0x3a9ea2(0x480)]=0x1;['currentPreview']=null;['slices']=[];[_0x3a9ea2(0x1b7)]=_0x3a9ea2(0x280);['volumeDimFactor'];constructor(_0x1fa7bd,_0x3124b3={}){const _0x1dd3a2=_0x3a9ea2;if(_0x38e985(_0x1fa7bd),this['axes']={'xAxis':{..._0x1fa7bd[_0x1dd3a2(0x1f2)]},'yAxis':{..._0x1fa7bd['yAxis']},'zAxis':{..._0x1fa7bd[_0x1dd3a2(0x46c)]}},this[_0x1dd3a2(0x3d5)]=_0x3124b3[_0x1dd3a2(0x3d5)]??0.25,this[_0x1dd3a2(0x462)]=_0x3124b3['depthMode']??_0x1dd3a2(0x221),this[_0x1dd3a2(0x26f)]=_0x3124b3['maxLockedSlices']??0xc,this[_0x1dd3a2(0x346)]=_0x3124b3[_0x1dd3a2(0x346)],!(this[_0x1dd3a2(0x3d5)]>=0x0&&this[_0x1dd3a2(0x3d5)]<=0x1))throw Error(_0x1dd3a2(0x2a0));if(this[_0x1dd3a2(0x462)]!==_0x1dd3a2(0x221)&&this[_0x1dd3a2(0x462)]!==_0x1dd3a2(0x2c7))throw Error(_0x1dd3a2(0x197));if(!(Number[_0x1dd3a2(0x34f)](this['maxLockedSlices'])&&this[_0x1dd3a2(0x26f)]>0x0))throw Error('maxLockedSlices\x20必须是正整数。');}get[_0x3a9ea2(0x2f6)](){const _0x1f104d=_0x3a9ea2;return _0x2eb06e(this[_0x1f104d(0x253)]);}get['lockedSlices'](){const _0x2629a5=_0x3a9ea2;return this[_0x2629a5(0x3da)][_0x2629a5(0x42f)](_0x2bd5d7);}get[_0x3a9ea2(0x1da)](){const _0x322638=_0x3a9ea2;return this[_0x322638(0x1b7)];}get[_0x3a9ea2(0x20b)](){const _0x27ecce=_0x3a9ea2;return{'preview':this[_0x27ecce(0x2f6)],'lockedSlices':this['lockedSlices'],'toolMode':this[_0x27ecce(0x1b7)],'volumeDimFactor':this[_0x27ecce(0x3d5)]};}[_0x3a9ea2(0x360)](_0x277ef1){const _0x2c0f1e=_0x3a9ea2;return this['listeners'][_0x2c0f1e(0x451)](_0x277ef1),_0x277ef1(this[_0x2c0f1e(0x20b)]),()=>this[_0x2c0f1e(0x3ee)]['delete'](_0x277ef1);}get[_0x3a9ea2(0x348)](){const _0x2c97c1=_0x3a9ea2;return{'xAxis':{...this[_0x2c97c1(0x1d9)][_0x2c97c1(0x1f2)]},'yAxis':{...this['axes'][_0x2c97c1(0x42c)]},'zAxis':{...this[_0x2c97c1(0x1d9)]['zAxis']}};}[_0x3a9ea2(0x2c1)](_0x4fcef0){const _0x102303=_0x3a9ea2;_0x38e985(_0x4fcef0),this[_0x102303(0x1d9)]={'xAxis':{..._0x4fcef0[_0x102303(0x1f2)]},'yAxis':{..._0x4fcef0[_0x102303(0x42c)]},'zAxis':{..._0x4fcef0[_0x102303(0x46c)]}},this[_0x102303(0x253)]&&(this[_0x102303(0x253)]['position']=_0x4194df(this[_0x102303(0x1d9)],this[_0x102303(0x253)]['axis'],this['currentPreview'][_0x102303(0x1d2)])),this['slices']=this['slices'][_0x102303(0x42f)](_0x3f9787=>({..._0x3f9787,'position':_0x4194df(this[_0x102303(0x1d9)],_0x3f9787['axis'],_0x3f9787['position'])})),this[_0x102303(0x312)]();}[_0x3a9ea2(0x2dc)](_0xe118dd){const _0x43ceb2=_0x3a9ea2;this[_0x43ceb2(0x1b7)]!==_0xe118dd&&(this[_0x43ceb2(0x1b7)]=_0xe118dd,(_0xe118dd===null||_0xe118dd!==_0x43ceb2(0x280)&&this[_0x43ceb2(0x253)]?.[_0x43ceb2(0x35f)]!==_0xe118dd)&&(this['currentPreview']=null),this[_0x43ceb2(0x312)]());}['updatePreview'](_0x34bc55,_0x378068){const _0x47e688=_0x3a9ea2;if(this[_0x47e688(0x1b7)]===null||this[_0x47e688(0x1b7)]!=='auto'&&this['mode']!==_0x34bc55)return;let _0x1cae1e=_0x4194df(this[_0x47e688(0x1d9)],_0x34bc55,_0x378068);this[_0x47e688(0x253)]?.[_0x47e688(0x35f)]===_0x34bc55&&this[_0x47e688(0x253)][_0x47e688(0x1d2)]===_0x1cae1e||(this[_0x47e688(0x253)]={'axis':_0x34bc55,'position':_0x1cae1e},this['notify']());}[_0x3a9ea2(0x19b)](){const _0xc6788=_0x3a9ea2;this[_0xc6788(0x253)]&&(this[_0xc6788(0x253)]=null,this[_0xc6788(0x312)]());}[_0x3a9ea2(0x3be)](_0xb8d406=this[_0x3a9ea2(0x462)]){const _0x60417a=_0x3a9ea2;return this[_0x60417a(0x253)]?this[_0x60417a(0x302)](this[_0x60417a(0x253)][_0x60417a(0x35f)],this[_0x60417a(0x253)][_0x60417a(0x1d2)],_0xb8d406):null;}[_0x3a9ea2(0x302)](_0x4cc150,_0x248248,_0xe20e9a=this['depthMode']){const _0x9e5a2c=_0x3a9ea2;if(this['slices']['length']>=this[_0x9e5a2c(0x26f)])return this[_0x9e5a2c(0x346)]?.(this[_0x9e5a2c(0x26f)]),null;let _0x31565d={'id':_0x9e5a2c(0x2bd)+this[_0x9e5a2c(0x480)],'axis':_0x4cc150,'position':_0x4194df(this[_0x9e5a2c(0x1d9)],_0x4cc150,_0x248248),'depthMode':_0xe20e9a,'visible':!0x0};return this['nextId']+=0x1,this[_0x9e5a2c(0x3da)]=[...this['slices'],_0x31565d],this[_0x9e5a2c(0x312)](),_0x2bd5d7(_0x31565d);}['updateLockedSlice'](_0x1eced3,_0x204073){const _0x2867b7=_0x3a9ea2;let _0x2a4974=this[_0x2867b7(0x3da)][_0x2867b7(0x22c)](_0x4790e0=>_0x4790e0['id']===_0x1eced3);if(_0x2a4974<0x0)return;let _0x576559=this[_0x2867b7(0x3da)][_0x2a4974],_0x2f96fc=_0x4194df(this['axes'],_0x576559[_0x2867b7(0x35f)],_0x204073);_0x2f96fc!==_0x576559['position']&&(this[_0x2867b7(0x3da)]=this['slices']['map'](_0x230ae4=>_0x230ae4['id']===_0x1eced3?{..._0x230ae4,'position':_0x2f96fc}:_0x230ae4),this[_0x2867b7(0x312)]());}[_0x3a9ea2(0x3cc)](_0x1214ba){const _0x583f0d=_0x3a9ea2;let _0x29542d=this[_0x583f0d(0x3da)][_0x583f0d(0x340)](_0x325a69=>_0x325a69['id']!==_0x1214ba);_0x29542d[_0x583f0d(0x2e8)]!==this[_0x583f0d(0x3da)][_0x583f0d(0x2e8)]&&(this[_0x583f0d(0x3da)]=_0x29542d,this['notify']());}[_0x3a9ea2(0x3a0)](){const _0x561d3e=_0x3a9ea2;this['slices']['length']!==0x0&&(this[_0x561d3e(0x3da)]=[],this['notify']());}[_0x3a9ea2(0x312)](){let _0x1fc6d4=this['snapshot'];for(let _0x9aa6fc of this['listeners'])_0x9aa6fc(_0x1fc6d4);}};let _0x3d5198=_0x4b5cc1=>_0x4b5cc1==='x'?[[0x0,0x0,0x0],[0x1,0x0,0x0]]:_0x4b5cc1==='y'?[[0x0,0x0,0x0],[0x0,0x1,0x0]]:[[0x0,0x0,0x0],[0x0,0x0,0x1]],_0x2cdaeb=(_0x40ee10,_0x11786e)=>{const _0x53bcae=_0x3a9ea2;let _0x5bce1c=_0x2f82db(_0x11786e[_0x53bcae(0x222)],_0x11786e['modelMatrix']),[_0x2bfb74,_0x3fb385]=_0x3d5198(_0x40ee10),_0x42bcb7=_0x296522(_0x5bce1c,_0x2bfb74,_0x11786e[_0x53bcae(0x39a)],_0x11786e['viewportHeight']),_0x53532a=_0x296522(_0x5bce1c,_0x3fb385,_0x11786e[_0x53bcae(0x39a)],_0x11786e['viewportHeight']);return!_0x42bcb7||!_0x53532a?null:{'axis':_0x40ee10,'startX':_0x42bcb7[0x0],'startY':_0x42bcb7[0x1],'endX':_0x53532a[0x0],'endY':_0x53532a[0x1]};},_0x5d27b8=(_0x343e3d,_0x52e159,_0x5ccbf3)=>{const _0x2433ba=_0x3a9ea2;let _0x3f79b0=_0x343e3d[_0x2433ba(0x179)]-_0x343e3d[_0x2433ba(0x300)],_0x27af18=_0x343e3d[_0x2433ba(0x358)]-_0x343e3d[_0x2433ba(0x2f9)],_0x5b1640=_0x3f79b0*_0x3f79b0+_0x27af18*_0x27af18,_0x4bad36=_0x5b1640===0x0?0x0:((_0x52e159-_0x343e3d['startX'])*_0x3f79b0+(_0x5ccbf3-_0x343e3d[_0x2433ba(0x2f9)])*_0x27af18)/_0x5b1640,_0x16b370=Math['min'](0x1,Math['max'](0x0,_0x4bad36)),_0x4e386a=_0x343e3d['startX']+_0x16b370*_0x3f79b0,_0x53d23a=_0x343e3d['startY']+_0x16b370*_0x27af18;return{'axis':_0x343e3d['axis'],'distance':Math['hypot'](_0x52e159-_0x4e386a,_0x5ccbf3-_0x53d23a),'normalizedPosition':_0x16b370};},_0x3db857=(_0x21405f,_0x719911,_0x2d6957)=>{const _0x47358b=_0x3a9ea2;let _0x298987=_0x719911['getBoundingClientRect']();return[_0x298987[_0x47358b(0x1cc)]===0x0?0x0:(_0x21405f[_0x47358b(0x2c8)]-_0x298987[_0x47358b(0x2db)])*_0x2d6957[_0x47358b(0x39a)]/_0x298987['width'],_0x298987[_0x47358b(0x22a)]===0x0?0x0:(_0x21405f[_0x47358b(0x470)]-_0x298987['top'])*_0x2d6957['viewportHeight']/_0x298987[_0x47358b(0x22a)]];},_0xa6fc45=(_0x1aedec,_0x358370,_0x4e1a02)=>{const _0x3867b5=_0x3a9ea2;let _0x89c729=_0x1aedec[_0x3867b5(0x348)];return _0x246a6d(_0x358370==='x'?_0x89c729['xAxis']:_0x358370==='y'?_0x89c729['yAxis']:_0x89c729['zAxis'],_0x4e1a02);};var _0x1ec6f2=class{[_0x3a9ea2(0x3f9)];['state'];[_0x3a9ea2(0x196)];['hitTolerance'];[_0x3a9ea2(0x33d)];['onInteractionStart'];['onInteractionEnd'];[_0x3a9ea2(0x32a)]=null;[_0x3a9ea2(0x3e8)]=null;[_0x3a9ea2(0x473)]=!0x1;constructor(_0x1e52b8,_0x161185,_0x445da8,_0x4c6ec9={}){const _0x54160c=_0x3a9ea2;this[_0x54160c(0x3f9)]=_0x1e52b8,this['state']=_0x161185,this[_0x54160c(0x196)]=_0x445da8,this['hitTolerance']=_0x4c6ec9[_0x54160c(0x2d2)]??0xa,this[_0x54160c(0x33d)]=_0x4c6ec9['axisHysteresisPixels']??0x4,this[_0x54160c(0x275)]=_0x4c6ec9['onInteractionStart'],this['onInteractionEnd']=_0x4c6ec9[_0x54160c(0x45d)];}['initialize'](){const _0x184c4d=_0x3a9ea2;this[_0x184c4d(0x473)]||(this[_0x184c4d(0x473)]=!0x0,this[_0x184c4d(0x3f9)][_0x184c4d(0x265)](_0x184c4d(0x378),this[_0x184c4d(0x287)],!0x0),this['element'][_0x184c4d(0x265)](_0x184c4d(0x365),this[_0x184c4d(0x266)],!0x0),this[_0x184c4d(0x3f9)]['addEventListener'](_0x184c4d(0x2e1),this['handlePointerLeave'],!0x0),window[_0x184c4d(0x265)](_0x184c4d(0x365),this[_0x184c4d(0x2ec)],!0x0),window['addEventListener'](_0x184c4d(0x2be),this[_0x184c4d(0x42a)],!0x0),window['addEventListener'](_0x184c4d(0x3d6),this[_0x184c4d(0x42a)],!0x0));}[_0x3a9ea2(0x26e)](_0x35c81e,_0x49d596){const _0x764136=_0x3a9ea2;let _0x5e38e7=this[_0x764136(0x465)][_0x764136(0x211)]['find'](_0x51321a=>_0x51321a['id']===_0x35c81e);_0x5e38e7&&(this[_0x764136(0x32a)]={'kind':_0x764136(0x22b),'axis':_0x5e38e7[_0x764136(0x35f)],'pointerId':_0x49d596[_0x764136(0x36c)],'sliceId':_0x35c81e,'startX':_0x49d596['clientX'],'startY':_0x49d596[_0x764136(0x470)],'moved':!0x1},this['onInteractionStart']?.(),_0x49d596[_0x764136(0x1f5)](),_0x49d596[_0x764136(0x316)]());}[_0x3a9ea2(0x421)](){const _0x48f5e0=_0x3a9ea2;this[_0x48f5e0(0x473)]&&(this['initialized']=!0x1,this['element'][_0x48f5e0(0x347)](_0x48f5e0(0x378),this['handlePointerDown'],!0x0),this[_0x48f5e0(0x3f9)][_0x48f5e0(0x347)](_0x48f5e0(0x365),this['handlePointerMove'],!0x0),this[_0x48f5e0(0x3f9)][_0x48f5e0(0x347)]('pointerleave',this['handlePointerLeave'],!0x0),window[_0x48f5e0(0x347)](_0x48f5e0(0x365),this[_0x48f5e0(0x2ec)],!0x0),window[_0x48f5e0(0x347)](_0x48f5e0(0x2be),this[_0x48f5e0(0x42a)],!0x0),window[_0x48f5e0(0x347)](_0x48f5e0(0x3d6),this[_0x48f5e0(0x42a)],!0x0),this[_0x48f5e0(0x32a)]&&this[_0x48f5e0(0x45d)]?.(),this[_0x48f5e0(0x32a)]=null,this[_0x48f5e0(0x3e8)]=null,this[_0x48f5e0(0x465)][_0x48f5e0(0x19b)]());}[_0x3a9ea2(0x2ce)](_0x1f1f47,_0x48e3ce){const _0x1fd6b5=_0x3a9ea2;let _0x303f1a=this[_0x1fd6b5(0x196)]();if(!_0x303f1a)return null;let [_0x3dc0d6,_0x361046]=_0x3db857(_0x1f1f47,this['element'],_0x303f1a),_0x533a12=this['state'][_0x1fd6b5(0x1da)];if(_0x533a12===null)return null;let _0x49d501=(_0x48e3ce?[_0x48e3ce]:_0x533a12===_0x1fd6b5(0x280)?['x','y','z']:[_0x533a12])[_0x1fd6b5(0x42f)](_0x3c9bcc=>_0x2cdaeb(_0x3c9bcc,_0x303f1a))[_0x1fd6b5(0x340)](_0x5a1918=>_0x5a1918!==null)[_0x1fd6b5(0x42f)](_0x11eff9=>_0x5d27b8(_0x11eff9,_0x3dc0d6,_0x361046));if(_0x49d501['length']===0x0)return null;_0x49d501['sort']((_0x9033ba,_0x7e7dfd)=>_0x9033ba[_0x1fd6b5(0x1e1)]-_0x7e7dfd[_0x1fd6b5(0x1e1)]);let _0x46fc33=_0x49d501[0x0];if(!_0x48e3ce&&this[_0x1fd6b5(0x3e8)]){let _0x4846f4=_0x49d501[_0x1fd6b5(0x1e8)](_0x56babd=>_0x56babd[_0x1fd6b5(0x35f)]===this['previousAxis']);_0x4846f4&&_0x4846f4['distance']<=_0x46fc33[_0x1fd6b5(0x1e1)]+this[_0x1fd6b5(0x33d)]&&(_0x46fc33=_0x4846f4);}return!_0x48e3ce&&_0x46fc33[_0x1fd6b5(0x1e1)]>this[_0x1fd6b5(0x354)]?null:_0x46fc33;}[_0x3a9ea2(0x35a)](_0x1e3098,_0x4f31cf){const _0x2d1bc0=_0x3a9ea2;let _0x2d39ed=_0xa6fc45(this[_0x2d1bc0(0x465)],_0x1e3098['axis'],_0x1e3098[_0x2d1bc0(0x2dd)]);_0x4f31cf?this['state'][_0x2d1bc0(0x23f)](_0x4f31cf,_0x2d39ed):this[_0x2d1bc0(0x465)][_0x2d1bc0(0x37f)](_0x1e3098[_0x2d1bc0(0x35f)],_0x2d39ed),this['previousAxis']=_0x1e3098[_0x2d1bc0(0x35f)];}[_0x3a9ea2(0x287)]=_0x592121=>{const _0x2f7fe7=_0x3a9ea2;if(_0x592121['button']!==0x0||this['activePointer'])return;let _0x53caa0=this[_0x2f7fe7(0x2ce)](_0x592121);_0x53caa0&&(this['applyHit'](_0x53caa0),this[_0x2f7fe7(0x32a)]={'kind':_0x2f7fe7(0x2f6),'axis':_0x53caa0['axis'],'pointerId':_0x592121[_0x2f7fe7(0x36c)],'startX':_0x592121['clientX'],'startY':_0x592121[_0x2f7fe7(0x470)],'moved':!0x1},this[_0x2f7fe7(0x275)]?.(),this[_0x2f7fe7(0x3f9)][_0x2f7fe7(0x3dc)]?.(_0x592121[_0x2f7fe7(0x36c)]),_0x592121[_0x2f7fe7(0x1f5)](),_0x592121[_0x2f7fe7(0x316)]());};[_0x3a9ea2(0x266)]=_0x2b2400=>{const _0x51666c=_0x3a9ea2;if(this[_0x51666c(0x32a)])return;let _0x288460=this[_0x51666c(0x2ce)](_0x2b2400);if(!_0x288460){this['previousAxis']=null,this[_0x51666c(0x465)][_0x51666c(0x19b)]();return;}this[_0x51666c(0x35a)](_0x288460);};[_0x3a9ea2(0x2ec)]=_0x206ca2=>{const _0x47fd82=_0x3a9ea2;let _0x36fd4f=this[_0x47fd82(0x32a)];if(!_0x36fd4f||_0x36fd4f[_0x47fd82(0x36c)]!==_0x206ca2[_0x47fd82(0x36c)])return;let _0x1064ac=this[_0x47fd82(0x2ce)](_0x206ca2,_0x36fd4f[_0x47fd82(0x35f)]);_0x1064ac&&(Math[_0x47fd82(0x1d3)](_0x206ca2[_0x47fd82(0x2c8)]-_0x36fd4f[_0x47fd82(0x300)],_0x206ca2[_0x47fd82(0x470)]-_0x36fd4f['startY'])>0x4&&(_0x36fd4f['moved']=!0x0),this[_0x47fd82(0x35a)](_0x1064ac,_0x36fd4f[_0x47fd82(0x2ed)]),_0x206ca2[_0x47fd82(0x1f5)](),_0x206ca2[_0x47fd82(0x316)]());};[_0x3a9ea2(0x42a)]=_0x396a9f=>{const _0x1a32fa=_0x3a9ea2;let _0x5a3c7f=this[_0x1a32fa(0x32a)];!_0x5a3c7f||_0x5a3c7f[_0x1a32fa(0x36c)]!==_0x396a9f[_0x1a32fa(0x36c)]||(_0x5a3c7f[_0x1a32fa(0x33a)]===_0x1a32fa(0x2f6)&&!_0x5a3c7f['moved']&&this[_0x1a32fa(0x465)][_0x1a32fa(0x3be)](),this[_0x1a32fa(0x3f9)][_0x1a32fa(0x46e)]?.(_0x396a9f[_0x1a32fa(0x36c)])&&this[_0x1a32fa(0x3f9)][_0x1a32fa(0x376)](_0x396a9f[_0x1a32fa(0x36c)]),this[_0x1a32fa(0x32a)]=null,this[_0x1a32fa(0x45d)]?.(),_0x396a9f[_0x1a32fa(0x1f5)](),_0x396a9f[_0x1a32fa(0x316)]());};['handlePointerLeave']=()=>{const _0x1c269c=_0x3a9ea2;this[_0x1c269c(0x32a)]||this['state']['clearPreview']();};};let _0x1a1d51=_0x34ccc6=>_0x34ccc6[_0x3a9ea2(0x269)](),_0x5ad7e5=(_0x40ea96,_0x4e95c7)=>_0x1a1d51(_0x40ea96)+'\x20'+Number(_0x4e95c7[_0x3a9ea2(0x3e5)](0x4)),_0x50ddfd=(_0x35afec,_0x56e463)=>{const _0x3f648c=_0x3a9ea2;let _0x4b4c5d=_0x35afec[_0x3f648c(0x348)];return _0x56e463==='x'?_0x4b4c5d[_0x3f648c(0x1f2)]:_0x56e463==='y'?_0x4b4c5d[_0x3f648c(0x42c)]:_0x4b4c5d[_0x3f648c(0x46c)];},_0x35a195=(_0x5bb55b,_0x13d63d)=>{const _0x503e29=_0x3a9ea2;let _0x9bcba5=_0x1514cb(_0x50ddfd(_0x5bb55b,_0x13d63d[_0x503e29(0x35f)]),_0x13d63d[_0x503e29(0x1d2)]);return _0x13d63d[_0x503e29(0x35f)]==='x'?[_0x9bcba5,0x0,0x0]:_0x13d63d['axis']==='y'?[0x0,_0x9bcba5,0x0]:[0x0,0x0,_0x9bcba5];},_0x5f0dfe=_0x447299=>{const _0x38b6b6=_0x3a9ea2;_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x1d2)]=_0x38b6b6(0x23a),_0x447299['style']['zIndex']='1',_0x447299['style']['display']='flex',_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x1e6)]=_0x38b6b6(0x31c),_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x35c)]='4px',_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x32d)]='3px\x206px',_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x285)]='1px\x20solid\x20rgb(255\x20255\x20255\x20/\x2065%)',_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x1de)]=_0x38b6b6(0x43e),_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x224)]=_0x38b6b6(0x303),_0x447299['style'][_0x38b6b6(0x195)]='rgb(17\x2024\x2039\x20/\x2082%)',_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x484)]='12px/1.2\x20sans-serif',_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x246)]=_0x38b6b6(0x44c),_0x447299['style'][_0x38b6b6(0x18e)]=_0x38b6b6(0x217),_0x447299[_0x38b6b6(0x1bf)][_0x38b6b6(0x3ed)]='none',_0x447299[_0x38b6b6(0x1bf)]['touchAction']='none';},_0x29a124=()=>{const _0x3a04cb=_0x3a9ea2;let _0x3185b6=document[_0x3a04cb(0x237)](_0x3a04cb(0x26b));return _0x3185b6[_0x3a04cb(0x2f5)]=_0x3a04cb(0x26b),_0x3185b6[_0x3a04cb(0x3c4)]='×',_0x3185b6[_0x3a04cb(0x367)](_0x3a04cb(0x2bf),_0x3a04cb(0x2eb)),_0x3185b6['style']['padding']=_0x3a04cb(0x1bd),_0x3185b6['style']['border']='0',_0x3185b6['style']['color']=_0x3a04cb(0x423),_0x3185b6['style'][_0x3a04cb(0x195)]=_0x3a04cb(0x3b2),_0x3185b6[_0x3a04cb(0x1bf)][_0x3a04cb(0x322)]=_0x3a04cb(0x2a9),_0x3185b6;};var _0x37401f=class{[_0x3a9ea2(0x314)];[_0x3a9ea2(0x465)];[_0x3a9ea2(0x196)];[_0x3a9ea2(0x1e9)];[_0x3a9ea2(0x20d)];['markers']=new Map();[_0x3a9ea2(0x219)];['unsubscribe'];[_0x3a9ea2(0x434)]=null;constructor(_0x4bedbd,_0x225b44,_0x17af80,_0x3c71a4={}){const _0x1d2509=_0x3a9ea2;this[_0x1d2509(0x314)]=_0x4bedbd,this['state']=_0x225b44,this[_0x1d2509(0x196)]=_0x17af80,this[_0x1d2509(0x1e9)]=_0x3c71a4[_0x1d2509(0x1e9)],this[_0x1d2509(0x20d)]=_0x3c71a4[_0x1d2509(0x20d)]??_0x5ad7e5,this[_0x1d2509(0x219)]=_0x4bedbd[_0x1d2509(0x1bf)][_0x1d2509(0x1d2)],getComputedStyle(_0x4bedbd)[_0x1d2509(0x1d2)]==='static'&&(_0x4bedbd[_0x1d2509(0x1bf)]['position']=_0x1d2509(0x445)),this[_0x1d2509(0x279)]=_0x225b44[_0x1d2509(0x360)](()=>this[_0x1d2509(0x3a6)]());}[_0x3a9ea2(0x3a6)](){const _0x37d28d=_0x3a9ea2;let _0xa85473=this[_0x37d28d(0x465)][_0x37d28d(0x20b)];this['syncPreview'](_0xa85473[_0x37d28d(0x2f6)]),this[_0x37d28d(0x274)](_0xa85473[_0x37d28d(0x211)]);let _0x283944=this[_0x37d28d(0x196)]();if(!_0x283944){this[_0x37d28d(0x21d)]();return;}_0xa85473[_0x37d28d(0x2f6)]&&this['previewMarker']&&this[_0x37d28d(0x230)](this[_0x37d28d(0x434)],_0xa85473[_0x37d28d(0x2f6)],_0x283944);for(let _0x3f2090 of _0xa85473[_0x37d28d(0x211)]){let _0x1a82fb=this[_0x37d28d(0x2cc)][_0x37d28d(0x2a8)](_0x3f2090['id']);_0x1a82fb&&this[_0x37d28d(0x230)](_0x1a82fb,_0x3f2090,_0x283944);}}['destroy'](){const _0x12c302=_0x3a9ea2;this[_0x12c302(0x279)](),this[_0x12c302(0x434)]?.[_0x12c302(0x2b9)](),this[_0x12c302(0x434)]=null;for(let _0xc0a979 of this[_0x12c302(0x2cc)]['values']())_0xc0a979[_0x12c302(0x2b9)]();this[_0x12c302(0x2cc)][_0x12c302(0x33b)](),this[_0x12c302(0x314)][_0x12c302(0x1bf)]['position']=this[_0x12c302(0x219)];}[_0x3a9ea2(0x3e1)](_0x7efac1){const _0x38f5e6=_0x3a9ea2;if(!_0x7efac1){this['previewMarker']?.[_0x38f5e6(0x2b9)](),this[_0x38f5e6(0x434)]=null;return;}this[_0x38f5e6(0x434)]||(this[_0x38f5e6(0x434)]=document[_0x38f5e6(0x237)](_0x38f5e6(0x1c6)),_0x5f0dfe(this[_0x38f5e6(0x434)]),this[_0x38f5e6(0x434)][_0x38f5e6(0x1bf)][_0x38f5e6(0x1f7)]='none',this['previewMarker'][_0x38f5e6(0x1bf)][_0x38f5e6(0x23e)]=_0x38f5e6(0x1fc),this[_0x38f5e6(0x314)]['append'](this[_0x38f5e6(0x434)])),this[_0x38f5e6(0x434)]['textContent']=this[_0x38f5e6(0x20d)](_0x7efac1[_0x38f5e6(0x35f)],_0x7efac1['position']);}[_0x3a9ea2(0x274)](_0x485f71){const _0x3f8deb=_0x3a9ea2;let _0x4ef1e6=new Set(_0x485f71['map'](_0x28c3d6=>_0x28c3d6['id']));for(let [_0x2742b8,_0x265bb5]of this['markers'])_0x4ef1e6[_0x3f8deb(0x3cf)](_0x2742b8)||(_0x265bb5['remove'](),this[_0x3f8deb(0x2cc)]['delete'](_0x2742b8));for(let _0xa4d516 of _0x485f71){let _0x266746=this['markers']['get'](_0xa4d516['id']);_0x266746||(_0x266746=this[_0x3f8deb(0x36a)](_0xa4d516['id']),this[_0x3f8deb(0x2cc)][_0x3f8deb(0x46d)](_0xa4d516['id'],_0x266746),this['container'][_0x3f8deb(0x200)](_0x266746));let _0x232be4=_0x266746[_0x3f8deb(0x250)];_0x232be4&&(_0x232be4[_0x3f8deb(0x3c4)]=this[_0x3f8deb(0x20d)](_0xa4d516['axis'],_0xa4d516[_0x3f8deb(0x1d2)]));}}[_0x3a9ea2(0x36a)](_0xc9f18d){const _0x4d6693=_0x3a9ea2;let _0x4847eb=document[_0x4d6693(0x237)](_0x4d6693(0x1c6));_0x5f0dfe(_0x4847eb),_0x4847eb[_0x4d6693(0x1bf)][_0x4d6693(0x322)]=_0x4d6693(0x468),_0x4847eb['append'](document[_0x4d6693(0x3e2)](''));let _0x3c2c6f=_0x29a124();return _0x3c2c6f['addEventListener']('pointerdown',_0x2721ae=>_0x2721ae[_0x4d6693(0x316)]()),_0x3c2c6f[_0x4d6693(0x265)]('click',_0x2fce97=>{const _0x40802f=_0x4d6693;_0x2fce97[_0x40802f(0x316)](),this[_0x40802f(0x465)][_0x40802f(0x3cc)](_0xc9f18d);}),_0x4847eb[_0x4d6693(0x265)]('pointerdown',_0x2f9b18=>this['interactionController']?.[_0x4d6693(0x26e)](_0xc9f18d,_0x2f9b18)),_0x4847eb['append'](_0x3c2c6f),_0x4847eb;}[_0x3a9ea2(0x230)](_0xe13e55,_0x5e5c6a,_0x2a7961){const _0x33a4fb=_0x3a9ea2;let _0xf40cc7=_0x296522(_0x2f82db(_0x2a7961['viewProjectionMatrix'],_0x2a7961[_0x33a4fb(0x1e0)]),_0x35a195(this[_0x33a4fb(0x465)],_0x5e5c6a),_0x2a7961['viewportWidth'],_0x2a7961[_0x33a4fb(0x372)]);if(!_0xf40cc7||_0xf40cc7[0x2]<0x0||_0xf40cc7[0x2]>0x1){_0xe13e55['style'][_0x33a4fb(0x398)]=_0x33a4fb(0x3c2);return;}_0xe13e55[_0x33a4fb(0x1bf)][_0x33a4fb(0x398)]='flex',_0xe13e55[_0x33a4fb(0x1bf)][_0x33a4fb(0x2db)]=_0xf40cc7[0x0]+'px',_0xe13e55[_0x33a4fb(0x1bf)]['top']=_0xf40cc7[0x1]+'px';}['hideAllMarkers'](){const _0x5b0589=_0x3a9ea2;this[_0x5b0589(0x434)]&&(this[_0x5b0589(0x434)][_0x5b0589(0x1bf)][_0x5b0589(0x398)]=_0x5b0589(0x3c2));for(let _0x16ba1d of this[_0x5b0589(0x2cc)][_0x5b0589(0x1a1)]())_0x16ba1d[_0x5b0589(0x1bf)][_0x5b0589(0x398)]=_0x5b0589(0x3c2);}};let _0xb849a2=(_0x9bb60f,_0x15a8e0)=>Math['min'](_0x15a8e0-0x1,Math['max'](0x0,_0x9bb60f)),_0x2b3504=(_0x426b7d,_0x293f51,_0x5ecdcb,_0x3441e0)=>{const _0x1ba462=_0x3a9ea2;_0x466b16(_0x426b7d,_0x3441e0,_0x5ecdcb['readRange']);let _0x2b859b=_0x293f51['width']+_0x293f51[_0x1ba462(0x3ca)]*0x2,_0x2d2639=_0x293f51[_0x1ba462(0x22a)]+_0x293f51[_0x1ba462(0x3ca)]*0x2,_0x2a8bdd=_0x293f51['depth']+_0x293f51[_0x1ba462(0x3ca)]*0x2,_0x447886=new Float32Array(_0x2b859b*_0x2d2639*_0x2a8bdd);for(let _0x26a0a=0x0;_0x26a0a<_0x2a8bdd;_0x26a0a+=0x1){let _0x100935=_0xb849a2(_0x5ecdcb[_0x1ba462(0x1af)]['sourceYStart']+_0x26a0a-_0x293f51[_0x1ba462(0x3ca)],_0x426b7d['zAxis'][_0x1ba462(0x25f)])-_0x3441e0['range']['sourceYStart'];for(let _0xbacc68=0x0;_0xbacc68<_0x2d2639;_0xbacc68+=0x1){let _0x44153c=_0xb849a2(_0x5ecdcb[_0x1ba462(0x1af)][_0x1ba462(0x1dc)]+_0xbacc68-_0x293f51[_0x1ba462(0x3ca)],_0x426b7d[_0x1ba462(0x42c)][_0x1ba462(0x25f)])-_0x3441e0[_0x1ba462(0x17e)]['levelStart'];for(let _0x1cf973=0x0;_0x1cf973<_0x2b859b;_0x1cf973+=0x1){let _0x3d2813=_0xb849a2(_0x5ecdcb['coreRange'][_0x1ba462(0x3b3)]+_0x1cf973-_0x293f51['halo'],_0x426b7d['xAxis'][_0x1ba462(0x25f)])-_0x3441e0[_0x1ba462(0x17e)]['xStart'];_0x447886[(_0x26a0a*_0x2d2639+_0xbacc68)*_0x2b859b+_0x1cf973]=_0x3441e0[_0x1ba462(0x1a1)][(_0x100935*_0x3441e0[_0x1ba462(0x22a)]+_0x44153c)*_0x3441e0['width']+_0x3d2813];}}}return _0x447886;},_0x3ffc40=_0x1ef90d=>{const _0x2b18c7=_0x3a9ea2;if(_0x1ef90d[_0x2b18c7(0x2e8)]===0x0)throw Error(_0x2b18c7(0x24b));return _0x1ef90d[_0x2b18c7(0x42f)]((_0x11a4a0,_0x97f148)=>{const _0x33795d=_0x2b18c7;if(Number[_0x33795d(0x2c9)](_0x11a4a0[_0x33795d(0x3e9)])||Number['isNaN'](_0x11a4a0[_0x33795d(0x1ac)]))throw TypeError('第'+(_0x97f148+0x1)+'个色标范围不能是NaN');if(_0x11a4a0['min']>=_0x11a4a0[_0x33795d(0x1ac)])throw Error('第'+(_0x97f148+0x1)+_0x33795d(0x21f));return{'min':_0x11a4a0['min'],'max':_0x11a4a0['max'],'color':_0x338e10(_0x11a4a0[_0x33795d(0x224)])};})['sort']((_0x4752b8,_0x2321cd)=>_0x4752b8[_0x2b18c7(0x3e9)]-_0x2321cd[_0x2b18c7(0x3e9)]);},_0x338e10=_0x361646=>{const _0x3be7d1=_0x3a9ea2;let _0x384067=_0x361646[_0x3be7d1(0x2ad)]()['toLowerCase']();if(_0x384067['startsWith']('#'))return _0x3c2869(_0x384067);if(_0x384067[_0x3be7d1(0x194)](_0x3be7d1(0x192)))return _0x25c7da(_0x384067,!0x0);if(_0x384067[_0x3be7d1(0x194)](_0x3be7d1(0x3d2)))return _0x25c7da(_0x384067,!0x1);throw Error('不支持的颜色格式:\x20'+_0x361646);},_0x3c2869=_0x41164b=>{const _0x55c566=_0x3a9ea2;if(_0x41164b[_0x55c566(0x2e8)]===0x4)return _0x5ddfb8(Number['parseInt'](''+_0x41164b[0x1]+_0x41164b[0x1],0x10),Number['parseInt'](''+_0x41164b[0x2]+_0x41164b[0x2],0x10),Number[_0x55c566(0x341)](''+_0x41164b[0x3]+_0x41164b[0x3],0x10),0x1);if(_0x41164b[_0x55c566(0x2e8)]===0x7)return _0x5ddfb8(Number[_0x55c566(0x341)](_0x41164b[_0x55c566(0x212)](0x1,0x3),0x10),Number['parseInt'](_0x41164b[_0x55c566(0x212)](0x3,0x5),0x10),Number[_0x55c566(0x341)](_0x41164b[_0x55c566(0x212)](0x5,0x7),0x10),0x1);throw Error(_0x55c566(0x1ea)+_0x41164b);},_0x25c7da=(_0x296321,_0x4a2406)=>{const _0x45681d=_0x3a9ea2;let _0x12c684=_0x296321[_0x45681d(0x261)](/^rgba?\(([^)]+)\)$/);if(!_0x12c684)throw Error(_0x45681d(0x440)+_0x296321);let _0x596d5e=_0x12c684[0x1]['split'](',')[_0x45681d(0x42f)](_0x134668=>_0x134668['trim']()),_0x25e72e=_0x4a2406?0x4:0x3;if(_0x596d5e['length']!==_0x25e72e)throw Error(_0x45681d(0x420)+_0x296321);return _0x5ddfb8(Number(_0x596d5e[0x0]),Number(_0x596d5e[0x1]),Number(_0x596d5e[0x2]),_0x4a2406?Number(_0x596d5e[0x3]):0x1);},_0x5ddfb8=(_0x72119,_0x44f1eb,_0x4d2de1,_0x202741)=>{const _0x3399f0=_0x3a9ea2;if(!_0x10f8d3(_0x72119)||!_0x10f8d3(_0x44f1eb)||!_0x10f8d3(_0x4d2de1))throw Error(_0x3399f0(0x46b));if(!Number[_0x3399f0(0x2ba)](_0x202741)||_0x202741<0x0||_0x202741>0x1)throw Error(_0x3399f0(0x2c5));return[_0x72119/0xff,_0x44f1eb/0xff,_0x4d2de1/0xff,_0x202741];},_0x10f8d3=_0x1c68ab=>Number[_0x3a9ea2(0x2ba)](_0x1c68ab)&&_0x1c68ab>=0x0&&_0x1c68ab<=0xff,_0x31518f=_0x4264bf=>{const _0x29ae80=_0x3a9ea2;if(_0x4264bf[_0x29ae80(0x2e8)]===0x0)throw Error('Volume\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积透明度节点不能为空。');let _0x1fb2b9=-0x1/0x0;for(let _0x1cad9a of _0x4264bf){if(!Number[_0x29ae80(0x2ba)](_0x1cad9a[_0x29ae80(0x431)])||_0x1cad9a[_0x29ae80(0x431)]<=_0x1fb2b9)throw Error(_0x29ae80(0x42d));if(!Number['isFinite'](_0x1cad9a[_0x29ae80(0x23e)])||_0x1cad9a[_0x29ae80(0x23e)]<0x0||_0x1cad9a['opacity']>0x1)throw Error(_0x29ae80(0x424));_0x1fb2b9=_0x1cad9a[_0x29ae80(0x431)];}},_0x308d1a=(_0x5ad43e,_0x33d5de)=>{const _0x244575=_0x3a9ea2;if(_0x5ad43e<=_0x33d5de[0x0])return[0x0,0x0,0x0];for(let _0x2a636c=0x1;_0x2a636c<_0x33d5de[_0x244575(0x2e8)];_0x2a636c+=0x1)if(_0x5ad43e<=_0x33d5de[_0x2a636c]){let _0x3781ef=_0x33d5de[_0x2a636c]-_0x33d5de[_0x2a636c-0x1];return[_0x2a636c-0x1,_0x2a636c,_0x3781ef===0x0?0x0:Math[_0x244575(0x3e9)](0x1,Math[_0x244575(0x1ac)](0x0,(_0x5ad43e-_0x33d5de[_0x2a636c-0x1])/_0x3781ef))];}let _0xf9a63d=_0x33d5de[_0x244575(0x2e8)]-0x1;return[_0xf9a63d,_0xf9a63d,0x0];},_0x22be8e=(_0x51e29e,_0x25ae29)=>{const _0xb1765a=_0x3a9ea2;_0x31518f(_0x25ae29);let _0x121a92=_0x3ffc40([..._0x51e29e]);return{'colorStops':_0x121a92[_0xb1765a(0x264)]((_0x59aa96,_0x27d35f)=>{const _0x3b5068=_0xb1765a;let _0x4bf3f4=_0x121a92[Math['min'](_0x27d35f+0x1,_0x121a92['length']-0x1)][_0x3b5068(0x224)];return[{'value':_0x59aa96[_0x3b5068(0x3e9)],'color':_0x59aa96['color']},{'value':_0x59aa96[_0x3b5068(0x1ac)],'color':_0x4bf3f4}];}),'opacityStops':_0x25ae29[_0xb1765a(0x42f)](_0x93a7c5=>({..._0x93a7c5}))};},_0x43be91=(_0x4a7643,_0xd19a86,_0x10c367,_0x1f12ce)=>{const _0x49b23f=_0x3a9ea2;if(!Number['isFinite'](_0x4a7643))return[0x0,0x0,0x0,0x0];let [_0x43f5de,_0x3835c9,_0x230688]=_0x308d1a(_0x4a7643,_0xd19a86['map'](_0x42a0f4=>_0x42a0f4['value'])),_0x211883=_0xd19a86[_0x43f5de],_0x5811a8=_0xd19a86[_0x3835c9],_0x53a8d5=_0x1f12ce===_0x49b23f(0x301)?0x0:_0x230688;return[_0x211883['color'][0x0]+(_0x5811a8[_0x49b23f(0x224)][0x0]-_0x211883['color'][0x0])*_0x53a8d5,_0x211883[_0x49b23f(0x224)][0x1]+(_0x5811a8[_0x49b23f(0x224)][0x1]-_0x211883[_0x49b23f(0x224)][0x1])*_0x53a8d5,_0x211883['color'][0x2]+(_0x5811a8[_0x49b23f(0x224)][0x2]-_0x211883[_0x49b23f(0x224)][0x2])*_0x53a8d5,(_0x211883[_0x49b23f(0x224)][0x3]+(_0x5811a8['color'][0x3]-_0x211883[_0x49b23f(0x224)][0x3])*_0x53a8d5)*_0x10c367];},_0x4aed5f=(_0x2555b2,_0x194324,_0x8dd2d8)=>{const _0x14e16d=_0x3a9ea2;if(!Number['isFinite'](_0x2555b2))return 0x0;let [_0x37f039,_0x122bb6,_0x4b3532]=_0x308d1a(_0x2555b2,_0x194324[_0x14e16d(0x42f)](_0x52d955=>_0x52d955[_0x14e16d(0x431)])),_0x553754=_0x8dd2d8===_0x14e16d(0x301)?0x0:_0x4b3532;return _0x194324[_0x37f039][_0x14e16d(0x23e)]+(_0x194324[_0x122bb6][_0x14e16d(0x23e)]-_0x194324[_0x37f039][_0x14e16d(0x23e)])*_0x553754;},_0x140523={'position':[1.4,1.2,2.1],'target':[0.5,0.5,0.5],'up':[0x0,0x1,0x0],'projection':{'type':_0x3a9ea2(0x288),'fovYDegrees':0x2d,'near':0.01,'far':0x64}},_0x11d829=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],_0x18f1a4=_0x64821e=>Math[_0x3a9ea2(0x3e9)](0x1,Math[_0x3a9ea2(0x1ac)](0x0,_0x64821e)),_0x547ffc=_0x22dc09=>_0x22dc09===_0x3a9ea2(0x44d)?0.012:_0x22dc09===_0x3a9ea2(0x425)?0.0025:_0x22dc09===_0x3a9ea2(0x3bc)?0.005:0.006,_0x3d8457=_0x2bf820=>_0x2bf820===_0x3a9ea2(0x44d)?0x8:_0x2bf820===_0x3a9ea2(0x425)?0x2:0x4,_0x501e69=(_0x2bd967,_0x3076e3)=>_0x3076e3>0x18?_0x2bd967==='quality'?_0x3a9ea2(0x3bc):'performance':_0x3076e3<0xe?_0x2bd967==='performance'?'balanced':_0x3a9ea2(0x425):_0x2bd967,_0x59300f=(_0x2e2cb5,_0x49c9fb)=>{const _0x54de02=_0x3a9ea2;if(!Number[_0x54de02(0x2ba)](_0x2e2cb5)||_0x2e2cb5<=0x0)throw Error(_0x49c9fb+'\x20must\x20be\x20a\x20positive\x20finite\x20number.\x20'+_0x49c9fb+'\x20必须是大于\x200\x20的有限数。');return _0x2e2cb5;},_0x221eb2=(_0xed17c6,_0xa7c372)=>{const _0x265f7b=_0x3a9ea2;if(!_0xa7c372)return{'minimum':[0x0,0x0,0x0],'maximum':[0x1,0x1,0x1]};let _0x3c081c=_0x18f1a4(_0x1514cb(_0xed17c6[_0x265f7b(0x474)][_0x265f7b(0x1f2)],_0xa7c372['minX'])),_0x42b9a9=_0x18f1a4(_0x1514cb(_0xed17c6[_0x265f7b(0x474)][_0x265f7b(0x1f2)],_0xa7c372['maxX'])),_0x40fb00=_0x18f1a4(_0x1514cb(_0xed17c6['metadata'][_0x265f7b(0x42c)],_0xa7c372[_0x265f7b(0x236)])),_0x3e5ed1=_0x18f1a4(_0x1514cb(_0xed17c6['metadata'][_0x265f7b(0x42c)],_0xa7c372['maxY'])),_0x20a7ec=_0x18f1a4(_0x1514cb(_0xed17c6[_0x265f7b(0x474)][_0x265f7b(0x46c)],_0xa7c372[_0x265f7b(0x17a)])),_0x4f4134=_0x18f1a4(_0x1514cb(_0xed17c6['metadata'][_0x265f7b(0x46c)],_0xa7c372[_0x265f7b(0x1ed)]));return{'minimum':[Math[_0x265f7b(0x3e9)](_0x3c081c,_0x42b9a9),Math[_0x265f7b(0x3e9)](_0x40fb00,_0x3e5ed1),Math['min'](_0x20a7ec,_0x4f4134)],'maximum':[Math[_0x265f7b(0x1ac)](_0x3c081c,_0x42b9a9),Math[_0x265f7b(0x1ac)](_0x40fb00,_0x3e5ed1),Math[_0x265f7b(0x1ac)](_0x20a7ec,_0x4f4134)]};},_0x22d2cf=()=>({'id':_0x3a9ea2(0x441),'topology':'line-list','depthMode':_0x3a9ea2(0x2c7),'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])}),_0xda1e4d=()=>{const _0x3fabeb=_0x3a9ea2;let _0x51b52d=[0.1,0.53,0.56,0.62],_0x17a35f=[[0x0,0x0,0x0],[0x1,0x0,0x0],[0x0,0x1,0x0],[0x1,0x1,0x0],[0x0,0x0,0x1],[0x1,0x0,0x1],[0x0,0x1,0x1],[0x1,0x1,0x1]],_0x41c957=[[0x0,0x1],[0x0,0x2],[0x1,0x3],[0x2,0x3],[0x4,0x5],[0x4,0x6],[0x5,0x7],[0x6,0x7],[0x0,0x4],[0x1,0x5],[0x2,0x6],[0x3,0x7]],_0xa6336=new Float32Array(_0x41c957[_0x3fabeb(0x2e8)]*0x2*0x7),_0x2bb198=0x0;for(let _0x637dff of _0x41c957)for(let _0x362078 of _0x637dff)_0xa6336[_0x3fabeb(0x46d)]([..._0x17a35f[_0x362078],..._0x51b52d],_0x2bb198),_0x2bb198+=0x7;return{'id':'volume-bounds','topology':_0x3fabeb(0x186),'depthMode':_0x3fabeb(0x221),'vertices':_0xa6336};},_0x2d42c9=(_0x5b8e89,_0x433589,_0x2fbfe0,_0x4ad63c)=>{const _0x867332=_0x3a9ea2;let _0x4736f2=new Float32Array(_0x5b8e89[_0x867332(0x3a8)][_0x867332(0x2e8)]*0x7);for(let _0x22aa05=0x0;_0x22aa05<_0x5b8e89[_0x867332(0x3a8)][_0x867332(0x2e8)];_0x22aa05+=0x1){let _0x3d0aee=_0x5b8e89[_0x867332(0x3a8)][_0x22aa05],_0x571f05=_0x3d0aee*0x3,_0x2d7051=_0x4aed5f(_0x5b8e89[_0x867332(0x1a1)][_0x3d0aee],_0x2fbfe0,_0x4ad63c),_0x5a5dcc=_0x43be91(_0x5b8e89[_0x867332(0x1a1)][_0x3d0aee],_0x433589,_0x5b8e89[_0x867332(0x23e)]*_0x2d7051,_0x4ad63c);_0x4736f2[_0x867332(0x46d)]([_0x5b8e89[_0x867332(0x220)][_0x571f05],_0x5b8e89['positions'][_0x571f05+0x1],_0x5b8e89[_0x867332(0x220)][_0x571f05+0x2],_0x5a5dcc[0x0]*_0x5a5dcc[0x3],_0x5a5dcc[0x1]*_0x5a5dcc[0x3],_0x5a5dcc[0x2]*_0x5a5dcc[0x3],_0x5a5dcc[0x3]],_0x22aa05*0x7);}return{'id':_0x5b8e89['id'],'topology':_0x867332(0x29b),'depthMode':_0x5b8e89['depthMode'],'vertices':_0x4736f2};},_0x16e120=(_0x244855,_0x44b55e,_0x278982)=>{const _0x43eebe=_0x3a9ea2;let _0x3f3b2b=(_0x244855[_0x43eebe(0x38b)]['x']+0.5)/_0x44b55e[_0x43eebe(0x204)],_0x66aae=(_0x244855[_0x43eebe(0x38b)]['y']+0.5)/_0x44b55e[_0x43eebe(0x17d)],_0x2c2f61=(_0x244855[_0x43eebe(0x38b)]['z']+0.5)/_0x44b55e[_0x43eebe(0x457)];return Math[_0x43eebe(0x1d3)](_0x3f3b2b-_0x278982[_0x43eebe(0x1d2)][0x0],_0x66aae-_0x278982['position'][0x1],_0x2c2f61-_0x278982[_0x43eebe(0x1d2)][0x2]);},_0x3434ac=(_0x1dfb84,_0x1804e6)=>(_0x1dfb84[_0x3a9ea2(0x38b)]['z']*_0x1804e6['countY']+_0x1dfb84[_0x3a9ea2(0x38b)]['y'])*_0x1804e6[_0x3a9ea2(0x204)]+_0x1dfb84[_0x3a9ea2(0x38b)]['x'],_0x3e0ad5=(_0x3d2e4d,_0x201e27,_0x1c3357,_0x3e58f5)=>{const _0x43a2f1=_0x3a9ea2;let _0x28dd49=_0x1c3357==='x'?{'start':_0x3d2e4d[_0x43a2f1(0x1af)][_0x43a2f1(0x3b3)],'count':_0x3d2e4d[_0x43a2f1(0x1af)][_0x43a2f1(0x243)],'size':_0x201e27[_0x43a2f1(0x474)][_0x43a2f1(0x1f2)][_0x43a2f1(0x25f)]}:_0x1c3357==='y'?{'start':_0x3d2e4d[_0x43a2f1(0x1af)][_0x43a2f1(0x1dc)],'count':_0x3d2e4d['coreRange']['levelCount'],'size':_0x201e27[_0x43a2f1(0x474)][_0x43a2f1(0x42c)]['count']}:{'start':_0x3d2e4d[_0x43a2f1(0x1af)][_0x43a2f1(0x38c)],'count':_0x3d2e4d[_0x43a2f1(0x1af)][_0x43a2f1(0x189)],'size':_0x201e27[_0x43a2f1(0x474)][_0x43a2f1(0x46c)][_0x43a2f1(0x25f)]};return _0x3e58f5>=_0x28dd49[_0x43a2f1(0x239)]/_0x28dd49[_0x43a2f1(0x439)]&&_0x3e58f5<=(_0x28dd49[_0x43a2f1(0x239)]+_0x28dd49['count'])/_0x28dd49[_0x43a2f1(0x439)];},_0x7be8e0=(_0x554cf6,_0x86a9cf,_0x3c62f6)=>{const _0x4821f4=_0x3a9ea2;let _0x5bc6c3=_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x3b3)]/_0x86a9cf[_0x4821f4(0x474)][_0x4821f4(0x1f2)][_0x4821f4(0x25f)],_0x3cdfad=(_0x554cf6['coreRange'][_0x4821f4(0x3b3)]+_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x243)])/_0x86a9cf[_0x4821f4(0x474)]['xAxis'][_0x4821f4(0x25f)],_0x5902eb=_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x1dc)]/_0x86a9cf[_0x4821f4(0x474)][_0x4821f4(0x42c)][_0x4821f4(0x25f)],_0x50d441=(_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x1dc)]+_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x3f3)])/_0x86a9cf[_0x4821f4(0x474)][_0x4821f4(0x42c)][_0x4821f4(0x25f)],_0x23bf92=_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x38c)]/_0x86a9cf[_0x4821f4(0x474)][_0x4821f4(0x46c)][_0x4821f4(0x25f)],_0x59dfd4=(_0x554cf6[_0x4821f4(0x1af)][_0x4821f4(0x38c)]+_0x554cf6['coreRange']['sourceYCount'])/_0x86a9cf[_0x4821f4(0x474)][_0x4821f4(0x46c)]['count'];return _0x3c62f6[_0x4821f4(0x3fd)](_0x5460c7=>{const _0x27ef73=_0x4821f4;let _0x26e369=_0x1514cb(_0x86a9cf['metadata']['yAxis'],_0x5460c7['heights'][0x0]),_0x3d2c57=_0x1514cb(_0x86a9cf[_0x27ef73(0x474)][_0x27ef73(0x42c)],_0x5460c7[_0x27ef73(0x23b)][_0x5460c7[_0x27ef73(0x23b)]['length']-0x1]);if(Math[_0x27ef73(0x1ac)](_0x26e369,_0x3d2c57)<_0x5902eb||Math['min'](_0x26e369,_0x3d2c57)>_0x50d441)return!0x1;for(let _0x565124=0x0;_0x565124<_0x5460c7[_0x27ef73(0x284)]['length'];_0x565124+=0x2){let _0x2dd21b=_0x1514cb(_0x86a9cf[_0x27ef73(0x474)][_0x27ef73(0x1f2)],_0x5460c7['path'][_0x565124]),_0x34c8ac=_0x1514cb(_0x86a9cf[_0x27ef73(0x474)]['zAxis'],_0x5460c7['path'][_0x565124+0x1]);if(_0x2dd21b>=_0x5bc6c3&&_0x2dd21b<=_0x3cdfad&&_0x34c8ac>=_0x23bf92&&_0x34c8ac<=_0x59dfd4)return!0x0;}return!0x1;});},_0x3aed27=(_0x48d7b6,_0x285bb8,_0x557ac3,_0x18268f)=>{const _0x4c0131=_0x3a9ea2;let _0x23550a=_0x557ac3['preview'];if(_0x23550a){let _0x448664=_0x23550a[_0x4c0131(0x35f)]==='x'?_0x285bb8[_0x4c0131(0x474)]['xAxis']:_0x23550a[_0x4c0131(0x35f)]==='y'?_0x285bb8['metadata']['yAxis']:_0x285bb8[_0x4c0131(0x474)]['zAxis'];if(_0x3e0ad5(_0x48d7b6,_0x285bb8,_0x23550a[_0x4c0131(0x35f)],_0x1514cb(_0x448664,_0x23550a[_0x4c0131(0x1d2)])))return 0x0;}for(let _0x19dea3 of _0x557ac3['lockedSlices']){let _0x2bd43e=_0x19dea3[_0x4c0131(0x35f)]==='x'?_0x285bb8[_0x4c0131(0x474)][_0x4c0131(0x1f2)]:_0x19dea3[_0x4c0131(0x35f)]==='y'?_0x285bb8['metadata'][_0x4c0131(0x42c)]:_0x285bb8[_0x4c0131(0x474)]['zAxis'];if(_0x19dea3[_0x4c0131(0x1eb)]&&_0x3e0ad5(_0x48d7b6,_0x285bb8,_0x19dea3[_0x4c0131(0x35f)],_0x1514cb(_0x2bd43e,_0x19dea3['position'])))return 0x1;}return _0x7be8e0(_0x48d7b6,_0x285bb8,_0x18268f)?0x2:0x3;};var _0x302425=class _0x170e20{['backend']=_0x3a9ea2(0x315);['renderer'];['volumeCamera'];[_0x3a9ea2(0x29d)];[_0x3a9ea2(0x2c4)];[_0x3a9ea2(0x339)];[_0x3a9ea2(0x209)]=[];[_0x3a9ea2(0x384)];[_0x3a9ea2(0x44b)];[_0x3a9ea2(0x361)];[_0x3a9ea2(0x427)];[_0x3a9ea2(0x448)];[_0x3a9ea2(0x333)];['opacityStops'];['profiles']=[];['timeIndex'];[_0x3a9ea2(0x2ff)]=0x0;['loadedKeys']=new Set();['pendingKeys']=new Map();[_0x3a9ea2(0x29c)]=new Set();[_0x3a9ea2(0x44a)]=0x0;['destroyed']=!0x1;['baseModelMatrix'];['verticalScale'];[_0x3a9ea2(0x42b)];[_0x3a9ea2(0x286)];['quality'];[_0x3a9ea2(0x3b4)]=_0x3a9ea2(0x3bc);['autoFrameCount']=0x0;['autoFrameIntervalTotal']=0x0;[_0x3a9ea2(0x330)];[_0x3a9ea2(0x2a9)]=null;[_0x3a9ea2(0x26a)];[_0x3a9ea2(0x3f4)];[_0x3a9ea2(0x1d4)];['interactionRenderScale'];[_0x3a9ea2(0x443)];[_0x3a9ea2(0x38a)]=new Set();[_0x3a9ea2(0x3b1)]=!0x0;[_0x3a9ea2(0x299)]=!0x1;[_0x3a9ea2(0x342)]=0x0;[_0x3a9ea2(0x3bb)]=0x0;[_0x3a9ea2(0x321)]=null;[_0x3a9ea2(0x3a3)];[_0x3a9ea2(0x31a)];[_0x3a9ea2(0x227)];[_0x3a9ea2(0x1a3)]=0x0;['lastTimingFrameTimestamp']=0x0;['actualFrameIntervalMilliseconds']=0x0;[_0x3a9ea2(0x3e0)]=new Set();[_0x3a9ea2(0x2e7)]=null;[_0x3a9ea2(0x1c0)]=null;constructor(_0x60e719,_0x16d741){const _0x11de66=_0x3a9ea2;this[_0x11de66(0x24e)]=_0x16d741,this['canvas']=_0x60e719['canvas'],this[_0x11de66(0x339)]=_0x60e719[_0x11de66(0x339)]??_0x60e719[_0x11de66(0x29d)],this[_0x11de66(0x2c4)]=_0x60e719['renderMode']??_0x11de66(0x1f9),this['source']=_0x60e719['source'],this[_0x11de66(0x48d)]=_0x60e719[_0x11de66(0x48d)]??0x0,this['layout']=this[_0x11de66(0x493)](_0x60e719),this[_0x11de66(0x361)]=_0x151690(this[_0x11de66(0x384)][_0x11de66(0x474)],this['layout']),this['volumeCamera']=new _0xbc1613({'state':_0x60e719[_0x11de66(0x34b)]??_0x140523}),this['sliceState']=this['createSliceState'](_0x60e719);let _0x2dc423=_0x22be8e(_0x60e719[_0x11de66(0x448)],_0x60e719[_0x11de66(0x32c)]);if(this['colorStops']=_0x2dc423['colorStops'],this[_0x11de66(0x333)]=_0x60e719[_0x11de66(0x448)],this[_0x11de66(0x32c)]=_0x60e719[_0x11de66(0x32c)],this[_0x11de66(0x46a)]=_0x60e719[_0x11de66(0x1e0)]??_0x11d829,this['verticalScale']=_0x59300f(_0x60e719[_0x11de66(0x36b)]??0x1,_0x11de66(0x36b)),this[_0x11de66(0x42b)]=_0x60e719['coordinateSystem']??_0x11de66(0x289),this[_0x11de66(0x42b)]==='geographic-wgs84'&&_0x60e719['modelMatrix'])throw Error('Geographic\x20WGS84\x20volume\x20scenes\x20manage\x20their\x20own\x20model\x20transform.\x20WGS84\x20地理体积场景自行管理模型变换。');this['clipBox']=_0x60e719[_0x11de66(0x286)]??null,this[_0x11de66(0x425)]=_0x60e719[_0x11de66(0x425)]??'auto',this['navigationMode']=_0x60e719[_0x11de66(0x26a)]??_0x11de66(0x2e3),this[_0x11de66(0x3f4)]=_0x59300f(_0x60e719[_0x11de66(0x3f4)]??0x2,_0x11de66(0x3f4)),this[_0x11de66(0x1d4)]=_0x59300f(_0x60e719[_0x11de66(0x1d4)]??0x1,'renderScale'),this[_0x11de66(0x393)]=_0x59300f(_0x60e719[_0x11de66(0x393)]??0.6,_0x11de66(0x393)),this[_0x11de66(0x443)]=_0x59300f(_0x60e719[_0x11de66(0x443)]??0x1,_0x11de66(0x443)),this[_0x11de66(0x330)]=_0x60e719[_0x11de66(0x330)]??_0x11de66(0x3d3),this[_0x11de66(0x3a3)]=_0x60e719[_0x11de66(0x2e7)]?.[_0x11de66(0x462)]??'scene',this[_0x11de66(0x31a)]=_0x60e719['sliceInteraction']?.['plateColor'],this[_0x11de66(0x227)]=_0x60e719[_0x11de66(0x2e7)]?.[_0x11de66(0x227)],this['renderer'][_0x11de66(0x3aa)](()=>this[_0x11de66(0x1c9)]()),this[_0x11de66(0x24e)][_0x11de66(0x383)](_0x2dc423[_0x11de66(0x448)],_0x2dc423[_0x11de66(0x32c)]);let _0x11fcb8=_0x60e719[_0x11de66(0x45b)]??this[_0x11de66(0x42b)]===_0x11de66(0x289);this[_0x11de66(0x24e)]['setAxes'](_0x11fcb8?[_0xda1e4d(),_0x22d2cf()]:[]),this['renderer'][_0x11de66(0x3a6)]({'renderMode':_0x60e719['mode']??'composite','colorMode':this[_0x11de66(0x330)],'opacity':_0x60e719[_0x11de66(0x23e)]??0.3,'densityScale':_0x60e719[_0x11de66(0x399)]??0x1,'stepLength':this[_0x11de66(0x2fa)](),'volumeDimFactor':this[_0x11de66(0x427)][_0x11de66(0x3d5)]}),this['configureSource'](),this[_0x11de66(0x47a)](),this['bindSliceState'](),this['bindSliceInteraction'](_0x60e719),this[_0x11de66(0x389)]();}static async[_0x3a9ea2(0x438)](_0x241a56){const _0x5cbee8=_0x3a9ea2;if(_0x5d3edd(_0x241a56[_0x5cbee8(0x384)]),_0x18abc7(_0x241a56[_0x5cbee8(0x384)][_0x5cbee8(0x474)],_0x241a56[_0x5cbee8(0x48d)]??0x0),(_0x241a56[_0x5cbee8(0x2af)]?.['halo']??0x1)!==0x1)throw Error(_0x5cbee8(0x319));let _0x5c2aab=_0x241a56['chunk']?.[_0x5cbee8(0x292)]??0x20000000,_0x5e7f71=new _0x430b40({'memoryTargetBytes':_0x5c2aab,'memoryHardLimitBytes':_0x241a56[_0x5cbee8(0x2af)]?.[_0x5cbee8(0x355)]??_0x5c2aab});await _0x5e7f71[_0x5cbee8(0x39c)](_0x241a56['canvas']);let _0x44aea1=new _0x170e20(_0x241a56,_0x5e7f71);return _0x44aea1['resize'](),_0x44aea1['scheduleBricks'](),_0x44aea1['renderMode']===_0x5cbee8(0x1f9)&&_0x44aea1['requestRender'](),_0x44aea1;}get[_0x3a9ea2(0x34b)](){const _0x624c1d=_0x3a9ea2;return this[_0x624c1d(0x40a)][_0x624c1d(0x465)];}get[_0x3a9ea2(0x211)](){const _0x3a61be=_0x3a9ea2;return this[_0x3a61be(0x427)]['lockedSlices'];}get[_0x3a9ea2(0x2a4)](){const _0x44179b=_0x3a9ea2;let _0x4ee86d=this[_0x44179b(0x2c4)]===_0x44179b(0x2d8)||this[_0x44179b(0x282)]()||performance[_0x44179b(0x2f2)]()-this[_0x44179b(0x1a3)]<=0xfa?this[_0x44179b(0x310)]:0x0;return{...this[_0x44179b(0x24e)][_0x44179b(0x2a4)],'pendingBrickCount':this['pendingKeys'][_0x44179b(0x439)],'brickScheduleCount':this[_0x44179b(0x342)],'brickSortCount':this[_0x44179b(0x3bb)],'actualFrameIntervalMilliseconds':_0x4ee86d,'estimatedFps':_0x4ee86d>0x0?0x3e8/_0x4ee86d:0x0,'effectiveQuality':this[_0x44179b(0x181)](),'effectiveRenderScale':this[_0x44179b(0x40f)](),'interactionKind':this[_0x44179b(0x379)]()};}[_0x3a9ea2(0x3a6)](_0x933128){const _0x1acb09=_0x3a9ea2;_0x933128['camera']&&this['setCamera'](_0x933128[_0x1acb09(0x34b)]),_0x933128[_0x1acb09(0x1e0)]&&(this[_0x1acb09(0x46a)]=[..._0x933128['modelMatrix']]),_0x933128[_0x1acb09(0x36b)]!==void 0x0&&(this[_0x1acb09(0x36b)]=_0x59300f(_0x933128[_0x1acb09(0x36b)],'verticalScale')),_0x933128[_0x1acb09(0x286)]!==void 0x0&&(this['clipBox']=_0x933128['clipBox']),_0x933128[_0x1acb09(0x425)]&&(this[_0x1acb09(0x425)]=_0x933128[_0x1acb09(0x425)]),_0x933128[_0x1acb09(0x26a)]&&(this['navigationMode']=_0x933128[_0x1acb09(0x26a)]);let _0x5b8ad0=!0x1;if(_0x933128[_0x1acb09(0x3f4)]!==void 0x0&&(this[_0x1acb09(0x3f4)]=_0x59300f(_0x933128[_0x1acb09(0x3f4)],_0x1acb09(0x3f4)),_0x5b8ad0=!0x0),_0x933128[_0x1acb09(0x1d4)]!==void 0x0&&(this[_0x1acb09(0x1d4)]=_0x59300f(_0x933128['renderScale'],_0x1acb09(0x1d4)),_0x5b8ad0=!0x0),_0x933128[_0x1acb09(0x393)]!==void 0x0&&(this[_0x1acb09(0x393)]=_0x59300f(_0x933128[_0x1acb09(0x393)],'interactionRenderScale'),_0x5b8ad0=this[_0x1acb09(0x282)]()),_0x933128[_0x1acb09(0x443)]!==void 0x0&&(this[_0x1acb09(0x443)]=_0x59300f(_0x933128[_0x1acb09(0x443)],_0x1acb09(0x443))),_0x933128[_0x1acb09(0x330)]&&(this[_0x1acb09(0x330)]=_0x933128[_0x1acb09(0x330)]),_0x933128['colorStops']||_0x933128[_0x1acb09(0x32c)]){let _0x4edd4b=_0x22be8e(_0x933128['colorStops']??this[_0x1acb09(0x333)],_0x933128[_0x1acb09(0x32c)]??this['opacityStops']);this['colorStops']=_0x4edd4b['colorStops'],this[_0x1acb09(0x333)]=_0x933128[_0x1acb09(0x448)]??this[_0x1acb09(0x333)],this[_0x1acb09(0x32c)]=_0x933128[_0x1acb09(0x32c)]??this[_0x1acb09(0x32c)],this['renderer'][_0x1acb09(0x383)](_0x4edd4b[_0x1acb09(0x448)],_0x4edd4b[_0x1acb09(0x32c)]),this[_0x1acb09(0x2b1)]();}_0x933128['colorMode']&&!_0x933128[_0x1acb09(0x448)]&&!_0x933128[_0x1acb09(0x32c)]&&this[_0x1acb09(0x2b1)](),this[_0x1acb09(0x24e)][_0x1acb09(0x3a6)]({'renderMode':_0x933128[_0x1acb09(0x1b7)],'colorMode':_0x933128[_0x1acb09(0x330)],'opacity':_0x933128[_0x1acb09(0x23e)],'densityScale':_0x933128[_0x1acb09(0x399)],'stepLength':this[_0x1acb09(0x2fa)]()}),this[_0x1acb09(0x47a)](),_0x5b8ad0&&this['resize'](),this[_0x1acb09(0x464)]();}['setCamera'](_0x361feb){const _0x135f06=_0x3a9ea2;this[_0x135f06(0x40a)]['setState'](_0x361feb),this[_0x135f06(0x419)](),this[_0x135f06(0x464)]();}[_0x3a9ea2(0x3ae)](_0x2f52f6){const _0xb9eb19=_0x3a9ea2;_0x18abc7(this[_0xb9eb19(0x384)][_0xb9eb19(0x474)],_0x2f52f6),_0x2f52f6!==this['timeIndex']&&(this[_0xb9eb19(0x48d)]=_0x2f52f6,this[_0xb9eb19(0x22d)]());}[_0x3a9ea2(0x1d6)](_0xaa9bfd){const _0x3a68ea=_0x3a9ea2;_0x5d3edd(_0xaa9bfd),this[_0x3a68ea(0x384)]=_0xaa9bfd,this[_0x3a68ea(0x48d)]=Math[_0x3a68ea(0x3e9)](this[_0x3a68ea(0x48d)],_0xaa9bfd[_0x3a68ea(0x474)][_0x3a68ea(0x45c)]-0x1),this[_0x3a68ea(0x44b)]=_0x3712e3(_0xaa9bfd['metadata'],this['layout'][_0x3a68ea(0x1ab)]),this['descriptors']=_0x151690(_0xaa9bfd['metadata'],this['layout']),this[_0x3a68ea(0x427)]['setAxes'](_0xaa9bfd[_0x3a68ea(0x474)]),this[_0x3a68ea(0x3e7)](),this['configureModel'](),this[_0x3a68ea(0x22d)](),this[_0x3a68ea(0x2b1)](),this[_0x3a68ea(0x464)]();}['setRouteProfiles'](_0x4955dc){const _0x1289ef=_0x3a9ea2;this[_0x1289ef(0x1cb)]=_0x4955dc,this[_0x1289ef(0x2b1)](),this[_0x1289ef(0x419)](),this['requestRender']();}[_0x3a9ea2(0x1a9)](_0x26ea7c){const _0x54d0e5=_0x3a9ea2;this['sliceState'][_0x54d0e5(0x2dc)](_0x26ea7c);}['beginInteraction'](_0x2265d5){const _0x2c2605=_0x3a9ea2;if(this[_0x2c2605(0x28a)]||this[_0x2c2605(0x38a)][_0x2c2605(0x3cf)](_0x2265d5))return;let _0x19c97e=!this[_0x2c2605(0x282)]();this[_0x2c2605(0x38a)][_0x2c2605(0x451)](_0x2265d5),_0x19c97e&&(this['lastTimingFrameTimestamp']=0x0,this['resize']());}[_0x3a9ea2(0x1b4)](_0x42c208){const _0x186629=_0x3a9ea2;this[_0x186629(0x28a)]||!this[_0x186629(0x38a)]['delete'](_0x42c208)||this[_0x186629(0x282)]()||(this[_0x186629(0x2e0)]=0x0,this[_0x186629(0x3df)]());}['lockSlice'](_0x4d7d7b,_0x50ea80){const _0x180857=_0x3a9ea2;this[_0x180857(0x427)][_0x180857(0x37f)](_0x4d7d7b,_0x50ea80);let _0x588572=this[_0x180857(0x427)]['lockPreview']();if(!_0x588572)throw Error(_0x180857(0x3d1));return _0x588572;}[_0x3a9ea2(0x402)](_0x136b34,_0x4d9541){const _0x287292=_0x3a9ea2;this[_0x287292(0x427)][_0x287292(0x23f)](_0x136b34,_0x4d9541);}[_0x3a9ea2(0x3cc)](_0x222007){const _0x5f4f06=_0x3a9ea2;this['sliceState'][_0x5f4f06(0x3cc)](_0x222007);}['clearLockedSlices'](){const _0x711526=_0x3a9ea2;this[_0x711526(0x427)]['clearLockedSlices']();}['resize'](){const _0x364f9b=_0x3a9ea2;let _0x2f14e9=Math[_0x364f9b(0x3e9)](window['devicePixelRatio']||0x1,this[_0x364f9b(0x3f4)])*this[_0x364f9b(0x40f)](),_0x1a0aac=Math[_0x364f9b(0x1ac)](0x1,Math[_0x364f9b(0x2b8)](this['canvas']['clientWidth']*_0x2f14e9||this['canvas'][_0x364f9b(0x1cc)]||0x1)),_0x4f73bf=Math[_0x364f9b(0x1ac)](0x1,Math[_0x364f9b(0x2b8)](this[_0x364f9b(0x29d)][_0x364f9b(0x1cf)]*_0x2f14e9||this[_0x364f9b(0x29d)][_0x364f9b(0x22a)]||0x1));this[_0x364f9b(0x40a)][_0x364f9b(0x2aa)](_0x1a0aac/_0x4f73bf),(this[_0x364f9b(0x29d)][_0x364f9b(0x1cc)]!==_0x1a0aac||this['canvas']['height']!==_0x4f73bf)&&this[_0x364f9b(0x24e)][_0x364f9b(0x3df)](_0x1a0aac,_0x4f73bf),this['requestRender']();}['render'](){const _0x515e73=_0x3a9ea2;if(this[_0x515e73(0x28a)])return;this[_0x515e73(0x262)](),this[_0x515e73(0x270)]();let _0x4f5693=this['volumeCamera'][_0x515e73(0x247)];if(this[_0x515e73(0x24e)][_0x515e73(0x3b9)]({'viewProjection':Array[_0x515e73(0x18d)](_0x4f5693[_0x515e73(0x3f2)]),'inverseViewProjection':Array[_0x515e73(0x18d)](_0x4f5693[_0x515e73(0x338)]),'cameraPosition':this['volumeCamera'][_0x515e73(0x465)][_0x515e73(0x1d2)]}),this[_0x515e73(0x24e)]['update']({'stepLength':this[_0x515e73(0x2fa)]()}),!this[_0x515e73(0x24e)][_0x515e73(0x273)]()){this[_0x515e73(0x3b1)]=!0x0;return;}this['renderDirty']=!0x1,this[_0x515e73(0x471)](performance[_0x515e73(0x2f2)]()),this[_0x515e73(0x1c0)]?.[_0x515e73(0x3a6)]();}[_0x3a9ea2(0x40d)](){const _0x58b64a=_0x3a9ea2;if(this[_0x58b64a(0x28a)])return Promise[_0x58b64a(0x48c)](Error(_0x58b64a(0x32e)));this[_0x58b64a(0x262)](),this['flushBrickSchedule']();let _0x32f06a=this['volumeCamera']['matrices'];return this[_0x58b64a(0x24e)]['setCamera']({'viewProjection':Array['from'](_0x32f06a['viewProjection']),'inverseViewProjection':Array[_0x58b64a(0x18d)](_0x32f06a[_0x58b64a(0x338)]),'cameraPosition':this['volumeCamera'][_0x58b64a(0x465)][_0x58b64a(0x1d2)]}),this[_0x58b64a(0x24e)][_0x58b64a(0x40d)]();}[_0x3a9ea2(0x421)](){const _0x263453=_0x3a9ea2;if(!this[_0x263453(0x28a)]){this[_0x263453(0x28a)]=!0x0,this[_0x263453(0x2ff)]+=0x1;for(let _0x5588fc of this[_0x263453(0x3e0)])_0x5588fc[_0x263453(0x3d9)]();this[_0x263453(0x3e0)][_0x263453(0x33b)](),cancelAnimationFrame(this[_0x263453(0x44a)]),this['renderer'][_0x263453(0x3aa)](null),this[_0x263453(0x209)][_0x263453(0x1c5)](0x0)[_0x263453(0x2e5)](_0x2d1b9=>_0x2d1b9()),this['renderer']['destroy'](),this[_0x263453(0x2e7)]?.[_0x263453(0x421)](),this[_0x263453(0x1c0)]?.[_0x263453(0x421)](),this[_0x263453(0x21a)]['clear'](),this[_0x263453(0x2e4)][_0x263453(0x33b)](),this[_0x263453(0x29c)]['clear'](),this['activeInteractions'][_0x263453(0x33b)](),this[_0x263453(0x321)]=null;}}[_0x3a9ea2(0x493)](_0x59b25){const _0x2abcc3=_0x3a9ea2;return _0x3712e3(_0x59b25[_0x2abcc3(0x384)][_0x2abcc3(0x474)],{'width':_0x59b25[_0x2abcc3(0x2af)]?.[_0x2abcc3(0x1cc)],'height':_0x59b25[_0x2abcc3(0x2af)]?.[_0x2abcc3(0x22a)],'depth':_0x59b25['chunk']?.['depth'],'halo':_0x59b25['chunk']?.[_0x2abcc3(0x3ca)]});}[_0x3a9ea2(0x181)](){const _0x953e9b=_0x3a9ea2;return this[_0x953e9b(0x425)]==='auto'?this['autoQuality']:this[_0x953e9b(0x425)];}[_0x3a9ea2(0x2fa)](){const _0xe5a46c=_0x3a9ea2;let _0x21585c=_0x547ffc(this[_0xe5a46c(0x181)]());return(this[_0xe5a46c(0x42b)]==='geographic-wgs84'?_0x21585c*0.05:_0x21585c)*(this['isInteracting']()?this[_0xe5a46c(0x443)]:0x1);}[_0x3a9ea2(0x282)](){const _0x4fadf7=_0x3a9ea2;return this[_0x4fadf7(0x38a)][_0x4fadf7(0x439)]>0x0;}[_0x3a9ea2(0x379)](){const _0x37691c=_0x3a9ea2;return this[_0x37691c(0x38a)][_0x37691c(0x439)]===0x0?_0x37691c(0x1e2):this['activeInteractions'][_0x37691c(0x439)]>0x1?_0x37691c(0x25e):this[_0x37691c(0x38a)][_0x37691c(0x1a1)]()[_0x37691c(0x43d)]()[_0x37691c(0x431)]??_0x37691c(0x1e2);}[_0x3a9ea2(0x40f)](){const _0x4b0758=_0x3a9ea2;return this[_0x4b0758(0x1d4)]*(this[_0x4b0758(0x282)]()?this['interactionRenderScale']:0x1);}[_0x3a9ea2(0x471)](_0x78d046){const _0x34c2b4=_0x3a9ea2;if(this[_0x34c2b4(0x1a3)]=_0x78d046,!(this[_0x34c2b4(0x2c4)]==='external'||this[_0x34c2b4(0x282)]())){this[_0x34c2b4(0x2e0)]=0x0;return;}if(this[_0x34c2b4(0x2e0)]>0x0){let _0x22f2fd=_0x78d046-this[_0x34c2b4(0x2e0)];_0x22f2fd>0x0&&_0x22f2fd<=0xfa&&(this['actualFrameIntervalMilliseconds']=this[_0x34c2b4(0x310)]===0x0?_0x22f2fd:this[_0x34c2b4(0x310)]*0.8+_0x22f2fd*0.2,this[_0x34c2b4(0x214)](_0x22f2fd));}this[_0x34c2b4(0x2e0)]=_0x78d046;}[_0x3a9ea2(0x214)](_0x1f0a10){const _0x251bc9=_0x3a9ea2;if(this[_0x251bc9(0x425)]!=='auto'||(this[_0x251bc9(0x362)]+=0x1,this[_0x251bc9(0x28f)]+=_0x1f0a10,this[_0x251bc9(0x362)]<0x1e))return;let _0x450a89=this[_0x251bc9(0x28f)]/this[_0x251bc9(0x362)];if(this['autoFrameCount']=0x0,this[_0x251bc9(0x28f)]=0x0,this[_0x251bc9(0x282)]()&&_0x450a89<0xe)return;let _0x107261=_0x501e69(this['autoQuality'],_0x450a89);_0x107261!==this[_0x251bc9(0x3b4)]&&(this[_0x251bc9(0x3b4)]=_0x107261,this[_0x251bc9(0x419)](),this[_0x251bc9(0x464)]());}[_0x3a9ea2(0x20f)](_0x2ee9fc){const _0x447bdb=_0x3a9ea2;return new _0x144448(_0x2ee9fc[_0x447bdb(0x384)]['metadata'],{'volumeDimFactor':_0x2ee9fc[_0x447bdb(0x2e7)]?.[_0x447bdb(0x3d5)],'depthMode':_0x2ee9fc[_0x447bdb(0x2e7)]?.['depthMode'],'maxLockedSlices':_0x2ee9fc[_0x447bdb(0x2e7)]?.[_0x447bdb(0x26f)],'onLimitReached':_0x45b677=>_0x2ee9fc[_0x447bdb(0x2e7)]?.[_0x447bdb(0x2d6)]?.(Error(_0x447bdb(0x27f)+_0x45b677+_0x447bdb(0x1ee)+_0x45b677+'。'))});}[_0x3a9ea2(0x24d)](){const _0x509a97=_0x3a9ea2;let _0x27f94b=this[_0x509a97(0x427)][_0x509a97(0x360)](_0x44880e=>{const _0x5a04bb=_0x509a97;this[_0x5a04bb(0x321)]=_0x44880e,this[_0x5a04bb(0x464)]();});this[_0x509a97(0x209)][_0x509a97(0x23d)](_0x27f94b);}[_0x3a9ea2(0x262)](){const _0x538036=_0x3a9ea2;let _0x426ad6=this[_0x538036(0x321)];if(!_0x426ad6)return;this['pendingSliceSnapshot']=null;let _0x195c9f=[];if(_0x426ad6['preview']){let _0x3be3d6=_0x426ad6['preview'][_0x538036(0x35f)]==='x'?this[_0x538036(0x384)][_0x538036(0x474)][_0x538036(0x1f2)]:_0x426ad6[_0x538036(0x2f6)]['axis']==='y'?this[_0x538036(0x384)][_0x538036(0x474)][_0x538036(0x42c)]:this[_0x538036(0x384)][_0x538036(0x474)][_0x538036(0x46c)];_0x195c9f[_0x538036(0x23d)]({'id':'volume-slice-preview','axis':_0x426ad6[_0x538036(0x2f6)][_0x538036(0x35f)],'position':_0x18f1a4(_0x1514cb(_0x3be3d6,_0x426ad6['preview'][_0x538036(0x1d2)])),'depthMode':this['sliceDepthMode'],'visible':!0x0,'opacity':0.72,'plateColor':this['slicePlateColor']});}for(let _0x51d93e of _0x426ad6[_0x538036(0x211)]){let _0x19759b=_0x51d93e[_0x538036(0x35f)]==='x'?this[_0x538036(0x384)][_0x538036(0x474)][_0x538036(0x1f2)]:_0x51d93e[_0x538036(0x35f)]==='y'?this[_0x538036(0x384)][_0x538036(0x474)][_0x538036(0x42c)]:this[_0x538036(0x384)][_0x538036(0x474)][_0x538036(0x46c)];_0x195c9f[_0x538036(0x23d)]({..._0x51d93e,'position':_0x18f1a4(_0x1514cb(_0x19759b,_0x51d93e[_0x538036(0x1d2)])),'opacity':0x1,'plateColor':this[_0x538036(0x31a)]});}this[_0x538036(0x24e)][_0x538036(0x1a2)](_0x195c9f),this[_0x538036(0x24e)][_0x538036(0x3a6)]({'volumeDimFactor':_0x426ad6['preview']||_0x426ad6[_0x538036(0x211)][_0x538036(0x3fd)](_0x8b204c=>_0x8b204c[_0x538036(0x1eb)])?_0x426ad6['volumeDimFactor']:0x1}),this[_0x538036(0x227)]?.(_0x426ad6['lockedSlices']),this[_0x538036(0x299)]=!0x0;}[_0x3a9ea2(0x3e3)](_0x4cdbfb){const _0x12d24a=_0x3a9ea2;let _0x425339=()=>({'viewProjectionMatrix':this[_0x12d24a(0x40a)]['matrices'][_0x12d24a(0x3f2)],'modelMatrix':_0x7388f0(this[_0x12d24a(0x46a)],this[_0x12d24a(0x36b)]),'viewportWidth':Math['max'](0x1,this[_0x12d24a(0x29d)][_0x12d24a(0x334)]),'viewportHeight':Math[_0x12d24a(0x1ac)](0x1,this['canvas']['clientHeight'])});this[_0x12d24a(0x2e7)]=new _0x1ec6f2(this[_0x12d24a(0x339)],this['sliceState'],_0x425339,{'hitTolerancePixels':_0x4cdbfb[_0x12d24a(0x2e7)]?.[_0x12d24a(0x309)],'onInteractionStart':()=>this[_0x12d24a(0x256)]('slice'),'onInteractionEnd':()=>this[_0x12d24a(0x1b4)](_0x12d24a(0x212))}),this[_0x12d24a(0x2e7)][_0x12d24a(0x39c)](),_0x4cdbfb[_0x12d24a(0x1e3)]&&(this[_0x12d24a(0x1c0)]=new _0x37401f(_0x4cdbfb[_0x12d24a(0x1e3)],this[_0x12d24a(0x427)],_0x425339,{'interactionController':this['sliceInteraction']}));}[_0x3a9ea2(0x389)](){const _0x31f668=_0x3a9ea2;let _0x53c46c=_0x1273e4=>{const _0x2c0d11=_0x571d;_0x1273e4[_0x2c0d11(0x26b)]!==0x0&&_0x1273e4['button']!==0x2||(this[_0x2c0d11(0x2a9)]={'id':_0x1273e4[_0x2c0d11(0x36c)],'x':_0x1273e4[_0x2c0d11(0x2c8)],'y':_0x1273e4[_0x2c0d11(0x470)],'pan':_0x1273e4[_0x2c0d11(0x26b)]===0x2||_0x1273e4[_0x2c0d11(0x36f)]!==_0x2c0d11(0x35e)&&this[_0x2c0d11(0x26a)]===_0x2c0d11(0x25c)},this[_0x2c0d11(0x256)]('camera'),this[_0x2c0d11(0x339)][_0x2c0d11(0x3dc)]?.(_0x1273e4[_0x2c0d11(0x36c)]),_0x1273e4[_0x2c0d11(0x1f5)]());},_0x500414=_0x40b9f3=>{const _0x178eeb=_0x571d;if(!this[_0x178eeb(0x2a9)]||this['pointer']['id']!==_0x40b9f3[_0x178eeb(0x36c)])return;let _0x50a2e7=_0x40b9f3[_0x178eeb(0x2c8)]-this[_0x178eeb(0x2a9)]['x'],_0x534c4f=_0x40b9f3[_0x178eeb(0x470)]-this[_0x178eeb(0x2a9)]['y'];this['pointer']['x']=_0x40b9f3[_0x178eeb(0x2c8)],this['pointer']['y']=_0x40b9f3[_0x178eeb(0x470)],this['pointer'][_0x178eeb(0x25c)]?this[_0x178eeb(0x40a)][_0x178eeb(0x25c)](_0x50a2e7,_0x534c4f,this[_0x178eeb(0x29d)]['clientHeight']):this['volumeCamera'][_0x178eeb(0x2e3)](_0x50a2e7,_0x534c4f),this[_0x178eeb(0x419)](),this[_0x178eeb(0x464)]();},_0xc1e1a3=_0x5e9626=>{const _0x344ba0=_0x571d;this['pointer']?.['id']===_0x5e9626[_0x344ba0(0x36c)]&&(this[_0x344ba0(0x2a9)]=null,this['endInteraction'](_0x344ba0(0x34b)));},_0x208c08=_0x926679=>{const _0x484598=_0x571d;_0x926679[_0x484598(0x1f5)](),this['volumeCamera'][_0x484598(0x422)](_0x926679[_0x484598(0x387)]),this[_0x484598(0x419)](),this['requestRender']();},_0x32fb7a=_0x32ef9a=>_0x32ef9a[_0x31f668(0x1f5)]();this['interactionElement']['addEventListener']('pointerdown',_0x53c46c),this[_0x31f668(0x339)][_0x31f668(0x265)](_0x31f668(0x365),_0x500414),this['interactionElement'][_0x31f668(0x265)](_0x31f668(0x2be),_0xc1e1a3),this[_0x31f668(0x339)][_0x31f668(0x265)]('pointercancel',_0xc1e1a3),this['interactionElement']['addEventListener'](_0x31f668(0x1ba),_0x208c08,{'passive':!0x1}),this['interactionElement']['addEventListener'](_0x31f668(0x294),_0x32fb7a),this['eventDisposers'][_0x31f668(0x23d)](()=>this[_0x31f668(0x339)][_0x31f668(0x347)]('pointerdown',_0x53c46c),()=>this[_0x31f668(0x339)]['removeEventListener'](_0x31f668(0x365),_0x500414),()=>this[_0x31f668(0x339)][_0x31f668(0x347)](_0x31f668(0x2be),_0xc1e1a3),()=>this[_0x31f668(0x339)][_0x31f668(0x347)](_0x31f668(0x3d6),_0xc1e1a3),()=>this[_0x31f668(0x339)][_0x31f668(0x347)](_0x31f668(0x1ba),_0x208c08),()=>this['interactionElement'][_0x31f668(0x347)](_0x31f668(0x294),_0x32fb7a));}[_0x3a9ea2(0x3e7)](){const _0x2e8f4b=_0x3a9ea2;this[_0x2e8f4b(0x24e)][_0x2e8f4b(0x1d6)]({'xAxis':this[_0x2e8f4b(0x384)]['metadata'][_0x2e8f4b(0x1f2)],'yAxis':this[_0x2e8f4b(0x384)]['metadata'][_0x2e8f4b(0x42c)],'zAxis':this[_0x2e8f4b(0x384)]['metadata'][_0x2e8f4b(0x46c)],'brickWidth':this['layout'][_0x2e8f4b(0x1ab)][_0x2e8f4b(0x1cc)],'brickHeight':this[_0x2e8f4b(0x44b)][_0x2e8f4b(0x1ab)][_0x2e8f4b(0x22a)],'brickDepth':this[_0x2e8f4b(0x44b)][_0x2e8f4b(0x1ab)][_0x2e8f4b(0x30f)],'halo':0x1,'noData':this['source'][_0x2e8f4b(0x474)][_0x2e8f4b(0x268)]});}[_0x3a9ea2(0x47a)](){const _0x19e9d1=_0x3a9ea2;if(this[_0x19e9d1(0x42b)]===_0x19e9d1(0x478)){let _0x492296=_0x46fb2a(this[_0x19e9d1(0x384)]['metadata'],this[_0x19e9d1(0x36b)]);this['renderer'][_0x19e9d1(0x3a6)]({'modelMatrix':_0x492296['proxyModelMatrix'],'inverseModelMatrix':Array[_0x19e9d1(0x18d)](_0x50b8ae(_0x492296[_0x19e9d1(0x304)])),'geographicTransform':_0x492296[_0x19e9d1(0x18e)],'clipMinimum':[0x0,0x0,0x0],'clipMaximum':[0x1,0x1,0x1]}),this[_0x19e9d1(0x464)]();return;}let _0x45859e=_0x7388f0(this['baseModelMatrix'],this[_0x19e9d1(0x36b)]),_0x50786a=_0x221eb2(this['source'],this[_0x19e9d1(0x286)]);this['renderer'][_0x19e9d1(0x3a6)]({'modelMatrix':Array['from'](_0x45859e),'inverseModelMatrix':Array[_0x19e9d1(0x18d)](_0x50b8ae(_0x45859e)),'geographicTransform':null,'clipMinimum':_0x50786a[_0x19e9d1(0x23c)],'clipMaximum':_0x50786a[_0x19e9d1(0x1dd)]}),this[_0x19e9d1(0x464)]();}[_0x3a9ea2(0x2b1)](){const _0x355e63=_0x3a9ea2;let _0x217c18=this[_0x355e63(0x1cb)][_0x355e63(0x42f)](_0x28cfb5=>_0x2d42c9(_0x586fc3(_0x28cfb5,this[_0x355e63(0x384)][_0x355e63(0x474)]),this[_0x355e63(0x448)],this[_0x355e63(0x32c)],this[_0x355e63(0x330)]));this[_0x355e63(0x24e)]['setProfiles'](_0x217c18),this['requestRender']();}['resetBrickRequests'](){const _0x44ceda=_0x3a9ea2;this['sourceGeneration']+=0x1;for(let _0x22b698 of this[_0x44ceda(0x3e0)])_0x22b698[_0x44ceda(0x3d9)]();this[_0x44ceda(0x3e0)][_0x44ceda(0x33b)](),this[_0x44ceda(0x21a)][_0x44ceda(0x33b)](),this[_0x44ceda(0x2e4)]['clear'](),this[_0x44ceda(0x29c)]['clear'](),this[_0x44ceda(0x3e7)](),this['scheduleBricks']();}[_0x3a9ea2(0x419)](){const _0x3a873d=_0x3a9ea2;this[_0x3a873d(0x299)]=!0x0,this['requestRender']();}['flushBrickSchedule'](){const _0x48b752=_0x3a9ea2;this[_0x48b752(0x299)]&&(this[_0x48b752(0x299)]=!0x1,this['scheduleBricks']());}[_0x3a9ea2(0x185)](){const _0x35389f=_0x3a9ea2;if(this[_0x35389f(0x28a)])return;this['brickScheduleDirty']=!0x1,this[_0x35389f(0x342)]+=0x1;let _0x1f8574=this[_0x35389f(0x24e)][_0x35389f(0x2a4)][_0x35389f(0x2d0)];if(_0x1f8574<=0x0)return;let _0x2d3146=_0x1f8574>=this['descriptors']['length'];if(_0x2d3146&&this['desiredKeys']['size']===this[_0x35389f(0x361)][_0x35389f(0x2e8)]&&this[_0x35389f(0x21a)][_0x35389f(0x439)]===this[_0x35389f(0x361)]['length']&&this['pendingKeys'][_0x35389f(0x439)]===0x0)return;let _0x322102;_0x2d3146?_0x322102=this[_0x35389f(0x361)]:(this[_0x35389f(0x3bb)]+=0x1,_0x322102=[...this[_0x35389f(0x361)]][_0x35389f(0x351)]((_0x594aa0,_0x54233c)=>_0x3aed27(_0x594aa0,this[_0x35389f(0x384)],this['sliceState'],this[_0x35389f(0x1cb)])-_0x3aed27(_0x54233c,this[_0x35389f(0x384)],this['sliceState'],this[_0x35389f(0x1cb)])||_0x16e120(_0x594aa0,this['layout'],this['volumeCamera'][_0x35389f(0x465)])-_0x16e120(_0x54233c,this[_0x35389f(0x44b)],this[_0x35389f(0x40a)]['state']))[_0x35389f(0x212)](0x0,_0x1f8574));let _0x557ee5=new Set(_0x322102[_0x35389f(0x42f)](_0x5ec343=>_0x5ec343[_0x35389f(0x47b)]));this[_0x35389f(0x29c)]=_0x557ee5,_0x2d3146||this['renderer'][_0x35389f(0x35b)](_0x322102[_0x35389f(0x340)](_0x3c6d89=>this[_0x35389f(0x21a)][_0x35389f(0x3cf)](_0x3c6d89[_0x35389f(0x47b)]))[_0x35389f(0x42f)](_0x28bd24=>_0x3434ac(_0x28bd24,this[_0x35389f(0x44b)])));for(let _0x13c887 of this[_0x35389f(0x21a)])_0x557ee5[_0x35389f(0x3cf)](_0x13c887)||this[_0x35389f(0x21a)]['delete'](_0x13c887);let _0x22e22f=Math['max'](0x0,_0x3d8457(this[_0x35389f(0x181)]())-this[_0x35389f(0x2e4)][_0x35389f(0x439)]),_0x5f1b32=_0x322102[_0x35389f(0x340)](_0x69c099=>!this[_0x35389f(0x21a)][_0x35389f(0x3cf)](_0x69c099['key'])&&!this[_0x35389f(0x2e4)][_0x35389f(0x3cf)](_0x69c099[_0x35389f(0x47b)]))['slice'](0x0,_0x22e22f);for(let _0x4612dd of _0x5f1b32)this[_0x35389f(0x1fb)](_0x4612dd);}[_0x3a9ea2(0x1fb)](_0xcec3b3){const _0x282017=_0x3a9ea2;let _0x3046ca=this[_0x282017(0x2ff)],_0x40d727=this[_0x282017(0x384)],_0x184a5a=this[_0x282017(0x48d)],_0x2a65ce=new AbortController();this[_0x282017(0x3e0)][_0x282017(0x451)](_0x2a65ce),this[_0x282017(0x2e4)]['set'](_0xcec3b3[_0x282017(0x47b)],_0x3046ca),Promise[_0x282017(0x203)](_0x40d727[_0x282017(0x2d1)](_0x184a5a,_0xcec3b3[_0x282017(0x28d)],_0x2a65ce[_0x282017(0x39f)]))[_0x282017(0x481)](async _0x20086c=>{const _0x571964=_0x282017;if(this['destroyed']||_0x3046ca!==this[_0x571964(0x2ff)]||_0x40d727!==this[_0x571964(0x384)]||_0x184a5a!==this[_0x571964(0x48d)]||!this[_0x571964(0x29c)][_0x571964(0x3cf)](_0xcec3b3[_0x571964(0x47b)]))return;let _0xbbf72b=_0x2b3504(_0x40d727[_0x571964(0x474)],this['layout'][_0x571964(0x1ab)],_0xcec3b3,_0x20086c),_0x1170fb=_0x3434ac(_0xcec3b3,this[_0x571964(0x44b)]);await this[_0x571964(0x24e)][_0x571964(0x380)]({'logicalIndex':_0x1170fb,'values':_0xbbf72b}),!(this[_0x571964(0x28a)]||_0x3046ca!==this[_0x571964(0x2ff)]||_0x40d727!==this[_0x571964(0x384)]||_0x184a5a!==this[_0x571964(0x48d)]||!this['desiredKeys'][_0x571964(0x3cf)](_0xcec3b3[_0x571964(0x47b)]))&&(this[_0x571964(0x21a)]['add'](_0xcec3b3[_0x571964(0x47b)]),this[_0x571964(0x464)]());})[_0x282017(0x1d7)](_0x36622e=>{const _0x3c0bee=_0x282017;_0x36622e instanceof DOMException&&_0x36622e[_0x3c0bee(0x2b3)]==='AbortError'||console[_0x3c0bee(0x381)](_0x36622e);})[_0x282017(0x205)](()=>{const _0x243276=_0x282017;this[_0x243276(0x3e0)]['delete'](_0x2a65ce),this[_0x243276(0x2e4)]['get'](_0xcec3b3[_0x243276(0x47b)])===_0x3046ca&&this[_0x243276(0x2e4)]['delete'](_0xcec3b3[_0x243276(0x47b)]),_0x3046ca===this[_0x243276(0x2ff)]&&this[_0x243276(0x185)]();});}['handleFrameAvailable'](){const _0x5e691d=_0x3a9ea2;this[_0x5e691d(0x3b1)]&&this[_0x5e691d(0x464)]();}[_0x3a9ea2(0x464)](){const _0x4e8a22=_0x3a9ea2;this[_0x4e8a22(0x28a)]||(this[_0x4e8a22(0x3b1)]=!0x0,!(this[_0x4e8a22(0x2c4)]!==_0x4e8a22(0x1f9)||this[_0x4e8a22(0x44a)]!==0x0)&&(this['frameRequest']=requestAnimationFrame(()=>{const _0x47f340=_0x4e8a22;this[_0x47f340(0x44a)]=0x0,!(this[_0x47f340(0x28a)]||!this[_0x47f340(0x3b1)])&&this[_0x47f340(0x273)]();})));}};let _0x328177=_0x3317ee=>_0x302425[_0x3a9ea2(0x438)](_0x3317ee),_0xd495c7=(_0xf376f8,_0x5c70a2,_0x24b83e,_0x35d430)=>{const _0x3e1a97=_0x3a9ea2;if(!Number[_0x3e1a97(0x34f)](_0xf376f8)||!Number[_0x3e1a97(0x34f)](_0x5c70a2)||_0xf376f8<0x0||_0x5c70a2<=0x0||_0xf376f8+_0x5c70a2>_0x24b83e)throw Error(_0x35d430+_0x3e1a97(0x190)+_0xf376f8+_0x3e1a97(0x43a)+_0x5c70a2+',\x20size='+_0x24b83e+'.\x20'+_0x35d430+'\x20范围无效。');},_0x74b43e=(_0x116cce,_0x5eedb4)=>{const _0x203cd0=_0x3a9ea2;_0xd495c7(_0x5eedb4['xStart'],_0x5eedb4[_0x203cd0(0x243)],_0x116cce[_0x203cd0(0x1f2)][_0x203cd0(0x25f)],'X'),_0xd495c7(_0x5eedb4['levelStart'],_0x5eedb4[_0x203cd0(0x3f3)],_0x116cce[_0x203cd0(0x42c)][_0x203cd0(0x25f)],_0x203cd0(0x363)),_0xd495c7(_0x5eedb4['sourceYStart'],_0x5eedb4[_0x203cd0(0x189)],_0x116cce[_0x203cd0(0x46c)][_0x203cd0(0x25f)],'sourceY');},_0x1bfe99=_0x6c6a96=>{const _0x1e2ac6=_0x3a9ea2;_0x15d88c(_0x6c6a96);let _0x2b0066=_0x6c6a96[_0x1e2ac6(0x1f2)][_0x1e2ac6(0x25f)]*_0x6c6a96['yAxis'][_0x1e2ac6(0x25f)]*_0x6c6a96[_0x1e2ac6(0x46c)][_0x1e2ac6(0x25f)]*_0x6c6a96[_0x1e2ac6(0x45c)];if(_0x6c6a96[_0x1e2ac6(0x1a1)][_0x1e2ac6(0x2e8)]!==_0x2b0066)throw Error(_0x1e2ac6(0x2b0)+_0x2b0066+_0x1e2ac6(0x1aa)+_0x6c6a96[_0x1e2ac6(0x1a1)][_0x1e2ac6(0x2e8)]+'.\x20体积数据长度与维度不匹配。');};_0x5588ea[_0x3a9ea2(0x2c6)]=_0xbc1613,_0x5588ea['createGeographicVolumeLayout']=_0x46fb2a,_0x5588ea['createInMemoryVolumeSource']=_0x1afbd7=>{_0x1bfe99(_0x1afbd7);let {values:_0x16aff3,..._0x52e86c}=_0x1afbd7;return{'metadata':_0x52e86c,'readChunk'(_0x96b950,_0x383d2a,_0x4ed274){const _0x18f51c=_0x571d;if(_0x4ed274?.[_0x18f51c(0x47c)])throw new DOMException('Volume\x20chunk\x20request\x20was\x20aborted.\x20体积块请求已取消。',_0x18f51c(0x3bd));if(!Number[_0x18f51c(0x34f)](_0x96b950)||_0x96b950<0x0||_0x96b950>=_0x1afbd7[_0x18f51c(0x45c)])throw Error(_0x18f51c(0x1b8)+_0x96b950+_0x18f51c(0x3d8));_0x74b43e(_0x1afbd7,_0x383d2a);let _0x29e554=new Float32Array(_0x383d2a[_0x18f51c(0x243)]*_0x383d2a[_0x18f51c(0x3f3)]*_0x383d2a[_0x18f51c(0x189)]),_0x51b37a=_0x1afbd7[_0x18f51c(0x1f2)][_0x18f51c(0x25f)],_0x2d183d=_0x1afbd7[_0x18f51c(0x42c)][_0x18f51c(0x25f)],_0x38a805=_0x1afbd7['zAxis'][_0x18f51c(0x25f)],_0x1d4111=_0x96b950*_0x51b37a*_0x2d183d*_0x38a805;for(let _0x3dfea6=0x0;_0x3dfea6<_0x383d2a[_0x18f51c(0x189)];_0x3dfea6+=0x1)for(let _0x48dd66=0x0;_0x48dd66<_0x383d2a[_0x18f51c(0x3f3)];_0x48dd66+=0x1){let _0x510272=_0x1d4111+(((_0x383d2a['sourceYStart']+_0x3dfea6)*_0x2d183d+_0x383d2a['levelStart']+_0x48dd66)*_0x51b37a+_0x383d2a[_0x18f51c(0x3b3)]),_0x49d694=(_0x3dfea6*_0x383d2a[_0x18f51c(0x3f3)]+_0x48dd66)*_0x383d2a[_0x18f51c(0x243)];_0x29e554[_0x18f51c(0x46d)](_0x16aff3[_0x18f51c(0x2ef)](_0x510272,_0x510272+_0x383d2a['xCount']),_0x49d694);}return{'timeIndex':_0x96b950,'range':{..._0x383d2a},'width':_0x383d2a['xCount'],'height':_0x383d2a[_0x18f51c(0x3f3)],'depth':_0x383d2a['sourceYCount'],'values':_0x29e554};}};},_0x5588ea[_0x3a9ea2(0x21e)]=_0x328177,_0x5588ea[_0x3a9ea2(0x1b2)]=_0x195d5e,_0x5588ea[_0x3a9ea2(0x201)]=_0x246a6d,_0x5588ea[_0x3a9ea2(0x3cd)]=_0x1514cb;}));function _0x1214(){const _0x44818e=['sourceGeneration','startX','step','lockSlice','#fff','proxyModelMatrix','maximumDistance','brickHeight','getBindGroupLayout','draw','hitRadius','WebGPU\x20volume\x20frame\x20capture\x20failed:\x20','exp','WebGPU\x20volume\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积尺寸必须是正整数。','Failed\x20to\x20create\x20WebGPU\x20volume\x20pipelines:\x20','WebGPU\x20volume\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积绑定布局不可用。','depth','actualFrameIntervalMilliseconds','writeBuffer','notify','volumeBindGroup','container','webgpu','stopPropagation','lastFrameTimeMilliseconds','getContext','The\x20current\x20WebGPU\x20volume\x20atlas\x20requires\x20halo:\x201.\x20当前\x20WebGPU\x20体积图集要求\x20halo\x20为\x201。','slicePlateColor','destroyBuffers','center','colorValuesBuffer','createBindGroup','recreateSceneBindGroup','centerEcefScaled','pendingSliceSnapshot','cursor','beginRenderPass','setBindGroup','opacityValuesBuffer','configureSourceResources','WebGPU\x20volume\x20transfer\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积传递函数资源不完整。','getCanvas','resources','activePointer','sceneTrianglePipeline','opacityStops','padding','A\x20destroyed\x20volume\x20scene\x20cannot\x20capture\x20a\x20frame.\x20已销毁的体积场景不能读取帧。','\x20的\x20path\x20包含非有限坐标。','colorMode','minimumPitch','pushErrorScope','colorInputs','clientWidth','WebGPU\x20volume\x20atlas\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积图集布局不可用。','STORAGE','WebGPU\x20profile\x20resources\x20are\x20unavailable.\x20WebGPU\x20剖面资源不可用。','inverseViewProjection','interactionElement','kind','clear','volume\x20scene\x20bind\x20group','axisHysteresis','\x20的\x20values\x20长度与\x20path、heights\x20不匹配。','COPY_SRC','filter','parseInt','brickScheduleCount','aspect','\x20with\x20multiple\x20samples\x20must\x20have\x20a\x20non-zero\x20step.\x20','cachedSlices','onLimitReached','removeEventListener','axisDefinitions','Volume\x20slice\x20','.\x20创建\x20WebGPU\x20体积管线失败。','camera','createRenderPipeline','colorStopCount','amd','isInteger','bufferOffset','sort','generation','one','hitTolerance','memoryLimitBytes','2rBVmUQ','brickWidth','endY','createValues','applyHit','touchBricks','gap','initializing','mouse','axis','subscribe','descriptors','autoFrameCount','level','volume\x20scene\x20mesh\x20','pointermove','read-only-storage','setAttribute','maximumUploadBatchBytes','RENDER_ATTACHMENT','createLockedMarker','verticalScale','pointerId','Returned\x20volume\x20chunk\x20range\x20does\x20not\x20match\x20the\x20request.\x20返回体积分块范围与请求不一致。','transferBindGroup','pointerType','residentBrickCount','geometryBindGroupLayout','viewportHeight','limits','opacityBuffer','createCommandEncoder','releasePointerCapture','volume\x20scene\x20geometry\x20pass','pointerdown','getInteractionKind','vertices','cachedProfiles','transferBindGroupLayout','depthTexture','ceil','updatePreview','uploadBrick','error','cacheOnSuccess','setTransfer','source','WebGPU\x20volume\x20resources\x20were\x20released.\x20WebGPU\x20体积资源已释放。','upload','deltaY','includes','bindControls','activeInteractions','coordinate','sourceYStart','premultiplied','FRAGMENT','WebGPU\x20volume\x20memory\x20limits\x20must\x20be\x20positive.\x20WebGPU\x20体积显存限制必须大于零。','uploadStagingBufferSize','normalizationMeters','volume\x20slice\x20','interactionRenderScale','encodePreparedBrickUpload','copyTextureToBuffer','panSpeed','\x20的\x20heights\x20包含非有限高度。','display','densityScale','viewportWidth','sliceResources','initialize','volume\x20atlas\x20clear\x20shader','\x20position\x20must\x20be\x20normalized\x20to\x20zero\x20through\x20one.\x20体积切面位置必须归一化到零至一。','signal','clearLockedSlices','getSceneParamsBuffer','exports','sliceDepthMode','volumeBindGroupLayout','topology','update','\x20noData\x20must\x20be\x20finite\x20or\x20NaN.\x20','indices','residentByLogicalIndex','setFrameAvailableCallback','sceneBindGroup','budgetLimited','resourceRebuildCount','setTimeIndex','cameraPosition','composite','renderDirty','transparent','xStart','autoQuality','Volume\x20chunk\x20','geometryBindGroup','WebGPU\x20volume\x20atlas\x20is\x20not\x20configured.\x20WebGPU\x20体积图集尚未配置。','destroyResources','setCamera','getCurrentTexture','brickSortCount','balanced','AbortError','lockPreview','slotCountY','rowsPerImage','volume\x20scene\x20depth','none','VERTEX','textContent','\x20must\x20contain\x20position\x20and\x20RGBA\x20values\x20for\x20every\x20vertex.\x20场景网格顶点必须包含位置和\x20RGBA。','volume\x20atlas\x20bind\x20group\x20layout','queue','high-performance','createComputePipeline','halo','\x20的\x20path\x20必须包含至少两个\x20[x,\x20z]\x20点。','removeSlice','volumeAxisValueToNormalized','volume\x20brick\x20atlas\x20','has','coreSampleCount','The\x20maximum\x20locked\x20slice\x20count\x20has\x20been\x20reached.\x20已达到最大锁定切面数量。','rgb(','smooth','prepareBrickUpload','volumeDimFactor','pointercancel','WebGPU\x20geometry\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20几何绑定布局不可用。','.\x20体积\x20timeIndex\x20越界。','abort','slices','volume\x20atlas\x20clear\x20pipeline','setPointerCapture','colorBuffer','atlasViews','resize','requestControllers','syncPreview','createTextNode','bindSliceInteraction','overlayTrianglePipeline','toFixed','encodeScenePass','configureSource','previousAxis','min','\x20包含多个采样点时步长不能为零。','occupied','volume\x20transfer\x20bind\x20group\x20layout','userSelect','listeners','正交相机高度和宽高比必须大于\x200。','atlas','getAtlas','viewProjection','levelCount','pixelRatioCap','revision','maximumPitch','object','capacity','element','shift','beginComputePass','device','some','Volume\x20X\x20axis','encodeVolumePass','WebGPU\x20volume\x20device\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20device\x20尚未初始化。','clipMaximum','updateSlice','heightScaled','less','29772FIgetk','r32float','无法归一化长度为零的三维向量。','minimumPitchDegrees','WRITE','volumeCamera','createPipelineLayout','minimumDistance','captureFrame','\x20轴必须包含两个不同的有限端点。','getEffectiveRenderScale','Geographic\x20volume\x20normalization\x20must\x20be\x20a\x20positive\x20finite\x20distance.\x20地理体积归一化尺度必须是正有限距离。','2130145kbzJcx','load','writeVolumeParams','\x20必须是非负有限数值。','getAtlasTexture','570731drHGZO','atan2','opacityStopCount','requestBrickSchedule','相机裁剪距离必须满足\x200\x20<=\x20near\x20<\x20far。','skippedCells','volume\x20metadata\x20params','createShaderModule','onSubmittedWorkDone','Volume','rgb\x20颜色通道数量不正确:\x20','destroy','dolly','inherit','Volume\x20opacity\x20must\x20be\x20within\x20[0,\x201].\x20体积透明度必须位于\x20[0,\x201]。','quality','logicalBrickCount','sliceState','Volume\x20color\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积颜色色标必须按数值升序排列。','createView','handlePointerUp','coordinateSystem','yAxis','Volume\x20opacity\x20stop\x20values\x20must\x20be\x20finite\x20and\x20strictly\x20increasing.\x20体积透明度节点值必须有限且严格递增。','bindGroup','map','brickDepth','value','STORAGE_BINDING','\x20must\x20be\x20a\x20positive\x20integer.\x20体积分块\x20','previewMarker','verticalScale\x20必须是大于\x200\x20的有限数。','切面轴端点必须是有限数。','WebGPU\x20volume\x20atlas\x20texture\x20is\x20unavailable.\x20WebGPU\x20体积图集纹理不可用。','create','size',',\x20count=','Failed\x20to\x20create\x20a\x20WebGPU\x20canvas\x20context\x20for\x20the\x20volume\x20scene.\x20无法为体积场景创建\x20WebGPU\x20Canvas\x20上下文。','frameInFlight','next','4px','submittedFrameCount','不支持的\x20rgb\x20颜色格式:\x20','volume-axes','message','interactionStepScale','\x20的\x20opacity\x20必须位于\x200\x20到\x201。','relative','valuesEqual','prepared','colorStops','103659vwShQL','frameRequest','layout','nowrap','performance','writeParams','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','.\x20体积时间索引越界。','add','getTransferBindGroupLayout','mapAsync','plateColor','requestAdapter','getUploadStagingBuffer','countZ','切面轴采样数必须是正整数。','unconfigure','frameIndex','showDebugGeometry','timeCount','onInteractionEnd','Volume\x20opacity\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积透明度色标必须按数值升序排列。','volume\x20slice\x20shader','1390YnbEco','uniformUpdateCount','depthMode','WebGPU\x20axis\x20resources\x20are\x20unavailable.\x20WebGPU\x20轴线资源不可用。','requestRender','state','lost','fill','grab','initializationGeneration','baseModelMatrix','RGB\x20颜色通道必须在\x200\x20~\x20255\x20之间','zAxis','set','hasPointerCapture','counts','clientY','recordFrameInterval','volume\x20opacity\x20stop\x20alphas','initialized','metadata','volume\x20geometry\x20bind\x20group\x20layout','sin','WebGPU\x20transfer\x20resources\x20are\x20unavailable.\x20WebGPU\x20传递函数资源不可用。','geographic-wgs84','\x20must\x20be\x20a\x20positive\x20finite\x20value.\x20','configureModel','key','aborted','updateTransferResources','buffer','isSafeInteger','nextId','then','相机宽高比必须大于\x200。','far','font','setVertexBuffer','valueScale','MAP_READ','processBrickUploads','entries','WebGPU\x20volume\x20scene\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积场景尺寸必须是正整数。','volume\x20atlas\x20clear\x20pass','reject','timeIndex','byteOffset','volume\x20brick\x20upload\x20batch\x20flush','M4WVolumeScene','slotCountZ','validation','createLayout','endX','minZ','near','drawMeshes','countY','range','residentBySlotIndex','volumeMetadata','getEffectiveQuality','slotIndex','sqrt','cacheBrickUpload','scheduleBricks','line-list','透视相机视场角必须位于\x200\x20到\x20180\x20度之间。','volumePipeline','sourceYCount','sceneLinePipeline','Volume\x20brick\x20upload\x20became\x20stale.\x20体积砖上传已过期。','options','from','transform','requestDevice','\x20range\x20is\x20invalid:\x20start=','WebGPU\x20transfer\x20bind\x20group\x20layout\x20is\x20unavailable.\x20WebGPU\x20传递函数绑定布局不可用。','rgba(','target','startsWith','background','getFrame','切面深度模式无效\x20/\x20Slice\x20depth\x20mode\x20is\x20invalid','lifecycleState','acquireSlot','uploadBatchCount','clearPreview','createProjectionMatrix','sceneSlicePipeline','touch','cachedBricks','getAttachments','values','setSlices','lastSubmittedFrameTimestamp','projection','pageTableBuffer','overlaySlicePipeline','相机裁剪距离必须满足\x200\x20<\x20near\x20<\x20far。','fragmentMain','setSliceTool','\x20values\x20but\x20received\x20','shape','max','overlayLinePipeline','abs','coreRange','endsWith','rejectPendingBrickUploads','ecefToGeographicVolumeLocal','.\x20体积砖块数据长度不正确。','endInteraction','float32x4','getMappedRange','mode','Volume\x20timeIndex\x20is\x20out\x20of\x20range:\x20','MAP_WRITE','wheel','getAxisResources','WebGPU\x20scene\x20params\x20buffer\x20is\x20unavailable.\x20WebGPU\x20场景参数\x20Buffer\x20不可用。','0\x202px','getVolumeParamsBuffer','style','markerOverlay','pendingBrickUploads','one-minus-src-alpha','createBindGroupLayout','keys','splice','div','Returned\x20volume\x20chunk\x20dimensions\x20do\x20not\x20match\x20its\x20range.\x20返回体积分块尺寸与范围不一致。','frameAvailableCallback','handleFrameAvailable','inverseModelMatrix','profiles','width','Volume\x20Y\x20axis','profileResources','clientHeight','clearPageEntry','路线剖面\x20','position','hypot','renderScale','configure','setSource','catch','stepLength','axes','toolMode','getPageTableBuffer','levelStart','maximum','borderRadius','cachedAxes','modelMatrix','distance','idle','overlayContainer','submit','logicalIndex','alignItems','end','find','interactionController','不支持的\x20hex\x20颜色格式:\x20','visible','setState','maxZ','.\x20最大锁定切面数量为\x20','geographicTransform','getSliceResources','volume\x20slice\x20bind\x20group\x20layout','xAxis','getPreferredCanvasFormat','COPY_DST','preventDefault','rotateSpeed','pointerEvents','cameraState','managed','finish','loadBrick','0.72','\x20端点必须是有限数值。','Volume\x20valueScale\x20must\x20be\x20finite.\x20体积\x20valueScale\x20必须是有限数值。','568626sVDgnV','append','normalizedToVolumeAxisValue','BYTES_PER_ELEMENT','resolve','countX','finally','tan','sceneBindGroupLayout','depthView','eventDisposers','toStringTag','snapshot','enqueueBrickUpload','formatPosition','fovYDegrees','createSliceState','路线剖面\x20id\x20不能为空。','lockedSlices','slice','createGpuResources','updateAutoQuality','UNIFORM','orthographic','translate(-50%,\x20-100%)','createPipelines','previousContainerPosition','loadedKeys','Longitude\x20/\x20经度','getGeometryBindGroupLayout','hideAllMarkers','createVolumeScene','个色标范围的\x20min\x20必须小于\x20max','positions','scene','viewProjectionMatrix','attachments','color','volumeParamsBuffer','\x20必须是正整数。','onSlicesChange','dispatchWorkgroups','gpu','height','locked','findIndex','resetBrickRequests','volume\x20raymarch\x20pass','lastUsedFrame','positionMarker','Volume\x20brick\x20','WebGPU\x20volume\x20context\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20context\x20尚未初始化。','zoomSpeed','memoryHardLimitBytes','sceneParamsBuffer','minY','createElement','powerPreference','start','absolute','heights','minimum','push','opacity','updateLockedSlice','\x20无效。','asin','createBuffer','xCount','Volume\x20chunk\x20requires\x20','latitudeRadians','whiteSpace','matrices','floor','depth32float','WebGPU\x20is\x20required\x20for\x20the\x20volume\x20scene\x20but\x20is\x20unavailable.\x20体积场景需要\x20WebGPU,但当前环境不可用。','colorStops\x20不能为空','getSliceBindGroupLayout','bindSliceState','renderer','getDevice','firstChild','.\x20体积逻辑砖块索引无效。','READ','currentPreview','encodeOverlayPass','delete','beginInteraction','slotCountX','WebGPU\x20volume\x20bricks\x20require\x20halo\x201.\x20WebGPU\x20体积砖块要求\x20halo\x20为\x201。','getVolumeBindGroupLayout','transferResources','getSceneBindGroupLayout','pan','volume\x20scene\x20mesh\x20shader','mixed','count','setProjectionType','match','flushSliceState','\x20count','flatMap','addEventListener','handlePointerMove','volume\x20scene\x20params','noData','toUpperCase','navigationMode','button','clipMinimum','bytesPerRow','beginLockedSliceDrag','maxLockedSlices','flushBrickSchedule','\x20is\x20invalid:\x20','skippedSamples','render','syncLockedMarkers','onInteractionStart','volume\x20frame\x20capture','cos','Module','unsubscribe','Volume\x20chunk\x20range\x20exceeds\x20source\x20dimensions.\x20体积分块范围超出源数据尺寸。','\x20必须是正有限数值。','skippedSampleCount','uploadPump','copyBufferToTexture','Maximum\x20locked\x20slice\x20count\x20is\x20','auto','store','isInteracting','getProfileResources','path','border','clipBox','handlePointerDown','perspective','cartesian','destroyed','scheduleUploadPump','\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','readRange','unmap','autoFrameIntervalTotal','WebGPU\x20scene\x20attachments\x20are\x20unavailable.\x20WebGPU\x20场景附件不可用。','2859760RMtGzm','memoryTargetBytes','atlasLayout','contextmenu','uploadGeneration','setPipeline','.\x20体积分块\x20','releaseGpuResources','brickScheduleDirty','centerEcef','triangle-list','desiredKeys','canvas','WebGPU\x20volume\x20canvas\x20is\x20not\x20initialized.\x20WebGPU\x20体积\x20Canvas\x20尚未初始化。','sceneDepthView','volumeDimFactor\x20必须位于\x200\x20到\x201。','sliceBindGroupLayout','\x20noData\x20必须是有限数值或\x20NaN。','volume\x20brick\x20reusable\x20upload\x20staging','statistics','uploadStagingBuffer','main','byteLength','get','pointer','setAspect','popErrorScope','wgs84','trim','volume\x20brick\x20page\x20table','chunk','Volume\x20requires\x20','rebuildProfiles','function','name','clearAtlasTexture','uniform','slotCount','context','round','remove','isFinite','drawSlices','矩阵不可逆。','volume-slice-','pointerup','aria-label','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','setAxes','unfilterable-float','Volume\x20opacity\x20stops\x20must\x20be\x20between\x20zero\x20and\x20one.\x20体积透明度色标必须位于零到一之间。','renderMode','Alpha\x20颜色通道必须在0\x20~\x201之间','VolumeCamera','always-visible','clientX','isNaN','.\x20WebGPU\x20体积帧读取失败。','WebGPU\x20volume\x20device\x20was\x20lost:\x20','markers','format','findAxisHit','uploadedBrickCount','atlasCapacity','readChunk','hitTolerancePixels','4oEXymA','verticalScale\x20must\x20be\x20a\x20positive\x20finite\x20value.\x20verticalScale\x20必须是大于\x200\x20的有限数。','adapter','onSliceError','atlasTextures','external','正交相机高度必须大于\x200。','axisResources','left','setToolMode','normalizedPosition','WebGPU\x20volume\x20page\x20table\x20is\x20unavailable.\x20WebGPU\x20体积页表不可用。','\x20must\x20be\x20a\x20non-negative\x20finite\x20value.\x20','lastTimingFrameTimestamp','pointerleave','vertexMain','orbit','pendingKeys','forEach','Scene\x20mesh\x20','sliceInteraction','length','replace','2704098kTHeYz','删除切面','handleWindowPointerMove','sliceId','setProfiles','subarray','pageTableValues','getFormat','now','writePageEntry','semiMajorAxisScaled','type','preview','Volume\x20brick\x20halo\x20must\x20be\x20a\x20positive\x20integer.\x20体积分块\x20halo\x20必须是正整数。','WebGPU\x20volume\x20renderer\x20is\x20not\x20ready\x20for\x20frame\x20capture.\x20WebGPU\x20体积渲染器尚不能读取帧。','startY','getStepLength','\x20requires\x20','ready','bgra8unorm','createResource'];_0x1214=function(){return _0x44818e;};return _0x1214();}