@pascal-app/core 1.0.6 → 1.0.7
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/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +19 -11
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
- package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
- package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +407 -9
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +7253 -4053
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
- package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
- package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
- package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
- package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +109 -73
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +32 -3
- package/dist/agent-operations/add-fence.d.ts.map +1 -1
- package/dist/agent-operations/add-fence.js +2 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +4 -4
- package/dist/agent-operations/add-object.d.ts +32 -6
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +59 -12
- package/dist/agent-operations/add-wall.d.ts +3 -8
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +31 -8
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +2 -1
- package/dist/agent-operations/asset-catalog.d.ts +63 -0
- package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
- package/dist/agent-operations/asset-catalog.js +182 -0
- package/dist/agent-operations/asset-views.d.ts +4 -2
- package/dist/agent-operations/asset-views.d.ts.map +1 -1
- package/dist/agent-operations/asset-views.js +1 -3
- package/dist/agent-operations/author-scene-checks.d.ts +38 -0
- package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
- package/dist/agent-operations/author-scene-checks.js +266 -0
- package/dist/agent-operations/author-scene.d.ts +54 -20
- package/dist/agent-operations/author-scene.d.ts.map +1 -1
- package/dist/agent-operations/author-scene.js +1164 -196
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
- package/dist/agent-operations/authored-scene-merge.js +61 -3
- package/dist/agent-operations/batch.d.ts +1 -1
- package/dist/agent-operations/batch.d.ts.map +1 -1
- package/dist/agent-operations/batch.js +38 -39
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/ceiling-object-observations.js +5 -4
- package/dist/agent-operations/circulation-geometry.d.ts +14 -0
- package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
- package/dist/agent-operations/circulation-geometry.js +151 -0
- package/dist/agent-operations/circulation-graph.d.ts +72 -0
- package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
- package/dist/agent-operations/circulation-graph.js +713 -0
- package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
- package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
- package/dist/agent-operations/circulation-non-spaces.js +88 -0
- package/dist/agent-operations/circulation-spaces.d.ts +5880 -0
- package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
- package/dist/agent-operations/circulation-spaces.js +368 -0
- package/dist/agent-operations/collections.d.ts.map +1 -1
- package/dist/agent-operations/collections.js +9 -7
- package/dist/agent-operations/corner-window.d.ts.map +1 -1
- package/dist/agent-operations/corner-window.js +2 -4
- package/dist/agent-operations/create-roof.d.ts.map +1 -1
- package/dist/agent-operations/create-roof.js +5 -7
- package/dist/agent-operations/create-room.d.ts +4 -1
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +7 -4
- package/dist/agent-operations/create-stair.js +2 -2
- package/dist/agent-operations/design-brief.d.ts +13 -7
- package/dist/agent-operations/design-brief.d.ts.map +1 -1
- package/dist/agent-operations/design-brief.js +172 -92
- package/dist/agent-operations/door-clearance.d.ts +68 -8
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +127 -20
- package/dist/agent-operations/dress-targets.d.ts +23 -0
- package/dist/agent-operations/dress-targets.d.ts.map +1 -0
- package/dist/agent-operations/dress-targets.js +34 -0
- package/dist/agent-operations/duplicate-node.d.ts +14 -0
- package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
- package/dist/agent-operations/duplicate-node.js +173 -0
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +3 -0
- package/dist/agent-operations/furnish-room.d.ts +2 -0
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +15 -4
- package/dist/agent-operations/furniture-kind.d.ts +28 -1
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
- package/dist/agent-operations/furniture-kind.js +105 -6
- package/dist/agent-operations/ground-reader.d.ts +10 -0
- package/dist/agent-operations/ground-reader.d.ts.map +1 -0
- package/dist/agent-operations/ground-reader.js +25 -0
- package/dist/agent-operations/index.d.ts +118 -12
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +26 -1
- package/dist/agent-operations/item-solids.d.ts +39 -0
- package/dist/agent-operations/item-solids.d.ts.map +1 -0
- package/dist/agent-operations/item-solids.js +128 -0
- package/dist/agent-operations/layout-clearance.d.ts +91 -11
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +280 -73
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
- package/dist/agent-operations/level-height-fill.js +7 -1
- package/dist/agent-operations/level-reads.d.ts +5 -0
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +38 -2
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +2 -4
- package/dist/agent-operations/move-node.d.ts +12 -0
- package/dist/agent-operations/move-node.d.ts.map +1 -0
- package/dist/agent-operations/move-node.js +28 -0
- package/dist/agent-operations/move-plan.d.ts +28 -0
- package/dist/agent-operations/move-plan.d.ts.map +1 -0
- package/dist/agent-operations/move-plan.js +257 -0
- package/dist/agent-operations/node-patch.d.ts.map +1 -1
- package/dist/agent-operations/node-patch.js +15 -0
- package/dist/agent-operations/paint.d.ts +3 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +14 -1
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
- package/dist/agent-operations/photo-elevation.js +2 -1
- package/dist/agent-operations/place-in-room.d.ts.map +1 -1
- package/dist/agent-operations/place-in-room.js +1 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +3 -4
- package/dist/agent-operations/plan-clearance.d.ts +28 -0
- package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
- package/dist/agent-operations/plan-clearance.js +47 -0
- package/dist/agent-operations/plan-geometry.d.ts +2 -0
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +10 -0
- package/dist/agent-operations/project-files.d.ts +10 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -1
- package/dist/agent-operations/reachability.d.ts +41 -0
- package/dist/agent-operations/reachability.d.ts.map +1 -0
- package/dist/agent-operations/reachability.js +199 -0
- package/dist/agent-operations/room-checks.d.ts +60 -0
- package/dist/agent-operations/room-checks.d.ts.map +1 -0
- package/dist/agent-operations/room-checks.js +226 -0
- package/dist/agent-operations/room-faces.d.ts +30 -0
- package/dist/agent-operations/room-faces.d.ts.map +1 -0
- package/dist/agent-operations/room-faces.js +31 -0
- package/dist/agent-operations/room-findings.d.ts +5 -2
- package/dist/agent-operations/room-findings.d.ts.map +1 -1
- package/dist/agent-operations/room-findings.js +30 -0
- package/dist/agent-operations/room-finishes.d.ts +87 -0
- package/dist/agent-operations/room-finishes.d.ts.map +1 -0
- package/dist/agent-operations/room-finishes.js +193 -0
- package/dist/agent-operations/room-floor-script.d.ts +3 -3
- package/dist/agent-operations/room-floor-script.js +3 -3
- package/dist/agent-operations/room-readings.d.ts +90 -0
- package/dist/agent-operations/room-readings.d.ts.map +1 -0
- package/dist/agent-operations/room-readings.js +369 -0
- package/dist/agent-operations/room-tile.d.ts +15 -0
- package/dist/agent-operations/room-tile.d.ts.map +1 -0
- package/dist/agent-operations/room-tile.js +30 -0
- package/dist/agent-operations/room-wet.d.ts +55 -0
- package/dist/agent-operations/room-wet.d.ts.map +1 -0
- package/dist/agent-operations/room-wet.js +203 -0
- package/dist/agent-operations/scene-check-policy.d.ts +5 -0
- package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
- package/dist/agent-operations/scene-check-policy.js +24 -0
- package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.js +31 -0
- package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
- package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
- package/dist/agent-operations/scene-issue-groups.js +71 -0
- package/dist/agent-operations/scene-materials.d.ts +23 -0
- package/dist/agent-operations/scene-materials.d.ts.map +1 -1
- package/dist/agent-operations/scene-materials.js +41 -0
- package/dist/agent-operations/scene-queries.d.ts +1667 -866
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +3 -3
- package/dist/agent-operations/scene-review.d.ts.map +1 -1
- package/dist/agent-operations/scene-review.js +3 -2
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +91 -21
- package/dist/agent-operations/search-assets.d.ts +10 -6
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +37 -22
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
- package/dist/agent-operations/set-checkpoint.js +1 -0
- package/dist/agent-operations/set-ground-level.d.ts +1 -1
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
- package/dist/agent-operations/set-ground-level.js +3 -14
- package/dist/agent-operations/site.js +3 -2
- package/dist/agent-operations/slab-surface-script.d.ts +25 -0
- package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
- package/dist/agent-operations/slab-surface-script.js +60 -0
- package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
- package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
- package/dist/agent-operations/stair-plan-footprint.js +50 -0
- package/dist/agent-operations/types.d.ts +10 -5
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/units.d.ts +26 -0
- package/dist/agent-operations/units.d.ts.map +1 -0
- package/dist/agent-operations/units.js +110 -0
- package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
- package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
- package/dist/agent-operations/unreachable-rooms-check.js +35 -0
- package/dist/agent-operations/usage-checks.d.ts +2 -0
- package/dist/agent-operations/usage-checks.d.ts.map +1 -0
- package/dist/agent-operations/usage-checks.js +12 -0
- package/dist/agent-operations/verify-scene.d.ts +8 -11
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +55 -11
- package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
- package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-defaults.js +229 -0
- package/dist/agent-operations/wall-joins.d.ts +119 -0
- package/dist/agent-operations/wall-joins.d.ts.map +1 -0
- package/dist/agent-operations/wall-joins.js +308 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/wall-object-observations.js +4 -6
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.js +2 -0
- package/dist/agent-operations/wall-type.d.ts +49 -0
- package/dist/agent-operations/wall-type.d.ts.map +1 -0
- package/dist/agent-operations/wall-type.js +31 -0
- package/dist/agent-operations/zone-coverage.d.ts +85 -0
- package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
- package/dist/agent-operations/zone-coverage.js +208 -0
- package/dist/agent-tools/add-object.d.ts +31 -0
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +44 -7
- package/dist/agent-tools/assets.d.ts +4 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +11 -1
- package/dist/agent-tools/author-scene.d.ts +810 -15
- package/dist/agent-tools/author-scene.d.ts.map +1 -1
- package/dist/agent-tools/author-scene.js +275 -34
- package/dist/agent-tools/batch.d.ts +1 -1
- package/dist/agent-tools/batch.d.ts.map +1 -1
- package/dist/agent-tools/batch.js +5 -1
- package/dist/agent-tools/checkpoints.js +1 -1
- package/dist/agent-tools/columns.d.ts +14 -0
- package/dist/agent-tools/columns.d.ts.map +1 -1
- package/dist/agent-tools/columns.js +14 -2
- package/dist/agent-tools/contract.d.ts +10 -0
- package/dist/agent-tools/contract.d.ts.map +1 -1
- package/dist/agent-tools/contract.js +5 -1
- package/dist/agent-tools/corner-window.d.ts +1 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -1
- package/dist/agent-tools/corner-window.js +1 -1
- package/dist/agent-tools/create-room.d.ts +85 -0
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +8 -1
- package/dist/agent-tools/design-brief.d.ts +513 -7
- package/dist/agent-tools/design-brief.d.ts.map +1 -1
- package/dist/agent-tools/design-brief.js +192 -14
- package/dist/agent-tools/designs.js +1 -1
- package/dist/agent-tools/find-by-type.js +1 -1
- package/dist/agent-tools/index.d.ts +658 -10
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +9 -1
- package/dist/agent-tools/levels.js +4 -4
- package/dist/agent-tools/move-duplicate.d.ts +65 -0
- package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
- package/dist/agent-tools/move-duplicate.js +68 -0
- package/dist/agent-tools/paint.d.ts +6 -0
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +7 -3
- package/dist/agent-tools/photo-elevation.js +1 -1
- package/dist/agent-tools/project-files.d.ts +2 -2
- package/dist/agent-tools/project-files.d.ts.map +1 -1
- package/dist/agent-tools/project-files.js +1 -1
- package/dist/agent-tools/refusal.d.ts +9 -1
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/refusal.js +5 -1
- package/dist/agent-tools/roofs.js +1 -1
- package/dist/agent-tools/room-structure.d.ts +60 -0
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +20 -1
- package/dist/agent-tools/search-materials.d.ts +1 -0
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/site.js +1 -1
- package/dist/agent-tools/stairs.js +1 -1
- package/dist/agent-tools/units.d.ts +84 -0
- package/dist/agent-tools/units.d.ts.map +1 -0
- package/dist/agent-tools/units.js +54 -0
- package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
- package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
- package/dist/agent-tools/verify-scene-usage.js +146 -0
- package/dist/agent-tools/verify-scene.d.ts +12 -1
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +183 -3
- package/dist/agent-tools/view-scene.d.ts +3 -0
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +4 -1
- package/dist/agent-tools/wall-openings.d.ts +121 -2
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +123 -18
- package/dist/agent-tools/walls.d.ts +30 -0
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +54 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +340 -195
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
- package/dist/building/code-profile.d.ts +231 -0
- package/dist/building/code-profile.d.ts.map +1 -0
- package/dist/building/code-profile.js +208 -0
- package/dist/building/corner-window.d.ts +2 -2
- package/dist/building/corner-window.d.ts.map +1 -1
- package/dist/building/corner-window.js +11 -2
- package/dist/building/door-types.d.ts +1 -0
- package/dist/building/door-types.d.ts.map +1 -1
- package/dist/building/door-types.js +2 -0
- package/dist/building/floor-item-fit.d.ts.map +1 -1
- package/dist/building/floor-item-fit.js +2 -4
- package/dist/building/ground-level.d.ts +1 -3
- package/dist/building/ground-level.d.ts.map +1 -1
- package/dist/building/ground-level.js +3 -5
- package/dist/building/index.d.ts +2 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +2 -0
- package/dist/building/level-duplication.d.ts +5951 -4351
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-insertion.d.ts +1 -1
- package/dist/building/level-wall-copy.d.ts +24 -0
- package/dist/building/level-wall-copy.d.ts.map +1 -0
- package/dist/building/level-wall-copy.js +53 -0
- package/dist/building/merge-windows.d.ts.map +1 -1
- package/dist/building/merge-windows.js +1 -0
- package/dist/building/opening-style-presets.d.ts +2 -0
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/opening-style-presets.js +26 -5
- package/dist/building/room-use.d.ts +26 -0
- package/dist/building/room-use.d.ts.map +1 -0
- package/dist/building/room-use.js +102 -0
- package/dist/building/wall-openings.d.ts +115 -7
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +121 -29
- package/dist/building/window-types.d.ts +1 -0
- package/dist/building/window-types.d.ts.map +1 -1
- package/dist/building/window-types.js +3 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
- package/dist/commands/structure/attached-walls.d.ts +16 -0
- package/dist/commands/structure/attached-walls.d.ts.map +1 -0
- package/dist/commands/structure/attached-walls.js +53 -0
- package/dist/commands/structure/index.d.ts +3 -0
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +3 -0
- package/dist/commands/structure/move-separators.d.ts +62 -0
- package/dist/commands/structure/move-separators.d.ts.map +1 -0
- package/dist/commands/structure/move-separators.js +346 -0
- package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
- package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
- package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
- package/dist/commands/structure/set-wall-geometry.js +44 -11
- package/dist/commands/structure/set-zone-intent.d.ts +26 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +107 -2
- package/dist/commands/structure/shared.d.ts +888 -88
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/wall-overlap.d.ts +45 -0
- package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
- package/dist/commands/structure/wall-overlap.js +289 -0
- package/dist/commands/structure/zone-wall-merge.d.ts +3326 -2370
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-discovery.d.ts +2 -2
- package/dist/contracts/reference-discovery.d.ts.map +1 -1
- package/dist/contracts/reference-discovery.js +5 -3
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +75 -24
- package/dist/events/bus.d.ts +15 -2
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
- package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +56 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +177 -27
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1631 -831
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +24 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
- package/dist/i18n/format.d.ts +41 -0
- package/dist/i18n/format.d.ts.map +1 -0
- package/dist/i18n/format.js +124 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/registry.d.ts +78 -0
- package/dist/i18n/registry.d.ts.map +1 -0
- package/dist/i18n/registry.js +252 -0
- package/dist/i18n/use-translate.d.ts +16 -0
- package/dist/i18n/use-translate.d.ts.map +1 -0
- package/dist/i18n/use-translate.js +23 -0
- package/dist/index.d.ts +32 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -15
- package/dist/lib/__fixtures__/mezzanine.d.ts +6840 -4169
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +2128 -1328
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/beam.d.ts +137 -0
- package/dist/lib/beam.d.ts.map +1 -0
- package/dist/lib/beam.js +297 -0
- package/dist/lib/below-grade-footprints.d.ts +13 -5
- package/dist/lib/below-grade-footprints.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.js +53 -10
- package/dist/lib/build-up.d.ts +89 -0
- package/dist/lib/build-up.d.ts.map +1 -0
- package/dist/lib/build-up.js +216 -0
- package/dist/lib/corner-pair.d.ts +205 -4
- package/dist/lib/corner-pair.d.ts.map +1 -1
- package/dist/lib/deck-boards.d.ts +80 -0
- package/dist/lib/deck-boards.d.ts.map +1 -0
- package/dist/lib/deck-boards.js +184 -0
- package/dist/lib/deck-framing.d.ts +150 -0
- package/dist/lib/deck-framing.d.ts.map +1 -0
- package/dist/lib/deck-framing.js +515 -0
- package/dist/lib/deepest-drawn.d.ts +3 -6
- package/dist/lib/deepest-drawn.d.ts.map +1 -1
- package/dist/lib/deepest-drawn.js +4 -8
- package/dist/lib/door-opening.d.ts +19 -0
- package/dist/lib/door-opening.d.ts.map +1 -0
- package/dist/lib/door-opening.js +27 -0
- package/dist/lib/door-operation.d.ts +2 -0
- package/dist/lib/door-operation.d.ts.map +1 -1
- package/dist/lib/door-operation.js +4 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
- package/dist/lib/exterior-wall-loops.js +2 -1
- package/dist/lib/finish-script.d.ts +5 -5
- package/dist/lib/finish-script.d.ts.map +1 -1
- package/dist/lib/finish-script.js +12 -5
- package/dist/lib/floor-footprint-name.d.ts +17 -0
- package/dist/lib/floor-footprint-name.d.ts.map +1 -1
- package/dist/lib/floor-footprint-name.js +17 -4
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +60 -35
- package/dist/lib/floor-opening-footprints.d.ts +1 -1
- package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
- package/dist/lib/floor-opening-footprints.js +10 -4
- package/dist/lib/floor-plate-paint.d.ts +2 -0
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +12 -0
- package/dist/lib/floor-plates.d.ts +250 -0
- package/dist/lib/floor-plates.d.ts.map +1 -1
- package/dist/lib/floor-plates.js +43 -4
- package/dist/lib/floor-script.d.ts +35 -6
- package/dist/lib/floor-script.d.ts.map +1 -1
- package/dist/lib/floor-script.js +96 -16
- package/dist/lib/foundation-construction.d.ts +4 -13
- package/dist/lib/foundation-construction.d.ts.map +1 -1
- package/dist/lib/foundation-construction.js +4 -14
- package/dist/lib/foundation-standard.d.ts +2 -3
- package/dist/lib/foundation-standard.d.ts.map +1 -1
- package/dist/lib/foundation-standard.js +2 -3
- package/dist/lib/foundation-wall.d.ts +1 -2
- package/dist/lib/foundation-wall.d.ts.map +1 -1
- package/dist/lib/foundation-wall.js +1 -2
- package/dist/lib/framing-post.d.ts +91 -0
- package/dist/lib/framing-post.d.ts.map +1 -0
- package/dist/lib/framing-post.js +174 -0
- package/dist/lib/geometry-script-node.d.ts +11 -0
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +35 -0
- package/dist/lib/grade-standing.d.ts +16 -2
- package/dist/lib/grade-standing.d.ts.map +1 -1
- package/dist/lib/grade-standing.js +129 -9
- package/dist/lib/ground-seat.d.ts +2 -22
- package/dist/lib/ground-seat.d.ts.map +1 -1
- package/dist/lib/ground-seat.js +2 -17
- package/dist/lib/ground-window.d.ts +2 -1
- package/dist/lib/ground-window.d.ts.map +1 -1
- package/dist/lib/ground-window.js +5 -2
- package/dist/lib/level-footprints.d.ts +2 -0
- package/dist/lib/level-footprints.d.ts.map +1 -1
- package/dist/lib/level-footprints.js +7 -0
- package/dist/lib/opening-casing.d.ts +67 -0
- package/dist/lib/opening-casing.d.ts.map +1 -0
- package/dist/lib/opening-casing.js +131 -0
- package/dist/lib/opening-exterior-face.d.ts +6 -0
- package/dist/lib/opening-exterior-face.d.ts.map +1 -0
- package/dist/lib/opening-exterior-face.js +15 -0
- package/dist/lib/opening-floor-datum.d.ts +11 -5
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +38 -6
- package/dist/lib/opening-frame-depth.d.ts +18 -0
- package/dist/lib/opening-frame-depth.d.ts.map +1 -0
- package/dist/lib/opening-frame-depth.js +22 -0
- package/dist/lib/outdoor-room.d.ts +32 -0
- package/dist/lib/outdoor-room.d.ts.map +1 -0
- package/dist/lib/outdoor-room.js +66 -0
- package/dist/lib/plate-surface.d.ts +8 -0
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +53 -3
- package/dist/lib/porch-framing-sync.d.ts +46 -0
- package/dist/lib/porch-framing-sync.d.ts.map +1 -0
- package/dist/lib/porch-framing-sync.js +206 -0
- package/dist/lib/porch-framing.d.ts +44 -0
- package/dist/lib/porch-framing.d.ts.map +1 -0
- package/dist/lib/porch-framing.js +159 -0
- package/dist/lib/railing-rooms.d.ts +13 -0
- package/dist/lib/railing-rooms.d.ts.map +1 -0
- package/dist/lib/railing-rooms.js +37 -0
- package/dist/lib/roof-eave.d.ts +135 -0
- package/dist/lib/roof-eave.d.ts.map +1 -0
- package/dist/lib/roof-eave.js +186 -0
- package/dist/lib/room-floor-plate.d.ts +3 -1
- package/dist/lib/room-floor-plate.d.ts.map +1 -1
- package/dist/lib/room-floor-plate.js +7 -0
- package/dist/lib/space-detection.d.ts +13 -0
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +112 -24
- package/dist/lib/structure-kernel.d.ts +22 -9
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +146 -28
- package/dist/lib/structure-reconcile.d.ts +1 -1
- package/dist/lib/structure-reconcile.d.ts.map +1 -1
- package/dist/lib/structure-reconcile.js +7 -4
- package/dist/lib/surface-intent.d.ts +10 -0
- package/dist/lib/surface-intent.d.ts.map +1 -0
- package/dist/lib/surface-intent.js +18 -0
- package/dist/lib/terrain-source.d.ts.map +1 -1
- package/dist/lib/terrain-source.js +2 -1
- package/dist/lib/wall-face-script.d.ts.map +1 -1
- package/dist/lib/wall-face-script.js +5 -2
- package/dist/material-kinds.d.ts +1 -1
- package/dist/material-kinds.d.ts.map +1 -1
- package/dist/material-kinds.js +1 -0
- package/dist/material-library.d.ts +15 -0
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +458 -59
- package/dist/node-slots/door.d.ts +3 -4
- package/dist/node-slots/door.d.ts.map +1 -1
- package/dist/node-slots/door.js +4 -3
- package/dist/node-slots/wall.d.ts.map +1 -1
- package/dist/node-slots/wall.js +21 -3
- package/dist/node-slots/window.d.ts +2 -2
- package/dist/node-slots/window.d.ts.map +1 -1
- package/dist/node-slots/window.js +6 -1
- package/dist/procedural-items/design.d.ts +8 -0
- package/dist/procedural-items/design.d.ts.map +1 -1
- package/dist/procedural-items/design.js +169 -21
- package/dist/procedural-items/motion-controller.d.ts +2 -0
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.js +2 -1
- package/dist/registry/index.d.ts +2 -2
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/mechanism.d.ts +4 -1
- package/dist/registry/mechanism.d.ts.map +1 -1
- package/dist/registry/mechanism.js +10 -0
- package/dist/registry/types.d.ts +65 -23
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
- package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
- package/dist/runtime/__fixtures__/live-scene.js +64 -0
- package/dist/runtime/apply.d.ts +42 -0
- package/dist/runtime/apply.d.ts.map +1 -0
- package/dist/runtime/apply.js +274 -0
- package/dist/runtime/dependencies.d.ts +97 -0
- package/dist/runtime/dependencies.d.ts.map +1 -0
- package/dist/runtime/dependencies.js +42 -0
- package/dist/runtime/ids.d.ts +11 -0
- package/dist/runtime/ids.d.ts.map +1 -0
- package/dist/runtime/ids.js +80 -0
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +11 -0
- package/dist/runtime/node-queries.d.ts +16 -0
- package/dist/runtime/node-queries.d.ts.map +1 -0
- package/dist/runtime/node-queries.js +30 -0
- package/dist/runtime/patch.d.ts +26 -0
- package/dist/runtime/patch.d.ts.map +1 -0
- package/dist/runtime/patch.js +165 -0
- package/dist/runtime/reader.d.ts +104 -0
- package/dist/runtime/reader.d.ts.map +1 -0
- package/dist/runtime/reader.js +455 -0
- package/dist/runtime/scene-runtime.d.ts +112 -0
- package/dist/runtime/scene-runtime.d.ts.map +1 -0
- package/dist/runtime/scene-runtime.js +302 -0
- package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.js +1 -0
- package/dist/schema/assembly.d.ts +3 -0
- package/dist/schema/assembly.d.ts.map +1 -1
- package/dist/schema/assembly.js +13 -0
- package/dist/schema/asset-url.d.ts +37 -2
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/asset-url.js +80 -11
- package/dist/schema/base.d.ts +8 -0
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +19 -1
- package/dist/schema/build-up.d.ts +247 -0
- package/dist/schema/build-up.d.ts.map +1 -0
- package/dist/schema/build-up.js +83 -0
- package/dist/schema/geometry-source.d.ts +80 -0
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +38 -0
- package/dist/schema/index.d.ts +12 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +12 -6
- package/dist/schema/material.d.ts +5 -0
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +6 -0
- package/dist/schema/nodes/beam.d.ts +264 -0
- package/dist/schema/nodes/beam.d.ts.map +1 -0
- package/dist/schema/nodes/beam.js +139 -0
- package/dist/schema/nodes/box-vent.d.ts +5 -0
- package/dist/schema/nodes/box-vent.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.d.ts +10 -0
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.d.ts +48 -0
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +5 -0
- package/dist/schema/nodes/chimney.d.ts +10 -0
- package/dist/schema/nodes/chimney.d.ts.map +1 -1
- package/dist/schema/nodes/column.d.ts +42 -0
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +11 -1
- package/dist/schema/nodes/cupola.d.ts +5 -0
- package/dist/schema/nodes/cupola.d.ts.map +1 -1
- package/dist/schema/nodes/door.d.ts +54 -3
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +41 -7
- package/dist/schema/nodes/dormer.d.ts +20 -0
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +5 -0
- package/dist/schema/nodes/downspout.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.d.ts +5 -0
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
- package/dist/schema/nodes/fence.d.ts +5 -0
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/guide.d.ts +14 -0
- package/dist/schema/nodes/guide.d.ts.map +1 -1
- package/dist/schema/nodes/guide.js +2 -0
- package/dist/schema/nodes/gutter.d.ts +5 -0
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/item.d.ts +71 -0
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +5 -1
- package/dist/schema/nodes/level.d.ts +1 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.d.ts +13 -0
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.js +8 -1
- package/dist/schema/nodes/railing-wall.d.ts +112 -0
- package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
- package/dist/schema/nodes/railing-wall.js +160 -0
- package/dist/schema/nodes/ridge-vent.d.ts +5 -0
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.d.ts +224 -1
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +57 -10
- package/dist/schema/nodes/roof-types.d.ts +11 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -1
- package/dist/schema/nodes/roof-types.js +6 -0
- package/dist/schema/nodes/roof.d.ts +60 -0
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +4 -0
- package/dist/schema/nodes/shelf.d.ts +5 -0
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/site.d.ts +80 -0
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -0
- package/dist/schema/nodes/skylight.d.ts +10 -0
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +137 -0
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +3 -0
- package/dist/schema/nodes/solar-panel.d.ts +10 -0
- package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
- package/dist/schema/nodes/stair-segment.d.ts +5 -0
- package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
- package/dist/schema/nodes/stair-structure.d.ts +69 -0
- package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
- package/dist/schema/nodes/stair-structure.js +39 -0
- package/dist/schema/nodes/stair.d.ts +46 -0
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +3 -0
- package/dist/schema/nodes/turbine-vent.d.ts +5 -0
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +135 -2
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +42 -6
- package/dist/schema/nodes/window.d.ts +66 -1
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +50 -5
- package/dist/schema/nodes/zone.d.ts +68 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +32 -0
- package/dist/schema/scene-material.d.ts +5 -0
- package/dist/schema/scene-material.d.ts.map +1 -1
- package/dist/schema/types.d.ts +1079 -4
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +2 -0
- package/dist/schema/wall-type.d.ts +95 -0
- package/dist/schema/wall-type.d.ts.map +1 -0
- package/dist/schema/wall-type.js +32 -0
- package/dist/services/roof-bearing.d.ts.map +1 -1
- package/dist/services/roof-bearing.js +6 -3
- package/dist/services/roof-level.d.ts.map +1 -1
- package/dist/services/roof-level.js +4 -3
- package/dist/services/roof-move.d.ts.map +1 -1
- package/dist/services/roof-move.js +13 -7
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +13 -8
- package/dist/spatial/usage-field/beds.d.ts +51 -0
- package/dist/spatial/usage-field/beds.d.ts.map +1 -0
- package/dist/spatial/usage-field/beds.js +346 -0
- package/dist/spatial/usage-field/blocked.d.ts +28 -0
- package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
- package/dist/spatial/usage-field/blocked.js +185 -0
- package/dist/spatial/usage-field/boxes.d.ts +17 -0
- package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
- package/dist/spatial/usage-field/boxes.js +82 -0
- package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
- package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
- package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
- package/dist/spatial/usage-field/catalogue.d.ts +6 -0
- package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
- package/dist/spatial/usage-field/catalogue.js +11 -0
- package/dist/spatial/usage-field/clash.d.ts +40 -0
- package/dist/spatial/usage-field/clash.d.ts.map +1 -0
- package/dist/spatial/usage-field/clash.js +187 -0
- package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
- package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
- package/dist/spatial/usage-field/door-stairs.js +129 -0
- package/dist/spatial/usage-field/entry-way.d.ts +14 -0
- package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
- package/dist/spatial/usage-field/entry-way.js +219 -0
- package/dist/spatial/usage-field/fences.d.ts +18 -0
- package/dist/spatial/usage-field/fences.d.ts.map +1 -0
- package/dist/spatial/usage-field/fences.js +253 -0
- package/dist/spatial/usage-field/field.d.ts +44 -0
- package/dist/spatial/usage-field/field.d.ts.map +1 -0
- package/dist/spatial/usage-field/field.js +145 -0
- package/dist/spatial/usage-field/findings.d.ts +76 -0
- package/dist/spatial/usage-field/findings.d.ts.map +1 -0
- package/dist/spatial/usage-field/findings.js +252 -0
- package/dist/spatial/usage-field/fixtures.d.ts +18 -0
- package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
- package/dist/spatial/usage-field/fixtures.js +160 -0
- package/dist/spatial/usage-field/flag.d.ts +10 -0
- package/dist/spatial/usage-field/flag.d.ts.map +1 -0
- package/dist/spatial/usage-field/flag.js +12 -0
- package/dist/spatial/usage-field/floors.d.ts +13 -0
- package/dist/spatial/usage-field/floors.d.ts.map +1 -0
- package/dist/spatial/usage-field/floors.js +36 -0
- package/dist/spatial/usage-field/index.d.ts +7 -0
- package/dist/spatial/usage-field/index.d.ts.map +1 -0
- package/dist/spatial/usage-field/index.js +5 -0
- package/dist/spatial/usage-field/items.d.ts +38 -0
- package/dist/spatial/usage-field/items.d.ts.map +1 -0
- package/dist/spatial/usage-field/items.js +261 -0
- package/dist/spatial/usage-field/labels.d.ts +8 -0
- package/dist/spatial/usage-field/labels.d.ts.map +1 -0
- package/dist/spatial/usage-field/labels.js +14 -0
- package/dist/spatial/usage-field/level-field.d.ts +47 -0
- package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
- package/dist/spatial/usage-field/level-field.js +96 -0
- package/dist/spatial/usage-field/measure.d.ts +324 -0
- package/dist/spatial/usage-field/measure.d.ts.map +1 -0
- package/dist/spatial/usage-field/measure.js +458 -0
- package/dist/spatial/usage-field/obstacles.d.ts +63 -0
- package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
- package/dist/spatial/usage-field/obstacles.js +215 -0
- package/dist/spatial/usage-field/openings.d.ts +12 -0
- package/dist/spatial/usage-field/openings.d.ts.map +1 -0
- package/dist/spatial/usage-field/openings.js +162 -0
- package/dist/spatial/usage-field/path.d.ts +48 -0
- package/dist/spatial/usage-field/path.d.ts.map +1 -0
- package/dist/spatial/usage-field/path.js +354 -0
- package/dist/spatial/usage-field/pieces.d.ts +27 -0
- package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
- package/dist/spatial/usage-field/pieces.js +89 -0
- package/dist/spatial/usage-field/shapes.d.ts +18 -0
- package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
- package/dist/spatial/usage-field/shapes.js +92 -0
- package/dist/spatial/usage-field/stairs.d.ts +23 -0
- package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
- package/dist/spatial/usage-field/stairs.js +163 -0
- package/dist/spatial/usage-field/support.d.ts +24 -0
- package/dist/spatial/usage-field/support.d.ts.map +1 -0
- package/dist/spatial/usage-field/support.js +46 -0
- package/dist/spatial/usage-field/swings.d.ts +846 -0
- package/dist/spatial/usage-field/swings.d.ts.map +1 -0
- package/dist/spatial/usage-field/swings.js +427 -0
- package/dist/spatial/usage-field/types.d.ts +65 -0
- package/dist/spatial/usage-field/types.d.ts.map +1 -0
- package/dist/spatial/usage-field/types.js +1 -0
- package/dist/spatial/usage-field/walls.d.ts +1057 -0
- package/dist/spatial/usage-field/walls.d.ts.map +1 -0
- package/dist/spatial/usage-field/walls.js +166 -0
- package/dist/spatial/usage-field/way-in.d.ts +26 -0
- package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
- package/dist/spatial/usage-field/way-in.js +113 -0
- package/dist/store/actions/node-actions.d.ts +2124 -1322
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +42 -16
- package/dist/store/derived-node-guard.d.ts +10 -2
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/derived-node-guard.js +31 -11
- package/dist/store/document-settling.d.ts +9 -0
- package/dist/store/document-settling.d.ts.map +1 -0
- package/dist/store/document-settling.js +22 -0
- package/dist/store/history-control.d.ts +19 -10
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +176 -127
- package/dist/store/history-drafts.d.ts.map +1 -1
- package/dist/store/history-drafts.js +21 -17
- package/dist/store/live-previews.d.ts +9 -0
- package/dist/store/live-previews.d.ts.map +1 -0
- package/dist/store/live-previews.js +19 -0
- package/dist/store/scene-annotations.d.ts +6751 -5151
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-environment.d.ts +33 -0
- package/dist/store/scene-environment.d.ts.map +1 -0
- package/dist/store/scene-environment.js +54 -0
- package/dist/store/scene-hydration.d.ts.map +1 -1
- package/dist/store/scene-hydration.js +41 -30
- package/dist/store/use-interactive.d.ts +9 -3
- package/dist/store/use-interactive.d.ts.map +1 -1
- package/dist/store/use-interactive.js +43 -11
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-node-overrides.js +3 -0
- package/dist/store/use-scene.d.ts +25 -0
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +408 -336
- package/dist/systems/document-reconcile.d.ts +40 -0
- package/dist/systems/document-reconcile.d.ts.map +1 -0
- package/dist/systems/document-reconcile.js +159 -0
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-system.js +9 -24
- package/dist/systems/fence/guard-layout.d.ts +69 -0
- package/dist/systems/fence/guard-layout.d.ts.map +1 -0
- package/dist/systems/fence/guard-layout.js +194 -0
- package/dist/systems/owned-floor-openings.d.ts +13 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +58 -2
- package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
- package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/reconcile-owned-floor-openings.js +4 -4
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +8 -26
- package/dist/systems/roof/roof-elevation.d.ts +16 -1
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +85 -4
- package/dist/systems/roof/roof-footprint.d.ts +42 -1
- package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
- package/dist/systems/roof/roof-footprint.js +160 -4
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +3163 -1934
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +2495 -1249
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/stair/stair-clearance.d.ts +7 -0
- package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
- package/dist/systems/stair/stair-clearance.js +31 -11
- package/dist/systems/stair/stair-construction.d.ts +8 -3
- package/dist/systems/stair/stair-construction.d.ts.map +1 -1
- package/dist/systems/stair/stair-construction.js +55 -4
- package/dist/systems/stair/stair-opening-preview.d.ts +889 -89
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +18 -34
- package/dist/systems/stair/stair-presets.d.ts +36 -0
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +3 -2
- package/dist/systems/stair/stair-rise.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise.js +6 -0
- package/dist/systems/stair/stair-sizing.d.ts +42 -11
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/stair/stair-sizing.js +10 -1
- package/dist/systems/stair/stair-structure.d.ts +277 -0
- package/dist/systems/stair/stair-structure.d.ts.map +1 -0
- package/dist/systems/stair/stair-structure.js +496 -0
- package/dist/systems/wall/wall-assembly.d.ts +84 -6
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +204 -5
- package/dist/systems/wall/wall-finish.d.ts +38 -2
- package/dist/systems/wall/wall-finish.d.ts.map +1 -1
- package/dist/systems/wall/wall-finish.js +70 -2
- package/dist/systems/wall/wall-footprint.js +2 -2
- package/dist/systems/wall/wall-merge.d.ts.map +1 -1
- package/dist/systems/wall/wall-merge.js +28 -7
- package/dist/systems/wall/wall-mitering.d.ts +1 -0
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +152 -52
- package/dist/systems/wall/wall-move.d.ts +23 -6
- package/dist/systems/wall/wall-move.d.ts.map +1 -1
- package/dist/systems/wall/wall-move.js +65 -0
- package/dist/systems/wall/wall-top.d.ts +2 -2
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +6 -1
- package/dist/systems/wall/wall-topology.d.ts +32 -1
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +118 -10
- package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
- package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim-profiles.js +191 -0
- package/dist/utils/ensure-scene-openings.d.ts +6523 -4923
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +5 -0
- package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.d.ts +1930 -1130
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/owned-floor-opening-migration.d.ts +888 -88
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +1930 -1130
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/structure-id.js +4 -0
- package/package.json +22 -5
- package/dist/lib/generic-foundation.d.ts +0 -40
- package/dist/lib/generic-foundation.d.ts.map +0 -1
- package/dist/lib/generic-foundation.js +0 -200
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SceneNodes } from './types.js';
|
|
2
|
+
import { type FloorUnclaimedIssue, type ZonesOverlapIssue } from './zone-coverage.js';
|
|
2
3
|
/** A space the walls and separators enclose, where a finding about it places it. */
|
|
3
4
|
type SpacePlace = {
|
|
4
5
|
levelId: string;
|
|
@@ -11,14 +12,16 @@ type SpacePlace = {
|
|
|
11
12
|
/**
|
|
12
13
|
* A level's rooms against the spaces its walls and separators enclose (the editor's detected
|
|
13
14
|
* spaces): a space no zone covers, a space several zones split, a room the walls do not close, a
|
|
14
|
-
* room with no name.
|
|
15
|
+
* room with no name, two rooms on the same floor, floor in a covered space that no zone claims.
|
|
15
16
|
*/
|
|
16
17
|
export type RoomFinding = ({
|
|
17
18
|
type: 'space_no_room';
|
|
18
19
|
message: string;
|
|
20
|
+
severity?: undefined;
|
|
19
21
|
} & SpacePlace) | ({
|
|
20
22
|
type: 'space_many_rooms';
|
|
21
23
|
message: string;
|
|
24
|
+
severity?: undefined;
|
|
22
25
|
zoneIds: string[];
|
|
23
26
|
} & SpacePlace) | {
|
|
24
27
|
type: 'room_not_enclosed';
|
|
@@ -33,7 +36,7 @@ export type RoomFinding = ({
|
|
|
33
36
|
severity: 'info';
|
|
34
37
|
levelId: string;
|
|
35
38
|
zoneId: string;
|
|
36
|
-
};
|
|
39
|
+
} | ZonesOverlapIssue | FloorUnclaimedIssue;
|
|
37
40
|
/**
|
|
38
41
|
* A room is a zone with `spaceRole: 'room'`, or a generic one walls of a room's height bound along
|
|
39
42
|
* most of its outline, which may be a room drawn before its last wall (no reconcile could adopt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-findings.d.ts","sourceRoot":"","sources":["../../src/agent-operations/room-findings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"room-findings.d.ts","sourceRoot":"","sources":["../../src/agent-operations/room-findings.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EACL,KAAK,mBAAmB,EAGxB,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AAExB,oFAAoF;AACpF,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,CAAC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,UAAU,CAAC,GAC/E,CAAC;IACC,IAAI,EAAE,kBAAkB,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,GAAG,UAAU,CAAC,GACf;IACE,IAAI,EAAE,mBAAmB,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5F,iBAAiB,GACjB,mBAAmB,CAAA;AA6EvB;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAmH3C"}
|
|
@@ -3,6 +3,8 @@ import { polygonInteriorPoint } from '../lib/polygon-label.js';
|
|
|
3
3
|
import { distanceToSegment } from '../lib/room-topology-index.js';
|
|
4
4
|
import { detectSpacesForLevel } from '../lib/space-detection.js';
|
|
5
5
|
import { nodesOnLevel } from './scene-queries.js';
|
|
6
|
+
import { stairFootprintPolygons } from './stair-plan-footprint.js';
|
|
7
|
+
import { floorUnclaimedIssues, wallBodies, zonesOverlapIssues, } from './zone-coverage.js';
|
|
6
8
|
/** No name, or the bare word an older scene or a blank name leaves: "Room", "Zone". */
|
|
7
9
|
const PLACEHOLDER_NAME = /^\s*(room|zone)?\s*$/i;
|
|
8
10
|
/** A space is covered, a room enclosed, a zone in a space, and a zone walled like a room, past half. */
|
|
@@ -82,12 +84,18 @@ export function roomFindings(nodes, levelId, levelName) {
|
|
|
82
84
|
const roomWalls = walls.filter((wall) => (wall.height ?? ROOM_WALL_HEIGHT) >= ROOM_WALL_HEIGHT);
|
|
83
85
|
const rooms = zones.map((zone) => zone.spaceRole === 'room' || walled(zone, roomWalls) >= HALF);
|
|
84
86
|
const issues = [];
|
|
87
|
+
/** The rooms each `space_many_rooms` names, which `zones_overlap` leaves to it. */
|
|
88
|
+
const splitSpaces = [];
|
|
89
|
+
/** The spaces zones cover past half: floor left over in them is a finding, a bare space is `space_no_room`. */
|
|
90
|
+
const coveredSpaces = [];
|
|
85
91
|
spaces.forEach((space, index) => {
|
|
86
92
|
const shape = spaceShapes[index];
|
|
87
93
|
// A mezzanine stands over its room, and a zone no room (an analysis area) lies in it: neither
|
|
88
94
|
// splits the space.
|
|
89
95
|
const inside = zones.filter((zone, z) => rooms[z] && zone.floor?.support !== 'open' && covered(zoneShapes[z], [shape]) >= HALF);
|
|
90
96
|
const noRoom = covered(shape, zoneShapes) < HALF;
|
|
97
|
+
if (!noRoom)
|
|
98
|
+
coveredSpaces.push(space);
|
|
91
99
|
if (!noRoom && inside.length < 2)
|
|
92
100
|
return;
|
|
93
101
|
const spaceArea = round(shape.area);
|
|
@@ -98,6 +106,8 @@ export function roomFindings(nodes, levelId, levelName) {
|
|
|
98
106
|
at: [x, z],
|
|
99
107
|
wallIds: space.wallIds,
|
|
100
108
|
};
|
|
109
|
+
if (!noRoom)
|
|
110
|
+
splitSpaces.push(new Set(inside.map((zone) => zone.id)));
|
|
101
111
|
const where = `On ${levelName}, walls ${space.wallIds.join(', ')} enclose a ${spaceArea.toFixed(1)} m² space at (${x.toFixed(2)}, ${z.toFixed(2)})`;
|
|
102
112
|
issues.push(noRoom
|
|
103
113
|
? { type: 'space_no_room', message: `${where} with no room over it.`, ...place }
|
|
@@ -139,5 +149,25 @@ export function roomFindings(nodes, levelId, levelName) {
|
|
|
139
149
|
zoneId: zone.id,
|
|
140
150
|
});
|
|
141
151
|
});
|
|
152
|
+
const floored = zones.filter((zone, index) => rooms[index] && zone.floor?.support !== 'open' && zone.hasFloor !== false);
|
|
153
|
+
// walls whose bodies cannot be read leave the floor unmeasured: neither rule says anything on this level
|
|
154
|
+
const bodies = wallBodies(walls);
|
|
155
|
+
if (bodies)
|
|
156
|
+
issues.push(...zonesOverlapIssues({
|
|
157
|
+
levelId,
|
|
158
|
+
levelName,
|
|
159
|
+
rooms: floored,
|
|
160
|
+
bodies,
|
|
161
|
+
skip: (a, b) => splitSpaces.some((ids) => ids.has(a.id) && ids.has(b.id)),
|
|
162
|
+
}), ...floorUnclaimedIssues({
|
|
163
|
+
levelId,
|
|
164
|
+
levelName,
|
|
165
|
+
spaces: coveredSpaces,
|
|
166
|
+
zones,
|
|
167
|
+
bodies,
|
|
168
|
+
stairs: onLevel
|
|
169
|
+
.filter((node) => node.type === 'stair')
|
|
170
|
+
.flatMap((stair) => stairFootprintPolygons(nodes, stair)),
|
|
171
|
+
}));
|
|
142
172
|
return { spaces: spaces.length, issues };
|
|
143
173
|
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { AnyNode, SceneMaterial, WallFace, WallNode, ZoneNode } from '../schema/index.js';
|
|
2
|
+
import type { SceneNodes } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* What the rooms of a level show, read from the scene: the finish of each room's floor, of the
|
|
5
|
+
* wall faces that look into it and of its ceiling, and which rooms carry each finish. Pure facts
|
|
6
|
+
* for the write tools' results and the reads, as the renderer resolves them:
|
|
7
|
+
*
|
|
8
|
+
* - a floor shows the room's painted parts over the room's own `floor.finish` over its floor
|
|
9
|
+
* plate's own surface (a slot older scenes carry: `paint` does not write a plate rooms derive);
|
|
10
|
+
* - a wall face shows its painted parts over the room's override for that face over the room's
|
|
11
|
+
* `wallMaterial` over the wall's own finish (what `paint` writes on the wall);
|
|
12
|
+
* - a ceiling shows the room's painted parts over the ceiling's own surface.
|
|
13
|
+
*
|
|
14
|
+
* The painted parts of a floor and a ceiling are named apart, never folded into the finish a room
|
|
15
|
+
* shows as a whole; the painted parts of a wall face (`faceRegions`) are not read here. Nothing
|
|
16
|
+
* written reads `default`, as `paint` says it.
|
|
17
|
+
*/
|
|
18
|
+
export type FinishFact = {
|
|
19
|
+
/** The ref the finish is written as; null for the default and for an inline material. */
|
|
20
|
+
ref: string | null;
|
|
21
|
+
name: string;
|
|
22
|
+
/** The library's kind (wood, tile, colors…), for a library material. */
|
|
23
|
+
kind?: string;
|
|
24
|
+
/** The colour the library or the scene gives it, where it gives one. */
|
|
25
|
+
color?: string;
|
|
26
|
+
};
|
|
27
|
+
type Materials = Readonly<Record<string, SceneMaterial>> | undefined;
|
|
28
|
+
type Finish = string | Record<string, unknown> | null | undefined;
|
|
29
|
+
/** Nobody chose a finish here: the surface shows what the kind declares. */
|
|
30
|
+
export declare const isDefaultFinish: (fact: FinishFact) => boolean;
|
|
31
|
+
/** A finish as its words: the library's name and kind, the scene material's name, or the ref. */
|
|
32
|
+
export declare function describeFinish(finish: Finish, materials?: Materials): FinishFact;
|
|
33
|
+
export type RoomFinishes = {
|
|
34
|
+
floor?: FinishFact & {
|
|
35
|
+
regions?: {
|
|
36
|
+
id: string;
|
|
37
|
+
finish: FinishFact;
|
|
38
|
+
}[];
|
|
39
|
+
};
|
|
40
|
+
/** The wall faces that look into the room, by the finish each shows. */
|
|
41
|
+
walls?: {
|
|
42
|
+
faces: number;
|
|
43
|
+
finishes: {
|
|
44
|
+
finish: FinishFact;
|
|
45
|
+
faces: number;
|
|
46
|
+
}[];
|
|
47
|
+
};
|
|
48
|
+
ceiling?: FinishFact & {
|
|
49
|
+
regions?: {
|
|
50
|
+
id: string;
|
|
51
|
+
finish: FinishFact;
|
|
52
|
+
}[];
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
/** What one face of a wall shows to a room: the room's override for it, the room's finish, else the wall's own. */
|
|
56
|
+
export declare function wallFaceFinish(zone: ZoneNode, wall: WallNode, face: WallFace, materials: Materials): FinishFact;
|
|
57
|
+
/** What one room shows, from the nodes of its level. */
|
|
58
|
+
export declare function roomFinishes(nodes: SceneNodes, zone: ZoneNode, content: readonly AnyNode[], materials?: Materials): RoomFinishes;
|
|
59
|
+
export type FinishGroup = {
|
|
60
|
+
finish: FinishFact;
|
|
61
|
+
rooms: string[];
|
|
62
|
+
};
|
|
63
|
+
export type LevelFinishes = {
|
|
64
|
+
levelId: string;
|
|
65
|
+
levelName?: string;
|
|
66
|
+
floors?: FinishGroup[];
|
|
67
|
+
walls?: FinishGroup[];
|
|
68
|
+
ceilings?: FinishGroup[];
|
|
69
|
+
};
|
|
70
|
+
export type FinishSurface = 'floors' | 'walls' | 'ceilings';
|
|
71
|
+
/**
|
|
72
|
+
* The rooms of a level by the finish each surface shows: which finish, and the rooms it is in.
|
|
73
|
+
* `surfaces` names the ones read and `roomIds` the rooms (all of them by default); null where no
|
|
74
|
+
* room read shows any of them.
|
|
75
|
+
*/
|
|
76
|
+
export declare function levelFinishes(nodes: SceneNodes, levelId: string, materials?: Materials, surfaces?: readonly FinishSurface[], roomIds?: ReadonlySet<string>): LevelFinishes | null;
|
|
77
|
+
/**
|
|
78
|
+
* What the rooms a write changed now show, each surface for the rooms it was written on, read from
|
|
79
|
+
* the scene as it stands: the rooms the call touched and no others, and no row for a finish none of
|
|
80
|
+
* them shows (`default`: the rest of the level is `get_zones`'s). Per level; none where nothing is
|
|
81
|
+
* left to say.
|
|
82
|
+
*/
|
|
83
|
+
export declare function changedFinishes(nodes: SceneNodes, written: Partial<Record<FinishSurface, readonly string[]>>, materials?: Materials): LevelFinishes[];
|
|
84
|
+
/** The rooms that show a painted surface: those a wall's painted faces look into, a ceiling's room. */
|
|
85
|
+
export declare function roomsShowing(nodes: SceneNodes, node: AnyNode, roles: readonly string[]): string[];
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=room-finishes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room-finishes.d.ts","sourceRoot":"","sources":["../../src/agent-operations/room-finishes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,OAAO,EAEP,aAAa,EAEb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,MAAM,WAAW,CAAA;AAGlB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,UAAU,GAAG;IACvB,yFAAyF;IACzF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAA;AACpE,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;AAIjE,4EAA4E;AAC5E,eAAO,MAAM,eAAe,SAAU,UAAU,YACQ,CAAA;AAWxD,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAwBhF;AAUD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,UAAU,GAAG;QAAE,OAAO,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,UAAU,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;IACvE,wEAAwE;IACxE,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;IAC5E,OAAO,CAAC,EAAE,UAAU,GAAG;QAAE,OAAO,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,UAAU,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;CAC1E,CAAA;AAUD,mHAAmH;AACnH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,SAAS,GACnB,UAAU,CAgBZ;AAqBD,wDAAwD;AACxD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,SAAS,CAAC,EAAE,SAAS,GACpB,YAAY,CAyBd;AAUD,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;CACzB,CAAA;AAKD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,GAAE,SAAS,aAAa,EAAoC,EACpE,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,aAAa,GAAG,IAAI,CAoCtB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAC1D,SAAS,CAAC,EAAE,SAAS,GACpB,aAAa,EAAE,CAejB;AAED,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAYjG"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { roomFloorPlate } from '../lib/room-floor-plate.js';
|
|
2
|
+
import { getCatalogMaterialById, getLibraryMaterialIdFromRef, getSceneMaterialIdFromRef, } from '../material-library.js';
|
|
3
|
+
import { getWallZoneSpans, resolveWallFaceChain } from '../systems/wall/wall-finish.js';
|
|
4
|
+
import { levelIdOf, nodesOnLevel } from './scene-queries.js';
|
|
5
|
+
const DEFAULT_FINISH = { ref: null, name: 'default' };
|
|
6
|
+
/** Nobody chose a finish here: the surface shows what the kind declares. */
|
|
7
|
+
export const isDefaultFinish = (fact) => fact.ref === null && fact.name === DEFAULT_FINISH.name;
|
|
8
|
+
/** The colour an inline material (a stored finish record) or a scene material carries. */
|
|
9
|
+
function colourOf(spec) {
|
|
10
|
+
if (!spec || typeof spec !== 'object')
|
|
11
|
+
return undefined;
|
|
12
|
+
const record = spec;
|
|
13
|
+
const own = record.properties?.color ?? record.color;
|
|
14
|
+
if (typeof own === 'string')
|
|
15
|
+
return own;
|
|
16
|
+
return record.material ? colourOf(record.material) : undefined;
|
|
17
|
+
}
|
|
18
|
+
/** A finish as its words: the library's name and kind, the scene material's name, or the ref. */
|
|
19
|
+
export function describeFinish(finish, materials) {
|
|
20
|
+
if (finish === undefined || finish === null || finish === '')
|
|
21
|
+
return DEFAULT_FINISH;
|
|
22
|
+
if (typeof finish !== 'string') {
|
|
23
|
+
const color = colourOf(finish);
|
|
24
|
+
return { ref: null, name: 'an inline material', ...(color ? { color } : {}) };
|
|
25
|
+
}
|
|
26
|
+
const libraryId = getLibraryMaterialIdFromRef(finish);
|
|
27
|
+
if (libraryId) {
|
|
28
|
+
const item = getCatalogMaterialById(libraryId);
|
|
29
|
+
if (!item)
|
|
30
|
+
return { ref: finish, name: finish };
|
|
31
|
+
return {
|
|
32
|
+
ref: finish,
|
|
33
|
+
name: item.label,
|
|
34
|
+
kind: item.category,
|
|
35
|
+
...(item.previewColor ? { color: item.previewColor } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const sceneId = getSceneMaterialIdFromRef(finish);
|
|
39
|
+
const scene = sceneId ? materials?.[sceneId] : undefined;
|
|
40
|
+
if (scene) {
|
|
41
|
+
const color = colourOf(scene.material);
|
|
42
|
+
return { ref: finish, name: scene.name, ...(color ? { color } : {}) };
|
|
43
|
+
}
|
|
44
|
+
return { ref: finish, name: finish };
|
|
45
|
+
}
|
|
46
|
+
/** One finish's identity, so rooms painted alike group together. */
|
|
47
|
+
const keyOf = (fact) => fact.ref ?? (fact.name === DEFAULT_FINISH.name ? 'default' : `inline:${fact.color ?? ''}`);
|
|
48
|
+
/** What a plate or a ceiling shows of its own: its surface slot, else its older finish fields. */
|
|
49
|
+
const ownSurface = (node) => node ? (node.slots?.surface ?? node.material ?? node.materialPreset) : undefined;
|
|
50
|
+
const regionsOf = (regions, materials) => regions?.length
|
|
51
|
+
? { regions: regions.map((r) => ({ id: r.id, finish: describeFinish(r.finish, materials) })) }
|
|
52
|
+
: {};
|
|
53
|
+
/** What one face of a wall shows to a room: the room's override for it, the room's finish, else the wall's own. */
|
|
54
|
+
export function wallFaceFinish(zone, wall, face, materials) {
|
|
55
|
+
const override = zone.wallOverrides?.find((entry) => entry.wallId === wall.id && entry.face === face);
|
|
56
|
+
let finish = override?.finish ?? zone.wallMaterial;
|
|
57
|
+
if (finish === undefined) {
|
|
58
|
+
// The wall's own face: a chosen slot, an older finish, or nothing chosen.
|
|
59
|
+
const own = resolveWallFaceChain(wall, face);
|
|
60
|
+
finish =
|
|
61
|
+
own.kind === 'ref'
|
|
62
|
+
? own.ref
|
|
63
|
+
: own.kind === 'legacy'
|
|
64
|
+
? (own.spec.materialPreset ?? own.spec.material)
|
|
65
|
+
: undefined;
|
|
66
|
+
}
|
|
67
|
+
return describeFinish(finish, materials);
|
|
68
|
+
}
|
|
69
|
+
/** The wall faces that look into a room, and what each shows (the room's finish, else the wall's own). */
|
|
70
|
+
function wallFaceFinishes(nodes, zone, materials) {
|
|
71
|
+
const shown = new Map();
|
|
72
|
+
let faces = 0;
|
|
73
|
+
for (const wallId of zone.boundaryWallIds ?? []) {
|
|
74
|
+
const wall = nodes[wallId];
|
|
75
|
+
if (wall?.type !== 'wall')
|
|
76
|
+
continue;
|
|
77
|
+
const looking = new Set(getWallZoneSpans(wall, [zone]).map((span) => span.face));
|
|
78
|
+
for (const face of looking) {
|
|
79
|
+
const fact = wallFaceFinish(zone, wall, face, materials);
|
|
80
|
+
const entry = shown.get(keyOf(fact)) ?? { finish: fact, faces: 0 };
|
|
81
|
+
entry.faces += 1;
|
|
82
|
+
shown.set(keyOf(fact), entry);
|
|
83
|
+
faces += 1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return faces ? { faces, finishes: [...shown.values()] } : undefined;
|
|
87
|
+
}
|
|
88
|
+
/** What one room shows, from the nodes of its level. */
|
|
89
|
+
export function roomFinishes(nodes, zone, content, materials) {
|
|
90
|
+
const shown = {};
|
|
91
|
+
if (zone.hasFloor !== false) {
|
|
92
|
+
const slabs = content.filter((node) => node.type === 'slab');
|
|
93
|
+
shown.floor = {
|
|
94
|
+
...describeFinish(zone.floor?.finish ?? ownSurface(roomFloorPlate(slabs, zone.id)), materials),
|
|
95
|
+
...regionsOf(zone.floor?.regions, materials),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const walls = wallFaceFinishes(nodes, zone, materials);
|
|
99
|
+
if (walls)
|
|
100
|
+
shown.walls = walls;
|
|
101
|
+
if (zone.hasCeiling !== false) {
|
|
102
|
+
const ceiling = content.find((node) => node.type === 'ceiling' && node.zoneId === zone.id);
|
|
103
|
+
if (ceiling)
|
|
104
|
+
shown.ceiling = {
|
|
105
|
+
...describeFinish(ownSurface(ceiling), materials),
|
|
106
|
+
...regionsOf(zone.ceiling?.regions, materials),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return shown;
|
|
110
|
+
}
|
|
111
|
+
/** The finish a surface shows as a whole, its painted parts left aside. */
|
|
112
|
+
const wholeFinish = ({ ref, name, kind, color }) => ({
|
|
113
|
+
ref,
|
|
114
|
+
name,
|
|
115
|
+
...(kind ? { kind } : {}),
|
|
116
|
+
...(color ? { color } : {}),
|
|
117
|
+
});
|
|
118
|
+
const rooms = (content) => content.filter((node) => node.type === 'zone' && node.spaceRole === 'room');
|
|
119
|
+
/**
|
|
120
|
+
* The rooms of a level by the finish each surface shows: which finish, and the rooms it is in.
|
|
121
|
+
* `surfaces` names the ones read and `roomIds` the rooms (all of them by default); null where no
|
|
122
|
+
* room read shows any of them.
|
|
123
|
+
*/
|
|
124
|
+
export function levelFinishes(nodes, levelId, materials, surfaces = ['floors', 'walls', 'ceilings'], roomIds) {
|
|
125
|
+
const level = nodes[levelId];
|
|
126
|
+
if (level?.type !== 'level')
|
|
127
|
+
return null;
|
|
128
|
+
const content = nodesOnLevel(nodes, levelId);
|
|
129
|
+
const floors = new Map();
|
|
130
|
+
const walls = new Map();
|
|
131
|
+
const ceilings = new Map();
|
|
132
|
+
const add = (groups, finish, room) => {
|
|
133
|
+
const group = groups.get(keyOf(finish)) ?? { finish, rooms: [] };
|
|
134
|
+
group.rooms.push(room);
|
|
135
|
+
groups.set(keyOf(finish), group);
|
|
136
|
+
};
|
|
137
|
+
const named = rooms(content).filter((zone) => !roomIds || roomIds.has(zone.id));
|
|
138
|
+
if (!named.length)
|
|
139
|
+
return null;
|
|
140
|
+
for (const zone of named) {
|
|
141
|
+
const shown = roomFinishes(nodes, zone, content, materials);
|
|
142
|
+
if (shown.floor)
|
|
143
|
+
add(floors, wholeFinish(shown.floor), zone.name);
|
|
144
|
+
for (const entry of shown.walls?.finishes ?? [])
|
|
145
|
+
add(walls, entry.finish, entry.faces < shown.walls.faces
|
|
146
|
+
? `${zone.name} (${entry.faces} of ${shown.walls.faces} wall faces)`
|
|
147
|
+
: zone.name);
|
|
148
|
+
if (shown.ceiling)
|
|
149
|
+
add(ceilings, wholeFinish(shown.ceiling), zone.name);
|
|
150
|
+
}
|
|
151
|
+
const read = (surface, groups) => surfaces.includes(surface) && groups.size ? { [surface]: [...groups.values()] } : {};
|
|
152
|
+
const shown = {
|
|
153
|
+
...read('floors', floors),
|
|
154
|
+
...read('walls', walls),
|
|
155
|
+
...read('ceilings', ceilings),
|
|
156
|
+
};
|
|
157
|
+
if (!Object.keys(shown).length)
|
|
158
|
+
return null;
|
|
159
|
+
return { levelId, ...(level.name ? { levelName: level.name } : {}), ...shown };
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* What the rooms a write changed now show, each surface for the rooms it was written on, read from
|
|
163
|
+
* the scene as it stands: the rooms the call touched and no others, and no row for a finish none of
|
|
164
|
+
* them shows (`default`: the rest of the level is `get_zones`'s). Per level; none where nothing is
|
|
165
|
+
* left to say.
|
|
166
|
+
*/
|
|
167
|
+
export function changedFinishes(nodes, written, materials) {
|
|
168
|
+
const byLevel = new Map();
|
|
169
|
+
for (const [surface, roomIds] of Object.entries(written)) {
|
|
170
|
+
const levelIds = [...new Set(roomIds.flatMap((id) => levelIdOf(nodes, id) ?? []))];
|
|
171
|
+
for (const levelId of levelIds) {
|
|
172
|
+
const shown = levelFinishes(nodes, levelId, materials, [surface], new Set(roomIds));
|
|
173
|
+
const groups = shown?.[surface]?.filter((group) => keyOf(group.finish) !== 'default');
|
|
174
|
+
if (shown && groups?.length)
|
|
175
|
+
byLevel.set(levelId, { ...byLevel.get(levelId), ...shown, [surface]: groups });
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return [...byLevel.values()];
|
|
179
|
+
}
|
|
180
|
+
/** The rooms that show a painted surface: those a wall's painted faces look into, a ceiling's room. */
|
|
181
|
+
export function roomsShowing(nodes, node, roles) {
|
|
182
|
+
if (node.type === 'ceiling')
|
|
183
|
+
return node.zoneId ? [node.zoneId] : [];
|
|
184
|
+
if (node.type !== 'wall')
|
|
185
|
+
return [];
|
|
186
|
+
const levelId = levelIdOf(nodes, node.id);
|
|
187
|
+
if (!levelId)
|
|
188
|
+
return [];
|
|
189
|
+
return rooms(nodesOnLevel(nodes, levelId))
|
|
190
|
+
.filter((zone) => zone.boundaryWallIds?.includes(node.id) &&
|
|
191
|
+
getWallZoneSpans(node, [zone]).some((span) => roles.includes(span.face)))
|
|
192
|
+
.map((zone) => zone.id);
|
|
193
|
+
}
|
|
@@ -13,9 +13,9 @@ export type SetRoomFloorScriptInput = {
|
|
|
13
13
|
/**
|
|
14
14
|
* `setRoomFloorScript`: a room's floor finish built by a three.js module, or the module taken off.
|
|
15
15
|
* The host reads the room's floor (`floorScriptInputs`), compiles the module for it (geometry-script
|
|
16
|
-
* `inputs`: the module reads `params.polygon
|
|
17
|
-
*
|
|
18
|
-
* floor it was built for. When the structure re-derives the room's floor the script is stale and
|
|
16
|
+
* `inputs`: the module reads `params.polygon` and `params.holes` in the level's plan x/z, and lays
|
|
17
|
+
* its finish from y = 0, the floor's surface) and stores the artifacts; this writes the result on
|
|
18
|
+
* the zone, with the key of the floor it was built for, and the renderer stands it on the plate. When the structure re-derives the room's floor the script is stale and
|
|
19
19
|
* `refreshFinishScripts` runs it again. The script owns the floor's colours: paint on that floor is
|
|
20
20
|
* refused while it is there.
|
|
21
21
|
*/
|
|
@@ -6,9 +6,9 @@ const round = (value) => Math.round(value * 1000) / 1000;
|
|
|
6
6
|
/**
|
|
7
7
|
* `setRoomFloorScript`: a room's floor finish built by a three.js module, or the module taken off.
|
|
8
8
|
* The host reads the room's floor (`floorScriptInputs`), compiles the module for it (geometry-script
|
|
9
|
-
* `inputs`: the module reads `params.polygon
|
|
10
|
-
*
|
|
11
|
-
* floor it was built for. When the structure re-derives the room's floor the script is stale and
|
|
9
|
+
* `inputs`: the module reads `params.polygon` and `params.holes` in the level's plan x/z, and lays
|
|
10
|
+
* its finish from y = 0, the floor's surface) and stores the artifacts; this writes the result on
|
|
11
|
+
* the zone, with the key of the floor it was built for, and the renderer stands it on the plate. When the structure re-derives the room's floor the script is stale and
|
|
12
12
|
* `refreshFinishScripts` runs it again. The script owns the floor's colours: paint on that floor is
|
|
13
13
|
* refused while it is there.
|
|
14
14
|
*/
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type RoomUse } from '../building/room-use.js';
|
|
2
|
+
import { type SceneMaterial, type WallFace } from '../schema/index.js';
|
|
3
|
+
import { type FinishFact } from './room-finishes.js';
|
|
4
|
+
import { type Tiled } from './room-tile.js';
|
|
5
|
+
import { type WetReading } from './room-wet.js';
|
|
6
|
+
import type { SceneNodes } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* What each room of a scene shows and holds, read from the stored nodes alone (no brief, no model):
|
|
9
|
+
* the use its name gives it, whether its floor or its wall faces are tiled, whether those faces
|
|
10
|
+
* carry skirting, and the pieces standing in it. The room checks (`room-checks.ts`) judge these.
|
|
11
|
+
*/
|
|
12
|
+
export type RoomPiece = {
|
|
13
|
+
id: string;
|
|
14
|
+
/**
|
|
15
|
+
* What it is: a catalog or authored item's category, or, where the author gave only a generic one
|
|
16
|
+
* ("furniture"), its name without the words of its room and its number; `cabinet-run`, `shelf`, a
|
|
17
|
+
* placed design's recipe name.
|
|
18
|
+
*/
|
|
19
|
+
kind: string;
|
|
20
|
+
/**
|
|
21
|
+
* Which recipe: a catalog item's id; an authored item's script, whatever parameters, size and
|
|
22
|
+
* colours it was run with (`script:<hash>`); a placed design's recipe; a run's make-up. Two pieces
|
|
23
|
+
* made by one function for two rooms have two artifacts and one script.
|
|
24
|
+
*/
|
|
25
|
+
design: string;
|
|
26
|
+
/**
|
|
27
|
+
* An authored piece's size to 5 cm and its finishes: two pieces of one kind and one look are
|
|
28
|
+
* alike though two scripts made them. Absent for a piece with a recipe of its own.
|
|
29
|
+
*/
|
|
30
|
+
look?: string;
|
|
31
|
+
name: string;
|
|
32
|
+
/** A piece hung on a wall: the wall, the face it is on and the metres along the wall. */
|
|
33
|
+
hung?: {
|
|
34
|
+
wallId: string;
|
|
35
|
+
face: WallFace;
|
|
36
|
+
u: number;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export type RoomReading = {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
levelId: string;
|
|
43
|
+
levelName: string;
|
|
44
|
+
use: RoomUse;
|
|
45
|
+
/** False for a porch, alfresco, balcony or any room open on a side: no finish is owed there as indoors. */
|
|
46
|
+
indoor: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* `fact` is what the floor shows as a whole, its painted parts (rugs) left aside; `atDefault` where nobody chose a finish and no
|
|
49
|
+
* script lays it; `held` where a floor plate of its own, a drawn slab it was taken from, or slabs over half its footprint are under it.
|
|
50
|
+
*/
|
|
51
|
+
floor: {
|
|
52
|
+
finish: string;
|
|
53
|
+
tiled: Tiled;
|
|
54
|
+
fact: FinishFact;
|
|
55
|
+
atDefault: boolean;
|
|
56
|
+
held: boolean;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* `facts` are the finishes the wall faces that look in show, each once.
|
|
60
|
+
*/
|
|
61
|
+
walls: {
|
|
62
|
+
finishes: string[];
|
|
63
|
+
tiled: Tiled;
|
|
64
|
+
faces: number;
|
|
65
|
+
facts: FinishFact[];
|
|
66
|
+
};
|
|
67
|
+
/** A wet room's walls read against what a wet room is tiled to; absent for the other rooms. */
|
|
68
|
+
wet?: WetReading;
|
|
69
|
+
skirting: {
|
|
70
|
+
faces: number;
|
|
71
|
+
withSkirting: number;
|
|
72
|
+
};
|
|
73
|
+
pieces: RoomPiece[];
|
|
74
|
+
};
|
|
75
|
+
/** Tiled on the floor or on the walls; `unknown` while either surface cannot be read and none is tile. */
|
|
76
|
+
export declare const roomTiled: (room: Pick<RoomReading, 'floor' | 'walls'>) => Tiled;
|
|
77
|
+
/** Room contents and openings along its wall spans, including either side of a shared doorway. */
|
|
78
|
+
export declare function roomIssueScope(nodes: SceneNodes, requested: string): {
|
|
79
|
+
roomId: `zone_${string}`;
|
|
80
|
+
room: string;
|
|
81
|
+
nodeIds: string[];
|
|
82
|
+
}[];
|
|
83
|
+
/**
|
|
84
|
+
* Every room of the scene (a zone that is a room and has a floor) as the checks read it, in level
|
|
85
|
+
* order then by name. `materials` are the scene's, when the host has them, to name `scene:` finishes.
|
|
86
|
+
*/
|
|
87
|
+
export declare function readRooms(nodes: SceneNodes, options?: {
|
|
88
|
+
materials?: Readonly<Record<string, SceneMaterial>>;
|
|
89
|
+
}): RoomReading[];
|
|
90
|
+
//# sourceMappingURL=room-readings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room-readings.d.ts","sourceRoot":"","sources":["../../src/agent-operations/room-readings.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EAEb,MAAM,sBAAsB,CAAA;AAK7B,OAAO,EAKL,KAAK,aAAa,EAElB,KAAK,QAAQ,EAGd,MAAM,WAAW,CAAA;AAKlB,OAAO,EAAkB,KAAK,UAAU,EAAiC,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;GAIG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,yFAAyF;IACzF,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;IACZ,2GAA2G;IAC3G,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;IAC5F;;OAEG;IACH,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,KAAK,EAAE,KAAK,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,UAAU,EAAE,CAAA;KACpB,CAAA;IACD,+FAA+F;IAC/F,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,MAAM,EAAE,SAAS,EAAE,CAAA;CACpB,CAAA;AAOD,0GAA0G;AAC1G,eAAO,MAAM,SAAS,SAAU,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,KAAG,KACtB,CAAA;AAuVjD,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM;;;;IA4BlE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;CAAO,GACpE,WAAW,EAAE,CAsCf"}
|