@pascal-app/core 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +411 -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 +13804 -10600
- 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 +37 -1
- 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 +1163 -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 +5881 -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 +39 -3
- 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 +259 -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 +2525 -1723
- 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 +59 -13
- 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 +5 -7
- 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 +181 -35
- 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 +4667 -3065
- 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 +5 -3
- 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 +134 -12
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +182 -41
- 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 +889 -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 +2897 -1938
- 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 -25
- 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 +62 -2
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +207 -36
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +2915 -2114
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +32 -5
- 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 +43 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -19
- package/dist/lib/__fixtures__/mezzanine.d.ts +10900 -8225
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +1629 -828
- 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-mode.d.ts +11 -0
- package/dist/lib/build-mode.d.ts.map +1 -0
- package/dist/lib/build-mode.js +24 -0
- 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 +207 -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-interaction.d.ts +14 -0
- package/dist/lib/door-interaction.d.ts.map +1 -0
- package/dist/lib/door-interaction.js +62 -0
- 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/elevator-support.d.ts +15 -0
- package/dist/lib/elevator-support.d.ts.map +1 -0
- package/dist/lib/elevator-support.js +40 -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 +66 -39
- 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/hierarchy.d.ts +19 -0
- package/dist/lib/hierarchy.d.ts.map +1 -0
- package/dist/lib/hierarchy.js +53 -0
- 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 +40 -8
- 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/own-floor-intent.d.ts.map +1 -1
- package/dist/lib/own-floor-intent.js +2 -2
- 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/polygon-boolean.d.ts.map +1 -1
- package/dist/lib/polygon-boolean.js +2 -1
- 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-elevation.d.ts +12 -0
- package/dist/lib/room-floor-elevation.d.ts.map +1 -0
- package/dist/lib/room-floor-elevation.js +41 -0
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.js +1 -1
- 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 +113 -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 +8 -5
- package/dist/lib/window-interaction.d.ts +16 -0
- package/dist/lib/window-interaction.d.ts.map +1 -0
- package/dist/lib/window-interaction.js +82 -0
- package/dist/lib/zone-quantities.js +1 -1
- 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/column.d.ts +5 -0
- package/dist/node-slots/column.d.ts.map +1 -1
- package/dist/node-slots/column.js +10 -0
- 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 +3 -3
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +2 -2
- 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/registry.d.ts +5 -0
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +10 -0
- package/dist/registry/types.d.ts +89 -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-resize.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-resize.js +2 -2
- package/dist/schema/nodes/roof-segment.d.ts +226 -1
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +97 -12
- 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 +136 -2
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +48 -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 +1080 -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/index.d.ts +1 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/movement.d.ts +7 -0
- package/dist/services/movement.d.ts.map +1 -1
- package/dist/services/movement.js +13 -0
- package/dist/services/port-connectivity.d.ts +15 -6
- package/dist/services/port-connectivity.d.ts.map +1 -1
- package/dist/services/port-connectivity.js +83 -17
- package/dist/services/roof-bearing.d.ts.map +1 -1
- package/dist/services/roof-bearing.js +8 -4
- 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 +6 -1
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +24 -10
- 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 +847 -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 +1059 -0
- package/dist/spatial/usage-field/walls.d.ts.map +1 -0
- package/dist/spatial/usage-field/walls.js +180 -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 +1467 -664
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +65 -21
- 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 +33 -12
- 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 +5409 -3807
- 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-geometry.d.ts +25 -0
- package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-geometry.js +40 -8
- package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-sync.js +4 -35
- 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/elevator/elevator-runtime.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-runtime.js +95 -18
- package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-service.js +24 -4
- 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 +87 -5
- 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 +2714 -1481
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +3815 -2565
- 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 +1630 -829
- 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-curve.d.ts +10 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +38 -0
- 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-frame.d.ts.map +1 -1
- package/dist/systems/wall/wall-frame.js +8 -0
- package/dist/systems/wall/wall-merge.d.ts +9 -1
- package/dist/systems/wall/wall-merge.d.ts.map +1 -1
- package/dist/systems/wall/wall-merge.js +66 -13
- 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 +11 -4
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +28 -7
- 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 +137 -11
- 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 +4663 -3061
- 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 +3372 -2571
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/measurement-format.d.ts +27 -0
- package/dist/utils/measurement-format.d.ts.map +1 -0
- package/dist/utils/measurement-format.js +143 -0
- package/dist/utils/owned-floor-opening-migration.d.ts +1629 -828
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +2308 -1507
- 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/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +3 -1
- 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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { roomSideFaces } from '../systems/wall/wall-room-sides.js';
|
|
2
|
+
/** The unoccupied face; ambiguous walls retain the placement face. Generated roof faces face out on a. */
|
|
3
|
+
export function openingExteriorFace(opening, nodes) {
|
|
4
|
+
if (opening.roofSegmentId || opening.dormerId)
|
|
5
|
+
return 'a';
|
|
6
|
+
const wallId = opening.wallId ?? opening.parentId;
|
|
7
|
+
if (wallId && nodes[wallId]?.type === 'wall') {
|
|
8
|
+
const outside = roomSideFaces(nodes, wallId).outside;
|
|
9
|
+
if (outside)
|
|
10
|
+
return outside;
|
|
11
|
+
}
|
|
12
|
+
if (opening.side)
|
|
13
|
+
return opening.side === 'front' ? 'a' : 'b';
|
|
14
|
+
return Math.cos(opening.rotation?.[1] ?? 0) >= 0 ? 'a' : 'b';
|
|
15
|
+
}
|
|
@@ -2,11 +2,17 @@ import type { AnyNode, DoorNode, WallNode, WindowNode } from '../schema/index.js
|
|
|
2
2
|
import { type WallSlabSupport, type WallSlabSupportSegment } from '../systems/slab/slab-support.js';
|
|
3
3
|
export declare function wallSupportForNodes(wall: WallNode, nodes: Readonly<Record<string, AnyNode>>): WallSlabSupport;
|
|
4
4
|
export declare function supportSegmentAt(segment: WallSlabSupportSegment, t: number): number;
|
|
5
|
-
export declare function openingDatumFromSupport(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height'
|
|
5
|
+
export declare function openingDatumFromSupport(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height'> & Partial<Pick<DoorNode, 'rotation' | 'sidelightLeft' | 'sidelightRight' | 'transomHeight' | 'doorType'>>, support: WallSlabSupport): number;
|
|
6
6
|
/** Unclamped floor intent, used by authoring feasibility and legacy migration. */
|
|
7
|
-
export declare function getOpeningFloorTarget(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height'
|
|
8
|
-
export declare function openingFitsAtDatum(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'height'
|
|
9
|
-
|
|
7
|
+
export declare function getOpeningFloorTarget(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height'> & Partial<Pick<DoorNode, 'rotation' | 'sidelightLeft' | 'sidelightRight' | 'transomHeight' | 'doorType'>>, nodes: Readonly<Record<string, AnyNode>>): number;
|
|
8
|
+
export declare function openingFitsAtDatum(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height'> & Partial<Pick<DoorNode, 'transomHeight' | 'doorType'>>, datum: number, nodes: Readonly<Record<string, AnyNode>>, support?: WallSlabSupport): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The lowest the wall reaches under the opening's span, level-local, on its centreline or either
|
|
11
|
+
* face: where a face goes down beside a floor sunk under the one the wall stands on (a garage
|
|
12
|
+
* beside the house), lower than that floor.
|
|
13
|
+
*/
|
|
14
|
+
export declare function wallBottomUnderOpening(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width'> & Partial<Pick<DoorNode, 'height' | 'rotation' | 'sidelightLeft' | 'sidelightRight' | 'transomHeight' | 'doorType'>>, support: WallSlabSupport): number;
|
|
15
|
+
export declare function getOpeningFloorDatum(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height'> & Partial<Pick<DoorNode, 'rotation' | 'sidelightLeft' | 'sidelightRight' | 'transomHeight' | 'doorType'>>, nodes: Readonly<Record<string, AnyNode>>, support?: WallSlabSupport): number;
|
|
10
16
|
export declare function getOpeningWallCut(wall: WallNode, opening: DoorNode | WindowNode, nodes: Readonly<Record<string, AnyNode>>, support?: WallSlabSupport): {
|
|
11
17
|
aperture: import("./polygon-boolean.js").MultiPolygon;
|
|
12
18
|
band: import("./polygon-boolean.js").Ring;
|
|
@@ -15,7 +21,7 @@ export declare function getOpeningWallCut(wall: WallNode, opening: DoorNode | Wi
|
|
|
15
21
|
top: number;
|
|
16
22
|
covered: boolean;
|
|
17
23
|
};
|
|
18
|
-
export declare function getOpeningWallPlacement(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height' | 'rotation'> & {
|
|
24
|
+
export declare function getOpeningWallPlacement(wall: WallNode, opening: Pick<DoorNode | WindowNode, 'position' | 'width' | 'height' | 'rotation'> & Partial<Pick<DoorNode, 'sidelightLeft' | 'sidelightRight' | 'transomHeight' | 'doorType'>> & {
|
|
19
25
|
metadata?: Record<string, unknown>;
|
|
20
26
|
}, nodes: Readonly<Record<string, AnyNode>>): {
|
|
21
27
|
position: [number, number, number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opening-floor-datum.d.ts","sourceRoot":"","sources":["../../src/lib/opening-floor-datum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAY,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAElF,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"opening-floor-datum.d.ts","sourceRoot":"","sources":["../../src/lib/opening-floor-datum.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getWallTopOver } from '../services/storey.js';
|
|
2
2
|
import { computeWallSlabSupport, } from '../systems/slab/slab-support.js';
|
|
3
3
|
import { getWallCurveFrameAt, getWallCurveLength } from '../systems/wall/wall-curve.js';
|
|
4
4
|
import { calculateLevelMiters, getWallPlanFootprint } from '../systems/wall/wall-footprint.js';
|
|
5
5
|
import { getWallBodyCenterOffset } from '../systems/wall/wall-frame.js';
|
|
6
|
+
import { getDoorOpeningSize } from './door-opening.js';
|
|
6
7
|
import { isFloorAnchoredOpening, openingAperture, wallOpeningBand, } from './floor-opening-footprints.js';
|
|
8
|
+
import { openingHostFacing } from './opening-casing.js';
|
|
7
9
|
import { area, intersection, union } from './polygon-boolean.js';
|
|
8
10
|
import { levelBaseElevationAt } from './terrain-support-query.js';
|
|
9
11
|
const supportCache = new WeakMap();
|
|
@@ -47,8 +49,10 @@ export function openingDatumFromSupport(wall, opening, support) {
|
|
|
47
49
|
if (!isFloorAnchoredOpening(opening))
|
|
48
50
|
return support.elevation;
|
|
49
51
|
const length = getWallCurveLength(wall);
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
+
const size = getDoorOpeningSize({ ...opening, height: opening.height ?? 0 });
|
|
53
|
+
const centerX = opening.position[0] - size.leafOffsetX * openingHostFacing(opening);
|
|
54
|
+
const from = Math.max(0, (centerX - size.width / 2) / length);
|
|
55
|
+
const to = Math.min(1, (centerX + size.width / 2) / length);
|
|
52
56
|
const heights = [...support.faceDatum.a, ...support.faceDatum.b].flatMap((segment) => {
|
|
53
57
|
const start = Math.max(from, segment.start), end = Math.min(to, segment.end);
|
|
54
58
|
return end > start ? [supportSegmentAt(segment, start), supportSegmentAt(segment, end)] : [];
|
|
@@ -60,8 +64,32 @@ export function getOpeningFloorTarget(wall, opening, nodes) {
|
|
|
60
64
|
return openingDatumFromSupport(wall, opening, wallSupportForNodes(wall, nodes));
|
|
61
65
|
}
|
|
62
66
|
export function openingFitsAtDatum(wall, opening, datum, nodes, support = wallSupportForNodes(wall, nodes)) {
|
|
63
|
-
const top =
|
|
64
|
-
return datum +
|
|
67
|
+
const top = getWallTopOver(wall, wall.parentId, nodes, support.elevation, opening.position[0] - opening.width / 2, opening.position[0] + opening.width / 2);
|
|
68
|
+
return (datum +
|
|
69
|
+
opening.position[1] -
|
|
70
|
+
opening.height / 2 +
|
|
71
|
+
getDoorOpeningSize({ ...opening, width: 0 }).height <=
|
|
72
|
+
top + 1e-9);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The lowest the wall reaches under the opening's span, level-local, on its centreline or either
|
|
76
|
+
* face: where a face goes down beside a floor sunk under the one the wall stands on (a garage
|
|
77
|
+
* beside the house), lower than that floor.
|
|
78
|
+
*/
|
|
79
|
+
export function wallBottomUnderOpening(wall, opening, support) {
|
|
80
|
+
const length = getWallCurveLength(wall);
|
|
81
|
+
if (length < 1e-9)
|
|
82
|
+
return support.baseElevation;
|
|
83
|
+
const size = getDoorOpeningSize({ ...opening, height: opening.height ?? 0 });
|
|
84
|
+
const centerX = opening.position[0] - size.leafOffsetX * openingHostFacing(opening);
|
|
85
|
+
const from = Math.max(0, (centerX - size.width / 2) / length);
|
|
86
|
+
const to = Math.min(1, (centerX + size.width / 2) / length);
|
|
87
|
+
const segments = [...support.baseSegments, ...support.faceBottom.a, ...support.faceBottom.b];
|
|
88
|
+
const heights = segments.flatMap((segment) => {
|
|
89
|
+
const start = Math.max(from, segment.start), end = Math.min(to, segment.end);
|
|
90
|
+
return end > start ? [supportSegmentAt(segment, start), supportSegmentAt(segment, end)] : [];
|
|
91
|
+
});
|
|
92
|
+
return heights.length ? Math.min(...heights) : support.baseElevation;
|
|
65
93
|
}
|
|
66
94
|
export function getOpeningFloorDatum(wall, opening, nodes, support = wallSupportForNodes(wall, nodes)) {
|
|
67
95
|
const target = openingDatumFromSupport(wall, opening, support);
|
|
@@ -102,13 +130,17 @@ export function getOpeningWallCut(wall, opening, nodes, support = wallSupportFor
|
|
|
102
130
|
covers.set(datum, cover);
|
|
103
131
|
const covered = area(aperture) > 0 && area(intersection(aperture, cover)) >= area(aperture) - 0.00001;
|
|
104
132
|
const length = getWallCurveLength(wall);
|
|
105
|
-
const
|
|
133
|
+
const size = getDoorOpeningSize({ ...opening, height: opening.height ?? 0 });
|
|
134
|
+
const centerX = opening.position[0] - size.leafOffsetX * openingHostFacing(opening);
|
|
135
|
+
const from = (centerX - size.width / 2) / length, to = (centerX + size.width / 2) / length;
|
|
106
136
|
const bottoms = [...support.faceBottom.a, ...support.faceBottom.b]
|
|
107
137
|
.filter((s) => s.end > from && s.start < to)
|
|
108
138
|
.map((s) => Math.min(s.elevation, s.endElevation ?? s.elevation));
|
|
139
|
+
// An opening may reach below its floor (a negative sill: a garage door down to the garage floor
|
|
140
|
+
// sunk beside the wall), never below the wall itself.
|
|
109
141
|
const bottom = isFloorAnchoredOpening(opening) && covered
|
|
110
142
|
? Math.min(support.elevation, ...bottoms)
|
|
111
|
-
: datum + opening.position[1] - opening.height / 2;
|
|
143
|
+
: Math.max(datum + opening.position[1] - opening.height / 2, Math.min(datum, wallBottomUnderOpening(wall, opening, support)));
|
|
112
144
|
return {
|
|
113
145
|
// The floor the doorway exposes: exactly the wall's own footprint.
|
|
114
146
|
aperture,
|
|
@@ -116,7 +148,7 @@ export function getOpeningWallCut(wall, opening, nodes, support = wallSupportFor
|
|
|
116
148
|
band: wallOpeningBand(wall, Math.max(0, from), Math.min(1, to)),
|
|
117
149
|
datum,
|
|
118
150
|
bottom,
|
|
119
|
-
top: datum + opening.position[1]
|
|
151
|
+
top: datum + opening.position[1] - opening.height / 2 + size.height,
|
|
120
152
|
covered,
|
|
121
153
|
};
|
|
122
154
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AnyNode, DoorNode, WindowNode } from '../schema/index.js';
|
|
2
|
+
type FrameDepthOpening = Pick<DoorNode | WindowNode, 'frameDepth'>;
|
|
3
|
+
/** An opening without an explicit frame depth follows its host wall. */
|
|
4
|
+
export declare function isAutoFrameDepth(opening: FrameDepthOpening): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* The depth a door's or window's frame runs through its wall. An explicit
|
|
7
|
+
* `frameDepth` is kept as stored; left out, the frame is the host wall's
|
|
8
|
+
* thickness exactly.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveOpeningFrameDepth(opening: FrameDepthOpening, wallThickness: number): number;
|
|
11
|
+
/**
|
|
12
|
+
* `resolveOpeningFrameDepth` against the opening's host in `nodes`: its parent
|
|
13
|
+
* wall's thickness, or the default wall thickness off a wall (a roof face, a
|
|
14
|
+
* dormer, an unparented preview).
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveHostedOpeningFrameDepth(opening: Pick<DoorNode | WindowNode, 'frameDepth' | 'parentId'>, nodes: Readonly<Record<string, AnyNode | undefined>>): number;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=opening-frame-depth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opening-frame-depth.d.ts","sourceRoot":"","sources":["../../src/lib/opening-frame-depth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAG9D,KAAK,iBAAiB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,EAAE,YAAY,CAAC,CAAA;AAElE,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,MAAM,GACpB,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,EAAE,YAAY,GAAG,UAAU,CAAC,EAC/D,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC,GACnD,MAAM,CAMR"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DEFAULT_WALL_THICKNESS, getWallThickness } from '../systems/wall/wall-footprint.js';
|
|
2
|
+
/** An opening without an explicit frame depth follows its host wall. */
|
|
3
|
+
export function isAutoFrameDepth(opening) {
|
|
4
|
+
return opening.frameDepth === undefined;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The depth a door's or window's frame runs through its wall. An explicit
|
|
8
|
+
* `frameDepth` is kept as stored; left out, the frame is the host wall's
|
|
9
|
+
* thickness exactly.
|
|
10
|
+
*/
|
|
11
|
+
export function resolveOpeningFrameDepth(opening, wallThickness) {
|
|
12
|
+
return opening.frameDepth ?? wallThickness;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `resolveOpeningFrameDepth` against the opening's host in `nodes`: its parent
|
|
16
|
+
* wall's thickness, or the default wall thickness off a wall (a roof face, a
|
|
17
|
+
* dormer, an unparented preview).
|
|
18
|
+
*/
|
|
19
|
+
export function resolveHostedOpeningFrameDepth(opening, nodes) {
|
|
20
|
+
const host = opening.parentId ? nodes[opening.parentId] : undefined;
|
|
21
|
+
return resolveOpeningFrameDepth(opening, host?.type === 'wall' ? getWallThickness(host) : DEFAULT_WALL_THICKNESS);
|
|
22
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ZoneNode } from '../schema/index.js';
|
|
2
|
+
export declare const OUTDOOR_ROOM_TYPES: readonly ['porch', 'deck', 'patio'];
|
|
3
|
+
export type OutdoorRoomType = (typeof OUTDOOR_ROOM_TYPES)[number];
|
|
4
|
+
/** A porch or patio slab steps down from the house's finish floor by 1.5 in at most. */
|
|
5
|
+
export declare const PORCH_FLOOR_DROP: number;
|
|
6
|
+
/** Deck boards ride 1 in under the threshold so water sheds away from the door. */
|
|
7
|
+
export declare const DECK_FLOOR_DROP: number;
|
|
8
|
+
/**
|
|
9
|
+
* The deck boards on a deck's floor unless its room says otherwise (5/4x6, 1 in: `lib/deck-boards`);
|
|
10
|
+
* the framing hangs under them.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DECKING_THICKNESS: number;
|
|
13
|
+
export type OutdoorRoomDefaults = {
|
|
14
|
+
/** The name a room of the type is given while it has a default name. */
|
|
15
|
+
name: string;
|
|
16
|
+
drop: number;
|
|
17
|
+
/** The floor finish it starts with. */
|
|
18
|
+
finish: string;
|
|
19
|
+
/** Whether it has a ceiling (a covered porch). */
|
|
20
|
+
covered: boolean;
|
|
21
|
+
/** How the framing plugin reads its floor plate (`metadata.floor`). */
|
|
22
|
+
floorTag: 'porch-slab' | 'deck';
|
|
23
|
+
};
|
|
24
|
+
export declare const OUTDOOR_ROOM_DEFAULTS: Record<OutdoorRoomType, OutdoorRoomDefaults>;
|
|
25
|
+
export declare function isOutdoorRoomType(value: unknown): value is OutdoorRoomType;
|
|
26
|
+
/** Whether a room is one of the outdoor room types. */
|
|
27
|
+
export declare function isOutdoorRoom(zone: Pick<ZoneNode, 'roomType'>): boolean;
|
|
28
|
+
/** "Porch", "Porch 2", …: the next free name for a room of `type` among `names`. */
|
|
29
|
+
export declare function nextOutdoorRoomName(type: OutdoorRoomType, names: Iterable<string>): string;
|
|
30
|
+
/** Whether `name` is a type's default name ("Deck", "Deck 3"), so a type change may rename it. */
|
|
31
|
+
export declare function isOutdoorRoomDefaultName(name: string | undefined): boolean;
|
|
32
|
+
//# sourceMappingURL=outdoor-room.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outdoor-room.d.ts","sourceRoot":"","sources":["../../src/lib/outdoor-room.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAezC,eAAO,MAAM,kBAAkB,YAAI,OAAO,EAAE,MAAM,EAAE,OAAO,CAAU,CAAA;AACrE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,QAAW,CAAA;AACxC,mFAAmF;AACnF,eAAO,MAAM,eAAe,QAAS,CAAA;AACrC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAA0C,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG;IAChC,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAsB9E,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,OAAO,CAEvE;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAK1F;AAED,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAO1E"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DEFAULT_DECK_BOARDS, deckBoardThickness } from './deck-boards.js';
|
|
2
|
+
/**
|
|
3
|
+
* Rooms outside the house, the outdoor room types: a porch (a covered floor a step
|
|
4
|
+
* down from the house), a deck (a framed floor of boards) and a patio (an uncovered slab). A room
|
|
5
|
+
* of one of these types is outdoors whatever covers it, so the house walls it faces are exterior
|
|
6
|
+
* walls even under a porch ceiling, and its floor steps down from the house's (`floor.drop`).
|
|
7
|
+
*
|
|
8
|
+
* A room closed off outside the house by invisible walls starts as a porch: its floor a concrete
|
|
9
|
+
* slab 1.5 in under the house's and its ceiling at the house's, both adjustable in its panel.
|
|
10
|
+
*/
|
|
11
|
+
const IN = 0.0254;
|
|
12
|
+
export const OUTDOOR_ROOM_TYPES = ['porch', 'deck', 'patio'];
|
|
13
|
+
/** A porch or patio slab steps down from the house's finish floor by 1.5 in at most. */
|
|
14
|
+
export const PORCH_FLOOR_DROP = 1.5 * IN;
|
|
15
|
+
/** Deck boards ride 1 in under the threshold so water sheds away from the door. */
|
|
16
|
+
export const DECK_FLOOR_DROP = 1 * IN;
|
|
17
|
+
/**
|
|
18
|
+
* The deck boards on a deck's floor unless its room says otherwise (5/4x6, 1 in: `lib/deck-boards`);
|
|
19
|
+
* the framing hangs under them.
|
|
20
|
+
*/
|
|
21
|
+
export const DECKING_THICKNESS = deckBoardThickness(DEFAULT_DECK_BOARDS);
|
|
22
|
+
export const OUTDOOR_ROOM_DEFAULTS = {
|
|
23
|
+
porch: {
|
|
24
|
+
name: 'Porch',
|
|
25
|
+
drop: PORCH_FLOOR_DROP,
|
|
26
|
+
finish: 'library:concrete-raw',
|
|
27
|
+
covered: true,
|
|
28
|
+
floorTag: 'porch-slab',
|
|
29
|
+
},
|
|
30
|
+
deck: {
|
|
31
|
+
name: 'Deck',
|
|
32
|
+
drop: DECK_FLOOR_DROP,
|
|
33
|
+
finish: 'library:wood-woodfine11',
|
|
34
|
+
covered: false,
|
|
35
|
+
floorTag: 'deck',
|
|
36
|
+
},
|
|
37
|
+
patio: {
|
|
38
|
+
name: 'Patio',
|
|
39
|
+
drop: PORCH_FLOOR_DROP,
|
|
40
|
+
finish: 'library:concrete-raw',
|
|
41
|
+
covered: false,
|
|
42
|
+
floorTag: 'porch-slab',
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
export function isOutdoorRoomType(value) {
|
|
46
|
+
return typeof value === 'string' && OUTDOOR_ROOM_TYPES.includes(value);
|
|
47
|
+
}
|
|
48
|
+
/** Whether a room is one of the outdoor room types. */
|
|
49
|
+
export function isOutdoorRoom(zone) {
|
|
50
|
+
return isOutdoorRoomType(zone.roomType);
|
|
51
|
+
}
|
|
52
|
+
/** "Porch", "Porch 2", …: the next free name for a room of `type` among `names`. */
|
|
53
|
+
export function nextOutdoorRoomName(type, names) {
|
|
54
|
+
const base = OUTDOOR_ROOM_DEFAULTS[type].name;
|
|
55
|
+
const taken = new Set(names);
|
|
56
|
+
if (!taken.has(base))
|
|
57
|
+
return base;
|
|
58
|
+
for (let n = 2;; n++)
|
|
59
|
+
if (!taken.has(`${base} ${n}`))
|
|
60
|
+
return `${base} ${n}`;
|
|
61
|
+
}
|
|
62
|
+
/** Whether `name` is a type's default name ("Deck", "Deck 3"), so a type change may rename it. */
|
|
63
|
+
export function isOutdoorRoomDefaultName(name) {
|
|
64
|
+
return (typeof name === 'string' &&
|
|
65
|
+
OUTDOOR_ROOM_TYPES.some((type) => new RegExp(`^${OUTDOOR_ROOM_DEFAULTS[type].name}( \\d+)?$`).test(name)));
|
|
66
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"own-floor-intent.d.ts","sourceRoot":"","sources":["../../src/lib/own-floor-intent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAsB,MAAM,WAAW,CAAA;AAavE,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAA;AAEvD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,OAAO,EAAE,SAAS,MAAM,EAAE;aAKT,MAAM,EAAE;;;;;;
|
|
1
|
+
{"version":3,"file":"own-floor-intent.d.ts","sourceRoot":"","sources":["../../src/lib/own-floor-intent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAsB,MAAM,WAAW,CAAA;AAavE,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAA;AAEvD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,OAAO,EAAE,SAAS,MAAM,EAAE;aAKT,MAAM,EAAE;;;;;;EAqO1B"}
|
|
@@ -110,9 +110,9 @@ export function ownFloorIntentChanges(nodes, updates) {
|
|
|
110
110
|
const current = next[old.id];
|
|
111
111
|
if (old.type !== 'wall' || current?.type !== 'wall' || !old.parentId)
|
|
112
112
|
continue;
|
|
113
|
-
const oldTop = getWallTop(old, old.parentId, nodes, wallSupportForNodes(old, nodes).elevation);
|
|
113
|
+
const oldTop = getWallTop(old, old.parentId, nodes, wallSupportForNodes(old, nodes).elevation, 0);
|
|
114
114
|
const support = wallSupportForNodes(current, next).elevation;
|
|
115
|
-
const newTop = getWallTop(current, current.parentId, next, support);
|
|
115
|
+
const newTop = getWallTop(current, current.parentId, next, support, 0);
|
|
116
116
|
if (Math.abs(oldTop - newTop) <= 1e-6)
|
|
117
117
|
continue;
|
|
118
118
|
if (oldTop - support < MIN_WALL_HEIGHT)
|
|
@@ -92,6 +92,14 @@ export declare function plateOpeningLandings(context: PlateLevelContext): import
|
|
|
92
92
|
* `platePartitionSignature`. Returns `null` for anything that is not an
|
|
93
93
|
* unrecessed floor plate — manual slabs and pools keep the plain two-slot path.
|
|
94
94
|
*/
|
|
95
|
+
/**
|
|
96
|
+
* The doorways cut out of `plate`, each its wall's span past both faces (whole, so a cut never
|
|
97
|
+
* runs along the plate's own edge): those of the openings reaching below their floor (a negative
|
|
98
|
+
* sill: a garage door down to the garage floor sunk beside its wall) where the plate stands above
|
|
99
|
+
* the opening's bottom. The doorway is then open from its bottom to its head on both faces, with
|
|
100
|
+
* no strip of the floor the wall stands on left across it.
|
|
101
|
+
*/
|
|
102
|
+
export declare function plateDoorwayCuts(plate: SlabNode, context: PlateLevelContext): MultiPolygon;
|
|
95
103
|
export declare function computePlateSurfacePartition(plate: SlabNode, context: PlateLevelContext): PlateSurfacePartition | null;
|
|
96
104
|
/**
|
|
97
105
|
* The doorway keys of every step `zoneId` owns on its level — what the room
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plate-surface.d.ts","sourceRoot":"","sources":["../../src/lib/plate-surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACT,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"plate-surface.d.ts","sourceRoot":"","sources":["../../src/lib/plate-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DEFAULT_SLAB_ELEVATION } from '../schema/nodes/slab.js';
|
|
2
|
-
import { getWallCurveFrameAt, getWallCurveStationAtPoint } from '../systems/wall/wall-curve.js';
|
|
2
|
+
import { getWallCurveFrameAt, getWallCurveLength, getWallCurveStationAtPoint, isCurvedWall, } from '../systems/wall/wall-curve.js';
|
|
3
3
|
import { calculateLevelMiters, getWallPlanFootprint } from '../systems/wall/wall-footprint.js';
|
|
4
|
+
import { getWallFaceOffsets } from '../systems/wall/wall-frame.js';
|
|
4
5
|
import { openingLandings } from './floor-opening-footprints.js';
|
|
5
6
|
import { floorRoomFaces } from './floor-room-faces.js';
|
|
6
7
|
import { exposedIntervals } from './level-footprints.js';
|
|
@@ -566,7 +567,13 @@ function classifySides(plate, top, context, prepared) {
|
|
|
566
567
|
...(hi < b ? [[hi, b]] : []),
|
|
567
568
|
]);
|
|
568
569
|
const role = adjacent || neighbour ? 'riser' : 'edge';
|
|
569
|
-
|
|
570
|
+
// A base plate's side facing into one of its own holes (a void, a stairwell) belongs to the
|
|
571
|
+
// room around the hole, so it can wear that room's floor edge rather than the facade's.
|
|
572
|
+
const holeOwner = plate.plateRole === 'base' &&
|
|
573
|
+
top.some(({ outer }) => containsPoint([{ outer, holes: [] }], outside))
|
|
574
|
+
? zones.find((entry) => containsPoint(entry.polygon, inside))?.zone.id
|
|
575
|
+
: undefined;
|
|
576
|
+
const owner = role === 'riser' || plate.plateRole !== 'base' ? ownerId : holeOwner;
|
|
570
577
|
// A door jamb's side of the step meets the aperture only at its edge, so
|
|
571
578
|
// the doorway is looked for on both sides of the face too.
|
|
572
579
|
const doorway = opening ??
|
|
@@ -600,6 +607,48 @@ const partitionCache = new Map();
|
|
|
600
607
|
* `platePartitionSignature`. Returns `null` for anything that is not an
|
|
601
608
|
* unrecessed floor plate — manual slabs and pools keep the plain two-slot path.
|
|
602
609
|
*/
|
|
610
|
+
/**
|
|
611
|
+
* The doorways cut out of `plate`, each its wall's span past both faces (whole, so a cut never
|
|
612
|
+
* runs along the plate's own edge): those of the openings reaching below their floor (a negative
|
|
613
|
+
* sill: a garage door down to the garage floor sunk beside its wall) where the plate stands above
|
|
614
|
+
* the opening's bottom. The doorway is then open from its bottom to its head on both faces, with
|
|
615
|
+
* no strip of the floor the wall stands on left across it.
|
|
616
|
+
*/
|
|
617
|
+
export function plateDoorwayCuts(plate, context) {
|
|
618
|
+
if (!isFloorPlate(plate) || plate.recessed || plate.polygon.length < 3)
|
|
619
|
+
return [];
|
|
620
|
+
const elevation = plate.elevation ?? DEFAULT_SLAB_ELEVATION;
|
|
621
|
+
const top = slabTop(plate);
|
|
622
|
+
return union(levelInputs(context).openings.flatMap(({ opening, wall, cut }) => {
|
|
623
|
+
if (opening.position[1] - opening.height / 2 >= -BELOW_FLOOR_SILL)
|
|
624
|
+
return [];
|
|
625
|
+
if (cut.bottom >= elevation - 1e-3)
|
|
626
|
+
return [];
|
|
627
|
+
const band = doorwayBand(wall, opening);
|
|
628
|
+
return area(intersection(band, top)) > 0 ? [band] : [];
|
|
629
|
+
}));
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* The doorway's span of the wall, past both faces by {@link DOORWAY_OVERSHOOT}: a plate edge a few
|
|
633
|
+
* millimetres off the face (a plate drawn to the wall's line, a wall a hair out of square) would
|
|
634
|
+
* otherwise leave a sliver whose side face shows as a bar across the doorway.
|
|
635
|
+
*/
|
|
636
|
+
function doorwayBand(wall, opening) {
|
|
637
|
+
const length = getWallCurveLength(wall);
|
|
638
|
+
const from = Math.max(0, (opening.position[0] - opening.width / 2) / length);
|
|
639
|
+
const to = Math.min(1, (opening.position[0] + opening.width / 2) / length);
|
|
640
|
+
const faces = getWallFaceOffsets(wall);
|
|
641
|
+
const count = isCurvedWall(wall) ? Math.max(2, Math.ceil((to - from) * 96)) : 1;
|
|
642
|
+
const side = (offset) => Array.from({ length: count + 1 }, (_, i) => {
|
|
643
|
+
const frame = getWallCurveFrameAt(wall, from + ((to - from) * i) / count);
|
|
644
|
+
return [frame.point.x + frame.normal.x * offset, frame.point.y + frame.normal.y * offset];
|
|
645
|
+
});
|
|
646
|
+
return [...side(faces.a + DOORWAY_OVERSHOOT), ...side(faces.b - DOORWAY_OVERSHOOT).reverse()];
|
|
647
|
+
}
|
|
648
|
+
/** How far past each wall face a doorway is cut out of the plates it crosses. */
|
|
649
|
+
const DOORWAY_OVERSHOOT = 0.02;
|
|
650
|
+
/** A sill this far under its floor reaches below it; nearer is the floor (rounding). */
|
|
651
|
+
const BELOW_FLOOR_SILL = 1e-3;
|
|
603
652
|
export function computePlateSurfacePartition(plate, context) {
|
|
604
653
|
if (!isFloorPlate(plate) || plate.recessed || plate.polygon.length < 3)
|
|
605
654
|
return null;
|
|
@@ -607,7 +656,8 @@ export function computePlateSurfacePartition(plate, context) {
|
|
|
607
656
|
const cached = partitionCache.get(signature);
|
|
608
657
|
if (cached)
|
|
609
658
|
return cached;
|
|
610
|
-
const
|
|
659
|
+
const doorways = plateDoorwayCuts(plate, context);
|
|
660
|
+
const top = doorways.length ? difference(slabTop(plate), doorways) : slabTop(plate);
|
|
611
661
|
if (!top.length)
|
|
612
662
|
return null;
|
|
613
663
|
const wallCover = levelWallCover(context.walls);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-boolean.d.ts","sourceRoot":"","sources":["../../src/lib/polygon-boolean.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"polygon-boolean.d.ts","sourceRoot":"","sources":["../../src/lib/polygon-boolean.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;AACrC,MAAM,MAAM,OAAO,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AACpD,MAAM,MAAM,YAAY,GAAG,OAAO,EAAE,CAAA;AACpC,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,OAAO,GAAG,YAAY,CAAA;AAoIxD,wBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,CAKnE;AAED,wBAAgB,UAAU,CACxB,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACvC,YAAY,CAUd;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CA2B3E;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAQhD;AAgCD,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAW/E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMnF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import clipping from 'polygon-clipping';
|
|
2
|
+
import { isDevelopmentBuild } from './build-mode.js';
|
|
2
3
|
const SCALE = 10_000;
|
|
3
4
|
const MIN_AREA = 1e-6;
|
|
4
5
|
// Relative to the first vertex: absolute products at large coordinates (1e9 m
|
|
@@ -98,7 +99,7 @@ function clip(operation, inputs, run, throwOnError = false) {
|
|
|
98
99
|
catch (error) {
|
|
99
100
|
if (throwOnError)
|
|
100
101
|
throw error;
|
|
101
|
-
if (
|
|
102
|
+
if (isDevelopmentBuild()) {
|
|
102
103
|
const caller = new Error('Polygon clipping caller').stack
|
|
103
104
|
?.split('\n')
|
|
104
105
|
.slice(1)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AnyNode, AnyNodeId, SlabNode, ZoneNode } from '../schema/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A porch's posts and beams (`lib/porch-framing`), kept by the structure kernel as it keeps a
|
|
4
|
+
* room's floor and ceiling: made when a covered porch has an open side, moved with the porch,
|
|
5
|
+
* rebuilt when its framing settings change, removed when it stops being a covered porch. A deck
|
|
6
|
+
* or patio gets the same once they are switched on, to carry a roof over it. They are ordinary
|
|
7
|
+
* post and beam nodes. Moving, resizing or deleting one hands the room's framing to the user
|
|
8
|
+
* (`porchFraming.auto: false`): framing edited by hand stops rebuilding; turning it back on
|
|
9
|
+
* rebuilds it.
|
|
10
|
+
*/
|
|
11
|
+
type Nodes = Readonly<Record<string, AnyNode>>;
|
|
12
|
+
/** What the kernel stamps on a porch part: the porch, which part, and what it made it as. */
|
|
13
|
+
export type PorchPartMetadata = {
|
|
14
|
+
porchOf: string;
|
|
15
|
+
porchPart: string;
|
|
16
|
+
porchSeed: string;
|
|
17
|
+
};
|
|
18
|
+
/** The porch a post or beam was made for, when the kernel made it. */
|
|
19
|
+
export declare function porchPartOf(node: AnyNode | null | undefined): PorchPartMetadata | null;
|
|
20
|
+
/** Keep generated parts linked when reconciliation assigns their room its stable ID. */
|
|
21
|
+
export declare function remapPorchOwner(metadata: Record<string, unknown> | undefined, ids: ReadonlyMap<string, string>): Record<string, unknown> | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* A porch part's id and shape, for the structure sync to notice a hand edit or a delete (and run
|
|
24
|
+
* the kernel, which hands the porch's framing over); null for any other node.
|
|
25
|
+
*/
|
|
26
|
+
export declare function porchPartSignature(node: AnyNode | null | undefined): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* The kernel's porch framing pass over one level: which posts and beams to put and delete, and
|
|
29
|
+
* the porches whose framing a hand edit has handed to the user. `zones` are the level's rooms as
|
|
30
|
+
* the pass leaves them, `plates` its floor plates, `current` a node as the pass has it so far;
|
|
31
|
+
* `previousNodes` (the scene before the edit) tells a deleted part from one never made.
|
|
32
|
+
*/
|
|
33
|
+
export declare function reconcilePorchFraming({ levelId, nodes, previousNodes, zones, plates, current, mintId, }: {
|
|
34
|
+
levelId: string;
|
|
35
|
+
nodes: Nodes;
|
|
36
|
+
previousNodes?: Nodes;
|
|
37
|
+
zones: readonly ZoneNode[];
|
|
38
|
+
plates: readonly SlabNode[];
|
|
39
|
+
current: (id: string) => AnyNode | undefined;
|
|
40
|
+
mintId: (kind: 'column' | 'beam') => string;
|
|
41
|
+
}): {
|
|
42
|
+
put: AnyNode[];
|
|
43
|
+
delete: AnyNodeId[];
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=porch-framing-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"porch-framing-sync.d.ts","sourceRoot":"","sources":["../../src/lib/porch-framing-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAYvE;;;;;;;;GAQG;AAEH,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAG9C,6FAA6F;AAC7F,MAAM,MAAM,iBAAiB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzF,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAMtF;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAIrC;AAmBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAElF;AA0HD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,KAAK,EACL,aAAa,EACb,KAAK,EACL,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;IACZ,aAAa,CAAC,EAAE,KAAK,CAAA;IACrB,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC1B,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC3B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,KAAK,MAAM,CAAA;CAC5C,GAAG;IAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAmE1C"}
|