leaflet-city-mapper 0.0.9 → 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.
- package/README.md +6 -46
- package/dist/README.md +18 -0
- package/dist/leaflet-city-mapper-src.js +279 -110
- package/dist/leaflet-city-mapper-src.js.map +4 -4
- package/dist/leaflet-city-mapper-worker-src.js.map +2 -2
- package/dist/leaflet-city-mapper-worker.js.map +2 -2
- package/dist/leaflet-city-mapper.js +5 -5
- package/dist/leaflet-city-mapper.js.map +4 -4
- package/libs/README.md +18 -0
- package/libs/leaflet.js +1 -1
- package/package.json +1 -1
- package/src/README.md +148 -0
- package/src/animations/README.md +30 -0
- package/src/animations/cancelCameraAnimation.js +11 -9
- package/src/animations/cancelGridFade.js +5 -3
- package/src/animations/endZoom.js +0 -5
- package/src/animations/mapAnimateCamera.js +13 -3
- package/src/animations/mapStopPitchBearingAnimation.js +9 -2
- package/src/animations/onZoomAnim.js +5 -4
- package/src/animations/renderPendingZoomAnimation.js +1 -4
- package/src/animations/runCameraAnimations.js +7 -4
- package/src/animations/runGridFades.js +1 -4
- package/src/animations/runMarkerPanFrame.js +1 -1
- package/src/animations/scheduleCameraAnimation.js +11 -9
- package/src/animations/scheduleGridFade.js +5 -4
- package/src/animations/scheduleMarkerPan.js +10 -6
- package/src/animations/startZoom.js +0 -3
- package/src/animations/synchronizeZoomView.js +6 -1
- package/src/animations/updateZoomCamera.js +9 -5
- package/src/archives/README.md +28 -0
- package/src/archives/decodeDirectory.js +13 -2
- package/src/archives/decodeHeader.js +9 -2
- package/src/archives/decompress.js +10 -0
- package/src/archives/findDirectoryEntry.js +8 -0
- package/src/archives/findTile.js +14 -0
- package/src/archives/getDirectoryEntries.js +13 -2
- package/src/archives/getHeader.js +7 -2
- package/src/archives/getTileData.js +13 -0
- package/src/archives/getZxy.js +11 -3
- package/src/archives/loadDirectory.js +10 -0
- package/src/archives/loadSource.js +12 -3
- package/src/archives/readArchiveRange.js +18 -4
- package/src/archives/readVarint.js +11 -2
- package/src/archives/tileId.js +11 -2
- package/src/astronomy/README.md +25 -0
- package/src/astronomy/horizontalPosition.js +11 -0
- package/src/astronomy/moonPosition.js +9 -2
- package/src/astronomy/solarPosition.js +9 -2
- package/src/astronomy/solarTime.js +11 -1
- package/src/camera/README.md +30 -0
- package/src/camera/cameraMapReady.js +4 -6
- package/src/camera/cleanupCameraMap.js +6 -8
- package/src/camera/constrainCameraToBounds.js +1 -0
- package/src/camera/createSceneCamera.js +5 -1
- package/src/camera/fitCameraBounds.js +9 -1
- package/src/camera/getBearing.js +5 -0
- package/src/camera/getPitch.js +5 -0
- package/src/camera/initializeCameraMap.js +1 -3
- package/src/camera/mapCamera.js +0 -2
- package/src/camera/mapContainerPointToLayerPoint.js +7 -2
- package/src/camera/mapGetBearing.js +7 -2
- package/src/camera/mapGetBounds.js +5 -2
- package/src/camera/mapGetBoundsCenterZoom.js +13 -6
- package/src/camera/mapGetBoundsZoom.js +9 -2
- package/src/camera/mapGetCenterLayerPoint.js +5 -1
- package/src/camera/mapGetPitch.js +7 -2
- package/src/camera/mapLayerPointToContainerPoint.js +7 -1
- package/src/camera/mapLimitCenter.js +9 -2
- package/src/camera/mapLimitOffset.js +13 -7
- package/src/camera/mapPanBy.js +12 -5
- package/src/camera/mapPanInside.js +8 -2
- package/src/camera/mapResetNorth.js +8 -0
- package/src/camera/mapResetNorthPitch.js +8 -0
- package/src/camera/mapSetBearing.js +10 -0
- package/src/camera/mapSetPitch.js +10 -0
- package/src/camera/mapSetPitchAndBearing.js +12 -3
- package/src/camera/mapSetZoomAround.js +9 -1
- package/src/camera/mapTryAnimatedPan.js +8 -1
- package/src/camera/mapUpdateCameraOverlays.js +6 -0
- package/src/camera/setBearing.js +8 -0
- package/src/camera/setPitch.js +8 -0
- package/src/camera/updateMapCamera.js +6 -4
- package/src/camera/updateSceneCamera.js +7 -1
- package/src/camera/updateSky.js +1 -3
- package/src/cog/README.md +29 -0
- package/src/cog/decodeCogTile.js +13 -0
- package/src/cog/finiteCogValues.js +7 -0
- package/src/cog/getCogAssetEntry.js +11 -0
- package/src/cog/getCogBase.js +12 -0
- package/src/cog/getCogHeader.js +7 -0
- package/src/cog/getCogProfile.js +9 -0
- package/src/cog/getCogTile.js +13 -0
- package/src/cog/getColorTile.js +13 -0
- package/src/cog/getElevationTile.js +13 -0
- package/src/cog/hasCogProjection.js +7 -0
- package/src/cog/initCog.js +6 -0
- package/src/cog/invalidCogFullResponse.js +7 -0
- package/src/cog/openCog.js +11 -1
- package/src/cog/openCogAsset.js +8 -0
- package/src/cog/readCog.js +14 -0
- package/src/cog/readCogBlock.js +11 -0
- package/src/cog/readCogBody.js +10 -0
- package/src/cog/readCogDirectories.js +12 -0
- package/src/cog/readCogDirectory.js +13 -0
- package/src/cog/readCogLevel.js +9 -0
- package/src/cog/readCogTag.js +13 -0
- package/src/cog/validCogDimensions.js +9 -0
- package/src/cog/validCogEncoding.js +13 -0
- package/src/cog/validCogGeoArrays.js +9 -0
- package/src/cog/validCogGrid.js +13 -0
- package/src/cog/validCogTileCoordinates.js +9 -0
- package/src/cog/validateCogContainer.js +8 -0
- package/src/cog/validateCogContentRange.js +10 -0
- package/src/cog/validateCogOffsets.js +9 -0
- package/src/cog/validateCogRange.js +9 -0
- package/src/cog/validateCogResponse.js +11 -0
- package/src/collision/README.md +28 -0
- package/src/collision/advanceFeature.js +13 -0
- package/src/collision/boxNormal.js +29 -0
- package/src/collision/cachedCollider.js +18 -0
- package/src/collision/collectIntersections.js +28 -3
- package/src/collision/collectMeshes.js +6 -0
- package/src/collision/collideTrip.js +56 -0
- package/src/collision/collider.js +28 -18
- package/src/collision/countCrossings.js +35 -15
- package/src/collision/enclosesOrigin.js +13 -0
- package/src/collision/flipsNormal.js +15 -0
- package/src/collision/hiddenLightHit.js +11 -0
- package/src/collision/horizontalRay.js +13 -1
- package/src/collision/indexTriangle.js +7 -0
- package/src/collision/insideMesh.js +16 -2
- package/src/collision/insideWalker.js +7 -1
- package/src/collision/intersectMeshes.js +9 -1
- package/src/collision/localRay.js +10 -0
- package/src/collision/mergeHits.js +8 -0
- package/src/collision/missesBox.js +13 -0
- package/src/collision/rayBounds.js +9 -0
- package/src/collision/readTriangle.js +9 -0
- package/src/collision/slabDistance.js +14 -0
- package/src/collision/slabMiss.js +14 -0
- package/src/collision/sortCrossings.js +17 -0
- package/src/collision/sortHits.js +9 -1
- package/src/collision/trafficBounds.js +24 -0
- package/src/collision/trafficCollision.js +24 -49
- package/src/collision/trafficRay.js +21 -0
- package/src/collision/transformTriangle.js +9 -0
- package/src/collision/transformVertices.js +18 -0
- package/src/collision/triangleDistance.js +14 -1
- package/src/collision/vertexCount.js +8 -0
- package/src/collision/worldHit.js +12 -0
- package/src/colors/README.md +25 -0
- package/src/colors/formatRGB.js +7 -0
- package/src/colors/hslChannel.js +10 -0
- package/src/colors/mixColor.js +10 -0
- package/src/colors/parseColor.js +4 -1
- package/src/colors/toSRGB.js +7 -0
- package/src/controls/README.md +26 -0
- package/src/controls/acceptPitchDrag.js +7 -0
- package/src/controls/acceptRotateDrag.js +7 -0
- package/src/controls/addCameraHandler.js +7 -0
- package/src/controls/adjustCameraDrag.js +6 -8
- package/src/controls/cameraControls.js +5 -4
- package/src/controls/cameraDragClick.js +5 -1
- package/src/controls/cameraDragContextMenu.js +7 -3
- package/src/controls/cameraDragDown.js +5 -2
- package/src/controls/cameraDragEnd.js +8 -4
- package/src/controls/cameraDragMove.js +12 -8
- package/src/controls/changeCameraTouch.js +6 -8
- package/src/controls/cleanupCameraTouch.js +1 -4
- package/src/controls/compassAddHooks.js +1 -0
- package/src/controls/compassOrientation.js +7 -1
- package/src/controls/compassRemoveHooks.js +1 -0
- package/src/controls/containerResizeAddHooks.js +1 -0
- package/src/controls/containerResizeRemoveHooks.js +1 -0
- package/src/controls/dragCamera.js +11 -2
- package/src/controls/endAllCameraDrags.js +1 -2
- package/src/controls/endAllCameraTouches.js +1 -2
- package/src/controls/endCameraTouch.js +6 -0
- package/src/controls/endCameraTouchEvent.js +5 -2
- package/src/controls/failCompassPermission.js +6 -0
- package/src/controls/finishCameraDrag.js +6 -0
- package/src/controls/finishCompassPermission.js +7 -0
- package/src/controls/isEditableTarget.js +7 -0
- package/src/controls/loadCameraControls.js +9 -0
- package/src/controls/moveCameraTouch.js +9 -6
- package/src/controls/notifyCameraTouchChange.js +1 -0
- package/src/controls/pitchDragAddHooks.js +1 -1
- package/src/controls/pitchDragRemoveHooks.js +1 -0
- package/src/controls/refreshRotateControl.js +2 -0
- package/src/controls/refreshRotateFocus.js +3 -2
- package/src/controls/removeCameraDrag.js +15 -12
- package/src/controls/resizeMap.js +5 -0
- package/src/controls/rotateButtonClick.js +6 -1
- package/src/controls/rotateButtonKeydown.js +10 -4
- package/src/controls/rotateControl.js +9 -1
- package/src/controls/rotateOnAdd.js +7 -1
- package/src/controls/rotateOnRemove.js +5 -0
- package/src/controls/shiftRotateAddHooks.js +1 -1
- package/src/controls/shiftRotateRemoveHooks.js +1 -0
- package/src/controls/shiftRotateWheel.js +9 -4
- package/src/controls/startCameraTouch.js +5 -2
- package/src/core/README.md +28 -0
- package/src/core/adjustCameraMarkerPan.js +7 -2
- package/src/core/cameraCircleBounds.js +5 -1
- package/src/core/cameraMarkerDrag.js +1 -2
- package/src/core/cameraMarkerOnDrag.js +7 -4
- package/src/core/closestCameraLayerPoint.js +7 -1
- package/src/core/constructLayer.js +7 -0
- package/src/core/extendLeafletClass.js +7 -0
- package/src/core/extendTerrainPixelBounds.js +10 -0
- package/src/core/fireRasterLoad.js +1 -1
- package/src/core/gridlayerGetEvents.js +5 -2
- package/src/core/gridlayerGetTiledPixelBounds.js +7 -1
- package/src/core/initializeGridContainer.js +1 -1
- package/src/core/initializeNativeLayer.js +1 -4
- package/src/core/layerAddInitHook.js +5 -0
- package/src/core/layerCallInitHooks.js +1 -2
- package/src/core/layerMergeOptions.js +7 -0
- package/src/core/markerGetEvents.js +5 -2
- package/src/core/markerInitInteraction.js +8 -5
- package/src/core/markerSetIcon.js +11 -6
- package/src/core/markerSetPos.js +5 -2
- package/src/core/markerSetRotation.js +10 -0
- package/src/core/markerUpdateZIndex.js +6 -4
- package/src/core/popupAdjustPan.js +5 -2
- package/src/core/popupGetEvents.js +5 -1
- package/src/core/popupUpdatePosition.js +1 -2
- package/src/core/projectNativePath.js +7 -0
- package/src/core/redrawPath.js +5 -0
- package/src/core/removeLayer.js +10 -7
- package/src/core/setRotation.js +7 -0
- package/src/core/tooltipGetEvents.js +5 -1
- package/src/core/tooltipSetPosition.js +5 -2
- package/src/core/updateGridOpacity.js +2 -1
- package/src/core/whenReady.js +9 -6
- package/src/geometry/README.md +29 -0
- package/src/geometry/addBridges.js +8 -6
- package/src/geometry/addGeneratedTriangle.js +8 -4
- package/src/geometry/appendAreaTriangle.js +15 -0
- package/src/geometry/appendNativeTriangle.js +14 -0
- package/src/geometry/appendRouteDash.js +18 -0
- package/src/geometry/appendRouteSegment.js +13 -0
- package/src/geometry/assembleAreaGeometry.js +7 -0
- package/src/geometry/boundsQuad.js +8 -0
- package/src/geometry/box.js +10 -0
- package/src/geometry/bridgeEdge.js +7 -0
- package/src/geometry/bridgeElevation.js +8 -1
- package/src/geometry/bridgeFaces.js +7 -0
- package/src/geometry/bridgePaths.js +8 -0
- package/src/geometry/bridgePolygon.js +6 -0
- package/src/geometry/bridgeSides.js +7 -0
- package/src/geometry/buildGeometryParts.js +7 -0
- package/src/geometry/buildProjectedPoint.js +11 -0
- package/src/geometry/buildProjectedPolygon.js +9 -0
- package/src/geometry/circleAt.js +15 -2
- package/src/geometry/circleGeometry.js +6 -0
- package/src/geometry/clipLine.js +8 -1
- package/src/geometry/clipSegment.js +9 -0
- package/src/geometry/computeBounds.js +5 -2
- package/src/geometry/conformModelToTerrain.js +6 -3
- package/src/geometry/createLampRing.js +8 -0
- package/src/geometry/createModelGeometry.js +11 -1
- package/src/geometry/createRasterQuadGeometry.js +7 -1
- package/src/geometry/createTreeRing.js +8 -1
- package/src/geometry/crossVector.js +8 -0
- package/src/geometry/dashValues.js +9 -0
- package/src/geometry/dashedSegment.js +12 -0
- package/src/geometry/disk.js +9 -0
- package/src/geometry/diskAt.js +14 -2
- package/src/geometry/emitter.js +10 -0
- package/src/geometry/fillNativePolygon.js +8 -0
- package/src/geometry/generateTreeGeometry.js +11 -5
- package/src/geometry/indexBridge.js +8 -2
- package/src/geometry/instanceAreaGeometry.js +7 -1
- package/src/geometry/interpolateRoute.js +10 -2
- package/src/geometry/lampPostGeometry.js +9 -2
- package/src/geometry/lightGeometry.js +9 -2
- package/src/geometry/line.js +7 -0
- package/src/geometry/lineJoin.js +9 -0
- package/src/geometry/markerImageBounds.js +9 -0
- package/src/geometry/markerQuadCorners.js +9 -3
- package/src/geometry/meshShadowBounds.js +9 -0
- package/src/geometry/nativeGeometry.js +9 -1
- package/src/geometry/offsetBelowGround.js +7 -0
- package/src/geometry/polygon.js +7 -0
- package/src/geometry/quad.js +14 -0
- package/src/geometry/restoreGeometry.js +6 -0
- package/src/geometry/roofCoverage.js +12 -5
- package/src/geometry/roofFootprint.js +12 -4
- package/src/geometry/routeGeometry.js +7 -2
- package/src/geometry/samePoint.js +8 -0
- package/src/geometry/segment.js +9 -0
- package/src/geometry/setVertexColor.js +1 -1
- package/src/geometry/shadowBounds.js +8 -0
- package/src/geometry/subtractRoofTile.js +9 -0
- package/src/geometry/subtractVector.js +8 -0
- package/src/geometry/surface.js +11 -1
- package/src/geometry/terrainBuffers.js +10 -3
- package/src/geometry/terrainGrid.js +7 -2
- package/src/geometry/terrainTileGeometry.js +13 -4
- package/src/geometry/treeGeometry.js +7 -4
- package/src/geometry/triangle.js +11 -0
- package/src/geometry/validateTree.js +12 -0
- package/src/geometry/vertexNormals.js +8 -2
- package/src/geometry/visitNativeCoordinates.js +7 -0
- package/src/globals/CELL.js +6 -2
- package/src/globals/Compass.js +5 -0
- package/src/globals/ContainerResize.js +5 -0
- package/src/globals/HEIGHT.js +5 -0
- package/src/globals/L.js +5 -0
- package/src/globals/PitchDrag.js +5 -0
- package/src/globals/README.md +28 -0
- package/src/globals/ShiftRotate.js +5 -0
- package/src/globals/TILE_RADIUS.js +5 -0
- package/src/globals/TILE_SIZE.js +5 -0
- package/src/globals/TouchMode.js +5 -0
- package/src/globals/alphaBlend.js +5 -0
- package/src/globals/archiveDecoder.js +5 -0
- package/src/globals/archiveNorthWest.js +5 -0
- package/src/globals/archiveSouthEast.js +5 -0
- package/src/globals/atmosphereColor.js +5 -0
- package/src/globals/atmosphereStops.js +5 -0
- package/src/globals/blobParts.js +5 -0
- package/src/globals/cameraAngles.js +5 -0
- package/src/globals/cameraAnimatedOptions.js +5 -0
- package/src/globals/cameraAnimationFrame.js +5 -0
- package/src/globals/cameraAnimations.js +5 -0
- package/src/globals/cameraBearingSensitivity.js +5 -0
- package/src/globals/cameraDragSensitivity.js +5 -0
- package/src/globals/cameraDrags.js +5 -0
- package/src/globals/cameraEmptyOptions.js +5 -0
- package/src/globals/cameraFocusOptions.js +5 -0
- package/src/globals/cameraFov.js +5 -0
- package/src/globals/cameraListenerOptions.js +5 -0
- package/src/globals/cameraTouchStates.js +5 -0
- package/src/globals/cameraZeroPadding.js +5 -0
- package/src/globals/cogTags.js +5 -0
- package/src/globals/colorLayout.js +5 -0
- package/src/globals/colorTexture.js +5 -0
- package/src/globals/coreEventTypes.js +5 -0
- package/src/globals/coreMatrixKeys.js +5 -0
- package/src/globals/coreQuadIndices.js +5 -0
- package/src/globals/coreQuadUV.js +5 -0
- package/src/globals/coreSampler.js +5 -0
- package/src/globals/coreWhite.js +5 -0
- package/src/globals/cosObliquity.js +5 -0
- package/src/globals/coverageTiles.js +5 -0
- package/src/globals/dark.js +5 -0
- package/src/globals/defaultMaterial.js +5 -0
- package/src/globals/degrees.js +5 -0
- package/src/globals/demBuffer.js +5 -0
- package/src/globals/demLayout.js +5 -0
- package/src/globals/demSize.js +5 -0
- package/src/globals/demTarget.js +5 -0
- package/src/globals/demTexture.js +5 -0
- package/src/globals/depthBindGroup.js +5 -0
- package/src/globals/depthTexture.js +5 -0
- package/src/globals/directoryReader.js +5 -0
- package/src/globals/disabledShadow.js +5 -0
- package/src/globals/drawEntries.js +5 -0
- package/src/globals/drawFrameEntry.js +5 -0
- package/src/globals/drawMeshEntry.js +5 -0
- package/src/globals/drawSamplerEntries.js +5 -0
- package/src/globals/drawTerrainEntry.js +5 -0
- package/src/globals/drawTextureEntries.js +5 -0
- package/src/globals/earthCirc.js +5 -0
- package/src/globals/elevationWGSL.js +2 -0
- package/src/globals/fragmentShader.js +5 -0
- package/src/globals/frameBuffer.js +5 -0
- package/src/globals/frameCommands.js +5 -0
- package/src/globals/frameLayoutEntry.js +5 -0
- package/src/globals/geometryDecoder.js +5 -0
- package/src/globals/geometryEmpty.js +5 -0
- package/src/globals/geometryImageOptions.js +5 -0
- package/src/globals/geometryPixelStates.js +5 -0
- package/src/globals/geometryQuaternion.js +5 -0
- package/src/globals/geometryScale.js +5 -0
- package/src/globals/geometrySemantics.js +5 -0
- package/src/globals/geometryTranslation.js +5 -0
- package/src/globals/geometryWorkerUrl.js +5 -0
- package/src/globals/glass.js +5 -0
- package/src/globals/gridEvents.js +5 -0
- package/src/globals/gridFadeFrame.js +5 -0
- package/src/globals/halfRadians.js +5 -0
- package/src/globals/headerBounds.js +5 -0
- package/src/globals/headerFlags.js +5 -0
- package/src/globals/headerOffsets.js +5 -0
- package/src/globals/headlight.js +5 -0
- package/src/globals/hull.js +5 -0
- package/src/globals/instanceLayout.js +5 -0
- package/src/globals/lampDirections.js +5 -0
- package/src/globals/layerControlAddItem.js +5 -0
- package/src/globals/layerProto.js +5 -0
- package/src/globals/leafletLayer.js +5 -0
- package/src/globals/lightScale.js +5 -0
- package/src/globals/limbs.js +5 -1
- package/src/globals/loading.js +5 -0
- package/src/globals/mapMethods.js +5 -0
- package/src/globals/markerMethods.js +5 -0
- package/src/globals/markerPanFrame.js +5 -0
- package/src/globals/meshBindGroup.js +5 -0
- package/src/globals/meshBuffer.js +5 -0
- package/src/globals/meshCopySize.js +5 -0
- package/src/globals/meshImage.js +5 -0
- package/src/globals/meshLayoutEntry.js +5 -0
- package/src/globals/meshOffsets.js +5 -0
- package/src/globals/meshPipeline.js +5 -0
- package/src/globals/meshStack.js +5 -0
- package/src/globals/meshTarget.js +5 -0
- package/src/globals/moves.js +5 -1
- package/src/globals/mvtTextDecoder.js +5 -0
- package/src/globals/nativeMethodHandlers.js +5 -0
- package/src/globals/nativeScalableStyleKeys.js +5 -0
- package/src/globals/nextId.js +5 -0
- package/src/globals/normalLayout.js +5 -0
- package/src/globals/paints.js +5 -0
- package/src/globals/parts.js +5 -0
- package/src/globals/pendingGridFades.js +5 -0
- package/src/globals/pendingInitializations.js +5 -0
- package/src/globals/pendingMapChanges.js +5 -0
- package/src/globals/pendingMarkerPan.js +5 -0
- package/src/globals/pendingPlacements.js +5 -0
- package/src/globals/pendingRasterLoads.js +5 -0
- package/src/globals/pendingUpdates.js +5 -0
- package/src/globals/pendingZoomAnimations.js +5 -0
- package/src/globals/pipelineLayout.js +5 -0
- package/src/globals/popupEvents.js +5 -0
- package/src/globals/popupPan.js +5 -0
- package/src/globals/popupPosition.js +5 -0
- package/src/globals/positionLayout.js +5 -0
- package/src/globals/programEntries.js +5 -0
- package/src/globals/programLayout.js +5 -0
- package/src/globals/radians.js +5 -0
- package/src/globals/rasterBuffer.js +5 -0
- package/src/globals/rasterIndices.js +5 -0
- package/src/globals/rasterNormals.js +5 -0
- package/src/globals/rasterPoint.js +5 -0
- package/src/globals/rasterPositions.js +5 -0
- package/src/globals/rasterSampler.js +5 -0
- package/src/globals/rasterTexture.js +5 -0
- package/src/globals/rasterUVs.js +5 -0
- package/src/globals/removeLayer.js +5 -0
- package/src/globals/renderEmpty.js +5 -0
- package/src/globals/ringDirections.js +5 -0
- package/src/globals/roofBindGroup.js +5 -0
- package/src/globals/roofBlitSampler.js +5 -0
- package/src/globals/roofBuffer.js +5 -0
- package/src/globals/roofCommands.js +5 -0
- package/src/globals/roofCopySize.js +5 -0
- package/src/globals/roofImage.js +5 -0
- package/src/globals/roofMin.js +5 -0
- package/src/globals/roofOpacities.js +5 -0
- package/src/globals/roofPass.js +5 -0
- package/src/globals/roofPipeline.js +5 -0
- package/src/globals/roofSampler.js +5 -0
- package/src/globals/roofShader.js +5 -0
- package/src/globals/roofSignatures.js +5 -0
- package/src/globals/roofSize.js +5 -0
- package/src/globals/roofTarget.js +5 -0
- package/src/globals/roofTexture.js +5 -0
- package/src/globals/roofTiles.js +5 -0
- package/src/globals/roundProfile.js +5 -0
- package/src/globals/samplerLayoutEntries.js +5 -0
- package/src/globals/sceneCleanupFields.js +5 -0
- package/src/globals/sceneEmptyOptions.js +5 -0
- package/src/globals/scenePass.js +5 -0
- package/src/globals/sceneSunlightUniforms.js +5 -0
- package/src/globals/sceneTransferFields.js +5 -0
- package/src/globals/sceneWalkHandlers.js +5 -0
- package/src/globals/shadowBindGroup.js +5 -0
- package/src/globals/shadowBounds.js +5 -0
- package/src/globals/shadowCamera.js +5 -0
- package/src/globals/shadowDepthLayout.js +5 -0
- package/src/globals/shadowHigh.js +5 -0
- package/src/globals/shadowInstanceLayouts.js +5 -0
- package/src/globals/shadowLayouts.js +5 -0
- package/src/globals/shadowLow.js +5 -0
- package/src/globals/shadowMeshLayout.js +5 -0
- package/src/globals/shadowOffsets.js +5 -0
- package/src/globals/shadowPass.js +5 -0
- package/src/globals/shadowPipeline.js +5 -0
- package/src/globals/shadowPipelineLayout.js +5 -0
- package/src/globals/shadowShader.js +5 -0
- package/src/globals/shadowTexture.js +5 -0
- package/src/globals/shadowValues.js +5 -0
- package/src/globals/shirt.js +5 -0
- package/src/globals/sinObliquity.js +5 -0
- package/src/globals/sizes.js +5 -0
- package/src/globals/skin.js +5 -0
- package/src/globals/speed.js +5 -1
- package/src/globals/sunBindGroup.js +5 -0
- package/src/globals/taillight.js +5 -0
- package/src/globals/tau.js +5 -0
- package/src/globals/terrainLayoutEntry.js +5 -0
- package/src/globals/textureLayoutEntries.js +5 -0
- package/src/globals/tiledBounds.js +5 -0
- package/src/globals/tooltipEvents.js +5 -0
- package/src/globals/tooltipPosition.js +5 -0
- package/src/globals/trafficClocks.js +5 -0
- package/src/globals/trafficEmptyList.js +5 -0
- package/src/globals/trafficEmptyOptions.js +5 -0
- package/src/globals/trafficRouteMaterial.js +5 -0
- package/src/globals/trafficShader.js +5 -1
- package/src/globals/triangleContexts.js +5 -0
- package/src/globals/trousers.js +5 -0
- package/src/globals/types.js +5 -0
- package/src/globals/tyre.js +5 -0
- package/src/globals/uVLayout.js +5 -0
- package/src/globals/vectorStyleNamedColors.js +5 -0
- package/src/globals/vectorTileEvents.js +5 -0
- package/src/globals/vehicles.js +2 -0
- package/src/globals/vertexShader.js +5 -0
- package/src/globals/wantedTiles.js +5 -0
- package/src/globals/white.js +5 -0
- package/src/globals/workerCogSource.js +5 -0
- package/src/gpu/README.md +29 -0
- package/src/gpu/initializeRendererResources.js +6 -1
- package/src/gpu/initializeSharedRenderer.js +15 -8
- package/src/gpu/mountRenderer.js +7 -1
- package/src/gpu/releaseRenderer.js +8 -0
- package/src/gpu/rendererDeviceError.js +5 -3
- package/src/gpu/rendererDeviceLost.js +5 -3
- package/src/gpu/reportShaderCompilation.js +8 -0
- package/src/gpu/requestAdapter.js +8 -0
- package/src/gpu/requestDevice.js +9 -0
- package/src/gpu/showWebGPUWarning.js +5 -0
- package/src/index.js +0 -2
- package/src/layer-controls/README.md +25 -0
- package/src/layer-controls/layerControlInputId.js +7 -0
- package/src/layer-controls/layerCountTitle.js +10 -0
- package/src/layer-controls/placeEntry.js +9 -0
- package/src/layer-controls/placeEntryElement.js +7 -0
- package/src/layer-controls/placeUnderEntry.js +7 -0
- package/src/layer-controls/removeEntry.js +1 -0
- package/src/layer-controls/renderLayerCount.js +9 -1
- package/src/layer-controls/replaceEntry.js +1 -2
- package/src/layer-controls/runPlacements.js +1 -2
- package/src/layer-controls/underEntry.js +6 -2
- package/src/layer-controls/updateLayerCount.js +5 -1
- package/src/lighting/README.md +28 -0
- package/src/lighting/cacheLightGrid.js +9 -1
- package/src/lighting/collectLightMeshes.js +7 -1
- package/src/lighting/lightGrid.js +10 -1
- package/src/lighting/updatePointLights.js +7 -3
- package/src/lighting/visitLightCells.js +14 -1
- package/src/lighting/visitLightGridCells.js +11 -0
- package/src/lighting/worldLights.js +8 -1
- package/src/lighting/writeLightCell.js +9 -0
- package/src/materials/README.md +28 -0
- package/src/materials/createProgram.js +8 -4
- package/src/materials/createProgramLayout.js +8 -0
- package/src/materials/createProgramUniforms.js +7 -0
- package/src/materials/modelMaterialFor.js +8 -0
- package/src/materials/prepareMeshCutout.js +9 -0
- package/src/materials/terrainRasterProgram.js +15 -8
- package/src/materials/validateRoofMaterial.js +7 -0
- package/src/models/README.md +27 -0
- package/src/models/applyModelTransform.js +6 -2
- package/src/models/buildModelNodes.js +10 -0
- package/src/models/createModelContext.js +9 -0
- package/src/models/decodeModel.js +13 -2
- package/src/models/hasUnsupportedPrimitives.js +7 -0
- package/src/models/loadBuffer.js +10 -0
- package/src/models/loadModel.js +10 -7
- package/src/models/loadModelResources.js +8 -0
- package/src/models/modelNode.js +11 -1
- package/src/models/normalizeAccessor.js +10 -0
- package/src/models/prepareModel.js +10 -0
- package/src/models/prepareModelGeometry.js +10 -0
- package/src/models/prepareModelPrimitive.js +8 -0
- package/src/models/readAccessor.js +10 -4
- package/src/models/readAccessorValue.js +9 -0
- package/src/models/readAccessorValues.js +17 -0
- package/src/models/readModelAttributes.js +12 -0
- package/src/models/readModelIndices.js +12 -0
- package/src/models/readSparseAccessor.js +12 -0
- package/src/models/releaseModelResources.js +5 -0
- package/src/mvt/README.md +28 -0
- package/src/mvt/addMvtCrossings.js +6 -0
- package/src/mvt/appendMvtBandTriangles.js +11 -0
- package/src/mvt/appendMvtCoordinates.js +9 -0
- package/src/mvt/appendMvtPolygonTriangles.js +10 -0
- package/src/mvt/beginMvtPath.js +10 -0
- package/src/mvt/closeMvtPath.js +9 -0
- package/src/mvt/collectMvtEdges.js +10 -0
- package/src/mvt/createMvtReader.js +7 -0
- package/src/mvt/decodeVectorTile.js +7 -0
- package/src/mvt/expectMvtWire.js +8 -0
- package/src/mvt/finishMvtPath.js +9 -0
- package/src/mvt/finiteMvtCoordinate.js +7 -0
- package/src/mvt/groupMvtPolygons.js +10 -0
- package/src/mvt/isMvtFallbackError.js +7 -0
- package/src/mvt/mergeMvtActiveEdges.js +9 -0
- package/src/mvt/mvtEdgeX.js +8 -0
- package/src/mvt/mvtPathsVertices.js +7 -0
- package/src/mvt/mvtPolygonPaths.js +7 -0
- package/src/mvt/numericMvtValue.js +7 -0
- package/src/mvt/readMvtFeature.js +12 -0
- package/src/mvt/readMvtField.js +9 -0
- package/src/mvt/readMvtGeometry.js +13 -0
- package/src/mvt/readMvtInteger.js +10 -0
- package/src/mvt/readMvtKnownValue.js +9 -0
- package/src/mvt/readMvtLayer.js +9 -0
- package/src/mvt/readMvtMessage.js +8 -0
- package/src/mvt/readMvtNumber.js +9 -0
- package/src/mvt/readMvtNumbers.js +7 -0
- package/src/mvt/readMvtString.js +8 -0
- package/src/mvt/readMvtValue.js +10 -0
- package/src/mvt/skipMvtField.js +8 -0
- package/src/mvt/sortMvtActiveEdges.js +5 -0
- package/src/mvt/sortedMvtLevels.js +7 -0
- package/src/mvt/takeMvtBytes.js +10 -0
- package/src/mvt/tessellateVectorRings.js +7 -0
- package/src/mvt/triangulateVectorRings.js +4 -0
- package/src/native/README.md +27 -0
- package/src/native/beforeNativeRender.js +5 -0
- package/src/native/bypassNativeEvent.js +10 -0
- package/src/native/canScaleNativeStyle.js +9 -0
- package/src/native/compareNativeHits.js +8 -0
- package/src/native/createNativeMesh.js +15 -0
- package/src/native/disposeNativeLayer.js +3 -2
- package/src/native/forwardNativeError.js +5 -0
- package/src/native/getGridTerrainTile.js +13 -0
- package/src/native/gridTerrainElevation.js +8 -0
- package/src/native/handleNativeMapEvent.js +9 -4
- package/src/native/hideTargets.js +6 -0
- package/src/native/initNativeGPU.js +6 -3
- package/src/native/isCurrentNativeLayer.js +9 -4
- package/src/native/loadGridTerrain.js +10 -0
- package/src/native/nativeAddLatLng.js +7 -0
- package/src/native/nativeBringToBack.js +7 -0
- package/src/native/nativeBringToFront.js +7 -0
- package/src/native/nativeEventSource.js +9 -0
- package/src/native/nativeEvents.js +5 -4
- package/src/native/nativeLayer.js +10 -6
- package/src/native/nativeLayerMethod.js +9 -2
- package/src/native/nativeProgram.js +8 -0
- package/src/native/nativeRedraw.js +7 -0
- package/src/native/nativeSetBounds.js +7 -0
- package/src/native/nativeSetIcon.js +7 -0
- package/src/native/nativeSetLatLng.js +7 -0
- package/src/native/nativeSetLatLngs.js +7 -0
- package/src/native/nativeSetOpacity.js +7 -0
- package/src/native/nativeSetRadius.js +7 -0
- package/src/native/nativeSetStyle.js +7 -0
- package/src/native/nativeSetUrl.js +7 -0
- package/src/native/nativeSetZIndex.js +7 -0
- package/src/native/nativeSetZIndexOffset.js +7 -0
- package/src/native/nativeTerrainElevation.js +11 -0
- package/src/native/nativeVectorGeometry.js +7 -0
- package/src/native/orderNativeGridLayer.js +6 -0
- package/src/native/prepareGridTerrainRequests.js +7 -0
- package/src/native/pruneNativeResources.js +5 -0
- package/src/native/putNativeMesh.js +14 -0
- package/src/native/quadNativeMesh.js +11 -1
- package/src/native/readyNativeGPU.js +10 -6
- package/src/native/refreshNativeEvent.js +5 -0
- package/src/native/refreshNativeLayer.js +5 -3
- package/src/native/refreshNativeLayerContract.js +5 -2
- package/src/native/rejectNativeReady.js +5 -0
- package/src/native/removeNativeEvents.js +7 -3
- package/src/native/removeTargets.js +5 -2
- package/src/native/reorderNativeLayer.js +5 -3
- package/src/native/resolveNativeReady.js +3 -0
- package/src/native/restoreNativeEvents.js +3 -0
- package/src/native/retainGridTerrain.js +5 -0
- package/src/native/styleNativeMesh.js +11 -5
- package/src/native/syncGridLayer.js +5 -1
- package/src/native/syncGridTile.js +10 -0
- package/src/native/syncImageOverlay.js +8 -3
- package/src/native/syncMarker.js +5 -0
- package/src/native/syncNativeStrokeAnchors.js +6 -0
- package/src/native/syncNativeStrokeZoom.js +5 -0
- package/src/native/syncTerrainGridTile.js +10 -0
- package/src/native/syncVectorLayer.js +5 -0
- package/src/native/synchronizeNativeLayer.js +5 -3
- package/src/native/terrainGridMesh.js +13 -0
- package/src/native/updateNativeHover.js +8 -0
- package/src/native/updateNativeLayerView.js +3 -3
- package/src/native/updateNativeStrokeRadius.js +5 -0
- package/src/picking/README.md +29 -0
- package/src/picking/collectVisibleMesh.js +8 -0
- package/src/picking/findFeature.js +4 -4
- package/src/picking/hit.js +14 -7
- package/src/picking/hitColliderCell.js +10 -0
- package/src/picking/hitMesh.js +8 -2
- package/src/picking/onClick.js +6 -5
- package/src/picking/onPointerLeave.js +5 -5
- package/src/picking/onPointerMove.js +6 -5
- package/src/picking/pointerClick.js +5 -0
- package/src/picking/pointerLeave.js +1 -0
- package/src/picking/pointerMove.js +5 -0
- package/src/picking/raycast.js +2 -4
- package/src/picking/setHighlight.js +6 -5
- package/src/picking/shouldSkipOther.js +8 -2
- package/src/picking/showFeature.js +7 -4
- package/src/picking/validateCameraInverse.js +7 -0
- package/src/projections/README.md +28 -0
- package/src/projections/cameraAngles.js +8 -1
- package/src/projections/displayContainerPoint.js +9 -0
- package/src/projections/groundBounds.js +9 -1
- package/src/projections/localPixel.js +8 -0
- package/src/projections/localPixelForGeometry.js +8 -1
- package/src/projections/localPosition.js +8 -2
- package/src/projections/markerCameraIconPoint.js +9 -1
- package/src/projections/projectBridgePoint.js +13 -1
- package/src/projections/projectCameraPoint.js +11 -1
- package/src/projections/projectCelestialBody.js +11 -2
- package/src/projections/projectRing.js +11 -1
- package/src/projections/projectTreePoint.js +9 -1
- package/src/projections/toPoint.js +9 -1
- package/src/projections/transformZoomAnimationPoint.js +12 -5
- package/src/projections/verticalGroundY.js +11 -0
- package/src/projections/walkerLocalPosition.js +7 -0
- package/src/raster/README.md +28 -0
- package/src/raster/addRasterTile.js +10 -2
- package/src/raster/comparePendingTiles.js +8 -0
- package/src/raster/createRasterMesh.js +6 -5
- package/src/raster/finishRasterAttachment.js +9 -4
- package/src/raster/finishRasterTile.js +11 -2
- package/src/raster/getRasterEvents.js +7 -0
- package/src/raster/getRasterTileSize.js +5 -1
- package/src/raster/initRaster.js +6 -3
- package/src/raster/isRasterLoading.js +7 -3
- package/src/raster/loadRasterTile.js +8 -3
- package/src/raster/onPMTileAdd.js +6 -3
- package/src/raster/onPMTileRemove.js +6 -3
- package/src/raster/pruneRasterTiles.js +7 -3
- package/src/raster/pumpRasterTiles.js +5 -4
- package/src/raster/rasterTileRange.js +9 -0
- package/src/raster/readyRaster.js +8 -3
- package/src/raster/registerTerrainTile.js +9 -3
- package/src/raster/releaseRasterTile.js +6 -3
- package/src/raster/releaseRasterTiles.js +5 -3
- package/src/raster/removeRasterTile.js +6 -3
- package/src/raster/reportRasterError.js +8 -0
- package/src/raster/retainRasterTiles.js +7 -2
- package/src/raster/setPMTileOpacity.js +8 -0
- package/src/raster/setPMTileZIndex.js +8 -0
- package/src/raster/setRasterOpacity.js +6 -3
- package/src/raster/setRasterTerrain.js +6 -3
- package/src/raster/setRasterZIndex.js +6 -3
- package/src/raster/updateAttachedTiles.js +9 -3
- package/src/raster/updateRasterTiles.js +5 -5
- package/src/rendering/README.md +32 -0
- package/src/rendering/collectFrameMeshes.js +7 -3
- package/src/rendering/collectMeshes.js +11 -0
- package/src/rendering/collectVisibleMesh.js +9 -0
- package/src/rendering/compareMeshDepth.js +8 -0
- package/src/rendering/compareMeshes.js +10 -1
- package/src/rendering/createMesh.js +8 -5
- package/src/rendering/disposeMesh.js +6 -0
- package/src/rendering/drawGeometry.js +9 -2
- package/src/rendering/drawPipeline.js +10 -0
- package/src/rendering/drawSceneMeshes.js +9 -3
- package/src/rendering/nativeStrokeExpansion.js +7 -0
- package/src/rendering/prepareFrameBuffer.js +8 -2
- package/src/rendering/prepareFrameMeshes.js +10 -3
- package/src/rendering/prepareFrameUniforms.js +8 -3
- package/src/rendering/prepareMeshUniforms.js +10 -1
- package/src/rendering/render.js +2 -5
- package/src/rendering/resizeRenderer.js +6 -3
- package/src/rendering/revealRoofMesh.js +10 -1
- package/src/scene/README.md +36 -0
- package/src/scene/addRegisteredLayer.js +5 -4
- package/src/scene/addSceneLayer.js +9 -3
- package/src/scene/attachLayer.js +8 -3
- package/src/scene/attachSharedScene.js +6 -1
- package/src/scene/callLayer.js +11 -5
- package/src/scene/cancelUpdate.js +5 -3
- package/src/scene/createLayer.js +8 -2
- package/src/scene/createSceneNode.js +5 -1
- package/src/scene/emptyEvents.js +5 -0
- package/src/scene/failAttachment.js +9 -3
- package/src/scene/get3DEvents.js +7 -3
- package/src/scene/getLocation.js +8 -4
- package/src/scene/init3D.js +6 -3
- package/src/scene/initializeLayer.js +9 -2
- package/src/scene/initializerFor.js +8 -0
- package/src/scene/isNativeLayer.js +8 -2
- package/src/scene/layerInitialize.js +7 -4
- package/src/scene/onAdd3DLayer.js +6 -4
- package/src/scene/onMapChange.js +0 -5
- package/src/scene/onRemove3DLayer.js +6 -5
- package/src/scene/ready3D.js +9 -3
- package/src/scene/releaseSharedScene.js +6 -2
- package/src/scene/removeLayerEvents.js +1 -3
- package/src/scene/removeSceneLayer.js +9 -3
- package/src/scene/renderPendingMapChange.js +1 -4
- package/src/scene/renderPendingUpdates.js +5 -4
- package/src/scene/reportLayerError.js +6 -0
- package/src/scene/resolveNextInitialization.js +5 -2
- package/src/scene/restoreObject.js +6 -3
- package/src/scene/scheduleSceneUpdate.js +7 -6
- package/src/scene/setParent.js +6 -2
- package/src/scene/traverse.js +7 -2
- package/src/shaders/README.md +29 -0
- package/src/shaders/materialBaseShader.js +9 -0
- package/src/shaders/materialShaders.js +9 -1
- package/src/shaders/materialSurfaceShader.js +13 -0
- package/src/shaders/materialVertexShader.js +22 -10
- package/src/shaders/nativeStrokeShader.js +7 -0
- package/src/shaders/roofVertexShader.js +7 -0
- package/src/shadows/README.md +28 -0
- package/src/shadows/bindSunlight.js +5 -3
- package/src/shadows/drawShadowMeshes.js +7 -2
- package/src/shadows/ensureShadowPipeline.js +7 -0
- package/src/shadows/renderSunlight.js +8 -4
- package/src/shadows/resizeSunlight.js +6 -3
- package/src/shadows/shadowCacheMatches.js +11 -1
- package/src/shadows/shadowMatrix.js +8 -1
- package/src/shadows/shadowMeshMatches.js +8 -0
- package/src/sources/README.md +33 -0
- package/src/sources/attachAreaMesh.js +5 -4
- package/src/sources/buildArea.js +13 -2
- package/src/sources/buildAreaFeature.js +7 -1
- package/src/sources/buildAreaFeatures.js +9 -0
- package/src/sources/compareAreaDistance.js +8 -0
- package/src/sources/extrusionStyle.js +11 -0
- package/src/sources/featureAnchor.js +12 -0
- package/src/sources/groundOffset.js +7 -0
- package/src/sources/initVectorTiles.js +6 -0
- package/src/sources/initializeGeoJSON.js +6 -3
- package/src/sources/isVectorTileSource.js +7 -0
- package/src/sources/matchesAreaTile.js +10 -0
- package/src/sources/pendingSourceAreas.js +9 -2
- package/src/sources/prepareAreaGeometryJob.js +10 -0
- package/src/sources/projectAreaPolygons.js +10 -0
- package/src/sources/pumpSourceAreas.js +6 -6
- package/src/sources/readyVectorTiles.js +7 -0
- package/src/sources/releaseArea.js +6 -4
- package/src/sources/setGeoJSONData.js +8 -3
- package/src/sources/setGeoJSONLayerData.js +7 -0
- package/src/sources/sourceAreaContext.js +9 -2
- package/src/sources/updateArea.js +5 -5
- package/src/sources/updateSourceStatus.js +6 -3
- package/src/sunlight/README.md +28 -0
- package/src/sunlight/addTimeControlToMap.js +8 -1
- package/src/sunlight/addTimeLayer.js +9 -4
- package/src/sunlight/atmosphere.js +9 -2
- package/src/sunlight/createSun.js +7 -0
- package/src/sunlight/initSunlight.js +5 -0
- package/src/sunlight/initializeTimeControl.js +8 -6
- package/src/sunlight/onAddSun.js +11 -2
- package/src/sunlight/onAddTimeControl.js +7 -0
- package/src/sunlight/onRemoveSun.js +1 -1
- package/src/sunlight/removeSun.js +7 -5
- package/src/sunlight/removeTimeControl.js +7 -1
- package/src/sunlight/removeTimeLayer.js +8 -5
- package/src/sunlight/requestSunlightRender.js +6 -3
- package/src/sunlight/styleTimeControl.js +6 -0
- package/src/sunlight/tickSun.js +5 -0
- package/src/sunlight/updateCelestialDisc.js +11 -0
- package/src/sunlight/updateSky.js +5 -3
- package/src/sunlight/updateSun.js +6 -4
- package/src/sunlight/useLiveTime.js +5 -0
- package/src/sunlight/useSelectedTime.js +6 -4
- package/src/terrain/README.md +30 -0
- package/src/terrain/applyTerrain.js +10 -4
- package/src/terrain/clearLayerTerrain.js +5 -3
- package/src/terrain/copyTerrainTile.js +8 -0
- package/src/terrain/getElevation.js +8 -5
- package/src/terrain/initTerrain.js +5 -3
- package/src/terrain/loadReadyTerrain.js +1 -0
- package/src/terrain/loadTerrain.js +10 -2
- package/src/terrain/loadTerrainTiles.js +10 -3
- package/src/terrain/mapElevationOf.js +8 -0
- package/src/terrain/onTerrainAdd.js +8 -4
- package/src/terrain/onTerrainChange.js +5 -5
- package/src/terrain/onTerrainRemove.js +6 -3
- package/src/terrain/readBridges.js +9 -0
- package/src/terrain/readyTerrainOf.js +7 -0
- package/src/terrain/sampleTerrainTile.js +9 -0
- package/src/terrain/setLayerTerrain.js +5 -3
- package/src/terrain/setTerrainHeight.js +5 -4
- package/src/terrain/terrainAtlas.js +8 -2
- package/src/terrain/terrainElevation.js +8 -2
- package/src/terrain/terrainTileQueue.js +10 -3
- package/src/textures/README.md +29 -0
- package/src/textures/addImageState.js +7 -2
- package/src/textures/attachRasterImage.js +1 -2
- package/src/textures/bindMeshTextures.js +7 -0
- package/src/textures/collectRoofTiles.js +9 -2
- package/src/textures/compareRoofTiles.js +8 -0
- package/src/textures/composeRoofAtlas.js +11 -3
- package/src/textures/destroyTexture.js +6 -4
- package/src/textures/destroyTextureAfterSubmission.js +9 -0
- package/src/textures/ensureRoofBlit.js +5 -0
- package/src/textures/loadModelImage.js +12 -2
- package/src/textures/modelTextureFor.js +12 -4
- package/src/textures/modelTextureSampler.js +7 -2
- package/src/textures/nativeImageError.js +5 -1
- package/src/textures/nativeImageRefresh.js +5 -2
- package/src/textures/nativeTextureFor.js +11 -3
- package/src/textures/prepareMeshTextures.js +8 -0
- package/src/textures/rebuildRoofAtlas.js +8 -3
- package/src/textures/removeImageState.js +8 -3
- package/src/textures/resizeRoofTexture.js +9 -2
- package/src/textures/restoreMaterialTextures.js +6 -0
- package/src/textures/textureBinding.js +9 -0
- package/src/textures/updateRoofAtlas.js +10 -4
- package/src/textures/updateRoofRaster.js +8 -0
- package/src/textures/uploadCanvasTexture.js +15 -0
- package/src/textures/uploadMeshTexture.js +6 -0
- package/src/textures/uploadNativeImage.js +13 -0
- package/src/textures/uploadRoofTile.js +6 -0
- package/src/traffic/README.md +30 -0
- package/src/traffic/addTraffic.js +5 -2
- package/src/traffic/clockMinutes.js +7 -0
- package/src/traffic/compareDepartures.js +8 -0
- package/src/traffic/createTrafficMesh.js +13 -2
- package/src/traffic/destroyTrafficGpu.js +5 -0
- package/src/traffic/disposeTrafficObject.js +13 -10
- package/src/traffic/drawTrafficRoute.js +5 -1
- package/src/traffic/failTraffic.js +6 -0
- package/src/traffic/failedTrafficLoad.js +10 -3
- package/src/traffic/featuresToTrafficLanes.js +8 -0
- package/src/traffic/fetchTrafficLanes.js +11 -0
- package/src/traffic/groundTraffic.js +5 -1
- package/src/traffic/initTraffic.js +17 -15
- package/src/traffic/loadTraffic.js +5 -0
- package/src/traffic/loadedTrafficLanes.js +11 -4
- package/src/traffic/locateTraffic.js +9 -0
- package/src/traffic/moveTraffic.js +6 -0
- package/src/traffic/placeTraffic.js +5 -0
- package/src/traffic/prepareTraffic.js +5 -3
- package/src/traffic/readyTraffic.js +7 -2
- package/src/traffic/rebaseTraffic.js +5 -3
- package/src/traffic/rebuildTrafficMesh.js +5 -1
- package/src/traffic/refreshTrafficTrips.js +10 -0
- package/src/traffic/removeTraffic.js +5 -2
- package/src/traffic/routeColor.js +7 -0
- package/src/traffic/scheduledTrips.js +5 -2
- package/src/traffic/startTraffic.js +7 -2
- package/src/traffic/tickTraffic.js +5 -3
- package/src/traffic/trafficBounds.js +5 -0
- package/src/traffic/trafficNow.js +9 -4
- package/src/traffic/trafficStatusText.js +8 -0
- package/src/traffic/trafficStorage.js +8 -0
- package/src/traffic/trafficTooltip.js +7 -0
- package/src/traffic/tripsAt.js +9 -2
- package/src/traffic/updateTraffic.js +10 -7
- package/src/traffic/updateTrafficLights.js +5 -0
- package/src/traffic/updateTrafficPose.js +7 -0
- package/src/traffic/updateTrafficTerrain.js +10 -5
- package/src/traffic/uploadTrafficLanes.js +6 -0
- package/src/traffic/vehicleOffsets.js +9 -3
- package/src/transforms/README.md +27 -0
- package/src/transforms/composeLocalTransform.js +7 -0
- package/src/transforms/modelNodeMatrix.js +7 -2
- package/src/transforms/transformNativePoint.js +12 -0
- package/src/transforms/updateWorldMatrix.js +5 -2
- package/src/transforms/worldMatrixChanged.js +8 -0
- package/src/triangulation/README.md +26 -0
- package/src/triangulation/area.js +7 -0
- package/src/triangulation/clean.js +9 -0
- package/src/triangulation/clipEars.js +9 -0
- package/src/triangulation/connectHole.js +12 -0
- package/src/triangulation/containsVertex.js +10 -0
- package/src/triangulation/cross.js +9 -0
- package/src/triangulation/crossesBoundary.js +10 -0
- package/src/triangulation/crossesRing.js +9 -0
- package/src/triangulation/equal.js +8 -0
- package/src/triangulation/inside.js +8 -0
- package/src/triangulation/insideHole.js +8 -0
- package/src/triangulation/intersects.js +10 -0
- package/src/triangulation/isClockWise.js +4 -1
- package/src/triangulation/mergeHoles.js +8 -0
- package/src/triangulation/minimumX.js +7 -0
- package/src/triangulation/on.js +9 -0
- package/src/triangulation/polygonRings.js +8 -0
- package/src/triangulation/sortHoles.js +7 -0
- package/src/triangulation/triangulate.js +3 -2
- package/src/triangulation/validateArea.js +9 -0
- package/src/utils/README.md +16 -0
- package/src/utils/compareDistance.js +8 -0
- package/src/utils/noOperation.js +1 -0
- package/src/utils/wrap.js +7 -0
- package/src/utils/yieldTask.js +7 -0
- package/src/vector-style/README.md +27 -0
- package/src/vector-style/appendQuotedStyleCharacter.js +8 -0
- package/src/vector-style/arrayContainsRange.js +10 -0
- package/src/vector-style/evaluateBoolean.js +13 -0
- package/src/vector-style/evaluateCoalesceOrCase.js +13 -0
- package/src/vector-style/evaluateComparison.js +13 -0
- package/src/vector-style/evaluateIExpression.js +13 -0
- package/src/vector-style/evaluateInput.js +10 -0
- package/src/vector-style/evaluateInterpolate.js +9 -0
- package/src/vector-style/evaluateMatch.js +9 -0
- package/src/vector-style/evaluateMath.js +12 -0
- package/src/vector-style/evaluateMembership.js +11 -0
- package/src/vector-style/evaluateNegation.js +13 -0
- package/src/vector-style/evaluatePrimitive.js +12 -0
- package/src/vector-style/evaluateStep.js +9 -0
- package/src/vector-style/evaluateStyle.js +10 -0
- package/src/vector-style/evaluateToExpression.js +13 -0
- package/src/vector-style/fillVectorPaint.js +9 -0
- package/src/vector-style/lineVectorPaint.js +10 -0
- package/src/vector-style/parseFunctionalColor.js +9 -0
- package/src/vector-style/parseHexColor.js +7 -0
- package/src/vector-style/parseVectorStyle.js +7 -0
- package/src/vector-style/readPaintValue.js +11 -0
- package/src/vector-style/removeTrailingCommas.js +7 -0
- package/src/vector-style/scaleDashArray.js +12 -0
- package/src/vector-style/skipStyleComment.js +11 -0
- package/src/vector-style/stripStyleComments.js +7 -0
- package/src/vector-style/styleColor.js +7 -0
- package/src/vector-style/validateVectorLayers.js +8 -0
- package/src/vector-style/vectorPaint.js +9 -0
- package/src/vector-style/visibleStyle.js +9 -0
- package/src/vector-tiles/README.md +30 -0
- package/src/vector-tiles/appendVectorBatch.js +12 -0
- package/src/vector-tiles/attachVectorTileBatch.js +8 -0
- package/src/vector-tiles/attachVectorTileBatches.js +11 -0
- package/src/vector-tiles/compareVectorLabelPriority.js +8 -0
- package/src/vector-tiles/compareVectorTileDistance.js +8 -0
- package/src/vector-tiles/configureVectorTileLayer.js +8 -0
- package/src/vector-tiles/createVectorLabel.js +15 -0
- package/src/vector-tiles/forwardVectorTileError.js +5 -0
- package/src/vector-tiles/loadVectorSprite.js +9 -0
- package/src/vector-tiles/loadVectorTile.js +9 -0
- package/src/vector-tiles/onVectorTileAdd.js +5 -0
- package/src/vector-tiles/onVectorTileMessage.js +5 -0
- package/src/vector-tiles/onVectorTileRemove.js +5 -0
- package/src/vector-tiles/onVectorTileWorkerError.js +5 -0
- package/src/vector-tiles/paintVectorTileBatch.js +6 -0
- package/src/vector-tiles/prepareVectorLabel.js +9 -0
- package/src/vector-tiles/prepareVectorStyleLayer.js +8 -0
- package/src/vector-tiles/prepareVectorTile.js +13 -0
- package/src/vector-tiles/projectVectorPaths.js +10 -0
- package/src/vector-tiles/projectVectorPoint.js +9 -0
- package/src/vector-tiles/projectVectorTriangles.js +10 -0
- package/src/vector-tiles/pruneVectorTiles.js +3 -0
- package/src/vector-tiles/pumpVectorTiles.js +3 -0
- package/src/vector-tiles/readTileJSON.js +10 -0
- package/src/vector-tiles/readVectorStyle.js +11 -0
- package/src/vector-tiles/refreshVectorTiles.js +3 -0
- package/src/vector-tiles/reserveVectorLabelCells.js +8 -0
- package/src/vector-tiles/retireVectorTileGroup.js +7 -0
- package/src/vector-tiles/revokeVectorWorkerUrl.js +5 -0
- package/src/vector-tiles/rotateVectorLabel.js +7 -0
- package/src/vector-tiles/rotateVectorLabels.js +3 -0
- package/src/vector-tiles/simplifyVectorPath.js +8 -0
- package/src/vector-tiles/updateVectorLabelMarker.js +9 -0
- package/src/vector-tiles/updateVectorLabelStyle.js +6 -0
- package/src/vector-tiles/updateVectorTileLabels.js +5 -0
- package/src/vector-tiles/updateVectorTilePaint.js +5 -0
- package/src/vector-tiles/updateVectorTiles.js +3 -0
- package/src/vector-tiles/validateVectorTileZooms.js +9 -0
- package/src/vector-tiles/vectorFeaturePaint.js +10 -0
- package/src/vector-tiles/vectorFeaturePaths.js +10 -0
- package/src/vector-tiles/vectorFeatureZoom.js +10 -0
- package/src/vector-tiles/vectorLabelAnchors.js +8 -1
- package/src/vector-tiles/vectorLabelCandidates.js +7 -0
- package/src/vector-tiles/vectorLabelCells.js +9 -0
- package/src/vector-tiles/vectorLabelIcon.js +8 -0
- package/src/vector-tiles/vectorLabelProperty.js +9 -0
- package/src/vector-tiles/vectorLabelText.js +9 -0
- package/src/vector-tiles/vectorSpriteIcon.js +8 -0
- package/src/vector-tiles/vectorStraightRun.js +10 -1
- package/src/vector-tiles/vectorStyleDependencies.js +7 -0
- package/src/vector-tiles/vectorStyleValue.js +11 -0
- package/src/vector-tiles/vectorStyleZoom.js +7 -1
- package/src/vector-tiles/vectorTileAwaited.js +8 -0
- package/src/vector-tiles/vectorTileOverlaps.js +8 -0
- package/src/vector-tiles/vectorTilePaint.js +8 -0
- package/src/vector-tiles/vectorTileSettings.js +10 -0
- package/src/vector-tiles/vectorTilesIdle.js +8 -0
- package/src/vector-tiles/vectorTolerance.js +8 -1
- package/src/vector-tiles/wrapVectorLabel.js +7 -1
- package/src/vehicles/README.md +27 -0
- package/src/vehicles/bicycleModel.js +7 -1
- package/src/vehicles/boatBenches.js +5 -0
- package/src/vehicles/boatModel.js +8 -8
- package/src/vehicles/buildCarriage.js +9 -1
- package/src/vehicles/busModel.js +11 -3
- package/src/vehicles/carModel.js +12 -11
- package/src/vehicles/metroModel.js +8 -0
- package/src/vehicles/mirrorVehiclePart.js +11 -0
- package/src/vehicles/pedestrianModel.js +7 -1
- package/src/vehicles/tramModel.js +8 -0
- package/src/walk/README.md +30 -0
- package/src/walk/animateWalker.js +5 -4
- package/src/walk/createWalk.js +6 -3
- package/src/walk/initWalk.js +5 -0
- package/src/walk/initializeWalkControl.js +6 -1
- package/src/walk/isWalkBlocked.js +9 -0
- package/src/walk/landWalker.js +12 -8
- package/src/walk/moveWalker.js +17 -4
- package/src/walk/onAddWalkControl.js +9 -0
- package/src/walk/onRemoveWalkControl.js +5 -0
- package/src/walk/onWalkBlur.js +1 -0
- package/src/walk/onWalkKey.js +5 -2
- package/src/walk/onWalkPointer.js +6 -0
- package/src/walk/onWalkTerrain.js +4 -3
- package/src/walk/placeWalker.js +1 -2
- package/src/walk/resolveWalkerPosition.js +5 -0
- package/src/walk/startWalking.js +1 -1
- package/src/walk/stepWalkerHeight.js +7 -0
- package/src/walk/stopWalking.js +1 -0
- package/src/walk/toggleWalking.js +5 -4
- package/src/walk/updateWalkerFrame.js +10 -0
- package/src/walk/updateWalkerView.js +9 -0
- package/src/weakmaps/README.md +33 -0
- package/src/weakmaps/addedByLayer.js +5 -0
- package/src/weakmaps/archiveHeaderByLayer.js +5 -0
- package/src/weakmaps/areasByLayer.js +5 -0
- package/src/weakmaps/boundsMethods.js +5 -0
- package/src/weakmaps/bridgeMeshByLayer.js +5 -0
- package/src/weakmaps/bridgesByLayer.js +5 -0
- package/src/weakmaps/cameraAnimationByMap.js +5 -0
- package/src/weakmaps/cameraBearingByMap.js +5 -0
- package/src/weakmaps/cameraByLayer.js +5 -0
- package/src/weakmaps/cameraDraggableByMap.js +5 -0
- package/src/weakmaps/cameraFields.js +5 -0
- package/src/weakmaps/cameraFrameByMap.js +5 -0
- package/src/weakmaps/cameraHandlersByMap.js +5 -0
- package/src/weakmaps/cameraMaps.js +5 -0
- package/src/weakmaps/cameraPitchByMap.js +5 -0
- package/src/weakmaps/cameraReadyByMap.js +5 -0
- package/src/weakmaps/cameraTouchStateByMap.js +5 -0
- package/src/weakmaps/cameraViewByMap.js +5 -0
- package/src/weakmaps/cameraZIndexOffsetByLayer.js +5 -0
- package/src/weakmaps/closestMethods.js +5 -0
- package/src/weakmaps/colliders.js +5 -0
- package/src/weakmaps/containerByLayer.js +5 -0
- package/src/weakmaps/controlByLayer.js +5 -0
- package/src/weakmaps/countStatusByLayer.js +5 -0
- package/src/weakmaps/cursorByLayer.js +5 -0
- package/src/weakmaps/demByLayer.js +5 -0
- package/src/weakmaps/directoriesByLayer.js +5 -0
- package/src/weakmaps/dragByHandler.js +5 -0
- package/src/weakmaps/dragStates.js +5 -0
- package/src/weakmaps/etagByLayer.js +5 -0
- package/src/weakmaps/eventMapByLayer.js +5 -0
- package/src/weakmaps/eventsByLayer.js +5 -0
- package/src/weakmaps/fadeFrameByLayer.js +5 -0
- package/src/weakmaps/fadeVersionByLayer.js +5 -0
- package/src/weakmaps/frameByLayer.js +5 -0
- package/src/weakmaps/geojsonByLayer.js +5 -0
- package/src/weakmaps/geometryWorkersByMap.js +5 -0
- package/src/weakmaps/gridInitializers.js +5 -0
- package/src/weakmaps/groupByLayer.js +5 -0
- package/src/weakmaps/headerByLayer.js +5 -0
- package/src/weakmaps/highlightedFeatureByLayer.js +5 -0
- package/src/weakmaps/hoveredFeatureByLayer.js +5 -0
- package/src/weakmaps/imageStates.js +5 -0
- package/src/weakmaps/inflightByLayer.js +5 -0
- package/src/weakmaps/kindByLayer.js +5 -0
- package/src/weakmaps/layersByLayer.js +5 -0
- package/src/weakmaps/loadingTilesByLayer.js +5 -0
- package/src/weakmaps/locationByLayer.js +5 -0
- package/src/weakmaps/modelByLayer.js +5 -0
- package/src/weakmaps/modelUrlByLayer.js +5 -0
- package/src/weakmaps/nativeEventMaps.js +5 -0
- package/src/weakmaps/nativeGPUBackByMap.js +5 -0
- package/src/weakmaps/nativeGPUByLayer.js +5 -0
- package/src/weakmaps/nativeGPUOrderByMap.js +5 -0
- package/src/weakmaps/nativeProgramsByRenderer.js +5 -0
- package/src/weakmaps/nativeRenderByLayer.js +5 -0
- package/src/weakmaps/pathProjectionByMap.js +5 -0
- package/src/weakmaps/pitchSkyByMap.js +5 -0
- package/src/weakmaps/pointerEventsByLayer.js +5 -0
- package/src/weakmaps/pruneAfterByLayer.js +5 -0
- package/src/weakmaps/pruneVersionByLayer.js +5 -0
- package/src/weakmaps/pruneWantedByLayer.js +5 -0
- package/src/weakmaps/queuedByLayer.js +5 -0
- package/src/weakmaps/rasterGeometryByLayer.js +5 -0
- package/src/weakmaps/rasterProgramByLayer.js +5 -0
- package/src/weakmaps/rasterTilesByLayer.js +5 -0
- package/src/weakmaps/rasterVersionByLayer.js +5 -0
- package/src/weakmaps/raycasterByLayer.js +5 -0
- package/src/weakmaps/readyByLayer.js +5 -0
- package/src/weakmaps/rendererByLayer.js +5 -0
- package/src/weakmaps/rendererDevices.js +5 -0
- package/src/weakmaps/rendererReadyByLayer.js +5 -0
- package/src/weakmaps/renderers.js +5 -0
- package/src/weakmaps/roofRasterByLayer.js +5 -0
- package/src/weakmaps/roofRastersByLayer.js +5 -0
- package/src/weakmaps/rootByLayer.js +5 -0
- package/src/weakmaps/rotateControlByMap.js +5 -0
- package/src/weakmaps/sceneByLayer.js +5 -0
- package/src/weakmaps/sceneFields.js +5 -0
- package/src/weakmaps/sceneLayers.js +5 -0
- package/src/weakmaps/sceneOriginByLayer.js +5 -0
- package/src/weakmaps/shadowMeshesByLayer.js +5 -0
- package/src/weakmaps/sharedByLayer.js +5 -0
- package/src/weakmaps/sizeByLayer.js +5 -0
- package/src/weakmaps/state3dByLayer.js +5 -0
- package/src/weakmaps/streamTerrainByLayer.js +5 -0
- package/src/weakmaps/streamTerrainByMap.js +5 -0
- package/src/weakmaps/sunByMap.js +5 -0
- package/src/weakmaps/sunlightByControl.js +5 -0
- package/src/weakmaps/sunlightByMap.js +5 -0
- package/src/weakmaps/terrain3DByLayer.js +5 -0
- package/src/weakmaps/terrain3DByMap.js +5 -0
- package/src/weakmaps/terrainArchiveByLayer.js +5 -0
- package/src/weakmaps/terrainBaseYByLayer.js +5 -0
- package/src/weakmaps/terrainBoundsByLayer.js +5 -0
- package/src/weakmaps/terrainControllerByLayer.js +5 -0
- package/src/weakmaps/terrainGridsByLayer.js +5 -0
- package/src/weakmaps/terrainLoadingByLayer.js +5 -0
- package/src/weakmaps/terrainOriginElevationByLayer.js +5 -0
- package/src/weakmaps/terrainPromiseByLayer.js +5 -0
- package/src/weakmaps/terrainReadyByLayer.js +5 -0
- package/src/weakmaps/terrainRequestByLayer.js +5 -0
- package/src/weakmaps/terrainSourceByLayer.js +5 -0
- package/src/weakmaps/terrainTilesByLayer.js +5 -0
- package/src/weakmaps/terrainZoomByLayer.js +5 -0
- package/src/weakmaps/tileZoomByLayer.js +5 -0
- package/src/weakmaps/timeControlByMap.js +5 -0
- package/src/weakmaps/tooltipByLayer.js +5 -0
- package/src/weakmaps/touchByContainer.js +5 -0
- package/src/weakmaps/touchPitchByMap.js +5 -0
- package/src/weakmaps/touchRotateByMap.js +5 -0
- package/src/weakmaps/trafficByLayer.js +5 -0
- package/src/weakmaps/typeByLayer.js +5 -0
- package/src/weakmaps/urlByLayer.js +5 -0
- package/src/weakmaps/vectorTileOptionsByLayer.js +5 -0
- package/src/weakmaps/vectorWorkerByLayer.js +5 -0
- package/src/weakmaps/visibleMeshesByLayer.js +5 -0
- package/src/weakmaps/walkByMap.js +5 -0
- package/src/weakmaps/walkerByLayer.js +5 -0
- package/src/weakmaps/wantedRasterTilesByLayer.js +5 -0
- package/src/weakmaps/workerMapByLayer.js +5 -0
- package/src/weakmaps/zoomLevelByLayer.js +5 -0
- package/src/weakmaps/zoomTransitionsByLayer.js +5 -0
- package/src/weakmaps/zoomViewByLayer.js +5 -0
- package/src/workers/README.md +33 -0
- package/src/workers/acquireGeometryWorker.js +10 -0
- package/src/workers/buildAreaInWorker.js +8 -0
- package/src/workers/closeGeometryWorkers.js +5 -0
- package/src/workers/cogWorker.js +7 -0
- package/src/workers/createGeometryWorker.js +10 -0
- package/src/workers/geometryWorker.js +5 -0
- package/src/workers/getCogInWorker.js +11 -0
- package/src/workers/modelWorker.js +7 -0
- package/src/workers/openCogInWorker.js +8 -0
- package/src/workers/runSourceWorker.js +12 -0
- package/src/workers/settleGeometryWorker.js +6 -0
- package/src/workers/startGeometryWorker.js +7 -0
- package/src/workers/vectorTileWorker.js +5 -0
- package/src/collision/setTrafficNormal.js +0 -9
|
@@ -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;
|
package/src/geometry/circleAt.js
CHANGED
|
@@ -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());
|
package/src/geometry/clipLine.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { samePoint } from './samePoint.js';
|
|
2
2
|
import { clipSegment } from './clipSegment.js';
|
|
3
3
|
|
|
4
|
-
/**
|
|
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
|
-
/**
|
|
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;
|
package/src/geometry/disk.js
CHANGED
|
@@ -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))));
|
package/src/geometry/diskAt.js
CHANGED
|
@@ -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));
|
package/src/geometry/emitter.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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);
|
package/src/geometry/line.js
CHANGED
|
@@ -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;
|
package/src/geometry/lineJoin.js
CHANGED
|
@@ -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
|
-
/**
|
|
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 */ [];
|
package/src/geometry/polygon.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { line } from './line.js';
|
|
2
2
|
import { fillNativePolygon } from './fillNativePolygon.js';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Project polygon or line rings and append their fill and stroke geometry.
|
|
6
|
+
*
|
|
7
|
+
* @param {Object} context Projection, style and geometry buffers.
|
|
8
|
+
* @param {Array<Array<L.LatLng>>} rings Geographic rings or lines.
|
|
9
|
+
* @param {boolean} closed Whether to close and optionally fill the rings.
|
|
10
|
+
*/
|
|
4
11
|
export function polygon(context, rings, closed) {
|
|
5
12
|
const { options, map } = context;
|
|
6
13
|
const projected = /* alloc */ [];
|
package/src/geometry/quad.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Append a quad as two triangles at a common height.
|
|
3
|
+
*
|
|
4
|
+
* @param {Function} addTriangle Triangle destination callback.
|
|
5
|
+
* @param {Object} color Triangle color.
|
|
6
|
+
* @param {Object} a First corner.
|
|
7
|
+
* @param {Object} b Second corner.
|
|
8
|
+
* @param {Object} c Third corner.
|
|
9
|
+
* @param {Object} d Fourth corner.
|
|
10
|
+
* @param {number} height Quad height.
|
|
11
|
+
* @param {number|Array<number>} nx Normal x component or complete normal vector.
|
|
12
|
+
* @param {number} ny Normal y component when nx is numeric.
|
|
13
|
+
* @param {number} nz Normal z component when nx is numeric.
|
|
14
|
+
*/
|
|
1
15
|
export function quad(addTriangle, color, a, b, c, d, height, nx, ny, nz) {
|
|
2
16
|
if (typeof nx !== 'number') {
|
|
3
17
|
addTriangle(a, height, b, height, c, height, ...nx, color);
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recreate geometry buffers on a device from retained CPU attributes.
|
|
3
|
+
*
|
|
4
|
+
* @param {Object} geometry Geometry and attribute data to restore.
|
|
5
|
+
* @param {GPUDevice} device Device receiving the buffers.
|
|
6
|
+
*/
|
|
1
7
|
export function restoreGeometry(geometry, device) {
|
|
2
8
|
if (geometry.attributes.index?.data instanceof Uint8Array) {
|
|
3
9
|
geometry.attributes.index.data = /* alloc */ new Uint16Array(geometry.attributes.index.data);
|