leaflet-city-mapper 0.0.8 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1243) hide show
  1. package/README.md +6 -46
  2. package/dist/README.md +18 -0
  3. package/dist/leaflet-city-mapper-src.js +279 -110
  4. package/dist/leaflet-city-mapper-src.js.map +4 -4
  5. package/dist/leaflet-city-mapper-worker-src.js.map +2 -2
  6. package/dist/leaflet-city-mapper-worker.js.map +2 -2
  7. package/dist/leaflet-city-mapper.js +5 -5
  8. package/dist/leaflet-city-mapper.js.map +4 -4
  9. package/libs/README.md +18 -0
  10. package/libs/leaflet.js +1 -1
  11. package/package.json +5 -3
  12. package/src/README.md +148 -0
  13. package/src/animations/README.md +30 -0
  14. package/src/animations/cancelCameraAnimation.js +11 -9
  15. package/src/animations/cancelGridFade.js +5 -3
  16. package/src/animations/endZoom.js +0 -5
  17. package/src/animations/mapAnimateCamera.js +13 -3
  18. package/src/animations/mapStopPitchBearingAnimation.js +9 -2
  19. package/src/animations/onZoomAnim.js +5 -4
  20. package/src/animations/renderPendingZoomAnimation.js +1 -4
  21. package/src/animations/runCameraAnimations.js +7 -4
  22. package/src/animations/runGridFades.js +1 -4
  23. package/src/animations/runMarkerPanFrame.js +1 -1
  24. package/src/animations/scheduleCameraAnimation.js +11 -9
  25. package/src/animations/scheduleGridFade.js +5 -4
  26. package/src/animations/scheduleMarkerPan.js +10 -6
  27. package/src/animations/startZoom.js +0 -3
  28. package/src/animations/synchronizeZoomView.js +6 -1
  29. package/src/animations/updateZoomCamera.js +9 -5
  30. package/src/archives/README.md +28 -0
  31. package/src/archives/decodeDirectory.js +13 -2
  32. package/src/archives/decodeHeader.js +9 -2
  33. package/src/archives/decompress.js +10 -0
  34. package/src/archives/findDirectoryEntry.js +8 -0
  35. package/src/archives/findTile.js +14 -0
  36. package/src/archives/getDirectoryEntries.js +13 -2
  37. package/src/archives/getHeader.js +7 -2
  38. package/src/archives/getTileData.js +13 -0
  39. package/src/archives/getZxy.js +11 -3
  40. package/src/archives/loadDirectory.js +10 -0
  41. package/src/archives/loadSource.js +12 -3
  42. package/src/archives/readArchiveRange.js +18 -4
  43. package/src/archives/readVarint.js +11 -2
  44. package/src/archives/tileId.js +11 -2
  45. package/src/astronomy/README.md +25 -0
  46. package/src/astronomy/horizontalPosition.js +11 -0
  47. package/src/astronomy/moonPosition.js +9 -2
  48. package/src/astronomy/solarPosition.js +9 -2
  49. package/src/astronomy/solarTime.js +11 -1
  50. package/src/camera/README.md +30 -0
  51. package/src/camera/cameraMapReady.js +4 -6
  52. package/src/camera/cleanupCameraMap.js +6 -8
  53. package/src/camera/constrainCameraToBounds.js +1 -0
  54. package/src/camera/createSceneCamera.js +5 -1
  55. package/src/camera/fitCameraBounds.js +9 -1
  56. package/src/camera/getBearing.js +5 -0
  57. package/src/camera/getPitch.js +5 -0
  58. package/src/camera/initializeCameraMap.js +1 -3
  59. package/src/camera/mapCamera.js +0 -2
  60. package/src/camera/mapContainerPointToLayerPoint.js +7 -2
  61. package/src/camera/mapGetBearing.js +7 -2
  62. package/src/camera/mapGetBounds.js +5 -2
  63. package/src/camera/mapGetBoundsCenterZoom.js +13 -6
  64. package/src/camera/mapGetBoundsZoom.js +9 -2
  65. package/src/camera/mapGetCenterLayerPoint.js +5 -1
  66. package/src/camera/mapGetPitch.js +7 -2
  67. package/src/camera/mapLayerPointToContainerPoint.js +7 -1
  68. package/src/camera/mapLimitCenter.js +9 -2
  69. package/src/camera/mapLimitOffset.js +13 -7
  70. package/src/camera/mapPanBy.js +12 -5
  71. package/src/camera/mapPanInside.js +8 -2
  72. package/src/camera/mapResetNorth.js +8 -0
  73. package/src/camera/mapResetNorthPitch.js +8 -0
  74. package/src/camera/mapSetBearing.js +10 -0
  75. package/src/camera/mapSetPitch.js +10 -0
  76. package/src/camera/mapSetPitchAndBearing.js +12 -3
  77. package/src/camera/mapSetZoomAround.js +9 -1
  78. package/src/camera/mapTryAnimatedPan.js +8 -1
  79. package/src/camera/mapUpdateCameraOverlays.js +6 -0
  80. package/src/camera/setBearing.js +8 -0
  81. package/src/camera/setPitch.js +8 -0
  82. package/src/camera/updateMapCamera.js +6 -4
  83. package/src/camera/updateSceneCamera.js +7 -1
  84. package/src/camera/updateSky.js +1 -3
  85. package/src/cog/README.md +29 -0
  86. package/src/cog/decodeCogTile.js +13 -0
  87. package/src/cog/finiteCogValues.js +7 -0
  88. package/src/cog/getCogAssetEntry.js +11 -0
  89. package/src/cog/getCogBase.js +12 -0
  90. package/src/cog/getCogHeader.js +7 -0
  91. package/src/cog/getCogProfile.js +9 -0
  92. package/src/cog/getCogTile.js +13 -0
  93. package/src/cog/getColorTile.js +13 -0
  94. package/src/cog/getElevationTile.js +13 -0
  95. package/src/cog/hasCogProjection.js +7 -0
  96. package/src/cog/initCog.js +6 -0
  97. package/src/cog/invalidCogFullResponse.js +7 -0
  98. package/src/cog/openCog.js +11 -1
  99. package/src/cog/openCogAsset.js +8 -0
  100. package/src/cog/readCog.js +14 -0
  101. package/src/cog/readCogBlock.js +11 -0
  102. package/src/cog/readCogBody.js +10 -0
  103. package/src/cog/readCogDirectories.js +12 -0
  104. package/src/cog/readCogDirectory.js +13 -0
  105. package/src/cog/readCogLevel.js +9 -0
  106. package/src/cog/readCogTag.js +13 -0
  107. package/src/cog/validCogDimensions.js +9 -0
  108. package/src/cog/validCogEncoding.js +13 -0
  109. package/src/cog/validCogGeoArrays.js +9 -0
  110. package/src/cog/validCogGrid.js +13 -0
  111. package/src/cog/validCogTileCoordinates.js +9 -0
  112. package/src/cog/validateCogContainer.js +8 -0
  113. package/src/cog/validateCogContentRange.js +10 -0
  114. package/src/cog/validateCogOffsets.js +9 -0
  115. package/src/cog/validateCogRange.js +9 -0
  116. package/src/cog/validateCogResponse.js +11 -0
  117. package/src/collision/README.md +28 -0
  118. package/src/collision/advanceFeature.js +13 -0
  119. package/src/collision/boxNormal.js +29 -0
  120. package/src/collision/cachedCollider.js +18 -0
  121. package/src/collision/collectIntersections.js +28 -3
  122. package/src/collision/collectMeshes.js +6 -0
  123. package/src/collision/collideTrip.js +56 -0
  124. package/src/collision/collider.js +28 -18
  125. package/src/collision/countCrossings.js +35 -15
  126. package/src/collision/enclosesOrigin.js +13 -0
  127. package/src/collision/flipsNormal.js +15 -0
  128. package/src/collision/hiddenLightHit.js +11 -0
  129. package/src/collision/horizontalRay.js +13 -1
  130. package/src/collision/indexTriangle.js +7 -0
  131. package/src/collision/insideMesh.js +16 -2
  132. package/src/collision/insideWalker.js +7 -1
  133. package/src/collision/intersectMeshes.js +9 -1
  134. package/src/collision/localRay.js +10 -0
  135. package/src/collision/mergeHits.js +8 -0
  136. package/src/collision/missesBox.js +13 -0
  137. package/src/collision/rayBounds.js +9 -0
  138. package/src/collision/readTriangle.js +9 -0
  139. package/src/collision/slabDistance.js +14 -0
  140. package/src/collision/slabMiss.js +14 -0
  141. package/src/collision/sortCrossings.js +17 -0
  142. package/src/collision/sortHits.js +9 -1
  143. package/src/collision/trafficBounds.js +24 -0
  144. package/src/collision/trafficCollision.js +24 -49
  145. package/src/collision/trafficRay.js +21 -0
  146. package/src/collision/transformTriangle.js +9 -0
  147. package/src/collision/transformVertices.js +18 -0
  148. package/src/collision/triangleDistance.js +14 -1
  149. package/src/collision/vertexCount.js +8 -0
  150. package/src/collision/worldHit.js +12 -0
  151. package/src/colors/README.md +25 -0
  152. package/src/colors/formatRGB.js +7 -0
  153. package/src/colors/hslChannel.js +10 -0
  154. package/src/colors/mixColor.js +10 -0
  155. package/src/colors/parseColor.js +4 -1
  156. package/src/colors/toSRGB.js +7 -0
  157. package/src/controls/README.md +26 -0
  158. package/src/controls/acceptPitchDrag.js +7 -0
  159. package/src/controls/acceptRotateDrag.js +7 -0
  160. package/src/controls/addCameraHandler.js +7 -0
  161. package/src/controls/adjustCameraDrag.js +6 -8
  162. package/src/controls/cameraControls.js +5 -4
  163. package/src/controls/cameraDragClick.js +5 -1
  164. package/src/controls/cameraDragContextMenu.js +7 -3
  165. package/src/controls/cameraDragDown.js +5 -2
  166. package/src/controls/cameraDragEnd.js +8 -4
  167. package/src/controls/cameraDragMove.js +12 -8
  168. package/src/controls/changeCameraTouch.js +6 -8
  169. package/src/controls/cleanupCameraTouch.js +1 -4
  170. package/src/controls/compassAddHooks.js +1 -0
  171. package/src/controls/compassOrientation.js +7 -1
  172. package/src/controls/compassRemoveHooks.js +1 -0
  173. package/src/controls/containerResizeAddHooks.js +1 -0
  174. package/src/controls/containerResizeRemoveHooks.js +1 -0
  175. package/src/controls/dragCamera.js +11 -2
  176. package/src/controls/endAllCameraDrags.js +1 -2
  177. package/src/controls/endAllCameraTouches.js +1 -2
  178. package/src/controls/endCameraTouch.js +6 -0
  179. package/src/controls/endCameraTouchEvent.js +5 -2
  180. package/src/controls/failCompassPermission.js +6 -0
  181. package/src/controls/finishCameraDrag.js +6 -0
  182. package/src/controls/finishCompassPermission.js +7 -0
  183. package/src/controls/isEditableTarget.js +7 -0
  184. package/src/controls/loadCameraControls.js +9 -0
  185. package/src/controls/moveCameraTouch.js +9 -6
  186. package/src/controls/notifyCameraTouchChange.js +1 -0
  187. package/src/controls/pitchDragAddHooks.js +1 -1
  188. package/src/controls/pitchDragRemoveHooks.js +1 -0
  189. package/src/controls/refreshRotateControl.js +2 -0
  190. package/src/controls/refreshRotateFocus.js +3 -2
  191. package/src/controls/removeCameraDrag.js +15 -12
  192. package/src/controls/resizeMap.js +5 -0
  193. package/src/controls/rotateButtonClick.js +6 -1
  194. package/src/controls/rotateButtonKeydown.js +10 -4
  195. package/src/controls/rotateControl.js +9 -1
  196. package/src/controls/rotateOnAdd.js +7 -1
  197. package/src/controls/rotateOnRemove.js +5 -0
  198. package/src/controls/shiftRotateAddHooks.js +1 -1
  199. package/src/controls/shiftRotateRemoveHooks.js +1 -0
  200. package/src/controls/shiftRotateWheel.js +9 -4
  201. package/src/controls/startCameraTouch.js +5 -2
  202. package/src/core/README.md +28 -0
  203. package/src/core/adjustCameraMarkerPan.js +7 -2
  204. package/src/core/cameraCircleBounds.js +5 -1
  205. package/src/core/cameraMarkerDrag.js +1 -2
  206. package/src/core/cameraMarkerOnDrag.js +7 -4
  207. package/src/core/closestCameraLayerPoint.js +7 -1
  208. package/src/core/constructLayer.js +7 -0
  209. package/src/core/extendLeafletClass.js +7 -0
  210. package/src/core/extendTerrainPixelBounds.js +10 -0
  211. package/src/core/fireRasterLoad.js +1 -1
  212. package/src/core/gridlayerGetEvents.js +5 -2
  213. package/src/core/gridlayerGetTiledPixelBounds.js +7 -1
  214. package/src/core/initializeGridContainer.js +1 -1
  215. package/src/core/initializeNativeLayer.js +1 -4
  216. package/src/core/layerAddInitHook.js +5 -0
  217. package/src/core/layerCallInitHooks.js +1 -2
  218. package/src/core/layerMergeOptions.js +7 -0
  219. package/src/core/markerGetEvents.js +5 -2
  220. package/src/core/markerInitInteraction.js +8 -5
  221. package/src/core/markerSetIcon.js +11 -6
  222. package/src/core/markerSetPos.js +5 -2
  223. package/src/core/markerSetRotation.js +10 -0
  224. package/src/core/markerUpdateZIndex.js +6 -4
  225. package/src/core/popupAdjustPan.js +5 -2
  226. package/src/core/popupGetEvents.js +5 -1
  227. package/src/core/popupUpdatePosition.js +1 -2
  228. package/src/core/projectNativePath.js +7 -0
  229. package/src/core/redrawPath.js +5 -0
  230. package/src/core/removeLayer.js +10 -7
  231. package/src/core/setRotation.js +7 -0
  232. package/src/core/tooltipGetEvents.js +5 -1
  233. package/src/core/tooltipSetPosition.js +5 -2
  234. package/src/core/updateGridOpacity.js +2 -1
  235. package/src/core/whenReady.js +9 -6
  236. package/src/geometry/README.md +29 -0
  237. package/src/geometry/addBridges.js +8 -6
  238. package/src/geometry/addGeneratedTriangle.js +8 -4
  239. package/src/geometry/appendAreaTriangle.js +15 -0
  240. package/src/geometry/appendNativeTriangle.js +14 -0
  241. package/src/geometry/appendRouteDash.js +18 -0
  242. package/src/geometry/appendRouteSegment.js +13 -0
  243. package/src/geometry/assembleAreaGeometry.js +7 -0
  244. package/src/geometry/boundsQuad.js +8 -0
  245. package/src/geometry/box.js +10 -0
  246. package/src/geometry/bridgeEdge.js +7 -0
  247. package/src/geometry/bridgeElevation.js +8 -1
  248. package/src/geometry/bridgeFaces.js +7 -0
  249. package/src/geometry/bridgePaths.js +8 -0
  250. package/src/geometry/bridgePolygon.js +6 -0
  251. package/src/geometry/bridgeSides.js +7 -0
  252. package/src/geometry/buildGeometryParts.js +7 -0
  253. package/src/geometry/buildProjectedPoint.js +11 -0
  254. package/src/geometry/buildProjectedPolygon.js +9 -0
  255. package/src/geometry/circleAt.js +15 -2
  256. package/src/geometry/circleGeometry.js +6 -0
  257. package/src/geometry/clipLine.js +8 -1
  258. package/src/geometry/clipSegment.js +9 -0
  259. package/src/geometry/computeBounds.js +5 -2
  260. package/src/geometry/conformModelToTerrain.js +6 -3
  261. package/src/geometry/createLampRing.js +8 -0
  262. package/src/geometry/createModelGeometry.js +11 -1
  263. package/src/geometry/createRasterQuadGeometry.js +7 -1
  264. package/src/geometry/createTreeRing.js +8 -1
  265. package/src/geometry/crossVector.js +8 -0
  266. package/src/geometry/dashValues.js +9 -0
  267. package/src/geometry/dashedSegment.js +12 -0
  268. package/src/geometry/disk.js +9 -0
  269. package/src/geometry/diskAt.js +14 -2
  270. package/src/geometry/emitter.js +10 -0
  271. package/src/geometry/fillNativePolygon.js +8 -0
  272. package/src/geometry/generateTreeGeometry.js +11 -5
  273. package/src/geometry/indexBridge.js +8 -2
  274. package/src/geometry/instanceAreaGeometry.js +7 -1
  275. package/src/geometry/interpolateRoute.js +10 -2
  276. package/src/geometry/lampPostGeometry.js +9 -2
  277. package/src/geometry/lightGeometry.js +9 -2
  278. package/src/geometry/line.js +7 -0
  279. package/src/geometry/lineJoin.js +9 -0
  280. package/src/geometry/markerImageBounds.js +9 -0
  281. package/src/geometry/markerQuadCorners.js +9 -3
  282. package/src/geometry/meshShadowBounds.js +9 -0
  283. package/src/geometry/nativeGeometry.js +9 -1
  284. package/src/geometry/offsetBelowGround.js +7 -0
  285. package/src/geometry/polygon.js +7 -0
  286. package/src/geometry/quad.js +14 -0
  287. package/src/geometry/restoreGeometry.js +6 -0
  288. package/src/geometry/roofCoverage.js +12 -5
  289. package/src/geometry/roofFootprint.js +12 -4
  290. package/src/geometry/routeGeometry.js +7 -2
  291. package/src/geometry/samePoint.js +8 -0
  292. package/src/geometry/segment.js +9 -0
  293. package/src/geometry/setVertexColor.js +1 -1
  294. package/src/geometry/shadowBounds.js +8 -0
  295. package/src/geometry/subtractRoofTile.js +9 -0
  296. package/src/geometry/subtractVector.js +8 -0
  297. package/src/geometry/surface.js +11 -1
  298. package/src/geometry/terrainBuffers.js +10 -3
  299. package/src/geometry/terrainGrid.js +7 -2
  300. package/src/geometry/terrainTileGeometry.js +13 -4
  301. package/src/geometry/treeGeometry.js +7 -4
  302. package/src/geometry/triangle.js +11 -0
  303. package/src/geometry/validateTree.js +12 -0
  304. package/src/geometry/vertexNormals.js +8 -2
  305. package/src/geometry/visitNativeCoordinates.js +7 -0
  306. package/src/globals/CELL.js +6 -2
  307. package/src/globals/Compass.js +5 -0
  308. package/src/globals/ContainerResize.js +5 -0
  309. package/src/globals/HEIGHT.js +5 -0
  310. package/src/globals/L.js +5 -0
  311. package/src/globals/PitchDrag.js +5 -0
  312. package/src/globals/README.md +28 -0
  313. package/src/globals/ShiftRotate.js +5 -0
  314. package/src/globals/TILE_RADIUS.js +5 -0
  315. package/src/globals/TILE_SIZE.js +5 -0
  316. package/src/globals/TouchMode.js +5 -0
  317. package/src/globals/alphaBlend.js +5 -0
  318. package/src/globals/archiveDecoder.js +5 -0
  319. package/src/globals/archiveNorthWest.js +5 -0
  320. package/src/globals/archiveSouthEast.js +5 -0
  321. package/src/globals/atmosphereColor.js +5 -0
  322. package/src/globals/atmosphereStops.js +5 -0
  323. package/src/globals/blobParts.js +5 -0
  324. package/src/globals/cameraAngles.js +5 -0
  325. package/src/globals/cameraAnimatedOptions.js +5 -0
  326. package/src/globals/cameraAnimationFrame.js +5 -0
  327. package/src/globals/cameraAnimations.js +5 -0
  328. package/src/globals/cameraBearingSensitivity.js +5 -0
  329. package/src/globals/cameraDragSensitivity.js +5 -0
  330. package/src/globals/cameraDrags.js +5 -0
  331. package/src/globals/cameraEmptyOptions.js +5 -0
  332. package/src/globals/cameraFocusOptions.js +5 -0
  333. package/src/globals/cameraFov.js +5 -0
  334. package/src/globals/cameraListenerOptions.js +5 -0
  335. package/src/globals/cameraTouchStates.js +5 -0
  336. package/src/globals/cameraZeroPadding.js +5 -0
  337. package/src/globals/cogTags.js +5 -0
  338. package/src/globals/colorLayout.js +5 -0
  339. package/src/globals/colorTexture.js +5 -0
  340. package/src/globals/coreEventTypes.js +5 -0
  341. package/src/globals/coreMatrixKeys.js +5 -0
  342. package/src/globals/coreQuadIndices.js +5 -0
  343. package/src/globals/coreQuadUV.js +5 -0
  344. package/src/globals/coreSampler.js +5 -0
  345. package/src/globals/coreWhite.js +5 -0
  346. package/src/globals/cosObliquity.js +5 -0
  347. package/src/globals/coverageTiles.js +5 -0
  348. package/src/globals/dark.js +5 -0
  349. package/src/globals/defaultMaterial.js +5 -0
  350. package/src/globals/degrees.js +5 -0
  351. package/src/globals/demBuffer.js +5 -0
  352. package/src/globals/demLayout.js +5 -0
  353. package/src/globals/demSize.js +5 -0
  354. package/src/globals/demTarget.js +5 -0
  355. package/src/globals/demTexture.js +5 -0
  356. package/src/globals/depthBindGroup.js +5 -0
  357. package/src/globals/depthTexture.js +5 -0
  358. package/src/globals/directoryReader.js +5 -0
  359. package/src/globals/disabledShadow.js +5 -0
  360. package/src/globals/drawEntries.js +5 -0
  361. package/src/globals/drawFrameEntry.js +5 -0
  362. package/src/globals/drawMeshEntry.js +5 -0
  363. package/src/globals/drawSamplerEntries.js +5 -0
  364. package/src/globals/drawTerrainEntry.js +5 -0
  365. package/src/globals/drawTextureEntries.js +5 -0
  366. package/src/globals/earthCirc.js +5 -0
  367. package/src/globals/elevationWGSL.js +2 -0
  368. package/src/globals/fragmentShader.js +5 -0
  369. package/src/globals/frameBuffer.js +5 -0
  370. package/src/globals/frameCommands.js +5 -0
  371. package/src/globals/frameLayoutEntry.js +5 -0
  372. package/src/globals/geometryDecoder.js +5 -0
  373. package/src/globals/geometryEmpty.js +5 -0
  374. package/src/globals/geometryImageOptions.js +5 -0
  375. package/src/globals/geometryPixelStates.js +5 -0
  376. package/src/globals/geometryQuaternion.js +5 -0
  377. package/src/globals/geometryScale.js +5 -0
  378. package/src/globals/geometrySemantics.js +5 -0
  379. package/src/globals/geometryTranslation.js +5 -0
  380. package/src/globals/geometryWorkerUrl.js +5 -0
  381. package/src/globals/glass.js +5 -0
  382. package/src/globals/gridEvents.js +5 -0
  383. package/src/globals/gridFadeFrame.js +5 -0
  384. package/src/globals/halfRadians.js +5 -0
  385. package/src/globals/headerBounds.js +5 -0
  386. package/src/globals/headerFlags.js +5 -0
  387. package/src/globals/headerOffsets.js +5 -0
  388. package/src/globals/headlight.js +5 -0
  389. package/src/globals/hull.js +5 -0
  390. package/src/globals/instanceLayout.js +5 -0
  391. package/src/globals/lampDirections.js +5 -0
  392. package/src/globals/layerControlAddItem.js +5 -0
  393. package/src/globals/layerProto.js +5 -0
  394. package/src/globals/leafletLayer.js +5 -0
  395. package/src/globals/lightScale.js +5 -0
  396. package/src/globals/limbs.js +5 -1
  397. package/src/globals/loading.js +5 -0
  398. package/src/globals/mapMethods.js +5 -0
  399. package/src/globals/markerMethods.js +5 -0
  400. package/src/globals/markerPanFrame.js +5 -0
  401. package/src/globals/meshBindGroup.js +5 -0
  402. package/src/globals/meshBuffer.js +5 -0
  403. package/src/globals/meshCopySize.js +5 -0
  404. package/src/globals/meshImage.js +5 -0
  405. package/src/globals/meshLayoutEntry.js +5 -0
  406. package/src/globals/meshOffsets.js +5 -0
  407. package/src/globals/meshPipeline.js +5 -0
  408. package/src/globals/meshStack.js +5 -0
  409. package/src/globals/meshTarget.js +5 -0
  410. package/src/globals/moves.js +5 -1
  411. package/src/globals/mvtTextDecoder.js +5 -0
  412. package/src/globals/nativeMethodHandlers.js +5 -0
  413. package/src/globals/nativeScalableStyleKeys.js +5 -0
  414. package/src/globals/nextId.js +5 -0
  415. package/src/globals/normalLayout.js +5 -0
  416. package/src/globals/paints.js +5 -0
  417. package/src/globals/parts.js +5 -0
  418. package/src/globals/pendingGridFades.js +5 -0
  419. package/src/globals/pendingInitializations.js +5 -0
  420. package/src/globals/pendingMapChanges.js +5 -0
  421. package/src/globals/pendingMarkerPan.js +5 -0
  422. package/src/globals/pendingPlacements.js +5 -0
  423. package/src/globals/pendingRasterLoads.js +5 -0
  424. package/src/globals/pendingUpdates.js +5 -0
  425. package/src/globals/pendingZoomAnimations.js +5 -0
  426. package/src/globals/pipelineLayout.js +5 -0
  427. package/src/globals/popupEvents.js +5 -0
  428. package/src/globals/popupPan.js +5 -0
  429. package/src/globals/popupPosition.js +5 -0
  430. package/src/globals/positionLayout.js +5 -0
  431. package/src/globals/programEntries.js +5 -0
  432. package/src/globals/programLayout.js +5 -0
  433. package/src/globals/radians.js +5 -0
  434. package/src/globals/rasterBuffer.js +5 -0
  435. package/src/globals/rasterIndices.js +5 -0
  436. package/src/globals/rasterNormals.js +5 -0
  437. package/src/globals/rasterPoint.js +5 -0
  438. package/src/globals/rasterPositions.js +5 -0
  439. package/src/globals/rasterSampler.js +5 -0
  440. package/src/globals/rasterTexture.js +5 -0
  441. package/src/globals/rasterUVs.js +5 -0
  442. package/src/globals/removeLayer.js +5 -0
  443. package/src/globals/renderEmpty.js +5 -0
  444. package/src/globals/ringDirections.js +5 -0
  445. package/src/globals/roofBindGroup.js +5 -0
  446. package/src/globals/roofBlitSampler.js +5 -0
  447. package/src/globals/roofBuffer.js +5 -0
  448. package/src/globals/roofCommands.js +5 -0
  449. package/src/globals/roofCopySize.js +5 -0
  450. package/src/globals/roofImage.js +5 -0
  451. package/src/globals/roofMin.js +5 -0
  452. package/src/globals/roofOpacities.js +5 -0
  453. package/src/globals/roofPass.js +5 -0
  454. package/src/globals/roofPipeline.js +5 -0
  455. package/src/globals/roofSampler.js +5 -0
  456. package/src/globals/roofShader.js +5 -0
  457. package/src/globals/roofSignatures.js +5 -0
  458. package/src/globals/roofSize.js +5 -0
  459. package/src/globals/roofTarget.js +5 -0
  460. package/src/globals/roofTexture.js +5 -0
  461. package/src/globals/roofTiles.js +5 -0
  462. package/src/globals/roundProfile.js +5 -0
  463. package/src/globals/samplerLayoutEntries.js +5 -0
  464. package/src/globals/sceneCleanupFields.js +5 -0
  465. package/src/globals/sceneEmptyOptions.js +5 -0
  466. package/src/globals/scenePass.js +5 -0
  467. package/src/globals/sceneSunlightUniforms.js +5 -0
  468. package/src/globals/sceneTransferFields.js +5 -0
  469. package/src/globals/sceneWalkHandlers.js +5 -0
  470. package/src/globals/shadowBindGroup.js +5 -0
  471. package/src/globals/shadowBounds.js +5 -0
  472. package/src/globals/shadowCamera.js +5 -0
  473. package/src/globals/shadowDepthLayout.js +5 -0
  474. package/src/globals/shadowHigh.js +5 -0
  475. package/src/globals/shadowInstanceLayouts.js +5 -0
  476. package/src/globals/shadowLayouts.js +5 -0
  477. package/src/globals/shadowLow.js +5 -0
  478. package/src/globals/shadowMeshLayout.js +5 -0
  479. package/src/globals/shadowOffsets.js +5 -0
  480. package/src/globals/shadowPass.js +5 -0
  481. package/src/globals/shadowPipeline.js +5 -0
  482. package/src/globals/shadowPipelineLayout.js +5 -0
  483. package/src/globals/shadowShader.js +5 -0
  484. package/src/globals/shadowTexture.js +5 -0
  485. package/src/globals/shadowValues.js +5 -0
  486. package/src/globals/shirt.js +5 -0
  487. package/src/globals/sinObliquity.js +5 -0
  488. package/src/globals/sizes.js +5 -0
  489. package/src/globals/skin.js +5 -0
  490. package/src/globals/speed.js +5 -1
  491. package/src/globals/sunBindGroup.js +5 -0
  492. package/src/globals/taillight.js +5 -0
  493. package/src/globals/tau.js +5 -0
  494. package/src/globals/terrainLayoutEntry.js +5 -0
  495. package/src/globals/textureLayoutEntries.js +5 -0
  496. package/src/globals/tiledBounds.js +5 -0
  497. package/src/globals/tooltipEvents.js +5 -0
  498. package/src/globals/tooltipPosition.js +5 -0
  499. package/src/globals/trafficClocks.js +5 -0
  500. package/src/globals/trafficEmptyList.js +5 -0
  501. package/src/globals/trafficEmptyOptions.js +5 -0
  502. package/src/globals/trafficRouteMaterial.js +5 -0
  503. package/src/globals/trafficShader.js +5 -1
  504. package/src/globals/triangleContexts.js +5 -0
  505. package/src/globals/trousers.js +5 -0
  506. package/src/globals/types.js +5 -0
  507. package/src/globals/tyre.js +5 -0
  508. package/src/globals/uVLayout.js +5 -0
  509. package/src/globals/vectorStyleNamedColors.js +5 -0
  510. package/src/globals/vectorTileEvents.js +5 -0
  511. package/src/globals/vehicles.js +2 -0
  512. package/src/globals/vertexShader.js +5 -0
  513. package/src/globals/wantedTiles.js +5 -0
  514. package/src/globals/white.js +5 -0
  515. package/src/globals/workerCogSource.js +5 -0
  516. package/src/gpu/README.md +29 -0
  517. package/src/gpu/initializeRendererResources.js +6 -1
  518. package/src/gpu/initializeSharedRenderer.js +15 -8
  519. package/src/gpu/mountRenderer.js +7 -1
  520. package/src/gpu/releaseRenderer.js +8 -0
  521. package/src/gpu/rendererDeviceError.js +5 -3
  522. package/src/gpu/rendererDeviceLost.js +5 -3
  523. package/src/gpu/reportShaderCompilation.js +8 -0
  524. package/src/gpu/requestAdapter.js +8 -0
  525. package/src/gpu/requestDevice.js +9 -0
  526. package/src/gpu/showWebGPUWarning.js +5 -0
  527. package/src/index.js +0 -2
  528. package/src/layer-controls/README.md +25 -0
  529. package/src/layer-controls/layerControlInputId.js +7 -0
  530. package/src/layer-controls/layerCountTitle.js +10 -0
  531. package/src/layer-controls/placeEntry.js +9 -0
  532. package/src/layer-controls/placeEntryElement.js +7 -0
  533. package/src/layer-controls/placeUnderEntry.js +7 -0
  534. package/src/layer-controls/removeEntry.js +1 -0
  535. package/src/layer-controls/renderLayerCount.js +9 -1
  536. package/src/layer-controls/replaceEntry.js +1 -2
  537. package/src/layer-controls/runPlacements.js +1 -2
  538. package/src/layer-controls/underEntry.js +6 -2
  539. package/src/layer-controls/updateLayerCount.js +5 -1
  540. package/src/lighting/README.md +28 -0
  541. package/src/lighting/cacheLightGrid.js +9 -1
  542. package/src/lighting/collectLightMeshes.js +7 -1
  543. package/src/lighting/lightGrid.js +10 -1
  544. package/src/lighting/updatePointLights.js +7 -3
  545. package/src/lighting/visitLightCells.js +14 -1
  546. package/src/lighting/visitLightGridCells.js +11 -0
  547. package/src/lighting/worldLights.js +8 -1
  548. package/src/lighting/writeLightCell.js +9 -0
  549. package/src/materials/README.md +28 -0
  550. package/src/materials/createProgram.js +8 -4
  551. package/src/materials/createProgramLayout.js +8 -0
  552. package/src/materials/createProgramUniforms.js +7 -0
  553. package/src/materials/modelMaterialFor.js +8 -0
  554. package/src/materials/prepareMeshCutout.js +9 -0
  555. package/src/materials/terrainRasterProgram.js +15 -8
  556. package/src/materials/validateRoofMaterial.js +7 -0
  557. package/src/models/README.md +27 -0
  558. package/src/models/applyModelTransform.js +6 -2
  559. package/src/models/buildModelNodes.js +10 -0
  560. package/src/models/createModelContext.js +9 -0
  561. package/src/models/decodeModel.js +13 -2
  562. package/src/models/hasUnsupportedPrimitives.js +7 -0
  563. package/src/models/loadBuffer.js +10 -0
  564. package/src/models/loadModel.js +10 -7
  565. package/src/models/loadModelResources.js +8 -0
  566. package/src/models/modelNode.js +11 -1
  567. package/src/models/normalizeAccessor.js +10 -0
  568. package/src/models/prepareModel.js +10 -0
  569. package/src/models/prepareModelGeometry.js +10 -0
  570. package/src/models/prepareModelPrimitive.js +8 -0
  571. package/src/models/readAccessor.js +10 -4
  572. package/src/models/readAccessorValue.js +9 -0
  573. package/src/models/readAccessorValues.js +17 -0
  574. package/src/models/readModelAttributes.js +12 -0
  575. package/src/models/readModelIndices.js +12 -0
  576. package/src/models/readSparseAccessor.js +12 -0
  577. package/src/models/releaseModelResources.js +5 -0
  578. package/src/mvt/README.md +28 -0
  579. package/src/mvt/addMvtCrossings.js +6 -0
  580. package/src/mvt/appendMvtBandTriangles.js +11 -0
  581. package/src/mvt/appendMvtCoordinates.js +9 -0
  582. package/src/mvt/appendMvtPolygonTriangles.js +10 -0
  583. package/src/mvt/beginMvtPath.js +10 -0
  584. package/src/mvt/closeMvtPath.js +9 -0
  585. package/src/mvt/collectMvtEdges.js +10 -0
  586. package/src/mvt/createMvtReader.js +7 -0
  587. package/src/mvt/decodeVectorTile.js +7 -0
  588. package/src/mvt/expectMvtWire.js +8 -0
  589. package/src/mvt/finishMvtPath.js +9 -0
  590. package/src/mvt/finiteMvtCoordinate.js +7 -0
  591. package/src/mvt/groupMvtPolygons.js +10 -0
  592. package/src/mvt/isMvtFallbackError.js +7 -0
  593. package/src/mvt/mergeMvtActiveEdges.js +9 -0
  594. package/src/mvt/mvtEdgeX.js +8 -0
  595. package/src/mvt/mvtPathsVertices.js +7 -0
  596. package/src/mvt/mvtPolygonPaths.js +7 -0
  597. package/src/mvt/numericMvtValue.js +7 -0
  598. package/src/mvt/readMvtFeature.js +12 -0
  599. package/src/mvt/readMvtField.js +9 -0
  600. package/src/mvt/readMvtGeometry.js +13 -0
  601. package/src/mvt/readMvtInteger.js +10 -0
  602. package/src/mvt/readMvtKnownValue.js +9 -0
  603. package/src/mvt/readMvtLayer.js +9 -0
  604. package/src/mvt/readMvtMessage.js +8 -0
  605. package/src/mvt/readMvtNumber.js +9 -0
  606. package/src/mvt/readMvtNumbers.js +7 -0
  607. package/src/mvt/readMvtString.js +8 -0
  608. package/src/mvt/readMvtValue.js +10 -0
  609. package/src/mvt/skipMvtField.js +8 -0
  610. package/src/mvt/sortMvtActiveEdges.js +5 -0
  611. package/src/mvt/sortedMvtLevels.js +7 -0
  612. package/src/mvt/takeMvtBytes.js +10 -0
  613. package/src/mvt/tessellateVectorRings.js +7 -0
  614. package/src/mvt/triangulateVectorRings.js +4 -0
  615. package/src/native/README.md +27 -0
  616. package/src/native/beforeNativeRender.js +5 -0
  617. package/src/native/bypassNativeEvent.js +10 -0
  618. package/src/native/canScaleNativeStyle.js +9 -0
  619. package/src/native/compareNativeHits.js +8 -0
  620. package/src/native/createNativeMesh.js +15 -0
  621. package/src/native/disposeNativeLayer.js +3 -2
  622. package/src/native/forwardNativeError.js +5 -0
  623. package/src/native/getGridTerrainTile.js +13 -0
  624. package/src/native/gridTerrainElevation.js +8 -0
  625. package/src/native/handleNativeMapEvent.js +9 -4
  626. package/src/native/hideTargets.js +6 -0
  627. package/src/native/initNativeGPU.js +6 -3
  628. package/src/native/isCurrentNativeLayer.js +9 -4
  629. package/src/native/loadGridTerrain.js +10 -0
  630. package/src/native/nativeAddLatLng.js +7 -0
  631. package/src/native/nativeBringToBack.js +7 -0
  632. package/src/native/nativeBringToFront.js +7 -0
  633. package/src/native/nativeEventSource.js +9 -0
  634. package/src/native/nativeEvents.js +5 -4
  635. package/src/native/nativeLayer.js +10 -6
  636. package/src/native/nativeLayerMethod.js +9 -2
  637. package/src/native/nativeProgram.js +8 -0
  638. package/src/native/nativeRedraw.js +7 -0
  639. package/src/native/nativeSetBounds.js +7 -0
  640. package/src/native/nativeSetIcon.js +7 -0
  641. package/src/native/nativeSetLatLng.js +7 -0
  642. package/src/native/nativeSetLatLngs.js +7 -0
  643. package/src/native/nativeSetOpacity.js +7 -0
  644. package/src/native/nativeSetRadius.js +7 -0
  645. package/src/native/nativeSetStyle.js +7 -0
  646. package/src/native/nativeSetUrl.js +7 -0
  647. package/src/native/nativeSetZIndex.js +7 -0
  648. package/src/native/nativeSetZIndexOffset.js +7 -0
  649. package/src/native/nativeTerrainElevation.js +11 -0
  650. package/src/native/nativeVectorGeometry.js +7 -0
  651. package/src/native/orderNativeGridLayer.js +6 -0
  652. package/src/native/prepareGridTerrainRequests.js +7 -0
  653. package/src/native/pruneNativeResources.js +5 -0
  654. package/src/native/putNativeMesh.js +14 -0
  655. package/src/native/quadNativeMesh.js +11 -1
  656. package/src/native/readyNativeGPU.js +10 -6
  657. package/src/native/refreshNativeEvent.js +5 -0
  658. package/src/native/refreshNativeLayer.js +5 -3
  659. package/src/native/refreshNativeLayerContract.js +5 -2
  660. package/src/native/rejectNativeReady.js +5 -0
  661. package/src/native/removeNativeEvents.js +7 -3
  662. package/src/native/removeTargets.js +5 -2
  663. package/src/native/reorderNativeLayer.js +5 -3
  664. package/src/native/resolveNativeReady.js +3 -0
  665. package/src/native/restoreNativeEvents.js +3 -0
  666. package/src/native/retainGridTerrain.js +5 -0
  667. package/src/native/styleNativeMesh.js +11 -5
  668. package/src/native/syncGridLayer.js +5 -1
  669. package/src/native/syncGridTile.js +10 -0
  670. package/src/native/syncImageOverlay.js +8 -3
  671. package/src/native/syncMarker.js +5 -0
  672. package/src/native/syncNativeStrokeAnchors.js +6 -0
  673. package/src/native/syncNativeStrokeZoom.js +5 -0
  674. package/src/native/syncTerrainGridTile.js +10 -0
  675. package/src/native/syncVectorLayer.js +5 -0
  676. package/src/native/synchronizeNativeLayer.js +5 -3
  677. package/src/native/terrainGridMesh.js +13 -0
  678. package/src/native/updateNativeHover.js +8 -0
  679. package/src/native/updateNativeLayerView.js +3 -3
  680. package/src/native/updateNativeStrokeRadius.js +5 -0
  681. package/src/picking/README.md +29 -0
  682. package/src/picking/collectVisibleMesh.js +8 -0
  683. package/src/picking/findFeature.js +4 -4
  684. package/src/picking/hit.js +14 -7
  685. package/src/picking/hitColliderCell.js +10 -0
  686. package/src/picking/hitMesh.js +8 -2
  687. package/src/picking/onClick.js +6 -5
  688. package/src/picking/onPointerLeave.js +5 -5
  689. package/src/picking/onPointerMove.js +6 -5
  690. package/src/picking/pointerClick.js +5 -0
  691. package/src/picking/pointerLeave.js +1 -0
  692. package/src/picking/pointerMove.js +5 -0
  693. package/src/picking/raycast.js +2 -4
  694. package/src/picking/setHighlight.js +6 -5
  695. package/src/picking/shouldSkipOther.js +8 -2
  696. package/src/picking/showFeature.js +7 -4
  697. package/src/picking/validateCameraInverse.js +7 -0
  698. package/src/projections/README.md +28 -0
  699. package/src/projections/cameraAngles.js +8 -1
  700. package/src/projections/displayContainerPoint.js +9 -0
  701. package/src/projections/groundBounds.js +9 -1
  702. package/src/projections/localPixel.js +8 -0
  703. package/src/projections/localPixelForGeometry.js +8 -1
  704. package/src/projections/localPosition.js +8 -2
  705. package/src/projections/markerCameraIconPoint.js +9 -1
  706. package/src/projections/projectBridgePoint.js +13 -1
  707. package/src/projections/projectCameraPoint.js +11 -1
  708. package/src/projections/projectCelestialBody.js +11 -2
  709. package/src/projections/projectRing.js +11 -1
  710. package/src/projections/projectTreePoint.js +9 -1
  711. package/src/projections/toPoint.js +9 -1
  712. package/src/projections/transformZoomAnimationPoint.js +12 -5
  713. package/src/projections/verticalGroundY.js +11 -0
  714. package/src/projections/walkerLocalPosition.js +7 -0
  715. package/src/raster/README.md +28 -0
  716. package/src/raster/addRasterTile.js +10 -2
  717. package/src/raster/comparePendingTiles.js +8 -0
  718. package/src/raster/createRasterMesh.js +6 -5
  719. package/src/raster/finishRasterAttachment.js +9 -4
  720. package/src/raster/finishRasterTile.js +11 -2
  721. package/src/raster/getRasterEvents.js +7 -0
  722. package/src/raster/getRasterTileSize.js +5 -1
  723. package/src/raster/initRaster.js +6 -3
  724. package/src/raster/isRasterLoading.js +7 -3
  725. package/src/raster/loadRasterTile.js +8 -3
  726. package/src/raster/onPMTileAdd.js +6 -3
  727. package/src/raster/onPMTileRemove.js +6 -3
  728. package/src/raster/pruneRasterTiles.js +7 -3
  729. package/src/raster/pumpRasterTiles.js +5 -4
  730. package/src/raster/rasterTileRange.js +9 -0
  731. package/src/raster/readyRaster.js +8 -3
  732. package/src/raster/registerTerrainTile.js +9 -3
  733. package/src/raster/releaseRasterTile.js +6 -3
  734. package/src/raster/releaseRasterTiles.js +5 -3
  735. package/src/raster/removeRasterTile.js +6 -3
  736. package/src/raster/reportRasterError.js +8 -0
  737. package/src/raster/retainRasterTiles.js +7 -2
  738. package/src/raster/setPMTileOpacity.js +8 -0
  739. package/src/raster/setPMTileZIndex.js +8 -0
  740. package/src/raster/setRasterOpacity.js +6 -3
  741. package/src/raster/setRasterTerrain.js +6 -3
  742. package/src/raster/setRasterZIndex.js +6 -3
  743. package/src/raster/updateAttachedTiles.js +9 -3
  744. package/src/raster/updateRasterTiles.js +5 -5
  745. package/src/rendering/README.md +32 -0
  746. package/src/rendering/collectFrameMeshes.js +7 -3
  747. package/src/rendering/collectMeshes.js +11 -0
  748. package/src/rendering/collectVisibleMesh.js +9 -0
  749. package/src/rendering/compareMeshDepth.js +8 -0
  750. package/src/rendering/compareMeshes.js +10 -1
  751. package/src/rendering/createMesh.js +8 -5
  752. package/src/rendering/disposeMesh.js +6 -0
  753. package/src/rendering/drawGeometry.js +9 -2
  754. package/src/rendering/drawPipeline.js +10 -0
  755. package/src/rendering/drawSceneMeshes.js +9 -3
  756. package/src/rendering/nativeStrokeExpansion.js +7 -0
  757. package/src/rendering/prepareFrameBuffer.js +8 -2
  758. package/src/rendering/prepareFrameMeshes.js +10 -3
  759. package/src/rendering/prepareFrameUniforms.js +8 -3
  760. package/src/rendering/prepareMeshUniforms.js +10 -1
  761. package/src/rendering/render.js +2 -5
  762. package/src/rendering/resizeRenderer.js +6 -3
  763. package/src/rendering/revealRoofMesh.js +10 -1
  764. package/src/scene/README.md +36 -0
  765. package/src/scene/addRegisteredLayer.js +5 -4
  766. package/src/scene/addSceneLayer.js +9 -3
  767. package/src/scene/attachLayer.js +8 -3
  768. package/src/scene/attachSharedScene.js +6 -1
  769. package/src/scene/callLayer.js +11 -5
  770. package/src/scene/cancelUpdate.js +5 -3
  771. package/src/scene/createLayer.js +8 -2
  772. package/src/scene/createSceneNode.js +5 -1
  773. package/src/scene/emptyEvents.js +5 -0
  774. package/src/scene/failAttachment.js +9 -3
  775. package/src/scene/get3DEvents.js +7 -3
  776. package/src/scene/getLocation.js +8 -4
  777. package/src/scene/init3D.js +6 -3
  778. package/src/scene/initializeLayer.js +9 -2
  779. package/src/scene/initializerFor.js +8 -0
  780. package/src/scene/isNativeLayer.js +8 -2
  781. package/src/scene/layerInitialize.js +7 -4
  782. package/src/scene/onAdd3DLayer.js +6 -4
  783. package/src/scene/onMapChange.js +0 -5
  784. package/src/scene/onRemove3DLayer.js +6 -5
  785. package/src/scene/ready3D.js +9 -3
  786. package/src/scene/releaseSharedScene.js +6 -2
  787. package/src/scene/removeLayerEvents.js +1 -3
  788. package/src/scene/removeSceneLayer.js +9 -3
  789. package/src/scene/renderPendingMapChange.js +1 -4
  790. package/src/scene/renderPendingUpdates.js +5 -4
  791. package/src/scene/reportLayerError.js +6 -0
  792. package/src/scene/resolveNextInitialization.js +5 -2
  793. package/src/scene/restoreObject.js +6 -3
  794. package/src/scene/scheduleSceneUpdate.js +7 -6
  795. package/src/scene/setParent.js +6 -2
  796. package/src/scene/traverse.js +7 -2
  797. package/src/shaders/README.md +29 -0
  798. package/src/shaders/materialBaseShader.js +9 -0
  799. package/src/shaders/materialShaders.js +9 -1
  800. package/src/shaders/materialSurfaceShader.js +13 -0
  801. package/src/shaders/materialVertexShader.js +22 -10
  802. package/src/shaders/nativeStrokeShader.js +7 -0
  803. package/src/shaders/roofVertexShader.js +7 -0
  804. package/src/shadows/README.md +28 -0
  805. package/src/shadows/bindSunlight.js +5 -3
  806. package/src/shadows/drawShadowMeshes.js +7 -2
  807. package/src/shadows/ensureShadowPipeline.js +7 -0
  808. package/src/shadows/renderSunlight.js +8 -4
  809. package/src/shadows/resizeSunlight.js +6 -3
  810. package/src/shadows/shadowCacheMatches.js +11 -1
  811. package/src/shadows/shadowMatrix.js +8 -1
  812. package/src/shadows/shadowMeshMatches.js +8 -0
  813. package/src/sources/README.md +33 -0
  814. package/src/sources/attachAreaMesh.js +5 -4
  815. package/src/sources/buildArea.js +13 -2
  816. package/src/sources/buildAreaFeature.js +7 -1
  817. package/src/sources/buildAreaFeatures.js +9 -0
  818. package/src/sources/compareAreaDistance.js +8 -0
  819. package/src/sources/extrusionStyle.js +11 -0
  820. package/src/sources/featureAnchor.js +12 -0
  821. package/src/sources/groundOffset.js +7 -0
  822. package/src/sources/initVectorTiles.js +6 -0
  823. package/src/sources/initializeGeoJSON.js +6 -3
  824. package/src/sources/isVectorTileSource.js +7 -0
  825. package/src/sources/matchesAreaTile.js +10 -0
  826. package/src/sources/pendingSourceAreas.js +9 -2
  827. package/src/sources/prepareAreaGeometryJob.js +10 -0
  828. package/src/sources/projectAreaPolygons.js +10 -0
  829. package/src/sources/pumpSourceAreas.js +6 -6
  830. package/src/sources/readyVectorTiles.js +7 -0
  831. package/src/sources/releaseArea.js +6 -4
  832. package/src/sources/setGeoJSONData.js +8 -3
  833. package/src/sources/setGeoJSONLayerData.js +7 -0
  834. package/src/sources/sourceAreaContext.js +9 -2
  835. package/src/sources/updateArea.js +5 -5
  836. package/src/sources/updateSourceStatus.js +6 -3
  837. package/src/sunlight/README.md +28 -0
  838. package/src/sunlight/addTimeControlToMap.js +8 -1
  839. package/src/sunlight/addTimeLayer.js +9 -4
  840. package/src/sunlight/atmosphere.js +9 -2
  841. package/src/sunlight/createSun.js +7 -0
  842. package/src/sunlight/initSunlight.js +5 -0
  843. package/src/sunlight/initializeTimeControl.js +8 -6
  844. package/src/sunlight/onAddSun.js +11 -2
  845. package/src/sunlight/onAddTimeControl.js +7 -0
  846. package/src/sunlight/onRemoveSun.js +1 -1
  847. package/src/sunlight/removeSun.js +7 -5
  848. package/src/sunlight/removeTimeControl.js +7 -1
  849. package/src/sunlight/removeTimeLayer.js +8 -5
  850. package/src/sunlight/requestSunlightRender.js +6 -3
  851. package/src/sunlight/styleTimeControl.js +6 -0
  852. package/src/sunlight/tickSun.js +5 -0
  853. package/src/sunlight/updateCelestialDisc.js +11 -0
  854. package/src/sunlight/updateSky.js +5 -3
  855. package/src/sunlight/updateSun.js +6 -4
  856. package/src/sunlight/useLiveTime.js +5 -0
  857. package/src/sunlight/useSelectedTime.js +6 -4
  858. package/src/terrain/README.md +30 -0
  859. package/src/terrain/applyTerrain.js +10 -4
  860. package/src/terrain/clearLayerTerrain.js +5 -3
  861. package/src/terrain/copyTerrainTile.js +8 -0
  862. package/src/terrain/getElevation.js +8 -5
  863. package/src/terrain/initTerrain.js +5 -3
  864. package/src/terrain/loadReadyTerrain.js +1 -0
  865. package/src/terrain/loadTerrain.js +10 -2
  866. package/src/terrain/loadTerrainTiles.js +10 -3
  867. package/src/terrain/mapElevationOf.js +8 -0
  868. package/src/terrain/onTerrainAdd.js +8 -4
  869. package/src/terrain/onTerrainChange.js +5 -5
  870. package/src/terrain/onTerrainRemove.js +6 -3
  871. package/src/terrain/readBridges.js +9 -0
  872. package/src/terrain/readyTerrainOf.js +7 -0
  873. package/src/terrain/sampleTerrainTile.js +9 -0
  874. package/src/terrain/setLayerTerrain.js +5 -3
  875. package/src/terrain/setTerrainHeight.js +5 -4
  876. package/src/terrain/terrainAtlas.js +8 -2
  877. package/src/terrain/terrainElevation.js +8 -2
  878. package/src/terrain/terrainTileQueue.js +10 -3
  879. package/src/textures/README.md +29 -0
  880. package/src/textures/addImageState.js +7 -2
  881. package/src/textures/attachRasterImage.js +1 -2
  882. package/src/textures/bindMeshTextures.js +7 -0
  883. package/src/textures/collectRoofTiles.js +9 -2
  884. package/src/textures/compareRoofTiles.js +8 -0
  885. package/src/textures/composeRoofAtlas.js +11 -3
  886. package/src/textures/destroyTexture.js +6 -4
  887. package/src/textures/destroyTextureAfterSubmission.js +9 -0
  888. package/src/textures/ensureRoofBlit.js +5 -0
  889. package/src/textures/loadModelImage.js +12 -2
  890. package/src/textures/modelTextureFor.js +12 -4
  891. package/src/textures/modelTextureSampler.js +7 -2
  892. package/src/textures/nativeImageError.js +5 -1
  893. package/src/textures/nativeImageRefresh.js +5 -2
  894. package/src/textures/nativeTextureFor.js +11 -3
  895. package/src/textures/prepareMeshTextures.js +8 -0
  896. package/src/textures/rebuildRoofAtlas.js +8 -3
  897. package/src/textures/removeImageState.js +8 -3
  898. package/src/textures/resizeRoofTexture.js +9 -2
  899. package/src/textures/restoreMaterialTextures.js +6 -0
  900. package/src/textures/textureBinding.js +9 -0
  901. package/src/textures/updateRoofAtlas.js +10 -4
  902. package/src/textures/updateRoofRaster.js +8 -0
  903. package/src/textures/uploadCanvasTexture.js +15 -0
  904. package/src/textures/uploadMeshTexture.js +6 -0
  905. package/src/textures/uploadNativeImage.js +13 -0
  906. package/src/textures/uploadRoofTile.js +6 -0
  907. package/src/traffic/README.md +30 -0
  908. package/src/traffic/addTraffic.js +5 -2
  909. package/src/traffic/clockMinutes.js +7 -0
  910. package/src/traffic/compareDepartures.js +8 -0
  911. package/src/traffic/createTrafficMesh.js +13 -2
  912. package/src/traffic/destroyTrafficGpu.js +5 -0
  913. package/src/traffic/disposeTrafficObject.js +13 -10
  914. package/src/traffic/drawTrafficRoute.js +5 -1
  915. package/src/traffic/failTraffic.js +6 -0
  916. package/src/traffic/failedTrafficLoad.js +10 -3
  917. package/src/traffic/featuresToTrafficLanes.js +8 -0
  918. package/src/traffic/fetchTrafficLanes.js +11 -0
  919. package/src/traffic/groundTraffic.js +5 -1
  920. package/src/traffic/initTraffic.js +17 -15
  921. package/src/traffic/loadTraffic.js +5 -0
  922. package/src/traffic/loadedTrafficLanes.js +11 -4
  923. package/src/traffic/locateTraffic.js +9 -0
  924. package/src/traffic/moveTraffic.js +6 -0
  925. package/src/traffic/placeTraffic.js +5 -0
  926. package/src/traffic/prepareTraffic.js +5 -3
  927. package/src/traffic/readyTraffic.js +7 -2
  928. package/src/traffic/rebaseTraffic.js +5 -3
  929. package/src/traffic/rebuildTrafficMesh.js +5 -1
  930. package/src/traffic/refreshTrafficTrips.js +10 -0
  931. package/src/traffic/removeTraffic.js +5 -2
  932. package/src/traffic/routeColor.js +7 -0
  933. package/src/traffic/scheduledTrips.js +5 -2
  934. package/src/traffic/startTraffic.js +7 -2
  935. package/src/traffic/tickTraffic.js +5 -3
  936. package/src/traffic/trafficBounds.js +5 -0
  937. package/src/traffic/trafficNow.js +9 -4
  938. package/src/traffic/trafficStatusText.js +8 -0
  939. package/src/traffic/trafficStorage.js +8 -0
  940. package/src/traffic/trafficTooltip.js +7 -0
  941. package/src/traffic/tripsAt.js +9 -2
  942. package/src/traffic/updateTraffic.js +10 -7
  943. package/src/traffic/updateTrafficLights.js +5 -0
  944. package/src/traffic/updateTrafficPose.js +7 -0
  945. package/src/traffic/updateTrafficTerrain.js +10 -5
  946. package/src/traffic/uploadTrafficLanes.js +6 -0
  947. package/src/traffic/vehicleOffsets.js +9 -3
  948. package/src/transforms/README.md +27 -0
  949. package/src/transforms/composeLocalTransform.js +7 -0
  950. package/src/transforms/modelNodeMatrix.js +7 -2
  951. package/src/transforms/transformNativePoint.js +12 -0
  952. package/src/transforms/updateWorldMatrix.js +5 -2
  953. package/src/transforms/worldMatrixChanged.js +8 -0
  954. package/src/triangulation/README.md +26 -0
  955. package/src/triangulation/area.js +7 -0
  956. package/src/triangulation/clean.js +9 -0
  957. package/src/triangulation/clipEars.js +9 -0
  958. package/src/triangulation/connectHole.js +12 -0
  959. package/src/triangulation/containsVertex.js +10 -0
  960. package/src/triangulation/cross.js +9 -0
  961. package/src/triangulation/crossesBoundary.js +10 -0
  962. package/src/triangulation/crossesRing.js +9 -0
  963. package/src/triangulation/equal.js +8 -0
  964. package/src/triangulation/inside.js +8 -0
  965. package/src/triangulation/insideHole.js +8 -0
  966. package/src/triangulation/intersects.js +10 -0
  967. package/src/triangulation/isClockWise.js +4 -1
  968. package/src/triangulation/mergeHoles.js +8 -0
  969. package/src/triangulation/minimumX.js +7 -0
  970. package/src/triangulation/on.js +9 -0
  971. package/src/triangulation/polygonRings.js +8 -0
  972. package/src/triangulation/sortHoles.js +7 -0
  973. package/src/triangulation/triangulate.js +3 -2
  974. package/src/triangulation/validateArea.js +9 -0
  975. package/src/utils/README.md +16 -0
  976. package/src/utils/compareDistance.js +8 -0
  977. package/src/utils/noOperation.js +1 -0
  978. package/src/utils/wrap.js +7 -0
  979. package/src/utils/yieldTask.js +7 -0
  980. package/src/vector-style/README.md +27 -0
  981. package/src/vector-style/appendQuotedStyleCharacter.js +8 -0
  982. package/src/vector-style/arrayContainsRange.js +10 -0
  983. package/src/vector-style/evaluateBoolean.js +13 -0
  984. package/src/vector-style/evaluateCoalesceOrCase.js +13 -0
  985. package/src/vector-style/evaluateComparison.js +13 -0
  986. package/src/vector-style/evaluateIExpression.js +13 -0
  987. package/src/vector-style/evaluateInput.js +10 -0
  988. package/src/vector-style/evaluateInterpolate.js +9 -0
  989. package/src/vector-style/evaluateMatch.js +9 -0
  990. package/src/vector-style/evaluateMath.js +12 -0
  991. package/src/vector-style/evaluateMembership.js +11 -0
  992. package/src/vector-style/evaluateNegation.js +13 -0
  993. package/src/vector-style/evaluatePrimitive.js +12 -0
  994. package/src/vector-style/evaluateStep.js +9 -0
  995. package/src/vector-style/evaluateStyle.js +10 -0
  996. package/src/vector-style/evaluateToExpression.js +13 -0
  997. package/src/vector-style/fillVectorPaint.js +9 -0
  998. package/src/vector-style/lineVectorPaint.js +10 -0
  999. package/src/vector-style/parseFunctionalColor.js +9 -0
  1000. package/src/vector-style/parseHexColor.js +7 -0
  1001. package/src/vector-style/parseVectorStyle.js +7 -0
  1002. package/src/vector-style/readPaintValue.js +11 -0
  1003. package/src/vector-style/removeTrailingCommas.js +7 -0
  1004. package/src/vector-style/scaleDashArray.js +12 -0
  1005. package/src/vector-style/skipStyleComment.js +11 -0
  1006. package/src/vector-style/stripStyleComments.js +7 -0
  1007. package/src/vector-style/styleColor.js +7 -0
  1008. package/src/vector-style/validateVectorLayers.js +8 -0
  1009. package/src/vector-style/vectorPaint.js +9 -0
  1010. package/src/vector-style/visibleStyle.js +9 -0
  1011. package/src/vector-tiles/README.md +30 -0
  1012. package/src/vector-tiles/appendVectorBatch.js +12 -0
  1013. package/src/vector-tiles/attachVectorTileBatch.js +8 -0
  1014. package/src/vector-tiles/attachVectorTileBatches.js +11 -0
  1015. package/src/vector-tiles/compareVectorLabelPriority.js +8 -0
  1016. package/src/vector-tiles/compareVectorTileDistance.js +8 -0
  1017. package/src/vector-tiles/configureVectorTileLayer.js +8 -0
  1018. package/src/vector-tiles/createVectorLabel.js +15 -0
  1019. package/src/vector-tiles/forwardVectorTileError.js +5 -0
  1020. package/src/vector-tiles/loadVectorSprite.js +9 -0
  1021. package/src/vector-tiles/loadVectorTile.js +9 -0
  1022. package/src/vector-tiles/onVectorTileAdd.js +5 -0
  1023. package/src/vector-tiles/onVectorTileMessage.js +5 -0
  1024. package/src/vector-tiles/onVectorTileRemove.js +5 -0
  1025. package/src/vector-tiles/onVectorTileWorkerError.js +5 -0
  1026. package/src/vector-tiles/paintVectorTileBatch.js +6 -0
  1027. package/src/vector-tiles/prepareVectorLabel.js +9 -0
  1028. package/src/vector-tiles/prepareVectorStyleLayer.js +8 -0
  1029. package/src/vector-tiles/prepareVectorTile.js +13 -0
  1030. package/src/vector-tiles/projectVectorPaths.js +10 -0
  1031. package/src/vector-tiles/projectVectorPoint.js +9 -0
  1032. package/src/vector-tiles/projectVectorTriangles.js +10 -0
  1033. package/src/vector-tiles/pruneVectorTiles.js +3 -0
  1034. package/src/vector-tiles/pumpVectorTiles.js +3 -0
  1035. package/src/vector-tiles/readTileJSON.js +10 -0
  1036. package/src/vector-tiles/readVectorStyle.js +11 -0
  1037. package/src/vector-tiles/refreshVectorTiles.js +3 -0
  1038. package/src/vector-tiles/reserveVectorLabelCells.js +8 -0
  1039. package/src/vector-tiles/retireVectorTileGroup.js +7 -0
  1040. package/src/vector-tiles/revokeVectorWorkerUrl.js +5 -0
  1041. package/src/vector-tiles/rotateVectorLabel.js +7 -0
  1042. package/src/vector-tiles/rotateVectorLabels.js +3 -0
  1043. package/src/vector-tiles/simplifyVectorPath.js +8 -0
  1044. package/src/vector-tiles/updateVectorLabelMarker.js +9 -0
  1045. package/src/vector-tiles/updateVectorLabelStyle.js +6 -0
  1046. package/src/vector-tiles/updateVectorTileLabels.js +5 -0
  1047. package/src/vector-tiles/updateVectorTilePaint.js +5 -0
  1048. package/src/vector-tiles/updateVectorTiles.js +3 -0
  1049. package/src/vector-tiles/validateVectorTileZooms.js +9 -0
  1050. package/src/vector-tiles/vectorFeaturePaint.js +10 -0
  1051. package/src/vector-tiles/vectorFeaturePaths.js +10 -0
  1052. package/src/vector-tiles/vectorFeatureZoom.js +10 -0
  1053. package/src/vector-tiles/vectorLabelAnchors.js +8 -1
  1054. package/src/vector-tiles/vectorLabelCandidates.js +7 -0
  1055. package/src/vector-tiles/vectorLabelCells.js +9 -0
  1056. package/src/vector-tiles/vectorLabelIcon.js +8 -0
  1057. package/src/vector-tiles/vectorLabelProperty.js +9 -0
  1058. package/src/vector-tiles/vectorLabelText.js +9 -0
  1059. package/src/vector-tiles/vectorSpriteIcon.js +8 -0
  1060. package/src/vector-tiles/vectorStraightRun.js +10 -1
  1061. package/src/vector-tiles/vectorStyleDependencies.js +7 -0
  1062. package/src/vector-tiles/vectorStyleValue.js +11 -0
  1063. package/src/vector-tiles/vectorStyleZoom.js +7 -1
  1064. package/src/vector-tiles/vectorTileAwaited.js +8 -0
  1065. package/src/vector-tiles/vectorTileOverlaps.js +8 -0
  1066. package/src/vector-tiles/vectorTilePaint.js +8 -0
  1067. package/src/vector-tiles/vectorTileSettings.js +10 -0
  1068. package/src/vector-tiles/vectorTilesIdle.js +8 -0
  1069. package/src/vector-tiles/vectorTolerance.js +8 -1
  1070. package/src/vector-tiles/wrapVectorLabel.js +7 -1
  1071. package/src/vehicles/README.md +27 -0
  1072. package/src/vehicles/bicycleModel.js +7 -1
  1073. package/src/vehicles/boatBenches.js +5 -0
  1074. package/src/vehicles/boatModel.js +8 -8
  1075. package/src/vehicles/buildCarriage.js +9 -1
  1076. package/src/vehicles/busModel.js +11 -3
  1077. package/src/vehicles/carModel.js +12 -11
  1078. package/src/vehicles/metroModel.js +8 -0
  1079. package/src/vehicles/mirrorVehiclePart.js +11 -0
  1080. package/src/vehicles/pedestrianModel.js +7 -1
  1081. package/src/vehicles/tramModel.js +8 -0
  1082. package/src/walk/README.md +30 -0
  1083. package/src/walk/animateWalker.js +5 -4
  1084. package/src/walk/createWalk.js +6 -3
  1085. package/src/walk/initWalk.js +5 -0
  1086. package/src/walk/initializeWalkControl.js +6 -1
  1087. package/src/walk/isWalkBlocked.js +9 -0
  1088. package/src/walk/landWalker.js +12 -8
  1089. package/src/walk/moveWalker.js +17 -4
  1090. package/src/walk/onAddWalkControl.js +9 -0
  1091. package/src/walk/onRemoveWalkControl.js +5 -0
  1092. package/src/walk/onWalkBlur.js +1 -0
  1093. package/src/walk/onWalkKey.js +5 -2
  1094. package/src/walk/onWalkPointer.js +6 -0
  1095. package/src/walk/onWalkTerrain.js +4 -3
  1096. package/src/walk/placeWalker.js +1 -2
  1097. package/src/walk/resolveWalkerPosition.js +5 -0
  1098. package/src/walk/startWalking.js +1 -1
  1099. package/src/walk/stepWalkerHeight.js +7 -0
  1100. package/src/walk/stopWalking.js +1 -0
  1101. package/src/walk/toggleWalking.js +5 -4
  1102. package/src/walk/updateWalkerFrame.js +10 -0
  1103. package/src/walk/updateWalkerView.js +9 -0
  1104. package/src/weakmaps/README.md +33 -0
  1105. package/src/weakmaps/addedByLayer.js +5 -0
  1106. package/src/weakmaps/archiveHeaderByLayer.js +5 -0
  1107. package/src/weakmaps/areasByLayer.js +5 -0
  1108. package/src/weakmaps/boundsMethods.js +5 -0
  1109. package/src/weakmaps/bridgeMeshByLayer.js +5 -0
  1110. package/src/weakmaps/bridgesByLayer.js +5 -0
  1111. package/src/weakmaps/cameraAnimationByMap.js +5 -0
  1112. package/src/weakmaps/cameraBearingByMap.js +5 -0
  1113. package/src/weakmaps/cameraByLayer.js +5 -0
  1114. package/src/weakmaps/cameraDraggableByMap.js +5 -0
  1115. package/src/weakmaps/cameraFields.js +5 -0
  1116. package/src/weakmaps/cameraFrameByMap.js +5 -0
  1117. package/src/weakmaps/cameraHandlersByMap.js +5 -0
  1118. package/src/weakmaps/cameraMaps.js +5 -0
  1119. package/src/weakmaps/cameraPitchByMap.js +5 -0
  1120. package/src/weakmaps/cameraReadyByMap.js +5 -0
  1121. package/src/weakmaps/cameraTouchStateByMap.js +5 -0
  1122. package/src/weakmaps/cameraViewByMap.js +5 -0
  1123. package/src/weakmaps/cameraZIndexOffsetByLayer.js +5 -0
  1124. package/src/weakmaps/closestMethods.js +5 -0
  1125. package/src/weakmaps/colliders.js +5 -0
  1126. package/src/weakmaps/containerByLayer.js +5 -0
  1127. package/src/weakmaps/controlByLayer.js +5 -0
  1128. package/src/weakmaps/countStatusByLayer.js +5 -0
  1129. package/src/weakmaps/cursorByLayer.js +5 -0
  1130. package/src/weakmaps/demByLayer.js +5 -0
  1131. package/src/weakmaps/directoriesByLayer.js +5 -0
  1132. package/src/weakmaps/dragByHandler.js +5 -0
  1133. package/src/weakmaps/dragStates.js +5 -0
  1134. package/src/weakmaps/etagByLayer.js +5 -0
  1135. package/src/weakmaps/eventMapByLayer.js +5 -0
  1136. package/src/weakmaps/eventsByLayer.js +5 -0
  1137. package/src/weakmaps/fadeFrameByLayer.js +5 -0
  1138. package/src/weakmaps/fadeVersionByLayer.js +5 -0
  1139. package/src/weakmaps/frameByLayer.js +5 -0
  1140. package/src/weakmaps/geojsonByLayer.js +5 -0
  1141. package/src/weakmaps/geometryWorkersByMap.js +5 -0
  1142. package/src/weakmaps/gridInitializers.js +5 -0
  1143. package/src/weakmaps/groupByLayer.js +5 -0
  1144. package/src/weakmaps/headerByLayer.js +5 -0
  1145. package/src/weakmaps/highlightedFeatureByLayer.js +5 -0
  1146. package/src/weakmaps/hoveredFeatureByLayer.js +5 -0
  1147. package/src/weakmaps/imageStates.js +5 -0
  1148. package/src/weakmaps/inflightByLayer.js +5 -0
  1149. package/src/weakmaps/kindByLayer.js +5 -0
  1150. package/src/weakmaps/layersByLayer.js +5 -0
  1151. package/src/weakmaps/loadingTilesByLayer.js +5 -0
  1152. package/src/weakmaps/locationByLayer.js +5 -0
  1153. package/src/weakmaps/modelByLayer.js +5 -0
  1154. package/src/weakmaps/modelUrlByLayer.js +5 -0
  1155. package/src/weakmaps/nativeEventMaps.js +5 -0
  1156. package/src/weakmaps/nativeGPUBackByMap.js +5 -0
  1157. package/src/weakmaps/nativeGPUByLayer.js +5 -0
  1158. package/src/weakmaps/nativeGPUOrderByMap.js +5 -0
  1159. package/src/weakmaps/nativeProgramsByRenderer.js +5 -0
  1160. package/src/weakmaps/nativeRenderByLayer.js +5 -0
  1161. package/src/weakmaps/pathProjectionByMap.js +5 -0
  1162. package/src/weakmaps/pitchSkyByMap.js +5 -0
  1163. package/src/weakmaps/pointerEventsByLayer.js +5 -0
  1164. package/src/weakmaps/pruneAfterByLayer.js +5 -0
  1165. package/src/weakmaps/pruneVersionByLayer.js +5 -0
  1166. package/src/weakmaps/pruneWantedByLayer.js +5 -0
  1167. package/src/weakmaps/queuedByLayer.js +5 -0
  1168. package/src/weakmaps/rasterGeometryByLayer.js +5 -0
  1169. package/src/weakmaps/rasterProgramByLayer.js +5 -0
  1170. package/src/weakmaps/rasterTilesByLayer.js +5 -0
  1171. package/src/weakmaps/rasterVersionByLayer.js +5 -0
  1172. package/src/weakmaps/raycasterByLayer.js +5 -0
  1173. package/src/weakmaps/readyByLayer.js +5 -0
  1174. package/src/weakmaps/rendererByLayer.js +5 -0
  1175. package/src/weakmaps/rendererDevices.js +5 -0
  1176. package/src/weakmaps/rendererReadyByLayer.js +5 -0
  1177. package/src/weakmaps/renderers.js +5 -0
  1178. package/src/weakmaps/roofRasterByLayer.js +5 -0
  1179. package/src/weakmaps/roofRastersByLayer.js +5 -0
  1180. package/src/weakmaps/rootByLayer.js +5 -0
  1181. package/src/weakmaps/rotateControlByMap.js +5 -0
  1182. package/src/weakmaps/sceneByLayer.js +5 -0
  1183. package/src/weakmaps/sceneFields.js +5 -0
  1184. package/src/weakmaps/sceneLayers.js +5 -0
  1185. package/src/weakmaps/sceneOriginByLayer.js +5 -0
  1186. package/src/weakmaps/shadowMeshesByLayer.js +5 -0
  1187. package/src/weakmaps/sharedByLayer.js +5 -0
  1188. package/src/weakmaps/sizeByLayer.js +5 -0
  1189. package/src/weakmaps/state3dByLayer.js +5 -0
  1190. package/src/weakmaps/streamTerrainByLayer.js +5 -0
  1191. package/src/weakmaps/streamTerrainByMap.js +5 -0
  1192. package/src/weakmaps/sunByMap.js +5 -0
  1193. package/src/weakmaps/sunlightByControl.js +5 -0
  1194. package/src/weakmaps/sunlightByMap.js +5 -0
  1195. package/src/weakmaps/terrain3DByLayer.js +5 -0
  1196. package/src/weakmaps/terrain3DByMap.js +5 -0
  1197. package/src/weakmaps/terrainArchiveByLayer.js +5 -0
  1198. package/src/weakmaps/terrainBaseYByLayer.js +5 -0
  1199. package/src/weakmaps/terrainBoundsByLayer.js +5 -0
  1200. package/src/weakmaps/terrainControllerByLayer.js +5 -0
  1201. package/src/weakmaps/terrainGridsByLayer.js +5 -0
  1202. package/src/weakmaps/terrainLoadingByLayer.js +5 -0
  1203. package/src/weakmaps/terrainOriginElevationByLayer.js +5 -0
  1204. package/src/weakmaps/terrainPromiseByLayer.js +5 -0
  1205. package/src/weakmaps/terrainReadyByLayer.js +5 -0
  1206. package/src/weakmaps/terrainRequestByLayer.js +5 -0
  1207. package/src/weakmaps/terrainSourceByLayer.js +5 -0
  1208. package/src/weakmaps/terrainTilesByLayer.js +5 -0
  1209. package/src/weakmaps/terrainZoomByLayer.js +5 -0
  1210. package/src/weakmaps/tileZoomByLayer.js +5 -0
  1211. package/src/weakmaps/timeControlByMap.js +5 -0
  1212. package/src/weakmaps/tooltipByLayer.js +5 -0
  1213. package/src/weakmaps/touchByContainer.js +5 -0
  1214. package/src/weakmaps/touchPitchByMap.js +5 -0
  1215. package/src/weakmaps/touchRotateByMap.js +5 -0
  1216. package/src/weakmaps/trafficByLayer.js +5 -0
  1217. package/src/weakmaps/typeByLayer.js +5 -0
  1218. package/src/weakmaps/urlByLayer.js +5 -0
  1219. package/src/weakmaps/vectorTileOptionsByLayer.js +5 -0
  1220. package/src/weakmaps/vectorWorkerByLayer.js +5 -0
  1221. package/src/weakmaps/visibleMeshesByLayer.js +5 -0
  1222. package/src/weakmaps/walkByMap.js +5 -0
  1223. package/src/weakmaps/walkerByLayer.js +5 -0
  1224. package/src/weakmaps/wantedRasterTilesByLayer.js +5 -0
  1225. package/src/weakmaps/workerMapByLayer.js +5 -0
  1226. package/src/weakmaps/zoomLevelByLayer.js +5 -0
  1227. package/src/weakmaps/zoomTransitionsByLayer.js +5 -0
  1228. package/src/weakmaps/zoomViewByLayer.js +5 -0
  1229. package/src/workers/README.md +33 -0
  1230. package/src/workers/acquireGeometryWorker.js +10 -0
  1231. package/src/workers/buildAreaInWorker.js +8 -0
  1232. package/src/workers/closeGeometryWorkers.js +5 -0
  1233. package/src/workers/cogWorker.js +7 -0
  1234. package/src/workers/createGeometryWorker.js +10 -0
  1235. package/src/workers/geometryWorker.js +5 -0
  1236. package/src/workers/getCogInWorker.js +11 -0
  1237. package/src/workers/modelWorker.js +7 -0
  1238. package/src/workers/openCogInWorker.js +8 -0
  1239. package/src/workers/runSourceWorker.js +12 -0
  1240. package/src/workers/settleGeometryWorker.js +6 -0
  1241. package/src/workers/startGeometryWorker.js +7 -0
  1242. package/src/workers/vectorTileWorker.js +5 -0
  1243. package/src/collision/setTrafficNormal.js +0 -9
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Create the four corners of an axis-aligned x/z rectangle.
3
+ *
4
+ * @param {number} x0 Minimum x.
5
+ * @param {number} x1 Maximum x.
6
+ * @param {number} z0 Minimum z.
7
+ * @param {number} z1 Maximum z.
8
+ *
9
+ * @returns {Array<Array<number>>} Rectangle corners.
10
+ */
1
11
  export function box(x0, x1, z0, z1) {
2
12
  return /* alloc */ [
3
13
  /* alloc */ [x0, z0],
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Append a bridge deck edge as two triangles with outward normals.
3
+ *
4
+ * @param {Object} context Destination position, normal and color arrays.
5
+ * @param {Array<number>} p First edge point.
6
+ * @param {Array<number>} q Second edge point.
7
+ */
1
8
  export function bridgeEdge(context, p, q) {
2
9
  const { position, normal, color } = context;
3
10
  const length = Math.hypot(q[0] - p[0], q[2] - p[2]) || 1;
@@ -1,4 +1,11 @@
1
- /** Height inside a bridge deck, or null outside its triangles. */
1
+ /**
2
+ * Interpolate bridge deck height at a DEM pixel point.
3
+ *
4
+ * @param {L.Point} point DEM pixel coordinate.
5
+ * @param {Map} bridges Bridge triangle buckets, if present.
6
+ *
7
+ * @returns {number|null} Deck elevation, or null outside its triangles.
8
+ */
2
9
  export function bridgeElevation(point, bridges) {
3
10
  // Bridges bucketed by 64 DEM pixels.
4
11
  const bucket = bridges?.get(`${Math.floor(point.x / 64)}/${Math.floor(point.y / 64)}`);
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Append top and bottom bridge deck triangles with their normals and colors.
3
+ *
4
+ * @param {Object} context Destination position, normal and color arrays.
5
+ * @param {Array<Array<number>>} points Local bridge vertices.
6
+ * @param {Array<Array<number>>} triangles Triangle vertex indices.
7
+ */
1
8
  export function bridgeFaces(context, points, triangles) {
2
9
  const { position, normal, color } = context;
3
10
  let a, b, c, pa, pb, pc, i, k, p;
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Reconstruct ring paths from flattened projected bridge pixels.
3
+ *
4
+ * @param {Array<Array>} rings Original bridge rings.
5
+ * @param {Array<Array<number>>} pixels Flattened projected coordinates.
6
+ *
7
+ * @returns {Array<Array<Object>>} Projected x/y paths.
8
+ */
1
9
  export function bridgePaths(rings, pixels) {
2
10
  const paths = /* alloc */ [];
3
11
  let start = 0, ring, path, i;
@@ -5,6 +5,12 @@ import { indexBridge } from './indexBridge.js';
5
5
  import { bridgeFaces } from './bridgeFaces.js';
6
6
  import { bridgeSides } from './bridgeSides.js';
7
7
 
8
+ /**
9
+ * Project, triangulate and index a bridge polygon, adding its deck geometry.
10
+ *
11
+ * @param {Object} context Bridge projection and destination buffers.
12
+ * @param {Array<Array<Array<number>>>} polygon GeoJSON polygon rings with elevations.
13
+ */
8
14
  export function bridgePolygon(context, polygon) {
9
15
  const { backend: layer, map, zoom, crs, origin, metres, base } = context;
10
16
  const rings = /* alloc */ [];
@@ -1,5 +1,12 @@
1
1
  import { bridgeEdge } from './bridgeEdge.js';
2
2
 
3
+ /**
4
+ * Append the side faces of each bridge polygon ring.
5
+ *
6
+ * @param {Object} context Destination geometry buffers.
7
+ * @param {Array<Array<number>>} points Flattened local bridge points.
8
+ * @param {Array<Array>} rings Bridge rings defining point counts.
9
+ */
3
10
  export function bridgeSides(context, points, rings) {
4
11
  let start = 0, ring, i;
5
12
  for (ring of rings) {
@@ -1,5 +1,12 @@
1
1
  import { triangle } from './triangle.js';
2
2
 
3
+ /**
4
+ * Build colored extruded parts from bottom and top rings.
5
+ *
6
+ * @param {Array<Array>} parts Ring, bottom, top, tint and optional top-ring tuples.
7
+ *
8
+ * @returns {Object} Flat position, normal and color arrays.
9
+ */
3
10
  export function build(parts) {
4
11
  const position = /* alloc */ [];
5
12
  const normal = /* alloc */ [];
@@ -3,6 +3,17 @@ import { lampPostGeometry } from './lampPostGeometry.js';
3
3
  import { lightGeometry } from './lightGeometry.js';
4
4
  import { treeGeometry } from './treeGeometry.js';
5
5
 
6
+ /**
7
+ * Generate tree or night-light geometry for a projected point.
8
+ *
9
+ * @param {Object} context Area geometry and light state.
10
+ * @param {Object} projected Projected point with ground height.
11
+ * @param {Object} style Point geometry style.
12
+ * @param {Object} baseColor Parsed RGB color.
13
+ * @param {string} support Support identifier used to deduplicate lamp posts.
14
+ *
15
+ * @throws {Error} If a night-light flux is not finite and positive.
16
+ */
6
17
  export function buildProjectedPoint(context, projected, style, baseColor, support) {
7
18
  const { top } = style;
8
19
  if (context.backend.options.nightLight) {
@@ -2,6 +2,15 @@ import { triangulate } from '../triangulation/triangulate.js';
2
2
  import { addTriangle } from './appendAreaTriangle.js';
3
3
  import { isClockWise } from '../triangulation/isClockWise.js';
4
4
 
5
+ /**
6
+ * Append roof, optional bottom and side triangles for a projected polygon.
7
+ *
8
+ * @param {Object} context Destination area geometry.
9
+ * @param {Array<Array<Object>>} paths Projected outer ring and holes.
10
+ * @param {number} top Extrusion top height.
11
+ * @param {number} bottom Extrusion bottom height.
12
+ * @param {Object} baseColor Parsed RGB color.
13
+ */
5
14
  export function buildProjectedPolygon(context, paths, top, bottom, baseColor) {
6
15
  const points = /* alloc */ [];
7
16
  let path, point, a, b, c, index, sign, i, length, nx, nz;
@@ -1,5 +1,18 @@
1
- import { tau } from '../globals/tau.js';
2
- import { L } from '../globals/L.js';
1
+ import { tau } from '../globals/tau.js';
2
+ import { L } from '../globals/L.js';
3
+
4
+ /**
5
+ * Compute a point on an elliptical ring with an optional radial offset.
6
+ *
7
+ * @param {L.Point} center Ellipse center.
8
+ * @param {number} radius Horizontal radius.
9
+ * @param {number} radiusY Vertical radius.
10
+ * @param {number} count Ring subdivision count.
11
+ * @param {number} index Ring point index.
12
+ * @param {number} [offset] Offset applied to both radii.
13
+ *
14
+ * @returns {L.Point} Ring point.
15
+ */
3
16
  export function circleAt(center, radius, radiusY, count, index, offset = 0) {
4
17
  const angle = index * tau / count;
5
18
  return /* alloc */ new L.Point(center.x + Math.max(0, radius + offset) * Math.cos(angle),
@@ -5,6 +5,12 @@ import { line } from './line.js';
5
5
  import { triangle } from './appendNativeTriangle.js';
6
6
  import { projectNativePath } from '../core/projectNativePath.js';
7
7
 
8
+ /**
9
+ * Generate native circle or ellipse fill and stroke triangles.
10
+ *
11
+ * @param {L.Circle|L.CircleMarker} source Native circle layer.
12
+ * @param {Object} context Projection, style and destination buffers.
13
+ */
8
14
  export function circleGeometry(source, context) {
9
15
  const { map, point, fill, stroke, options, dash, width } = context;
10
16
  const center = map.project(source.getLatLng());
@@ -1,7 +1,14 @@
1
1
  import { samePoint } from './samePoint.js';
2
2
  import { clipSegment } from './clipSegment.js';
3
3
 
4
- /** Clip a geographic line to [west, south, east, north] without joining disjoint pieces. */
4
+ /**
5
+ * Clip a geographic line to [west, south, east, north] without joining disjoint pieces.
6
+ *
7
+ * @param {Array<Array<number>>} line Geographic coordinates.
8
+ * @param {Array<number>} bounds West, south, east and north.
9
+ *
10
+ * @returns {Array<Array<Array<number>>>} Clipped line pieces.
11
+ */
5
12
  export function clipLine(line, bounds) {
6
13
  const pieces = /* alloc */ [];
7
14
  let current;
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Clip a segment to geographic bounds, discarding zero-length results.
3
+ *
4
+ * @param {Array<number>} a Segment start.
5
+ * @param {Array<number>} b Segment end.
6
+ * @param {Array<number>} bounds West, south, east and north.
7
+ *
8
+ * @returns {Array<Array<number>>|null} Clipped endpoints, or null if outside.
9
+ */
1
10
  export function clipSegment(a, b, bounds) {
2
11
  const [west, south, east, north] = bounds;
3
12
  const dx = b[0] - a[0], dy = b[1] - a[1];
@@ -1,5 +1,8 @@
1
- /** Cache local AABB and center for ray picking and transparent mesh sorting. */
2
-
1
+ /**
2
+ * Cache local bounds, center and bounding radius, including any instance offsets.
3
+ *
4
+ * @param {Object} geometry Geometry with position and optional instance-offset attributes.
5
+ */
3
6
  export function computeBounds(geometry) {
4
7
  const min = /* alloc */ [Infinity, Infinity, Infinity];
5
8
  const max = /* alloc */ [-Infinity, -Infinity, -Infinity];
@@ -4,12 +4,9 @@ import { sceneOriginByLayer } from '../weakmaps/sceneOriginByLayer.js';
4
4
  import { sharedByLayer } from '../weakmaps/sharedByLayer.js';
5
5
  import { terrainReadyByLayer } from '../weakmaps/terrainReadyByLayer.js';
6
6
  import { terrainZoomByLayer } from '../weakmaps/terrainZoomByLayer.js';
7
-
8
7
  import { radians } from '../globals/radians.js';
9
8
  import { L } from '../globals/L.js';
10
9
  import { HEIGHT } from '../globals/HEIGHT.js';
11
-
12
-
13
10
  import { computeBounds } from './computeBounds.js';
14
11
  import { getElevation } from '../terrain/getElevation.js';
15
12
  import { update } from '../scene/scheduleSceneUpdate.js';
@@ -17,6 +14,12 @@ import { updateWorldMatrix } from '../transforms/updateWorldMatrix.js';
17
14
  import { vertexNormals } from './vertexNormals.js';
18
15
  import { collectMeshes } from '../collision/collectMeshes.js';
19
16
 
17
+ /**
18
+ * Conform model vertices to terrain or restore their original positions when disabled.
19
+ *
20
+ * @param {L.Layer} layer Model layer.
21
+ * @param {L.Layer} terrain Terrain layer, if available.
22
+ */
20
23
  export function conformModelToTerrain(layer, terrain) {
21
24
  if (!modelByLayer.get(layer)) return;
22
25
  const meshes = /* alloc */ [];
@@ -1,5 +1,13 @@
1
1
  import { lampDirections } from '../globals/lampDirections.js';
2
2
 
3
+ /**
4
+ * Create a ring of lamp points with ground height and fixed UVs.
5
+ *
6
+ * @param {Object} point Ring center and ground height.
7
+ * @param {number} radius Ring radius.
8
+ *
9
+ * @returns {Array<Object>} Lamp ring points.
10
+ */
3
11
  export function ring(point, radius) {
4
12
  const points = /* alloc */ new Array(lampDirections.length);
5
13
  let i;
@@ -1,7 +1,17 @@
1
1
  import { rendererByLayer } from '../weakmaps/rendererByLayer.js';
2
-
3
2
  import { createProgram } from '../materials/createProgram.js';
4
3
 
4
+ /**
5
+ * Create GPU buffers and a material program for a model primitive.
6
+ *
7
+ * @param {Object} context Model context tracking materials and resources.
8
+ * @param {Object} primitive glTF primitive specification.
9
+ * @param {Object} attributes Prepared geometry attributes.
10
+ *
11
+ * @returns {Object} Device, geometry and program.
12
+ *
13
+ * @throws {Error} If a textured material has no UV attribute.
14
+ */
5
15
  export function createModelGeometry(context, primitive, attributes) {
6
16
  const style = context.materials[primitive.material] || /* alloc */ {
7
17
  color: /* alloc */ [1, 1, 1], metallic: 1,
@@ -4,7 +4,13 @@ import { rasterNormals } from '../globals/rasterNormals.js';
4
4
  import { rasterUVs } from '../globals/rasterUVs.js';
5
5
  import { rasterIndices } from '../globals/rasterIndices.js';
6
6
 
7
-
7
+ /**
8
+ * Create GPU geometry for a shared indexed raster quad.
9
+ *
10
+ * @param {GPUDevice} device Device owning the buffers.
11
+ *
12
+ * @returns {Object} Quad geometry and attributes.
13
+ */
8
14
  export function createGeometry(device) {
9
15
  const attributes = /* alloc */ {
10
16
  position: /* alloc */ { size: 3, data: /* alloc */ new Float32Array(rasterPositions) },
@@ -1,6 +1,13 @@
1
1
  import { ringDirections } from '../globals/ringDirections.js';
2
2
 
3
-
3
+ /**
4
+ * Create a ring of projected tree points around a center.
5
+ *
6
+ * @param {Object} point Ring center and ground height.
7
+ * @param {number} radius Ring radius.
8
+ *
9
+ * @returns {Array<Object>} Tree ring points.
10
+ */
4
11
  export function ring(point, radius) {
5
12
  const result = /* alloc */ new Array(ringDirections.length);
6
13
  let i;
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Compute the cross product of two three-dimensional vectors.
3
+ *
4
+ * @param {ArrayLike<number>} a First vector.
5
+ * @param {ArrayLike<number>} b Second vector.
6
+ *
7
+ * @returns {Array<number>} Cross product.
8
+ */
1
9
  export function cross(a, b) {
2
10
  return /* alloc */ [
3
11
  a[1] * b[2] - a[2] * b[1],
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Parse a Leaflet dash array into a validated even-length numeric pattern.
3
+ *
4
+ * @param {Object} options Leaflet path options.
5
+ *
6
+ * @returns {Array<number>} Dash pattern, or an empty array for a solid line.
7
+ *
8
+ * @throws {Error} If a dash value is negative or non-finite.
9
+ */
1
10
  export function dashValues(options) {
2
11
  const values = Array.isArray(options.dashArray) ? options.dashArray :
3
12
  String(options.dashArray || '').trim().split(/[ ,]+/);
@@ -1,5 +1,17 @@
1
1
  import { segment } from './segment.js';
2
2
 
3
+ /**
4
+ * Append dashed geometry along a segment while preserving the pattern phase.
5
+ *
6
+ * @param {Object} context Line geometry context and dash pattern.
7
+ * @param {L.Point} a Segment start.
8
+ * @param {L.Point} b Segment end.
9
+ * @param {number} length Segment length.
10
+ * @param {number} distance Distance at the start of the segment.
11
+ * @param {number} period Dash pattern period.
12
+ *
13
+ * @throws {Error} If dash lengths cannot advance at these coordinates.
14
+ */
3
15
  export function dashedSegment(context, a, b, length, distance, period) {
4
16
  const dash = context.dash;
5
17
  let offset = 0, phase = ((distance % period) + period) % period, index = 0, end, delta, skipped = 0;
@@ -1,6 +1,15 @@
1
1
  import { triangle } from './appendNativeTriangle.js';
2
2
  import { diskAt } from './diskAt.js';
3
3
 
4
+ /**
5
+ * Append a triangle fan for a filled elliptical disk.
6
+ *
7
+ * @param {Function} point Vertex projection function.
8
+ * @param {L.Point} center Disk center.
9
+ * @param {number} radius Horizontal radius.
10
+ * @param {Array<number>} target Destination vertices.
11
+ * @param {number} [radiusY] Vertical radius.
12
+ */
4
13
  export function disk(point, center, radius, target, radiusY = radius) {
5
14
  if (!(radius > 0) || !(radiusY > 0)) return;
6
15
  const count = Math.max(12, Math.min(128, Math.ceil(Math.PI * Math.sqrt(radius))));
@@ -1,5 +1,17 @@
1
- import { tau } from '../globals/tau.js';
2
- import { L } from '../globals/L.js';
1
+ import { tau } from '../globals/tau.js';
2
+ import { L } from '../globals/L.js';
3
+
4
+ /**
5
+ * Compute a point on an elliptical disk perimeter.
6
+ *
7
+ * @param {L.Point} center Disk center.
8
+ * @param {number} radius Horizontal radius.
9
+ * @param {number} radiusY Vertical radius.
10
+ * @param {number} count Perimeter subdivision count.
11
+ * @param {number} index Perimeter point index.
12
+ *
13
+ * @returns {L.Point} Perimeter point.
14
+ */
3
15
  export function diskAt(center, radius, radiusY, count, index) {
4
16
  return /* alloc */ new L.Point(center.x + radius * Math.cos(index * tau / count),
5
17
  center.y + radiusY * Math.sin(index * tau / count));
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Construct a point on one axis-aligned plane of a light emitter.
3
+ *
4
+ * @param {Object} point Projected center and ground height.
5
+ * @param {number} u First local coordinate.
6
+ * @param {number} v Second local coordinate.
7
+ * @param {number} axis Plane axis index.
8
+ *
9
+ * @returns {Object} Projected point with ground height and UV coordinates.
10
+ */
1
11
  export function emitter(point, u, v, axis) {
2
12
  const r = 0.65;
3
13
  return /* alloc */ {
@@ -1,6 +1,14 @@
1
1
  import { triangle } from './appendNativeTriangle.js';
2
2
  import { triangulate } from '../triangulation/triangulate.js';
3
3
 
4
+ /**
5
+ * Append fill triangles for a native polygon, respecting pre-triangulated input.
6
+ *
7
+ * @param {Object} context Projection, style and fill buffer.
8
+ * @param {Array<Array<L.Point>>} projected Projected polygon rings.
9
+ *
10
+ * @throws {Error} If a pre-triangulated polygon does not have exactly three vertices and no holes.
11
+ */
4
12
  export function fillNativePolygon(context, projected) {
5
13
  const { options, fill, point } = context;
6
14
  if (options.triangulated) {
@@ -1,8 +1,14 @@
1
- import { triangleContexts } from '../globals/triangleContexts.js';
2
-
3
-
4
- import { addGeneratedTriangle } from './addGeneratedTriangle.js';
5
-
1
+ import { triangleContexts } from '../globals/triangleContexts.js';
2
+ import { addGeneratedTriangle } from './addGeneratedTriangle.js';
3
+
4
+ /**
5
+ * Run a point geometry generator with the current triangle destination context.
6
+ *
7
+ * @param {Object} context Destination area geometry.
8
+ * @param {Function} generator Point geometry generator.
9
+ * @param {Object} point Projected point.
10
+ * @param {Object} style Geometry style.
11
+ */
6
12
  export function generateTreeGeometry(context, generator, point, style) {
7
13
  triangleContexts.push(context);
8
14
  try {
@@ -1,6 +1,12 @@
1
- import { bridgesByLayer } from '../weakmaps/bridgesByLayer.js';
2
-
1
+ import { bridgesByLayer } from '../weakmaps/bridgesByLayer.js';
3
2
 
3
+ /**
4
+ * Index bridge triangles in 64-pixel buckets for elevation lookup.
5
+ *
6
+ * @param {L.Layer} layer Terrain layer owning the bridge index.
7
+ * @param {Array<Array<number>>} pixels Projected vertices including elevation.
8
+ * @param {Array<Array<number>>} triangles Triangle vertex indices.
9
+ */
4
10
  export function indexBridge(layer, pixels, triangles) {
5
11
  const bridgeTriangles = /* alloc */ [];
6
12
  let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
@@ -1,4 +1,10 @@
1
- /** Compact repeated features only when reconstructed float32 positions compare equal. */
1
+ /**
2
+ * Compact repeated features only when reconstructed float32 positions compare equal.
3
+ *
4
+ * @param {Object} context Area geometry buffers and feature ranges.
5
+ *
6
+ * @returns {Object} Instanced buffers, or the original context if compaction is unsuitable.
7
+ */
2
8
  export function instanceAreaGeometry(context) {
3
9
  const { positions, normals, colors, featureFaces } = context;
4
10
  if (context.backend.options.nightLight || featureFaces.length < 2) return context;
@@ -1,5 +1,13 @@
1
- /** Point and unit direction at distance `s` along `points` ([x, z, y?]) with cumulative `lengths`. */
2
-
1
+ /**
2
+ * Compute point and unit direction at a distance along a route.
3
+ *
4
+ * @param {Array<Array<number>>} points Route points as [x, z, y?].
5
+ * @param {Array<number>} lengths Cumulative route distances.
6
+ * @param {number} s Distance along the route.
7
+ * @param {Object} [target] Object to populate.
8
+ *
9
+ * @returns {Object} Position and horizontal direction.
10
+ */
3
11
  export function along(points, lengths, s, target) {
4
12
  let i = 1, end = lengths.length - 1;
5
13
  let middle;
@@ -2,8 +2,15 @@ import { parseColor } from "../colors/parseColor.js";
2
2
  import { ring } from './createLampRing.js';
3
3
  import { lampDirections } from '../globals/lampDirections.js';
4
4
 
5
- /** Schematic support and lamp head; wall-mounted fixtures do not get an invented pole. */
6
-
5
+ /**
6
+ * Generate a schematic support and lamp head.
7
+ *
8
+ * @param {Object} point Projected position and ground height.
9
+ * @param {Object} style Lamp height and pole radius.
10
+ * @param {Function} addTriangle Triangle destination callback.
11
+ *
12
+ * @throws {Error} If the pole radius is not finite and positive.
13
+ */
7
14
  export function lampPostGeometry(point, style, addTriangle) {
8
15
  const color = parseColor(0x50565a), radius = style.poleRadius;
9
16
  if (!Number.isFinite(radius) || radius <= 0) {
@@ -2,8 +2,15 @@ import { parseColor } from "../colors/parseColor.js";
2
2
  import { quad } from './quad.js';
3
3
  import { emitter } from './emitter.js';
4
4
 
5
- /** Three crossed emitter discs; illumination itself is evaluated on receiving surfaces. */
6
-
5
+ /**
6
+ * Generate three crossed emitter quads; illumination is evaluated on receiving surfaces.
7
+ *
8
+ * @param {Object} point Projected position and ground height.
9
+ * @param {Object} style Light radius, height and color.
10
+ * @param {Function} addTriangle Triangle destination callback.
11
+ *
12
+ * @throws {Error} If the light radius is not finite and positive.
13
+ */
7
14
  export function lightGeometry(point, style, addTriangle) {
8
15
  if (!Number.isFinite(style.lightRadius) || style.lightRadius <= 0) throw /* alloc */ new Error('Invalid light radius');
9
16
  const color = parseColor(style.color);
@@ -2,6 +2,13 @@ import { segment } from './segment.js';
2
2
  import { lineJoin } from './lineJoin.js';
3
3
  import { dashedSegment } from './dashedSegment.js';
4
4
 
5
+ /**
6
+ * Generate solid or dashed stroke geometry for a projected line or ring.
7
+ *
8
+ * @param {Object} context Line style and geometry buffers.
9
+ * @param {Array<L.Point>} points Projected line points.
10
+ * @param {boolean} closed Whether to connect the last point to the first.
11
+ */
5
12
  export function line(context, points, closed) {
6
13
  const { options, width, dash } = context;
7
14
  if (!options.stroke || width <= 0 || points.length < 2) return;
@@ -2,6 +2,15 @@ import { L } from '../globals/L.js';
2
2
  import { triangle } from './appendNativeTriangle.js';
3
3
  import { disk } from './disk.js';
4
4
 
5
+ /**
6
+ * Append a round, bevel or limited miter join between consecutive line segments.
7
+ *
8
+ * @param {Object} context Line style and geometry buffers.
9
+ * @param {Array<L.Point>} points Projected line points.
10
+ * @param {number} i Index of the join point.
11
+ * @param {L.Point} b Next point.
12
+ * @param {number} length Outgoing segment length.
13
+ */
5
14
  export function lineJoin(context, points, i, b, length) {
6
15
  const { options, width, point, stroke } = context;
7
16
  const a = points[i], radius = width / 2;
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Resolve and cache a marker icon or shadow's dimensions and anchor.
3
+ *
4
+ * @param {Object} state Native marker state.
5
+ * @param {string} key Image kind, such as shadow.
6
+ * @param {HTMLImageElement} image Image providing fallback dimensions.
7
+ *
8
+ * @returns {Array<number>} Width, height, anchor x and anchor y.
9
+ */
1
10
  export function markerImageBounds(state, key, image) {
2
11
  const options = state.source.options.icon.options;
3
12
  const dimensions = options[key === 'shadow' ? 'shadowSize' : 'iconSize'];
@@ -1,16 +1,22 @@
1
1
  import { cameraByLayer } from '../weakmaps/cameraByLayer.js';
2
2
  import { rootByLayer } from '../weakmaps/rootByLayer.js';
3
-
4
3
  import { coreMatrixKeys } from '../globals/coreMatrixKeys.js';
5
4
  import { markerCameraIconPoint } from '../projections/markerCameraIconPoint.js';
6
-
7
5
  import { localPosition } from '../projections/localPosition.js';
8
-
9
6
  import { transformNativePoint } from '../transforms/transformNativePoint.js';
10
7
  import { markerImageBounds } from './markerImageBounds.js';
11
8
  import { streamTerrainByMap } from '../weakmaps/streamTerrainByMap.js';
12
9
  import { mapElevationOf } from '../terrain/mapElevationOf.js';
13
10
 
11
+ /**
12
+ * Compute local scene corners for a camera-oriented marker image quad.
13
+ *
14
+ * @param {Object} state Native marker state and projection context.
15
+ * @param {string} key Image kind, such as shadow.
16
+ * @param {HTMLImageElement} image Image providing fallback dimensions.
17
+ *
18
+ * @returns {Array<Array<number>>} Four local scene corners.
19
+ */
14
20
  export function markerQuadCorners(state, key, image) {
15
21
  const { source, map, backend: layer } = state;
16
22
 
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Transform and cache a mesh's bounding box for shadow calculations.
3
+ *
4
+ * @param {Object} mesh Mesh containing the world-matrix version.
5
+ * @param {Object} bounds Local bounding box.
6
+ * @param {ArrayLike<number>} matrix World transformation matrix.
7
+ *
8
+ * @returns {Object} Cached transformed minimum and maximum bounds.
9
+ */
1
10
  export function meshShadowBounds(mesh, bounds, matrix) {
2
11
  let cached = mesh._shadowBounds;
3
12
  if (!cached || cached.version !== mesh._worldMatrixVersion || cached.bounds !== bounds) {
@@ -3,7 +3,15 @@ import { visit } from './visitNativeCoordinates.js';
3
3
  import { dashValues } from './dashValues.js';
4
4
  import { circleGeometry } from './circleGeometry.js';
5
5
 
6
- /** Leaflet paths become flat triangles; solid strokes retain stationary zoom anchors. */
6
+ /**
7
+ * Convert a Leaflet path into flat fill and stroke triangles.
8
+ *
9
+ * @param {L.Path} source Native path.
10
+ * @param {L.Map} map Map used to project coordinates.
11
+ * @param {Function} point Vertex projection function.
12
+ *
13
+ * @returns {Object} Fill and stroke vertex arrays.
14
+ */
7
15
  export function nativeGeometry(source, map, point) {
8
16
  const fill = /* alloc */ [];
9
17
  const stroke = /* alloc */ [];
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Offset a 3D point downward by the bridge deck thickness.
3
+ *
4
+ * @param {Array<number>} p Input point.
5
+ *
6
+ * @returns {Array<number>} Offset point.
7
+ */
1
8
  export function below(p) {
2
9
  return /* alloc */ [p[0], p[1] - 1.2, p[2]];
3
10
  }