leaflet-city-mapper 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/README.md +1 -1
  2. package/dist/leaflet-city-mapper-src.js.map +1 -1
  3. package/dist/leaflet-city-mapper-worker-src.js.map +1 -1
  4. package/dist/leaflet-city-mapper-worker.js.map +1 -1
  5. package/dist/leaflet-city-mapper.js.map +1 -1
  6. package/libs/leaflet-lens.js +151 -151
  7. package/libs/leaflet.js +3 -3
  8. package/libs/openlayers-bindings.js +1129 -1129
  9. package/libs/openlayers-bindings.min.js.map +1 -1
  10. package/package.json +2 -4
  11. package/src/animations/cancelCameraAnimation.js +19 -19
  12. package/src/animations/mapStopPitchBearingAnimation.js +10 -10
  13. package/src/animations/scheduleCameraAnimation.js +15 -15
  14. package/src/animations/scheduleMarkerPan.js +14 -14
  15. package/src/animations/updateZoomCamera.js +25 -25
  16. package/src/archives/findDirectoryEntry.js +17 -17
  17. package/src/archives/findTile.js +45 -45
  18. package/src/archives/getDirectoryEntries.js +30 -30
  19. package/src/archives/getTileData.js +26 -26
  20. package/src/archives/readArchiveRange.js +48 -48
  21. package/src/astronomy/solarTime.js +21 -21
  22. package/src/camera/cameraMapReady.js +9 -9
  23. package/src/camera/cleanupCameraMap.js +13 -13
  24. package/src/camera/constrainCameraToBounds.js +3 -3
  25. package/src/camera/createSceneCamera.js +25 -25
  26. package/src/camera/getBearing.js +10 -10
  27. package/src/camera/getPitch.js +10 -10
  28. package/src/camera/mapGetBoundsCenterZoom.js +14 -14
  29. package/src/camera/mapLimitOffset.js +17 -17
  30. package/src/camera/mapPanBy.js +14 -14
  31. package/src/camera/setBearing.js +13 -13
  32. package/src/camera/setPitch.js +13 -13
  33. package/src/cog/decodeCogTile.js +37 -37
  34. package/src/cog/finiteCogValues.js +12 -12
  35. package/src/cog/getCogAssetEntry.js +26 -26
  36. package/src/cog/getCogBase.js +22 -22
  37. package/src/cog/getCogHeader.js +10 -10
  38. package/src/cog/getCogProfile.js +25 -25
  39. package/src/cog/getCogTile.js +25 -25
  40. package/src/cog/getColorTile.js +38 -38
  41. package/src/cog/getElevationTile.js +29 -29
  42. package/src/cog/hasCogProjection.js +16 -16
  43. package/src/cog/initCog.js +13 -13
  44. package/src/cog/invalidCogFullResponse.js +10 -10
  45. package/src/cog/openCog.js +40 -40
  46. package/src/cog/openCogAsset.js +22 -22
  47. package/src/cog/readCog.js +39 -39
  48. package/src/cog/readCogBlock.js +19 -19
  49. package/src/cog/readCogBody.js +30 -30
  50. package/src/cog/readCogDirectories.js +32 -32
  51. package/src/cog/readCogDirectory.js +34 -34
  52. package/src/cog/readCogLevel.js +36 -36
  53. package/src/cog/readCogTag.js +28 -28
  54. package/src/cog/validCogDimensions.js +15 -15
  55. package/src/cog/validCogEncoding.js +18 -18
  56. package/src/cog/validCogGeoArrays.js +17 -17
  57. package/src/cog/validCogGrid.js +22 -22
  58. package/src/cog/validCogTileCoordinates.js +13 -13
  59. package/src/cog/validateCogContainer.js +17 -17
  60. package/src/cog/validateCogContentRange.js +18 -18
  61. package/src/cog/validateCogOffsets.js +19 -19
  62. package/src/cog/validateCogRange.js +16 -16
  63. package/src/cog/validateCogResponse.js +26 -26
  64. package/src/collision/collectIntersections.js +41 -41
  65. package/src/collision/hiddenLightHit.js +19 -19
  66. package/src/collision/indexTriangle.js +18 -18
  67. package/src/collision/insideMesh.js +47 -47
  68. package/src/collision/insideWalker.js +52 -52
  69. package/src/collision/intersectMeshes.js +40 -40
  70. package/src/collision/localRay.js +31 -31
  71. package/src/collision/mergeHits.js +19 -19
  72. package/src/collision/rayBounds.js +28 -28
  73. package/src/collision/readTriangle.js +32 -32
  74. package/src/collision/trafficCollision.js +23 -23
  75. package/src/collision/transformTriangle.js +18 -18
  76. package/src/collision/triangleDistance.js +34 -34
  77. package/src/collision/vertexCount.js +11 -11
  78. package/src/collision/worldHit.js +30 -30
  79. package/src/controls/acceptPitchDrag.js +10 -10
  80. package/src/controls/acceptRotateDrag.js +9 -9
  81. package/src/controls/addCameraHandler.js +18 -18
  82. package/src/controls/adjustCameraDrag.js +13 -13
  83. package/src/controls/cameraDragContextMenu.js +12 -12
  84. package/src/controls/cameraDragEnd.js +10 -10
  85. package/src/controls/cameraDragMove.js +31 -31
  86. package/src/controls/changeCameraTouch.js +17 -17
  87. package/src/controls/compassOrientation.js +12 -12
  88. package/src/controls/compassRemoveHooks.js +2 -2
  89. package/src/controls/containerResizeRemoveHooks.js +2 -2
  90. package/src/controls/endCameraTouch.js +18 -18
  91. package/src/controls/failCompassPermission.js +10 -10
  92. package/src/controls/finishCameraDrag.js +14 -14
  93. package/src/controls/finishCompassPermission.js +24 -24
  94. package/src/controls/isEditableTarget.js +9 -9
  95. package/src/controls/loadCameraControls.js +18 -18
  96. package/src/controls/moveCameraTouch.js +34 -34
  97. package/src/controls/refreshRotateFocus.js +5 -5
  98. package/src/controls/removeCameraDrag.js +28 -28
  99. package/src/controls/resizeMap.js +7 -7
  100. package/src/controls/rotateButtonClick.js +16 -16
  101. package/src/controls/rotateButtonKeydown.js +20 -20
  102. package/src/controls/rotateControl.js +12 -12
  103. package/src/controls/shiftRotateRemoveHooks.js +2 -2
  104. package/src/controls/shiftRotateWheel.js +15 -15
  105. package/src/core/cameraMarkerOnDrag.js +16 -16
  106. package/src/core/constructLayer.js +16 -16
  107. package/src/core/extendLeafletClass.js +12 -12
  108. package/src/core/extendTerrainPixelBounds.js +41 -41
  109. package/src/core/layerAddInitHook.js +12 -12
  110. package/src/core/layerMergeOptions.js +14 -14
  111. package/src/core/markerInitInteraction.js +10 -10
  112. package/src/core/markerSetIcon.js +14 -14
  113. package/src/core/markerSetRotation.js +19 -19
  114. package/src/core/projectNativePath.js +30 -30
  115. package/src/core/redrawPath.js +11 -11
  116. package/src/core/removeLayer.js +26 -26
  117. package/src/core/setRotation.js +12 -12
  118. package/src/core/whenReady.js +14 -14
  119. package/src/geometry/addBridges.js +36 -36
  120. package/src/geometry/addGeneratedTriangle.js +10 -10
  121. package/src/geometry/appendAreaTriangle.js +32 -32
  122. package/src/geometry/appendNativeTriangle.js +17 -17
  123. package/src/geometry/appendRouteDash.js +33 -33
  124. package/src/geometry/appendRouteSegment.js +28 -28
  125. package/src/geometry/assembleAreaGeometry.js +48 -48
  126. package/src/geometry/bridgeEdge.js +18 -18
  127. package/src/geometry/bridgeFaces.js +22 -22
  128. package/src/geometry/bridgePaths.js +19 -19
  129. package/src/geometry/bridgePolygon.js +37 -37
  130. package/src/geometry/bridgeSides.js +18 -18
  131. package/src/geometry/buildProjectedPoint.js +32 -32
  132. package/src/geometry/buildProjectedPolygon.js +34 -34
  133. package/src/geometry/circleAt.js +20 -20
  134. package/src/geometry/circleGeometry.js +41 -41
  135. package/src/geometry/createModelGeometry.js +44 -44
  136. package/src/geometry/crossVector.js +15 -15
  137. package/src/geometry/dashValues.js +23 -23
  138. package/src/geometry/dashedSegment.js +33 -33
  139. package/src/geometry/diskAt.js +18 -18
  140. package/src/geometry/emitter.js +18 -18
  141. package/src/geometry/fillNativePolygon.js +28 -28
  142. package/src/geometry/generateTreeGeometry.js +18 -18
  143. package/src/geometry/indexBridge.js +36 -36
  144. package/src/geometry/instanceAreaGeometry.js +37 -37
  145. package/src/geometry/line.js +28 -28
  146. package/src/geometry/lineJoin.js +35 -35
  147. package/src/geometry/markerImageBounds.js +20 -20
  148. package/src/geometry/meshShadowBounds.js +33 -33
  149. package/src/geometry/offsetBelowGround.js +10 -10
  150. package/src/geometry/quad.js +23 -23
  151. package/src/geometry/restoreGeometry.js +29 -29
  152. package/src/geometry/roofCoverage.js +33 -33
  153. package/src/geometry/roofFootprint.js +40 -40
  154. package/src/geometry/samePoint.js +11 -11
  155. package/src/geometry/segment.js +32 -32
  156. package/src/geometry/subtractRoofTile.js +28 -28
  157. package/src/geometry/terrainBuffers.js +36 -36
  158. package/src/geometry/terrainTileGeometry.js +28 -28
  159. package/src/geometry/validateTree.js +19 -19
  160. package/src/globals/L.js +6 -6
  161. package/src/globals/cameraFov.js +8 -8
  162. package/src/globals/cogTags.js +6 -6
  163. package/src/globals/colorTexture.js +11 -11
  164. package/src/globals/cosObliquity.js +8 -8
  165. package/src/globals/degrees.js +6 -6
  166. package/src/globals/earthCirc.js +6 -6
  167. package/src/globals/geometryWorkerUrl.js +8 -8
  168. package/src/globals/halfRadians.js +6 -6
  169. package/src/globals/lampDirections.js +13 -13
  170. package/src/globals/layerControlAddItem.js +8 -8
  171. package/src/globals/leafletLayer.js +8 -8
  172. package/src/globals/lightScale.js +6 -6
  173. package/src/globals/mvtTextDecoder.js +6 -6
  174. package/src/globals/nativeScalableStyleKeys.js +6 -6
  175. package/src/globals/sinObliquity.js +8 -8
  176. package/src/globals/tau.js +6 -6
  177. package/src/globals/vectorStyleNamedColors.js +13 -13
  178. package/src/globals/vectorTileEvents.js +6 -6
  179. package/src/globals/workerCogSource.js +6 -6
  180. package/src/gpu/initializeRendererResources.js +39 -39
  181. package/src/gpu/initializeSharedRenderer.js +59 -59
  182. package/src/gpu/mountRenderer.js +25 -25
  183. package/src/layer-controls/layerControlInputId.js +18 -18
  184. package/src/layer-controls/layerCountTitle.js +16 -16
  185. package/src/layer-controls/placeEntryElement.js +29 -29
  186. package/src/layer-controls/renderLayerCount.js +28 -28
  187. package/src/lighting/visitLightCells.js +26 -26
  188. package/src/lighting/writeLightCell.js +14 -14
  189. package/src/materials/createProgramLayout.js +44 -44
  190. package/src/materials/createProgramUniforms.js +25 -25
  191. package/src/materials/modelMaterialFor.js +29 -29
  192. package/src/materials/prepareMeshCutout.js +21 -21
  193. package/src/materials/terrainRasterProgram.js +65 -65
  194. package/src/materials/validateRoofMaterial.js +17 -17
  195. package/src/models/applyModelTransform.js +18 -18
  196. package/src/models/buildModelNodes.js +24 -24
  197. package/src/models/createModelContext.js +24 -24
  198. package/src/models/loadBuffer.js +16 -16
  199. package/src/models/loadModelResources.js +22 -22
  200. package/src/models/normalizeAccessor.js +21 -21
  201. package/src/models/prepareModel.js +29 -29
  202. package/src/models/prepareModelGeometry.js +35 -35
  203. package/src/models/prepareModelPrimitive.js +25 -25
  204. package/src/models/readAccessorValue.js +16 -16
  205. package/src/models/readModelAttributes.js +32 -32
  206. package/src/models/readModelIndices.js +28 -28
  207. package/src/models/readSparseAccessor.js +31 -31
  208. package/src/models/releaseModelResources.js +15 -15
  209. package/src/mvt/addMvtCrossings.js +23 -23
  210. package/src/mvt/appendMvtBandTriangles.js +42 -42
  211. package/src/mvt/appendMvtCoordinates.js +20 -20
  212. package/src/mvt/appendMvtPolygonTriangles.js +29 -29
  213. package/src/mvt/beginMvtPath.js +19 -19
  214. package/src/mvt/closeMvtPath.js +16 -16
  215. package/src/mvt/collectMvtEdges.js +29 -29
  216. package/src/mvt/createMvtReader.js +14 -14
  217. package/src/mvt/decodeVectorTile.js +39 -39
  218. package/src/mvt/expectMvtWire.js +11 -11
  219. package/src/mvt/finishMvtPath.js +14 -14
  220. package/src/mvt/finiteMvtCoordinate.js +14 -14
  221. package/src/mvt/groupMvtPolygons.js +35 -35
  222. package/src/mvt/isMvtFallbackError.js +13 -13
  223. package/src/mvt/mergeMvtActiveEdges.js +18 -18
  224. package/src/mvt/mvtEdgeX.js +12 -12
  225. package/src/mvt/mvtPathsVertices.js +15 -15
  226. package/src/mvt/mvtPolygonPaths.js +19 -19
  227. package/src/mvt/numericMvtValue.js +11 -11
  228. package/src/mvt/readMvtFeature.js +46 -46
  229. package/src/mvt/readMvtField.js +17 -17
  230. package/src/mvt/readMvtGeometry.js +42 -42
  231. package/src/mvt/readMvtInteger.js +22 -22
  232. package/src/mvt/readMvtKnownValue.js +30 -30
  233. package/src/mvt/readMvtLayer.js +40 -40
  234. package/src/mvt/readMvtMessage.js +18 -18
  235. package/src/mvt/readMvtNumber.js +18 -18
  236. package/src/mvt/readMvtNumbers.js +18 -18
  237. package/src/mvt/readMvtString.js +14 -14
  238. package/src/mvt/readMvtValue.js +29 -29
  239. package/src/mvt/skipMvtField.js +22 -22
  240. package/src/mvt/sortMvtActiveEdges.js +20 -20
  241. package/src/mvt/sortedMvtLevels.js +29 -29
  242. package/src/mvt/takeMvtBytes.js +18 -18
  243. package/src/mvt/tessellateVectorRings.js +26 -26
  244. package/src/mvt/triangulateVectorRings.js +23 -23
  245. package/src/native/beforeNativeRender.js +21 -21
  246. package/src/native/bypassNativeEvent.js +21 -21
  247. package/src/native/canScaleNativeStyle.js +26 -26
  248. package/src/native/compareNativeHits.js +10 -10
  249. package/src/native/createNativeMesh.js +46 -46
  250. package/src/native/forwardNativeError.js +8 -8
  251. package/src/native/getGridTerrainTile.js +47 -47
  252. package/src/native/gridTerrainElevation.js +34 -34
  253. package/src/native/isCurrentNativeLayer.js +11 -11
  254. package/src/native/loadGridTerrain.js +36 -36
  255. package/src/native/nativeEventSource.js +27 -27
  256. package/src/native/nativeProgram.js +28 -28
  257. package/src/native/nativeTerrainElevation.js +27 -27
  258. package/src/native/nativeVectorGeometry.js +30 -30
  259. package/src/native/orderNativeGridLayer.js +20 -20
  260. package/src/native/prepareGridTerrainRequests.js +23 -23
  261. package/src/native/pruneNativeResources.js +25 -25
  262. package/src/native/readyNativeGPU.js +13 -13
  263. package/src/native/rejectNativeReady.js +2 -2
  264. package/src/native/removeNativeEvents.js +20 -20
  265. package/src/native/resolveNativeReady.js +2 -2
  266. package/src/native/restoreNativeEvents.js +8 -8
  267. package/src/native/retainGridTerrain.js +15 -15
  268. package/src/native/styleNativeMesh.js +20 -20
  269. package/src/native/syncGridTile.js +28 -28
  270. package/src/native/syncImageOverlay.js +13 -13
  271. package/src/native/syncNativeStrokeAnchors.js +18 -18
  272. package/src/native/syncNativeStrokeZoom.js +34 -34
  273. package/src/native/syncTerrainGridTile.js +38 -38
  274. package/src/native/terrainGridMesh.js +47 -47
  275. package/src/native/updateNativeHover.js +15 -15
  276. package/src/native/updateNativeStrokeRadius.js +14 -14
  277. package/src/picking/hitColliderCell.js +29 -29
  278. package/src/picking/validateCameraInverse.js +15 -15
  279. package/src/projections/displayContainerPoint.js +32 -32
  280. package/src/projections/projectBridgePoint.js +17 -17
  281. package/src/projections/toPoint.js +13 -13
  282. package/src/projections/transformZoomAnimationPoint.js +8 -8
  283. package/src/projections/verticalGroundY.js +14 -14
  284. package/src/raster/rasterTileRange.js +32 -32
  285. package/src/raster/retainRasterTiles.js +21 -21
  286. package/src/rendering/collectVisibleMesh.js +48 -48
  287. package/src/rendering/compareMeshDepth.js +14 -14
  288. package/src/rendering/drawPipeline.js +44 -44
  289. package/src/rendering/nativeStrokeExpansion.js +11 -11
  290. package/src/rendering/prepareFrameBuffer.js +24 -24
  291. package/src/rendering/prepareMeshUniforms.js +36 -36
  292. package/src/rendering/revealRoofMesh.js +43 -43
  293. package/src/scene/addSceneLayer.js +24 -24
  294. package/src/scene/callLayer.js +34 -34
  295. package/src/scene/createLayer.js +13 -13
  296. package/src/scene/getLocation.js +12 -12
  297. package/src/scene/isNativeLayer.js +19 -19
  298. package/src/scene/removeSceneLayer.js +22 -22
  299. package/src/scene/reportLayerError.js +9 -9
  300. package/src/shaders/materialBaseShader.js +26 -26
  301. package/src/shaders/materialSurfaceShader.js +60 -60
  302. package/src/shaders/materialVertexShader.js +89 -89
  303. package/src/shaders/nativeStrokeShader.js +13 -13
  304. package/src/shaders/roofVertexShader.js +16 -16
  305. package/src/shadows/shadowMeshMatches.js +19 -19
  306. package/src/sources/buildAreaFeatures.js +23 -23
  307. package/src/sources/extrusionStyle.js +21 -21
  308. package/src/sources/featureAnchor.js +21 -21
  309. package/src/sources/groundOffset.js +9 -9
  310. package/src/sources/initVectorTiles.js +21 -21
  311. package/src/sources/isVectorTileSource.js +11 -11
  312. package/src/sources/matchesAreaTile.js +17 -17
  313. package/src/sources/pendingSourceAreas.js +28 -28
  314. package/src/sources/prepareAreaGeometryJob.js +34 -34
  315. package/src/sources/projectAreaPolygons.js +25 -25
  316. package/src/sources/readyVectorTiles.js +17 -17
  317. package/src/sunlight/addTimeControlToMap.js +18 -18
  318. package/src/sunlight/addTimeLayer.js +12 -12
  319. package/src/sunlight/initializeTimeControl.js +18 -18
  320. package/src/sunlight/onAddSun.js +37 -37
  321. package/src/sunlight/onAddTimeControl.js +12 -12
  322. package/src/sunlight/onRemoveSun.js +10 -10
  323. package/src/sunlight/removeSun.js +25 -25
  324. package/src/sunlight/removeTimeControl.js +14 -14
  325. package/src/sunlight/removeTimeLayer.js +11 -11
  326. package/src/sunlight/requestSunlightRender.js +12 -12
  327. package/src/sunlight/styleTimeControl.js +13 -13
  328. package/src/sunlight/tickSun.js +10 -10
  329. package/src/sunlight/updateCelestialDisc.js +23 -23
  330. package/src/sunlight/updateSun.js +44 -44
  331. package/src/sunlight/useLiveTime.js +11 -11
  332. package/src/sunlight/useSelectedTime.js +26 -26
  333. package/src/terrain/applyTerrain.js +30 -30
  334. package/src/terrain/copyTerrainTile.js +20 -20
  335. package/src/terrain/loadReadyTerrain.js +6 -6
  336. package/src/terrain/mapElevationOf.js +19 -19
  337. package/src/terrain/readBridges.js +13 -13
  338. package/src/terrain/readyTerrainOf.js +14 -14
  339. package/src/terrain/sampleTerrainTile.js +16 -16
  340. package/src/terrain/terrainTileQueue.js +34 -34
  341. package/src/textures/addImageState.js +13 -13
  342. package/src/textures/bindMeshTextures.js +57 -57
  343. package/src/textures/collectRoofTiles.js +23 -23
  344. package/src/textures/loadModelImage.js +29 -29
  345. package/src/textures/modelTextureFor.js +47 -47
  346. package/src/textures/prepareMeshTextures.js +31 -31
  347. package/src/textures/removeImageState.js +13 -13
  348. package/src/textures/resizeRoofTexture.js +32 -32
  349. package/src/textures/restoreMaterialTextures.js +22 -22
  350. package/src/textures/updateRoofAtlas.js +29 -29
  351. package/src/textures/uploadMeshTexture.js +32 -32
  352. package/src/textures/uploadNativeImage.js +26 -26
  353. package/src/textures/uploadRoofTile.js +29 -29
  354. package/src/traffic/createTrafficMesh.js +17 -17
  355. package/src/traffic/disposeTrafficObject.js +19 -19
  356. package/src/traffic/failTraffic.js +12 -12
  357. package/src/traffic/failedTrafficLoad.js +10 -10
  358. package/src/traffic/fetchTrafficLanes.js +21 -21
  359. package/src/traffic/loadedTrafficLanes.js +21 -21
  360. package/src/traffic/locateTraffic.js +20 -20
  361. package/src/traffic/moveTraffic.js +21 -21
  362. package/src/traffic/readyTraffic.js +10 -10
  363. package/src/traffic/refreshTrafficTrips.js +42 -42
  364. package/src/traffic/routeColor.js +13 -13
  365. package/src/traffic/startTraffic.js +12 -12
  366. package/src/traffic/trafficNow.js +15 -15
  367. package/src/traffic/trafficStatusText.js +13 -13
  368. package/src/traffic/trafficStorage.js +13 -13
  369. package/src/traffic/updateTraffic.js +13 -13
  370. package/src/traffic/updateTrafficLights.js +23 -23
  371. package/src/traffic/updateTrafficPose.js +15 -15
  372. package/src/traffic/updateTrafficTerrain.js +15 -15
  373. package/src/traffic/uploadTrafficLanes.js +27 -27
  374. package/src/transforms/composeLocalTransform.js +23 -23
  375. package/src/transforms/transformNativePoint.js +19 -19
  376. package/src/transforms/worldMatrixChanged.js +26 -26
  377. package/src/triangulation/clipEars.js +32 -32
  378. package/src/triangulation/connectHole.js +30 -30
  379. package/src/triangulation/cross.js +12 -12
  380. package/src/triangulation/equal.js +11 -11
  381. package/src/triangulation/intersects.js +21 -21
  382. package/src/triangulation/mergeHoles.js +19 -19
  383. package/src/triangulation/on.js +13 -13
  384. package/src/triangulation/polygonRings.js +22 -22
  385. package/src/triangulation/validateArea.js +19 -19
  386. package/src/utils/compareDistance.js +11 -11
  387. package/src/utils/yieldTask.js +12 -12
  388. package/src/vector-style/appendQuotedStyleCharacter.js +30 -30
  389. package/src/vector-style/arrayContainsRange.js +18 -18
  390. package/src/vector-style/evaluateBoolean.js +31 -31
  391. package/src/vector-style/evaluateCoalesceOrCase.js +34 -34
  392. package/src/vector-style/evaluateComparison.js +29 -29
  393. package/src/vector-style/evaluateIExpression.js +21 -21
  394. package/src/vector-style/evaluateInput.js +16 -16
  395. package/src/vector-style/evaluateInterpolate.js +36 -36
  396. package/src/vector-style/evaluateMatch.js +21 -21
  397. package/src/vector-style/evaluateMath.js +26 -26
  398. package/src/vector-style/evaluateMembership.js +29 -29
  399. package/src/vector-style/evaluateNegation.js +26 -26
  400. package/src/vector-style/evaluatePrimitive.js +21 -21
  401. package/src/vector-style/evaluateStep.js +20 -20
  402. package/src/vector-style/evaluateStyle.js +43 -43
  403. package/src/vector-style/evaluateToExpression.js +27 -27
  404. package/src/vector-style/fillVectorPaint.js +26 -26
  405. package/src/vector-style/lineVectorPaint.js +31 -31
  406. package/src/vector-style/parseFunctionalColor.js +23 -23
  407. package/src/vector-style/parseHexColor.js +20 -20
  408. package/src/vector-style/parseVectorStyle.js +20 -20
  409. package/src/vector-style/readPaintValue.js +17 -17
  410. package/src/vector-style/removeTrailingCommas.js +19 -19
  411. package/src/vector-style/scaleDashArray.js +25 -25
  412. package/src/vector-style/skipStyleComment.js +20 -20
  413. package/src/vector-style/stripStyleComments.js +28 -28
  414. package/src/vector-style/styleColor.js +18 -18
  415. package/src/vector-style/validateVectorLayers.js +18 -18
  416. package/src/vector-style/vectorPaint.js +17 -17
  417. package/src/vector-style/visibleStyle.js +16 -16
  418. package/src/vector-tiles/appendVectorBatch.js +34 -34
  419. package/src/vector-tiles/attachVectorTileBatch.js +25 -25
  420. package/src/vector-tiles/attachVectorTileBatches.js +26 -26
  421. package/src/vector-tiles/compareVectorLabelPriority.js +11 -11
  422. package/src/vector-tiles/compareVectorTileDistance.js +11 -11
  423. package/src/vector-tiles/createVectorLabel.js +37 -37
  424. package/src/vector-tiles/forwardVectorTileError.js +10 -10
  425. package/src/vector-tiles/loadVectorSprite.js +14 -14
  426. package/src/vector-tiles/loadVectorTile.js +45 -45
  427. package/src/vector-tiles/onVectorTileAdd.js +44 -44
  428. package/src/vector-tiles/onVectorTileMessage.js +15 -15
  429. package/src/vector-tiles/onVectorTileRemove.js +25 -25
  430. package/src/vector-tiles/onVectorTileWorkerError.js +16 -16
  431. package/src/vector-tiles/paintVectorTileBatch.js +18 -18
  432. package/src/vector-tiles/prepareVectorLabel.js +34 -34
  433. package/src/vector-tiles/prepareVectorStyleLayer.js +38 -38
  434. package/src/vector-tiles/prepareVectorTile.js +29 -29
  435. package/src/vector-tiles/projectVectorPaths.js +25 -25
  436. package/src/vector-tiles/projectVectorPoint.js +15 -15
  437. package/src/vector-tiles/projectVectorTriangles.js +28 -28
  438. package/src/vector-tiles/pruneVectorTiles.js +14 -14
  439. package/src/vector-tiles/pumpVectorTiles.js +21 -21
  440. package/src/vector-tiles/readTileJSON.js +27 -27
  441. package/src/vector-tiles/readVectorStyle.js +28 -28
  442. package/src/vector-tiles/refreshVectorTiles.js +8 -8
  443. package/src/vector-tiles/reserveVectorLabelCells.js +14 -14
  444. package/src/vector-tiles/retireVectorTileGroup.js +20 -20
  445. package/src/vector-tiles/revokeVectorWorkerUrl.js +14 -14
  446. package/src/vector-tiles/rotateVectorLabel.js +19 -19
  447. package/src/vector-tiles/rotateVectorLabels.js +9 -9
  448. package/src/vector-tiles/simplifyVectorPath.js +29 -29
  449. package/src/vector-tiles/updateVectorLabelMarker.js +36 -36
  450. package/src/vector-tiles/updateVectorLabelStyle.js +14 -14
  451. package/src/vector-tiles/updateVectorTileLabels.js +33 -33
  452. package/src/vector-tiles/updateVectorTilePaint.js +25 -25
  453. package/src/vector-tiles/updateVectorTiles.js +32 -32
  454. package/src/vector-tiles/validateVectorTileZooms.js +15 -15
  455. package/src/vector-tiles/vectorFeaturePaint.js +25 -25
  456. package/src/vector-tiles/vectorFeaturePaths.js +26 -26
  457. package/src/vector-tiles/vectorFeatureZoom.js +18 -18
  458. package/src/vector-tiles/vectorLabelAnchors.js +31 -31
  459. package/src/vector-tiles/vectorLabelCandidates.js +18 -18
  460. package/src/vector-tiles/vectorLabelCells.js +32 -32
  461. package/src/vector-tiles/vectorLabelIcon.js +38 -38
  462. package/src/vector-tiles/vectorLabelProperty.js +12 -12
  463. package/src/vector-tiles/vectorLabelText.js +19 -19
  464. package/src/vector-tiles/vectorSpriteIcon.js +19 -19
  465. package/src/vector-tiles/vectorStraightRun.js +23 -23
  466. package/src/vector-tiles/vectorStyleDependencies.js +22 -22
  467. package/src/vector-tiles/vectorStyleValue.js +16 -16
  468. package/src/vector-tiles/vectorStyleZoom.js +12 -12
  469. package/src/vector-tiles/vectorTileAwaited.js +17 -17
  470. package/src/vector-tiles/vectorTileOverlaps.js +12 -12
  471. package/src/vector-tiles/vectorTilePaint.js +18 -18
  472. package/src/vector-tiles/vectorTileSettings.js +27 -27
  473. package/src/vector-tiles/vectorTilesIdle.js +11 -11
  474. package/src/vector-tiles/vectorTolerance.js +11 -11
  475. package/src/vector-tiles/wrapVectorLabel.js +17 -17
  476. package/src/vehicles/boatModel.js +35 -35
  477. package/src/vehicles/busModel.js +13 -13
  478. package/src/vehicles/carModel.js +39 -39
  479. package/src/walk/initializeWalkControl.js +12 -12
  480. package/src/walk/isWalkBlocked.js +15 -15
  481. package/src/walk/landWalker.js +41 -41
  482. package/src/walk/moveWalker.js +37 -37
  483. package/src/walk/onAddWalkControl.js +40 -40
  484. package/src/walk/onRemoveWalkControl.js +17 -17
  485. package/src/walk/onWalkBlur.js +3 -3
  486. package/src/walk/onWalkTerrain.js +3 -3
  487. package/src/walk/resolveWalkerPosition.js +33 -33
  488. package/src/walk/stepWalkerHeight.js +18 -18
  489. package/src/walk/toggleWalking.js +4 -4
  490. package/src/walk/updateWalkerFrame.js +29 -29
  491. package/src/walk/updateWalkerView.js +31 -31
  492. package/src/weakmaps/cameraHandlersByMap.js +6 -6
  493. package/src/weakmaps/geometryWorkersByMap.js +6 -6
  494. package/src/weakmaps/nativeProgramsByRenderer.js +6 -6
  495. package/src/weakmaps/pathProjectionByMap.js +6 -6
  496. package/src/weakmaps/streamTerrainByLayer.js +6 -6
  497. package/src/weakmaps/streamTerrainByMap.js +6 -6
  498. package/src/weakmaps/sunByMap.js +6 -6
  499. package/src/weakmaps/vectorTileOptionsByLayer.js +6 -6
  500. package/src/weakmaps/vectorWorkerByLayer.js +6 -6
  501. package/src/weakmaps/walkByMap.js +6 -6
  502. package/src/weakmaps/workerMapByLayer.js +6 -6
  503. package/src/workers/acquireGeometryWorker.js +39 -39
  504. package/src/workers/buildAreaInWorker.js +24 -24
  505. package/src/workers/closeGeometryWorkers.js +16 -16
  506. package/src/workers/cogWorker.js +27 -27
  507. package/src/workers/createGeometryWorker.js +30 -30
  508. package/src/workers/geometryWorker.js +34 -34
  509. package/src/workers/getCogInWorker.js +18 -18
  510. package/src/workers/modelWorker.js +17 -17
  511. package/src/workers/openCogInWorker.js +22 -22
  512. package/src/workers/runSourceWorker.js +44 -44
  513. package/src/workers/settleGeometryWorker.js +16 -16
  514. package/src/workers/startGeometryWorker.js +23 -23
  515. package/src/workers/vectorTileWorker.js +15 -15
