leaflet-city-mapper 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -13
- package/cucumber.mjs +4 -0
- package/dist/leaflet-city-mapper.js +1 -1
- package/dist/leaflet-city-mapper.js.map +4 -4
- package/dist/utils/CELL.js +2 -0
- package/dist/utils/CELL.js.map +7 -0
- package/dist/utils/addBridges.js +2 -0
- package/dist/utils/addBridges.js.map +7 -0
- package/dist/utils/addRasterTile.js +2 -0
- package/dist/utils/addRasterTile.js.map +7 -0
- package/dist/utils/along.js +2 -0
- package/dist/utils/along.js.map +7 -0
- package/dist/utils/atmosphere.js +2 -0
- package/dist/utils/atmosphere.js.map +7 -0
- package/dist/utils/attach.js +2 -0
- package/dist/utils/attach.js.map +7 -0
- package/dist/utils/bindSunlight.js +2 -0
- package/dist/utils/bindSunlight.js.map +7 -0
- package/dist/utils/box.js +2 -0
- package/dist/utils/box.js.map +7 -0
- package/dist/utils/bridgeElevation.js +2 -0
- package/dist/utils/bridgeElevation.js.map +7 -0
- package/dist/utils/build.js +2 -0
- package/dist/utils/build.js.map +7 -0
- package/dist/utils/cameraControls.js +2 -0
- package/dist/utils/cameraControls.js.map +7 -0
- package/dist/utils/channel.js +2 -0
- package/dist/utils/channel.js.map +7 -0
- package/dist/utils/collider.js +2 -0
- package/dist/utils/collider.js.map +7 -0
- package/dist/utils/colliders.js +2 -0
- package/dist/utils/colliders.js.map +7 -0
- package/dist/utils/computeBounds.js +2 -0
- package/dist/utils/computeBounds.js.map +7 -0
- package/dist/utils/conformModelToTerrain.js +2 -0
- package/dist/utils/conformModelToTerrain.js.map +7 -0
- package/dist/utils/createMesh.js +2 -0
- package/dist/utils/createMesh.js.map +7 -0
- package/dist/utils/createProgram.js +3 -0
- package/dist/utils/createProgram.js.map +7 -0
- package/dist/utils/decodeDirectory.js +2 -0
- package/dist/utils/decodeDirectory.js.map +7 -0
- package/dist/utils/decodeHeader.js +2 -0
- package/dist/utils/decodeHeader.js.map +7 -0
- package/dist/utils/decodeModel.js +2 -0
- package/dist/utils/decodeModel.js.map +7 -0
- package/dist/utils/decompress.js +2 -0
- package/dist/utils/decompress.js.map +7 -0
- package/dist/utils/destroyTexture.js +2 -0
- package/dist/utils/destroyTexture.js.map +7 -0
- package/dist/utils/disposeMesh.js +2 -0
- package/dist/utils/disposeMesh.js.map +7 -0
- package/dist/utils/drawGeometry.js +2 -0
- package/dist/utils/drawGeometry.js.map +7 -0
- package/dist/utils/elevationWGSL.js +24 -0
- package/dist/utils/elevationWGSL.js.map +7 -0
- package/dist/utils/emptyNode.js +2 -0
- package/dist/utils/emptyNode.js.map +7 -0
- package/dist/utils/endZoom.js +2 -0
- package/dist/utils/endZoom.js.map +7 -0
- package/dist/utils/findFeature.js +2 -0
- package/dist/utils/findFeature.js.map +7 -0
- package/dist/utils/geometry.js +0 -1
- package/dist/utils/geometry.js.map +4 -4
- package/dist/utils/getElevation.js +2 -0
- package/dist/utils/getElevation.js.map +7 -0
- package/dist/utils/getHeader.js +2 -0
- package/dist/utils/getHeader.js.map +7 -0
- package/dist/utils/getZxy.js +2 -0
- package/dist/utils/getZxy.js.map +7 -0
- package/dist/utils/glass.js +2 -0
- package/dist/utils/glass.js.map +7 -0
- package/dist/utils/headlight.js +2 -0
- package/dist/utils/headlight.js.map +7 -0
- package/dist/utils/hit.js +2 -0
- package/dist/utils/hit.js.map +7 -0
- package/dist/utils/horizontalPosition.js +2 -0
- package/dist/utils/horizontalPosition.js.map +7 -0
- package/dist/utils/horizontalRay.js +2 -0
- package/dist/utils/horizontalRay.js.map +7 -0
- package/dist/utils/hull.js +2 -0
- package/dist/utils/hull.js.map +7 -0
- package/dist/utils/initSunlight.js +2 -0
- package/dist/utils/initSunlight.js.map +7 -0
- package/dist/utils/initTerrain.js +2 -0
- package/dist/utils/initTerrain.js.map +7 -0
- package/dist/utils/initTraffic.js +40 -0
- package/dist/utils/initTraffic.js.map +7 -0
- package/dist/utils/initWalk.js +2 -0
- package/dist/utils/initWalk.js.map +7 -0
- package/dist/utils/intersectMeshes.js +2 -0
- package/dist/utils/intersectMeshes.js.map +7 -0
- package/dist/utils/isClockWise.js +2 -0
- package/dist/utils/isClockWise.js.map +7 -0
- package/dist/utils/lampPostGeometry.js +2 -0
- package/dist/utils/lampPostGeometry.js.map +7 -0
- package/dist/utils/lightGeometry.js +2 -0
- package/dist/utils/lightGeometry.js.map +7 -0
- package/dist/utils/lightGrid.js +2 -0
- package/dist/utils/lightGrid.js.map +7 -0
- package/dist/utils/limbs.js +2 -0
- package/dist/utils/limbs.js.map +7 -0
- package/dist/utils/loadModel.js +2 -0
- package/dist/utils/loadModel.js.map +7 -0
- package/dist/utils/loadSource.js +2 -0
- package/dist/utils/loadSource.js.map +7 -0
- package/dist/utils/loadTerrain.js +2 -0
- package/dist/utils/loadTerrain.js.map +7 -0
- package/dist/utils/mapCamera.js +2 -0
- package/dist/utils/mapCamera.js.map +7 -0
- package/dist/utils/{shaders.js → materialShaders.js} +16 -8
- package/dist/utils/materialShaders.js.map +7 -0
- package/dist/utils/mirror.js +2 -0
- package/dist/utils/mirror.js.map +7 -0
- package/dist/utils/moonPosition.js +2 -0
- package/dist/utils/moonPosition.js.map +7 -0
- package/dist/utils/moves.js +2 -0
- package/dist/utils/moves.js.map +7 -0
- package/dist/utils/nativeEvents.js +2 -0
- package/dist/utils/nativeEvents.js.map +7 -0
- package/dist/utils/nativeGeometry.js +2 -0
- package/dist/utils/nativeGeometry.js.map +7 -0
- package/dist/utils/nativeLayer.js +2 -0
- package/dist/utils/nativeLayer.js.map +7 -0
- package/dist/utils/nodeMatrix.js +2 -0
- package/dist/utils/nodeMatrix.js.map +7 -0
- package/dist/utils/onAdd3DLayer.js +2 -0
- package/dist/utils/onAdd3DLayer.js.map +7 -0
- package/dist/utils/onAddSun.js +2 -0
- package/dist/utils/onAddSun.js.map +7 -0
- package/dist/utils/onClick.js +2 -0
- package/dist/utils/onClick.js.map +7 -0
- package/dist/utils/onMapChange.js +2 -0
- package/dist/utils/onMapChange.js.map +7 -0
- package/dist/utils/onPMTileAdd.js +2 -0
- package/dist/utils/onPMTileAdd.js.map +7 -0
- package/dist/utils/onPMTileRemove.js +2 -0
- package/dist/utils/onPMTileRemove.js.map +7 -0
- package/dist/utils/onPointerLeave.js +2 -0
- package/dist/utils/onPointerLeave.js.map +7 -0
- package/dist/utils/onPointerMove.js +2 -0
- package/dist/utils/onPointerMove.js.map +7 -0
- package/dist/utils/onRemove3DLayer.js +2 -0
- package/dist/utils/onRemove3DLayer.js.map +7 -0
- package/dist/utils/onRemoveSun.js +2 -0
- package/dist/utils/onRemoveSun.js.map +7 -0
- package/dist/utils/onTerrainAdd.js +2 -0
- package/dist/utils/onTerrainAdd.js.map +7 -0
- package/dist/utils/onTerrainChange.js +2 -0
- package/dist/utils/onTerrainChange.js.map +7 -0
- package/dist/utils/onTerrainRemove.js +2 -0
- package/dist/utils/onTerrainRemove.js.map +7 -0
- package/dist/utils/onZoomAnim.js +2 -0
- package/dist/utils/onZoomAnim.js.map +7 -0
- package/dist/utils/paints.js +2 -0
- package/dist/utils/paints.js.map +7 -0
- package/dist/utils/parseColor.js +2 -0
- package/dist/utils/parseColor.js.map +7 -0
- package/dist/utils/parts.js +2 -0
- package/dist/utils/parts.js.map +7 -0
- package/dist/utils/projectCelestialBody.js +2 -0
- package/dist/utils/projectCelestialBody.js.map +7 -0
- package/dist/utils/pump.js +2 -0
- package/dist/utils/pump.js.map +7 -0
- package/dist/utils/rasterTiles.js +2 -0
- package/dist/utils/rasterTiles.js.map +7 -0
- package/dist/utils/raycast.js +2 -0
- package/dist/utils/raycast.js.map +7 -0
- package/dist/utils/read.js +2 -0
- package/dist/utils/read.js.map +7 -0
- package/dist/utils/readAccessor.js +2 -0
- package/dist/utils/readAccessor.js.map +7 -0
- package/dist/utils/releaseArea.js +2 -0
- package/dist/utils/releaseArea.js.map +7 -0
- package/dist/utils/removeRasterTile.js +2 -0
- package/dist/utils/removeRasterTile.js.map +7 -0
- package/dist/utils/render.js +15 -0
- package/dist/utils/render.js.map +7 -0
- package/dist/utils/renderSunlight.js +13 -0
- package/dist/utils/renderSunlight.js.map +7 -0
- package/dist/utils/renderers.js +2 -0
- package/dist/utils/renderers.js.map +7 -0
- package/dist/utils/resizeSunlight.js +2 -0
- package/dist/utils/resizeSunlight.js.map +7 -0
- package/dist/utils/roofCoverage.js +2 -0
- package/dist/utils/roofCoverage.js.map +7 -0
- package/dist/utils/routeGeometry.js +2 -0
- package/dist/utils/routeGeometry.js.map +7 -0
- package/dist/utils/scheduledTrips.js +2 -0
- package/dist/utils/scheduledTrips.js.map +7 -0
- package/dist/utils/setGeoJSONData.js +2 -0
- package/dist/utils/setGeoJSONData.js.map +7 -0
- package/dist/utils/setHighlight.js +2 -0
- package/dist/utils/setHighlight.js.map +7 -0
- package/dist/utils/setPMTileOpacity.js +2 -0
- package/dist/utils/setPMTileOpacity.js.map +7 -0
- package/dist/utils/setPMTileZIndex.js +2 -0
- package/dist/utils/setPMTileZIndex.js.map +7 -0
- package/dist/utils/setParent.js +2 -0
- package/dist/utils/setParent.js.map +7 -0
- package/dist/utils/setTerrainHeight.js +2 -0
- package/dist/utils/setTerrainHeight.js.map +7 -0
- package/dist/utils/setVertexColor.js +2 -0
- package/dist/utils/setVertexColor.js.map +7 -0
- package/dist/utils/showFeature.js +2 -0
- package/dist/utils/showFeature.js.map +7 -0
- package/dist/utils/sizes.js +2 -0
- package/dist/utils/sizes.js.map +7 -0
- package/dist/utils/skin.js +2 -0
- package/dist/utils/skin.js.map +7 -0
- package/dist/utils/solarPosition.js +2 -0
- package/dist/utils/solarPosition.js.map +7 -0
- package/dist/utils/sortMeshes.js +2 -0
- package/dist/utils/sortMeshes.js.map +7 -0
- package/dist/utils/speed.js +2 -0
- package/dist/utils/speed.js.map +7 -0
- package/dist/utils/startZoom.js +2 -0
- package/dist/utils/startZoom.js.map +7 -0
- package/dist/utils/taillight.js +2 -0
- package/dist/utils/taillight.js.map +7 -0
- package/dist/utils/terrainAtlas.js +2 -0
- package/dist/utils/terrainAtlas.js.map +7 -0
- package/dist/utils/terrainElevation.js +2 -0
- package/dist/utils/terrainElevation.js.map +7 -0
- package/dist/utils/terrainGrid.js +2 -0
- package/dist/utils/terrainGrid.js.map +7 -0
- package/dist/utils/textureSampler.js +2 -0
- package/dist/utils/textureSampler.js.map +7 -0
- package/dist/utils/tileId.js +2 -0
- package/dist/utils/tileId.js.map +7 -0
- package/dist/utils/toLanes.js +2 -0
- package/dist/utils/toLanes.js.map +7 -0
- package/dist/utils/toSRGB.js +2 -0
- package/dist/utils/toSRGB.js.map +7 -0
- package/dist/utils/tooltip.js +3 -0
- package/dist/utils/tooltip.js.map +7 -0
- package/dist/utils/traffic.js +1 -1
- package/dist/utils/traffic.js.map +3 -3
- package/dist/utils/traverse.js +2 -0
- package/dist/utils/traverse.js.map +7 -0
- package/dist/utils/treeGeometry.js +2 -0
- package/dist/utils/treeGeometry.js.map +7 -0
- package/dist/utils/triangulate.js +2 -0
- package/dist/utils/triangulate.js.map +7 -0
- package/dist/utils/tripsAt.js +2 -0
- package/dist/utils/tripsAt.js.map +7 -0
- package/dist/utils/types.js +2 -0
- package/dist/utils/types.js.map +7 -0
- package/dist/utils/underEntry.js +2 -0
- package/dist/utils/underEntry.js.map +7 -0
- package/dist/utils/update.js +2 -0
- package/dist/utils/update.js.map +7 -0
- package/dist/utils/updateArea.js +2 -0
- package/dist/utils/updateArea.js.map +7 -0
- package/dist/utils/updateCamera.js +2 -0
- package/dist/utils/updateCamera.js.map +7 -0
- package/dist/utils/updatePointLights.js +2 -0
- package/dist/utils/updatePointLights.js.map +7 -0
- package/dist/utils/updateWorldMatrix.js +2 -0
- package/dist/utils/updateWorldMatrix.js.map +7 -0
- package/dist/utils/vehicleOffsets.js +2 -0
- package/dist/utils/vehicleOffsets.js.map +7 -0
- package/dist/utils/vehicles.js +1 -1
- package/dist/utils/vehicles.js.map +3 -3
- package/dist/utils/vertexNormals.js +2 -0
- package/dist/utils/vertexNormals.js.map +7 -0
- package/dist/utils/walk.js +1 -1
- package/dist/utils/walk.js.map +3 -3
- package/dist/utils/white.js +2 -0
- package/dist/utils/white.js.map +7 -0
- package/dist/utils/worldLights.js +2 -0
- package/dist/utils/worldLights.js.map +7 -0
- package/dist/utils/wrap.js +2 -0
- package/dist/utils/wrap.js.map +7 -0
- package/package.json +2 -4
- package/src/index.js +365 -50
- package/src/utils/CELL.js +4 -0
- package/src/utils/addBridges.js +66 -0
- package/src/utils/addRasterTile.js +112 -0
- package/src/utils/along.js +9 -0
- package/src/utils/atmosphere.js +20 -0
- package/src/utils/attach.js +255 -0
- package/src/utils/bindSunlight.js +12 -0
- package/src/utils/box.js +1 -0
- package/src/utils/bridgeElevation.js +18 -0
- package/src/utils/build.js +20 -0
- package/src/utils/cameraControls.js +287 -0
- package/src/utils/channel.js +4 -0
- package/src/utils/collider.js +62 -0
- package/src/utils/colliders.js +2 -0
- package/src/utils/computeBounds.js +17 -0
- package/src/utils/conformModelToTerrain.js +69 -0
- package/src/utils/createMesh.js +31 -0
- package/src/utils/createProgram.js +92 -0
- package/src/utils/decodeDirectory.js +40 -0
- package/src/utils/decodeHeader.js +15 -0
- package/src/utils/decodeModel.js +43 -0
- package/src/utils/decompress.js +5 -0
- package/src/utils/destroyTexture.js +7 -0
- package/src/utils/disposeMesh.js +13 -0
- package/src/utils/drawGeometry.js +122 -0
- package/src/utils/elevationWGSL.js +27 -0
- package/src/utils/emptyNode.js +9 -0
- package/src/utils/endZoom.js +15 -0
- package/src/utils/findFeature.js +49 -0
- package/src/utils/geometry.js +0 -254
- package/src/utils/getElevation.js +10 -0
- package/src/utils/getHeader.js +9 -0
- package/src/utils/getZxy.js +76 -0
- package/src/utils/glass.js +1 -0
- package/src/utils/headlight.js +1 -0
- package/src/utils/hit.js +41 -0
- package/src/utils/horizontalPosition.js +16 -0
- package/src/utils/horizontalRay.js +12 -0
- package/src/utils/hull.js +1 -0
- package/src/utils/initSunlight.js +9 -0
- package/src/utils/initTerrain.js +19 -0
- package/src/utils/initTraffic.js +93 -0
- package/src/utils/initWalk.js +72 -0
- package/src/utils/{picking.js → intersectMeshes.js} +121 -119
- package/src/utils/isClockWise.js +12 -0
- package/src/utils/lampPostGeometry.js +26 -0
- package/src/utils/lightGeometry.js +22 -0
- package/src/utils/{lighting.js → lightGrid.js} +50 -51
- package/src/utils/limbs.js +9 -0
- package/src/{scene/model.js → utils/loadModel.js} +37 -24
- package/src/utils/loadSource.js +17 -0
- package/src/utils/loadTerrain.js +65 -0
- package/src/utils/mapCamera.js +432 -0
- package/src/utils/{shaders.js → materialShaders.js} +243 -237
- package/src/utils/mirror.js +6 -0
- package/src/utils/moonPosition.js +17 -0
- package/src/utils/moves.js +11 -0
- package/src/utils/nativeEvents.js +77 -0
- package/src/utils/nativeGeometry.js +131 -0
- package/src/utils/nativeLayer.js +317 -0
- package/src/utils/nodeMatrix.js +22 -0
- package/src/utils/onAdd3DLayer.js +31 -0
- package/src/utils/onAddSun.js +147 -0
- package/src/utils/onClick.js +13 -0
- package/src/utils/onMapChange.js +16 -0
- package/src/utils/onPMTileAdd.js +15 -0
- package/src/utils/onPMTileRemove.js +8 -0
- package/src/utils/onPointerLeave.js +11 -0
- package/src/utils/onPointerMove.js +15 -0
- package/src/utils/onRemove3DLayer.js +78 -0
- package/src/utils/onRemoveSun.js +3 -0
- package/src/utils/onTerrainAdd.js +18 -0
- package/src/utils/onTerrainChange.js +13 -0
- package/src/utils/onTerrainRemove.js +40 -0
- package/src/utils/onZoomAnim.js +14 -0
- package/src/utils/paints.js +10 -0
- package/src/utils/parseColor.js +42 -0
- package/src/utils/parts.js +16 -0
- package/src/utils/projectCelestialBody.js +13 -0
- package/src/{scene/sources.js → utils/pump.js} +59 -98
- package/src/utils/rasterTiles.js +285 -0
- package/src/utils/raycast.js +60 -0
- package/src/utils/read.js +29 -0
- package/src/utils/readAccessor.js +68 -0
- package/src/utils/releaseArea.js +34 -0
- package/src/utils/removeRasterTile.js +13 -0
- package/src/{scene → utils}/render.js +112 -173
- package/src/utils/renderSunlight.js +170 -0
- package/src/utils/renderers.js +2 -0
- package/src/utils/resizeSunlight.js +15 -0
- package/src/utils/roofCoverage.js +47 -0
- package/src/utils/routeGeometry.js +22 -0
- package/src/utils/scheduledTrips.js +29 -0
- package/src/utils/setGeoJSONData.js +11 -0
- package/src/utils/setHighlight.js +13 -0
- package/src/utils/setPMTileOpacity.js +7 -0
- package/src/utils/setPMTileZIndex.js +7 -0
- package/src/utils/setParent.js +7 -0
- package/src/utils/setTerrainHeight.js +10 -0
- package/src/utils/setVertexColor.js +14 -0
- package/src/utils/showFeature.js +27 -0
- package/src/utils/sizes.js +1 -0
- package/src/utils/skin.js +2 -0
- package/src/utils/solarPosition.js +17 -0
- package/src/utils/sortMeshes.js +12 -0
- package/src/utils/speed.js +3 -0
- package/src/utils/startZoom.js +5 -0
- package/src/utils/taillight.js +1 -0
- package/src/utils/terrainAtlas.js +21 -0
- package/src/utils/terrainElevation.js +20 -0
- package/src/utils/terrainGrid.js +23 -0
- package/src/utils/textureSampler.js +10 -0
- package/src/utils/tileId.js +18 -0
- package/src/utils/toLanes.js +7 -0
- package/src/utils/toSRGB.js +1 -0
- package/src/utils/tooltip.js +6 -0
- package/src/utils/traffic.js +310 -85
- package/src/utils/traverse.js +6 -0
- package/src/utils/treeGeometry.js +45 -0
- package/src/utils/triangulate.js +100 -0
- package/src/utils/tripsAt.js +16 -0
- package/src/utils/types.js +8 -0
- package/src/utils/{control.js → underEntry.js} +1 -2
- package/src/utils/update.js +18 -0
- package/src/utils/updateArea.js +40 -0
- package/src/utils/updateCamera.js +32 -0
- package/src/utils/updatePointLights.js +38 -0
- package/src/utils/updateWorldMatrix.js +47 -0
- package/src/utils/vehicleOffsets.js +8 -0
- package/src/utils/vehicles.js +65 -69
- package/src/utils/vertexNormals.js +30 -0
- package/src/utils/walk.js +181 -66
- package/src/utils/white.js +1 -0
- package/src/utils/worldLights.js +25 -0
- package/src/utils/wrap.js +1 -0
- package/dist/scene/gpu.js +0 -3
- package/dist/scene/gpu.js.map +0 -7
- package/dist/scene/lighting.js +0 -9
- package/dist/scene/lighting.js.map +0 -7
- package/dist/scene/model.js +0 -2
- package/dist/scene/model.js.map +0 -7
- package/dist/scene/picking.js +0 -2
- package/dist/scene/picking.js.map +0 -7
- package/dist/scene/pmtiles.js +0 -2
- package/dist/scene/pmtiles.js.map +0 -7
- package/dist/scene/render.js +0 -15
- package/dist/scene/render.js.map +0 -7
- package/dist/scene/sources.js +0 -2
- package/dist/scene/sources.js.map +0 -7
- package/dist/types/3d.js +0 -2
- package/dist/types/3d.js.map +0 -7
- package/dist/types/geojson.js +0 -2
- package/dist/types/geojson.js.map +0 -7
- package/dist/types/pmtiles.js +0 -2
- package/dist/types/pmtiles.js.map +0 -7
- package/dist/types/sunlight.js +0 -2
- package/dist/types/sunlight.js.map +0 -7
- package/dist/types/terrain.js +0 -24
- package/dist/types/terrain.js.map +0 -7
- package/dist/types/traffic.js +0 -41
- package/dist/types/traffic.js.map +0 -7
- package/dist/types/walk.js +0 -2
- package/dist/types/walk.js.map +0 -7
- package/dist/utils/control.js +0 -2
- package/dist/utils/control.js.map +0 -7
- package/dist/utils/lighting.js +0 -2
- package/dist/utils/lighting.js.map +0 -7
- package/dist/utils/model.js +0 -2
- package/dist/utils/model.js.map +0 -7
- package/dist/utils/picking.js +0 -2
- package/dist/utils/picking.js.map +0 -7
- package/dist/utils/pmtiles.js +0 -2
- package/dist/utils/pmtiles.js.map +0 -7
- package/dist/utils/scene.js +0 -2
- package/dist/utils/scene.js.map +0 -7
- package/dist/utils/shaders.js.map +0 -7
- package/dist/utils/sun.js +0 -2
- package/dist/utils/sun.js.map +0 -7
- package/dist/utils/terrain.js +0 -2
- package/dist/utils/terrain.js.map +0 -7
- package/src/scene/gpu.js +0 -438
- package/src/scene/lighting.js +0 -193
- package/src/scene/picking.js +0 -150
- package/src/scene/pmtiles.js +0 -94
- package/src/types/3d.js +0 -337
- package/src/types/geojson.js +0 -42
- package/src/types/pmtiles.js +0 -143
- package/src/types/sunlight.js +0 -142
- package/src/types/terrain.js +0 -331
- package/src/types/traffic.js +0 -356
- package/src/types/walk.js +0 -219
- package/src/utils/model.js +0 -178
- package/src/utils/pmtiles.js +0 -79
- package/src/utils/scene.js +0 -102
- package/src/utils/sun.js +0 -71
- package/src/utils/terrain.js +0 -78
package/dist/utils/walk.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import*as Z from"./createMesh.js";import*as A from"./disposeMesh.js";import*as D from"./update.js";import{build as B}from"./build.js";import{getElevation as E}from"./getElevation.js";import{hit as I}from"./hit.js";import{limbs as u}from"./limbs.js";import{moves as y}from"./moves.js";import{parts as C}from"./parts.js";import{wrap as M}from"./wrap.js";function x(){const{layer:t,state:e}=this,i=t._map,s=i.options.crs,o=s.project(t.location),r=Math.cos(t.location.lat*Math.PI/180),n=s.project(e.latlng),l=i._terrain3D?._terrainReady&&i._terrain3D,a=l&&E(l,e.latlng)||0;return[(n.x-o.x)*r,a-t.root.position[1],-(n.y-o.y)*r]}function b(){const[t,e,i]=x.call(this),s=-this.state.heading,o=Math.cos(s),r=Math.sin(s);for(let n=0;n<u.length;n++){const[,l,a,c]=u[n],p=this.meshes[n];p.position[0]=t+l*o,p.position[1]=e+a,p.position[2]=i-l*r,p.rotation[0]=c*this.swing*Math.sin(this.state.phase),p.rotation[1]=s}D.update(this.layer)}function w(t,e,i){const s=Math.hypot(t,e);return s>1e-6&&I(this.layer,i[0],i[1],i[2],t/s,-e/s,s+.3)}function X(t){const e=this.layer,i=e._map;this.frame=requestAnimationFrame(this.step);const s=Math.min(.1,(t-(this.last??t))/1e3);if(this.last=t,!e.renderer)return;let o=!1;if(!this.meshes){this.meshes=[];for(const[a]of u)this.meshes.push(Z.createMesh(e,B(C[a])));o=!0}let r=0,n=0;for(const a of this.keys)r+=y[a]?.[0]||0,n+=y[a]?.[1]||0;if(r=Math.sign(r),n=Math.sign(n),n&&(this.state.heading=M(this.state.heading+n*2.5*s),o=!0),r){const a=r*this.speed*s,{lat:c,lng:p}=this.state.latlng,{position:k,scale:_}=e.root;let m=Math.sin(this.state.heading)*a,d=Math.cos(this.state.heading)*a;const f=x.call(this);for(let h=0;h<f.length;h++)f[h]=k[h]+_[h]*f[h];const g=w.call(this,m,d,f);if(g){const h=m*g[0]-d*g[1];m-=h*g[0],d+=h*g[1],w.call(this,m,d,f)&&(m=d=0)}this.state.latlng=new L.LatLng(c+d/111320,p+m/(111320*Math.cos(c*Math.PI/180))),this.state.phase+=Math.hypot(m,d)/1.6*Math.PI,o=!0}if(r||n){const a=i.getBearing()*Math.PI/180,c=M(-this.state.heading-a);Math.abs(c)>.001&&i._setPitchAndBearing(i.getPitch(),(a+c*Math.min(1,s*4))*180/Math.PI),i.setView(this.state.latlng,i.getZoom(),{animate:!1})}const l=r?.9:0;Math.abs(this.swing-l)>.001&&(this.swing+=(l-this.swing)*Math.min(1,s*10),o=!0),o&&b.call(this)}function Y(t){if(!(t.target.closest?.("input:not([type=checkbox], [type=radio]), select, textarea, [contenteditable]")||t.ctrlKey||t.altKey||t.metaKey)){if(t.type==="keydown"&&t.code==="Escape"){this.stop();return}y[t.code]&&(t.preventDefault(),t.type==="keydown"?this.keys.add(t.code):this.keys.delete(t.code))}}function j(){this.keys.clear()}function q(t){const e=this.layer._map;if(t.type==="pointerdown"){if(t.button!==0||t.target.closest(".leaflet-control"))return;this.drag={x:t.clientX,y:t.clientY},e.getContainer().setPointerCapture(t.pointerId)}else this.drag&&t.type==="pointermove"?(e._setPitchAndBearing(Math.max(20,Math.min(85,e.getPitch()-(t.clientY-this.drag.y)*.2)),e.getBearing()-(t.clientX-this.drag.x)*.25),this.drag={x:t.clientX,y:t.clientY}):this.drag=null}function O(){this.meshes&&b.call(this)}function K(){const t=this.layer._map;if(this.saved||!t)return;this.state.latlng=t.getCenter();const e=t.getSize().y*1.5/this.distance,i=Math.min(t.getMaxZoom(),Math.log2(e*4007501668557849e-8*Math.cos(this.state.latlng.lat*Math.PI/180)/256)),s=[];for(const o of["dragging","keyboard","doubleClickZoom","boxZoom"])t[o]?.enabled()&&s.push(o);this.saved={zoom:t.getZoom(),pitch:t.getPitch(),scrollWheelZoom:t.options.scrollWheelZoom,handlers:s};for(const o of this.saved.handlers)t[o].disable();t.options.scrollWheelZoom=this.saved.scrollWheelZoom&&"center",this.state.heading=-t.getBearing()*Math.PI/180,t.setView(this.state.latlng,i,{animate:!1}),t.setPitch(75),L.DomEvent.on(document,"keydown keyup",this.onKey),L.DomEvent.on(window,"blur",this.onBlur),L.DomEvent.on(t.getContainer(),"pointerdown pointermove pointerup pointercancel",this.onPointer),t.on("terrainchange",this.onTerrain),this.button.setAttribute("aria-pressed","true"),this.button.style.background="#e4e4e4",this.hint.style.display="",this.last=void 0,this.frame=requestAnimationFrame(this.step)}function P(){const t=this.layer._map;cancelAnimationFrame(this.frame),this.keys.clear(),this.drag=null,L.DomEvent.off(document,"keydown keyup",this.onKey),L.DomEvent.off(window,"blur",this.onBlur);for(const e of this.meshes||[])A.disposeMesh(this.layer,e);if(this.meshes=null,this.button.setAttribute("aria-pressed","false"),this.button.style.background="#fff",this.hint.style.display="none",!(!t||!this.saved)){L.DomEvent.off(t.getContainer(),"pointerdown pointermove pointerup pointercancel",this.onPointer),t.off("terrainchange",this.onTerrain),t.options.scrollWheelZoom=this.saved.scrollWheelZoom;for(const e of this.saved.handlers)t[e].enable();t.setView(this.state.latlng,this.saved.zoom,{animate:!1}),t.setPitch(this.saved.pitch),this.saved=null}}function S(){this.saved?P.call(this):K.call(this)}function G(){return this.container}function H(){this.ready=!0,this.layer._map&&this.control.addTo(this.layer._map)}function J(){this.ready&&this.control.addTo(this.layer._map)}function N(){P.call(this),this.control.remove()}export{w as blocked,G as controlOnAdd,x as local,j as onBlur,Y as onKey,J as onLayerAdd,N as onLayerRemove,q as onPointer,H as onReady,O as onTerrain,b as place,K as start,X as step,P as stop,S as toggle};
|
|
2
2
|
//# sourceMappingURL=walk.js.map
|
package/dist/utils/walk.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/walk.js"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "AAAA,OAAS,
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import * as createMesh from './createMesh.js';\r\nimport * as disposeMesh from './disposeMesh.js';\r\nimport * as update from './update.js';\r\nimport { build } from './build.js';\r\nimport { getElevation } from './getElevation.js';\r\nimport { hit } from './hit.js';\r\nimport { limbs } from './limbs.js';\r\nimport { moves } from './moves.js';\r\nimport { parts } from './parts.js';\r\nimport { wrap } from './wrap.js';\r\n\r\nexport function local() {\r\n const { layer, state } = this;\r\n const map = layer._map, crs = map.options.crs, origin = crs.project(layer.location);\r\n const metres = Math.cos(layer.location.lat * Math.PI / 180);\r\n const p = crs.project(state.latlng), terrain = map._terrain3D?._terrainReady && map._terrain3D;\r\n const ground = (terrain && getElevation(terrain, state.latlng)) || 0;\r\n return [(p.x - origin.x) * metres, ground - layer.root.position[1], -(p.y - origin.y) * metres];\r\n}\r\n\r\nexport function place() {\r\n const [x, y, z] = local.call(this);\r\n // Model forward is -z; a yaw of -heading turns it to the compass heading (x east, -z north).\r\n const yaw = -this.state.heading, cos = Math.cos(yaw), sin = Math.sin(yaw);\r\n for (let i = 0; i < limbs.length; i++) {\r\n const [, px, py, sign] = limbs[i];\r\n const mesh = this.meshes[i];\r\n mesh.position[0] = x + px * cos; mesh.position[1] = y + py; mesh.position[2] = z - px * sin;\r\n mesh.rotation[0] = sign * this.swing * Math.sin(this.state.phase);\r\n mesh.rotation[1] = yaw;\r\n }\r\n update.update(this.layer);\r\n}\r\n\r\nexport function blocked(east, north, feet) {\r\n const length = Math.hypot(east, north);\r\n return length > 1e-6 && hit(this.layer, feet[0], feet[1], feet[2], east / length, -north / length, length + 0.3);\r\n}\r\n\r\nexport function step(now) {\r\n const layer = this.layer, map = layer._map;\r\n this.frame = requestAnimationFrame(this.step);\r\n const dt = Math.min(0.1, (now - (this.last ?? now)) / 1000);\r\n this.last = now;\r\n if (!layer.renderer) return;\r\n let changed = false;\r\n if (!this.meshes) {\r\n this.meshes = [];\r\n for (const [part] of limbs) this.meshes.push(createMesh.createMesh(layer, build(parts[part])));\r\n changed = true;\r\n }\r\n let forward = 0, turn = 0;\r\n for (const key of this.keys) { forward += moves[key]?.[0] || 0; turn += moves[key]?.[1] || 0; }\r\n forward = Math.sign(forward); turn = Math.sign(turn);\r\n if (turn) { this.state.heading = wrap(this.state.heading + turn * 2.5 * dt); changed = true; }\r\n if (forward) {\r\n const metres = forward * this.speed * dt, { lat, lng } = this.state.latlng, { position, scale } = layer.root;\r\n let east = Math.sin(this.state.heading) * metres, north = Math.cos(this.state.heading) * metres;\r\n const feet = local.call(this);\r\n for (let i = 0; i < feet.length; i++) feet[i] = position[i] + scale[i] * feet[i];\r\n // World x is east, z south; keep 0.3 m from walls and slide along the one in the way.\r\n const wall = blocked.call(this, east, north, feet);\r\n if (wall) {\r\n const into = east * wall[0] - north * wall[1];\r\n east -= into * wall[0]; north += into * wall[1];\r\n if (blocked.call(this, east, north, feet)) east = north = 0;\r\n }\r\n this.state.latlng = new L.LatLng(lat + north / 111320, lng + east / (111320 * Math.cos(lat * Math.PI / 180)));\r\n this.state.phase += Math.hypot(east, north) / 1.6 * Math.PI;\r\n changed = true;\r\n }\r\n if (forward || turn) {\r\n // The camera (looking along -bearing) swings back behind the walker.\r\n const bearing = map.getBearing() * Math.PI / 180, behind = wrap(-this.state.heading - bearing);\r\n if (Math.abs(behind) > 1e-3) map._setPitchAndBearing(map.getPitch(), (bearing + behind * Math.min(1, dt * 4)) * 180 / Math.PI);\r\n map.setView(this.state.latlng, map.getZoom(), { animate: false });\r\n }\r\n const target = forward ? 0.9 : 0;\r\n if (Math.abs(this.swing - target) > 1e-3) { this.swing += (target - this.swing) * Math.min(1, dt * 10); changed = true; }\r\n if (changed) place.call(this);\r\n}\r\n\r\nexport function onKey(event) {\r\n // Text fields and sliders keep their keys; buttons and checkboxes don't.\r\n if (event.target.closest?.('input:not([type=checkbox], [type=radio]), select, textarea, [contenteditable]') ||\r\n event.ctrlKey || event.altKey || event.metaKey) return;\r\n if (event.type === 'keydown' && event.code === 'Escape') { this.stop(); return; }\r\n if (!moves[event.code]) return;\r\n event.preventDefault();\r\n if (event.type === 'keydown') this.keys.add(event.code); else this.keys.delete(event.code);\r\n}\r\n\r\nexport function onBlur() {\r\n this.keys.clear();\r\n}\r\n\r\nexport function onPointer(event) {\r\n // Dragging only turns the camera around the walker: horizontal = bearing, vertical = pitch.\r\n const map = this.layer._map;\r\n if (event.type === 'pointerdown') {\r\n if (event.button !== 0 || event.target.closest('.leaflet-control')) return;\r\n this.drag = { x: event.clientX, y: event.clientY };\r\n map.getContainer().setPointerCapture(event.pointerId);\r\n } else if (this.drag && event.type === 'pointermove') {\r\n map._setPitchAndBearing(Math.max(20, Math.min(85, map.getPitch() - (event.clientY - this.drag.y) * 0.2)),\r\n map.getBearing() - (event.clientX - this.drag.x) * 0.25);\r\n this.drag = { x: event.clientX, y: event.clientY };\r\n } else this.drag = null;\r\n}\r\n\r\nexport function onTerrain() {\r\n if (this.meshes) place.call(this);\r\n}\r\n\r\nexport function start() {\r\n const map = this.layer._map;\r\n if (this.saved || !map) return;\r\n this.state.latlng = map.getCenter();\r\n // Zoom whose camera distance (1.5 viewport heights, as in scene/render.js) is about `distance` metres behind the walker.\r\n const pixelsPerMetre = map.getSize().y * 1.5 / this.distance;\r\n const zoom = Math.min(map.getMaxZoom(), Math.log2(pixelsPerMetre * 40075016.68557849 * Math.cos(this.state.latlng.lat * Math.PI / 180) / 256));\r\n const handlers = [];\r\n for (const name of ['dragging', 'keyboard', 'doubleClickZoom', 'boxZoom']) {\r\n if (map[name]?.enabled()) handlers.push(name);\r\n }\r\n this.saved = {\r\n zoom: map.getZoom(), pitch: map.getPitch(), scrollWheelZoom: map.options.scrollWheelZoom, handlers\r\n };\r\n for (const name of this.saved.handlers) map[name].disable();\r\n // Wheel zoom moves the camera closer or farther, keeping the walker centred.\r\n map.options.scrollWheelZoom = this.saved.scrollWheelZoom && 'center';\r\n this.state.heading = -map.getBearing() * Math.PI / 180;\r\n map.setView(this.state.latlng, zoom, { animate: false });\r\n map.setPitch(75);\r\n L.DomEvent.on(document, 'keydown keyup', this.onKey);\r\n L.DomEvent.on(window, 'blur', this.onBlur);\r\n L.DomEvent.on(map.getContainer(), 'pointerdown pointermove pointerup pointercancel', this.onPointer);\r\n map.on('terrainchange', this.onTerrain);\r\n this.button.setAttribute('aria-pressed', 'true');\r\n this.button.style.background = '#e4e4e4';\r\n this.hint.style.display = '';\r\n this.last = undefined;\r\n this.frame = requestAnimationFrame(this.step);\r\n}\r\n\r\nexport function stop() {\r\n const map = this.layer._map;\r\n cancelAnimationFrame(this.frame);\r\n this.keys.clear(); this.drag = null;\r\n L.DomEvent.off(document, 'keydown keyup', this.onKey);\r\n L.DomEvent.off(window, 'blur', this.onBlur);\r\n for (const mesh of this.meshes || []) disposeMesh.disposeMesh(this.layer, mesh);\r\n this.meshes = null;\r\n this.button.setAttribute('aria-pressed', 'false');\r\n this.button.style.background = '#fff';\r\n this.hint.style.display = 'none';\r\n if (!map || !this.saved) return;\r\n L.DomEvent.off(map.getContainer(), 'pointerdown pointermove pointerup pointercancel', this.onPointer);\r\n map.off('terrainchange', this.onTerrain);\r\n map.options.scrollWheelZoom = this.saved.scrollWheelZoom;\r\n for (const name of this.saved.handlers) map[name].enable();\r\n map.setView(this.state.latlng, this.saved.zoom, { animate: false });\r\n map.setPitch(this.saved.pitch);\r\n this.saved = null;\r\n}\r\n\r\nexport function toggle() {\r\n if (this.saved) stop.call(this); else start.call(this);\r\n}\r\n\r\nexport function controlOnAdd() {\r\n return this.container;\r\n}\r\n\r\nexport function onReady() {\r\n this.ready = true;\r\n if (this.layer._map) this.control.addTo(this.layer._map);\r\n}\r\n\r\nexport function onLayerAdd() {\r\n if (this.ready) this.control.addTo(this.layer._map);\r\n}\r\n\r\nexport function onLayerRemove() {\r\n stop.call(this);\r\n this.control.remove();\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createMesh", "disposeMesh", "update", "build", "getElevation", "hit", "limbs", "moves", "parts", "wrap", "local", "layer", "state", "map", "crs", "origin", "metres", "p", "terrain", "ground", "place", "x", "y", "z", "yaw", "cos", "sin", "i", "px", "py", "sign", "mesh", "blocked", "east", "north", "feet", "length", "step", "now", "dt", "changed", "part", "forward", "turn", "key", "lat", "lng", "position", "scale", "wall", "into", "bearing", "behind", "target", "onKey", "event", "onBlur", "onPointer", "onTerrain", "start", "pixelsPerMetre", "zoom", "handlers", "name", "stop", "toggle", "controlOnAdd", "onReady", "onLayerAdd", "onLayerRemove"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function u(a,t){const s=new Float32Array(a.length*8);return a.forEach(({position:[o,n,r],radius:c,color:h,flux:i},l)=>{const e=t[3]*o+t[7]*n+t[11]*r+t[15];s.set([(t[0]*o+t[4]*n+t[8]*r+t[12])/e,(t[1]*o+t[5]*n+t[9]*r+t[13])/e,(t[2]*o+t[6]*n+t[10]*r+t[14])/e,c,...h,i/(4*Math.PI)*.03],l*8)}),s}export{u as worldLights};
|
|
2
|
+
//# sourceMappingURL=worldLights.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/worldLights.js"],
|
|
4
|
+
"sourcesContent": ["\n/** World-space [x, y, z, radius, r, g, b, intensity] for one mesh's point lights. */\nexport function worldLights(lights, m) {\n const values = new Float32Array(lights.length * 8);\n lights.forEach(({\n position: [x, y, z],\n radius,\n color,\n flux\n }, i) => {\n const w = m[3] * x + m[7] * y + m[11] * z + m[15];\n values.set(\n [\n (m[0] * x + m[4] * y + m[8] * z + m[12]) / w,\n (m[1] * x + m[5] * y + m[9] * z + m[13]) / w,\n (m[2] * x + m[6] * y + m[10] * z + m[14]) / w,\n radius,\n ...color,\n flux / (4 * Math.PI) * 0.03\n ],\n i * 8\n );\n });\n return values;\n}"],
|
|
5
|
+
"mappings": "AAEO,SAASA,EAAYC,EAAQC,EAAG,CACrC,MAAMC,EAAS,IAAI,aAAaF,EAAO,OAAS,CAAC,EACjD,OAAAA,EAAO,QAAQ,CAAC,CACd,SAAU,CAACG,EAAGC,EAAGC,CAAC,EAClB,OAAAC,EACA,MAAAC,EACA,KAAAC,CACF,EAAGC,IAAM,CACP,MAAMC,EAAIT,EAAE,CAAC,EAAIE,EAAIF,EAAE,CAAC,EAAIG,EAAIH,EAAE,EAAE,EAAII,EAAIJ,EAAE,EAAE,EAChDC,EAAO,IACL,EACGD,EAAE,CAAC,EAAIE,EAAIF,EAAE,CAAC,EAAIG,EAAIH,EAAE,CAAC,EAAII,EAAIJ,EAAE,EAAE,GAAKS,GAC1CT,EAAE,CAAC,EAAIE,EAAIF,EAAE,CAAC,EAAIG,EAAIH,EAAE,CAAC,EAAII,EAAIJ,EAAE,EAAE,GAAKS,GAC3CT,EAAE,CAAC,EAAIE,EAAIF,EAAE,CAAC,EAAIG,EAAIH,EAAE,EAAE,EAAII,EAAIJ,EAAE,EAAE,GAAKS,EAC5CJ,EACA,GAAGC,EACHC,GAAQ,EAAI,KAAK,IAAM,GACxB,EACCC,EAAI,CACP,CACF,CAAC,EACMP,CACT",
|
|
6
|
+
"names": ["worldLights", "lights", "m", "values", "x", "y", "z", "radius", "color", "flux", "i", "w"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/wrap.js"],
|
|
4
|
+
"sourcesContent": ["export const wrap = angle => Math.atan2(Math.sin(angle), Math.cos(angle));\n"],
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAAOC,GAAS,KAAK,MAAM,KAAK,IAAIA,CAAK,EAAG,KAAK,IAAIA,CAAK,CAAC",
|
|
6
|
+
"names": ["wrap", "angle"]
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leaflet-city-mapper",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "A small 3D rendering engine for leaflet",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/leaflet-city-mapper.js",
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
},
|
|
20
20
|
"keywords": [
|
|
21
21
|
"leaflet",
|
|
22
|
-
"leaflet-rotate",
|
|
23
22
|
"3d",
|
|
24
23
|
"rotation",
|
|
25
24
|
"webgpu",
|
|
@@ -36,8 +35,7 @@
|
|
|
36
35
|
},
|
|
37
36
|
"homepage": "https://github.com/Raruto/leaflet-city-mapper#readme",
|
|
38
37
|
"peerDependencies": {
|
|
39
|
-
"leaflet": "^1.9.3 || ^2.0.0-alpha.1"
|
|
40
|
-
"leaflet-rotate": "^0.5.3"
|
|
38
|
+
"leaflet": "^1.9.3 || ^2.0.0-alpha.1"
|
|
41
39
|
},
|
|
42
40
|
"devDependencies": {
|
|
43
41
|
"@cucumber/cucumber": "^10.3.1",
|