@sakuzu/maplibre-gl-draw 1.0.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/CHANGELOG.md +43 -0
- package/LICENSE +661 -0
- package/README.ja.md +248 -0
- package/README.md +255 -0
- package/THIRD_PARTY_NOTICES.md +275 -0
- package/dist/api/api.d.ts +1259 -0
- package/dist/api/api.js +86 -0
- package/dist/api/context.d.ts +173 -0
- package/dist/api/context.js +193 -0
- package/dist/api/display-api.d.ts +1 -0
- package/dist/api/display-api.js +23 -0
- package/dist/api/event-api.d.ts +13 -0
- package/dist/api/event-api.js +17 -0
- package/dist/api/extension-api.d.ts +46 -0
- package/dist/api/extension-api.js +85 -0
- package/dist/api/feature-api.d.ts +11 -0
- package/dist/api/feature-api.js +101 -0
- package/dist/api/geometry/apply.d.ts +51 -0
- package/dist/api/geometry/apply.js +114 -0
- package/dist/api/geometry/boolean.d.ts +28 -0
- package/dist/api/geometry/boolean.js +65 -0
- package/dist/api/geometry/buffer.d.ts +11 -0
- package/dist/api/geometry/buffer.js +105 -0
- package/dist/api/geometry/split.d.ts +16 -0
- package/dist/api/geometry/split.js +75 -0
- package/dist/api/geometry/targets.d.ts +76 -0
- package/dist/api/geometry/targets.js +158 -0
- package/dist/api/geometry/types.d.ts +31 -0
- package/dist/api/geometry/types.js +3 -0
- package/dist/api/geometry-operations.d.ts +162 -0
- package/dist/api/geometry-operations.js +94 -0
- package/dist/api/group-api.d.ts +10 -0
- package/dist/api/group-api.js +78 -0
- package/dist/api/import-export/constants.d.ts +29 -0
- package/dist/api/import-export/constants.js +40 -0
- package/dist/api/import-export/embedded-file.d.ts +13 -0
- package/dist/api/import-export/embedded-file.js +31 -0
- package/dist/api/import-export/file-name.d.ts +10 -0
- package/dist/api/import-export/file-name.js +20 -0
- package/dist/api/import-export/format-detection.d.ts +12 -0
- package/dist/api/import-export/format-detection.js +29 -0
- package/dist/api/import-export/geojson-export.d.ts +19 -0
- package/dist/api/import-export/geojson-export.js +262 -0
- package/dist/api/import-export/geojson-import.d.ts +34 -0
- package/dist/api/import-export/geojson-import.js +538 -0
- package/dist/api/import-export/geometry-validation.d.ts +20 -0
- package/dist/api/import-export/geometry-validation.js +107 -0
- package/dist/api/import-export/image-import.d.ts +12 -0
- package/dist/api/import-export/image-import.js +53 -0
- package/dist/api/import-export/index.d.ts +9 -0
- package/dist/api/import-export/index.js +107 -0
- package/dist/api/import-export/native-format.d.ts +15 -0
- package/dist/api/import-export/native-format.js +126 -0
- package/dist/api/import-export/native-validation.d.ts +28 -0
- package/dist/api/import-export/native-validation.js +212 -0
- package/dist/api/import-export/own-property.d.ts +10 -0
- package/dist/api/import-export/own-property.js +19 -0
- package/dist/api/import-export/style-validation.d.ts +27 -0
- package/dist/api/import-export/style-validation.js +49 -0
- package/dist/api/import-export/types.d.ts +26 -0
- package/dist/api/import-export/types.js +3 -0
- package/dist/api/index.d.ts +15 -0
- package/dist/api/index.js +3 -0
- package/dist/api/input-api.d.ts +158 -0
- package/dist/api/input-api.js +144 -0
- package/dist/api/instance-api.d.ts +38 -0
- package/dist/api/instance-api.js +136 -0
- package/dist/api/layer-api.d.ts +12 -0
- package/dist/api/layer-api.js +62 -0
- package/dist/api/selection-api.d.ts +7 -0
- package/dist/api/selection-api.js +78 -0
- package/dist/api/snapping-api.d.ts +125 -0
- package/dist/api/snapping-api.js +50 -0
- package/dist/api/topology-api.d.ts +30 -0
- package/dist/api/topology-api.js +16 -0
- package/dist/api/tracing-api.d.ts +31 -0
- package/dist/api/tracing-api.js +16 -0
- package/dist/dispatcher/hit-test/box-strategies.d.ts +19 -0
- package/dist/dispatcher/hit-test/box-strategies.js +275 -0
- package/dist/dispatcher/hit-test/box-strategy.d.ts +59 -0
- package/dist/dispatcher/hit-test/box-strategy.js +37 -0
- package/dist/dispatcher/hit-test/globe-shape.d.ts +46 -0
- package/dist/dispatcher/hit-test/globe-shape.js +70 -0
- package/dist/dispatcher/hit-test/index.d.ts +14 -0
- package/dist/dispatcher/hit-test/index.js +9 -0
- package/dist/dispatcher/hit-test/local-frame.d.ts +77 -0
- package/dist/dispatcher/hit-test/local-frame.js +112 -0
- package/dist/dispatcher/hit-test/segment-grid.d.ts +32 -0
- package/dist/dispatcher/hit-test/segment-grid.js +79 -0
- package/dist/dispatcher/hit-test/service.d.ts +120 -0
- package/dist/dispatcher/hit-test/service.js +333 -0
- package/dist/dispatcher/hit-test/strategies/base.d.ts +136 -0
- package/dist/dispatcher/hit-test/strategies/base.js +66 -0
- package/dist/dispatcher/hit-test/strategies/circle.d.ts +10 -0
- package/dist/dispatcher/hit-test/strategies/circle.js +56 -0
- package/dist/dispatcher/hit-test/strategies/image.d.ts +22 -0
- package/dist/dispatcher/hit-test/strategies/image.js +115 -0
- package/dist/dispatcher/hit-test/strategies/index.d.ts +11 -0
- package/dist/dispatcher/hit-test/strategies/index.js +10 -0
- package/dist/dispatcher/hit-test/strategies/line.d.ts +17 -0
- package/dist/dispatcher/hit-test/strategies/line.js +30 -0
- package/dist/dispatcher/hit-test/strategies/multi.d.ts +44 -0
- package/dist/dispatcher/hit-test/strategies/multi.js +141 -0
- package/dist/dispatcher/hit-test/strategies/point.d.ts +20 -0
- package/dist/dispatcher/hit-test/strategies/point.js +29 -0
- package/dist/dispatcher/hit-test/strategies/polygon.d.ts +52 -0
- package/dist/dispatcher/hit-test/strategies/polygon.js +138 -0
- package/dist/dispatcher/hit-test/topmost.d.ts +48 -0
- package/dist/dispatcher/hit-test/topmost.js +157 -0
- package/dist/dispatcher/hit-test/visibility-lookup.d.ts +23 -0
- package/dist/dispatcher/hit-test/visibility-lookup.js +40 -0
- package/dist/dispatcher/index.d.ts +15 -0
- package/dist/dispatcher/index.js +3 -0
- package/dist/dispatcher/input-router.d.ts +1 -0
- package/dist/dispatcher/input-router.js +288 -0
- package/dist/dispatcher/normalizer.d.ts +1 -0
- package/dist/dispatcher/normalizer.js +513 -0
- package/dist/dispatcher/types.d.ts +144 -0
- package/dist/dispatcher/types.js +15 -0
- package/dist/display/chunk-set.d.ts +24 -0
- package/dist/display/chunk-set.js +533 -0
- package/dist/display/chunk.d.ts +1 -0
- package/dist/display/chunk.js +104 -0
- package/dist/display/columnar/index.d.ts +12 -0
- package/dist/display/columnar/index.js +13 -0
- package/dist/display/columnar/prepare.d.ts +42 -0
- package/dist/display/columnar/prepare.js +116 -0
- package/dist/display/columnar/source.d.ts +1 -0
- package/dist/display/columnar/source.js +531 -0
- package/dist/display/columnar/table.d.ts +1 -0
- package/dist/display/columnar/table.js +471 -0
- package/dist/display/columnar/types.d.ts +223 -0
- package/dist/display/columnar/types.js +3 -0
- package/dist/display/dataset.d.ts +2 -0
- package/dist/display/dataset.js +891 -0
- package/dist/display/index.d.ts +13 -0
- package/dist/display/index.js +3 -0
- package/dist/display/interaction.d.ts +1 -0
- package/dist/display/interaction.js +90 -0
- package/dist/display/manager.d.ts +1 -0
- package/dist/display/manager.js +440 -0
- package/dist/display/packed-rtree.d.ts +1 -0
- package/dist/display/packed-rtree.js +244 -0
- package/dist/display/partition.d.ts +1 -0
- package/dist/display/partition.js +226 -0
- package/dist/display/provider.d.ts +1 -0
- package/dist/display/provider.js +342 -0
- package/dist/display/retained.d.ts +40 -0
- package/dist/display/retained.js +898 -0
- package/dist/display/selection.d.ts +13 -0
- package/dist/display/selection.js +226 -0
- package/dist/display/source.d.ts +1 -0
- package/dist/display/source.js +119 -0
- package/dist/display/spatial.d.ts +1 -0
- package/dist/display/spatial.js +71 -0
- package/dist/display/style.d.ts +1 -0
- package/dist/display/style.js +126 -0
- package/dist/display/thinning.d.ts +65 -0
- package/dist/display/thinning.js +910 -0
- package/dist/display/triangulation.d.ts +1 -0
- package/dist/display/triangulation.js +0 -0
- package/dist/display/types.d.ts +561 -0
- package/dist/display/types.js +43 -0
- package/dist/extension/feature-handler.d.ts +182 -0
- package/dist/extension/feature-handler.js +3 -0
- package/dist/extension/index.d.ts +9 -0
- package/dist/extension/index.js +3 -0
- package/dist/extension/renderers.d.ts +208 -0
- package/dist/extension/renderers.js +3 -0
- package/dist/geometry/angle.d.ts +47 -0
- package/dist/geometry/angle.js +44 -0
- package/dist/geometry/bbox.d.ts +48 -0
- package/dist/geometry/bbox.js +83 -0
- package/dist/geometry/boolean.d.ts +162 -0
- package/dist/geometry/boolean.js +331 -0
- package/dist/geometry/buffer.d.ts +72 -0
- package/dist/geometry/buffer.js +218 -0
- package/dist/geometry/circle.d.ts +55 -0
- package/dist/geometry/circle.js +107 -0
- package/dist/geometry/coords.d.ts +97 -0
- package/dist/geometry/coords.js +149 -0
- package/dist/geometry/distance.d.ts +79 -0
- package/dist/geometry/distance.js +111 -0
- package/dist/geometry/errors.d.ts +74 -0
- package/dist/geometry/errors.js +104 -0
- package/dist/geometry/index.d.ts +28 -0
- package/dist/geometry/index.js +38 -0
- package/dist/geometry/measure.d.ts +81 -0
- package/dist/geometry/measure.js +236 -0
- package/dist/geometry/predicates.d.ts +62 -0
- package/dist/geometry/predicates.js +132 -0
- package/dist/geometry/simplify.d.ts +74 -0
- package/dist/geometry/simplify.js +159 -0
- package/dist/geometry/split.d.ts +68 -0
- package/dist/geometry/split.js +430 -0
- package/dist/geometry/types.d.ts +95 -0
- package/dist/geometry/types.js +3 -0
- package/dist/geometry/units.d.ts +35 -0
- package/dist/geometry/units.js +41 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.js +20 -0
- package/dist/maplibre-gl-draw.d.ts +47 -0
- package/dist/maplibre-gl-draw.js +407 -0
- package/dist/messages.d.ts +64 -0
- package/dist/messages.js +36 -0
- package/dist/modes/cursor.d.ts +1 -0
- package/dist/modes/cursor.js +72 -0
- package/dist/modes/draw/circle.d.ts +1 -0
- package/dist/modes/draw/circle.js +222 -0
- package/dist/modes/draw/commit-layer.d.ts +26 -0
- package/dist/modes/draw/commit-layer.js +31 -0
- package/dist/modes/draw/freehand.d.ts +1 -0
- package/dist/modes/draw/freehand.js +264 -0
- package/dist/modes/draw/image.d.ts +1 -0
- package/dist/modes/draw/image.js +60 -0
- package/dist/modes/draw/index.d.ts +9 -0
- package/dist/modes/draw/index.js +11 -0
- package/dist/modes/draw/line.d.ts +1 -0
- package/dist/modes/draw/line.js +363 -0
- package/dist/modes/draw/point.d.ts +1 -0
- package/dist/modes/draw/point.js +87 -0
- package/dist/modes/draw/polygon.d.ts +1 -0
- package/dist/modes/draw/polygon.js +378 -0
- package/dist/modes/draw/trace-support.d.ts +79 -0
- package/dist/modes/draw/trace-support.js +161 -0
- package/dist/modes/handler.d.ts +285 -0
- package/dist/modes/handler.js +3 -0
- package/dist/modes/index.d.ts +7 -0
- package/dist/modes/index.js +3 -0
- package/dist/modes/manager.d.ts +15 -0
- package/dist/modes/manager.js +196 -0
- package/dist/modes/select/box-selection.d.ts +52 -0
- package/dist/modes/select/box-selection.js +140 -0
- package/dist/modes/select/click-handler.d.ts +32 -0
- package/dist/modes/select/click-handler.js +166 -0
- package/dist/modes/select/cursor-handler.d.ts +15 -0
- package/dist/modes/select/cursor-handler.js +59 -0
- package/dist/modes/select/drag/auxiliary.d.ts +26 -0
- package/dist/modes/select/drag/auxiliary.js +56 -0
- package/dist/modes/select/drag/intermediate-writes.d.ts +1 -0
- package/dist/modes/select/drag/intermediate-writes.js +171 -0
- package/dist/modes/select/drag/move.d.ts +24 -0
- package/dist/modes/select/drag/move.js +59 -0
- package/dist/modes/select/drag/operation.d.ts +30 -0
- package/dist/modes/select/drag/operation.js +18 -0
- package/dist/modes/select/drag/radius.d.ts +15 -0
- package/dist/modes/select/drag/radius.js +49 -0
- package/dist/modes/select/drag/transform.d.ts +17 -0
- package/dist/modes/select/drag/transform.js +155 -0
- package/dist/modes/select/drag/vertex.d.ts +17 -0
- package/dist/modes/select/drag/vertex.js +163 -0
- package/dist/modes/select/drag-handler.d.ts +1 -0
- package/dist/modes/select/drag-handler.js +254 -0
- package/dist/modes/select/hit-helpers.d.ts +40 -0
- package/dist/modes/select/hit-helpers.js +51 -0
- package/dist/modes/select/mode.d.ts +1 -0
- package/dist/modes/select/mode.js +397 -0
- package/dist/modes/select/shortcut-handler.d.ts +40 -0
- package/dist/modes/select/shortcut-handler.js +128 -0
- package/dist/operations/index.d.ts +9 -0
- package/dist/operations/index.js +3 -0
- package/dist/operations/layer-operations.d.ts +1 -0
- package/dist/operations/layer-operations.js +350 -0
- package/dist/operations/resize.d.ts +71 -0
- package/dist/operations/resize.js +252 -0
- package/dist/operations/rotate.d.ts +17 -0
- package/dist/operations/rotate.js +166 -0
- package/dist/operations/selection-operations.d.ts +20 -0
- package/dist/operations/selection-operations.js +159 -0
- package/dist/operations/shared-vertex.d.ts +1 -0
- package/dist/operations/shared-vertex.js +210 -0
- package/dist/operations/trace-graph.d.ts +96 -0
- package/dist/operations/trace-graph.js +283 -0
- package/dist/operations/vertex.d.ts +1 -0
- package/dist/operations/vertex.js +538 -0
- package/dist/plugins/index.d.ts +10 -0
- package/dist/plugins/index.js +3 -0
- package/dist/plugins/mutation-hooks.d.ts +28 -0
- package/dist/plugins/mutation-hooks.js +84 -0
- package/dist/plugins/plugin-context.d.ts +1 -0
- package/dist/plugins/plugin-context.js +367 -0
- package/dist/plugins/plugin-manager.d.ts +103 -0
- package/dist/plugins/plugin-manager.js +316 -0
- package/dist/plugins/plugin.d.ts +529 -0
- package/dist/plugins/plugin.js +3 -0
- package/dist/shared/config/constants.d.ts +66 -0
- package/dist/shared/config/constants.js +60 -0
- package/dist/shared/config/feature-style.d.ts +155 -0
- package/dist/shared/config/feature-style.js +154 -0
- package/dist/shared/config/index.d.ts +17 -0
- package/dist/shared/config/index.js +8 -0
- package/dist/shared/config/rendering.d.ts +107 -0
- package/dist/shared/config/rendering.js +33 -0
- package/dist/shared/config/selection-highlight.d.ts +29 -0
- package/dist/shared/config/selection-highlight.js +35 -0
- package/dist/shared/config/selection.d.ts +273 -0
- package/dist/shared/config/selection.js +266 -0
- package/dist/shared/config/topology.d.ts +33 -0
- package/dist/shared/config/topology.js +17 -0
- package/dist/shared/config/trace.d.ts +40 -0
- package/dist/shared/config/trace.js +17 -0
- package/dist/shared/math/angle.d.ts +21 -0
- package/dist/shared/math/angle.js +34 -0
- package/dist/shared/math/circle.d.ts +6 -0
- package/dist/shared/math/circle.js +10 -0
- package/dist/shared/math/constants.d.ts +48 -0
- package/dist/shared/math/constants.js +59 -0
- package/dist/shared/math/distance.d.ts +78 -0
- package/dist/shared/math/distance.js +147 -0
- package/dist/shared/math/globe-subdivision.d.ts +62 -0
- package/dist/shared/math/globe-subdivision.js +99 -0
- package/dist/shared/math/index.d.ts +17 -0
- package/dist/shared/math/index.js +21 -0
- package/dist/shared/math/intersection.d.ts +63 -0
- package/dist/shared/math/intersection.js +236 -0
- package/dist/shared/math/longitude.d.ts +20 -0
- package/dist/shared/math/longitude.js +31 -0
- package/dist/shared/math/mercator-plane.d.ts +27 -0
- package/dist/shared/math/mercator-plane.js +26 -0
- package/dist/shared/math/obb.d.ts +65 -0
- package/dist/shared/math/obb.js +107 -0
- package/dist/shared/math/rotation.d.ts +93 -0
- package/dist/shared/math/rotation.js +186 -0
- package/dist/shared/math/segment-grid.d.ts +69 -0
- package/dist/shared/math/segment-grid.js +159 -0
- package/dist/shared/math/transform.d.ts +140 -0
- package/dist/shared/math/transform.js +189 -0
- package/dist/shared/types/events.d.ts +128 -0
- package/dist/shared/types/events.js +3 -0
- package/dist/shared/types/model.d.ts +950 -0
- package/dist/shared/types/model.js +3 -0
- package/dist/shared/types/selection-box.d.ts +23 -0
- package/dist/shared/types/selection-box.js +3 -0
- package/dist/shared/types/style.d.ts +68 -0
- package/dist/shared/types/style.js +3 -0
- package/dist/shared/utils/color.d.ts +49 -0
- package/dist/shared/utils/color.js +180 -0
- package/dist/shared/utils/coordinates.d.ts +52 -0
- package/dist/shared/utils/coordinates.js +75 -0
- package/dist/shared/utils/embedded-image.d.ts +34 -0
- package/dist/shared/utils/embedded-image.js +161 -0
- package/dist/shared/utils/event-emitter.d.ts +262 -0
- package/dist/shared/utils/event-emitter.js +44 -0
- package/dist/shared/utils/feature-bbox.d.ts +8 -0
- package/dist/shared/utils/feature-bbox.js +207 -0
- package/dist/shared/utils/feature-segments.d.ts +23 -0
- package/dist/shared/utils/feature-segments.js +179 -0
- package/dist/shared/utils/id.d.ts +1 -0
- package/dist/shared/utils/id.js +35 -0
- package/dist/shared/utils/image.d.ts +34 -0
- package/dist/shared/utils/image.js +106 -0
- package/dist/shared/utils/index.d.ts +15 -0
- package/dist/shared/utils/index.js +24 -0
- package/dist/shared/utils/map.d.ts +26 -0
- package/dist/shared/utils/map.js +35 -0
- package/dist/shared/utils/name-generator.d.ts +197 -0
- package/dist/shared/utils/name-generator.js +337 -0
- package/dist/shared/utils/pixel-ratio.d.ts +111 -0
- package/dist/shared/utils/pixel-ratio.js +85 -0
- package/dist/shared/utils/property.d.ts +88 -0
- package/dist/shared/utils/property.js +140 -0
- package/dist/shared/utils/vertex-ref.d.ts +23 -0
- package/dist/shared/utils/vertex-ref.js +20 -0
- package/dist/snapping/custom-targets.d.ts +1 -0
- package/dist/snapping/custom-targets.js +21 -0
- package/dist/snapping/geometry.d.ts +1 -0
- package/dist/snapping/geometry.js +61 -0
- package/dist/snapping/index.d.ts +14 -0
- package/dist/snapping/index.js +4 -0
- package/dist/snapping/indicator.d.ts +19 -0
- package/dist/snapping/indicator.js +145 -0
- package/dist/snapping/providers/display.d.ts +72 -0
- package/dist/snapping/providers/display.js +268 -0
- package/dist/snapping/providers/guide.d.ts +69 -0
- package/dist/snapping/providers/guide.js +187 -0
- package/dist/snapping/providers/intersection.d.ts +1 -0
- package/dist/snapping/providers/intersection.js +92 -0
- package/dist/snapping/providers/shared.d.ts +39 -0
- package/dist/snapping/providers/shared.js +146 -0
- package/dist/snapping/providers/store.d.ts +1 -0
- package/dist/snapping/providers/store.js +132 -0
- package/dist/snapping/service.d.ts +1 -0
- package/dist/snapping/service.js +272 -0
- package/dist/snapping/types.d.ts +267 -0
- package/dist/snapping/types.js +66 -0
- package/dist/store/change-merger.d.ts +1 -0
- package/dist/store/change-merger.js +102 -0
- package/dist/store/draw-store.d.ts +1 -0
- package/dist/store/draw-store.js +396 -0
- package/dist/store/event-bridge.d.ts +1 -0
- package/dist/store/event-bridge.js +161 -0
- package/dist/store/index.d.ts +12 -0
- package/dist/store/index.js +4 -0
- package/dist/store/local-visibility.d.ts +21 -0
- package/dist/store/local-visibility.js +27 -0
- package/dist/store/lock.d.ts +67 -0
- package/dist/store/lock.js +54 -0
- package/dist/store/memory/change-bus.d.ts +60 -0
- package/dist/store/memory/change-bus.js +232 -0
- package/dist/store/memory/file-store.d.ts +15 -0
- package/dist/store/memory/file-store.js +33 -0
- package/dist/store/memory/frozen.d.ts +21 -0
- package/dist/store/memory/frozen.js +51 -0
- package/dist/store/memory/ui-state.d.ts +51 -0
- package/dist/store/memory/ui-state.js +223 -0
- package/dist/store/memory.d.ts +26 -0
- package/dist/store/memory.js +708 -0
- package/dist/store/spatial/index.d.ts +6 -0
- package/dist/store/spatial/index.js +4 -0
- package/dist/store/spatial/spatial-index.d.ts +90 -0
- package/dist/store/spatial/spatial-index.js +148 -0
- package/dist/store/spatial/store-spatial-index.d.ts +60 -0
- package/dist/store/spatial/store-spatial-index.js +125 -0
- package/dist/store/store.d.ts +417 -0
- package/dist/store/store.js +3 -0
- package/dist/store/types.d.ts +8 -0
- package/dist/store/types.js +3 -0
- package/dist/store/writable-layer.d.ts +35 -0
- package/dist/store/writable-layer.js +20 -0
- package/dist/view/cache/buffer.d.ts +28 -0
- package/dist/view/cache/buffer.js +176 -0
- package/dist/view/cache/earcut.d.ts +1 -0
- package/dist/view/cache/earcut.js +122 -0
- package/dist/view/cache/style-rule.d.ts +1 -0
- package/dist/view/cache/style-rule.js +97 -0
- package/dist/view/cache/terrain-fill.d.ts +30 -0
- package/dist/view/cache/terrain-fill.js +60 -0
- package/dist/view/cache/texture.d.ts +14 -0
- package/dist/view/cache/texture.js +292 -0
- package/dist/view/coordinator.d.ts +27 -0
- package/dist/view/coordinator.js +72 -0
- package/dist/view/feature-companion.d.ts +173 -0
- package/dist/view/feature-companion.js +108 -0
- package/dist/view/globe-subdivision.d.ts +78 -0
- package/dist/view/globe-subdivision.js +128 -0
- package/dist/view/index.d.ts +47 -0
- package/dist/view/index.js +20 -0
- package/dist/view/layer/attach.d.ts +20 -0
- package/dist/view/layer/attach.js +47 -0
- package/dist/view/layer/blend.d.ts +57 -0
- package/dist/view/layer/blend.js +14 -0
- package/dist/view/layer/custom-layer.d.ts +1 -0
- package/dist/view/layer/custom-layer.js +509 -0
- package/dist/view/layer/depth-state.d.ts +14 -0
- package/dist/view/layer/depth-state.js +44 -0
- package/dist/view/layer/display-list.d.ts +1 -0
- package/dist/view/layer/display-list.js +111 -0
- package/dist/view/layer/drape-planner.d.ts +139 -0
- package/dist/view/layer/drape-planner.js +726 -0
- package/dist/view/layer/frame-render.d.ts +57 -0
- package/dist/view/layer/frame-render.js +209 -0
- package/dist/view/layer/frame-state.d.ts +147 -0
- package/dist/view/layer/frame-state.js +484 -0
- package/dist/view/layer/gl-state.d.ts +77 -0
- package/dist/view/layer/gl-state.js +132 -0
- package/dist/view/layer/index.d.ts +6 -0
- package/dist/view/layer/index.js +5 -0
- package/dist/view/layer/render-scope.d.ts +30 -0
- package/dist/view/layer/render-scope.js +28 -0
- package/dist/view/layer/render.d.ts +87 -0
- package/dist/view/layer/render.js +187 -0
- package/dist/view/layer/renderers.d.ts +81 -0
- package/dist/view/layer/renderers.js +142 -0
- package/dist/view/layer/slot-manager.d.ts +26 -0
- package/dist/view/layer/slot-manager.js +133 -0
- package/dist/view/layer/slots.d.ts +33 -0
- package/dist/view/layer/slots.js +50 -0
- package/dist/view/layer/store-retained-bbox.d.ts +36 -0
- package/dist/view/layer/store-retained-bbox.js +188 -0
- package/dist/view/layer/store-retained-chunk.d.ts +97 -0
- package/dist/view/layer/store-retained-chunk.js +94 -0
- package/dist/view/layer/store-retained-classify.d.ts +34 -0
- package/dist/view/layer/store-retained-classify.js +88 -0
- package/dist/view/layer/store-retained-collect.d.ts +24 -0
- package/dist/view/layer/store-retained-collect.js +121 -0
- package/dist/view/layer/store-retained-coord-patch.d.ts +119 -0
- package/dist/view/layer/store-retained-coord-patch.js +168 -0
- package/dist/view/layer/store-retained-immediate.d.ts +63 -0
- package/dist/view/layer/store-retained-immediate.js +49 -0
- package/dist/view/layer/store-retained-invalidation.d.ts +96 -0
- package/dist/view/layer/store-retained-invalidation.js +192 -0
- package/dist/view/layer/store-retained.d.ts +198 -0
- package/dist/view/layer/store-retained.js +430 -0
- package/dist/view/layer/terrain-resolver.d.ts +1 -0
- package/dist/view/layer/terrain-resolver.js +174 -0
- package/dist/view/renderers/batch-manager.d.ts +61 -0
- package/dist/view/renderers/batch-manager.js +718 -0
- package/dist/view/renderers/draw-factors.d.ts +60 -0
- package/dist/view/renderers/draw-factors.js +35 -0
- package/dist/view/renderers/drawer.d.ts +1 -0
- package/dist/view/renderers/drawer.js +346 -0
- package/dist/view/renderers/image.d.ts +1 -0
- package/dist/view/renderers/image.js +255 -0
- package/dist/view/renderers/line/dash.d.ts +31 -0
- package/dist/view/renderers/line/dash.js +152 -0
- package/dist/view/renderers/line/line-geometry.d.ts +39 -0
- package/dist/view/renderers/line/line-geometry.js +460 -0
- package/dist/view/renderers/line/line-gl.d.ts +1 -0
- package/dist/view/renderers/line/line-gl.js +236 -0
- package/dist/view/renderers/line/line-shader.d.ts +1 -0
- package/dist/view/renderers/line/line-shader.js +364 -0
- package/dist/view/renderers/line/line-types.d.ts +43 -0
- package/dist/view/renderers/line/line-types.js +3 -0
- package/dist/view/renderers/line/line-uniforms.d.ts +1 -0
- package/dist/view/renderers/line/line-uniforms.js +390 -0
- package/dist/view/renderers/line/sdf-line.d.ts +92 -0
- package/dist/view/renderers/line/sdf-line.js +567 -0
- package/dist/view/renderers/point/billboard-depth.d.ts +10 -0
- package/dist/view/renderers/point/billboard-depth.js +56 -0
- package/dist/view/renderers/point/point-instance.d.ts +124 -0
- package/dist/view/renderers/point/point-instance.js +738 -0
- package/dist/view/renderers/point/point-sdf.d.ts +58 -0
- package/dist/view/renderers/point/point-sdf.js +170 -0
- package/dist/view/renderers/point/point-shape.d.ts +99 -0
- package/dist/view/renderers/point/point-shape.js +504 -0
- package/dist/view/renderers/point/point-style.d.ts +1 -0
- package/dist/view/renderers/point/point-style.js +46 -0
- package/dist/view/renderers/polygon/batch.d.ts +26 -0
- package/dist/view/renderers/polygon/batch.js +336 -0
- package/dist/view/renderers/polygon/earcut-input.d.ts +37 -0
- package/dist/view/renderers/polygon/earcut-input.js +55 -0
- package/dist/view/renderers/polygon/earcut-sliced.d.ts +69 -0
- package/dist/view/renderers/polygon/earcut-sliced.js +960 -0
- package/dist/view/renderers/polygon/fill.d.ts +74 -0
- package/dist/view/renderers/polygon/fill.js +251 -0
- package/dist/view/renderers/polygon/sdf-polygon.d.ts +62 -0
- package/dist/view/renderers/polygon/sdf-polygon.js +919 -0
- package/dist/view/renderers/polygon/terrain-cull.d.ts +3 -0
- package/dist/view/renderers/polygon/terrain-cull.js +14 -0
- package/dist/view/renderers/polygon/triangulator.d.ts +41 -0
- package/dist/view/renderers/polygon/triangulator.js +3 -0
- package/dist/view/renderers/retained.d.ts +43 -0
- package/dist/view/renderers/retained.js +3 -0
- package/dist/view/renderers/stroke.d.ts +121 -0
- package/dist/view/renderers/stroke.js +621 -0
- package/dist/view/shaders/frame.d.ts +8 -0
- package/dist/view/shaders/frame.js +37 -0
- package/dist/view/shaders/helpers.d.ts +238 -0
- package/dist/view/shaders/helpers.js +611 -0
- package/dist/view/shaders/initializer.d.ts +27 -0
- package/dist/view/shaders/initializer.js +125 -0
- package/dist/view/shaders/projection.d.ts +123 -0
- package/dist/view/shaders/projection.js +299 -0
- package/dist/view/shaders/quad-grid.d.ts +77 -0
- package/dist/view/shaders/quad-grid.js +128 -0
- package/dist/view/shaders/quad.d.ts +189 -0
- package/dist/view/shaders/quad.js +582 -0
- package/dist/view/shaders/retained-origin.d.ts +50 -0
- package/dist/view/shaders/retained-origin.js +67 -0
- package/dist/view/shaders/terrain-shade.d.ts +23 -0
- package/dist/view/shaders/terrain-shade.js +93 -0
- package/dist/view/style-rule.d.ts +166 -0
- package/dist/view/style-rule.js +300 -0
- package/dist/view/terrain/anchor.d.ts +135 -0
- package/dist/view/terrain/anchor.js +226 -0
- package/dist/view/terrain/context.d.ts +132 -0
- package/dist/view/terrain/context.js +437 -0
- package/dist/view/terrain/dem-atlas.d.ts +97 -0
- package/dist/view/terrain/dem-atlas.js +534 -0
- package/dist/view/terrain/detect.d.ts +126 -0
- package/dist/view/terrain/detect.js +198 -0
- package/dist/view/terrain/drape/bin-store.d.ts +179 -0
- package/dist/view/terrain/drape/bin-store.js +529 -0
- package/dist/view/terrain/drape/binning.d.ts +259 -0
- package/dist/view/terrain/drape/binning.js +604 -0
- package/dist/view/terrain/drape/edge-constrain.d.ts +37 -0
- package/dist/view/terrain/drape/edge-constrain.js +175 -0
- package/dist/view/terrain/drape/geometry.d.ts +95 -0
- package/dist/view/terrain/drape/geometry.js +260 -0
- package/dist/view/terrain/drape/mesh.d.ts +50 -0
- package/dist/view/terrain/drape/mesh.js +86 -0
- package/dist/view/terrain/drape/pass.d.ts +122 -0
- package/dist/view/terrain/drape/pass.js +379 -0
- package/dist/view/terrain/drape/quad-glyphs.d.ts +64 -0
- package/dist/view/terrain/drape/quad-glyphs.js +117 -0
- package/dist/view/terrain/drape/quad.d.ts +249 -0
- package/dist/view/terrain/drape/quad.js +835 -0
- package/dist/view/terrain/drape/renderer.d.ts +184 -0
- package/dist/view/terrain/drape/renderer.js +706 -0
- package/dist/view/terrain/drape/shared.d.ts +80 -0
- package/dist/view/terrain/drape/shared.js +173 -0
- package/dist/view/terrain/drape/stitch.d.ts +155 -0
- package/dist/view/terrain/drape/stitch.js +228 -0
- package/dist/view/terrain/ground.d.ts +72 -0
- package/dist/view/terrain/ground.js +151 -0
- package/dist/view/terrain/metrics.d.ts +180 -0
- package/dist/view/terrain/metrics.js +231 -0
- package/dist/view/terrain/occlusion.d.ts +11 -0
- package/dist/view/terrain/occlusion.js +129 -0
- package/dist/view/terrain/polygon.d.ts +86 -0
- package/dist/view/terrain/polygon.js +301 -0
- package/dist/view/terrain/shade.d.ts +48 -0
- package/dist/view/terrain/shade.js +45 -0
- package/dist/view/terrain/state.d.ts +99 -0
- package/dist/view/terrain/state.js +186 -0
- package/dist/view/terrain/tessellation.d.ts +265 -0
- package/dist/view/terrain/tessellation.js +924 -0
- package/dist/view/terrain/tiling.d.ts +56 -0
- package/dist/view/terrain/tiling.js +155 -0
- package/dist/view/terrain/upstream-terrain.d.ts +82 -0
- package/dist/view/terrain/upstream-terrain.js +116 -0
- package/dist/view/ui/auxiliary-handles.d.ts +151 -0
- package/dist/view/ui/auxiliary-handles.js +22 -0
- package/dist/view/ui/bounds.d.ts +53 -0
- package/dist/view/ui/bounds.js +149 -0
- package/dist/view/ui/box-selection.d.ts +1 -0
- package/dist/view/ui/box-selection.js +83 -0
- package/dist/view/ui/handle-test.d.ts +1 -0
- package/dist/view/ui/handle-test.js +437 -0
- package/dist/view/ui/handle-thinning.d.ts +122 -0
- package/dist/view/ui/handle-thinning.js +430 -0
- package/dist/view/ui/handles.d.ts +25 -0
- package/dist/view/ui/handles.js +673 -0
- package/dist/view/ui/helper.d.ts +19 -0
- package/dist/view/ui/helper.js +76 -0
- package/dist/view/ui/index.d.ts +15 -0
- package/dist/view/ui/index.js +15 -0
- package/dist/view/ui/selection-scope.d.ts +25 -0
- package/dist/view/ui/selection-scope.js +34 -0
- package/dist/view/ui/selection-ui/bounding-box.d.ts +44 -0
- package/dist/view/ui/selection-ui/bounding-box.js +240 -0
- package/dist/view/ui/selection-ui/extension-registry.d.ts +76 -0
- package/dist/view/ui/selection-ui/extension-registry.js +78 -0
- package/dist/view/ui/selection-ui/index.d.ts +12 -0
- package/dist/view/ui/selection-ui/index.js +12 -0
- package/dist/view/ui/selection-ui/renderer.d.ts +29 -0
- package/dist/view/ui/selection-ui/renderer.js +227 -0
- package/dist/view/ui/selection-ui/types.d.ts +55 -0
- package/dist/view/ui/selection-ui/types.js +3 -0
- package/dist/view/ui/selection-ui-drawer.d.ts +52 -0
- package/dist/view/ui/selection-ui-drawer.js +329 -0
- package/dist/view/ui/tentative.d.ts +1 -0
- package/dist/view/ui/tentative.js +320 -0
- package/dist/view/viewport.d.ts +119 -0
- package/dist/view/viewport.js +254 -0
- package/package.json +113 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature rendering style configuration
|
|
3
|
+
*
|
|
4
|
+
* Configuration related to rendering features.
|
|
5
|
+
* The selected state is expressed with a bounding box, so the style of the feature itself is
|
|
6
|
+
* not changed.
|
|
7
|
+
*/
|
|
8
|
+
import type { Color, PointStyle, StrokeStyle } from '../types/style.js';
|
|
9
|
+
/**
|
|
10
|
+
* The fill of a polygon (part of {@link PolygonFeatureStyle})
|
|
11
|
+
*/
|
|
12
|
+
export interface FillStyle {
|
|
13
|
+
/**
|
|
14
|
+
* The fill color; its alpha is the opacity of the fill
|
|
15
|
+
*
|
|
16
|
+
* @defaultValue `#FF0077` at an alpha of 0.25
|
|
17
|
+
*/
|
|
18
|
+
color: Color;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* How a point is drawn by default (part of {@link FeatureStyleConfig})
|
|
22
|
+
*/
|
|
23
|
+
export interface PointFeatureStyle {
|
|
24
|
+
/**
|
|
25
|
+
* The marker
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue a 12 px `#FF6633` circle with a 2 px white outline
|
|
28
|
+
*/
|
|
29
|
+
point: PointStyle;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* How a line is drawn by default (part of {@link FeatureStyleConfig})
|
|
33
|
+
*/
|
|
34
|
+
export interface LineStringFeatureStyle {
|
|
35
|
+
/**
|
|
36
|
+
* The line
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `#FF0077`, 2 px, solid
|
|
39
|
+
*/
|
|
40
|
+
stroke: StrokeStyle;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* How a polygon is drawn by default (part of {@link FeatureStyleConfig})
|
|
44
|
+
*/
|
|
45
|
+
export interface PolygonFeatureStyle {
|
|
46
|
+
/**
|
|
47
|
+
* The outline
|
|
48
|
+
*
|
|
49
|
+
* @defaultValue `#FF0077`, 2 px, solid
|
|
50
|
+
*/
|
|
51
|
+
stroke: StrokeStyle;
|
|
52
|
+
/**
|
|
53
|
+
* The fill
|
|
54
|
+
*
|
|
55
|
+
* @defaultValue `#FF0077` at an alpha of 0.25
|
|
56
|
+
*/
|
|
57
|
+
fill: FillStyle;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* How the geometry being drawn looks, before it is committed as a feature (part of
|
|
61
|
+
* {@link FeatureStyleConfig})
|
|
62
|
+
*/
|
|
63
|
+
export interface TentativeStyle {
|
|
64
|
+
/**
|
|
65
|
+
* The line through the vertices placed so far
|
|
66
|
+
*
|
|
67
|
+
* @defaultValue `#FF0077`, 2 px, solid
|
|
68
|
+
*/
|
|
69
|
+
stroke: StrokeStyle;
|
|
70
|
+
/**
|
|
71
|
+
* The line from the last vertex to the cursor, not yet committed
|
|
72
|
+
*
|
|
73
|
+
* @defaultValue `#FF0077`, 2 px, dashed
|
|
74
|
+
*/
|
|
75
|
+
tentativeStroke: StrokeStyle;
|
|
76
|
+
/**
|
|
77
|
+
* The vertices placed so far
|
|
78
|
+
*
|
|
79
|
+
* @defaultValue a 10 px white circle with a 2 px `#FF0077` outline
|
|
80
|
+
*/
|
|
81
|
+
vertex: PointStyle;
|
|
82
|
+
/**
|
|
83
|
+
* A vertex the cursor is close to (clicking the first vertex closes a polygon)
|
|
84
|
+
*
|
|
85
|
+
* @defaultValue a 14 px `#FFCC00` circle with a 3 px `#FF0077` outline
|
|
86
|
+
*/
|
|
87
|
+
highlightedVertex: PointStyle;
|
|
88
|
+
/**
|
|
89
|
+
* For a Circle: the marker at the center
|
|
90
|
+
*
|
|
91
|
+
* @defaultValue a 6 px white circle with a 1 px `#FF2D55` outline
|
|
92
|
+
*/
|
|
93
|
+
circleCenterMarker: PointStyle;
|
|
94
|
+
/**
|
|
95
|
+
* For a Circle: the handle on the edge that sets the radius
|
|
96
|
+
*
|
|
97
|
+
* @defaultValue a 10 px white circle with a 1 px `#FF2D55` outline
|
|
98
|
+
*/
|
|
99
|
+
circleRadiusHandle: PointStyle;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The default look of the features, and of the geometry being drawn
|
|
103
|
+
*
|
|
104
|
+
* A key the style of a feature ({@link FeatureStyle}) leaves unset takes its value from here,
|
|
105
|
+
* unless the style rule of the layer gives the color. Give the parts to change through the
|
|
106
|
+
* `style` option of `createMapLibreGLDraw`; the parts left out keep their defaults.
|
|
107
|
+
*
|
|
108
|
+
* The selection does not change how a feature is drawn; it is shown by the box and the
|
|
109
|
+
* handles of {@link SelectionUIConfig}.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* const draw = createMapLibreGLDraw(map, {
|
|
114
|
+
* style: {
|
|
115
|
+
* lineString: {
|
|
116
|
+
* stroke: { width: 3, color: [0, 0.33, 1, 1], opacity: 1, lineStyle: 'solid' },
|
|
117
|
+
* },
|
|
118
|
+
* },
|
|
119
|
+
* });
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export interface FeatureStyleConfig {
|
|
123
|
+
/**
|
|
124
|
+
* Point and MultiPoint
|
|
125
|
+
*
|
|
126
|
+
* @defaultValue a 12 px `#FF6633` circle with a 2 px white outline
|
|
127
|
+
*/
|
|
128
|
+
point: PointFeatureStyle;
|
|
129
|
+
/**
|
|
130
|
+
* LineString, MultiLineString and Freehand
|
|
131
|
+
*
|
|
132
|
+
* @defaultValue `#FF0077`, 2 px, solid
|
|
133
|
+
*/
|
|
134
|
+
lineString: LineStringFeatureStyle;
|
|
135
|
+
/**
|
|
136
|
+
* Polygon, MultiPolygon and Circle
|
|
137
|
+
*
|
|
138
|
+
* @defaultValue a `#FF0077` 2 px outline and a `#FF0077` fill at an alpha of 0.25
|
|
139
|
+
*/
|
|
140
|
+
polygon: PolygonFeatureStyle;
|
|
141
|
+
/**
|
|
142
|
+
* The geometry being drawn
|
|
143
|
+
*
|
|
144
|
+
* @defaultValue `#FF0077` 2 px lines (dashed to the cursor) and 10 px white vertices
|
|
145
|
+
*/
|
|
146
|
+
tentative: TentativeStyle;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Default feature rendering style configuration
|
|
150
|
+
*/
|
|
151
|
+
export declare const DEFAULT_FEATURE_STYLE_CONFIG: FeatureStyleConfig;
|
|
152
|
+
/**
|
|
153
|
+
* Helper function that merges configurations
|
|
154
|
+
*/
|
|
155
|
+
export declare function mergeFeatureStyleConfig(base: FeatureStyleConfig, override: Partial<FeatureStyleConfig>): FeatureStyleConfig;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2026 SAKAIDA Atsushi
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* Default feature rendering style configuration
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_FEATURE_STYLE_CONFIG = {
|
|
7
|
+
point: {
|
|
8
|
+
point: {
|
|
9
|
+
shape: 'circle',
|
|
10
|
+
size: 12,
|
|
11
|
+
fillColor: [1.0, 0.4, 0.2, 1.0],
|
|
12
|
+
fillOpacity: 1.0,
|
|
13
|
+
strokeColor: [1.0, 1.0, 1.0, 1.0],
|
|
14
|
+
strokeWidth: 2,
|
|
15
|
+
strokeOpacity: 1.0,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
lineString: {
|
|
19
|
+
stroke: {
|
|
20
|
+
width: 2,
|
|
21
|
+
color: [1.0, 0.0, 0.467, 1.0], // #FF0077
|
|
22
|
+
opacity: 1.0,
|
|
23
|
+
lineStyle: 'solid',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
polygon: {
|
|
27
|
+
stroke: {
|
|
28
|
+
width: 2,
|
|
29
|
+
color: [1.0, 0.0, 0.467, 1.0], // #FF0077
|
|
30
|
+
opacity: 1.0,
|
|
31
|
+
lineStyle: 'solid',
|
|
32
|
+
},
|
|
33
|
+
fill: {
|
|
34
|
+
color: [1.0, 0.0, 0.467, 0.25], // #FF0077, 25% opacity
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
tentative: {
|
|
38
|
+
stroke: {
|
|
39
|
+
width: 2,
|
|
40
|
+
color: [1.0, 0.0, 0.467, 1.0], // #FF0077
|
|
41
|
+
opacity: 1.0,
|
|
42
|
+
lineStyle: 'solid',
|
|
43
|
+
},
|
|
44
|
+
tentativeStroke: {
|
|
45
|
+
width: 2,
|
|
46
|
+
color: [1.0, 0.0, 0.467, 1.0], // #FF0077
|
|
47
|
+
opacity: 1.0,
|
|
48
|
+
lineStyle: 'dashed',
|
|
49
|
+
},
|
|
50
|
+
vertex: {
|
|
51
|
+
shape: 'circle',
|
|
52
|
+
size: 10,
|
|
53
|
+
fillColor: [1.0, 1.0, 1.0, 1.0],
|
|
54
|
+
fillOpacity: 1.0,
|
|
55
|
+
strokeColor: [1.0, 0.0, 0.467, 1.0], // #FF0077
|
|
56
|
+
strokeWidth: 2,
|
|
57
|
+
strokeOpacity: 1.0,
|
|
58
|
+
},
|
|
59
|
+
highlightedVertex: {
|
|
60
|
+
shape: 'circle',
|
|
61
|
+
size: 14,
|
|
62
|
+
fillColor: [1.0, 0.8, 0.0, 1.0], // yellow
|
|
63
|
+
fillOpacity: 1.0,
|
|
64
|
+
strokeColor: [1.0, 0.0, 0.467, 1.0], // #FF0077
|
|
65
|
+
strokeWidth: 3,
|
|
66
|
+
strokeOpacity: 1.0,
|
|
67
|
+
},
|
|
68
|
+
// For Circle: center marker
|
|
69
|
+
// Specification: a 6px diameter circle, white fill, pink border (#FF2D55), 1px wide
|
|
70
|
+
circleCenterMarker: {
|
|
71
|
+
shape: 'circle',
|
|
72
|
+
size: 6,
|
|
73
|
+
fillColor: [1.0, 1.0, 1.0, 1.0], // white
|
|
74
|
+
fillOpacity: 1.0,
|
|
75
|
+
strokeColor: [1.0, 0.176, 0.333, 1.0], // #FF2D55
|
|
76
|
+
strokeWidth: 1,
|
|
77
|
+
strokeOpacity: 1.0,
|
|
78
|
+
},
|
|
79
|
+
// For Circle: radius handle
|
|
80
|
+
// Specification: a 10px diameter circle, white fill, pink border (#FF2D55), 1px wide
|
|
81
|
+
circleRadiusHandle: {
|
|
82
|
+
shape: 'circle',
|
|
83
|
+
size: 10,
|
|
84
|
+
fillColor: [1.0, 1.0, 1.0, 1.0], // white
|
|
85
|
+
fillOpacity: 1.0,
|
|
86
|
+
strokeColor: [1.0, 0.176, 0.333, 1.0], // #FF2D55
|
|
87
|
+
strokeWidth: 1,
|
|
88
|
+
strokeOpacity: 1.0,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Helper function that merges configurations
|
|
94
|
+
*/
|
|
95
|
+
export function mergeFeatureStyleConfig(base, override) {
|
|
96
|
+
return {
|
|
97
|
+
point: {
|
|
98
|
+
...base.point,
|
|
99
|
+
...override.point,
|
|
100
|
+
point: {
|
|
101
|
+
...base.point.point,
|
|
102
|
+
...override.point?.point,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
lineString: {
|
|
106
|
+
...base.lineString,
|
|
107
|
+
...override.lineString,
|
|
108
|
+
stroke: {
|
|
109
|
+
...base.lineString.stroke,
|
|
110
|
+
...override.lineString?.stroke,
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
polygon: {
|
|
114
|
+
...base.polygon,
|
|
115
|
+
...override.polygon,
|
|
116
|
+
stroke: {
|
|
117
|
+
...base.polygon.stroke,
|
|
118
|
+
...override.polygon?.stroke,
|
|
119
|
+
},
|
|
120
|
+
fill: {
|
|
121
|
+
...base.polygon.fill,
|
|
122
|
+
...override.polygon?.fill,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
tentative: {
|
|
126
|
+
...base.tentative,
|
|
127
|
+
...override.tentative,
|
|
128
|
+
stroke: {
|
|
129
|
+
...base.tentative.stroke,
|
|
130
|
+
...override.tentative?.stroke,
|
|
131
|
+
},
|
|
132
|
+
tentativeStroke: {
|
|
133
|
+
...base.tentative.tentativeStroke,
|
|
134
|
+
...override.tentative?.tentativeStroke,
|
|
135
|
+
},
|
|
136
|
+
vertex: {
|
|
137
|
+
...base.tentative.vertex,
|
|
138
|
+
...override.tentative?.vertex,
|
|
139
|
+
},
|
|
140
|
+
highlightedVertex: {
|
|
141
|
+
...base.tentative.highlightedVertex,
|
|
142
|
+
...override.tentative?.highlightedVertex,
|
|
143
|
+
},
|
|
144
|
+
circleCenterMarker: {
|
|
145
|
+
...base.tentative.circleCenterMarker,
|
|
146
|
+
...override.tentative?.circleCenterMarker,
|
|
147
|
+
},
|
|
148
|
+
circleRadiusHandle: {
|
|
149
|
+
...base.tentative.circleRadiusHandle,
|
|
150
|
+
...override.tentative?.circleRadiusHandle,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config module
|
|
3
|
+
*
|
|
4
|
+
* Exports configuration-related types and constants.
|
|
5
|
+
*/
|
|
6
|
+
export type { HandleType } from './constants.js';
|
|
7
|
+
export { CURSOR_STYLES, HANDLE_POSITIONS, INTERNAL_PROPERTIES, MOUSE_STATE, } from './constants.js';
|
|
8
|
+
export type { FeatureStyleConfig, FillStyle, LineStringFeatureStyle, PointFeatureStyle, PolygonFeatureStyle, TentativeStyle, } from './feature-style.js';
|
|
9
|
+
export { DEFAULT_FEATURE_STYLE_CONFIG, mergeFeatureStyleConfig } from './feature-style.js';
|
|
10
|
+
export type { BoxSelectionStyleConfig, RenderingConfig, } from './rendering.js';
|
|
11
|
+
export { DEFAULT_BOX_SELECTION_STYLE_CONFIG, DEFAULT_RENDERING_CONFIG, mergeRenderingConfig, } from './rendering.js';
|
|
12
|
+
export type { BoundingBoxStyle, CenterMarkerStyle, MidpointHandleStyle, RadiusHandleStyle, RadiusLineStyle, ResizeHandleStyle, RotateHandleStyle, SelectionUIConfig, VertexHandleStyle, } from './selection.js';
|
|
13
|
+
export { DEFAULT_SELECTION_CONFIG, DRAGGING_STYLE_MODIFIERS, HOVER_STYLE_MODIFIERS, mergeSelectionUIConfig, } from './selection.js';
|
|
14
|
+
export type { TopologyConfig } from './topology.js';
|
|
15
|
+
export { DEFAULT_TOPOLOGY_CONFIG, mergeTopologyConfig } from './topology.js';
|
|
16
|
+
export type { TraceConfig, TraceOptions } from './trace.js';
|
|
17
|
+
export { DEFAULT_TRACE_CONFIG, mergeTraceConfig } from './trace.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2026 SAKAIDA Atsushi
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
export { CURSOR_STYLES, HANDLE_POSITIONS, INTERNAL_PROPERTIES, MOUSE_STATE, } from './constants.js';
|
|
4
|
+
export { DEFAULT_FEATURE_STYLE_CONFIG, mergeFeatureStyleConfig } from './feature-style.js';
|
|
5
|
+
export { DEFAULT_BOX_SELECTION_STYLE_CONFIG, DEFAULT_RENDERING_CONFIG, mergeRenderingConfig, } from './rendering.js';
|
|
6
|
+
export { DEFAULT_SELECTION_CONFIG, DRAGGING_STYLE_MODIFIERS, HOVER_STYLE_MODIFIERS, mergeSelectionUIConfig, } from './selection.js';
|
|
7
|
+
export { DEFAULT_TOPOLOGY_CONFIG, mergeTopologyConfig } from './topology.js';
|
|
8
|
+
export { DEFAULT_TRACE_CONFIG, mergeTraceConfig } from './trace.js';
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering configuration
|
|
3
|
+
*
|
|
4
|
+
* Makes the default style of the box selection UI configurable.
|
|
5
|
+
*/
|
|
6
|
+
import type { Color } from '../types/style.js';
|
|
7
|
+
/**
|
|
8
|
+
* How the rectangle of a box selection (a Shift-drag in the select mode) looks (part of
|
|
9
|
+
* {@link RenderingConfig})
|
|
10
|
+
*/
|
|
11
|
+
export interface BoxSelectionStyleConfig {
|
|
12
|
+
/**
|
|
13
|
+
* The fill; its alpha is the opacity of the fill
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue `#FF0099` at an alpha of 0.2
|
|
16
|
+
*/
|
|
17
|
+
fillColor: Color;
|
|
18
|
+
/**
|
|
19
|
+
* The color of the outline
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue `#FF0099`
|
|
22
|
+
*/
|
|
23
|
+
strokeColor: Color;
|
|
24
|
+
/**
|
|
25
|
+
* The width of the outline in CSS pixels
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `2`
|
|
28
|
+
*/
|
|
29
|
+
strokeWidth: number;
|
|
30
|
+
/**
|
|
31
|
+
* The opacity of the outline, from 0 to 1
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue `1`
|
|
34
|
+
*/
|
|
35
|
+
strokeOpacity: number;
|
|
36
|
+
/**
|
|
37
|
+
* The dash pattern of the outline in CSS pixels, `[dash, gap]`
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue `[6, 4]`
|
|
40
|
+
*/
|
|
41
|
+
dashArray: [number, number];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Rendering settings: the look of the box selection and two switches of the renderer
|
|
45
|
+
*
|
|
46
|
+
* Give the settings to change through the `renderingStyle` option of `createMapLibreGLDraw`;
|
|
47
|
+
* the ones left out keep their defaults.
|
|
48
|
+
*/
|
|
49
|
+
export interface RenderingConfig {
|
|
50
|
+
/**
|
|
51
|
+
* The rectangle of a box selection
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue a `#FF0099` 2 px outline dashed 6 px / 4 px, filled at an alpha of 0.2
|
|
54
|
+
*/
|
|
55
|
+
boxSelectionStyle: BoxSelectionStyleConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Retained-mode rendering of Store features
|
|
58
|
+
*
|
|
59
|
+
* When true (the default), Store features are drawn from retained batches prepared per
|
|
60
|
+
* layer. Features that stay still are no longer rebuilt every frame.
|
|
61
|
+
* Setting it to false goes back to the previous immediate-mode rendering (an escape hatch).
|
|
62
|
+
*
|
|
63
|
+
* The rendering result (including z-order) is the same either way.
|
|
64
|
+
*
|
|
65
|
+
* @defaultValue `true`
|
|
66
|
+
*/
|
|
67
|
+
storeRetained?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Whether work that does not fit in one frame is spread over the following frames
|
|
70
|
+
*
|
|
71
|
+
* When true (the default), the renderer keeps every frame short while the picture fills in
|
|
72
|
+
* over a few frames, much like tiles arriving:
|
|
73
|
+
*
|
|
74
|
+
* - the retained batches of the datasets are built within a time budget per frame, the
|
|
75
|
+
* chunks in view first (the ones left over appear in the next frames)
|
|
76
|
+
* - polygons of a dataset with more than 10,000 vertices are triangulated in slices across
|
|
77
|
+
* frames; their fill appears when the triangulation ends (the outline appears at once)
|
|
78
|
+
* - the tile index of the terrain drape is built within a time budget per frame
|
|
79
|
+
*
|
|
80
|
+
* Set it to false to draw frames that are complete: everything above is done in the frame
|
|
81
|
+
* that needs it, however long that frame takes. It is meant for a map that draws a frame to
|
|
82
|
+
* read the picture back (printing, thumbnails, exports), not for an interactive map. While
|
|
83
|
+
* the camera moves, the rebuilds that wait for the camera to stop still wait (a capture is
|
|
84
|
+
* taken with the camera still).
|
|
85
|
+
*
|
|
86
|
+
* A complete frame is not yet a complete picture: the map's tiles and the DEM arrive
|
|
87
|
+
* asynchronously. Wait for the map's `idle`, then for
|
|
88
|
+
* {@link MapLibreGLDraw.hasPendingWork} to return false, which also covers the work that no
|
|
89
|
+
* setting can make synchronous (the responses of a provider, an overlay renderer that
|
|
90
|
+
* prepares resources over several frames).
|
|
91
|
+
*
|
|
92
|
+
* @defaultValue `true`
|
|
93
|
+
*/
|
|
94
|
+
timeSlicing?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Default style configuration for the box selection UI
|
|
98
|
+
*/
|
|
99
|
+
export declare const DEFAULT_BOX_SELECTION_STYLE_CONFIG: BoxSelectionStyleConfig;
|
|
100
|
+
/**
|
|
101
|
+
* Default rendering configuration
|
|
102
|
+
*/
|
|
103
|
+
export declare const DEFAULT_RENDERING_CONFIG: RenderingConfig;
|
|
104
|
+
/**
|
|
105
|
+
* Helper function that merges configurations
|
|
106
|
+
*/
|
|
107
|
+
export declare function mergeRenderingConfig(base: RenderingConfig, override: Partial<RenderingConfig>): RenderingConfig;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2026 SAKAIDA Atsushi
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* Default style configuration for the box selection UI
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_BOX_SELECTION_STYLE_CONFIG = {
|
|
7
|
+
fillColor: [1.0, 0.0, 0.6, 0.2],
|
|
8
|
+
strokeColor: [1.0, 0.0, 0.6, 1.0],
|
|
9
|
+
strokeWidth: 2,
|
|
10
|
+
strokeOpacity: 1.0,
|
|
11
|
+
dashArray: [6, 4],
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Default rendering configuration
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_RENDERING_CONFIG = {
|
|
17
|
+
boxSelectionStyle: DEFAULT_BOX_SELECTION_STYLE_CONFIG,
|
|
18
|
+
storeRetained: true,
|
|
19
|
+
timeSlicing: true,
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Helper function that merges configurations
|
|
23
|
+
*/
|
|
24
|
+
export function mergeRenderingConfig(base, override) {
|
|
25
|
+
return {
|
|
26
|
+
boxSelectionStyle: {
|
|
27
|
+
...base.boxSelectionStyle,
|
|
28
|
+
...override.boxSelectionStyle,
|
|
29
|
+
},
|
|
30
|
+
storeRetained: override.storeRetained ?? base.storeRetained,
|
|
31
|
+
timeSlicing: override.timeSlicing ?? base.timeSlicing,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How the selection highlight of datasets looks
|
|
3
|
+
*
|
|
4
|
+
* Two rendering paths read the same values.
|
|
5
|
+
*
|
|
6
|
+
* - Immediate mode (`highlightFeature` in `display/selection.ts`). Draws points, and the
|
|
7
|
+
* polygons and lines that do not go through the analysis drape (dashed outlines and so on)
|
|
8
|
+
* - Analysis drape (`view/terrain/drape/renderer.ts`). Draws the selection highlight for the
|
|
9
|
+
* band (z > 11) that draws polygons and lines as pixels of the ground surface
|
|
10
|
+
*
|
|
11
|
+
* Putting separate constants in the two places would make the color or the width change when
|
|
12
|
+
* crossing a band. This single file owns the values.
|
|
13
|
+
*
|
|
14
|
+
* This file imports nothing, so that it depends on neither path.
|
|
15
|
+
*/
|
|
16
|
+
/** Base color of the selection highlight (#FF2D55, the same as the selection UI) */
|
|
17
|
+
export declare const SELECTION_HIGHLIGHT_COLOR = "#FF2D55";
|
|
18
|
+
/** Opacity of the polygon fill of the selection highlight */
|
|
19
|
+
export declare const SELECTION_HIGHLIGHT_FILL_OPACITY = 0.25;
|
|
20
|
+
/** Extra line width added by the selection highlight (CSS pixels) */
|
|
21
|
+
export declare const SELECTION_HIGHLIGHT_STROKE_EXTRA = 2;
|
|
22
|
+
/** Extra ring width added to points by the selection highlight (CSS pixels) */
|
|
23
|
+
export declare const SELECTION_HIGHLIGHT_RING_EXTRA = 3;
|
|
24
|
+
/**
|
|
25
|
+
* Resolves the base color into an RGB triple in the range 0 to 1
|
|
26
|
+
*
|
|
27
|
+
* Used to pass it to a shader uniform (the color is a constant, so it is parsed only once).
|
|
28
|
+
*/
|
|
29
|
+
export declare const SELECTION_HIGHLIGHT_RGB: readonly [number, number, number];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2026 SAKAIDA Atsushi
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* How the selection highlight of datasets looks
|
|
5
|
+
*
|
|
6
|
+
* Two rendering paths read the same values.
|
|
7
|
+
*
|
|
8
|
+
* - Immediate mode (`highlightFeature` in `display/selection.ts`). Draws points, and the
|
|
9
|
+
* polygons and lines that do not go through the analysis drape (dashed outlines and so on)
|
|
10
|
+
* - Analysis drape (`view/terrain/drape/renderer.ts`). Draws the selection highlight for the
|
|
11
|
+
* band (z > 11) that draws polygons and lines as pixels of the ground surface
|
|
12
|
+
*
|
|
13
|
+
* Putting separate constants in the two places would make the color or the width change when
|
|
14
|
+
* crossing a band. This single file owns the values.
|
|
15
|
+
*
|
|
16
|
+
* This file imports nothing, so that it depends on neither path.
|
|
17
|
+
*/
|
|
18
|
+
/** Base color of the selection highlight (#FF2D55, the same as the selection UI) */
|
|
19
|
+
export const SELECTION_HIGHLIGHT_COLOR = '#FF2D55';
|
|
20
|
+
/** Opacity of the polygon fill of the selection highlight */
|
|
21
|
+
export const SELECTION_HIGHLIGHT_FILL_OPACITY = 0.25;
|
|
22
|
+
/** Extra line width added by the selection highlight (CSS pixels) */
|
|
23
|
+
export const SELECTION_HIGHLIGHT_STROKE_EXTRA = 2;
|
|
24
|
+
/** Extra ring width added to points by the selection highlight (CSS pixels) */
|
|
25
|
+
export const SELECTION_HIGHLIGHT_RING_EXTRA = 3;
|
|
26
|
+
/**
|
|
27
|
+
* Resolves the base color into an RGB triple in the range 0 to 1
|
|
28
|
+
*
|
|
29
|
+
* Used to pass it to a shader uniform (the color is a constant, so it is parsed only once).
|
|
30
|
+
*/
|
|
31
|
+
export const SELECTION_HIGHLIGHT_RGB = [
|
|
32
|
+
Number.parseInt(SELECTION_HIGHLIGHT_COLOR.slice(1, 3), 16) / 255,
|
|
33
|
+
Number.parseInt(SELECTION_HIGHLIGHT_COLOR.slice(3, 5), 16) / 255,
|
|
34
|
+
Number.parseInt(SELECTION_HIGHLIGHT_COLOR.slice(5, 7), 16) / 255,
|
|
35
|
+
];
|