@@ -1,18 +1,18 @@
1
- import { readMvtInteger } from './readMvtInteger.js';
2
-
3
- /**
4
- * Read a protobuf varint as a safe JavaScript number.
5
- *
6
- * @param {Object} reader MVT byte reader.
7
- *
8
- * @returns {number} Decoded integer.
9
- *
10
- * @throws {Error} If the integer exceeds the safe numeric range.
11
- */
12
- export function readMvtNumber(reader) {
13
- const value = readMvtInteger(reader);
14
- if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
15
- throw /* alloc */ new Error('MVT integer exceeds safe range');
16
- }
17
- return Number(value);
18
- }
1
+ import { readMvtInteger } from './readMvtInteger.js';
2
+
3
+ /**
4
+ * Read a protobuf varint as a safe JavaScript number.
5
+ *
6
+ * @param {Object} reader MVT byte reader.
7
+ *
8
+ * @returns {number} Decoded integer.
9
+ *
10
+ * @throws {Error} If the integer exceeds the safe numeric range.
11
+ */
12
+ export function readMvtNumber(reader) {
13
+ const value = readMvtInteger(reader);
14
+ if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
15
+ throw /* alloc */ new Error('MVT integer exceeds safe range');
16
+ }
17
+ return Number(value);
18
+ }
@@ -1,18 +1,18 @@
1
- import { readMvtMessage } from './readMvtMessage.js';
2
- import { readMvtNumber } from './readMvtNumber.js';
3
-
4
- /**
5
- * Append packed or unpacked protobuf integers to a destination array.
6
- *
7
- * @param {Object} reader MVT byte reader.
8
- * @param {number} wire Protobuf wire type.
9
- * @param {Array<number>} target Destination array.
10
- */
11
- export function readMvtNumbers(reader, wire, target) {
12
- let packed;
13
- if (wire === 0) target.push(readMvtNumber(reader));
14
- else {
15
- packed = readMvtMessage(reader, wire);
16
- while (packed.pos < packed.bytes.length) target.push(readMvtNumber(packed));
17
- }
18
- }
1
+ import { readMvtMessage } from './readMvtMessage.js';
2
+ import { readMvtNumber } from './readMvtNumber.js';
3
+
4
+ /**
5
+ * Append packed or unpacked protobuf integers to a destination array.
6
+ *
7
+ * @param {Object} reader MVT byte reader.
8
+ * @param {number} wire Protobuf wire type.
9
+ * @param {Array<number>} target Destination array.
10
+ */
11
+ export function readMvtNumbers(reader, wire, target) {
12
+ let packed;
13
+ if (wire === 0) target.push(readMvtNumber(reader));
14
+ else {
15
+ packed = readMvtMessage(reader, wire);
16
+ while (packed.pos < packed.bytes.length) target.push(readMvtNumber(packed));
17
+ }
18
+ }
@@ -1,14 +1,14 @@
1
- import { mvtTextDecoder } from '../globals/mvtTextDecoder.js';
2
- import { readMvtMessage } from './readMvtMessage.js';
3
-
4
- /**
5
- * Decode a length-delimited UTF-8 string.
6
- *
7
- * @param {Object} reader MVT byte reader.
8
- * @param {number} wire Protobuf wire type.
9
- *
10
- * @returns {string} Decoded string.
11
- */
12
- export function readMvtString(reader, wire) {
13
- return mvtTextDecoder.decode(readMvtMessage(reader, wire).bytes);
14
- }
1
+ import { mvtTextDecoder } from '../globals/mvtTextDecoder.js';
2
+ import { readMvtMessage } from './readMvtMessage.js';
3
+
4
+ /**
5
+ * Decode a length-delimited UTF-8 string.
6
+ *
7
+ * @param {Object} reader MVT byte reader.
8
+ * @param {number} wire Protobuf wire type.
9
+ *
10
+ * @returns {string} Decoded string.
11
+ */
12
+ export function readMvtString(reader, wire) {
13
+ return mvtTextDecoder.decode(readMvtMessage(reader, wire).bytes);
14
+ }
@@ -1,29 +1,29 @@
1
- import { readMvtField } from './readMvtField.js';
2
- import { skipMvtField } from './skipMvtField.js';
3
- import { readMvtKnownValue } from './readMvtKnownValue.js';
4
-
5
- /**
6
- * Decode an MVT value message containing exactly one known value field.
7
- *
8
- * @param {Object} reader Value message reader.
9
- *
10
- * @returns {string|number|boolean} Decoded value.
11
- *
12
- * @throws {Error} If multiple known value fields are present.
13
- * @throws {Error} If no known value field is present.
14
- */
15
- export function readMvtValue(reader) {
16
- let value, found = false, field, wire;
17
- while (reader.pos < reader.bytes.length) {
18
- [field, wire] = readMvtField(reader);
19
- if (field < 1 || field > 7) {
20
- skipMvtField(reader, wire);
21
- continue;
22
- }
23
- if (found) throw /* alloc */ new Error('Multiple MVT value types');
24
- found = true;
25
- value = readMvtKnownValue(reader, field, wire);
26
- }
27
- if (!found) throw /* alloc */ new Error('Empty MVT value');
28
- return value;
29
- }
1
+ import { readMvtField } from './readMvtField.js';
2
+ import { skipMvtField } from './skipMvtField.js';
3
+ import { readMvtKnownValue } from './readMvtKnownValue.js';
4
+
5
+ /**
6
+ * Decode an MVT value message containing exactly one known value field.
7
+ *
8
+ * @param {Object} reader Value message reader.
9
+ *
10
+ * @returns {string|number|boolean} Decoded value.
11
+ *
12
+ * @throws {Error} If multiple known value fields are present.
13
+ * @throws {Error} If no known value field is present.
14
+ */
15
+ export function readMvtValue(reader) {
16
+ let value, found = false, field, wire;
17
+ while (reader.pos < reader.bytes.length) {
18
+ [field, wire] = readMvtField(reader);
19
+ if (field < 1 || field > 7) {
20
+ skipMvtField(reader, wire);
21
+ continue;
22
+ }
23
+ if (found) throw /* alloc */ new Error('Multiple MVT value types');
24
+ found = true;
25
+ value = readMvtKnownValue(reader, field, wire);
26
+ }
27
+ if (!found) throw /* alloc */ new Error('Empty MVT value');
28
+ return value;
29
+ }
@@ -1,22 +1,22 @@
1
- import { expectMvtWire } from './expectMvtWire.js';
2
- import { readMvtInteger } from './readMvtInteger.js';
3
- import { readMvtNumber } from './readMvtNumber.js';
4
- import { takeMvtBytes } from './takeMvtBytes.js';
5
-
6
- /**
7
- * Skip an unknown protobuf field according to its wire type.
8
- *
9
- * @param {Object} reader MVT byte reader.
10
- * @param {number} wire Protobuf wire type.
11
- *
12
- * @throws {Error} If the wire type is unsupported.
13
- */
14
- export function skipMvtField(reader, wire) {
15
- switch (wire) {
16
- case 0: readMvtInteger(reader); break;
17
- case 1: takeMvtBytes(reader, 8); break;
18
- case 2: takeMvtBytes(reader, readMvtNumber(reader)); break;
19
- case 5: takeMvtBytes(reader, 4); break;
20
- default: throw /* alloc */ new Error('Unsupported MVT wire type');
21
- }
22
- }
1
+ import { expectMvtWire } from './expectMvtWire.js';
2
+ import { readMvtInteger } from './readMvtInteger.js';
3
+ import { readMvtNumber } from './readMvtNumber.js';
4
+ import { takeMvtBytes } from './takeMvtBytes.js';
5
+
6
+ /**
7
+ * Skip an unknown protobuf field according to its wire type.
8
+ *
9
+ * @param {Object} reader MVT byte reader.
10
+ * @param {number} wire Protobuf wire type.
11
+ *
12
+ * @throws {Error} If the wire type is unsupported.
13
+ */
14
+ export function skipMvtField(reader, wire) {
15
+ switch (wire) {
16
+ case 0: readMvtInteger(reader); break;
17
+ case 1: takeMvtBytes(reader, 8); break;
18
+ case 2: takeMvtBytes(reader, readMvtNumber(reader)); break;
19
+ case 5: takeMvtBytes(reader, 4); break;
20
+ default: throw /* alloc */ new Error('Unsupported MVT wire type');
21
+ }
22
+ }
@@ -1,20 +1,20 @@
1
- import { mergeMvtActiveEdges } from './mergeMvtActiveEdges.js';
2
-
3
- /**
4
- * Stably sort active polygon edges in place by their x coordinate.
5
- *
6
- * @param {Array<Object>} active Active edges with x values.
7
- */
8
- export function sortMvtActiveEdges(active) {
9
- const sorted = /* alloc */ new Array(active.length);
10
- let width = 1, left, mid, right, i;
11
- while (width < active.length) {
12
- for (left = 0; left < active.length; left += width * 2) {
13
- mid = Math.min(left + width, active.length);
14
- right = Math.min(left + width * 2, active.length);
15
- mergeMvtActiveEdges(active, sorted, left, mid, right);
16
- }
17
- for (i = 0; i < active.length; i++) active[i] = sorted[i];
18
- width *= 2;
19
- }
20
- }
1
+ import { mergeMvtActiveEdges } from './mergeMvtActiveEdges.js';
2
+
3
+ /**
4
+ * Stably sort active polygon edges in place by their x coordinate.
5
+ *
6
+ * @param {Array<Object>} active Active edges with x values.
7
+ */
8
+ export function sortMvtActiveEdges(active) {
9
+ const sorted = /* alloc */ new Array(active.length);
10
+ let width = 1, left, mid, right, i;
11
+ while (width < active.length) {
12
+ for (left = 0; left < active.length; left += width * 2) {
13
+ mid = Math.min(left + width, active.length);
14
+ right = Math.min(left + width * 2, active.length);
15
+ mergeMvtActiveEdges(active, sorted, left, mid, right);
16
+ }
17
+ for (i = 0; i < active.length; i++) active[i] = sorted[i];
18
+ width *= 2;
19
+ }
20
+ }
@@ -1,29 +1,29 @@
1
- /**
2
- * Sort vertical levels and collapse values within the tessellation tolerance.
3
- *
4
- * @param {Set<number>} levels Unsorted vertical levels.
5
- *
6
- * @returns {Array<number>} Sorted distinct levels.
7
- */
8
- export function sortedMvtLevels(levels) {
9
- const sorted = /* alloc */ [];
10
- let y, gap = 0, i = 0, j, value, count = 0;
11
- for (y of levels) sorted.push(y);
12
- gap = Math.floor(sorted.length / 2);
13
- for (; gap > 0; gap = Math.floor(gap / 2)) {
14
- for (i = gap; i < sorted.length; i++) {
15
- value = sorted[i];
16
- j = i;
17
- while (j >= gap && sorted[j - gap] > value) {
18
- sorted[j] = sorted[j - gap];
19
- j -= gap;
20
- }
21
- sorted[j] = value;
22
- }
23
- }
24
- for (i = 0; i < sorted.length; i++) {
25
- if (!count || sorted[i] - sorted[count - 1] > 1e-8) sorted[count++] = sorted[i];
26
- }
27
- sorted.length = count;
28
- return sorted;
29
- }
1
+ /**
2
+ * Sort vertical levels and collapse values within the tessellation tolerance.
3
+ *
4
+ * @param {Set<number>} levels Unsorted vertical levels.
5
+ *
6
+ * @returns {Array<number>} Sorted distinct levels.
7
+ */
8
+ export function sortedMvtLevels(levels) {
9
+ const sorted = /* alloc */ [];
10
+ let y, gap = 0, i = 0, j, value, count = 0;
11
+ for (y of levels) sorted.push(y);
12
+ gap = Math.floor(sorted.length / 2);
13
+ for (; gap > 0; gap = Math.floor(gap / 2)) {
14
+ for (i = gap; i < sorted.length; i++) {
15
+ value = sorted[i];
16
+ j = i;
17
+ while (j >= gap && sorted[j - gap] > value) {
18
+ sorted[j] = sorted[j - gap];
19
+ j -= gap;
20
+ }
21
+ sorted[j] = value;
22
+ }
23
+ }
24
+ for (i = 0; i < sorted.length; i++) {
25
+ if (!count || sorted[i] - sorted[count - 1] > 1e-8) sorted[count++] = sorted[i];
26
+ }
27
+ sorted.length = count;
28
+ return sorted;
29
+ }
@@ -1,18 +1,18 @@
1
- /**
2
- * Advance an MVT reader over a bounded number of bytes.
3
- *
4
- * @param {Object} reader MVT byte reader.
5
- * @param {number} size Number of bytes to take.
6
- *
7
- * @returns {number} Starting byte offset.
8
- *
9
- * @throws {Error} If the size is invalid or exceeds remaining bytes.
10
- */
11
- export function takeMvtBytes(reader, size) {
12
- if (!Number.isSafeInteger(size) || size < 0 || size > reader.bytes.length - reader.pos) {
13
- throw /* alloc */ new Error('Truncated MVT field');
14
- }
15
- const start = reader.pos;
16
- reader.pos += size;
17
- return start;
18
- }
1
+ /**
2
+ * Advance an MVT reader over a bounded number of bytes.
3
+ *
4
+ * @param {Object} reader MVT byte reader.
5
+ * @param {number} size Number of bytes to take.
6
+ *
7
+ * @returns {number} Starting byte offset.
8
+ *
9
+ * @throws {Error} If the size is invalid or exceeds remaining bytes.
10
+ */
11
+ export function takeMvtBytes(reader, size) {
12
+ if (!Number.isSafeInteger(size) || size < 0 || size > reader.bytes.length - reader.pos) {
13
+ throw /* alloc */ new Error('Truncated MVT field');
14
+ }
15
+ const start = reader.pos;
16
+ reader.pos += size;
17
+ return start;
18
+ }
@@ -1,26 +1,26 @@
1
- import { addMvtCrossings } from './addMvtCrossings.js';
2
- import { appendMvtBandTriangles } from './appendMvtBandTriangles.js';
3
- import { collectMvtEdges } from './collectMvtEdges.js';
4
- import { sortedMvtLevels } from './sortedMvtLevels.js';
5
-
6
- /**
7
- * Tessellate closed polygon rings into even-odd horizontal bands.
8
- *
9
- * @param {Array} rings Closed tile-coordinate rings.
10
- *
11
- * @returns {Array} Triangle coordinate arrays.
12
- */
13
- export function tessellateVectorRings(rings) {
14
- const edges = /* alloc */ [], levels = /* alloc */ new Set(), triangles = /* alloc */ [];
15
- let sorted, i = 1, top, bottom;
16
- collectMvtEdges(rings, edges, levels);
17
- addMvtCrossings(edges, levels);
18
- sorted = sortedMvtLevels(levels);
19
- // ponytail: quadratic edge scan; use a sweep-line index for large datasets.
20
- for (; i < sorted.length; i++) {
21
- top = sorted[i - 1];
22
- bottom = sorted[i];
23
- if (bottom > top) appendMvtBandTriangles(edges, top, bottom, triangles);
24
- }
25
- return triangles;
26
- }
1
+ import { addMvtCrossings } from './addMvtCrossings.js';
2
+ import { appendMvtBandTriangles } from './appendMvtBandTriangles.js';
3
+ import { collectMvtEdges } from './collectMvtEdges.js';
4
+ import { sortedMvtLevels } from './sortedMvtLevels.js';
5
+
6
+ /**
7
+ * Tessellate closed polygon rings into even-odd horizontal bands.
8
+ *
9
+ * @param {Array} rings Closed tile-coordinate rings.
10
+ *
11
+ * @returns {Array} Triangle coordinate arrays.
12
+ */
13
+ export function tessellateVectorRings(rings) {
14
+ const edges = /* alloc */ [], levels = /* alloc */ new Set(), triangles = /* alloc */ [];
15
+ let sorted, i = 1, top, bottom;
16
+ collectMvtEdges(rings, edges, levels);
17
+ addMvtCrossings(edges, levels);
18
+ sorted = sortedMvtLevels(levels);
19
+ // ponytail: quadratic edge scan; use a sweep-line index for large datasets.
20
+ for (; i < sorted.length; i++) {
21
+ top = sorted[i - 1];
22
+ bottom = sorted[i];
23
+ if (bottom > top) appendMvtBandTriangles(edges, top, bottom, triangles);
24
+ }
25
+ return triangles;
26
+ }
@@ -1,23 +1,23 @@
1
- import { appendMvtPolygonTriangles } from './appendMvtPolygonTriangles.js';
2
- import { groupMvtPolygons } from './groupMvtPolygons.js';
3
- import { mvtPathsVertices } from './mvtPathsVertices.js';
4
- import { mvtPolygonPaths } from './mvtPolygonPaths.js';
5
-
6
- /**
7
- * Reuse City Mapper's triangulator in tile space, with even-odd tessellation
8
- * for quantized touching/crossing rings. Output triangles omit their closure.
9
- *
10
- * @param {Array} rings Closed MVT polygon rings.
11
- *
12
- * @returns {Array} Triangle coordinate arrays.
13
- */
14
- export function triangulateVectorRings(rings) {
15
- const polygons = groupMvtPolygons(rings), triangles = /* alloc */ [];
16
- let polygon, paths, vertices;
17
- for (polygon of polygons) {
18
- paths = mvtPolygonPaths(polygon);
19
- vertices = mvtPathsVertices(paths);
20
- appendMvtPolygonTriangles(polygon, paths, vertices, triangles);
21
- }
22
- return triangles;
23
- }
1
+ import { appendMvtPolygonTriangles } from './appendMvtPolygonTriangles.js';
2
+ import { groupMvtPolygons } from './groupMvtPolygons.js';
3
+ import { mvtPathsVertices } from './mvtPathsVertices.js';
4
+ import { mvtPolygonPaths } from './mvtPolygonPaths.js';
5
+
6
+ /**
7
+ * Reuse City Mapper's triangulator in tile space, with even-odd tessellation
8
+ * for quantized touching/crossing rings. Output triangles omit their closure.
9
+ *
10
+ * @param {Array} rings Closed MVT polygon rings.
11
+ *
12
+ * @returns {Array} Triangle coordinate arrays.
13
+ */
14
+ export function triangulateVectorRings(rings) {
15
+ const polygons = groupMvtPolygons(rings), triangles = /* alloc */ [];
16
+ let polygon, paths, vertices;
17
+ for (polygon of polygons) {
18
+ paths = mvtPolygonPaths(polygon);
19
+ vertices = mvtPathsVertices(paths);
20
+ appendMvtPolygonTriangles(polygon, paths, vertices, triangles);
21
+ }
22
+ return triangles;
23
+ }
@@ -1,21 +1,21 @@
1
- import { synchronizeNativeLayer } from './synchronizeNativeLayer.js';
2
- import { cameraViewByMap } from '../weakmaps/cameraViewByMap.js';
3
-
4
- /**
5
- * Synchronize a native layer and adjust its stroke scale before rendering.
6
- *
7
- * @param {Object} state Native layer state.
8
- */
9
- export function beforeNativeRender(state) {
10
- try {
11
- synchronizeNativeLayer(state);
12
- const uniform = state.meshes.get('stroke')?.program.uniforms.strokeScale;
13
- if (uniform) {
14
- const zoom = cameraViewByMap.get(state.map)?.zoom ?? state.map.getZoom();
15
- uniform.value = 2 ** (state.strokeZoom - zoom) * Number(state.source.options.weight) / state.strokeWeight;
16
- }
17
- } catch (error) {
18
- state.failed = true;
19
- state.source.fire('error', /* alloc */ { error });
20
- }
21
- }
1
+ import { synchronizeNativeLayer } from './synchronizeNativeLayer.js';
2
+ import { cameraViewByMap } from '../weakmaps/cameraViewByMap.js';
3
+
4
+ /**
5
+ * Synchronize a native layer and adjust its stroke scale before rendering.
6
+ *
7
+ * @param {Object} state Native layer state.
8
+ */
9
+ export function beforeNativeRender(state) {
10
+ try {
11
+ synchronizeNativeLayer(state);
12
+ const uniform = state.meshes.get('stroke')?.program.uniforms.strokeScale;
13
+ if (uniform) {
14
+ const zoom = cameraViewByMap.get(state.map)?.zoom ?? state.map.getZoom();
15
+ uniform.value = 2 ** (state.strokeZoom - zoom) * Number(state.source.options.weight) / state.strokeWeight;
16
+ }
17
+ } catch (error) {
18
+ state.failed = true;
19
+ state.source.fire('error', /* alloc */ { error });
20
+ }
21
+ }
@@ -1,21 +1,21 @@
1
- import { updateNativeHover } from './updateNativeHover.js';
2
-
3
- /**
4
- * Decide whether a DOM event should bypass native layer hit testing.
5
- *
6
- * @param {Object} map Leaflet map.
7
- * @param {Object} context Native event state for the map.
8
- * @param {Event} event Original DOM event.
9
- * @param {string} type Event type being dispatched.
10
- *
11
- * @returns {Element|boolean|null} The matching DOM target or whether testing should be bypassed.
12
- */
13
- export function bypassNativeEvent(map, context, event, type) {
14
- const target = event.target;
15
- const dom = target instanceof Element &&
16
- target.closest('.leaflet-marker-icon,.leaflet-popup,.leaflet-tooltip,.leaflet-control');
17
- if (dom && context.hovered && (type === context.move || type === context.out)) {
18
- updateNativeHover(map, context, event, null);
19
- }
20
- return dom || type === context.move && (map.dragging?.moving() || map._animatingZoom);
21
- }
1
+ import { updateNativeHover } from './updateNativeHover.js';
2
+
3
+ /**
4
+ * Decide whether a DOM event should bypass native layer hit testing.
5
+ *
6
+ * @param {Object} map Leaflet map.
7
+ * @param {Object} context Native event state for the map.
8
+ * @param {Event} event Original DOM event.
9
+ * @param {string} type Event type being dispatched.
10
+ *
11
+ * @returns {Element|boolean|null} The matching DOM target or whether testing should be bypassed.
12
+ */
13
+ export function bypassNativeEvent(map, context, event, type) {
14
+ const target = event.target;
15
+ const dom = target instanceof Element &&
16
+ target.closest('.leaflet-marker-icon,.leaflet-popup,.leaflet-tooltip,.leaflet-control');
17
+ if (dom && context.hovered && (type === context.move || type === context.out)) {
18
+ updateNativeHover(map, context, event, null);
19
+ }
20
+ return dom || type === context.move && (map.dragging?.moving() || map._animatingZoom);
21
+ }
@@ -1,26 +1,26 @@
1
- import { L } from '../globals/L.js';
2
- import { nativeScalableStyleKeys } from '../globals/nativeScalableStyleKeys.js';
3
-
4
- /**
5
- * Check whether a noninteractive native layer can update its style without rebuilding geometry.
6
- *
7
- * @param {string} name Layer method being called.
8
- * @param {Object} state Native layer state.
9
- * @param {Array} args Arguments passed to the layer method.
10
- *
11
- * @returns {boolean} Whether the style change can be applied by scaling.
12
- */
13
- export function canScaleNativeStyle(name, state, args) {
14
- const { source } = state;
15
- if (name !== 'setStyle' || source.options.interactive !== false || state.dirty && !state.zoomOnly) return false;
16
- const stroke = state.strokeCoordinates && state.meshes.get('stroke')?.program.uniforms.strokeScale;
17
- const fill = source instanceof L.Polygon && !source.options.stroke && state.meshes.has('fill');
18
- if (!stroke && !fill) return false;
19
- let key;
20
- if (args[0]) {
21
- for (key of Object.keys(args[0])) {
22
- if (!nativeScalableStyleKeys.has(key)) return false;
23
- }
24
- }
25
- return true;
26
- }
1
+ import { L } from '../globals/L.js';
2
+ import { nativeScalableStyleKeys } from '../globals/nativeScalableStyleKeys.js';
3
+
4
+ /**
5
+ * Check whether a noninteractive native layer can update its style without rebuilding geometry.
6
+ *
7
+ * @param {string} name Layer method being called.
8
+ * @param {Object} state Native layer state.
9
+ * @param {Array} args Arguments passed to the layer method.
10
+ *
11
+ * @returns {boolean} Whether the style change can be applied by scaling.
12
+ */
13
+ export function canScaleNativeStyle(name, state, args) {
14
+ const { source } = state;
15
+ if (name !== 'setStyle' || source.options.interactive !== false || state.dirty && !state.zoomOnly) return false;
16
+ const stroke = state.strokeCoordinates && state.meshes.get('stroke')?.program.uniforms.strokeScale;
17
+ const fill = source instanceof L.Polygon && !source.options.stroke && state.meshes.has('fill');
18
+ if (!stroke && !fill) return false;
19
+ let key;
20
+ if (args[0]) {
21
+ for (key of Object.keys(args[0])) {
22
+ if (!nativeScalableStyleKeys.has(key)) return false;
23
+ }
24
+ }
25
+ return true;
26
+ }
@@ -1,11 +1,11 @@
1
- /**
2
- * Sort native hits by descending render order and then ascending distance.
3
- *
4
- * @param {Object} a First hit.
5
- * @param {Object} b Second hit.
6
- *
7
- * @returns {number} Relative order of the hits.
8
- */
9
- export function compareNativeHits(a, b) {
10
- return b.object.renderOrder - a.object.renderOrder || a.distance - b.distance;
1
+ /**
2
+ * Sort native hits by descending render order and then ascending distance.
3
+ *
4
+ * @param {Object} a First hit.
5
+ * @param {Object} b Second hit.
6
+ *
7
+ * @returns {number} Relative order of the hits.
8
+ */
9
+ export function compareNativeHits(a, b) {
10
+ return b.object.renderOrder - a.object.renderOrder || a.distance - b.distance;
11
11
  }