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,5 @@
|
|
|
1
|
-
import type { RoadLayerCreateOptions } from './types';
|
|
1
|
+
import type { RoadLayerCreateOptions, RoadSampleCoordinateMode } from './types';
|
|
2
|
+
import type { RasterColorMode, RasterSampleMode } from '../raster-overlay';
|
|
2
3
|
/**
|
|
3
4
|
* Normalized road layer options.
|
|
4
5
|
* 规范化后的道路图层参数
|
|
@@ -6,6 +7,9 @@ import type { RoadLayerCreateOptions } from './types';
|
|
|
6
7
|
export interface NormalizedRoadLayerOptions extends RoadLayerCreateOptions {
|
|
7
8
|
lineWidth: number;
|
|
8
9
|
opacity: number;
|
|
10
|
+
colorMode: RasterColorMode;
|
|
11
|
+
sampleMode: RasterSampleMode;
|
|
12
|
+
sampleCoordinateMode: RoadSampleCoordinateMode;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* Normalize road layer create options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x27a974,_0xb2889a){const _0x33e4d4=_0x43d9,_0x53ce82=_0x27a974();while(!![]){try{const _0x4941b9=parseInt(_0x33e4d4(0x7b))/0x1*(-parseInt(_0x33e4d4(0x7c))/0x2)+-parseInt(_0x33e4d4(0x6f))/0x3+-parseInt(_0x33e4d4(0x80))/0x4*(-parseInt(_0x33e4d4(0x82))/0x5)+-parseInt(_0x33e4d4(0x7d))/0x6*(parseInt(_0x33e4d4(0x7f))/0x7)+parseInt(_0x33e4d4(0x71))/0x8*(-parseInt(_0x33e4d4(0x86))/0x9)+-parseInt(_0x33e4d4(0x7e))/0xa+-parseInt(_0x33e4d4(0x84))/0xb*(-parseInt(_0x33e4d4(0x76))/0xc);if(_0x4941b9===_0xb2889a)break;else _0x53ce82['push'](_0x53ce82['shift']());}catch(_0x292832){_0x53ce82['push'](_0x53ce82['shift']());}}}(_0x3615,0x3e007));export const normalizeRoadLayerOptions=_0x891d4d=>{const _0x546247=_0x43d9;return validateRoadLayerOptions(_0x891d4d),{..._0x891d4d,'lineWidth':_0x891d4d[_0x546247(0x77)]??0x3,'opacity':_0x891d4d['opacity']??0x1,'colorMode':_0x891d4d[_0x546247(0x75)]??_0x546247(0x73),'sampleMode':_0x891d4d['sampleMode']??'interpolate','sampleCoordinateMode':_0x891d4d[_0x546247(0x7a)]??_0x546247(0x6e)};};function _0x43d9(_0x32d1c6,_0x308d58){const _0x3615af=_0x3615();return _0x43d9=function(_0x43d9d5,_0x25c147){_0x43d9d5=_0x43d9d5-0x6e;let _0x151ebd=_0x3615af[_0x43d9d5];return _0x151ebd;},_0x43d9(_0x32d1c6,_0x308d58);}const validateRoadLayerOptions=_0x2fe470=>{const _0x40227f=_0x43d9;if(_0x2fe470[_0x40227f(0x85)]&&_0x2fe470[_0x40227f(0x6e)])throw new Error(_0x40227f(0x70));if(!_0x2fe470[_0x40227f(0x85)]&&!_0x2fe470[_0x40227f(0x6e)])throw new Error('Road\x20layer\x20options\x20require\x20grid\x20or\x20source.\x20道路图层参数必须传入\x20grid\x20或\x20source');if(_0x2fe470[_0x40227f(0x81)][_0x40227f(0x83)]===0x0)throw new Error(_0x40227f(0x78));if(_0x2fe470[_0x40227f(0x77)]!==undefined&&(!Number['isFinite'](_0x2fe470[_0x40227f(0x77)])||_0x2fe470[_0x40227f(0x77)]<0x0))throw new Error(_0x40227f(0x79));if(_0x2fe470[_0x40227f(0x87)]!==undefined&&(!Number[_0x40227f(0x74)](_0x2fe470[_0x40227f(0x87)])||_0x2fe470[_0x40227f(0x87)]<0x0||_0x2fe470['opacity']>0x1))throw new Error(_0x40227f(0x72));};function _0x3615(){const _0x9ea413=['371273pbikpn','2TDYuPm','174MgUgCq','3288930LuDUjI','61901isCoqW','28rhBFtA','colorStops','1375glLFRB','length','299563XvGkON','grid','333bFKbpN','opacity','source','224934ToPEfB','Road\x20layer\x20options\x20cannot\x20use\x20grid\x20and\x20source\x20at\x20the\x20same\x20time.\x20道路图层参数不能同时传入\x20grid\x20和\x20source','63976tfydGo','Road\x20layer\x20opacity\x20must\x20be\x20between\x200\x20and\x201.\x20道路图层\x20opacity\x20必须在\x200\x20到\x201\x20之间','step','isFinite','colorMode','696LSfSTH','lineWidth','Road\x20layer\x20colorStops\x20cannot\x20be\x20empty.\x20道路图层\x20colorStops\x20不能为空','Road\x20layer\x20lineWidth\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x200.\x20道路图层\x20lineWidth\x20必须大于或等于\x200','sampleCoordinateMode'];_0x3615=function(){return _0x9ea413;};return _0x3615();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x4b5f(_0x56e9ea,_0x467f25){var _0x5015d0=_0x5015();return _0x4b5f=function(_0x4b5fe7,_0x3a8f99){_0x4b5fe7=_0x4b5fe7-0xe5;var _0x14bf10=_0x5015d0[_0x4b5fe7];return _0x14bf10;},_0x4b5f(_0x56e9ea,_0x467f25);}(function(_0x50bca1,_0x5f4bde){var _0x1b26bd=_0x4b5f,_0x59189d=_0x50bca1();while(!![]){try{var _0x9cd0d5=-parseInt(_0x1b26bd(0xe7))/0x1+parseInt(_0x1b26bd(0xea))/0x2*(-parseInt(_0x1b26bd(0xed))/0x3)+-parseInt(_0x1b26bd(0xe9))/0x4*(parseInt(_0x1b26bd(0xf0))/0x5)+parseInt(_0x1b26bd(0xe8))/0x6*(parseInt(_0x1b26bd(0xe5))/0x7)+parseInt(_0x1b26bd(0xec))/0x8*(-parseInt(_0x1b26bd(0xee))/0x9)+parseInt(_0x1b26bd(0xef))/0xa+parseInt(_0x1b26bd(0xe6))/0xb*(parseInt(_0x1b26bd(0xeb))/0xc);if(_0x9cd0d5===_0x5f4bde)break;else _0x59189d['push'](_0x59189d['shift']());}catch(_0x1c415c){_0x59189d['push'](_0x59189d['shift']());}}}(_0x5015,0xd7b7b));export{WebgpuRoadRenderer}from'./webgpuRoadRenderer';function _0x5015(){var _0x88df74=['36446oboNHR','118836ogcPyu','88kyCFOy','243SVuDBQ','693864hdBreR','11705610crMTRn','5QwsmyG','6134002wzrMsc','3817VsDvzD','884557HZxOaX','6VvAEFv','5563732UbPQtv'];_0x5015=function(){return _0x88df74;};return _0x5015();}export{Webgl2RoadRenderer}from'./webgl2RoadRenderer';export{RoadRenderState}from'./roadRenderState';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { MapRenderer } from '../../rendering';
|
|
2
|
+
import type { GpuRendererBackend } from '../../rendering';
|
|
3
|
+
import type { ColorMode, ColorRange, ColorStop, GridData, SampleMode } from '../../shared/visualization';
|
|
4
|
+
import type { RoadMesh } from '../types';
|
|
5
|
+
import type { ClipMode } from '../../shared/coverage';
|
|
6
|
+
import type { PolygonMeshInput } from '../../shared/polygon';
|
|
7
|
+
/**
|
|
8
|
+
* Common interface implemented by Road renderers.
|
|
9
|
+
* 道路渲染器实现的公共接口。
|
|
10
|
+
*/
|
|
11
|
+
export interface RoadRenderer<TBackend extends GpuRendererBackend = GpuRendererBackend> extends MapRenderer<TBackend> {
|
|
12
|
+
/**
|
|
13
|
+
* Replace the Road mesh.
|
|
14
|
+
* 替换道路 mesh。
|
|
15
|
+
*/
|
|
16
|
+
setMesh(mesh: RoadMesh): void;
|
|
17
|
+
/**
|
|
18
|
+
* Replace the grid sampled while coloring Roads.
|
|
19
|
+
* 替换道路染色时采样的网格。
|
|
20
|
+
*/
|
|
21
|
+
setGrid(grid: GridData): void;
|
|
22
|
+
/**
|
|
23
|
+
* Replace normalized color stops.
|
|
24
|
+
* 替换归一化色标。
|
|
25
|
+
*/
|
|
26
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
27
|
+
/**
|
|
28
|
+
* Set or clear the visible value range.
|
|
29
|
+
* 设置或清除可见数据范围。
|
|
30
|
+
*/
|
|
31
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
32
|
+
/**
|
|
33
|
+
* Set Road opacity.
|
|
34
|
+
* 设置道路透明度。
|
|
35
|
+
*/
|
|
36
|
+
setOpacity(opacity: number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Set Road width in CSS pixels.
|
|
39
|
+
* 设置以 CSS 像素为单位的道路线宽。
|
|
40
|
+
*/
|
|
41
|
+
setLineWidth(lineWidth: number): void;
|
|
42
|
+
/**
|
|
43
|
+
* Set the color mapping mode.
|
|
44
|
+
* 设置颜色映射模式。
|
|
45
|
+
*/
|
|
46
|
+
setColorMode(colorMode: ColorMode): void;
|
|
47
|
+
/**
|
|
48
|
+
* Set the grid sampling mode.
|
|
49
|
+
* 设置网格采样模式。
|
|
50
|
+
*/
|
|
51
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
52
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
53
|
+
setClipMode(mode: ClipMode): void;
|
|
54
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,137 @@
|
|
|
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
|
+
import type { RoadMesh } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* Owns backend-independent Road rendering state.
|
|
7
|
+
* 管理与渲染后端无关的道路渲染状态。
|
|
8
|
+
*/
|
|
9
|
+
export declare class RoadRenderState {
|
|
10
|
+
private currentMesh;
|
|
11
|
+
private currentGrid;
|
|
12
|
+
private currentColorStops;
|
|
13
|
+
private currentColorStopArrays;
|
|
14
|
+
private currentColorRange;
|
|
15
|
+
private currentOpacity;
|
|
16
|
+
private currentLineWidth;
|
|
17
|
+
private currentColorMode;
|
|
18
|
+
private currentSampleMode;
|
|
19
|
+
private currentMeshRevision;
|
|
20
|
+
private currentGridRevision;
|
|
21
|
+
private currentColorStopsRevision;
|
|
22
|
+
private currentClipMode;
|
|
23
|
+
private currentClipMesh;
|
|
24
|
+
private currentClipRevision;
|
|
25
|
+
/**
|
|
26
|
+
* Return whether all resources required for drawing are available.
|
|
27
|
+
* 返回绘制所需的资源是否已经全部存在。
|
|
28
|
+
*/
|
|
29
|
+
get ready(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Return the current Road mesh.
|
|
32
|
+
* 返回当前道路 mesh。
|
|
33
|
+
*/
|
|
34
|
+
get mesh(): RoadMesh | null;
|
|
35
|
+
/**
|
|
36
|
+
* Return the current grid data.
|
|
37
|
+
* 返回当前网格数据。
|
|
38
|
+
*/
|
|
39
|
+
get grid(): GridData | null;
|
|
40
|
+
/**
|
|
41
|
+
* Return prepared color stops.
|
|
42
|
+
* 返回准备完成的色标。
|
|
43
|
+
*/
|
|
44
|
+
get colorStops(): readonly ColorStop[];
|
|
45
|
+
/**
|
|
46
|
+
* Return flattened color stop arrays.
|
|
47
|
+
* 返回扁平色标数组。
|
|
48
|
+
*/
|
|
49
|
+
get colorStopArrays(): ColorStopArrays | null;
|
|
50
|
+
/**
|
|
51
|
+
* Return the visible value range.
|
|
52
|
+
* 返回当前可见数据范围。
|
|
53
|
+
*/
|
|
54
|
+
get colorRange(): ColorRange | null;
|
|
55
|
+
/**
|
|
56
|
+
* Return the current opacity.
|
|
57
|
+
* 返回当前透明度。
|
|
58
|
+
*/
|
|
59
|
+
get opacity(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Return the Road width in CSS pixels.
|
|
62
|
+
* 返回以 CSS 像素为单位的道路线宽。
|
|
63
|
+
*/
|
|
64
|
+
get lineWidth(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Return the current color mapping mode.
|
|
67
|
+
* 返回当前颜色映射模式。
|
|
68
|
+
*/
|
|
69
|
+
get colorMode(): ColorMode;
|
|
70
|
+
/**
|
|
71
|
+
* Return the current grid sampling mode.
|
|
72
|
+
* 返回当前网格采样模式。
|
|
73
|
+
*/
|
|
74
|
+
get sampleMode(): SampleMode;
|
|
75
|
+
/**
|
|
76
|
+
* Return the Road mesh revision.
|
|
77
|
+
* 返回道路 mesh 修订版本。
|
|
78
|
+
*/
|
|
79
|
+
get meshRevision(): number;
|
|
80
|
+
/**
|
|
81
|
+
* Return the grid revision.
|
|
82
|
+
* 返回网格修订版本。
|
|
83
|
+
*/
|
|
84
|
+
get gridRevision(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Return the color stop revision.
|
|
87
|
+
* 返回色标修订版本。
|
|
88
|
+
*/
|
|
89
|
+
get colorStopsRevision(): number;
|
|
90
|
+
get clipMode(): ClipMode;
|
|
91
|
+
get clipMesh(): PolygonMesh | null;
|
|
92
|
+
get clipRevision(): number;
|
|
93
|
+
/**
|
|
94
|
+
* Replace the Road mesh.
|
|
95
|
+
* 替换道路 mesh。
|
|
96
|
+
*/
|
|
97
|
+
setMesh(mesh: RoadMesh): void;
|
|
98
|
+
/**
|
|
99
|
+
* Replace the sampled grid data.
|
|
100
|
+
* 替换用于采样的网格数据。
|
|
101
|
+
*/
|
|
102
|
+
setGrid(grid: GridData): void;
|
|
103
|
+
/**
|
|
104
|
+
* Replace color stops.
|
|
105
|
+
* 替换色标。
|
|
106
|
+
*/
|
|
107
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
108
|
+
/**
|
|
109
|
+
* Set the visible value range.
|
|
110
|
+
* 设置当前可见数据范围。
|
|
111
|
+
*/
|
|
112
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
113
|
+
/**
|
|
114
|
+
* Set renderer opacity.
|
|
115
|
+
* 设置渲染器透明度。
|
|
116
|
+
*/
|
|
117
|
+
setOpacity(opacity: number): void;
|
|
118
|
+
/**
|
|
119
|
+
* Set Road width in CSS pixels.
|
|
120
|
+
* 设置以 CSS 像素为单位的道路线宽。
|
|
121
|
+
*/
|
|
122
|
+
setLineWidth(lineWidth: number): void;
|
|
123
|
+
/**
|
|
124
|
+
* Set the color mapping mode.
|
|
125
|
+
* 设置颜色映射模式。
|
|
126
|
+
*/
|
|
127
|
+
setColorMode(colorMode: ColorMode): void;
|
|
128
|
+
/**
|
|
129
|
+
* Set the grid sampling mode.
|
|
130
|
+
* 设置网格采样模式。
|
|
131
|
+
*/
|
|
132
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
133
|
+
/** 设置或清除道路裁剪边界。 */
|
|
134
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
135
|
+
/** 切换道路裁剪模式。 */
|
|
136
|
+
setClipMode(mode: ClipMode): void;
|
|
137
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x2cafc8=_0x27ab;(function(_0x26b23d,_0x35bc05){const _0x4dd412=_0x27ab,_0x511786=_0x26b23d();while(!![]){try{const _0x7af381=-parseInt(_0x4dd412(0x174))/0x1+-parseInt(_0x4dd412(0x161))/0x2+-parseInt(_0x4dd412(0x162))/0x3+parseInt(_0x4dd412(0x181))/0x4*(-parseInt(_0x4dd412(0x188))/0x5)+-parseInt(_0x4dd412(0x179))/0x6*(-parseInt(_0x4dd412(0x159))/0x7)+parseInt(_0x4dd412(0x17f))/0x8+parseInt(_0x4dd412(0x15c))/0x9;if(_0x7af381===_0x35bc05)break;else _0x511786['push'](_0x511786['shift']());}catch(_0x3e86e1){_0x511786['push'](_0x511786['shift']());}}}(_0x18f0,0xd37ef));import{createPolygonMesh}from'../../shared/polygon';function _0x27ab(_0x39f7cb,_0x22522c){const _0x18f09b=_0x18f0();return _0x27ab=function(_0x27abbd,_0x4694f1){_0x27abbd=_0x27abbd-0x159;let _0x283c8e=_0x18f09b[_0x27abbd];return _0x283c8e;},_0x27ab(_0x39f7cb,_0x22522c);}import{clampOpacity,prepareColorStops,validateColorRange,validateGridData}from'../../shared/visualization';function _0x18f0(){const _0x196caa=['clipMode','interpolate','displayYOffset','currentColorStops','setColorMode','currentLineWidth','isFinite','vertices','clipMesh','triangleCount','colorMode','setClip','861922XtOmta','sampleMode','opacity','arrays','isInteger','18PTQUBd','sampleYOffset','vertexCount','Road\x20line\x20width\x20must\x20be\x20a\x20finite\x20number\x20greater\x20than\x20or\x20equal\x20to\x20zero:\x20','currentColorStopArrays','currentClipMesh','4323968VMKkMA','segmentStartDisplayYOffset','2123236fEMyoL','启用道路裁剪前必须先设置边界数据。','sampleXOffset','Road\x20mesh\x20vertex\x20layout\x20does\x20not\x20match\x20the\x20fixed\x20nine-float\x20layout.\x20道路\x20mesh\x20顶点布局与固定九浮点布局不匹配。','colorStopArrays','currentClipRevision','setMesh','15dYsutZ','gridRevision','.\x20道路\x20mesh\x20三角形数量与顶点数量不匹配。','none','currentMesh','.\x20道路\x20mesh\x20数据数量与顶点数量不匹配。','currentOpacity','currentSampleMode','currentGrid','.\x20道路线宽必须是大于或等于零的有限数值。','ready','colorStopsRevision','segmentEndDisplayXOffset','Road\x20mesh\x20requires\x20','grid','setColorStops','setColorRange','segmentEndDisplayYOffset','currentColorMode','colorStops','setLineWidth','localIndexOffset','currentColorStopsRevision','1016589qdeDbL','Road\x20mesh\x20vertexCount\x20must\x20be\x20a\x20non-negative\x20multiple\x20of\x20three:\x20','clipRevision','39324627aPTUoF','currentClipMode','\x20float\x20values\x20but\x20received\x20','setOpacity','setSampleMode','2103062rVAQgk','2920239uXtVph','Road\x20mesh\x20triangleCount\x20does\x20not\x20match\x20vertexCount:\x20','lineWidth','segmentStartDisplayXOffset','currentMeshRevision','meshRevision'];_0x18f0=function(){return _0x196caa;};return _0x18f0();}import{ROAD_MESH_VERTEX_LAYOUT,ROAD_VERTEX_FLOAT_COUNT}from'../roadMesh';export class RoadRenderState{['currentMesh']=null;['currentGrid']=null;[_0x2cafc8(0x16b)]=[];[_0x2cafc8(0x17d)]=null;['currentColorRange']=null;['currentOpacity']=0x1;[_0x2cafc8(0x16d)]=0x3;['currentColorMode']='step';[_0x2cafc8(0x18f)]=_0x2cafc8(0x169);[_0x2cafc8(0x166)]=0x0;['currentGridRevision']=0x0;[_0x2cafc8(0x19e)]=0x0;[_0x2cafc8(0x15d)]=_0x2cafc8(0x18b);['currentClipMesh']=null;[_0x2cafc8(0x186)]=0x0;get[_0x2cafc8(0x192)](){return this['currentMesh']!==null&&this['currentGrid']!==null&&this['currentColorStopArrays']!==null;}get['mesh'](){const _0x54d7ba=_0x2cafc8;return this[_0x54d7ba(0x18c)];}get[_0x2cafc8(0x196)](){return this['currentGrid'];}get[_0x2cafc8(0x19b)](){return this['currentColorStops'];}get[_0x2cafc8(0x185)](){return this['currentColorStopArrays'];}get['colorRange'](){return this['currentColorRange'];}get[_0x2cafc8(0x176)](){const _0xdaa26d=_0x2cafc8;return this[_0xdaa26d(0x18e)];}get[_0x2cafc8(0x164)](){return this['currentLineWidth'];}get[_0x2cafc8(0x172)](){const _0x61cd8e=_0x2cafc8;return this[_0x61cd8e(0x19a)];}get[_0x2cafc8(0x175)](){const _0x599b51=_0x2cafc8;return this[_0x599b51(0x18f)];}get[_0x2cafc8(0x167)](){const _0x542192=_0x2cafc8;return this[_0x542192(0x166)];}get[_0x2cafc8(0x189)](){return this['currentGridRevision'];}get[_0x2cafc8(0x193)](){const _0x4ccd0e=_0x2cafc8;return this[_0x4ccd0e(0x19e)];}get[_0x2cafc8(0x168)](){const _0x525790=_0x2cafc8;return this[_0x525790(0x15d)];}get[_0x2cafc8(0x170)](){const _0x3e3f23=_0x2cafc8;return this[_0x3e3f23(0x17e)];}get[_0x2cafc8(0x15b)](){return this['currentClipRevision'];}[_0x2cafc8(0x187)](_0x16ae20){const _0x3f90d0=_0x2cafc8;validateRoadMesh(_0x16ae20),this[_0x3f90d0(0x18c)]=_0x16ae20,this['currentMeshRevision']+=0x1;}['setGrid'](_0x5d43db){const _0x277758=_0x2cafc8;validateGridData(_0x5d43db),this[_0x277758(0x190)]=_0x5d43db,this['currentGridRevision']+=0x1;}[_0x2cafc8(0x197)](_0x446860){const _0x23ef16=_0x2cafc8,_0x4f4328=prepareColorStops(_0x446860);this[_0x23ef16(0x16b)]=_0x4f4328['colorStops'],this[_0x23ef16(0x17d)]=_0x4f4328[_0x23ef16(0x177)],this[_0x23ef16(0x19e)]+=0x1;}[_0x2cafc8(0x198)](_0x39dae2){if(_0x39dae2)validateColorRange(_0x39dae2);this['currentColorRange']=_0x39dae2?{..._0x39dae2}:null;}[_0x2cafc8(0x15f)](_0x340f96){this['currentOpacity']=clampOpacity(_0x340f96);}[_0x2cafc8(0x19c)](_0x206baa){const _0x239475=_0x2cafc8;if(!Number[_0x239475(0x16e)](_0x206baa)||_0x206baa<0x0)throw new Error(_0x239475(0x17c)+_0x206baa+_0x239475(0x191));this['currentLineWidth']=_0x206baa;}[_0x2cafc8(0x16c)](_0x499305){const _0x15eae5=_0x2cafc8;this[_0x15eae5(0x19a)]=_0x499305;}[_0x2cafc8(0x160)](_0x4cfdbe){const _0x2a60d8=_0x2cafc8;this[_0x2a60d8(0x18f)]=_0x4cfdbe;}[_0x2cafc8(0x173)](_0x10f32a,_0x521e66=this[_0x2cafc8(0x15d)]){const _0x5b4813=_0x2cafc8;this['currentClipMesh']=_0x10f32a?createPolygonMesh(_0x10f32a):null,this[_0x5b4813(0x15d)]=_0x10f32a?_0x521e66:_0x5b4813(0x18b),this[_0x5b4813(0x186)]++;}['setClipMode'](_0x3b1a0d){const _0x6ed8db=_0x2cafc8;if(_0x3b1a0d!==_0x6ed8db(0x18b)&&!this['currentClipMesh'])throw new Error(_0x6ed8db(0x182));this[_0x6ed8db(0x15d)]=_0x3b1a0d;}}const validateRoadMesh=_0x5d34fb=>{const _0x347597=_0x2cafc8;if(!Number[_0x347597(0x178)](_0x5d34fb['vertexCount'])||_0x5d34fb[_0x347597(0x17b)]<0x0||_0x5d34fb[_0x347597(0x17b)]%0x3!==0x0)throw new Error(_0x347597(0x15a)+_0x5d34fb[_0x347597(0x17b)]+'.\x20道路\x20mesh\x20顶点数量必须是三的非负整数倍。');const _0x41f840=_0x5d34fb[_0x347597(0x17b)]*ROAD_VERTEX_FLOAT_COUNT;if(_0x5d34fb[_0x347597(0x16f)]['length']!==_0x41f840)throw new Error(_0x347597(0x195)+_0x41f840+_0x347597(0x15e)+_0x5d34fb[_0x347597(0x16f)]['length']+_0x347597(0x18d));if(_0x5d34fb[_0x347597(0x171)]!==_0x5d34fb[_0x347597(0x17b)]/0x3)throw new Error(_0x347597(0x163)+_0x5d34fb['triangleCount']+_0x347597(0x18a));const _0x700527=_0x5d34fb['layout'];if(_0x700527['stride']!==ROAD_VERTEX_FLOAT_COUNT||_0x700527['displayXOffset']!==ROAD_MESH_VERTEX_LAYOUT['displayXOffset']||_0x700527[_0x347597(0x16a)]!==ROAD_MESH_VERTEX_LAYOUT['displayYOffset']||_0x700527[_0x347597(0x165)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x165)]||_0x700527[_0x347597(0x180)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x180)]||_0x700527[_0x347597(0x194)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x194)]||_0x700527[_0x347597(0x199)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x199)]||_0x700527[_0x347597(0x183)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x183)]||_0x700527[_0x347597(0x17a)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x17a)]||_0x700527[_0x347597(0x19d)]!==ROAD_MESH_VERTEX_LAYOUT[_0x347597(0x19d)])throw new Error(_0x347597(0x184));};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { RendererReleaseReason, Webgl2FrameContext } from '../../rendering';
|
|
2
|
+
import { BaseWebgl2Renderer } from '../../rendering';
|
|
3
|
+
import type { ClipMode } from '../../shared/coverage';
|
|
4
|
+
import type { PolygonMeshInput } from '../../shared/polygon';
|
|
5
|
+
import type { ColorMode, ColorRange, ColorStop, GridData, SampleMode } from '../../shared/visualization';
|
|
6
|
+
import type { RoadMesh } from '../types';
|
|
7
|
+
import type { RoadRenderer } from './renderer';
|
|
8
|
+
import { RoadRenderState } from './roadRenderState';
|
|
9
|
+
/** 通过公共 WebGL2 生命周期渲染网格染色道路和边界裁剪。 */
|
|
10
|
+
export declare class Webgl2RoadRenderer extends BaseWebgl2Renderer implements RoadRenderer<'webgl2'> {
|
|
11
|
+
private readonly roadState;
|
|
12
|
+
private program;
|
|
13
|
+
private vertexBuffer;
|
|
14
|
+
private visualizationResources;
|
|
15
|
+
private coverageResources;
|
|
16
|
+
private appliedMeshRevision;
|
|
17
|
+
private appliedGridRevision;
|
|
18
|
+
private appliedColorStopsRevision;
|
|
19
|
+
private appliedClipRevision;
|
|
20
|
+
constructor(roadState?: RoadRenderState);
|
|
21
|
+
setMesh(mesh: RoadMesh): void;
|
|
22
|
+
setGrid(grid: GridData): void;
|
|
23
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
24
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
25
|
+
setOpacity(opacity: number): void;
|
|
26
|
+
setLineWidth(lineWidth: number): void;
|
|
27
|
+
setColorMode(colorMode: ColorMode): void;
|
|
28
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
29
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
30
|
+
setClipMode(mode: ClipMode): void;
|
|
31
|
+
protected createFeatureResources(): void;
|
|
32
|
+
protected releaseFeatureResources(_reason: RendererReleaseReason): void;
|
|
33
|
+
protected prepareFrame(frame: Webgl2FrameContext): void;
|
|
34
|
+
protected encodePrePasses(frame: Webgl2FrameContext): void;
|
|
35
|
+
protected encodeMainPass(frame: Webgl2FrameContext): void;
|
|
36
|
+
private syncResources;
|
|
37
|
+
private bindRoadGeometry;
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x13b0fd=_0x2c5e;(function(_0x49eff2,_0x2542b6){const _0x113db8=_0x2c5e,_0x2b7cff=_0x49eff2();while(!![]){try{const _0x3f17c3=-parseInt(_0x113db8(0x1da))/0x1+parseInt(_0x113db8(0x1de))/0x2+-parseInt(_0x113db8(0x1f8))/0x3+-parseInt(_0x113db8(0x1c3))/0x4+-parseInt(_0x113db8(0x1ed))/0x5+-parseInt(_0x113db8(0x1d5))/0x6+parseInt(_0x113db8(0x1be))/0x7*(parseInt(_0x113db8(0x1f6))/0x8);if(_0x3f17c3===_0x2542b6)break;else _0x2b7cff['push'](_0x2b7cff['shift']());}catch(_0x4a0f6b){_0x2b7cff['push'](_0x2b7cff['shift']());}}}(_0x1afe,0x7c383));function _0x2c5e(_0x4be106,_0x387655){const _0x1afead=_0x1afe();return _0x2c5e=function(_0x2c5e4a,_0x3d5980){_0x2c5e4a=_0x2c5e4a-0x1bc;let _0x4e57b6=_0x1afead[_0x2c5e4a];return _0x4e57b6;},_0x2c5e(_0x4be106,_0x387655);}import{BaseWebgl2Renderer,Webgl2CoverageResources,Webgl2VisualizationResources}from'../../rendering';import{createWebgl2CoordinateShaderSource}from'../../shared/coordinate-shader/webgl2';import{createWebgl2VisualizationFragmentSource}from'../../shared/visualization/shader/webgl2';import{ROAD_VERTEX_FLOAT_COUNT}from'../roadMesh';import{RoadRenderState}from'./roadRenderState';import _0x5f3511 from'./shader/webgl2/roadFragment.frag?raw';import _0x170568 from'./shader/webgl2/roadVertex.vert?raw';function _0x1afe(){const _0x351b69=['opacity','2541720IRXdee','prepareFrame','vertexBuffer','drawArrays','enableVertexAttribArray','appliedGridRevision','encode','canvasWidth','STENCIL_TEST','120rBjbYv','meshRevision','1491627fnRGNm','vertices','clipMode','createFeatureResources','lineWidth','program','updateGrid','bindRoadGeometry','appliedClipRevision','bind','visualizationResources','setOpacity','grid','setMesh','1332779VZdsPR','releaseFeatureResources','bufferData','getGl','setClip','586996ieUAGV','colorStops','vertexCount','sampleMode','FLOAT','setGrid','getCrs','TRIANGLES','bindBuffer','resize','appliedColorStopsRevision','STATIC_DRAW','setLineWidth','setColorStops','canvasHeight','updateColorStops','ARRAY_BUFFER','appliedMeshRevision','4937724zEUjGs','clipRevision','createProgram','创建\x20WebGL2\x20道路顶点\x20Buffer\x20失败。','mask','486973RWbHbB','destroy','stencil','clipMesh','230154njkQiO','setClipMode','gridRevision','colorRange','viewport','setColorRange','mesh','coverageResources','encodePrePasses','roadState','createBuffer','enableStencil','setColorMode','setSampleMode'];_0x1afe=function(){return _0x351b69;};return _0x1afe();}export class Webgl2RoadRenderer extends BaseWebgl2Renderer{[_0x13b0fd(0x1e7)];[_0x13b0fd(0x1fd)]=null;['vertexBuffer']=null;[_0x13b0fd(0x202)]=null;[_0x13b0fd(0x1e5)]=null;[_0x13b0fd(0x1d4)]=-0x1;[_0x13b0fd(0x1f2)]=-0x1;[_0x13b0fd(0x1cd)]=-0x1;[_0x13b0fd(0x200)]=-0x1;constructor(_0x500349=new RoadRenderState()){const _0x2ca708=_0x13b0fd;super(),this[_0x2ca708(0x1e7)]=_0x500349;}[_0x13b0fd(0x1bd)](_0x24fa13){const _0x5daea0=_0x13b0fd;this[_0x5daea0(0x1e7)][_0x5daea0(0x1bd)](_0x24fa13);}[_0x13b0fd(0x1c8)](_0x1f0df2){const _0x2fb046=_0x13b0fd;this[_0x2fb046(0x1e7)][_0x2fb046(0x1c8)](_0x1f0df2);}[_0x13b0fd(0x1d0)](_0x48c0cf){const _0x1c6be4=_0x13b0fd;this[_0x1c6be4(0x1e7)]['setColorStops'](_0x48c0cf);}[_0x13b0fd(0x1e3)](_0x4a7c7d){const _0x56e6d6=_0x13b0fd;this[_0x56e6d6(0x1e7)]['setColorRange'](_0x4a7c7d);}[_0x13b0fd(0x203)](_0x47c18c){const _0x4972e4=_0x13b0fd;this[_0x4972e4(0x1e7)][_0x4972e4(0x203)](_0x47c18c);}[_0x13b0fd(0x1cf)](_0x12cee2){const _0x3db3d0=_0x13b0fd;this['roadState'][_0x3db3d0(0x1cf)](_0x12cee2);}[_0x13b0fd(0x1ea)](_0x2b3dac){const _0x5655af=_0x13b0fd;this['roadState'][_0x5655af(0x1ea)](_0x2b3dac);}[_0x13b0fd(0x1eb)](_0x552755){const _0x21d9f5=_0x13b0fd;this[_0x21d9f5(0x1e7)]['setSampleMode'](_0x552755);}['setClip'](_0x4b7872,_0x2e6103){const _0x2b1f2b=_0x13b0fd;this[_0x2b1f2b(0x1e7)][_0x2b1f2b(0x1c2)](_0x4b7872,_0x2e6103);}[_0x13b0fd(0x1df)](_0x3199cc){const _0x471b70=_0x13b0fd;this[_0x471b70(0x1e7)]['setClipMode'](_0x3199cc);}[_0x13b0fd(0x1fb)](){const _0x4afb17=_0x13b0fd,_0x42310d=this['getGl']();this[_0x4afb17(0x1fd)]=this[_0x4afb17(0x1d7)](createWebgl2CoordinateShaderSource(_0x170568,this[_0x4afb17(0x1c9)]()),createWebgl2VisualizationFragmentSource(_0x5f3511)),this[_0x4afb17(0x1ef)]=_0x42310d[_0x4afb17(0x1e8)]();if(!this[_0x4afb17(0x1ef)])throw new Error(_0x4afb17(0x1d8));this[_0x4afb17(0x202)]=new Webgl2VisualizationResources(_0x42310d),this['coverageResources']=new Webgl2CoverageResources(_0x42310d,this[_0x4afb17(0x1c9)](),(_0x3c10b7,_0x13038c)=>this[_0x4afb17(0x1d7)](_0x3c10b7,_0x13038c)),this[_0x4afb17(0x1d4)]=-0x1,this[_0x4afb17(0x1f2)]=-0x1,this[_0x4afb17(0x1cd)]=-0x1,this[_0x4afb17(0x200)]=-0x1,this['syncResources']();}[_0x13b0fd(0x1bf)](_0x57996a){const _0x5c6d66=_0x13b0fd,_0xaad378=this[_0x5c6d66(0x1c1)]();_0xaad378['deleteProgram'](this[_0x5c6d66(0x1fd)]),_0xaad378['deleteBuffer'](this[_0x5c6d66(0x1ef)]),this[_0x5c6d66(0x202)]?.[_0x5c6d66(0x1db)](),this[_0x5c6d66(0x1e5)]?.[_0x5c6d66(0x1db)](),this[_0x5c6d66(0x1fd)]=null,this['vertexBuffer']=null,this[_0x5c6d66(0x202)]=null,this[_0x5c6d66(0x1e5)]=null;}[_0x13b0fd(0x1ee)](_0x37a1f1){const _0x18c0a3=_0x13b0fd;this['syncResources'](),this[_0x18c0a3(0x1e5)]?.[_0x18c0a3(0x1cc)](_0x37a1f1[_0x18c0a3(0x1e2)][_0x18c0a3(0x1f4)],_0x37a1f1[_0x18c0a3(0x1e2)][_0x18c0a3(0x1d1)]);}[_0x13b0fd(0x1e6)](_0x51be28){const _0x391838=_0x13b0fd;this[_0x391838(0x1e5)]?.[_0x391838(0x1f3)](this['roadState'][_0x391838(0x1fa)],_0x51be28[_0x391838(0x1e2)]);}['encodeMainPass'](_0x3e7fea){const _0x5bf11a=_0x13b0fd,_0x8c0740=this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1e4)],_0x377322=this['roadState'][_0x5bf11a(0x1bc)];if(!this[_0x5bf11a(0x1e7)]['ready']||!_0x8c0740||!_0x377322||!this[_0x5bf11a(0x1fd)]||!this[_0x5bf11a(0x1ef)]||!this[_0x5bf11a(0x202)])return;this[_0x5bf11a(0x202)][_0x5bf11a(0x201)](this[_0x5bf11a(0x1fd)],{'viewport':_0x3e7fea[_0x5bf11a(0x1e2)],'grid':_0x377322,'colorStops':this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1c4)],'colorRange':this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1e1)],'opacity':this['roadState'][_0x5bf11a(0x1ec)],'colorMode':this['roadState']['colorMode'],'sampleMode':this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1c6)],'lineWidth':this['roadState'][_0x5bf11a(0x1fc)],'maskEnabled':this['roadState'][_0x5bf11a(0x1fa)]==='mask'});if(this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1fa)]==='mask'&&this[_0x5bf11a(0x1e5)]?.[_0x5bf11a(0x1d9)])this[_0x5bf11a(0x202)]['bindMask'](this['program'],this['coverageResources']['mask']);if(this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1fa)]===_0x5bf11a(0x1dc)||this[_0x5bf11a(0x1e7)][_0x5bf11a(0x1fa)]==='direct')this[_0x5bf11a(0x1e5)]?.[_0x5bf11a(0x1e9)]();this[_0x5bf11a(0x1ff)](),_0x3e7fea['gl'][_0x5bf11a(0x1f0)](_0x3e7fea['gl'][_0x5bf11a(0x1ca)],0x0,_0x8c0740[_0x5bf11a(0x1c5)]),_0x3e7fea['gl']['disable'](_0x3e7fea['gl'][_0x5bf11a(0x1f5)]);}['syncResources'](){const _0x453462=_0x13b0fd,_0x3c0fc5=this[_0x453462(0x1c1)]();this['appliedMeshRevision']!==this[_0x453462(0x1e7)][_0x453462(0x1f7)]&&this[_0x453462(0x1ef)]&&this[_0x453462(0x1e7)]['mesh']&&(_0x3c0fc5[_0x453462(0x1cb)](_0x3c0fc5['ARRAY_BUFFER'],this['vertexBuffer']),_0x3c0fc5[_0x453462(0x1c0)](_0x3c0fc5[_0x453462(0x1d3)],this[_0x453462(0x1e7)]['mesh'][_0x453462(0x1f9)],_0x3c0fc5[_0x453462(0x1ce)]),this[_0x453462(0x1d4)]=this[_0x453462(0x1e7)][_0x453462(0x1f7)]),this[_0x453462(0x1f2)]!==this[_0x453462(0x1e7)][_0x453462(0x1e0)]&&this[_0x453462(0x1e7)]['grid']&&(this['visualizationResources']?.[_0x453462(0x1fe)](this['roadState'][_0x453462(0x1bc)]),this['appliedGridRevision']=this[_0x453462(0x1e7)][_0x453462(0x1e0)]),this[_0x453462(0x1cd)]!==this['roadState']['colorStopsRevision']&&this[_0x453462(0x1e7)]['colorStopArrays']&&(this[_0x453462(0x202)]?.[_0x453462(0x1d2)](this['roadState']['colorStopArrays']),this['appliedColorStopsRevision']=this[_0x453462(0x1e7)]['colorStopsRevision']),this[_0x453462(0x200)]!==this['roadState'][_0x453462(0x1d6)]&&(this[_0x453462(0x1e5)]?.['updateMesh'](this[_0x453462(0x1e7)][_0x453462(0x1dd)]),this['appliedClipRevision']=this[_0x453462(0x1e7)][_0x453462(0x1d6)]);}[_0x13b0fd(0x1ff)](){const _0xdc971e=_0x13b0fd;if(!this[_0xdc971e(0x1ef)])return;const _0x12a66d=this['getGl'](),_0x4f7b8a=ROAD_VERTEX_FLOAT_COUNT*0x4;_0x12a66d[_0xdc971e(0x1cb)](_0x12a66d[_0xdc971e(0x1d3)],this[_0xdc971e(0x1ef)]);const _0x35f22e=[[0x0,0x2,0x0],[0x1,0x2,0x8],[0x2,0x2,0x10],[0x3,0x2,0x18],[0x4,0x1,0x20]];for(const [_0x2998ca,_0x4f14ab,_0x28b20e]of _0x35f22e){_0x12a66d[_0xdc971e(0x1f1)](_0x2998ca),_0x12a66d['vertexAttribPointer'](_0x2998ca,_0x4f14ab,_0x12a66d[_0xdc971e(0x1c7)],![],_0x4f7b8a,_0x28b20e);}}}
|
|
@@ -0,0 +1,134 @@
|
|
|
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 type { RoadMesh } from '../types';
|
|
8
|
+
import type { RoadRenderer } from './renderer';
|
|
9
|
+
import { RoadRenderState } from './roadRenderState';
|
|
10
|
+
/**
|
|
11
|
+
* Render grid-colored Roads through the shared WebGPU lifecycle.
|
|
12
|
+
* 通过公共 WebGPU 生命周期渲染网格染色道路。
|
|
13
|
+
*/
|
|
14
|
+
export declare class WebgpuRoadRenderer extends BaseWebgpuRenderer implements RoadRenderer<'webgpu'> {
|
|
15
|
+
private readonly roadState;
|
|
16
|
+
private readonly paramsData;
|
|
17
|
+
private pipeline;
|
|
18
|
+
private stencilPipeline;
|
|
19
|
+
private maskPipeline;
|
|
20
|
+
private vertexBuffer;
|
|
21
|
+
private paramsBuffer;
|
|
22
|
+
private bindGroup;
|
|
23
|
+
private stencilBindGroup;
|
|
24
|
+
private maskBindGroup;
|
|
25
|
+
private visualizationResources;
|
|
26
|
+
private coverageResources;
|
|
27
|
+
private appliedMeshRevision;
|
|
28
|
+
private appliedGridRevision;
|
|
29
|
+
private appliedColorStopsRevision;
|
|
30
|
+
private appliedClipRevision;
|
|
31
|
+
constructor(roadState?: RoadRenderState);
|
|
32
|
+
/**
|
|
33
|
+
* Replace the Road mesh.
|
|
34
|
+
* 替换道路 mesh。
|
|
35
|
+
*/
|
|
36
|
+
setMesh(mesh: RoadMesh): void;
|
|
37
|
+
/**
|
|
38
|
+
* Replace the grid sampled while coloring Roads.
|
|
39
|
+
* 替换道路染色时采样的网格。
|
|
40
|
+
*/
|
|
41
|
+
setGrid(grid: GridData): void;
|
|
42
|
+
/**
|
|
43
|
+
* Replace normalized color stops.
|
|
44
|
+
* 替换归一化色标。
|
|
45
|
+
*/
|
|
46
|
+
setColorStops(colorStops: readonly ColorStop[]): void;
|
|
47
|
+
/**
|
|
48
|
+
* Set or clear the visible value range.
|
|
49
|
+
* 设置或清除可见数据范围。
|
|
50
|
+
*/
|
|
51
|
+
setColorRange(colorRange: ColorRange | null): void;
|
|
52
|
+
/**
|
|
53
|
+
* Set Road opacity.
|
|
54
|
+
* 设置道路透明度。
|
|
55
|
+
*/
|
|
56
|
+
setOpacity(opacity: number): void;
|
|
57
|
+
/**
|
|
58
|
+
* Set Road width in CSS pixels.
|
|
59
|
+
* 设置以 CSS 像素为单位的道路线宽。
|
|
60
|
+
*/
|
|
61
|
+
setLineWidth(lineWidth: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* Set the color mapping mode.
|
|
64
|
+
* 设置颜色映射模式。
|
|
65
|
+
*/
|
|
66
|
+
setColorMode(colorMode: ColorMode): void;
|
|
67
|
+
/**
|
|
68
|
+
* Set the grid sampling mode.
|
|
69
|
+
* 设置网格采样模式。
|
|
70
|
+
*/
|
|
71
|
+
setSampleMode(sampleMode: SampleMode): void;
|
|
72
|
+
setClip(data: PolygonMeshInput | null, mode?: ClipMode): void;
|
|
73
|
+
setClipMode(mode: ClipMode): void;
|
|
74
|
+
/**
|
|
75
|
+
* Create Road resources owned by the active WebGPU device.
|
|
76
|
+
* 创建当前 WebGPU device 拥有的道路资源。
|
|
77
|
+
*/
|
|
78
|
+
protected createFeatureResources(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Release resources owned by the Road renderer.
|
|
81
|
+
* 释放道路渲染器拥有的资源。
|
|
82
|
+
*/
|
|
83
|
+
protected releaseFeatureResources(_reason: RendererReleaseReason): void;
|
|
84
|
+
/**
|
|
85
|
+
* Synchronize changed state and write frame parameters.
|
|
86
|
+
* 同步发生变化的状态并写入当前帧参数。
|
|
87
|
+
*/
|
|
88
|
+
protected prepareFrame(frame: WebgpuFrameContext): void;
|
|
89
|
+
protected handleResize(width: number, height: number): void;
|
|
90
|
+
protected encodePrePasses(frame: WebgpuFrameContext): void;
|
|
91
|
+
protected createMainPassDescriptor(frame: WebgpuFrameContext): GPURenderPassDescriptor;
|
|
92
|
+
/**
|
|
93
|
+
* Encode Road triangles into the main render pass.
|
|
94
|
+
* 将道路三角形编码到主渲染通道。
|
|
95
|
+
*/
|
|
96
|
+
protected encodeMainPass(pass: GPURenderPassEncoder, _frame: WebgpuFrameContext): void;
|
|
97
|
+
/**
|
|
98
|
+
* Create the Road render pipeline for the active CRS and canvas format.
|
|
99
|
+
* 为当前 CRS 和画布格式创建道路渲染 Pipeline。
|
|
100
|
+
*/
|
|
101
|
+
private createRoadPipeline;
|
|
102
|
+
/**
|
|
103
|
+
* Synchronize mesh, grid, and color stop GPU resources by revision.
|
|
104
|
+
* 根据修订版本同步 mesh、网格和色标 GPU 资源。
|
|
105
|
+
*/
|
|
106
|
+
private syncFeatureResources;
|
|
107
|
+
/**
|
|
108
|
+
* Synchronize the Road vertex buffer.
|
|
109
|
+
* 同步道路顶点 Buffer。
|
|
110
|
+
*/
|
|
111
|
+
private syncMeshResource;
|
|
112
|
+
/**
|
|
113
|
+
* Synchronize the shared grid texture.
|
|
114
|
+
* 同步公共网格纹理。
|
|
115
|
+
*/
|
|
116
|
+
private syncGridResource;
|
|
117
|
+
/**
|
|
118
|
+
* Synchronize shared color stop buffers.
|
|
119
|
+
* 同步公共色标 Buffer。
|
|
120
|
+
*/
|
|
121
|
+
private syncColorStopResources;
|
|
122
|
+
/**
|
|
123
|
+
* Create the Road BindGroup after all shared resources become available.
|
|
124
|
+
* 在全部公共资源可用后创建道路 BindGroup。
|
|
125
|
+
*/
|
|
126
|
+
private ensureBindGroup;
|
|
127
|
+
private syncClipResource;
|
|
128
|
+
private getCoverageMode;
|
|
129
|
+
/**
|
|
130
|
+
* Return initialized shared visualization resources.
|
|
131
|
+
* 返回已经初始化的公共可视化资源。
|
|
132
|
+
*/
|
|
133
|
+
private getVisualizationResources;
|
|
134
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x4413a0=_0x2991;(function(_0x1f29cf,_0x49fa9b){const _0x41d02b=_0x2991,_0x3585c8=_0x1f29cf();while(!![]){try{const _0x3cb8e3=parseInt(_0x41d02b(0x1d7))/0x1*(-parseInt(_0x41d02b(0x1b9))/0x2)+parseInt(_0x41d02b(0x1cb))/0x3+-parseInt(_0x41d02b(0x18a))/0x4+-parseInt(_0x41d02b(0x175))/0x5+-parseInt(_0x41d02b(0x19b))/0x6+-parseInt(_0x41d02b(0x185))/0x7*(parseInt(_0x41d02b(0x194))/0x8)+-parseInt(_0x41d02b(0x1ae))/0x9*(-parseInt(_0x41d02b(0x1af))/0xa);if(_0x3cb8e3===_0x49fa9b)break;else _0x3585c8['push'](_0x3585c8['shift']());}catch(_0x2c36bc){_0x3585c8['push'](_0x3585c8['shift']());}}}(_0xfffe,0x52eb7));import{BaseWebgpuRenderer,WebgpuCoverageResources}from'../../rendering';function _0xfffe(){const _0xcd8930=['sampleMode','getCoverageMode','encodeMainPass','colorStops','createTransparentColorAttachment','pipeline','device','COPY_DST','grid','12735ECHINn','11340ltwWnW','format','updateColorStops','getVisualizationResources','maskView','equal','updateMesh','stencil','stencilPipeline','setLineWidth','4lRVwEZ','getBindGroupLayout','colorStopArrays','setStencilReference','vertexMain','syncMeshResource','VERTEX','colorStopsRevision','syncFeatureResources','maskBindGroup','setColorStops','float32','syncClipResource','one','encoder','setOpacity','createRoadPipeline','queue','1613010euIBdW','appliedClipRevision','coverageResources','one-minus-src-alpha','setClipMode','appliedColorStopsRevision','releaseFeatureResources','meshRevision','float32x2','getCrs','syncGridResource','appliedMeshRevision','175291dmxpHp','setVertexBuffer','stencil8','vertexBuffer','getResources','setClip','visualizationResources','mask','setColorMode','vertexCount','WebGPU\x20Road\x20visualization\x20resources\x20are\x20not\x20initialized.\x20WebGPU\x20道路可视化资源尚未初始化。','2648710ZIJkXb','targetView','WebGPU\x20Road\x20vertex\x20shader','direct','setSampleMode','maskPipeline','setGrid','roadState','WebGPU\x20Road\x20fragment\x20shader','createFeatureResources','depthStencilAttachment','clipMesh','clipMode','paramsBuffer','mesh','appliedGridRevision','1216537WKCGDp','setBindGroup','setColorRange','WebGPU\x20Road\x20vertices','gridRevision','732992sCMpAl','paramsData','clipRevision','WebGPU\x20Road','writeBuffer','createShaderModule','triangle-list','syncColorStopResources','destroy','bindGroup','8nMfABG','draw','createRenderPipeline','encode','opacity','updateGrid','stencilBindGroup','3391668DqbxmF','colorMode','BYTES_PER_ELEMENT','createBindGroup','handleResize','ready','createMainPassDescriptor','none','depthStencil','UNIFORM'];_0xfffe=function(){return _0xcd8930;};return _0xfffe();}import{WEBGPU_VISUALIZATION_PARAMS_BUFFER_SIZE,WEBGPU_VISUALIZATION_PARAMS_FLOAT_COUNT,writeWebgpuVisualizationParams}from'../../rendering/webgpu/visualizationParams';import{WebgpuVisualizationResources}from'../../rendering/webgpu/visualizationResources';import{createWebgpuCoordinateShaderSource}from'../../shared/coordinate-shader/webgpu';import{createWebgpuVisualizationFragmentShaderSource,createWebgpuVisualizationParamsShaderSource}from'../../shared/visualization/shader/webgpu';import{ROAD_VERTEX_FLOAT_COUNT}from'../roadMesh';import{RoadRenderState}from'./roadRenderState';import _0x403c42 from'./shader/webgpu/roadFragment.wgsl?raw';import _0x13ae88 from'./shader/webgpu/roadMaskFragment.wgsl?raw';import _0x309f0 from'./shader/webgpu/roadVertex.wgsl?raw';const ROAD_VERTEX_SIZE=Float32Array[_0x4413a0(0x19d)];function _0x2991(_0x5f03c4,_0x49ed36){const _0xfffeff=_0xfffe();return _0x2991=function(_0x2991b0,_0x5f3198){_0x2991b0=_0x2991b0-0x175;let _0xda4302=_0xfffeff[_0x2991b0];return _0xda4302;},_0x2991(_0x5f03c4,_0x49ed36);}export class WebgpuRoadRenderer extends BaseWebgpuRenderer{[_0x4413a0(0x17c)];[_0x4413a0(0x18b)]=new Float32Array(WEBGPU_VISUALIZATION_PARAMS_FLOAT_COUNT);[_0x4413a0(0x1aa)]=null;[_0x4413a0(0x1b7)]=null;['maskPipeline']=null;[_0x4413a0(0x1da)]=null;[_0x4413a0(0x182)]=null;[_0x4413a0(0x193)]=null;[_0x4413a0(0x19a)]=null;['maskBindGroup']=null;[_0x4413a0(0x1dd)]=null;[_0x4413a0(0x1cd)]=null;[_0x4413a0(0x1d6)]=-0x1;['appliedGridRevision']=-0x1;[_0x4413a0(0x1d0)]=-0x1;[_0x4413a0(0x1cc)]=-0x1;constructor(_0x1c46f6=new RoadRenderState()){const _0x4ff829=_0x4413a0;super(),this[_0x4ff829(0x17c)]=_0x1c46f6;}['setMesh'](_0x128112){this['roadState']['setMesh'](_0x128112);}[_0x4413a0(0x17b)](_0x5eae04){const _0x17dd6c=_0x4413a0;this[_0x17dd6c(0x17c)][_0x17dd6c(0x17b)](_0x5eae04);}['setColorStops'](_0xfe5b06){const _0x2a21e5=_0x4413a0;this['roadState'][_0x2a21e5(0x1c3)](_0xfe5b06);}[_0x4413a0(0x187)](_0x2b0466){const _0x1f51d7=_0x4413a0;this[_0x1f51d7(0x17c)][_0x1f51d7(0x187)](_0x2b0466);}[_0x4413a0(0x1c8)](_0x41b00d){const _0x3e3f6e=_0x4413a0;this[_0x3e3f6e(0x17c)][_0x3e3f6e(0x1c8)](_0x41b00d);}[_0x4413a0(0x1b8)](_0x3717d7){const _0x529125=_0x4413a0;this[_0x529125(0x17c)][_0x529125(0x1b8)](_0x3717d7);}[_0x4413a0(0x1df)](_0xcaa808){const _0x15a59f=_0x4413a0;this[_0x15a59f(0x17c)][_0x15a59f(0x1df)](_0xcaa808);}[_0x4413a0(0x179)](_0x5b7af7){const _0x5e580e=_0x4413a0;this[_0x5e580e(0x17c)]['setSampleMode'](_0x5b7af7);}['setClip'](_0x2bc8a5,_0x2f0248){const _0x24e61b=_0x4413a0;this['roadState'][_0x24e61b(0x1dc)](_0x2bc8a5,_0x2f0248);}[_0x4413a0(0x1cf)](_0x240e1e){const _0x237824=_0x4413a0;this['roadState'][_0x237824(0x1cf)](_0x240e1e);}[_0x4413a0(0x17e)](){const _0x252178=_0x4413a0,_0xadfefb=this[_0x252178(0x1db)]();this[_0x252178(0x182)]=this['createBuffer'](WEBGPU_VISUALIZATION_PARAMS_BUFFER_SIZE,GPUBufferUsage[_0x252178(0x1a4)]|GPUBufferUsage[_0x252178(0x1ac)],'WebGPU\x20Road\x20params'),this['visualizationResources']=new WebgpuVisualizationResources(_0xadfefb['device'],_0x252178(0x18d)),this[_0x252178(0x1cd)]=new WebgpuCoverageResources(_0xadfefb['device'],this['getCrs'](),this[_0x252178(0x182)]),this['pipeline']=this[_0x252178(0x1c9)](_0x252178(0x1a2)),this['stencilPipeline']=this[_0x252178(0x1c9)](_0x252178(0x1b6)),this[_0x252178(0x17a)]=this[_0x252178(0x1c9)](_0x252178(0x1de)),this[_0x252178(0x1d6)]=-0x1,this['appliedGridRevision']=-0x1,this[_0x252178(0x1d0)]=-0x1,this['appliedClipRevision']=-0x1,this[_0x252178(0x1c1)](),this['ensureBindGroup']();}[_0x4413a0(0x1d1)](_0x91ff56){const _0x5d22f7=_0x4413a0;this['vertexBuffer']?.[_0x5d22f7(0x192)](),this[_0x5d22f7(0x182)]?.['destroy'](),this[_0x5d22f7(0x1dd)]?.[_0x5d22f7(0x192)](),this[_0x5d22f7(0x1cd)]?.[_0x5d22f7(0x192)](),this[_0x5d22f7(0x1aa)]=null,this[_0x5d22f7(0x1b7)]=null,this['maskPipeline']=null,this['vertexBuffer']=null,this[_0x5d22f7(0x182)]=null,this[_0x5d22f7(0x193)]=null,this[_0x5d22f7(0x19a)]=null,this[_0x5d22f7(0x1c2)]=null,this['visualizationResources']=null,this[_0x5d22f7(0x1cd)]=null,this[_0x5d22f7(0x1d6)]=-0x1,this[_0x5d22f7(0x184)]=-0x1,this[_0x5d22f7(0x1d0)]=-0x1,this[_0x5d22f7(0x1cc)]=-0x1;}['prepareFrame'](_0x87dadd){const _0x2662b1=_0x4413a0;this['syncFeatureResources'](),this['ensureBindGroup']();const _0x4bc934=this[_0x2662b1(0x17c)][_0x2662b1(0x1ad)],_0x803d57=this[_0x2662b1(0x182)];if(!this[_0x2662b1(0x17c)][_0x2662b1(0x1a0)]||!_0x4bc934||!_0x803d57)return;writeWebgpuVisualizationParams(this[_0x2662b1(0x18b)],{'viewport':_0x87dadd['viewport'],'grid':_0x4bc934,'colorStops':this[_0x2662b1(0x17c)][_0x2662b1(0x1a8)],'colorRange':this[_0x2662b1(0x17c)]['colorRange'],'opacity':this[_0x2662b1(0x17c)][_0x2662b1(0x198)],'colorMode':this[_0x2662b1(0x17c)][_0x2662b1(0x19c)],'sampleMode':this[_0x2662b1(0x17c)][_0x2662b1(0x1a5)],'mapExtension':[this[_0x2662b1(0x17c)]['lineWidth'],0x0]}),this[_0x2662b1(0x1db)]()[_0x2662b1(0x1ab)][_0x2662b1(0x1ca)][_0x2662b1(0x18e)](_0x803d57,0x0,this[_0x2662b1(0x18b)]);}[_0x4413a0(0x19f)](_0x57d65f,_0x110393){const _0x49f4af=_0x4413a0;this['coverageResources']?.['resize'](_0x57d65f,_0x110393),this[_0x49f4af(0x1c2)]=null;}['encodePrePasses'](_0x2f787b){const _0x21d22c=_0x4413a0;this['coverageResources']?.[_0x21d22c(0x197)](_0x2f787b[_0x21d22c(0x1c7)],this['getCoverageMode']());}[_0x4413a0(0x1a1)](_0x7e4a81){const _0x2586b5=_0x4413a0,_0x42f533={'colorAttachments':[this[_0x2586b5(0x1a9)](_0x7e4a81[_0x2586b5(0x176)])]};if(this[_0x2586b5(0x1a6)]()==='stencil')_0x42f533[_0x2586b5(0x17f)]=this[_0x2586b5(0x1cd)]?.['createStencilAttachment']();return _0x42f533;}[_0x4413a0(0x1a7)](_0x475f10,_0x30de30){const _0x5f2db6=_0x4413a0,_0x312160=this[_0x5f2db6(0x17c)][_0x5f2db6(0x183)],_0xbf1503=this['getCoverageMode'](),_0xebe188=_0xbf1503===_0x5f2db6(0x1b6)?this[_0x5f2db6(0x1b7)]:_0xbf1503===_0x5f2db6(0x1de)?this['maskPipeline']:this['pipeline'],_0x2b0868=_0xbf1503===_0x5f2db6(0x1b6)?this[_0x5f2db6(0x19a)]:_0xbf1503===_0x5f2db6(0x1de)?this[_0x5f2db6(0x1c2)]:this[_0x5f2db6(0x193)];if(!this['roadState'][_0x5f2db6(0x1a0)]||!_0x312160||_0x312160[_0x5f2db6(0x1e0)]===0x0||!_0xebe188||!this['vertexBuffer']||!_0x2b0868)return;_0x475f10['setPipeline'](_0xebe188),_0x475f10[_0x5f2db6(0x186)](0x0,_0x2b0868);if(_0xbf1503===_0x5f2db6(0x1b6))_0x475f10[_0x5f2db6(0x1bc)](0x1);_0x475f10[_0x5f2db6(0x1d8)](0x0,this[_0x5f2db6(0x1da)]),_0x475f10[_0x5f2db6(0x195)](_0x312160['vertexCount']);}['createRoadPipeline'](_0x437fc9){const _0x1b9dc7=_0x4413a0,_0x4132d9=this[_0x1b9dc7(0x1db)](),_0x1a509d=createWebgpuVisualizationParamsShaderSource(_0x309f0),_0xdc6fe6=createWebgpuCoordinateShaderSource(_0x1a509d,this[_0x1b9dc7(0x1d4)]()),_0x155b5f=createWebgpuVisualizationFragmentShaderSource(_0x437fc9===_0x1b9dc7(0x1de)?_0x13ae88:_0x403c42),_0x46eb58=this[_0x1b9dc7(0x18f)](_0xdc6fe6,_0x1b9dc7(0x177)),_0x39c21c=this['createShaderModule'](_0x155b5f,_0x1b9dc7(0x17d)),_0xc08022={'label':'WebGPU\x20Road\x20pipeline','layout':'auto','vertex':{'module':_0x46eb58,'entryPoint':_0x1b9dc7(0x1bd),'buffers':[{'arrayStride':ROAD_VERTEX_FLOAT_COUNT*ROAD_VERTEX_SIZE,'attributes':[{'shaderLocation':0x0,'offset':0x0,'format':_0x1b9dc7(0x1d3)},{'shaderLocation':0x1,'offset':0x2*ROAD_VERTEX_SIZE,'format':_0x1b9dc7(0x1d3)},{'shaderLocation':0x2,'offset':0x4*ROAD_VERTEX_SIZE,'format':_0x1b9dc7(0x1d3)},{'shaderLocation':0x3,'offset':0x6*ROAD_VERTEX_SIZE,'format':_0x1b9dc7(0x1d3)},{'shaderLocation':0x4,'offset':0x8*ROAD_VERTEX_SIZE,'format':_0x1b9dc7(0x1c4)}]}]},'fragment':{'module':_0x39c21c,'entryPoint':'fragmentMain','targets':[{'format':_0x4132d9[_0x1b9dc7(0x1b0)],'blend':{'color':{'srcFactor':_0x1b9dc7(0x1c6),'dstFactor':'one-minus-src-alpha'},'alpha':{'srcFactor':_0x1b9dc7(0x1c6),'dstFactor':_0x1b9dc7(0x1ce)}}}]},'primitive':{'topology':_0x1b9dc7(0x190)}};if(_0x437fc9==='stencil')_0xc08022[_0x1b9dc7(0x1a3)]={'format':_0x1b9dc7(0x1d9),'stencilFront':{'compare':_0x1b9dc7(0x1b4)},'stencilBack':{'compare':_0x1b9dc7(0x1b4)},'stencilReadMask':0xff};return _0x4132d9['device'][_0x1b9dc7(0x196)](_0xc08022);}[_0x4413a0(0x1c1)](){const _0x481438=_0x4413a0;this[_0x481438(0x1be)](),this['syncGridResource'](),this['syncColorStopResources'](),this['syncClipResource']();}['syncMeshResource'](){const _0x34a74d=_0x4413a0;if(this['appliedMeshRevision']===this[_0x34a74d(0x17c)]['meshRevision'])return;const _0x4045a8=this[_0x34a74d(0x17c)][_0x34a74d(0x183)];let _0x1efffd=null;_0x4045a8&&_0x4045a8['vertices']['length']>0x0&&(_0x1efffd=this['createBufferWithData'](_0x4045a8['vertices'],GPUBufferUsage[_0x34a74d(0x1bf)],_0x34a74d(0x188)));const _0x298ca2=this[_0x34a74d(0x1da)];this[_0x34a74d(0x1da)]=_0x1efffd,this[_0x34a74d(0x1d6)]=this[_0x34a74d(0x17c)][_0x34a74d(0x1d2)],_0x298ca2?.[_0x34a74d(0x192)]();}[_0x4413a0(0x1d5)](){const _0x1870af=_0x4413a0;if(this[_0x1870af(0x184)]===this[_0x1870af(0x17c)]['gridRevision'])return;const _0x215035=this[_0x1870af(0x17c)][_0x1870af(0x1ad)];_0x215035&&this[_0x1870af(0x1b2)]()[_0x1870af(0x199)](_0x215035),this[_0x1870af(0x184)]=this[_0x1870af(0x17c)][_0x1870af(0x189)],this['bindGroup']=null,this[_0x1870af(0x19a)]=null,this[_0x1870af(0x1c2)]=null;}[_0x4413a0(0x191)](){const _0x371ead=_0x4413a0;if(this[_0x371ead(0x1d0)]===this[_0x371ead(0x17c)][_0x371ead(0x1c0)])return;const _0x659beb=this['roadState'][_0x371ead(0x1bb)];_0x659beb&&this[_0x371ead(0x1b2)]()[_0x371ead(0x1b1)](_0x659beb),this[_0x371ead(0x1d0)]=this[_0x371ead(0x17c)][_0x371ead(0x1c0)],this[_0x371ead(0x193)]=null,this[_0x371ead(0x19a)]=null,this[_0x371ead(0x1c2)]=null;}['ensureBindGroup'](){const _0x523c0a=_0x4413a0;if(!this[_0x523c0a(0x17c)][_0x523c0a(0x1a0)]||!this[_0x523c0a(0x182)])return;const _0x1a227f=this[_0x523c0a(0x1b2)]();if(!_0x1a227f['ready'])return;if(!this[_0x523c0a(0x193)]&&this[_0x523c0a(0x1aa)])this[_0x523c0a(0x193)]=_0x1a227f['createBindGroup'](this[_0x523c0a(0x1aa)][_0x523c0a(0x1ba)](0x0),this[_0x523c0a(0x182)]);if(!this[_0x523c0a(0x19a)]&&this[_0x523c0a(0x1b7)])this[_0x523c0a(0x19a)]=_0x1a227f['createBindGroup'](this[_0x523c0a(0x1b7)]['getBindGroupLayout'](0x0),this['paramsBuffer']);if(!this[_0x523c0a(0x1c2)]&&this[_0x523c0a(0x17a)]){const _0x449dbf=this[_0x523c0a(0x1cd)]?.[_0x523c0a(0x1b3)];if(_0x449dbf)this[_0x523c0a(0x1c2)]=_0x1a227f[_0x523c0a(0x19e)](this['maskPipeline'][_0x523c0a(0x1ba)](0x0),this[_0x523c0a(0x182)],[{'binding':0x5,'resource':_0x449dbf}]);}}[_0x4413a0(0x1c5)](){const _0x86a6fd=_0x4413a0;if(this[_0x86a6fd(0x1cc)]===this[_0x86a6fd(0x17c)][_0x86a6fd(0x18c)])return;this[_0x86a6fd(0x1cd)]?.[_0x86a6fd(0x1b5)](this[_0x86a6fd(0x17c)][_0x86a6fd(0x180)]),this['appliedClipRevision']=this[_0x86a6fd(0x17c)][_0x86a6fd(0x18c)];}['getCoverageMode'](){const _0x32b663=_0x4413a0;if(this[_0x32b663(0x17c)][_0x32b663(0x181)]==='mask')return _0x32b663(0x1de);if(this['roadState'][_0x32b663(0x181)]===_0x32b663(0x1b6)||this[_0x32b663(0x17c)][_0x32b663(0x181)]===_0x32b663(0x178))return'stencil';return _0x32b663(0x1a2);}[_0x4413a0(0x1b2)](){const _0x241ea6=_0x4413a0;if(!this[_0x241ea6(0x1dd)])throw new Error(_0x241ea6(0x1e1));return this[_0x241ea6(0x1dd)];}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RoadGeoJsonInput, RoadGeometryParseResult, RoadMesh, RoadCoordinateTransform } from './types';
|
|
1
|
+
import type { RoadGeoJsonInput, RoadGeometryParseResult, RoadMesh, RoadCoordinateTransform, RoadSampleCoordinateMode } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Prepared road data for GPU rendering.
|
|
4
4
|
* 准备好用 GPU 渲染的道路数据
|
|
@@ -12,5 +12,6 @@ export interface PreparedRoadData {
|
|
|
12
12
|
* 将道路 GeoJSON 准备为几何和 mesh 数据
|
|
13
13
|
* @param roads
|
|
14
14
|
* @param coordinateTransform
|
|
15
|
+
* @param sampleCoordinateMode 栅格采样坐标模式。Grid sampling coordinate mode.
|
|
15
16
|
*/
|
|
16
|
-
export declare const prepareRoadData: (roads: RoadGeoJsonInput, coordinateTransform?: RoadCoordinateTransform) => PreparedRoadData;
|
|
17
|
+
export declare const prepareRoadData: (roads: RoadGeoJsonInput, coordinateTransform?: RoadCoordinateTransform, sampleCoordinateMode?: RoadSampleCoordinateMode) => PreparedRoadData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x47e6(){const _0x29bc09=['1738566FRBYTw','87534PkYHTM','2cUgnrK','roads','1731121PsduoW','11812730mZDsDE','166970NfPgCl','892947KVhhwL','4RPQgHa','source','184BthIFG','121113rIsnBp'];_0x47e6=function(){return _0x29bc09;};return _0x47e6();}const _0x9aaea=_0x5af0;(function(_0x1bfad1,_0xc3153e){const _0x54615f=_0x5af0,_0x5ad44c=_0x1bfad1();while(!![]){try{const _0x11c8d9=-parseInt(_0x54615f(0x94))/0x1*(-parseInt(_0x54615f(0x9f))/0x2)+-parseInt(_0x54615f(0x99))/0x3*(parseInt(_0x54615f(0x9a))/0x4)+parseInt(_0x54615f(0x98))/0x5+-parseInt(_0x54615f(0x9e))/0x6+-parseInt(_0x54615f(0x96))/0x7+parseInt(_0x54615f(0x9c))/0x8*(-parseInt(_0x54615f(0x9d))/0x9)+parseInt(_0x54615f(0x97))/0xa;if(_0x11c8d9===_0xc3153e)break;else _0x5ad44c['push'](_0x5ad44c['shift']());}catch(_0x298422){_0x5ad44c['push'](_0x5ad44c['shift']());}}}(_0x47e6,0x26919));function _0x5af0(_0x42d704,_0x5bc4bb){const _0x47e602=_0x47e6();return _0x5af0=function(_0x5af0c6,_0x44c924){_0x5af0c6=_0x5af0c6-0x94;let _0x17bf51=_0x47e602[_0x5af0c6];return _0x17bf51;},_0x5af0(_0x42d704,_0x5bc4bb);}import{parseRoadGeoJson}from'./roadGeometry';import{buildRoadMesh}from'./roadMesh';export const prepareRoadData=(_0xc0ba03,_0x81a2c='none',_0x3607cd=_0x9aaea(0x9b))=>{const _0x262933=_0x9aaea,_0x208dc2=parseRoadGeoJson(_0xc0ba03,_0x81a2c,_0x3607cd),_0x3c85bf=buildRoadMesh(_0x208dc2[_0x262933(0x95)]);return{'geometry':_0x208dc2,'mesh':_0x3c85bf};};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { RoadGeoJsonInput, RoadGeometryParseResult, RoadCoordinateTransform } from './types';
|
|
1
|
+
import type { RoadGeoJsonInput, RoadGeometryParseResult, RoadCoordinateTransform, RoadSampleCoordinateMode } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Parse road GeoJSON into normalized road geometries.
|
|
4
4
|
* 将道路 GeoJSON 解析为规范化道路几何数据
|
|
5
5
|
* @param input
|
|
6
6
|
*/
|
|
7
|
-
export declare const parseRoadGeoJson: (input: RoadGeoJsonInput, coordinateTransform?: RoadCoordinateTransform) => RoadGeometryParseResult;
|
|
7
|
+
export declare const parseRoadGeoJson: (input: RoadGeoJsonInput, coordinateTransform?: RoadCoordinateTransform, sampleCoordinateMode?: RoadSampleCoordinateMode) => RoadGeometryParseResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x4713(_0x508fb8,_0x33976a){const _0x5f259d=_0x5f25();return _0x4713=function(_0x4713ea,_0x4826a3){_0x4713ea=_0x4713ea-0x183;let _0x1439d0=_0x5f259d[_0x4713ea];return _0x1439d0;},_0x4713(_0x508fb8,_0x33976a);}const _0x2499e5=_0x4713;(function(_0x5cd749,_0x55bed0){const _0x353d72=_0x4713,_0x31ef2a=_0x5cd749();while(!![]){try{const _0x3c017c=parseInt(_0x353d72(0x18f))/0x1+-parseInt(_0x353d72(0x19f))/0x2+parseInt(_0x353d72(0x187))/0x3*(-parseInt(_0x353d72(0x1a6))/0x4)+parseInt(_0x353d72(0x192))/0x5*(parseInt(_0x353d72(0x1a4))/0x6)+-parseInt(_0x353d72(0x196))/0x7*(parseInt(_0x353d72(0x184))/0x8)+parseInt(_0x353d72(0x18c))/0x9*(-parseInt(_0x353d72(0x1a5))/0xa)+-parseInt(_0x353d72(0x198))/0xb*(-parseInt(_0x353d72(0x1ac))/0xc);if(_0x3c017c===_0x55bed0)break;else _0x31ef2a['push'](_0x31ef2a['shift']());}catch(_0x47fafb){_0x31ef2a['push'](_0x31ef2a['shift']());}}}(_0x5f25,0xe0369));import{wgs84ToGcj02}from'./coordinateTransform';export const parseRoadGeoJson=(_0x4056e6,_0x5280b6=_0x2499e5(0x18b),_0x35a547=_0x2499e5(0x186))=>{const _0x47818b=_0x2499e5,_0x5d5a94=[];return collectRoadGeometries(_0x4056e6)[_0x47818b(0x194)]((_0x3bf9af,_0x1a3b3e)=>{const _0x34e46a=_0x47818b,_0x12c0c2=geometryToLines(_0x3bf9af[_0x34e46a(0x188)]);_0x12c0c2['forEach']((_0x57aaae,_0x143972)=>{const _0x4b30cf=_0x34e46a,_0x487d9e=normalizeLineCoordinates(_0x57aaae,_0x1a3b3e,_0x143972,_0x5280b6,_0x35a547);if(_0x487d9e[_0x4b30cf(0x19c)]<0x2)return;_0x5d5a94['push']({'id':createRoadId(_0x1a3b3e,_0x143972,_0x3bf9af['feature']?.['id']),'featureIndex':_0x1a3b3e,'lineIndex':_0x143972,'coordinates':_0x487d9e,'properties':_0x3bf9af[_0x4b30cf(0x189)]?.[_0x4b30cf(0x193)]??null,'bounds':calculateBounds(_0x487d9e)});});}),{'roads':_0x5d5a94,'bounds':mergeBounds(_0x5d5a94[_0x47818b(0x1a3)](_0x269b63=>_0x269b63[_0x47818b(0x195)])),'pointCount':_0x5d5a94[_0x47818b(0x1a7)]((_0x60fc27,_0x1c2360)=>_0x60fc27+_0x1c2360['coordinates'][_0x47818b(0x19c)],0x0),'lineCount':_0x5d5a94[_0x47818b(0x19c)]};};const collectRoadGeometries=_0x3202b1=>{const _0x56389c=_0x2499e5;if(_0x3202b1[_0x56389c(0x19b)]===_0x56389c(0x18a))return _0x3202b1[_0x56389c(0x1ab)][_0x56389c(0x1a3)](_0x5edc1d=>createGeometrySource(_0x5edc1d[_0x56389c(0x188)],_0x5edc1d));if(_0x3202b1[_0x56389c(0x19b)]===_0x56389c(0x1aa))return[createGeometrySource(_0x3202b1[_0x56389c(0x188)],_0x3202b1)];return[createGeometrySource(_0x3202b1)];},createGeometrySource=(_0x36911c,_0x4c4f68)=>{const _0x2981c1=_0x2499e5;if(_0x36911c[_0x2981c1(0x19b)]!==_0x2981c1(0x18d)&&_0x36911c['type']!==_0x2981c1(0x19d))throw new Error(_0x2981c1(0x183)+_0x36911c['type']);return{'geometry':_0x36911c,'feature':_0x4c4f68};},geometryToLines=_0x3e6d12=>{const _0x4a60d1=_0x2499e5;if(_0x3e6d12[_0x4a60d1(0x19b)]==='LineString')return[_0x3e6d12[_0x4a60d1(0x191)]];return _0x3e6d12[_0x4a60d1(0x191)];},normalizeLineCoordinates=(_0x35db98,_0x374a45,_0x4fb8bf,_0x29352d,_0x7f171b)=>{const _0x51cf83=_0x2499e5;return _0x35db98[_0x51cf83(0x1a3)]((_0x450273,_0x43c37c)=>normalizePosition(_0x450273,_0x374a45,_0x4fb8bf,_0x43c37c,_0x29352d,_0x7f171b));},normalizePosition=(_0x1c5d23,_0x504ac5,_0x6fdd47,_0x548345,_0x1be14f,_0x539f7d)=>{const _0x5943b4=_0x2499e5,_0x4e6e8c=_0x1c5d23[0x0],_0x432a46=_0x1c5d23[0x1],_0x5f1b8f=_0x1c5d23[0x2];if(!Number['isFinite'](_0x4e6e8c)||!Number[_0x5943b4(0x1a9)](_0x432a46))throw new Error('Invalid\x20road\x20coordinate.\x20道路坐标无效:\x20feature='+_0x504ac5+_0x5943b4(0x197)+_0x6fdd47+',\x20point='+_0x548345);if(_0x5f1b8f!==undefined&&!Number[_0x5943b4(0x1a9)](_0x5f1b8f))throw new Error(_0x5943b4(0x19e)+_0x504ac5+_0x5943b4(0x197)+_0x6fdd47+_0x5943b4(0x1a8)+_0x548345);const _0x393696=transformRoadCoordinate(_0x4e6e8c,_0x432a46,_0x1be14f,_0x539f7d);return _0x5f1b8f===undefined?_0x393696:{..._0x393696,'z':_0x5f1b8f};},calculateBounds=_0x57b1f1=>{const _0x2ff06d=_0x2499e5;let _0xe3b874=Number[_0x2ff06d(0x199)],_0x4f62c0=Number[_0x2ff06d(0x199)],_0x16e8e4=Number['NEGATIVE_INFINITY'],_0x164225=Number['NEGATIVE_INFINITY'];return _0x57b1f1[_0x2ff06d(0x194)](_0x549deb=>{const _0x2ce50d=_0x2ff06d;_0xe3b874=Math[_0x2ce50d(0x190)](_0xe3b874,_0x549deb['x']),_0x4f62c0=Math[_0x2ce50d(0x190)](_0x4f62c0,_0x549deb['y']),_0x16e8e4=Math[_0x2ce50d(0x185)](_0x16e8e4,_0x549deb['x']),_0x164225=Math[_0x2ce50d(0x185)](_0x164225,_0x549deb['y']);}),{'minX':_0xe3b874,'minY':_0x4f62c0,'maxX':_0x16e8e4,'maxY':_0x164225};},mergeBounds=_0x322656=>{const _0x4f579c=_0x2499e5;if(_0x322656[_0x4f579c(0x19c)]===0x0)return null;return _0x322656[_0x4f579c(0x1a7)]((_0xc20086,_0x32d606)=>{const _0x37b4ca=_0x4f579c;return{'minX':Math['min'](_0xc20086[_0x37b4ca(0x18e)],_0x32d606[_0x37b4ca(0x18e)]),'minY':Math['min'](_0xc20086['minY'],_0x32d606['minY']),'maxX':Math[_0x37b4ca(0x185)](_0xc20086[_0x37b4ca(0x19a)],_0x32d606['maxX']),'maxY':Math[_0x37b4ca(0x185)](_0xc20086['maxY'],_0x32d606[_0x37b4ca(0x1a1)])};},_0x322656[0x0]);},createRoadId=(_0x190396,_0x345733,_0x157bc6)=>{if(_0x157bc6!==undefined)return _0x157bc6+':'+_0x345733;return _0x190396+':'+_0x345733;},transformRoadCoordinate=(_0x29a2b8,_0x1f5aec,_0x33551e,_0xba065f)=>{const _0x8de566=_0x2499e5;if(_0x33551e===_0x8de566(0x1a0)){const [_0x8b141b,_0x35a87d]=wgs84ToGcj02(_0x29a2b8,_0x1f5aec),_0x476960=_0xba065f===_0x8de566(0x1a2)?_0x8b141b:_0x29a2b8,_0x3684ed=_0xba065f===_0x8de566(0x1a2)?_0x35a87d:_0x1f5aec;return{'sampleX':_0x476960,'sampleY':_0x3684ed,'x':_0x8b141b,'y':_0x35a87d};}return{'sampleX':_0x29a2b8,'sampleY':_0x1f5aec,'x':_0x29a2b8,'y':_0x1f5aec};};function _0x5f25(){const _0x42ee7a=['Feature','features','9569244xKEQli','Road\x20GeoJSON\x20only\x20supports\x20LineString\x20and\x20MultiLineString.\x20道路\x20GeoJSON\x20只支持\x20LineString\x20和\x20MultiLineString,\x20当前类型:\x20','3048152sVFqGf','max','source','3GhcLQz','geometry','feature','FeatureCollection','none','2547cXiYsp','LineString','minX','1468656GSqEEg','min','coordinates','85oJieAj','properties','forEach','bounds','14MZXljR',',\x20line=','11qSvkqU','POSITIVE_INFINITY','maxX','type','length','MultiLineString','Invalid\x20road\x20z\x20coordinate.\x20道路高程坐标无效:\x20feature=','1013198MbeLgu','wgs84-to-gcj02','maxY','display','map','534306ClqajF','1910rRqIWX','6155572pSrzEe','reduce',',\x20point=','isFinite'];_0x5f25=function(){return _0x42ee7a;};return _0x5f25();}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { RoadGeometry, RoadMesh } from './types';
|
|
1
|
+
import type { RoadGeometry, RoadMesh, RoadMeshVertexLayout } from './types';
|
|
2
|
+
export declare const ROAD_VERTEX_FLOAT_COUNT = 9;
|
|
3
|
+
export declare const ROAD_VERTICES_PER_SEGMENT = 6;
|
|
4
|
+
export declare const ROAD_MESH_VERTEX_LAYOUT: RoadMeshVertexLayout;
|
|
2
5
|
/**
|
|
3
|
-
* Build
|
|
4
|
-
*
|
|
5
|
-
* @param roads
|
|
6
|
+
* Build a triangle mesh from normalized Road geometries.
|
|
7
|
+
* 根据规范化道路几何构建三角形 mesh。
|
|
6
8
|
*/
|
|
7
|
-
export declare const buildRoadMesh: (roads: RoadGeometry[]) => RoadMesh;
|
|
9
|
+
export declare const buildRoadMesh: (roads: readonly RoadGeometry[]) => RoadMesh;
|