m4-w-fast 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/intersect.worker.js +2 -2
- package/dist/isoBands.worker.js +1 -1
- package/dist/m4-w-fast.umd.js +1 -1
- package/dist/raster-leaflet/index.cjs +2 -0
- package/dist/raster-leaflet/index.d.ts +5 -0
- package/dist/raster-leaflet/index.js +1 -0
- package/dist/raster-leaflet/index.mjs +2 -0
- package/dist/raster-leaflet/m4-w-raster-leaflet.umd.js +2 -0
- package/dist/raster-mars3d/cesiumRasterPlaneRenderer.d.ts +28 -0
- package/dist/raster-mars3d/cesiumRasterPlaneRenderer.js +1 -0
- package/dist/raster-mars3d/cesiumRasterTextureAdapter.d.ts +14 -0
- package/dist/raster-mars3d/cesiumRasterTextureAdapter.js +1 -0
- package/dist/raster-mars3d/index.cjs +2 -0
- package/dist/raster-mars3d/index.d.ts +6 -0
- package/dist/raster-mars3d/index.js +1 -0
- package/dist/raster-mars3d/index.mjs +2 -0
- package/dist/raster-mars3d/m4-w-raster-mars3d.umd.js +2 -0
- package/dist/raster-mars3d/mars3dRasterImageryProvider.d.ts +30 -0
- package/dist/raster-mars3d/mars3dRasterImageryProvider.js +1 -0
- package/dist/raster-mars3d/mars3dRasterPlaneLayer.d.ts +3 -0
- package/dist/raster-mars3d/mars3dRasterPlaneLayer.js +1 -0
- package/dist/raster-mars3d/rasterPlaneCesiumTypes.d.ts +95 -0
- package/dist/raster-mars3d/rasterPlaneCesiumTypes.js +1 -0
- package/dist/raster-mars3d/rasterPlaneGeometry.d.ts +5 -0
- package/dist/raster-mars3d/rasterPlaneGeometry.js +1 -0
- package/dist/raster-mars3d/rasterPlaneGridChunks.d.ts +4 -0
- package/dist/raster-mars3d/rasterPlaneGridChunks.js +1 -0
- package/dist/raster-mars3d/rasterPlaneMaterial.d.ts +21 -0
- package/dist/raster-mars3d/rasterPlaneMaterial.js +1 -0
- package/dist/raster-mars3d/rasterPlaneTypes.d.ts +33 -0
- package/dist/raster-mars3d/rasterPlaneTypes.js +1 -0
- package/dist/raster-mars3d/types.d.ts +30 -0
- package/dist/raster-mars3d/types.js +1 -0
- package/dist/raster-overlay/color.d.ts +1 -1
- package/dist/raster-overlay/color.js +1 -1
- package/dist/raster-overlay/core.d.ts +1 -1
- package/dist/raster-overlay/core.js +1 -1
- package/dist/raster-overlay/index.cjs +2 -2
- package/dist/raster-overlay/index.d.ts +5 -2
- package/dist/raster-overlay/index.js +1 -1
- package/dist/raster-overlay/index.mjs +2 -2
- package/dist/raster-overlay/leaflet-renderers/createRenderer.d.ts +3 -7
- package/dist/raster-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/raster-overlay/leaflet-renderers/renderer.d.ts +1 -59
- package/dist/raster-overlay/leafletLayer.d.ts +4 -0
- package/dist/raster-overlay/leafletLayer.js +1 -1
- package/dist/raster-overlay/leafletTypes.d.ts +21 -0
- package/dist/raster-overlay/leafletTypes.js +1 -0
- package/dist/raster-overlay/m4-w-raster-overlay.umd.js +2 -2
- package/dist/raster-overlay/query.d.ts +1 -1
- package/dist/raster-overlay/query.js +1 -1
- package/dist/raster-overlay/rasterTypes.d.ts +73 -0
- package/dist/raster-overlay/rasterTypes.js +1 -0
- package/dist/raster-overlay/rendering/createRasterRenderer.d.ts +4 -0
- package/dist/raster-overlay/rendering/createRasterRenderer.js +1 -0
- package/dist/raster-overlay/rendering/index.d.ts +5 -0
- package/dist/raster-overlay/rendering/index.js +1 -0
- package/dist/raster-overlay/rendering/rasterRenderState.d.ts +27 -0
- package/dist/raster-overlay/rendering/rasterRenderState.js +1 -0
- package/dist/raster-overlay/rendering/renderer.d.ts +15 -0
- package/dist/raster-overlay/rendering/renderer.js +1 -0
- package/dist/raster-overlay/rendering/webgl2RasterRenderer.d.ts +34 -0
- package/dist/raster-overlay/rendering/webgl2RasterRenderer.js +1 -0
- package/dist/raster-overlay/rendering/webgpuRasterRenderer.d.ts +42 -0
- package/dist/raster-overlay/rendering/webgpuRasterRenderer.js +1 -0
- package/dist/raster-overlay/types.d.ts +2 -235
- package/dist/raster-rendering/index.cjs +2 -0
- package/dist/raster-rendering/index.d.ts +8 -0
- package/dist/raster-rendering/index.js +1 -0
- package/dist/raster-rendering/index.mjs +2 -0
- package/dist/raster-rendering/m4-w-raster-rendering.umd.js +2 -0
- package/dist/raster-rendering/types.d.ts +13 -0
- package/dist/raster-rendering/types.js +1 -0
- package/dist/raster-rendering/webgpuRasterTileRenderer.d.ts +29 -0
- package/dist/raster-rendering/webgpuRasterTileRenderer.js +1 -0
- package/dist/readFile.d.ts +2 -2
- package/dist/readFile.js +1 -1
- package/dist/rendering/index.d.ts +6 -0
- package/dist/rendering/index.js +1 -0
- package/dist/rendering/renderer.d.ts +35 -0
- package/dist/rendering/renderer.js +1 -0
- package/dist/rendering/types.d.ts +20 -0
- package/dist/rendering/types.js +1 -0
- package/dist/rendering/webgl2/baseWebgl2Renderer.d.ts +37 -0
- package/dist/rendering/webgl2/baseWebgl2Renderer.js +1 -0
- package/dist/rendering/webgl2/index.d.ts +4 -0
- package/dist/rendering/webgl2/index.js +1 -0
- package/dist/rendering/webgl2/types.d.ts +24 -0
- package/dist/rendering/webgl2/types.js +1 -0
- package/dist/rendering/webgl2/webgl2CoverageResources.d.ts +29 -0
- package/dist/rendering/webgl2/webgl2CoverageResources.js +1 -0
- package/dist/rendering/webgl2/webgl2VisualizationResources.d.ts +33 -0
- package/dist/rendering/webgl2/webgl2VisualizationResources.js +1 -0
- package/dist/rendering/webgpu/baseWebgpuRenderer.d.ts +181 -0
- package/dist/rendering/webgpu/baseWebgpuRenderer.js +1 -0
- package/dist/rendering/webgpu/index.d.ts +3 -0
- package/dist/rendering/webgpu/index.js +1 -0
- package/dist/rendering/webgpu/types.d.ts +33 -0
- package/dist/rendering/webgpu/types.js +1 -0
- package/dist/rendering/webgpu/visualizationParams.d.ts +25 -0
- package/dist/rendering/webgpu/visualizationParams.js +1 -0
- package/dist/rendering/webgpu/visualizationResources.d.ts +50 -0
- package/dist/rendering/webgpu/visualizationResources.js +1 -0
- package/dist/rendering/webgpu/webgpuCoverageResources.d.ts +36 -0
- package/dist/rendering/webgpu/webgpuCoverageResources.js +1 -0
- package/dist/road-overlay/coordinateTransform.js +1 -1
- package/dist/road-overlay/index.cjs +2 -2
- package/dist/road-overlay/index.d.ts +3 -1
- package/dist/road-overlay/index.js +1 -1
- package/dist/road-overlay/index.mjs +2 -2
- package/dist/road-overlay/leaflet-renderers/createRenderer.d.ts +3 -7
- package/dist/road-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/road-overlay/leaflet-renderers/renderer.d.ts +1 -82
- package/dist/road-overlay/leafletLayer.d.ts +2 -0
- package/dist/road-overlay/leafletLayer.js +1 -1
- package/dist/road-overlay/m4-w-road-overlay.umd.js +2 -2
- package/dist/road-overlay/options.d.ts +5 -1
- package/dist/road-overlay/options.js +1 -1
- package/dist/road-overlay/rendering/index.d.ts +4 -0
- package/dist/road-overlay/rendering/index.js +1 -0
- package/dist/road-overlay/rendering/renderer.d.ts +54 -0
- package/dist/road-overlay/rendering/renderer.js +1 -0
- package/dist/road-overlay/rendering/roadRenderState.d.ts +137 -0
- package/dist/road-overlay/rendering/roadRenderState.js +1 -0
- package/dist/road-overlay/rendering/webgl2RoadRenderer.d.ts +38 -0
- package/dist/road-overlay/rendering/webgl2RoadRenderer.js +1 -0
- package/dist/road-overlay/rendering/webgpuRoadRenderer.d.ts +134 -0
- package/dist/road-overlay/rendering/webgpuRoadRenderer.js +1 -0
- package/dist/road-overlay/roadData.d.ts +3 -2
- package/dist/road-overlay/roadData.js +1 -1
- package/dist/road-overlay/roadGeometry.d.ts +2 -2
- package/dist/road-overlay/roadGeometry.js +1 -1
- package/dist/road-overlay/roadMesh.d.ts +7 -5
- package/dist/road-overlay/roadMesh.js +1 -1
- package/dist/road-overlay/types.d.ts +10 -2
- package/dist/shared/coordinate-shader/webgl2/index.d.ts +3 -0
- package/dist/shared/coordinate-shader/webgl2/index.js +1 -0
- package/dist/shared/coordinate-shader/webgpu/index.d.ts +5 -0
- package/dist/shared/coordinate-shader/webgpu/index.js +1 -0
- package/dist/shared/coverage/index.d.ts +1 -0
- package/dist/shared/coverage/index.js +1 -0
- package/dist/shared/coverage/types.d.ts +8 -0
- package/dist/shared/coverage/types.js +1 -0
- package/dist/shared/map/index.d.ts +2 -0
- package/dist/shared/map/index.js +1 -0
- package/dist/shared/map/leaflet.d.ts +7 -0
- package/dist/shared/map/leaflet.js +1 -0
- package/dist/shared/map/types.d.ts +19 -0
- package/dist/shared/map/types.js +1 -0
- package/dist/shared/polygon/contains.d.ts +3 -0
- package/dist/shared/polygon/contains.js +1 -0
- package/dist/shared/polygon/index.d.ts +3 -0
- package/dist/shared/polygon/index.js +1 -0
- package/dist/shared/polygon/polygonMesh.d.ts +3 -0
- package/dist/shared/polygon/polygonMesh.js +1 -0
- package/dist/shared/polygon/types.d.ts +11 -0
- package/dist/shared/polygon/types.js +1 -0
- package/dist/shared/shader/assemble.d.ts +5 -0
- package/dist/shared/shader/assemble.js +1 -0
- package/dist/shared/visualization/index.d.ts +2 -0
- package/dist/shared/visualization/index.js +1 -0
- package/dist/shared/visualization/shader/webgl2/index.d.ts +1 -0
- package/dist/shared/visualization/shader/webgl2/index.js +1 -0
- package/dist/shared/visualization/shader/webgpu/index.d.ts +10 -0
- package/dist/shared/visualization/shader/webgpu/index.js +1 -0
- package/dist/shared/visualization/types.d.ts +68 -0
- package/dist/shared/visualization/types.js +1 -0
- package/dist/shared/visualization/utils.d.ts +46 -0
- package/dist/shared/visualization/utils.js +1 -0
- package/dist/volume-mars3d/createMars3dVolumeScene.d.ts +3 -0
- package/dist/volume-mars3d/createMars3dVolumeScene.js +1 -0
- package/dist/volume-mars3d/index.cjs +1 -0
- package/dist/volume-mars3d/index.d.ts +2 -0
- package/dist/volume-mars3d/index.js +1 -0
- package/dist/volume-mars3d/index.mjs +1 -0
- package/dist/volume-mars3d/m4-w-volume-mars3d.umd.js +1 -0
- package/dist/volume-mars3d/mars3dCanvasCompensation.d.ts +22 -0
- package/dist/volume-mars3d/mars3dCanvasCompensation.js +1 -0
- package/dist/volume-mars3d/mars3dRaymarchShader.d.ts +1 -0
- package/dist/volume-mars3d/mars3dRaymarchShader.js +1 -0
- package/dist/volume-mars3d/mars3dVolumeLayer.d.ts +2 -0
- package/dist/volume-mars3d/mars3dVolumeLayer.js +1 -0
- package/dist/volume-mars3d/mars3dVolumeRenderer.d.ts +56 -0
- package/dist/volume-mars3d/mars3dVolumeRenderer.js +1 -0
- package/dist/volume-mars3d/volumeMars3dTypes.d.ts +85 -0
- package/dist/volume-mars3d/volumeMars3dTypes.js +1 -0
- package/dist/volume-mars3d-native/index.cjs +1 -0
- package/dist/volume-mars3d-native/index.d.ts +4 -0
- package/dist/volume-mars3d-native/index.js +1 -0
- package/dist/volume-mars3d-native/index.mjs +1 -0
- package/dist/volume-mars3d-native/liveUpdateScheduler.d.ts +10 -0
- package/dist/volume-mars3d-native/liveUpdateScheduler.js +1 -0
- package/dist/volume-mars3d-native/m4-w-volume-mars3d-native.umd.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceLayer.d.ts +2 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceLayer.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.d.ts +56 -0
- package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.d.ts +2 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.js +1 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.d.ts +34 -0
- package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.js +1 -0
- package/dist/volume-mars3d-native/nativeAxisSliceRenderer.d.ts +40 -0
- package/dist/volume-mars3d-native/nativeAxisSliceRenderer.js +1 -0
- package/dist/volume-mars3d-native/nativeSliceAtlas.d.ts +50 -0
- package/dist/volume-mars3d-native/nativeSliceAtlas.js +1 -0
- package/dist/volume-mars3d-native/nativeSliceRuntimeTypes.d.ts +17 -0
- package/dist/volume-mars3d-native/nativeSliceRuntimeTypes.js +1 -0
- package/dist/volume-mars3d-native/nativeTypes.d.ts +174 -0
- package/dist/volume-mars3d-native/nativeTypes.js +1 -0
- package/dist/volume-mars3d-native/nativeVoxelProvider.d.ts +6 -0
- package/dist/volume-mars3d-native/nativeVoxelProvider.js +1 -0
- package/dist/volume-mars3d-native/nativeVoxelShader.d.ts +2 -0
- package/dist/volume-mars3d-native/nativeVoxelShader.js +1 -0
- package/dist/volume-mars3d-native/voxelData.d.ts +9 -0
- package/dist/volume-mars3d-native/voxelData.js +1 -0
- package/dist/volume-scene/brickLayout.d.ts +75 -0
- package/dist/volume-scene/brickLayout.js +1 -0
- package/dist/volume-scene/brickResidency.d.ts +54 -0
- package/dist/volume-scene/brickResidency.js +1 -0
- package/dist/volume-scene/camera.d.ts +22 -0
- package/dist/volume-scene/camera.js +1 -0
- package/dist/volume-scene/cameraTypes.d.ts +37 -0
- package/dist/volume-scene/cameraTypes.js +1 -0
- package/dist/volume-scene/createVolumeScene.d.ts +4 -0
- package/dist/volume-scene/createVolumeScene.js +1 -0
- package/dist/volume-scene/geographicTypes.d.ts +16 -0
- package/dist/volume-scene/geographicTypes.js +1 -0
- package/dist/volume-scene/geographicVolume.d.ts +4 -0
- package/dist/volume-scene/geographicVolume.js +1 -0
- package/dist/volume-scene/inMemoryVolumeSource.d.ts +3 -0
- package/dist/volume-scene/inMemoryVolumeSource.js +1 -0
- package/dist/volume-scene/index.cjs +1 -0
- package/dist/volume-scene/index.d.ts +12 -0
- package/dist/volume-scene/index.js +1 -0
- package/dist/volume-scene/index.mjs +1 -0
- package/dist/volume-scene/m4-w-volume-scene.umd.js +1 -0
- package/dist/volume-scene/matrix.d.ts +11 -0
- package/dist/volume-scene/matrix.js +1 -0
- package/dist/volume-scene/profileTypes.d.ts +20 -0
- package/dist/volume-scene/profileTypes.js +1 -0
- package/dist/volume-scene/rendering/webgpu/index.d.ts +2 -0
- package/dist/volume-scene/rendering/webgpu/index.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.d.ts +59 -0
- package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.d.ts +11 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.d.ts +12 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.d.ts +21 -0
- package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.d.ts +16 -0
- package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.d.ts +126 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.js +1 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeTypes.d.ts +108 -0
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeTypes.js +1 -0
- package/dist/volume-scene/routeProfileMesh.d.ts +7 -0
- package/dist/volume-scene/routeProfileMesh.js +1 -0
- package/dist/volume-scene/sceneTypes.d.ts +136 -0
- package/dist/volume-scene/sceneTypes.js +1 -0
- package/dist/volume-scene/sliceInteractionController.d.ts +27 -0
- package/dist/volume-scene/sliceInteractionController.js +1 -0
- package/dist/volume-scene/sliceMarkerOverlay.d.ts +28 -0
- package/dist/volume-scene/sliceMarkerOverlay.js +1 -0
- package/dist/volume-scene/sliceState.d.ts +34 -0
- package/dist/volume-scene/sliceState.js +1 -0
- package/dist/volume-scene/sliceTypes.d.ts +52 -0
- package/dist/volume-scene/sliceTypes.js +1 -0
- package/dist/volume-scene/sourceTypes.d.ts +47 -0
- package/dist/volume-scene/sourceTypes.js +1 -0
- package/dist/volume-scene/transferTypes.d.ts +12 -0
- package/dist/volume-scene/transferTypes.js +1 -0
- package/dist/volume-scene/volumeBrickData.d.ts +3 -0
- package/dist/volume-scene/volumeBrickData.js +1 -0
- package/dist/volume-scene/volumeScene.d.ts +103 -0
- package/dist/volume-scene/volumeScene.js +1 -0
- package/dist/volume-scene/volumeTransfer.d.ts +8 -0
- package/dist/volume-scene/volumeTransfer.js +1 -0
- package/dist/volume-scene/volumeValidation.d.ts +27 -0
- package/dist/volume-scene/volumeValidation.js +1 -0
- package/package.json +6 -3
- package/dist/raster-overlay/leaflet-renderers/cpuRenderer.d.ts +0 -0
- package/dist/raster-overlay/leaflet-renderers/cpuRenderer.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/rasterRendererUtils.d.ts +0 -52
- package/dist/raster-overlay/leaflet-renderers/rasterRendererUtils.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.d.ts +0 -111
- package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/webglRenderer.d.ts +0 -0
- package/dist/raster-overlay/leaflet-renderers/webglRenderer.js +0 -1
- package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -114
- package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.js +0 -1
- package/dist/road-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -55
- package/dist/road-overlay/leaflet-renderers/webgpuRenderer.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RasterGrid, RasterQueryPoint, RasterQueryResult, RasterQueryOptions } from './
|
|
1
|
+
import type { RasterGrid, RasterQueryPoint, RasterQueryResult, RasterQueryOptions } from './rasterTypes';
|
|
2
2
|
export declare const formatRasterQueryResult: (result: RasterQueryResult) => string;
|
|
3
3
|
/**
|
|
4
4
|
* Query a raster value with the sampling rules used by the renderers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4dc844,_0x252e28){const _0x16b17d=_0x7d2e,_0x39a52a=_0x4dc844();while(!![]){try{const _0xbb5cca=parseInt(_0x16b17d(0x1e8))/0x1+parseInt(_0x16b17d(0x1f2))/0x2*(parseInt(_0x16b17d(0x1fa))/0x3)+parseInt(_0x16b17d(0x206))/0x4+parseInt(_0x16b17d(0x1fb))/0x5+parseInt(_0x16b17d(0x1f4))/0x6*(parseInt(_0x16b17d(0x1ee))/0x7)+-parseInt(_0x16b17d(0x1f6))/0x8+-parseInt(_0x16b17d(0x1ff))/0x9;if(_0xbb5cca===_0x252e28)break;else _0x39a52a['push'](_0x39a52a['shift']());}catch(_0x59b876){_0x39a52a['push'](_0x39a52a['shift']());}}}(_0xf719,0x82f61));export const formatRasterQueryResult=_0x40d02c=>{const _0x4df3db=_0x7d2e;if(!_0x40d02c[_0x4df3db(0x209)])return'X:\x20'+_0x40d02c['x']+_0x4df3db(0x1ed)+_0x40d02c['y']+_0x4df3db(0x208)+_0x40d02c[_0x4df3db(0x201)];return'X:\x20'+_0x40d02c['x']+_0x4df3db(0x1ed)+_0x40d02c['y']+'\x0aValue:\x20'+_0x40d02c[_0x4df3db(0x201)];};function _0xf719(){const _0x5158c7=['\x0aY:\x20','7UaXxfs','max','out-of-range','round','113228bcKiMr','NaN','1956594HXbeCN','height','4427368RBuajx','gridX','valueScale','width','15RaPUvs','5264600rDToXI','sampleMode','isNaN','visible','12580992BCxVzB','maxLng','value','cell','rawValue','noData','min','154720tJPPqe','values','\x0aValue:\x20','valid','colorRange','minLng','786957JKpxmT','out-of-bounds','no-data','reason','floor'];_0xf719=function(){return _0x5158c7;};return _0xf719();}function _0x7d2e(_0x3b9446,_0x3af8a5){const _0xf719f4=_0xf719();return _0x7d2e=function(_0x7d2e17,_0xca6070){_0x7d2e17=_0x7d2e17-0x1e8;let _0x3b06c8=_0xf719f4[_0x7d2e17];return _0x3b06c8;},_0x7d2e(_0x3b9446,_0x3af8a5);}export const queryRasterValue=(_0x34e5b7,_0x52d41c,_0x11a7e6={})=>{const _0x117eaf=_0x7d2e;if(isOutOfBounds(_0x34e5b7,_0x52d41c))return createQueryResult(_0x34e5b7,_0x52d41c,{'gridX':-0x1,'gridY':-0x1,'rawValue':Number[_0x117eaf(0x1f3)],'reason':_0x117eaf(0x1e9),'valid':![],'visible':![]});const _0xc083b4=toGridCoordinate(_0x34e5b7,_0x52d41c);if((_0x11a7e6[_0x117eaf(0x1fc)]??'interpolate')===_0x117eaf(0x202))return queryCellValue(_0x34e5b7,_0x52d41c,_0xc083b4,_0x11a7e6[_0x117eaf(0x20a)]);return queryInterpolatedValue(_0x34e5b7,_0x52d41c,_0xc083b4,_0x11a7e6['colorRange']);};const queryCellValue=(_0x3aa5e1,_0x28cc95,_0x307167,_0x3c8697)=>{const _0x281855=_0x7d2e,_0x333224=clampIndex(Math[_0x281855(0x1f1)](_0x307167['x']),_0x3aa5e1['width']),_0x7a12ce=clampIndex(Math['round'](_0x307167['y']),_0x3aa5e1[_0x281855(0x1f5)]),_0x25939f=getRawGridValue(_0x3aa5e1,_0x333224,_0x7a12ce);return createValueResult(_0x3aa5e1,_0x28cc95,_0x333224,_0x7a12ce,_0x25939f,_0x3c8697);},queryInterpolatedValue=(_0x303cd9,_0x528131,_0x94eecb,_0x2c452f)=>{const _0x240407=_0x7d2e,_0x18a5c0=Math['floor'](_0x94eecb['x']),_0x38d1d6=Math[_0x240407(0x1ec)](_0x94eecb['y']),_0x499b6b=Math[_0x240407(0x205)](_0x18a5c0+0x1,_0x303cd9[_0x240407(0x1f9)]-0x1),_0x1b7f29=Math[_0x240407(0x205)](_0x38d1d6+0x1,_0x303cd9['height']-0x1),_0x573a92=_0x94eecb['x']-_0x18a5c0,_0x4ddebe=_0x94eecb['y']-_0x38d1d6,_0xd9801e=getRawGridValue(_0x303cd9,_0x18a5c0,_0x38d1d6),_0x2a8fc9=getRawGridValue(_0x303cd9,_0x499b6b,_0x38d1d6),_0x4e7b87=getRawGridValue(_0x303cd9,_0x18a5c0,_0x1b7f29),_0x330566=getRawGridValue(_0x303cd9,_0x499b6b,_0x1b7f29),_0x2fcc89=clampIndex(Math[_0x240407(0x1f1)](_0x94eecb['x']),_0x303cd9[_0x240407(0x1f9)]),_0xcdc657=clampIndex(Math['round'](_0x94eecb['y']),_0x303cd9[_0x240407(0x1f5)]);if(isInvalidRawValue(_0x303cd9,_0xd9801e)||isInvalidRawValue(_0x303cd9,_0x2a8fc9)||isInvalidRawValue(_0x303cd9,_0x4e7b87)||isInvalidRawValue(_0x303cd9,_0x330566))return createQueryResult(_0x303cd9,_0x528131,{'gridX':_0x2fcc89,'gridY':_0xcdc657,'rawValue':_0x303cd9['noData']??Number[_0x240407(0x1f3)],'reason':_0x240407(0x1ea),'valid':![],'visible':![]});const _0x51d66a=mix(_0xd9801e,_0x2a8fc9,_0x573a92),_0x25c447=mix(_0x4e7b87,_0x330566,_0x573a92),_0x326241=mix(_0x51d66a,_0x25c447,_0x4ddebe);return createValueResult(_0x303cd9,_0x528131,_0x2fcc89,_0xcdc657,_0x326241,_0x2c452f);},createValueResult=(_0x4a7443,_0x592771,_0xf1548e,_0xd98b32,_0x491049,_0x2a78a3)=>{const _0x1f1bdb=_0x7d2e;if(isInvalidRawValue(_0x4a7443,_0x491049))return createQueryResult(_0x4a7443,_0x592771,{'gridX':_0xf1548e,'gridY':_0xd98b32,'rawValue':_0x491049,'reason':_0x1f1bdb(0x1ea),'valid':![],'visible':![]});const _0x5d17fc=_0x491049*_0x4a7443['valueScale'],_0x68a935=isVisibleValue(_0x5d17fc,_0x2a78a3);return createQueryResult(_0x4a7443,_0x592771,{'gridX':_0xf1548e,'gridY':_0xd98b32,'rawValue':_0x491049,'value':_0x5d17fc,'reason':_0x68a935?'ok':_0x1f1bdb(0x1f0),'valid':!![],'visible':_0x68a935});},createQueryResult=(_0x4ea4e2,_0xee4872,_0x43145d)=>{const _0x47e57f=_0x7d2e;return{'x':_0xee4872['x'],'y':_0xee4872['y'],'rawValue':_0x43145d[_0x47e57f(0x203)],'value':_0x43145d['value']??_0x43145d[_0x47e57f(0x203)],'valueScale':_0x4ea4e2[_0x47e57f(0x1f8)],'gridX':_0x43145d[_0x47e57f(0x1f7)],'gridY':_0x43145d['gridY'],'valid':_0x43145d[_0x47e57f(0x209)],'visible':_0x43145d[_0x47e57f(0x1fe)],'reason':_0x43145d[_0x47e57f(0x1eb)]};},isOutOfBounds=(_0x3bba4b,_0xcf1616)=>{const _0x555714=_0x7d2e;return _0xcf1616['x']<_0x3bba4b[_0x555714(0x20b)]||_0xcf1616['x']>_0x3bba4b[_0x555714(0x200)]||_0xcf1616['y']<_0x3bba4b['minLat']||_0xcf1616['y']>_0x3bba4b['maxLat'];},toGridCoordinate=(_0xd5a383,_0x27902a)=>{const _0x4d8824=_0x7d2e;return{'x':(_0x27902a['x']-_0xd5a383[_0x4d8824(0x20b)])/(_0xd5a383[_0x4d8824(0x200)]-_0xd5a383[_0x4d8824(0x20b)])*(_0xd5a383['width']-0x1),'y':(_0xd5a383['maxLat']-_0x27902a['y'])/(_0xd5a383['maxLat']-_0xd5a383['minLat'])*(_0xd5a383[_0x4d8824(0x1f5)]-0x1)};},getRawGridValue=(_0x354555,_0x33a782,_0x4223c1)=>{const _0x20ccf8=_0x7d2e;return _0x354555[_0x20ccf8(0x207)][_0x4223c1*_0x354555['width']+_0x33a782];},isInvalidRawValue=(_0x2f3cab,_0x22a1fb)=>{const _0x3d8723=_0x7d2e;if(Number[_0x3d8723(0x1fd)](_0x22a1fb))return!![];if(_0x2f3cab['noData']===undefined)return![];if(Number[_0x3d8723(0x1fd)](_0x2f3cab['noData']))return Number[_0x3d8723(0x1fd)](_0x22a1fb);return _0x22a1fb===_0x2f3cab[_0x3d8723(0x204)];},isVisibleValue=(_0x882c84,_0x3c8200)=>{if(!_0x3c8200)return!![];return _0x882c84>=_0x3c8200['minValue']&&_0x882c84<=_0x3c8200['maxValue'];},clampIndex=(_0x3f6bf8,_0x55ec9d)=>{const _0x38d88d=_0x7d2e;return Math[_0x38d88d(0x205)](Math[_0x38d88d(0x1ef)](_0x3f6bf8,0x0),_0x55ec9d-0x1);},mix=(_0x331444,_0x161dca,_0x30f8dd)=>{return _0x331444*(0x1-_0x30f8dd)+_0x161dca*_0x30f8dd;};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ClipMode, CoverageOptions } from '../shared/coverage';
|
|
2
|
+
import type { ColorMode, ColorRange, ColorStop, ColorStopInput, GridData, SampleMode } from '../shared/visualization';
|
|
3
|
+
export type RasterRendererType = 'webgl2' | 'webgpu';
|
|
4
|
+
export type RasterColorMode = ColorMode;
|
|
5
|
+
export type RasterSampleMode = SampleMode;
|
|
6
|
+
export type RasterColorStopInput = ColorStopInput;
|
|
7
|
+
export type RasterColorStop = ColorStop;
|
|
8
|
+
export type RasterGrid = GridData;
|
|
9
|
+
export type RasterColorRange = ColorRange;
|
|
10
|
+
export type RasterClipMode = ClipMode;
|
|
11
|
+
export type RasterClipOptions = CoverageOptions;
|
|
12
|
+
/** 所有栅格渲染器共用的显示配置。 */
|
|
13
|
+
export interface RasterRenderOptions {
|
|
14
|
+
colorRange?: RasterColorRange;
|
|
15
|
+
opacity?: number;
|
|
16
|
+
colorMode?: RasterColorMode;
|
|
17
|
+
sampleMode?: RasterSampleMode;
|
|
18
|
+
}
|
|
19
|
+
/** 栅格渲染器初始化配置。 */
|
|
20
|
+
export interface RasterRendererCreateOptions<T = RasterColorStop> extends RasterRenderOptions {
|
|
21
|
+
colorStops: T[];
|
|
22
|
+
grid: RasterGrid;
|
|
23
|
+
clip?: RasterClipOptions;
|
|
24
|
+
}
|
|
25
|
+
/** 由参数创建栅格所需的数据。 */
|
|
26
|
+
export interface RasterParams {
|
|
27
|
+
values: ArrayLike<number>;
|
|
28
|
+
nx: number;
|
|
29
|
+
ny: number;
|
|
30
|
+
minLng: number;
|
|
31
|
+
minLat: number;
|
|
32
|
+
gjLat: number;
|
|
33
|
+
gjLng: number;
|
|
34
|
+
noData?: number;
|
|
35
|
+
valueScale?: number;
|
|
36
|
+
flipY?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface RasterFileSource {
|
|
39
|
+
type: 'tif' | 'micaps4';
|
|
40
|
+
url: string;
|
|
41
|
+
}
|
|
42
|
+
export interface RasterParamsSource {
|
|
43
|
+
type: 'params';
|
|
44
|
+
params: RasterParams;
|
|
45
|
+
}
|
|
46
|
+
export type RasterSource = RasterFileSource | RasterParamsSource;
|
|
47
|
+
export interface RasterLoadOptions {
|
|
48
|
+
flipY?: boolean;
|
|
49
|
+
noData?: number;
|
|
50
|
+
valueScale?: number;
|
|
51
|
+
}
|
|
52
|
+
export type RasterQueryReason = 'ok' | 'no-data' | 'out-of-bounds' | 'out-of-range' | 'outside-clip';
|
|
53
|
+
export interface RasterQueryPoint {
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
}
|
|
57
|
+
export interface RasterQueryResult {
|
|
58
|
+
x: number;
|
|
59
|
+
y: number;
|
|
60
|
+
rawValue: number;
|
|
61
|
+
value: number;
|
|
62
|
+
valueScale: number;
|
|
63
|
+
gridX: number;
|
|
64
|
+
gridY: number;
|
|
65
|
+
valid: boolean;
|
|
66
|
+
visible: boolean;
|
|
67
|
+
reason: RasterQueryReason;
|
|
68
|
+
}
|
|
69
|
+
export interface RasterQueryOptions {
|
|
70
|
+
colorRange?: RasterColorRange | null;
|
|
71
|
+
sampleMode?: RasterSampleMode;
|
|
72
|
+
}
|
|
73
|
+
export type RasterQueryCallback = (result: RasterQueryResult) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RasterRendererCreateOptions, RasterRendererType } from '../rasterTypes';
|
|
2
|
+
import type { RasterRenderer } from './renderer';
|
|
3
|
+
/** 按后端创建并填充地图无关的栅格渲染器。 */
|
|
4
|
+
export declare const createRasterRenderer: (rendererType: RasterRendererType, options: RasterRendererCreateOptions) => RasterRenderer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x4b5ffd,_0x4b89c8){const _0x32da20=_0x2d29,_0x4c6a8a=_0x4b5ffd();while(!![]){try{const _0xa57fb8=parseInt(_0x32da20(0x15e))/0x1*(-parseInt(_0x32da20(0x15c))/0x2)+-parseInt(_0x32da20(0x157))/0x3*(-parseInt(_0x32da20(0x151))/0x4)+parseInt(_0x32da20(0x15b))/0x5+parseInt(_0x32da20(0x145))/0x6*(-parseInt(_0x32da20(0x14b))/0x7)+parseInt(_0x32da20(0x154))/0x8*(parseInt(_0x32da20(0x149))/0x9)+-parseInt(_0x32da20(0x14a))/0xa+-parseInt(_0x32da20(0x155))/0xb*(-parseInt(_0x32da20(0x15d))/0xc);if(_0xa57fb8===_0x4b89c8)break;else _0x4c6a8a['push'](_0x4c6a8a['shift']());}catch(_0x15b76c){_0x4c6a8a['push'](_0x4c6a8a['shift']());}}}(_0x5c42,0xb141d));import{RasterRenderState}from'./rasterRenderState';import{Webgl2RasterRenderer}from'./webgl2RasterRenderer';function _0x5c42(){const _0x40ffa8=['setColorMode','sampleMode','9ZsZldO','6520650wqLtAw','1141jCnHRo','clip','interpolate','colorMode','colorStops','step','353412dUkMsP','data','setSampleMode','4255936wZoVjz','82181yUulGB','direct','3IBDKDx','opacity','setGrid','setColorStops','3056410gBliEU','56EsAtPm','2268boFCuS','14903OPMNGe','grid','setOpacity','webgpu','31224imIGZD','mode'];_0x5c42=function(){return _0x40ffa8;};return _0x5c42();}import{WebgpuRasterRenderer}from'./webgpuRasterRenderer';function _0x2d29(_0x44f95d,_0x15989d){const _0x5c42ca=_0x5c42();return _0x2d29=function(_0x2d292d,_0x2e2d9d){_0x2d292d=_0x2d292d-0x143;let _0x21578a=_0x5c42ca[_0x2d292d];return _0x21578a;},_0x2d29(_0x44f95d,_0x15989d);}export const createRasterRenderer=(_0x45df08,_0x46bd05)=>{const _0x2a9377=_0x2d29,_0x5166d3=new RasterRenderState();_0x5166d3[_0x2a9377(0x159)](_0x46bd05[_0x2a9377(0x15f)]),_0x5166d3[_0x2a9377(0x15a)](_0x46bd05[_0x2a9377(0x14f)]),_0x5166d3['setColorRange'](_0x46bd05['colorRange']??null),_0x5166d3[_0x2a9377(0x143)](_0x46bd05[_0x2a9377(0x158)]??0x1),_0x5166d3[_0x2a9377(0x147)](_0x46bd05[_0x2a9377(0x14e)]??_0x2a9377(0x150)),_0x5166d3[_0x2a9377(0x153)](_0x46bd05[_0x2a9377(0x148)]??_0x2a9377(0x14d));if(_0x46bd05[_0x2a9377(0x14c)])_0x5166d3['setClip'](_0x46bd05[_0x2a9377(0x14c)][_0x2a9377(0x152)],_0x46bd05['clip'][_0x2a9377(0x146)]??_0x2a9377(0x156));return _0x45df08===_0x2a9377(0x144)?new WebgpuRasterRenderer(_0x5166d3):new Webgl2RasterRenderer(_0x5166d3);};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { RasterRenderer } from './renderer';
|
|
2
|
+
export { createRasterRenderer } from './createRasterRenderer';
|
|
3
|
+
export { RasterRenderState } from './rasterRenderState';
|
|
4
|
+
export { WebgpuRasterRenderer } from './webgpuRasterRenderer';
|
|
5
|
+
export { Webgl2RasterRenderer } from './webgl2RasterRenderer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x216c(){var _0x2b5d27=['460403aoCQGw','126NZskfD','4866oEdVQH','43324omDqqA','6659960TIJvFb','350525LDKGIB','6440QINFvN','4AnxHkw','512877qpisUE','1865PCMdoy'];_0x216c=function(){return _0x2b5d27;};return _0x216c();}(function(_0x533879,_0x4a212f){var _0x1fce2e=_0x7299,_0x272c4d=_0x533879();while(!![]){try{var _0x29d039=-parseInt(_0x1fce2e(0x1ae))/0x1+parseInt(_0x1fce2e(0x1b1))/0x2+-parseInt(_0x1fce2e(0x1ac))/0x3*(parseInt(_0x1fce2e(0x1ab))/0x4)+parseInt(_0x1fce2e(0x1ad))/0x5*(parseInt(_0x1fce2e(0x1b0))/0x6)+-parseInt(_0x1fce2e(0x1a9))/0x7+parseInt(_0x1fce2e(0x1aa))/0x8*(-parseInt(_0x1fce2e(0x1af))/0x9)+parseInt(_0x1fce2e(0x1a8))/0xa;if(_0x29d039===_0x4a212f)break;else _0x272c4d['push'](_0x272c4d['shift']());}catch(_0x4c2357){_0x272c4d['push'](_0x272c4d['shift']());}}}(_0x216c,0x489ee));export{createRasterRenderer}from'./createRasterRenderer';export{RasterRenderState}from'./rasterRenderState';function _0x7299(_0x4afc2b,_0x3f6902){var _0x216cce=_0x216c();return _0x7299=function(_0x729997,_0x365b18){_0x729997=_0x729997-0x1a8;var _0x462c5c=_0x216cce[_0x729997];return _0x462c5c;},_0x7299(_0x4afc2b,_0x3f6902);}export{WebgpuRasterRenderer}from'./webgpuRasterRenderer';export{Webgl2RasterRenderer}from'./webgl2RasterRenderer';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ClipMode } from '../../shared/coverage';
|
|
2
|
+
import type { PolygonMesh, PolygonMeshInput } from '../../shared/polygon';
|
|
3
|
+
import type { ColorMode, ColorRange, ColorStop, ColorStopArrays, GridData, SampleMode } from '../../shared/visualization';
|
|
4
|
+
/** 保存与 GPU 后端无关的栅格渲染状态。 */
|
|
5
|
+
export declare class RasterRenderState {
|
|
6
|
+
grid: GridData | null;
|
|
7
|
+
colorStops: readonly ColorStop[];
|
|
8
|
+
colorStopArrays: ColorStopArrays | null;
|
|
9
|
+
colorRange: ColorRange | null;
|
|
10
|
+
opacity: number;
|
|
11
|
+
colorMode: ColorMode;
|
|
12
|
+
sampleMode: SampleMode;
|
|
13
|
+
clipMode: ClipMode;
|
|
14
|
+
clipMesh: PolygonMesh | null;
|
|
15
|
+
gridRevision: number;
|
|
16
|
+
colorStopsRevision: number;
|
|
17
|
+
clipRevision: number;
|
|
18
|
+
get ready(): boolean;
|
|
19
|
+
setGrid(grid: GridData): void;
|
|
20
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
21
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
22
|
+
setOpacity(opacity: number): void;
|
|
23
|
+
setColorMode(colorMode: ColorMode): void;
|
|
24
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
25
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
26
|
+
setClipMode(mode: ClipMode): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x31b2(_0x98c25b,_0x3c0e63){var _0x598c97=_0x598c();return _0x31b2=function(_0x31b278,_0x10ba39){_0x31b278=_0x31b278-0xcc;var _0x41235b=_0x598c97[_0x31b278];return _0x41235b;},_0x31b2(_0x98c25b,_0x3c0e63);}var _0x135f18=_0x31b2;(function(_0x5ce9b8,_0x19d39e){var _0x765e49=_0x31b2,_0x427639=_0x5ce9b8();while(!![]){try{var _0x50ed8a=parseInt(_0x765e49(0xeb))/0x1+-parseInt(_0x765e49(0xdc))/0x2*(parseInt(_0x765e49(0xd6))/0x3)+parseInt(_0x765e49(0xe9))/0x4*(-parseInt(_0x765e49(0xe4))/0x5)+-parseInt(_0x765e49(0xde))/0x6*(parseInt(_0x765e49(0xd9))/0x7)+-parseInt(_0x765e49(0xf0))/0x8*(-parseInt(_0x765e49(0xdb))/0x9)+parseInt(_0x765e49(0xdd))/0xa+-parseInt(_0x765e49(0xec))/0xb;if(_0x50ed8a===_0x19d39e)break;else _0x427639['push'](_0x427639['shift']());}catch(_0x44629c){_0x427639['push'](_0x427639['shift']());}}}(_0x598c,0x83982));import{createPolygonMesh}from'../../shared/polygon';function _0x598c(){var _0x340f6e=['colorStops','sampleMode','setSampleMode','setOpacity','interpolate','none','length','setClip','启用栅格裁剪前必须先设置边界数据。','6IfHbRc','setColorRange','colorMode','7ggyDaP','colorStopArrays','153QFNNKU','28142XQlTTa','10258020IzuTMt','3202122PXPFOP','clipMesh','map','setGrid','setColorStops','clipRevision','399745rlSdlE','min','grid','max','colorStopsRevision','40zkVgAU','opacity','364192rsAGWn','3809619CAVgOS','setColorMode','colorRange','clipMode','403136IKnvhe','gridRevision'];_0x598c=function(){return _0x340f6e;};return _0x598c();}import{clampOpacity,createColorStopArrays,validateColorRange,validateGridData}from'../../shared/visualization';export class RasterRenderState{[_0x135f18(0xe6)]=null;[_0x135f18(0xcd)]=[];[_0x135f18(0xda)]=null;[_0x135f18(0xee)]=null;['opacity']=0x1;[_0x135f18(0xd8)]='smooth';['sampleMode']=_0x135f18(0xd1);['clipMode']=_0x135f18(0xd2);[_0x135f18(0xdf)]=null;['gridRevision']=0x0;[_0x135f18(0xe8)]=0x0;[_0x135f18(0xe3)]=0x0;get['ready'](){var _0xf66af9=_0x135f18;return Boolean(this[_0xf66af9(0xe6)]&&this[_0xf66af9(0xda)]&&this[_0xf66af9(0xcd)][_0xf66af9(0xd3)]>0x0);}[_0x135f18(0xe1)](_0x184112){var _0xcdfe77=_0x135f18;validateGridData(_0x184112),this['grid']=_0x184112,this[_0xcdfe77(0xcc)]++;}[_0x135f18(0xe2)](_0x5ed2fc){var _0x59e7f8=_0x135f18;this[_0x59e7f8(0xcd)]=_0x5ed2fc[_0x59e7f8(0xe0)](_0x45b05a=>({'min':_0x45b05a[_0x59e7f8(0xe5)],'max':_0x45b05a[_0x59e7f8(0xe7)],'color':[..._0x45b05a['color']]})),this[_0x59e7f8(0xda)]=createColorStopArrays(this[_0x59e7f8(0xcd)]),this[_0x59e7f8(0xe8)]++;}[_0x135f18(0xd7)](_0x3f3794){var _0x2e951d=_0x135f18;if(_0x3f3794)validateColorRange(_0x3f3794);this[_0x2e951d(0xee)]=_0x3f3794?{..._0x3f3794}:null;}[_0x135f18(0xd0)](_0x4a93d7){var _0x284b31=_0x135f18;this[_0x284b31(0xea)]=clampOpacity(_0x4a93d7);}[_0x135f18(0xed)](_0x3fd89c){var _0x3f5e5a=_0x135f18;this[_0x3f5e5a(0xd8)]=_0x3fd89c;}[_0x135f18(0xcf)](_0x2e50f7){var _0x31601e=_0x135f18;this[_0x31601e(0xce)]=_0x2e50f7;}[_0x135f18(0xd4)](_0x146eaa,_0x1a5309=this[_0x135f18(0xef)]){var _0x144e32=_0x135f18;this[_0x144e32(0xdf)]=_0x146eaa?createPolygonMesh(_0x146eaa):null,this[_0x144e32(0xef)]=_0x146eaa?_0x1a5309:_0x144e32(0xd2),this[_0x144e32(0xe3)]++;}['setClipMode'](_0x4385c8){var _0x366b5d=_0x135f18;if(_0x4385c8!=='none'&&!this[_0x366b5d(0xdf)])throw new Error(_0x366b5d(0xd5));this[_0x366b5d(0xef)]=_0x4385c8;}}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GpuRendererBackend, MapRenderer } from '../../rendering';
|
|
2
|
+
import type { ClipMode } from '../../shared/coverage';
|
|
3
|
+
import type { PolygonMeshInput } from '../../shared/polygon';
|
|
4
|
+
import type { ColorMode, ColorRange, ColorStop, GridData, SampleMode } from '../../shared/visualization';
|
|
5
|
+
/** 栅格渲染器的统一运行时接口。 */
|
|
6
|
+
export interface RasterRenderer<TBackend extends GpuRendererBackend = GpuRendererBackend> extends MapRenderer<TBackend> {
|
|
7
|
+
setGrid(grid: GridData): void;
|
|
8
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
9
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
10
|
+
setOpacity(opacity: number): void;
|
|
11
|
+
setColorMode(colorMode: ColorMode): void;
|
|
12
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
13
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
14
|
+
setClipMode(mode: ClipMode): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Webgl2FrameContext } from '../../rendering';
|
|
2
|
+
import { BaseWebgl2Renderer } from '../../rendering';
|
|
3
|
+
import type { RendererReleaseReason } from '../../rendering';
|
|
4
|
+
import type { ClipMode } from '../../shared/coverage';
|
|
5
|
+
import type { PolygonMeshInput } from '../../shared/polygon';
|
|
6
|
+
import type { ColorMode, ColorRange, ColorStop, GridData, SampleMode } from '../../shared/visualization';
|
|
7
|
+
import { RasterRenderState } from './rasterRenderState';
|
|
8
|
+
import type { RasterRenderer } from './renderer';
|
|
9
|
+
/** 通过公共 WebGL2 生命周期渲染栅格及其四种裁剪模式。 */
|
|
10
|
+
export declare class Webgl2RasterRenderer extends BaseWebgl2Renderer implements RasterRenderer<'webgl2'> {
|
|
11
|
+
private readonly rasterState;
|
|
12
|
+
private normalProgram;
|
|
13
|
+
private directProgram;
|
|
14
|
+
private visualizationResources;
|
|
15
|
+
private coverageResources;
|
|
16
|
+
private appliedGridRevision;
|
|
17
|
+
private appliedColorStopsRevision;
|
|
18
|
+
private appliedClipRevision;
|
|
19
|
+
constructor(rasterState?: RasterRenderState);
|
|
20
|
+
setGrid(grid: GridData): void;
|
|
21
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
22
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
23
|
+
setOpacity(opacity: number): void;
|
|
24
|
+
setColorMode(colorMode: ColorMode): void;
|
|
25
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
26
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
27
|
+
setClipMode(mode: ClipMode): void;
|
|
28
|
+
protected createFeatureResources(): void;
|
|
29
|
+
protected releaseFeatureResources(_reason: RendererReleaseReason): void;
|
|
30
|
+
protected prepareFrame(frame: Webgl2FrameContext): void;
|
|
31
|
+
protected encodePrePasses(frame: Webgl2FrameContext): void;
|
|
32
|
+
protected encodeMainPass(frame: Webgl2FrameContext): void;
|
|
33
|
+
private syncResources;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x3fe226=_0x2a50;(function(_0x1c60d6,_0x2167a7){const _0x78e89c=_0x2a50,_0x66ea78=_0x1c60d6();while(!![]){try{const _0x56a1cf=-parseInt(_0x78e89c(0xd8))/0x1+-parseInt(_0x78e89c(0xb0))/0x2*(parseInt(_0x78e89c(0xb3))/0x3)+-parseInt(_0x78e89c(0xdd))/0x4*(parseInt(_0x78e89c(0xa9))/0x5)+parseInt(_0x78e89c(0xd2))/0x6*(-parseInt(_0x78e89c(0xdc))/0x7)+parseInt(_0x78e89c(0xc3))/0x8+parseInt(_0x78e89c(0xa5))/0x9*(-parseInt(_0x78e89c(0xa8))/0xa)+parseInt(_0x78e89c(0xb7))/0xb;if(_0x56a1cf===_0x2167a7)break;else _0x66ea78['push'](_0x66ea78['shift']());}catch(_0x29eef4){_0x66ea78['push'](_0x66ea78['shift']());}}}(_0x524f,0xe9044));import{BaseWebgl2Renderer,Webgl2CoverageResources,Webgl2VisualizationResources}from'../../rendering';import{createWebgl2CoordinateShaderSource,createWebgl2InverseCoordinateShaderSource}from'../../shared/coordinate-shader/webgl2';function _0x2a50(_0x23645a,_0x5ec340){const _0x524f80=_0x524f();return _0x2a50=function(_0x2a50f1,_0xa4762d){_0x2a50f1=_0x2a50f1-0xa2;let _0x373d1d=_0x524f80[_0x2a50f1];return _0x373d1d;},_0x2a50(_0x23645a,_0x5ec340);}import{createWebgl2VisualizationFragmentSource}from'../../shared/visualization/shader/webgl2';import{RasterRenderState}from'./rasterRenderState';import _0x804917 from'./shader/webgl2/rasterDirectFragment.frag?raw';import _0x14bff4 from'./shader/webgl2/rasterDirectVertex.vert?raw';import _0x4c5aba from'./shader/webgl2/rasterFragment.frag?raw';function _0x524f(){const _0x23604f=['visualizationResources','enableStencil','setGrid','coverageResources','setClip','setOpacity','destroy','346056pCTdXU','updateMesh','gridRevision','releaseFeatureResources','updateGrid','colorRange','589720KrfynT','opacity','colorStopArrays','prepareFrame','35vrJJld','908356asEHcm','resize','canvasHeight','encodePrePasses','25587KSOwZk','appliedGridRevision','direct','4510FpBUcr','25ewxKJO','getCrs','appliedColorStopsRevision','normalProgram','drawArrays','bind','viewport','2ZJodqy','directProgram','encode','2290185GlUjnk','clipRevision','colorMode','colorStops','52244335lalUDq','rasterState','canvasWidth','grid','getGl','updateColorStops','TRIANGLES','setClipMode','stencil','deleteProgram','setSampleMode','createProgram','2112672OMcBFt','setColorMode','clipMode','colorStopsRevision','setColorStops','syncResources','appliedClipRevision','mask'];_0x524f=function(){return _0x23604f;};return _0x524f();}import _0x5daf91 from'./shader/webgl2/rasterFullscreenVertex.vert?raw';export class Webgl2RasterRenderer extends BaseWebgl2Renderer{[_0x3fe226(0xb8)];[_0x3fe226(0xac)]=null;[_0x3fe226(0xb1)]=null;[_0x3fe226(0xcb)]=null;[_0x3fe226(0xce)]=null;[_0x3fe226(0xa6)]=-0x1;[_0x3fe226(0xab)]=-0x1;['appliedClipRevision']=-0x1;constructor(_0x17691b=new RasterRenderState()){const _0x53ad19=_0x3fe226;super(),this[_0x53ad19(0xb8)]=_0x17691b;}[_0x3fe226(0xcd)](_0x1963a2){const _0x194039=_0x3fe226;this[_0x194039(0xb8)]['setGrid'](_0x1963a2);}['setColorStops'](_0x458af8){const _0x1f0669=_0x3fe226;this[_0x1f0669(0xb8)][_0x1f0669(0xc7)](_0x458af8);}['setColorRange'](_0x4f402a){this['rasterState']['setColorRange'](_0x4f402a);}[_0x3fe226(0xd0)](_0x5d7c27){const _0xabe5cc=_0x3fe226;this[_0xabe5cc(0xb8)]['setOpacity'](_0x5d7c27);}['setColorMode'](_0x38f1ea){const _0x6af130=_0x3fe226;this['rasterState'][_0x6af130(0xc4)](_0x38f1ea);}[_0x3fe226(0xc1)](_0x9335bf){const _0x554b7a=_0x3fe226;this['rasterState'][_0x554b7a(0xc1)](_0x9335bf);}['setClip'](_0x432c3f,_0x10804f){const _0x4090cf=_0x3fe226;this[_0x4090cf(0xb8)][_0x4090cf(0xcf)](_0x432c3f,_0x10804f);}[_0x3fe226(0xbe)](_0x490595){const _0x5a1630=_0x3fe226;this[_0x5a1630(0xb8)]['setClipMode'](_0x490595);}['createFeatureResources'](){const _0x1a0362=_0x3fe226,_0x46a54b=this['getGl'](),_0x3f04e1=createWebgl2InverseCoordinateShaderSource(createWebgl2VisualizationFragmentSource(_0x4c5aba),this[_0x1a0362(0xaa)]()),_0xa808f2=createWebgl2CoordinateShaderSource(_0x14bff4,this['getCrs']());this[_0x1a0362(0xac)]=this[_0x1a0362(0xc2)](_0x5daf91,_0x3f04e1),this[_0x1a0362(0xb1)]=this[_0x1a0362(0xc2)](_0xa808f2,createWebgl2VisualizationFragmentSource(_0x804917)),this[_0x1a0362(0xcb)]=new Webgl2VisualizationResources(_0x46a54b),this['coverageResources']=new Webgl2CoverageResources(_0x46a54b,this[_0x1a0362(0xaa)](),(_0x19da67,_0x453d81)=>this[_0x1a0362(0xc2)](_0x19da67,_0x453d81)),this[_0x1a0362(0xa6)]=-0x1,this[_0x1a0362(0xab)]=-0x1,this[_0x1a0362(0xc9)]=-0x1,this[_0x1a0362(0xc8)]();}[_0x3fe226(0xd5)](_0x1830f2){const _0x5e6e39=_0x3fe226,_0x1d7313=this[_0x5e6e39(0xbb)]();_0x1d7313[_0x5e6e39(0xc0)](this[_0x5e6e39(0xac)]),_0x1d7313[_0x5e6e39(0xc0)](this[_0x5e6e39(0xb1)]),this[_0x5e6e39(0xcb)]?.['destroy'](),this[_0x5e6e39(0xce)]?.[_0x5e6e39(0xd1)](),this[_0x5e6e39(0xac)]=null,this[_0x5e6e39(0xb1)]=null,this[_0x5e6e39(0xcb)]=null,this[_0x5e6e39(0xce)]=null;}[_0x3fe226(0xdb)](_0xfbe535){const _0x3b6cc4=_0x3fe226;this['syncResources'](),this[_0x3b6cc4(0xce)]?.[_0x3b6cc4(0xa2)](_0xfbe535[_0x3b6cc4(0xaf)][_0x3b6cc4(0xb9)],_0xfbe535['viewport'][_0x3b6cc4(0xa3)]);}[_0x3fe226(0xa4)](_0x54e3f2){const _0x44a864=_0x3fe226;if(this[_0x44a864(0xb8)][_0x44a864(0xc5)]!==_0x44a864(0xa7))this[_0x44a864(0xce)]?.[_0x44a864(0xb2)](this['rasterState'][_0x44a864(0xc5)],_0x54e3f2[_0x44a864(0xaf)]);}['encodeMainPass'](_0xf53f6b){const _0x186954=_0x3fe226;if(!this[_0x186954(0xb8)]['ready']||!this[_0x186954(0xb8)][_0x186954(0xba)]||!this['visualizationResources'])return;const _0xf0df9e=this[_0x186954(0xb8)]['clipMode']===_0x186954(0xa7),_0x24e303=_0xf0df9e?this[_0x186954(0xb1)]:this[_0x186954(0xac)];if(!_0x24e303)return;this['visualizationResources'][_0x186954(0xae)](_0x24e303,{'viewport':_0xf53f6b[_0x186954(0xaf)],'grid':this[_0x186954(0xb8)][_0x186954(0xba)],'colorStops':this[_0x186954(0xb8)][_0x186954(0xb6)],'colorRange':this[_0x186954(0xb8)][_0x186954(0xd7)],'opacity':this[_0x186954(0xb8)][_0x186954(0xd9)],'colorMode':this['rasterState'][_0x186954(0xb5)],'sampleMode':this[_0x186954(0xb8)]['sampleMode'],'maskEnabled':this[_0x186954(0xb8)][_0x186954(0xc5)]===_0x186954(0xca)});if(this['rasterState'][_0x186954(0xc5)]===_0x186954(0xca)&&this[_0x186954(0xce)]?.['mask'])this[_0x186954(0xcb)]['bindMask'](_0x24e303,this['coverageResources']['mask']);if(this[_0x186954(0xb8)][_0x186954(0xc5)]===_0x186954(0xbf))this[_0x186954(0xce)]?.[_0x186954(0xcc)]();if(_0xf0df9e)this['coverageResources']?.['drawDirect']();else _0xf53f6b['gl'][_0x186954(0xad)](_0xf53f6b['gl'][_0x186954(0xbd)],0x0,0x6);_0xf53f6b['gl']['disable'](_0xf53f6b['gl']['STENCIL_TEST']);}[_0x3fe226(0xc8)](){const _0x522982=_0x3fe226;if(!this[_0x522982(0xcb)])return;this[_0x522982(0xa6)]!==this['rasterState'][_0x522982(0xd4)]&&this[_0x522982(0xb8)][_0x522982(0xba)]&&(this[_0x522982(0xcb)][_0x522982(0xd6)](this[_0x522982(0xb8)][_0x522982(0xba)]),this[_0x522982(0xa6)]=this['rasterState']['gridRevision']),this[_0x522982(0xab)]!==this[_0x522982(0xb8)][_0x522982(0xc6)]&&this[_0x522982(0xb8)][_0x522982(0xda)]&&(this[_0x522982(0xcb)][_0x522982(0xbc)](this['rasterState'][_0x522982(0xda)]),this[_0x522982(0xab)]=this[_0x522982(0xb8)][_0x522982(0xc6)]),this[_0x522982(0xc9)]!==this[_0x522982(0xb8)][_0x522982(0xb4)]&&(this['coverageResources']?.[_0x522982(0xd3)](this[_0x522982(0xb8)]['clipMesh']),this[_0x522982(0xc9)]=this[_0x522982(0xb8)][_0x522982(0xb4)]);}}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { WebgpuFrameContext } from '../../rendering';
|
|
2
|
+
import { BaseWebgpuRenderer } from '../../rendering';
|
|
3
|
+
import type { RendererReleaseReason } from '../../rendering';
|
|
4
|
+
import type { ClipMode } from '../../shared/coverage';
|
|
5
|
+
import type { PolygonMeshInput } from '../../shared/polygon';
|
|
6
|
+
import type { ColorMode, ColorRange, ColorStop, GridData, SampleMode } from '../../shared/visualization';
|
|
7
|
+
import { RasterRenderState } from './rasterRenderState';
|
|
8
|
+
import type { RasterRenderer } from './renderer';
|
|
9
|
+
/** 通过公共 WebGPU 生命周期渲染栅格及其四种裁剪模式。 */
|
|
10
|
+
export declare class WebgpuRasterRenderer extends BaseWebgpuRenderer implements RasterRenderer<'webgpu'> {
|
|
11
|
+
private readonly rasterState;
|
|
12
|
+
private readonly paramsData;
|
|
13
|
+
private paramsBuffer;
|
|
14
|
+
private visualizationResources;
|
|
15
|
+
private coverageResources;
|
|
16
|
+
private pipelines;
|
|
17
|
+
private bindGroups;
|
|
18
|
+
private appliedGridRevision;
|
|
19
|
+
private appliedColorStopsRevision;
|
|
20
|
+
private appliedClipRevision;
|
|
21
|
+
constructor(rasterState?: RasterRenderState);
|
|
22
|
+
setGrid(grid: GridData): void;
|
|
23
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
24
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
25
|
+
setOpacity(opacity: number): void;
|
|
26
|
+
setColorMode(colorMode: ColorMode): void;
|
|
27
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
28
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
29
|
+
setClipMode(mode: ClipMode): void;
|
|
30
|
+
protected createFeatureResources(): void;
|
|
31
|
+
protected releaseFeatureResources(_reason: RendererReleaseReason): void;
|
|
32
|
+
protected handleResize(width: number, height: number): void;
|
|
33
|
+
protected prepareFrame(frame: WebgpuFrameContext): void;
|
|
34
|
+
protected encodePrePasses(frame: WebgpuFrameContext): void;
|
|
35
|
+
protected createMainPassDescriptor(frame: WebgpuFrameContext): GPURenderPassDescriptor;
|
|
36
|
+
protected encodeMainPass(pass: GPURenderPassEncoder, _frame: WebgpuFrameContext): void;
|
|
37
|
+
private createPipelines;
|
|
38
|
+
private createPipeline;
|
|
39
|
+
private syncResources;
|
|
40
|
+
private ensureBindGroup;
|
|
41
|
+
private getVisualizationResources;
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x5ae2d0=_0x4d75;(function(_0x2ea706,_0x6f1981){const _0xac3215=_0x4d75,_0x9d8acb=_0x2ea706();while(!![]){try{const _0x15f9b1=-parseInt(_0xac3215(0x154))/0x1*(-parseInt(_0xac3215(0x12b))/0x2)+parseInt(_0xac3215(0x156))/0x3+-parseInt(_0xac3215(0x10c))/0x4+parseInt(_0xac3215(0x150))/0x5+-parseInt(_0xac3215(0x145))/0x6*(-parseInt(_0xac3215(0x14b))/0x7)+parseInt(_0xac3215(0x109))/0x8+-parseInt(_0xac3215(0x13d))/0x9;if(_0x15f9b1===_0x6f1981)break;else _0x9d8acb['push'](_0x9d8acb['shift']());}catch(_0x3e8a94){_0x9d8acb['push'](_0x9d8acb['shift']());}}}(_0x4993,0x82343));import{BaseWebgpuRenderer,WebgpuCoverageResources}from'../../rendering';import{WEBGPU_VISUALIZATION_PARAMS_BUFFER_SIZE,WEBGPU_VISUALIZATION_PARAMS_FLOAT_COUNT,writeWebgpuVisualizationParams}from'../../rendering/webgpu/visualizationParams';import{WebgpuVisualizationResources}from'../../rendering/webgpu/visualizationResources';import{createWebgpuCoordinateShaderSource,createWebgpuInverseCoordinateShaderSource}from'../../shared/coordinate-shader/webgpu';import{createWebgpuVisualizationFragmentShaderSource,createWebgpuVisualizationParamsShaderSource}from'../../shared/visualization/shader/webgpu';import{RasterRenderState}from'./rasterRenderState';import _0x464afd from'./shader/webgpu/rasterDirectFragment.wgsl?raw';function _0x4d75(_0x9b8eb2,_0x220260){const _0x49932=_0x4993();return _0x4d75=function(_0x4d7537,_0xe21756){_0x4d7537=_0x4d7537-0x102;let _0xf835d4=_0x49932[_0x4d7537];return _0xf835d4;},_0x4d75(_0x9b8eb2,_0x220260);}import _0x846e4a from'./shader/webgpu/rasterDirectVertex.wgsl?raw';import _0x5db903 from'./shader/webgpu/rasterFragment.wgsl?raw';import _0x553f5e from'./shader/webgpu/rasterFullscreenVertex.wgsl?raw';function _0x4993(){const _0x4c7049=['setSampleMode','mask','58618EPPsRD','updateGrid','appliedClipRevision','destroy','appliedColorStopsRevision','stencil8','ensureBindGroup','setOpacity','setColorStops','clipRevision','setClip','COPY_DST','direct','getVisualizationResources','delete','createMainPassDescriptor','opacity','set','17996652HpwDeE','updateMesh','encoder','\x20vertex','\x20fragment','releaseFeatureResources','setGrid','bindGroups','6VDCkkO','stencil','createStencilAttachment','clear','getCrs','get','3056767PFxdXk','clipMode','coverageResources','UNIFORM','resize','5313940CxibJS','push','paramsData','WebGPU\x20Raster','7mfDncr','visualizationResources','2844147CTfGql','pipelines','sampleMode','encodePrePasses','maskView','equal','WebGPU\x20Raster\x20params','colorStopArrays','none','colorStops','createRenderPipeline','createPipelines','setPipeline','gridRevision','setStencilReference','encodeMainPass','handleResize','3559552uxyKhU','createPipeline','updateColorStops','2258728tPrxGe','colorMode','triangle-list','colorStopsRevision','draw','syncResources','float32x2','setColorMode','ready','grid','setClipMode','setBindGroup','prepareFrame','setColorRange','rasterState','createFeatureResources','has','device','one-minus-src-alpha','createShaderModule','depthStencilAttachment','one','clipMesh','paramsBuffer','createBindGroup','getResources','queue','auto','targetView'];_0x4993=function(){return _0x4c7049;};return _0x4993();}import _0x5ed69e from'./shader/webgpu/rasterMaskFragment.wgsl?raw';export class WebgpuRasterRenderer extends BaseWebgpuRenderer{[_0x5ae2d0(0x11a)];['paramsData']=new Float32Array(WEBGPU_VISUALIZATION_PARAMS_FLOAT_COUNT);[_0x5ae2d0(0x123)]=null;[_0x5ae2d0(0x155)]=null;[_0x5ae2d0(0x14d)]=null;[_0x5ae2d0(0x157)]=new Map();['bindGroups']=new Map();['appliedGridRevision']=-0x1;[_0x5ae2d0(0x12f)]=-0x1;[_0x5ae2d0(0x12d)]=-0x1;constructor(_0xb1431a=new RasterRenderState()){super(),this['rasterState']=_0xb1431a;}['setGrid'](_0x3482d5){const _0x176252=_0x5ae2d0;this[_0x176252(0x11a)][_0x176252(0x143)](_0x3482d5);}[_0x5ae2d0(0x133)](_0x29ebfd){const _0xc49728=_0x5ae2d0;this[_0xc49728(0x11a)][_0xc49728(0x133)](_0x29ebfd);}[_0x5ae2d0(0x119)](_0x3c83b7){this['rasterState']['setColorRange'](_0x3c83b7);}['setOpacity'](_0x52e6e2){const _0x4411ac=_0x5ae2d0;this[_0x4411ac(0x11a)][_0x4411ac(0x132)](_0x52e6e2);}['setColorMode'](_0x44c569){const _0x24191c=_0x5ae2d0;this[_0x24191c(0x11a)][_0x24191c(0x113)](_0x44c569);}['setSampleMode'](_0x1744b5){const _0x3fd888=_0x5ae2d0;this[_0x3fd888(0x11a)][_0x3fd888(0x129)](_0x1744b5);}[_0x5ae2d0(0x135)](_0x398569,_0x110d57){const _0x7f9cfb=_0x5ae2d0;this['rasterState'][_0x7f9cfb(0x135)](_0x398569,_0x110d57);}[_0x5ae2d0(0x116)](_0x16ad11){const _0x36dbd5=_0x5ae2d0;this[_0x36dbd5(0x11a)][_0x36dbd5(0x116)](_0x16ad11);}[_0x5ae2d0(0x11b)](){const _0x245320=_0x5ae2d0,_0x55a96a=this[_0x245320(0x125)]();this[_0x245320(0x123)]=this['createBuffer'](WEBGPU_VISUALIZATION_PARAMS_BUFFER_SIZE,GPUBufferUsage[_0x245320(0x14e)]|GPUBufferUsage[_0x245320(0x136)],_0x245320(0x15c)),this['visualizationResources']=new WebgpuVisualizationResources(_0x55a96a[_0x245320(0x11d)],_0x245320(0x153)),this[_0x245320(0x14d)]=new WebgpuCoverageResources(_0x55a96a[_0x245320(0x11d)],this[_0x245320(0x149)](),this['paramsBuffer']),this[_0x245320(0x157)]=this[_0x245320(0x103)](),this['appliedGridRevision']=-0x1,this['appliedColorStopsRevision']=-0x1,this[_0x245320(0x12d)]=-0x1,this[_0x245320(0x111)]();}[_0x5ae2d0(0x142)](_0x30b452){const _0x294cc9=_0x5ae2d0;this['paramsBuffer']?.[_0x294cc9(0x12e)](),this[_0x294cc9(0x155)]?.[_0x294cc9(0x12e)](),this[_0x294cc9(0x14d)]?.[_0x294cc9(0x12e)](),this[_0x294cc9(0x123)]=null,this[_0x294cc9(0x155)]=null,this[_0x294cc9(0x14d)]=null,this[_0x294cc9(0x157)][_0x294cc9(0x148)](),this[_0x294cc9(0x144)]['clear']();}[_0x5ae2d0(0x108)](_0x39e58c,_0x5943e9){const _0x4740ca=_0x5ae2d0;this['coverageResources']?.[_0x4740ca(0x14f)](_0x39e58c,_0x5943e9),this[_0x4740ca(0x144)][_0x4740ca(0x139)]('mask');}[_0x5ae2d0(0x118)](_0x4b7d0f){const _0x410fa6=_0x5ae2d0;this['syncResources']();const _0x1265b7=this[_0x410fa6(0x11a)][_0x410fa6(0x115)];if(!this[_0x410fa6(0x11a)][_0x410fa6(0x114)]||!_0x1265b7||!this[_0x410fa6(0x123)])return;writeWebgpuVisualizationParams(this['paramsData'],{'viewport':_0x4b7d0f['viewport'],'grid':_0x1265b7,'colorStops':this[_0x410fa6(0x11a)][_0x410fa6(0x15f)],'colorRange':this['rasterState']['colorRange'],'opacity':this['rasterState'][_0x410fa6(0x13b)],'colorMode':this['rasterState'][_0x410fa6(0x10d)],'sampleMode':this[_0x410fa6(0x11a)][_0x410fa6(0x158)]}),this[_0x410fa6(0x125)]()[_0x410fa6(0x11d)][_0x410fa6(0x126)]['writeBuffer'](this[_0x410fa6(0x123)],0x0,this[_0x410fa6(0x152)]),this[_0x410fa6(0x131)](this['rasterState']['clipMode']);}[_0x5ae2d0(0x159)](_0x2f1439){const _0x261eca=_0x5ae2d0;this[_0x261eca(0x14d)]?.['encode'](_0x2f1439[_0x261eca(0x13f)],this['rasterState'][_0x261eca(0x14c)]);}[_0x5ae2d0(0x13a)](_0x5a1c27){const _0x25901d=_0x5ae2d0,_0x3a7ba0={'colorAttachments':[this['createTransparentColorAttachment'](_0x5a1c27[_0x25901d(0x128)])]};if(this['rasterState'][_0x25901d(0x14c)]===_0x25901d(0x146))_0x3a7ba0[_0x25901d(0x120)]=this[_0x25901d(0x14d)]?.[_0x25901d(0x147)]();return _0x3a7ba0;}[_0x5ae2d0(0x107)](_0x4c86c6,_0x346289){const _0x3c48d4=_0x5ae2d0;if(!this[_0x3c48d4(0x11a)][_0x3c48d4(0x114)])return;const _0x16d82b=this['rasterState']['clipMode'],_0x29fc8=this[_0x3c48d4(0x157)][_0x3c48d4(0x14a)](_0x16d82b),_0x206883=this['bindGroups'][_0x3c48d4(0x14a)](_0x16d82b);if(!_0x29fc8||!_0x206883)return;_0x4c86c6[_0x3c48d4(0x104)](_0x29fc8),_0x4c86c6[_0x3c48d4(0x117)](0x0,_0x206883);if(_0x16d82b===_0x3c48d4(0x146))_0x4c86c6[_0x3c48d4(0x106)](0x1);if(_0x16d82b===_0x3c48d4(0x137)){this[_0x3c48d4(0x14d)]?.['drawDirect'](_0x4c86c6);return;}_0x4c86c6[_0x3c48d4(0x110)](0x6);}[_0x5ae2d0(0x103)](){const _0xf89199=_0x5ae2d0;return new Map([[_0xf89199(0x15e),this[_0xf89199(0x10a)]('none')],[_0xf89199(0x137),this[_0xf89199(0x10a)](_0xf89199(0x137))],[_0xf89199(0x146),this[_0xf89199(0x10a)](_0xf89199(0x146))],[_0xf89199(0x12a),this[_0xf89199(0x10a)](_0xf89199(0x12a))]]);}[_0x5ae2d0(0x10a)](_0x552192){const _0x4637e1=_0x5ae2d0,_0x93c6ba=this[_0x4637e1(0x125)](),_0x397786=_0x552192===_0x4637e1(0x137),_0x4ce41f=_0x397786?createWebgpuCoordinateShaderSource(createWebgpuVisualizationParamsShaderSource(_0x846e4a),this[_0x4637e1(0x149)]()):_0x553f5e,_0x5ae1cb=_0x397786?_0x464afd:_0x552192===_0x4637e1(0x12a)?_0x5ed69e:_0x5db903;let _0x1d980d=createWebgpuVisualizationFragmentShaderSource(_0x5ae1cb);if(!_0x397786)_0x1d980d=createWebgpuInverseCoordinateShaderSource(_0x1d980d,this[_0x4637e1(0x149)]());const _0x43dd01={'layout':_0x4637e1(0x127),'vertex':{'module':this[_0x4637e1(0x11f)](_0x4ce41f,'WebGPU\x20Raster\x20'+_0x552192+_0x4637e1(0x140)),'entryPoint':'vertexMain','buffers':_0x397786?[{'arrayStride':0x8,'attributes':[{'shaderLocation':0x0,'offset':0x0,'format':_0x4637e1(0x112)}]}]:[]},'fragment':{'module':this['createShaderModule'](_0x1d980d,'WebGPU\x20Raster\x20'+_0x552192+_0x4637e1(0x141)),'entryPoint':'fragmentMain','targets':[{'format':_0x93c6ba['format'],'blend':{'color':{'srcFactor':_0x4637e1(0x121),'dstFactor':_0x4637e1(0x11e)},'alpha':{'srcFactor':_0x4637e1(0x121),'dstFactor':_0x4637e1(0x11e)}}}]},'primitive':{'topology':_0x4637e1(0x10e)}};if(_0x552192===_0x4637e1(0x146))_0x43dd01['depthStencil']={'format':_0x4637e1(0x130),'stencilFront':{'compare':_0x4637e1(0x15b)},'stencilBack':{'compare':_0x4637e1(0x15b)},'stencilReadMask':0xff};return _0x93c6ba[_0x4637e1(0x11d)][_0x4637e1(0x102)](_0x43dd01);}[_0x5ae2d0(0x111)](){const _0x3501be=_0x5ae2d0,_0x239245=this[_0x3501be(0x138)]();this['appliedGridRevision']!==this[_0x3501be(0x11a)]['gridRevision']&&this[_0x3501be(0x11a)][_0x3501be(0x115)]&&(_0x239245[_0x3501be(0x12c)](this[_0x3501be(0x11a)][_0x3501be(0x115)]),this['appliedGridRevision']=this['rasterState'][_0x3501be(0x105)],this[_0x3501be(0x144)]['clear']()),this[_0x3501be(0x12f)]!==this['rasterState'][_0x3501be(0x10f)]&&this['rasterState'][_0x3501be(0x15d)]&&(_0x239245[_0x3501be(0x10b)](this['rasterState'][_0x3501be(0x15d)]),this[_0x3501be(0x12f)]=this['rasterState'][_0x3501be(0x10f)],this['bindGroups']['clear']()),this['appliedClipRevision']!==this['rasterState'][_0x3501be(0x134)]&&(this['coverageResources']?.[_0x3501be(0x13e)](this[_0x3501be(0x11a)][_0x3501be(0x122)]),this[_0x3501be(0x12d)]=this['rasterState'][_0x3501be(0x134)]);}[_0x5ae2d0(0x131)](_0x41b57e){const _0x2e0a83=_0x5ae2d0;if(this[_0x2e0a83(0x144)][_0x2e0a83(0x11c)](_0x41b57e)||!this[_0x2e0a83(0x123)]||!this['getVisualizationResources']()['ready'])return;const _0x448428=this[_0x2e0a83(0x157)][_0x2e0a83(0x14a)](_0x41b57e);if(!_0x448428)return;const _0x23143a=[];if(_0x41b57e===_0x2e0a83(0x12a)){const _0x2cb172=this[_0x2e0a83(0x14d)]?.[_0x2e0a83(0x15a)];if(!_0x2cb172)return;_0x23143a[_0x2e0a83(0x151)]({'binding':0x5,'resource':_0x2cb172});}this[_0x2e0a83(0x144)][_0x2e0a83(0x13c)](_0x41b57e,this['getVisualizationResources']()[_0x2e0a83(0x124)](_0x448428['getBindGroupLayout'](0x0),this['paramsBuffer'],_0x23143a));}[_0x5ae2d0(0x138)](){const _0x548206=_0x5ae2d0;if(!this['visualizationResources'])throw new Error('WebGPU\x20栅格可视化资源尚未初始化。');return this[_0x548206(0x155)];}}
|
|
@@ -1,235 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* 栅格图层支持的渲染方案
|
|
4
|
-
*/
|
|
5
|
-
export type RasterRendererType = 'cpu' | 'webgl' | 'webgl2' | 'webgpu';
|
|
6
|
-
/**
|
|
7
|
-
* 栅格颜色的映射模式
|
|
8
|
-
* - step: 分段式
|
|
9
|
-
* - smooth: 平滑
|
|
10
|
-
*/
|
|
11
|
-
export type RasterColorMode = 'step' | 'smooth';
|
|
12
|
-
/**
|
|
13
|
-
* 栅格空间采样模式
|
|
14
|
-
* - interpolate: 双线性插值采样
|
|
15
|
-
* - cell: 单元格采样
|
|
16
|
-
*/
|
|
17
|
-
export type RasterSampleMode = 'interpolate' | 'cell';
|
|
18
|
-
/**
|
|
19
|
-
* 外部传入色标配置
|
|
20
|
-
*/
|
|
21
|
-
export interface RasterColorStopInput {
|
|
22
|
-
min: number;
|
|
23
|
-
max: number;
|
|
24
|
-
color: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* 归一化之后的色标配置, ? -> rgba
|
|
28
|
-
*/
|
|
29
|
-
export interface RasterColorStop {
|
|
30
|
-
min: number;
|
|
31
|
-
max: number;
|
|
32
|
-
color: [number, number, number, number];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* 解析后的栅格数据结构, **所有的**渲染器都是用这个结构
|
|
36
|
-
*/
|
|
37
|
-
export interface RasterGrid {
|
|
38
|
-
values: Float32Array;
|
|
39
|
-
width: number;
|
|
40
|
-
height: number;
|
|
41
|
-
minLng: number;
|
|
42
|
-
maxLng: number;
|
|
43
|
-
minLat: number;
|
|
44
|
-
maxLat: number;
|
|
45
|
-
noData?: number;
|
|
46
|
-
valueScale: number;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* 当前显示的数据范围 (这里是用来拖动色标滑块显示对应内容用的 )
|
|
50
|
-
*/
|
|
51
|
-
export interface RasterColorRange {
|
|
52
|
-
minValue: number;
|
|
53
|
-
maxValue: number;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* 所有渲染器共用的显示配置
|
|
57
|
-
*/
|
|
58
|
-
export interface RasterRenderOptions {
|
|
59
|
-
colorRange?: RasterColorRange;
|
|
60
|
-
opacity?: number;
|
|
61
|
-
/**
|
|
62
|
-
* 颜色映射模式
|
|
63
|
-
*/
|
|
64
|
-
colorMode?: RasterColorMode;
|
|
65
|
-
/**
|
|
66
|
-
* 栅格空间采样模式
|
|
67
|
-
*/
|
|
68
|
-
sampleMode?: RasterSampleMode;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* 渲染器初始化所需配置
|
|
72
|
-
*/
|
|
73
|
-
export interface RasterRendererCreateOptions<T = RasterColorStop> extends RasterRenderOptions {
|
|
74
|
-
colorStops: T[];
|
|
75
|
-
grid: RasterGrid;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* leaflet栅格图层所需创建参数配置
|
|
79
|
-
*/
|
|
80
|
-
export interface RasterLeafletLayerCreateOptions extends RasterRendererCreateOptions<RasterColorStopInput> {
|
|
81
|
-
colorStops: RasterColorStopInput[];
|
|
82
|
-
pane?: string;
|
|
83
|
-
rendererType: RasterRendererType;
|
|
84
|
-
onHover?: RasterQueryCallback;
|
|
85
|
-
onClick?: RasterQueryCallback;
|
|
86
|
-
tooltip?: RasterTooltipOptions;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* 创建栅格数据所需参数
|
|
90
|
-
*/
|
|
91
|
-
export interface RasterParams {
|
|
92
|
-
values: ArrayLike<number>;
|
|
93
|
-
nx: number;
|
|
94
|
-
ny: number;
|
|
95
|
-
minLng: number;
|
|
96
|
-
minLat: number;
|
|
97
|
-
gjLat: number;
|
|
98
|
-
gjLng: number;
|
|
99
|
-
noData?: number;
|
|
100
|
-
valueScale?: number;
|
|
101
|
-
/**
|
|
102
|
-
* 是否上下翻转
|
|
103
|
-
*/
|
|
104
|
-
flipY?: boolean;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* 文件类型栅格数据源
|
|
108
|
-
*/
|
|
109
|
-
export interface RasterFileSource {
|
|
110
|
-
type: 'tif' | 'micaps4';
|
|
111
|
-
url: string;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* 参数类型栅格数据源
|
|
115
|
-
*/
|
|
116
|
-
export interface RasterParamsSource {
|
|
117
|
-
type: 'params';
|
|
118
|
-
params: RasterParams;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* 栅格数据源
|
|
122
|
-
*/
|
|
123
|
-
export type RasterSource = RasterFileSource | RasterParamsSource;
|
|
124
|
-
/**
|
|
125
|
-
* 栅格数据加载配置
|
|
126
|
-
*/
|
|
127
|
-
export interface RasterLoadOptions {
|
|
128
|
-
flipY?: boolean;
|
|
129
|
-
noData?: number;
|
|
130
|
-
valueScale?: number;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Raster query result reason
|
|
134
|
-
* 栅格查询结果原因
|
|
135
|
-
*/
|
|
136
|
-
export type RasterQueryReason = 'ok' | 'no-data' | 'out-of-bounds' | 'out-of-range';
|
|
137
|
-
/**
|
|
138
|
-
* Raster query coordinate
|
|
139
|
-
* 栅格查询坐标 (考虑到 crs -> simple 这里统一用 x,y 不用 lng,lat )
|
|
140
|
-
*/
|
|
141
|
-
export interface RasterQueryPoint {
|
|
142
|
-
x: number;
|
|
143
|
-
y: number;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Raster query result
|
|
147
|
-
* 栅格查询结果
|
|
148
|
-
*/
|
|
149
|
-
export interface RasterQueryResult {
|
|
150
|
-
x: number;
|
|
151
|
-
y: number;
|
|
152
|
-
/**
|
|
153
|
-
* 原始栅格值
|
|
154
|
-
*/
|
|
155
|
-
rawValue: number;
|
|
156
|
-
/**
|
|
157
|
-
* 栅格值 (正常数据时等于 rawValue * valueScale)
|
|
158
|
-
*/
|
|
159
|
-
value: number;
|
|
160
|
-
/**
|
|
161
|
-
* 当前栅格缩放值
|
|
162
|
-
*/
|
|
163
|
-
valueScale: number;
|
|
164
|
-
/**
|
|
165
|
-
* 栅格网格 X 坐标
|
|
166
|
-
*/
|
|
167
|
-
gridX: number;
|
|
168
|
-
/**
|
|
169
|
-
* 栅格网格 Y 坐标
|
|
170
|
-
*/
|
|
171
|
-
gridY: number;
|
|
172
|
-
/**
|
|
173
|
-
* 是否有效业务数据
|
|
174
|
-
*/
|
|
175
|
-
valid: boolean;
|
|
176
|
-
/**
|
|
177
|
-
* 是否能被当前 colorRange 显示
|
|
178
|
-
*/
|
|
179
|
-
visible: boolean;
|
|
180
|
-
/**
|
|
181
|
-
* 查询结果原因, 解释为什么有效/无效/不可见
|
|
182
|
-
*/
|
|
183
|
-
reason: RasterQueryReason;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Raster query options
|
|
187
|
-
* 栅格查询配置
|
|
188
|
-
*/
|
|
189
|
-
export interface RasterQueryOptions {
|
|
190
|
-
/**
|
|
191
|
-
* Visible value range, matching the renderer's color range.
|
|
192
|
-
* 当前可见值范围, 和渲染器使用的色标范围保持一致
|
|
193
|
-
*/
|
|
194
|
-
colorRange?: RasterColorRange | null;
|
|
195
|
-
/**
|
|
196
|
-
* Sampling mode used by query, matching the renderer's sample mode.
|
|
197
|
-
* 查询使用的采样模式, 和渲染器采样模式保持一致
|
|
198
|
-
*/
|
|
199
|
-
sampleMode?: RasterSampleMode;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Raster interaction callback.
|
|
203
|
-
* 栅格交互回调
|
|
204
|
-
*/
|
|
205
|
-
export type RasterQueryCallback = (result: RasterQueryResult) => void;
|
|
206
|
-
/**
|
|
207
|
-
* Raster query leaflet event.
|
|
208
|
-
* 栅格查询 Leaflet 事件对象
|
|
209
|
-
*/
|
|
210
|
-
export interface RasterQueryEvent extends L.LeafletEvent {
|
|
211
|
-
result: RasterQueryResult;
|
|
212
|
-
latlng: L.LatLng;
|
|
213
|
-
originalEvent: MouseEvent;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Raster tooltip options.
|
|
217
|
-
* 栅格 tooltip 配置, 只控制内置 UI
|
|
218
|
-
*/
|
|
219
|
-
export interface RasterTooltipOptions {
|
|
220
|
-
/**
|
|
221
|
-
* Whether built-in tooltip is enabled.
|
|
222
|
-
* 是否启用内置 tooltip
|
|
223
|
-
*/
|
|
224
|
-
enabled?: boolean;
|
|
225
|
-
/**
|
|
226
|
-
* Tooltip display position.
|
|
227
|
-
* tooltip显示位置, follow 跟随鼠标, fixed 固定在地图左下角
|
|
228
|
-
*/
|
|
229
|
-
position?: 'follow' | 'fixed';
|
|
230
|
-
/**
|
|
231
|
-
* Format tooltip content.
|
|
232
|
-
* 格式化 tooltip 内容
|
|
233
|
-
*/
|
|
234
|
-
formatter?: (result: RasterQueryResult) => string;
|
|
235
|
-
}
|
|
1
|
+
export type { RasterLeafletLayerCreateOptions, RasterQueryEvent, RasterTooltipOptions } from './leafletTypes';
|
|
2
|
+
export type { RasterClipMode, RasterClipOptions, RasterColorMode, RasterColorRange, RasterColorStop, RasterColorStopInput, RasterFileSource, RasterGrid, RasterLoadOptions, RasterParams, RasterParamsSource, RasterQueryCallback, RasterQueryOptions, RasterQueryPoint, RasterQueryReason, RasterQueryResult, RasterRendererCreateOptions, RasterRendererType, RasterRenderOptions, RasterSampleMode, RasterSource } from './rasterTypes';
|