@hatiolab/things-scene 10.0.0-beta.13 → 10.0.0-beta.130
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/dist-types/animation/animate.d.ts.map +1 -1
- package/dist-types/animation/animations/animation.d.ts +5 -3
- package/dist-types/animation/animations/animation.d.ts.map +1 -1
- package/dist-types/animation/animations/heartbeat.d.ts +0 -7
- package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
- package/dist-types/animation/animations/waypoint.d.ts +45 -4
- package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
- package/dist-types/animation/interfaces.d.ts +1 -1
- package/dist-types/animation/interfaces.d.ts.map +1 -1
- package/dist-types/clock/frame-clock.d.ts +119 -0
- package/dist-types/clock/frame-clock.d.ts.map +1 -0
- package/dist-types/clock/index.d.ts +3 -0
- package/dist-types/clock/index.d.ts.map +1 -0
- package/dist-types/command/command-migrate.d.ts.map +1 -1
- package/dist-types/command/snapshot-commander.d.ts.map +1 -1
- package/dist-types/components/audio.d.ts +8 -3
- package/dist-types/components/audio.d.ts.map +1 -1
- package/dist-types/components/component-data.d.ts +24 -0
- package/dist-types/components/component-data.d.ts.map +1 -1
- package/dist-types/components/component-drawing.d.ts.map +1 -1
- package/dist-types/components/component-geometry.d.ts.map +1 -1
- package/dist-types/components/component-hierarchy.d.ts +1 -1
- package/dist-types/components/component-hierarchy.d.ts.map +1 -1
- package/dist-types/components/component.d.ts +31 -4
- package/dist-types/components/component.d.ts.map +1 -1
- package/dist-types/components/container-abstract.d.ts +52 -11
- package/dist-types/components/container-abstract.d.ts.map +1 -1
- package/dist-types/components/container.d.ts +7 -2
- package/dist-types/components/container.d.ts.map +1 -1
- package/dist-types/components/data/data.d.ts.map +1 -1
- package/dist-types/components/data/evaluator.d.ts +27 -0
- package/dist-types/components/data/evaluator.d.ts.map +1 -1
- package/dist-types/components/donut.d.ts.map +1 -1
- package/dist-types/components/drawer/fill.d.ts.map +1 -1
- package/dist-types/components/drawer/stroke.d.ts.map +1 -1
- package/dist-types/components/ellipse.d.ts +8 -3
- package/dist-types/components/ellipse.d.ts.map +1 -1
- package/dist-types/components/generic-placeholders.d.ts +292 -0
- package/dist-types/components/generic-placeholders.d.ts.map +1 -0
- package/dist-types/components/geometry/snap-guide.d.ts +45 -0
- package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
- package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
- package/dist-types/components/global-ref.d.ts.map +1 -1
- package/dist-types/components/group.d.ts +2 -0
- package/dist-types/components/group.d.ts.map +1 -1
- package/dist-types/components/html/reposition.d.ts.map +1 -1
- package/dist-types/components/html/shadow.d.ts +33 -1
- package/dist-types/components/html/shadow.d.ts.map +1 -1
- package/dist-types/components/html-overlay-container.d.ts +7 -2
- package/dist-types/components/html-overlay-container.d.ts.map +1 -1
- package/dist-types/components/html-overlay-element.d.ts +15 -5
- package/dist-types/components/html-overlay-element.d.ts.map +1 -1
- package/dist-types/components/image-view.d.ts +8 -3
- package/dist-types/components/image-view.d.ts.map +1 -1
- package/dist-types/components/index.d.ts +7 -0
- package/dist-types/components/index.d.ts.map +1 -1
- package/dist-types/components/info-window.d.ts +8 -3
- package/dist-types/components/info-window.d.ts.map +1 -1
- package/dist-types/components/line.d.ts +2 -1
- package/dist-types/components/line.d.ts.map +1 -1
- package/dist-types/components/local-ref.d.ts +8 -3
- package/dist-types/components/local-ref.d.ts.map +1 -1
- package/dist-types/components/mixins/connectable.d.ts +8 -3
- package/dist-types/components/mixins/connectable.d.ts.map +1 -1
- package/dist-types/components/mixins/data-source.d.ts +8 -3
- package/dist-types/components/mixins/data-source.d.ts.map +1 -1
- package/dist-types/components/mixins/gltf-component.d.ts +280 -0
- package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
- package/dist-types/components/mixins/holdable.d.ts +12 -0
- package/dist-types/components/mixins/holdable.d.ts.map +1 -0
- package/dist-types/components/mixins/html-element.d.ts +7 -2
- package/dist-types/components/mixins/html-element.d.ts.map +1 -1
- package/dist-types/components/mixins/move-handle.d.ts +17 -7
- package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
- package/dist-types/components/mixins/rect-path.d.ts +8 -3
- package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
- package/dist-types/components/mixins/three-d-only.d.ts +248 -0
- package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
- package/dist-types/components/mixins/value-holder.d.ts +8 -3
- package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
- package/dist-types/components/mutater/path.d.ts.map +1 -1
- package/dist-types/components/node.d.ts +8 -3
- package/dist-types/components/node.d.ts.map +1 -1
- package/dist-types/components/outline/path-outline.d.ts.map +1 -1
- package/dist-types/components/polygon-container.d.ts +61 -0
- package/dist-types/components/polygon-container.d.ts.map +1 -0
- package/dist-types/components/polygon.d.ts +2 -0
- package/dist-types/components/polygon.d.ts.map +1 -1
- package/dist-types/components/polyline.d.ts +6 -0
- package/dist-types/components/polyline.d.ts.map +1 -1
- package/dist-types/components/popup-container.d.ts +25 -0
- package/dist-types/components/popup-container.d.ts.map +1 -0
- package/dist-types/components/popup.d.ts +38 -3
- package/dist-types/components/popup.d.ts.map +1 -1
- package/dist-types/components/position/popup-position.d.ts +11 -0
- package/dist-types/components/position/popup-position.d.ts.map +1 -1
- package/dist-types/components/rect.d.ts +16 -6
- package/dist-types/components/rect.d.ts.map +1 -1
- package/dist-types/components/retention/retention-manager.d.ts +9 -1
- package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
- package/dist-types/components/root-container.d.ts +18 -4
- package/dist-types/components/root-container.d.ts.map +1 -1
- package/dist-types/components/ruler.d.ts +8 -3
- package/dist-types/components/ruler.d.ts.map +1 -1
- package/dist-types/components/service-component.d.ts +269 -0
- package/dist-types/components/service-component.d.ts.map +1 -0
- package/dist-types/components/shape.d.ts.map +1 -1
- package/dist-types/components/star.d.ts.map +1 -1
- package/dist-types/components/text.d.ts +8 -3
- package/dist-types/components/text.d.ts.map +1 -1
- package/dist-types/core/dom-to-image.d.ts.map +1 -1
- package/dist-types/core/logger.d.ts.map +1 -1
- package/dist-types/core/memoize.d.ts.map +1 -1
- package/dist-types/decorator/decorator-registry.d.ts +14 -1
- package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
- package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
- package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts +0 -4
- package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
- package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts +0 -3
- package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts.map +1 -1
- package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
- package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
- package/dist-types/diagnostics/contract-inspector.d.ts +110 -0
- package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
- package/dist-types/diagnostics/data-lag-tracker.d.ts +50 -0
- package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
- package/dist-types/diagnostics/inspector.d.ts +192 -5
- package/dist-types/diagnostics/inspector.d.ts.map +1 -1
- package/dist-types/diagnostics/load-tracker.d.ts +82 -0
- package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
- package/dist-types/diagnostics/loading-overlay.d.ts +58 -0
- package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
- package/dist-types/diagnostics/metrics.d.ts +10 -0
- package/dist-types/diagnostics/metrics.d.ts.map +1 -1
- package/dist-types/effect/shadow.d.ts +3 -1
- package/dist-types/effect/shadow.d.ts.map +1 -1
- package/dist-types/event-map/index.d.ts +1 -0
- package/dist-types/event-map/index.d.ts.map +1 -1
- package/dist-types/event-map/transition-handler.d.ts +2 -0
- package/dist-types/event-map/transition-handler.d.ts.map +1 -0
- package/dist-types/flow/auto-route.d.ts +36 -0
- package/dist-types/flow/auto-route.d.ts.map +1 -0
- package/dist-types/flow/face-anchors.d.ts +26 -0
- package/dist-types/flow/face-anchors.d.ts.map +1 -0
- package/dist-types/flow/flow-engine.d.ts +122 -0
- package/dist-types/flow/flow-engine.d.ts.map +1 -0
- package/dist-types/flow/flow-graph-coordinator.d.ts +80 -0
- package/dist-types/flow/flow-graph-coordinator.d.ts.map +1 -0
- package/dist-types/flow/flow-graph-validator.d.ts +33 -0
- package/dist-types/flow/flow-graph-validator.d.ts.map +1 -0
- package/dist-types/flow/flow-graph.d.ts +76 -0
- package/dist-types/flow/flow-graph.d.ts.map +1 -0
- package/dist-types/flow/flow-introspection.d.ts +36 -0
- package/dist-types/flow/flow-introspection.d.ts.map +1 -0
- package/dist-types/flow/flow-node.d.ts +69 -0
- package/dist-types/flow/flow-node.d.ts.map +1 -0
- package/dist-types/flow/flow-orientation-coordinator.d.ts +13 -0
- package/dist-types/flow/flow-orientation-coordinator.d.ts.map +1 -0
- package/dist-types/flow/flow-orientation.d.ts +42 -0
- package/dist-types/flow/flow-orientation.d.ts.map +1 -0
- package/dist-types/flow/flow-trace.d.ts +5 -0
- package/dist-types/flow/flow-trace.d.ts.map +1 -0
- package/dist-types/flow/index.d.ts +16 -0
- package/dist-types/flow/index.d.ts.map +1 -0
- package/dist-types/flow/segment-topology.d.ts +225 -0
- package/dist-types/flow/segment-topology.d.ts.map +1 -0
- package/dist-types/flow/station-host-inference.d.ts +23 -0
- package/dist-types/flow/station-host-inference.d.ts.map +1 -0
- package/dist-types/interfaces/event-handler.d.ts +40 -0
- package/dist-types/interfaces/event-handler.d.ts.map +1 -0
- package/dist-types/interfaces/index.d.ts +2 -0
- package/dist-types/interfaces/index.d.ts.map +1 -1
- package/dist-types/interfaces/layout.d.ts +35 -1
- package/dist-types/interfaces/layout.d.ts.map +1 -1
- package/dist-types/interfaces/providers.d.ts +27 -3
- package/dist-types/interfaces/providers.d.ts.map +1 -1
- package/dist-types/interfaces/real-object.d.ts +8 -1
- package/dist-types/interfaces/real-object.d.ts.map +1 -1
- package/dist-types/interfaces/rendering.d.ts +86 -14
- package/dist-types/interfaces/rendering.d.ts.map +1 -1
- package/dist-types/interfaces/types.d.ts +20 -1
- package/dist-types/interfaces/types.d.ts.map +1 -1
- package/dist-types/items/arrangement/centering-queue-strategy.d.ts +10 -0
- package/dist-types/items/arrangement/centering-queue-strategy.d.ts.map +1 -0
- package/dist-types/items/arrangement/gravity-strategy.d.ts +9 -0
- package/dist-types/items/arrangement/gravity-strategy.d.ts.map +1 -0
- package/dist-types/items/arrangement/grid-strategy.d.ts +11 -0
- package/dist-types/items/arrangement/grid-strategy.d.ts.map +1 -0
- package/dist-types/items/arrangement/index.d.ts +7 -0
- package/dist-types/items/arrangement/index.d.ts.map +1 -0
- package/dist-types/items/arrangement/queue-strategy.d.ts +9 -0
- package/dist-types/items/arrangement/queue-strategy.d.ts.map +1 -0
- package/dist-types/items/arrangement/shelf-strategy.d.ts +11 -0
- package/dist-types/items/arrangement/shelf-strategy.d.ts.map +1 -0
- package/dist-types/items/arrangement/stack-strategy.d.ts +9 -0
- package/dist-types/items/arrangement/stack-strategy.d.ts.map +1 -0
- package/dist-types/items/capacity-mixin.d.ts +299 -0
- package/dist-types/items/capacity-mixin.d.ts.map +1 -0
- package/dist-types/items/capacity.d.ts +53 -0
- package/dist-types/items/capacity.d.ts.map +1 -0
- package/dist-types/items/index.d.ts +5 -0
- package/dist-types/items/index.d.ts.map +1 -0
- package/dist-types/items/items-data-binding.d.ts +79 -0
- package/dist-types/items/items-data-binding.d.ts.map +1 -0
- package/dist-types/items/slot-record.d.ts +23 -0
- package/dist-types/items/slot-record.d.ts.map +1 -0
- package/dist-types/layer/action/popup.d.ts +13 -0
- package/dist-types/layer/action/popup.d.ts.map +1 -1
- package/dist-types/layer/add-layer.d.ts +8 -0
- package/dist-types/layer/add-layer.d.ts.map +1 -1
- package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
- package/dist-types/layer/index.d.ts +1 -0
- package/dist-types/layer/index.d.ts.map +1 -1
- package/dist-types/layer/layer.d.ts +2 -0
- package/dist-types/layer/layer.d.ts.map +1 -1
- package/dist-types/layer/model-layer.d.ts +81 -7
- package/dist-types/layer/model-layer.d.ts.map +1 -1
- package/dist-types/layer/modeler/index.d.ts +1 -0
- package/dist-types/layer/modeler/index.d.ts.map +1 -1
- package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
- package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
- package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
- package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
- package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
- package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
- package/dist-types/layer/modeling-layer.d.ts +19 -0
- package/dist-types/layer/modeling-layer.d.ts.map +1 -1
- package/dist-types/layer/selection/selected-finder.d.ts +1 -1
- package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
- package/dist-types/layer/selection-layer.d.ts +7 -0
- package/dist-types/layer/selection-layer.d.ts.map +1 -1
- package/dist-types/layer/snap-guide-layer.d.ts +23 -0
- package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
- package/dist-types/layout/absolute.d.ts +2 -2
- package/dist-types/layout/card.d.ts +2 -2
- package/dist-types/layout/linear-horizontal.d.ts +2 -2
- package/dist-types/layout/linear-vertical.d.ts +2 -2
- package/dist-types/layout/table.d.ts +3 -3
- package/dist-types/license/license.d.ts.map +1 -1
- package/dist-types/math/component-pose.d.ts +51 -0
- package/dist-types/math/component-pose.d.ts.map +1 -0
- package/dist-types/math/index.d.ts +3 -0
- package/dist-types/math/index.d.ts.map +1 -0
- package/dist-types/math/pose6dof.d.ts +93 -0
- package/dist-types/math/pose6dof.d.ts.map +1 -0
- package/dist-types/navigation/index.d.ts +7 -0
- package/dist-types/navigation/index.d.ts.map +1 -0
- package/dist-types/navigation/nav-graph.d.ts +55 -0
- package/dist-types/navigation/nav-graph.d.ts.map +1 -0
- package/dist-types/navigation/path-planner.d.ts +29 -0
- package/dist-types/navigation/path-planner.d.ts.map +1 -0
- package/dist-types/navigation/reservation-table.d.ts +103 -0
- package/dist-types/navigation/reservation-table.d.ts.map +1 -0
- package/dist-types/navigation/types.d.ts +145 -0
- package/dist-types/navigation/types.d.ts.map +1 -0
- package/dist-types/placement/index.d.ts +3 -0
- package/dist-types/placement/index.d.ts.map +1 -0
- package/dist-types/placement/placement.d.ts +53 -0
- package/dist-types/placement/placement.d.ts.map +1 -0
- package/dist-types/search/index.d.ts +3 -0
- package/dist-types/search/index.d.ts.map +1 -0
- package/dist-types/search/scene-search-engine.d.ts +64 -0
- package/dist-types/search/scene-search-engine.d.ts.map +1 -0
- package/dist-types/search/search-overlay.d.ts +94 -0
- package/dist-types/search/search-overlay.d.ts.map +1 -0
- package/dist-types/things-scene/api/add-start.d.ts +25 -0
- package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
- package/dist-types/things-scene/api/align.d.ts.map +1 -1
- package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
- package/dist-types/things-scene/api/ids.d.ts +4 -1
- package/dist-types/things-scene/api/ids.d.ts.map +1 -1
- package/dist-types/things-scene/api/index.d.ts +1 -1
- package/dist-types/things-scene/api/index.d.ts.map +1 -1
- package/dist-types/things-scene/api/place.d.ts.map +1 -1
- package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
- package/dist-types/things-scene/application-context.d.ts +62 -0
- package/dist-types/things-scene/application-context.d.ts.map +1 -1
- package/dist-types/things-scene/create.d.ts +43 -3
- package/dist-types/things-scene/create.d.ts.map +1 -1
- package/dist-types/things-scene/index.d.ts +29 -0
- package/dist-types/things-scene/index.d.ts.map +1 -1
- package/dist-types/things-scene/scene.d.ts +120 -2
- package/dist-types/things-scene/scene.d.ts.map +1 -1
- package/dist-types/threed/arrow-3d.d.ts +13 -4
- package/dist-types/threed/arrow-3d.d.ts.map +1 -1
- package/dist-types/threed/environments/base-environment.d.ts +17 -0
- package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
- package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/factory-environment.d.ts +3 -3
- package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/home-environment.d.ts +3 -3
- package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/office-environment.d.ts +3 -3
- package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
- package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/studio-environment.d.ts +2 -3
- package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
- package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
- package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
- package/dist-types/threed/factories/backdrop.d.ts +537 -0
- package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
- package/dist-types/threed/factories/banner.d.ts +14 -4
- package/dist-types/threed/factories/banner.d.ts.map +1 -1
- package/dist-types/threed/factories/camera.d.ts +10 -3
- package/dist-types/threed/factories/camera.d.ts.map +1 -1
- package/dist-types/threed/factories/cube.d.ts +9 -3
- package/dist-types/threed/factories/cube.d.ts.map +1 -1
- package/dist-types/threed/factories/cylinder.d.ts +1 -0
- package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
- package/dist-types/threed/factories/decal.d.ts +512 -0
- package/dist-types/threed/factories/decal.d.ts.map +1 -0
- package/dist-types/threed/factories/floor-plate.d.ts +11 -0
- package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
- package/dist-types/threed/factories/gltf-object.d.ts +266 -38
- package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
- package/dist-types/threed/factories/group.d.ts +2 -0
- package/dist-types/threed/factories/group.d.ts.map +1 -0
- package/dist-types/threed/factories/light.d.ts +1 -0
- package/dist-types/threed/factories/light.d.ts.map +1 -1
- package/dist-types/threed/factories/line.d.ts +10 -0
- package/dist-types/threed/factories/line.d.ts.map +1 -0
- package/dist-types/threed/factories/ortholine.d.ts +10 -0
- package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
- package/dist-types/threed/factories/polygon.d.ts +19 -0
- package/dist-types/threed/factories/polygon.d.ts.map +1 -1
- package/dist-types/threed/factories/polyline.d.ts +10 -0
- package/dist-types/threed/factories/polyline.d.ts.map +1 -0
- package/dist-types/threed/factories/rect.d.ts.map +1 -1
- package/dist-types/threed/factories/sphere.d.ts +6 -0
- package/dist-types/threed/factories/sphere.d.ts.map +1 -1
- package/dist-types/threed/factories/sprite.d.ts +9 -3
- package/dist-types/threed/factories/sprite.d.ts.map +1 -1
- package/dist-types/threed/factories/triangle.d.ts.map +1 -1
- package/dist-types/threed/factories/wall.d.ts +9 -3
- package/dist-types/threed/factories/wall.d.ts.map +1 -1
- package/dist-types/threed/floor/floor.d.ts.map +1 -1
- package/dist-types/threed/handle-3d.d.ts +21 -0
- package/dist-types/threed/handle-3d.d.ts.map +1 -0
- package/dist-types/threed/html/elements.d.ts.map +1 -1
- package/dist-types/threed/index.d.ts +24 -0
- package/dist-types/threed/index.d.ts.map +1 -1
- package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
- package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
- package/dist-types/threed/managers/camera-bookmark-manager.d.ts +66 -32
- package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/camera-manager.d.ts +9 -3
- package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/controls-manager.d.ts +25 -4
- package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/event-manager3d.d.ts +14 -0
- package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
- package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts +54 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/index.d.ts +3 -1
- package/dist-types/threed/managers/index.d.ts.map +1 -1
- package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
- package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/light-manager.d.ts +15 -0
- package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
- package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/scene-manager.d.ts +12 -2
- package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/types.d.ts +4 -2
- package/dist-types/threed/managers/types.d.ts.map +1 -1
- package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +154 -0
- package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
- package/dist-types/threed/material-3d.d.ts +5 -2
- package/dist-types/threed/material-3d.d.ts.map +1 -1
- package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
- package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
- package/dist-types/threed/real-object-dom-element.d.ts +2 -0
- package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
- package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
- package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
- package/dist-types/threed/real-object-external-model.d.ts +24 -0
- package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
- package/dist-types/threed/real-object-extrude.d.ts +16 -1
- package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
- package/dist-types/threed/real-object-gltf.d.ts +21 -11
- package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
- package/dist-types/threed/real-object-group.d.ts +2 -0
- package/dist-types/threed/real-object-group.d.ts.map +1 -1
- package/dist-types/threed/real-object-line.d.ts +83 -0
- package/dist-types/threed/real-object-line.d.ts.map +1 -0
- package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
- package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
- package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
- package/dist-types/threed/real-object-service.d.ts +14 -0
- package/dist-types/threed/real-object-service.d.ts.map +1 -0
- package/dist-types/threed/real-object-sprite.d.ts +7 -1
- package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
- package/dist-types/threed/real-object-text.d.ts +5 -0
- package/dist-types/threed/real-object-text.d.ts.map +1 -1
- package/dist-types/threed/real-object.d.ts +246 -7
- package/dist-types/threed/real-object.d.ts.map +1 -1
- package/dist-types/threed/text-editor-3d.d.ts +11 -0
- package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
- package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
- package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
- package/dist-types/threed/texture/fillstyle-texture.d.ts +57 -0
- package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
- package/dist-types/threed/texture/text-texture.d.ts +15 -0
- package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
- package/dist-types/threed/three-capability.d.ts +131 -15
- package/dist-types/threed/three-capability.d.ts.map +1 -1
- package/dist-types/threed/three-container.d.ts +0 -1
- package/dist-types/threed/three-container.d.ts.map +1 -1
- package/dist-types/threed/three-dimensional-container.d.ts +0 -1
- package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
- package/dist-types/threed/utils/anchor.d.ts +33 -0
- package/dist-types/threed/utils/anchor.d.ts.map +1 -0
- package/dist-types/threed/utils/dispose.d.ts.map +1 -1
- package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
- package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
- package/dist-types/threed/utils/tether.d.ts +46 -0
- package/dist-types/threed/utils/tether.d.ts.map +1 -0
- package/dist-types/threed/z-priority.d.ts +27 -0
- package/dist-types/threed/z-priority.d.ts.map +1 -0
- package/dist-types/tracker/tracker.d.ts +57 -0
- package/dist-types/tracker/tracker.d.ts.map +1 -0
- package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
- package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
- package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
- package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
- package/dist-types/transfer/container-capacity-helpers.d.ts +18 -0
- package/dist-types/transfer/container-capacity-helpers.d.ts.map +1 -0
- package/dist-types/transfer/container-capacity.d.ts +11 -0
- package/dist-types/transfer/container-capacity.d.ts.map +1 -0
- package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
- package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
- package/dist-types/transfer/index.d.ts +25 -0
- package/dist-types/transfer/index.d.ts.map +1 -0
- package/dist-types/transfer/pickup-helpers.d.ts +65 -0
- package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
- package/dist-types/transfer/simulation-clock.d.ts +45 -0
- package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
- package/dist-types/transfer/tracer.d.ts +35 -0
- package/dist-types/transfer/tracer.d.ts.map +1 -0
- package/dist-types/transfer/transfer.d.ts +229 -0
- package/dist-types/transfer/transfer.d.ts.map +1 -0
- package/dist-types/transfer/transferable-mixin.d.ts +260 -0
- package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
- package/dist-types/transfer/types.d.ts +424 -0
- package/dist-types/transfer/types.d.ts.map +1 -0
- package/dist-types/transition/transition-effect.d.ts +117 -0
- package/dist-types/transition/transition-effect.d.ts.map +1 -0
- package/dist-types/types/bounding.d.ts +1 -1
- package/dist-types/types/bounding.d.ts.map +1 -1
- package/dist-types/types/capability.d.ts +59 -0
- package/dist-types/types/capability.d.ts.map +1 -0
- package/dist-types/types/component.d.ts +6 -177
- package/dist-types/types/component.d.ts.map +1 -1
- package/dist-types/types/event.d.ts +57 -0
- package/dist-types/types/event.d.ts.map +1 -1
- package/dist-types/types/polygon-path-arc.d.ts +72 -0
- package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
- package/dist-types/types/polygon-path.d.ts +153 -0
- package/dist-types/types/polygon-path.d.ts.map +1 -0
- package/package.json +13 -2
- package/things-scene-min.js +12 -13
- package/things-scene-min.js.map +1 -1
- package/things-scene-transfer.mjs +7 -0
- package/things-scene.mjs +8 -9
- package/things-scene.mjs.map +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Lane, Intersection } from './types.js';
|
|
2
|
+
import type { Vec3 } from '../transfer/types.js';
|
|
3
|
+
export interface NavNode {
|
|
4
|
+
id: string;
|
|
5
|
+
position: Vec3;
|
|
6
|
+
/** 'lane-start' | 'lane-end' | 'intersection' | 'goal' (planner 가 임시 추가). */
|
|
7
|
+
type: string;
|
|
8
|
+
}
|
|
9
|
+
export interface NavEdge {
|
|
10
|
+
fromNode: string;
|
|
11
|
+
toNode: string;
|
|
12
|
+
/** 통과하는 resource id (충돌 검사용). lane id 또는 intersection id. */
|
|
13
|
+
resource: string;
|
|
14
|
+
/** 거리 (scene unit). cost 의 기본 단위. */
|
|
15
|
+
distance: number;
|
|
16
|
+
/** 통과 sim time (ms). speed 가 결정. lane.speedLimit 또는 vehicle.maxSpeed 기준. */
|
|
17
|
+
durationMs: number;
|
|
18
|
+
/** 이 edge 의 통과 방향이 lane 의 정방향과 같으면 true. twoway 의 역방향이면 false. */
|
|
19
|
+
forward: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class NavGraph {
|
|
22
|
+
readonly nodes: Map<string, NavNode>;
|
|
23
|
+
/** adjacency list — fromNode → outgoing edges. */
|
|
24
|
+
readonly edges: Map<string, NavEdge[]>;
|
|
25
|
+
/** Lane 별 endpoint node id 매핑. graph augmentation (start/goal 추가) 시 유용. */
|
|
26
|
+
readonly laneEndpoints: Map<string, {
|
|
27
|
+
startNodeId: string;
|
|
28
|
+
endNodeId: string;
|
|
29
|
+
}>;
|
|
30
|
+
addNode(node: NavNode): void;
|
|
31
|
+
addEdge(edge: NavEdge): void;
|
|
32
|
+
edgesFrom(nodeId: string): NavEdge[];
|
|
33
|
+
/** 가장 가까운 node 찾기 (start/goal 진입용). bruteforce — 큰 그래프엔 spatial index 권장. */
|
|
34
|
+
findNearestNode(pos: Vec3): NavNode | null;
|
|
35
|
+
}
|
|
36
|
+
export interface BuildNavGraphOptions {
|
|
37
|
+
/** Lane 별 default speed (없으면 lane.speedLimit, 그것도 없으면 fallback 100). */
|
|
38
|
+
defaultSpeed?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Lane / Intersection 으로부터 NavGraph 를 빌드.
|
|
42
|
+
*
|
|
43
|
+
* 노드 명명 규약:
|
|
44
|
+
* - lane endpoint: `${lane.id}:start`, `${lane.id}:end`
|
|
45
|
+
* - intersection: `${intersection.id}` (intersection 자체가 단일 노드 — 통과 cost 는
|
|
46
|
+
* intersection.crossingTimeMs 로 모델링)
|
|
47
|
+
*
|
|
48
|
+
* Edge 종류:
|
|
49
|
+
* - lane traversal: lane.id 가 resource. oneway 면 start→end 만, twoway 면
|
|
50
|
+
* 양방향 두 edge. distance = lane.geometry.centerPoints 누적.
|
|
51
|
+
* - intersection crossing: intersection.id 가 resource. 만나는 lane 들의
|
|
52
|
+
* endpoint 간 edge (직선 거리 + crossingTimeMs).
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildNavGraph(lanes: Lane[], intersections: Intersection[], options?: BuildNavGraphOptions): NavGraph;
|
|
55
|
+
//# sourceMappingURL=nav-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-graph.d.ts","sourceRoot":"","sources":["../../src/navigation/nav-graph.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,IAAI,CAAA;IACd,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAY;IAChD,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAY;IAElD,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAY;IAE3F,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAO5B,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAW5B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE;IAIpC,6EAA6E;IAC7E,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,GAAG,IAAI;CAY3C;AAaD,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,IAAI,EAAE,EACb,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,GAAE,oBAAyB,GACjC,QAAQ,CA0GV"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { NavGraph } from './nav-graph.js';
|
|
2
|
+
import type { PathPlan, PathPlanOptions } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* A* 경로 계획.
|
|
5
|
+
*
|
|
6
|
+
* @param graph navigation graph
|
|
7
|
+
* @param startNodeId 출발 node id
|
|
8
|
+
* @param goalNodeId 도착 node id
|
|
9
|
+
* @param options vehicle 의 speed / priority / startSimMs / deadline
|
|
10
|
+
* @returns PathPlan 또는 null (도달 불가 / deadline 초과)
|
|
11
|
+
*/
|
|
12
|
+
export declare function planPathAStar(graph: NavGraph, startNodeId: string, goalNodeId: string, options?: PathPlanOptions): PathPlan | null;
|
|
13
|
+
/**
|
|
14
|
+
* PathPlan 의 segments 를 ReservationTable 의 add 입력 형태로 변환.
|
|
15
|
+
*
|
|
16
|
+
* 호출자가 ReservationTable.add 를 segment 별로 시도하고, 실패 시 rollback
|
|
17
|
+
* (이미 add 된 것들 release) 책임. helper 는 단순 매핑.
|
|
18
|
+
*/
|
|
19
|
+
export declare function planToReservations(plan: PathPlan, reserverId: string, priority?: number, metadata?: Record<string, any>): Array<{
|
|
20
|
+
resource: string;
|
|
21
|
+
timeWindow: {
|
|
22
|
+
startSimMs: number;
|
|
23
|
+
endSimMs: number;
|
|
24
|
+
};
|
|
25
|
+
reserverId: string;
|
|
26
|
+
priority: number;
|
|
27
|
+
metadata?: Record<string, any>;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=path-planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-planner.d.ts","sourceRoot":"","sources":["../../src/navigation/path-planner.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAe,eAAe,EAAE,MAAM,YAAY,CAAA;AA+BxE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,GAAG,IAAI,CAqGjB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAU,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC,CAQzJ"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { Reservation, TimeWindow, YieldDecision, YieldPolicy } from './types.js';
|
|
2
|
+
/** 기본 yield policy: priority 낮은(수치 높은) 쪽이 양보, 같으면 fifo. */
|
|
3
|
+
export declare const standardYieldPolicy: YieldPolicy;
|
|
4
|
+
/**
|
|
5
|
+
* Conflict — 두 reservation 의 충돌 정보. yield policy 가 어느 쪽이 양보할지 결정.
|
|
6
|
+
*/
|
|
7
|
+
export interface Conflict {
|
|
8
|
+
a: Reservation;
|
|
9
|
+
b: Reservation;
|
|
10
|
+
decision: YieldDecision;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Phase K — 충돌 발생 기록. observability 의 입력 — Atlas 의 Conflicts mode 가
|
|
14
|
+
* 활용. 시간순 누적 (ring buffer 로 maxEntries 제한).
|
|
15
|
+
*/
|
|
16
|
+
export interface ConflictRecord {
|
|
17
|
+
/** 충돌 발생 sim time (proposed reservation 의 시작 시간으로 추정). */
|
|
18
|
+
simTime: number;
|
|
19
|
+
resource: string;
|
|
20
|
+
/** 시도된 reservation (table 에 안 들어감). */
|
|
21
|
+
proposed: Omit<Reservation, 'id'>;
|
|
22
|
+
/** 충돌한 기존 reservations. */
|
|
23
|
+
existing: Reservation[];
|
|
24
|
+
/** 결과 — 'rejected' (proposed 가 양보) | 'preempted' (기존이 evict 됨). */
|
|
25
|
+
outcome: 'rejected' | 'preempted';
|
|
26
|
+
}
|
|
27
|
+
export declare class ReservationTable {
|
|
28
|
+
private readonly _byResource;
|
|
29
|
+
private readonly _byReserver;
|
|
30
|
+
private readonly _yieldPolicy;
|
|
31
|
+
private readonly _listeners;
|
|
32
|
+
private readonly _conflictLog;
|
|
33
|
+
private _maxConflictLog;
|
|
34
|
+
constructor(yieldPolicy?: YieldPolicy);
|
|
35
|
+
/**
|
|
36
|
+
* Reservation 을 추가. 같은 resource + 겹치는 window 에 다른 reservation 이
|
|
37
|
+
* 있으면 yield policy 가 어느 쪽이 양보할지 결정.
|
|
38
|
+
*
|
|
39
|
+
* 반환:
|
|
40
|
+
* - { ok: true, reservation } 충돌 없음
|
|
41
|
+
* - { ok: false, conflicts } 이 reservation 이 양보 (추가 안 됨)
|
|
42
|
+
* - { ok: 'preempted', reservation, evicted } 기존 reservation 들이 양보 (제거됨)
|
|
43
|
+
*
|
|
44
|
+
* preempted 케이스는 호출자가 evicted reservation 의 reserver 들에게
|
|
45
|
+
* notification 하고 reroute 하도록 함.
|
|
46
|
+
*/
|
|
47
|
+
add(input: Omit<Reservation, 'id'>): AddResult;
|
|
48
|
+
/** Phase K — 충돌 로그 (rejected / preempted). 시간순 누적. */
|
|
49
|
+
conflictLog(): readonly ConflictRecord[];
|
|
50
|
+
/** maxEntries 설정 (테스트용). */
|
|
51
|
+
setMaxConflictLog(n: number): void;
|
|
52
|
+
private _appendConflictLog;
|
|
53
|
+
/**
|
|
54
|
+
* 미리 충돌 가능성 검사 (add 안 함). plan 단계에서 reservation 을 사전 검증할 때.
|
|
55
|
+
*/
|
|
56
|
+
conflicts(resource: string, window: TimeWindow): Reservation[];
|
|
57
|
+
/** 한 reservation 회수. 도착 완료 또는 cancel 시. */
|
|
58
|
+
release(reservation: Reservation): void;
|
|
59
|
+
/** 같은 reserver 의 모든 reservation 일괄 해제. */
|
|
60
|
+
releaseAllOf(reserverId: string): Reservation[];
|
|
61
|
+
/** 특정 resource 의 모든 reservation (read-only 사본). */
|
|
62
|
+
forResource(resource: string): readonly Reservation[];
|
|
63
|
+
/** 특정 reserver 의 모든 reservation. */
|
|
64
|
+
forReserver(reserverId: string): readonly Reservation[];
|
|
65
|
+
/** 모든 reservation. */
|
|
66
|
+
all(): readonly Reservation[];
|
|
67
|
+
/** 청소 (테스트용). */
|
|
68
|
+
clear(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Listener 등록. observability (Atlas extension 등) 를 위함.
|
|
71
|
+
*/
|
|
72
|
+
subscribe(listener: (event: ReservationEvent) => void): () => void;
|
|
73
|
+
private _insert;
|
|
74
|
+
private _remove;
|
|
75
|
+
private _emit;
|
|
76
|
+
}
|
|
77
|
+
export type ReservationEvent = {
|
|
78
|
+
kind: 'added';
|
|
79
|
+
reservation: Reservation;
|
|
80
|
+
} | {
|
|
81
|
+
kind: 'released';
|
|
82
|
+
reservation: Reservation;
|
|
83
|
+
} | {
|
|
84
|
+
kind: 'evicted';
|
|
85
|
+
reservation: Reservation;
|
|
86
|
+
by: Reservation;
|
|
87
|
+
};
|
|
88
|
+
export type AddResult = {
|
|
89
|
+
ok: true;
|
|
90
|
+
reservation: Reservation;
|
|
91
|
+
} | {
|
|
92
|
+
ok: 'preempted';
|
|
93
|
+
reservation: Reservation;
|
|
94
|
+
evicted: Reservation[];
|
|
95
|
+
} | {
|
|
96
|
+
ok: false;
|
|
97
|
+
conflicts: Conflict[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Singleton — 단일 시뮬레이션 instance 내 공유. 테스트는 자체 인스턴스 만드는 걸 권장.
|
|
101
|
+
*/
|
|
102
|
+
export declare const reservationTable: ReservationTable;
|
|
103
|
+
//# sourceMappingURL=reservation-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reservation-table.d.ts","sourceRoot":"","sources":["../../src/navigation/reservation-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { Vec3 } from '../transfer/types.js';
|
|
2
|
+
export interface LaneGeometry {
|
|
3
|
+
/** 중앙선의 점들 (시작 → 끝). */
|
|
4
|
+
centerPoints: Vec3[];
|
|
5
|
+
/** lane 의 폭 (vehicle 이 이 안에 들어가야 함). */
|
|
6
|
+
width: number;
|
|
7
|
+
}
|
|
8
|
+
export interface Lane {
|
|
9
|
+
id: string;
|
|
10
|
+
geometry: LaneGeometry;
|
|
11
|
+
/** oneway 면 centerPoints 의 시작→끝 방향만, twoway 면 양방향 허용. */
|
|
12
|
+
direction: 'oneway' | 'twoway';
|
|
13
|
+
/** 속도 제한 (scene units / sim sec). undefined = 무제한. */
|
|
14
|
+
speedLimit?: number;
|
|
15
|
+
/** 통과 가능한 도구 type (Pickable.toolType 과 같은 축). 빈 배열 = 모두 허용. */
|
|
16
|
+
allowedToolTypes?: string[];
|
|
17
|
+
/** 동시에 들어갈 수 있는 vehicle 수. 1 = 단독 점유 (1차원 큐). */
|
|
18
|
+
capacity: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 두 lane 의 진입쌍이 충돌하는지 표현. e.g. north→south 와 east→west 는 직각
|
|
22
|
+
* 교차로에서 충돌하지만 north→east 와 south→east 는 충돌 안 함 (병행).
|
|
23
|
+
*/
|
|
24
|
+
export interface ConflictPair {
|
|
25
|
+
fromLane: string;
|
|
26
|
+
toLane: string;
|
|
27
|
+
/** 어떤 우선순위 정책을 적용할지. */
|
|
28
|
+
resolveBy: 'fifo' | 'priority' | 'roundrobin';
|
|
29
|
+
}
|
|
30
|
+
export interface Intersection {
|
|
31
|
+
id: string;
|
|
32
|
+
lanes: string[];
|
|
33
|
+
conflicts: ConflictPair[];
|
|
34
|
+
/** 통과 시간 (vehicle 이 교차로 안에 머무는 sim ms). 보수적으로 추정. */
|
|
35
|
+
crossingTimeMs: number;
|
|
36
|
+
}
|
|
37
|
+
export interface NavPolygon {
|
|
38
|
+
vertices: Vec3[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* lane 으로 표현하기 어려운 넓은 영역 (open warehouse floor, dock plaza 등).
|
|
42
|
+
* 시공간 격자로 점유권을 관리.
|
|
43
|
+
*/
|
|
44
|
+
export interface OpenZone {
|
|
45
|
+
id: string;
|
|
46
|
+
boundary: NavPolygon;
|
|
47
|
+
/** 점유 격자의 cell 한 변 크기 (scene unit). 작을수록 정확하지만 reservation 많아짐. */
|
|
48
|
+
cellSize: number;
|
|
49
|
+
}
|
|
50
|
+
export interface TimeWindow {
|
|
51
|
+
/** sim time milliseconds. */
|
|
52
|
+
startSimMs: number;
|
|
53
|
+
endSimMs: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 어떤 resource 를 어떤 시간 window 동안 누가 점유하는가.
|
|
57
|
+
*
|
|
58
|
+
* resource 는 lane id / intersection id / open-zone cell key 등 resource 의
|
|
59
|
+
* 단일 식별자. cell 의 경우 e.g. `${zoneId}:cell:${i},${j}`.
|
|
60
|
+
*/
|
|
61
|
+
export interface Reservation {
|
|
62
|
+
id: string;
|
|
63
|
+
resource: string;
|
|
64
|
+
timeWindow: TimeWindow;
|
|
65
|
+
reserverId: string;
|
|
66
|
+
/** 낮을수록 우선. emergency = -1, task-bound = 0, idle = 10 등. */
|
|
67
|
+
priority: number;
|
|
68
|
+
/** 부수 메타 (어떤 task 의 일부인지, 어떤 carrier 를 운반 중인지 등). */
|
|
69
|
+
metadata?: Record<string, any>;
|
|
70
|
+
}
|
|
71
|
+
export interface SpeedProfile {
|
|
72
|
+
/** 최대 속도 (scene units / sim sec). */
|
|
73
|
+
max: number;
|
|
74
|
+
/** 가속도 (scene units / sim sec²). */
|
|
75
|
+
accel: number;
|
|
76
|
+
/** 감속도 (scene units / sim sec²). */
|
|
77
|
+
decel: number;
|
|
78
|
+
}
|
|
79
|
+
export interface PathSegment {
|
|
80
|
+
resource: string;
|
|
81
|
+
/** 이 segment 를 통과하는 sim time. */
|
|
82
|
+
timeWindow: TimeWindow;
|
|
83
|
+
/** segment 시작 / 끝 좌표 (시각화용). */
|
|
84
|
+
fromPos: Vec3;
|
|
85
|
+
toPos: Vec3;
|
|
86
|
+
}
|
|
87
|
+
export interface PathPlan {
|
|
88
|
+
segments: PathSegment[];
|
|
89
|
+
/** 전체 경로의 sim time 길이. */
|
|
90
|
+
totalDurationMs: number;
|
|
91
|
+
/** 전체 경로 길이 (scene unit). */
|
|
92
|
+
totalDistance: number;
|
|
93
|
+
}
|
|
94
|
+
export interface PathPlanOptions {
|
|
95
|
+
/** sim time 시작점. 미지정 시 현재 globalSimClock.now. */
|
|
96
|
+
startSimMs?: number;
|
|
97
|
+
/** vehicle 의 toolType — lane.allowedToolTypes 검사용. */
|
|
98
|
+
toolType?: string;
|
|
99
|
+
/** vehicle 의 speed profile. */
|
|
100
|
+
speed?: SpeedProfile;
|
|
101
|
+
/** 우선순위 (충돌 시 양보 결정용). */
|
|
102
|
+
priority?: number;
|
|
103
|
+
/** deadline (sim ms) — 이 시간 안에 도착 못 하면 null 반환. */
|
|
104
|
+
deadlineSimMs?: number;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Vehicle 이 navigation 능력을 노출하는 인터페이스. Mover 의 sub-trait.
|
|
108
|
+
*
|
|
109
|
+
* lifecycle:
|
|
110
|
+
* 1. planPath(target) → PathPlan | null (lookup, 부수효과 없음)
|
|
111
|
+
* 2. reservePath(plan) → Reservation[] | null (table 에 add, 충돌 시 null)
|
|
112
|
+
* 3. followReservation(rs) → Promise<void> (sim time 진행)
|
|
113
|
+
* 4. releaseReservation(rs) (도착 후 또는 cancel)
|
|
114
|
+
*
|
|
115
|
+
* 단계 분리로 충돌 감지가 commit 직전, replay 가 결정적, 디버깅이 가능.
|
|
116
|
+
*/
|
|
117
|
+
export interface Navigable {
|
|
118
|
+
toolType: string;
|
|
119
|
+
speedProfile: SpeedProfile;
|
|
120
|
+
/**
|
|
121
|
+
* 경로 계획. 시간-공간 reservation 가능성 검증 포함 (단, table 에 commit 안 함).
|
|
122
|
+
* null 반환 = 도달 가능 경로 없음 (deadline 초과 / 모든 lane 점유 등).
|
|
123
|
+
*/
|
|
124
|
+
planPath(target: Vec3, options?: PathPlanOptions): PathPlan | null;
|
|
125
|
+
/**
|
|
126
|
+
* 계획된 경로를 reservation table 에 commit. 다른 vehicle 이 이미 점유한
|
|
127
|
+
* window 와 충돌 시 null — 호출자가 reroute 하든 대기하든 결정.
|
|
128
|
+
*/
|
|
129
|
+
reservePath(plan: PathPlan, priority?: number): Reservation[] | null;
|
|
130
|
+
/**
|
|
131
|
+
* commit 된 reservation 따라 sim time 진행. resolve = 마지막 segment 도착.
|
|
132
|
+
*/
|
|
133
|
+
followReservation(reservations: Reservation[]): Promise<void>;
|
|
134
|
+
/** 점유 해제. 도착 완료 또는 cancel 시 호출. */
|
|
135
|
+
releaseReservation(reservations: Reservation[]): void;
|
|
136
|
+
}
|
|
137
|
+
export type YieldDecision = 'a-yields' | 'b-yields' | 'replan-both';
|
|
138
|
+
export interface YieldPolicy {
|
|
139
|
+
/**
|
|
140
|
+
* 두 reservation 이 시간-공간 충돌할 때 누가 양보하는가.
|
|
141
|
+
* 기본: priority 낮은 (수치 높은) 쪽이 양보. 같으면 fifo (먼저 만든 게 우선).
|
|
142
|
+
*/
|
|
143
|
+
resolveConflict(a: Reservation, b: Reservation): YieldDecision;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/navigation/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/placement/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 컴포넌트의 placement 결정 정책.
|
|
3
|
+
*
|
|
4
|
+
* - **state-driven** (default): state.left/top/zPos/rotation/... 이 obj3d 에 반영.
|
|
5
|
+
* 현재 things-scene 의 모든 컴포넌트가 묵시적으로 따르는 정책.
|
|
6
|
+
*
|
|
7
|
+
* - **carried**: 다른 holder 의 attach frame 에 부착. holder 의 movement 를
|
|
8
|
+
* scene-graph 통해 자동 추종. carrier policy (world-preserve / belt-aligned /
|
|
9
|
+
* world-fixed 등) 는 holder 가 결정. 예: AGV 위 박스, sorter carrier 위 파레트.
|
|
10
|
+
*
|
|
11
|
+
* - **animated**: animation system 이 일시적으로 obj3d 를 override. animation
|
|
12
|
+
* 종료 시 다른 정책으로 복귀.
|
|
13
|
+
*
|
|
14
|
+
* - **fixed**: world 좌표 고정 (parent 변경 무관). HUD / screenFixed 컴포넌트.
|
|
15
|
+
*
|
|
16
|
+
* - **transitioning**: reparent 중 TransitionEffect 가 보간 제어. transition
|
|
17
|
+
* 완료 시 keepSuppressed 면 carried 또는 manual, 아니면 state-driven 으로 복귀.
|
|
18
|
+
*
|
|
19
|
+
* - **manual**: 컴포넌트 코드가 직접 obj3d.position/quaternion 을 매 frame
|
|
20
|
+
* 조작. framework 는 개입 안 함. 예: cross-belt-line 의 _tickSim, IK
|
|
21
|
+
* smoothing, URDF physics.
|
|
22
|
+
*/
|
|
23
|
+
export type PlacementPolicy = 'state-driven' | 'carried' | 'animated' | 'fixed' | 'transitioning' | 'manual';
|
|
24
|
+
/**
|
|
25
|
+
* Placement 선언. 컴포넌트의 RealObject 가 이 객체를 반환하면 framework 가
|
|
26
|
+
* 정책에 따라 동작.
|
|
27
|
+
*
|
|
28
|
+
* Step 1 에선 policy 만 정의. 후속 step 에서 정책별 metadata (예: carried 의
|
|
29
|
+
* carryPolicy 'world-preserve' / 'belt-aligned', transitioning 의 transition 객체)
|
|
30
|
+
* 를 추가.
|
|
31
|
+
*/
|
|
32
|
+
export interface Placement {
|
|
33
|
+
policy: PlacementPolicy;
|
|
34
|
+
/**
|
|
35
|
+
* 정책별 metadata. 선언 시점에 정책에 따라 추가 정보를 담음.
|
|
36
|
+
* Step 1 에선 미사용. 향후 정책 별로 타입 좁히기 (discriminated union) 적용.
|
|
37
|
+
*/
|
|
38
|
+
meta?: Record<string, unknown>;
|
|
39
|
+
}
|
|
40
|
+
/** 기본 placement = 현재 동작 = state pipeline 이 obj3d 를 결정. */
|
|
41
|
+
export declare const DEFAULT_PLACEMENT: Placement;
|
|
42
|
+
/**
|
|
43
|
+
* Placement 정책이 state pipeline 적용을 허용하는가.
|
|
44
|
+
*
|
|
45
|
+
* - state-driven: ✓ 적용
|
|
46
|
+
* - 그 외: framework 가 obj3d 를 건드리지 않음 (다른 시스템 또는 컴포넌트가 책임).
|
|
47
|
+
*
|
|
48
|
+
* 현재 RealObject 의 `suppressTransform` 플래그와 의미가 겹침. 마이그레이션
|
|
49
|
+
* 단계 (Step 2~7) 에서 suppressTransform 이 점진적으로 `placement.policy !==
|
|
50
|
+
* 'state-driven'` 으로 흡수됨. 호환성 위해 두 메커니즘 일정 기간 병존.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isStateDriven(placement: Placement): boolean;
|
|
53
|
+
//# sourceMappingURL=placement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placement.d.ts","sourceRoot":"","sources":["../../src/placement/placement.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,UAAU,GACV,OAAO,GACP,eAAe,GACf,QAAQ,CAAA;AAEZ;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAsC,CAAA;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type Component from '../components/component.js';
|
|
2
|
+
/**
|
|
3
|
+
* 검색 결과 하나를 나타낸다.
|
|
4
|
+
*/
|
|
5
|
+
export interface SearchResult {
|
|
6
|
+
/** 매칭된 컴포넌트 */
|
|
7
|
+
component: Component;
|
|
8
|
+
/** 매칭 카테고리 */
|
|
9
|
+
matchType: 'id' | 'name' | 'tag' | 'type' | 'class' | 'text' | 'data' | 'property';
|
|
10
|
+
/** 매칭된 필드 이름 (예: 'accessor', 'fillStyle') */
|
|
11
|
+
matchField: string;
|
|
12
|
+
/** 매칭된 값 */
|
|
13
|
+
matchValue: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SearchOptions {
|
|
16
|
+
/** 검색할 필드 범위 (기본: 전체) */
|
|
17
|
+
fields?: SearchResult['matchType'][];
|
|
18
|
+
/** 대소문자 구분 (기본: false) */
|
|
19
|
+
caseSensitive?: boolean;
|
|
20
|
+
/** hidden 컴포넌트 포함 (기본: false) */
|
|
21
|
+
includeHidden?: boolean;
|
|
22
|
+
/** 최대 결과 수 (기본: 무제한) */
|
|
23
|
+
maxResults?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* things-scene 컴포넌트 트리를 대상으로 텍스트 검색을 수행하는 엔진.
|
|
27
|
+
*
|
|
28
|
+
* 에디터/뷰어, 2D/3D 모드 공용.
|
|
29
|
+
* 검색 대상: id, name, tag, type, class, text, data-binding(accessor/target/property), 주요 속성값.
|
|
30
|
+
*/
|
|
31
|
+
export declare class SceneSearchEngine {
|
|
32
|
+
private _results;
|
|
33
|
+
private _currentIndex;
|
|
34
|
+
get results(): readonly SearchResult[];
|
|
35
|
+
get currentIndex(): number;
|
|
36
|
+
get currentResult(): SearchResult | undefined;
|
|
37
|
+
get resultCount(): number;
|
|
38
|
+
/**
|
|
39
|
+
* 컴포넌트 트리에서 query를 검색한다.
|
|
40
|
+
* 동일 컴포넌트가 여러 필드에서 매칭되면 첫 번째 매칭만 결과에 포함한다.
|
|
41
|
+
*/
|
|
42
|
+
search(root: Component, query: string, options?: SearchOptions): SearchResult[];
|
|
43
|
+
/** 다음 결과로 이동 */
|
|
44
|
+
navigateNext(): SearchResult | undefined;
|
|
45
|
+
/** 이전 결과로 이동 */
|
|
46
|
+
navigatePrev(): SearchResult | undefined;
|
|
47
|
+
/** 특정 인덱스로 이동 */
|
|
48
|
+
navigateTo(index: number): SearchResult | undefined;
|
|
49
|
+
/** 검색 결과 초기화 */
|
|
50
|
+
clear(): void;
|
|
51
|
+
private _traverse;
|
|
52
|
+
private _matchComponent;
|
|
53
|
+
/**
|
|
54
|
+
* data-binding 설정(mappings)에서 검색.
|
|
55
|
+
* accessor, target, property, source 필드를 대상으로 한다.
|
|
56
|
+
*/
|
|
57
|
+
private _matchDataBinding;
|
|
58
|
+
/**
|
|
59
|
+
* 주요 속성값에서 검색.
|
|
60
|
+
* fillStyle(문자열), strokeStyle(문자열), ref, src 등.
|
|
61
|
+
*/
|
|
62
|
+
private _matchProperties;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=scene-search-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/scene-search-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IAClF,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAA;IACpC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAE1B,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAkC/E,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,iBAAiB;IACjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMnD,gBAAgB;IAChB,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAkCzB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type Component from '../components/component.js';
|
|
2
|
+
import { SceneSearchEngine } from './scene-search-engine.js';
|
|
3
|
+
/**
|
|
4
|
+
* SearchOverlayHost: 검색 오버레이가 동작하기 위한 호스트 인터페이스.
|
|
5
|
+
* Scene이 이 인터페이스를 구현한다.
|
|
6
|
+
*/
|
|
7
|
+
export interface SearchOverlayHost {
|
|
8
|
+
/** 검색 대상 루트 컴포넌트 */
|
|
9
|
+
readonly root: Component & {
|
|
10
|
+
selected?: Component[];
|
|
11
|
+
};
|
|
12
|
+
/** 오버레이를 붙일 DOM element */
|
|
13
|
+
readonly element: HTMLElement | null;
|
|
14
|
+
/** 컴포넌트로 카메라/뷰포트 이동 */
|
|
15
|
+
centerTo(component: Component, animated?: boolean): void;
|
|
16
|
+
/** 선택 변경 */
|
|
17
|
+
setSelected(components: Component[]): void;
|
|
18
|
+
/** 3D outline 하이라이트 (있으면) */
|
|
19
|
+
highlightSearchResults?(components: Component[]): void;
|
|
20
|
+
/** 2D invalidate */
|
|
21
|
+
invalidate?(): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 2D/3D 모드 공용 검색 오버레이 UI.
|
|
25
|
+
*
|
|
26
|
+
* 호스트의 DOM element에 겹쳐 놓는 가벼운 검색 바.
|
|
27
|
+
* F키로 토글, ↑↓ 결과 네비게이션, Enter 선택, Esc 닫기.
|
|
28
|
+
* 입력 히스토리(↑↓), Shift+Tab으로 input 복귀, 마우스+키보드 심리스 전환.
|
|
29
|
+
*/
|
|
30
|
+
export declare class SearchOverlay {
|
|
31
|
+
private _host?;
|
|
32
|
+
private _engine;
|
|
33
|
+
private _container?;
|
|
34
|
+
private _input?;
|
|
35
|
+
private _statusEl?;
|
|
36
|
+
private _resultListEl?;
|
|
37
|
+
private _visible;
|
|
38
|
+
private _debounceTimer?;
|
|
39
|
+
private _queryHistory;
|
|
40
|
+
private _historyIndex;
|
|
41
|
+
private _savedInput;
|
|
42
|
+
private static MAX_HISTORY;
|
|
43
|
+
get isVisible(): boolean;
|
|
44
|
+
get engine(): SceneSearchEngine;
|
|
45
|
+
setup(host: SearchOverlayHost): void;
|
|
46
|
+
/**
|
|
47
|
+
* 오버레이 토글. 이미 열려 있으면 입력 필드에 포커스.
|
|
48
|
+
*/
|
|
49
|
+
toggle(): void;
|
|
50
|
+
show(): void;
|
|
51
|
+
hide(): void;
|
|
52
|
+
destroy(): void;
|
|
53
|
+
private _buildDOM;
|
|
54
|
+
/**
|
|
55
|
+
* 드래그 핸들 설정. mousedown on `handle` 에서 시작, document 의 mousemove 로
|
|
56
|
+
* container 위치 추적, mouseup 으로 종료. input/button/icon 같은 인터랙티브
|
|
57
|
+
* 요소 위에서 시작된 mousedown 은 드래그로 잡지 않음 (본연의 click/focus 보존).
|
|
58
|
+
*/
|
|
59
|
+
private _setupDrag;
|
|
60
|
+
private _buttonStyle;
|
|
61
|
+
private _doSearch;
|
|
62
|
+
private _addToHistory;
|
|
63
|
+
private _navigateHistory;
|
|
64
|
+
private _isHistoryMode;
|
|
65
|
+
/**
|
|
66
|
+
* input 의 raw 값을 host 에 query-submit 으로 전달. Enter 키 / 돋보기 아이콘 클릭
|
|
67
|
+
* 공통 진입점.
|
|
68
|
+
* - VIEW 모드: input 의 raw 값을 query-submit 으로 host 에 dispatch. 결과 유무
|
|
69
|
+
* 무관하게 입력값 자체를 정확한 ID 로 host 가 처리 (예: 미래 ID 영구 추적).
|
|
70
|
+
* - EDIT 모드: things-scene 기본 동작 위임 — 결과가 있으면 첫 결과 _selectResult.
|
|
71
|
+
* @returns input value 가 비어있지 않아 submit 처리했으면 true.
|
|
72
|
+
*/
|
|
73
|
+
private _submitQuery;
|
|
74
|
+
/**
|
|
75
|
+
* VIEW 모드의 디폴트 query-submit 동작 — application 의 onSearchSubmit override
|
|
76
|
+
* 가 있으면 그것 호출. 반환 true 시 디폴트 (host.tracker.start) skip.
|
|
77
|
+
*/
|
|
78
|
+
private _invokeViewSubmit;
|
|
79
|
+
/**
|
|
80
|
+
* VIEW 모드의 디폴트 close 동작 — application override (onSearchClose) 가 있으면
|
|
81
|
+
* 호출. 반환 true 시 디폴트 (host.tracker.stop) skip.
|
|
82
|
+
*/
|
|
83
|
+
private _invokeViewClose;
|
|
84
|
+
private _focusResult;
|
|
85
|
+
private _isEditMode;
|
|
86
|
+
private _selectResult;
|
|
87
|
+
private _clearHighlight;
|
|
88
|
+
private _updateStatus;
|
|
89
|
+
private _renderResultList;
|
|
90
|
+
private _updateResultListSelection;
|
|
91
|
+
private _hideResultList;
|
|
92
|
+
private _truncate;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=search-overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-overlay.d.ts","sourceRoot":"","sources":["../../src/search/search-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAA;IACrD,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,uBAAuB;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,YAAY;IACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1C,6BAA6B;IAC7B,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IACtD,oBAAoB;IACpB,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB;AAaD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAC,CAA+B;IAGtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAad,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAkBZ,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IA8JjB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IA8HzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -1,2 +1,27 @@
|
|
|
1
1
|
export declare function startAddMode(this: any, models: any): void;
|
|
2
|
+
/** bulk-create 모드 결과 — 사용자가 영역 드래그 완료 시 area, ESC/취소 시 null. */
|
|
3
|
+
export interface BulkCreateResult {
|
|
4
|
+
area: {
|
|
5
|
+
left: number;
|
|
6
|
+
top: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
template: any;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Bulk-create 모드 진입. AddLayer 가 캔버스 위에 드래그 박스 그림. 사용자가 영역을
|
|
14
|
+
* 선택하면 `{area, template}` 로 resolve, ESC/취소 시 null 로 resolve.
|
|
15
|
+
*
|
|
16
|
+
* 내부적으로 'bulkareaselected' / 'addstop' event 의 lifecycle 을 캡슐화 — consumer 가
|
|
17
|
+
* listener 등록/정리 boilerplate 없이 한 줄 `await` 로 처리.
|
|
18
|
+
*
|
|
19
|
+
* @param template 복사 원본 모델. bulkareaselected event payload 와 결과 객체에 그대로 전달.
|
|
20
|
+
* @param options.boxStrokeStyle addbox 의 stroke 색. 기본 'black' (일반 add 와 동일).
|
|
21
|
+
*
|
|
22
|
+
* this should be root-container.
|
|
23
|
+
*/
|
|
24
|
+
export declare function startBulkCreateMode(this: any, template: any, options?: {
|
|
25
|
+
boxStrokeStyle?: string;
|
|
26
|
+
}): Promise<BulkCreateResult | null>;
|
|
2
27
|
//# sourceMappingURL=add-start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD"}
|
|
1
|
+
{"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,QAAQ,EAAE,GAAG,CAAA;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsBlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"AA2JA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYzD"}
|