@pascal-app/core 1.0.4 → 1.0.5
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 +102 -90
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/add-object-cases.js +301 -1
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +410 -40
- package/dist/agent-operations/__fixtures__/cases.d.ts +18 -3
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +183 -4
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/place-items-cases.js +80 -2
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +2 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +136 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +15 -3
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +630 -3
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +311 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.js +59 -11
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
- package/dist/agent-operations/achieved.d.ts +5 -0
- package/dist/agent-operations/achieved.d.ts.map +1 -1
- package/dist/agent-operations/achieved.js +21 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +3 -1
- package/dist/agent-operations/add-fence.d.ts +18 -0
- package/dist/agent-operations/add-fence.d.ts.map +1 -0
- package/dist/agent-operations/add-fence.js +48 -0
- package/dist/agent-operations/add-level.d.ts +4 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +48 -12
- package/dist/agent-operations/add-object.d.ts +38 -9
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +172 -11
- package/dist/agent-operations/add-wall.d.ts +1 -3
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +35 -9
- package/dist/agent-operations/apply-changes.d.ts +7 -1
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +54 -22
- package/dist/agent-operations/apply-outcome.d.ts +6 -0
- package/dist/agent-operations/apply-outcome.d.ts.map +1 -1
- package/dist/agent-operations/apply-outcome.js +23 -8
- package/dist/agent-operations/asset-views.d.ts +75 -0
- package/dist/agent-operations/asset-views.d.ts.map +1 -0
- package/dist/agent-operations/asset-views.js +234 -0
- package/dist/agent-operations/author-scene.d.ts +157 -0
- package/dist/agent-operations/author-scene.d.ts.map +1 -0
- package/dist/agent-operations/author-scene.js +1076 -0
- package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
- package/dist/agent-operations/authored-scene-merge.js +96 -0
- package/dist/agent-operations/batch.d.ts +22 -0
- package/dist/agent-operations/batch.d.ts.map +1 -0
- package/dist/agent-operations/batch.js +104 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/ceiling-object-observations.js +111 -0
- package/dist/agent-operations/corner-window.d.ts +19 -0
- package/dist/agent-operations/corner-window.d.ts.map +1 -0
- package/dist/agent-operations/corner-window.js +84 -0
- package/dist/agent-operations/create-roof.d.ts +32 -0
- package/dist/agent-operations/create-roof.d.ts.map +1 -0
- package/dist/agent-operations/create-roof.js +304 -0
- package/dist/agent-operations/create-room.d.ts +2 -0
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +73 -5
- package/dist/agent-operations/create-stair.d.ts +6 -28
- package/dist/agent-operations/create-stair.d.ts.map +1 -1
- package/dist/agent-operations/create-stair.js +187 -104
- package/dist/agent-operations/design-brief.d.ts +38 -0
- package/dist/agent-operations/design-brief.d.ts.map +1 -0
- package/dist/agent-operations/design-brief.js +300 -0
- package/dist/agent-operations/designs.d.ts +24 -0
- package/dist/agent-operations/designs.d.ts.map +1 -0
- package/dist/agent-operations/designs.js +48 -0
- package/dist/agent-operations/door-clearance.d.ts +16 -1
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +61 -4
- package/dist/agent-operations/duplicate-level.d.ts.map +1 -1
- package/dist/agent-operations/duplicate-level.js +2 -1
- package/dist/agent-operations/find-by-type.d.ts +14 -7
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +266 -43
- package/dist/agent-operations/furnish-room.d.ts +22 -1
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +66 -19
- package/dist/agent-operations/furniture-kind.d.ts +22 -0
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
- package/dist/agent-operations/furniture-kind.js +69 -0
- package/dist/agent-operations/get-node.d.ts +5 -2
- package/dist/agent-operations/get-node.d.ts.map +1 -1
- package/dist/agent-operations/get-node.js +82 -10
- package/dist/agent-operations/hosted-services.d.ts +2 -1
- package/dist/agent-operations/hosted-services.d.ts.map +1 -1
- package/dist/agent-operations/index.d.ts +281 -69
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +66 -5
- package/dist/agent-operations/item-space.d.ts +22 -0
- package/dist/agent-operations/item-space.d.ts.map +1 -0
- package/dist/agent-operations/item-space.js +69 -0
- package/dist/agent-operations/layout-clearance.d.ts +52 -3
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +340 -30
- package/dist/agent-operations/level-height-fill.d.ts +12 -0
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
- package/dist/agent-operations/level-height-fill.js +59 -0
- package/dist/agent-operations/level-reads.d.ts +5 -1
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +10 -3
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +23 -0
- package/dist/agent-operations/material-preset.d.ts.map +1 -1
- package/dist/agent-operations/material-preset.js +3 -9
- package/dist/agent-operations/material-refs.d.ts +7 -1
- package/dist/agent-operations/material-refs.d.ts.map +1 -1
- package/dist/agent-operations/material-refs.js +10 -5
- package/dist/agent-operations/merge-windows.d.ts +6 -0
- package/dist/agent-operations/merge-windows.d.ts.map +1 -0
- package/dist/agent-operations/merge-windows.js +27 -0
- package/dist/agent-operations/move-roofs.d.ts +9 -0
- package/dist/agent-operations/move-roofs.d.ts.map +1 -0
- package/dist/agent-operations/move-roofs.js +29 -0
- package/dist/agent-operations/paint.d.ts +2 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +163 -53
- package/dist/agent-operations/photo-elevation.d.ts +155 -0
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
- package/dist/agent-operations/photo-elevation.js +761 -0
- package/dist/agent-operations/place-in-room.d.ts +29 -0
- package/dist/agent-operations/place-in-room.d.ts.map +1 -0
- package/dist/agent-operations/place-in-room.js +403 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +15 -2
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +3 -0
- package/dist/agent-operations/point-context.d.ts +139 -0
- package/dist/agent-operations/point-context.d.ts.map +1 -0
- package/dist/agent-operations/point-context.js +1 -0
- package/dist/agent-operations/project-files.d.ts +9 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -0
- package/dist/agent-operations/project-files.js +25 -0
- package/dist/agent-operations/record-made.d.ts +18 -0
- package/dist/agent-operations/record-made.d.ts.map +1 -0
- package/dist/agent-operations/record-made.js +28 -0
- package/dist/agent-operations/roof-footprint.d.ts +24 -0
- package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
- package/dist/agent-operations/roof-footprint.js +242 -0
- package/dist/agent-operations/roof-writes.d.ts +20 -0
- package/dist/agent-operations/roof-writes.d.ts.map +1 -0
- package/dist/agent-operations/roof-writes.js +165 -0
- package/dist/agent-operations/room-findings.d.ts +54 -0
- package/dist/agent-operations/room-findings.d.ts.map +1 -0
- package/dist/agent-operations/room-findings.js +143 -0
- package/dist/agent-operations/room-floor-script.d.ts +23 -0
- package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
- package/dist/agent-operations/room-floor-script.js +54 -0
- package/dist/agent-operations/room-structure.d.ts +2 -2
- package/dist/agent-operations/room-structure.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/scene-checkpoint.js +176 -0
- package/dist/agent-operations/scene-queries.d.ts +3750 -3319
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +13 -23
- package/dist/agent-operations/scene-review.d.ts +52 -0
- package/dist/agent-operations/scene-review.d.ts.map +1 -0
- package/dist/agent-operations/scene-review.js +106 -0
- package/dist/agent-operations/scene-view.d.ts +82 -15
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +408 -51
- package/dist/agent-operations/search-assets.d.ts +2 -2
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +4 -3
- package/dist/agent-operations/search-materials.d.ts +9 -3
- package/dist/agent-operations/search-materials.d.ts.map +1 -1
- package/dist/agent-operations/search-materials.js +83 -29
- package/dist/agent-operations/set-checkpoint.d.ts +9 -0
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/set-checkpoint.js +31 -0
- package/dist/agent-operations/set-ground-level.d.ts +12 -0
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
- package/dist/agent-operations/set-ground-level.js +61 -0
- package/dist/agent-operations/site.d.ts +21 -0
- package/dist/agent-operations/site.d.ts.map +1 -0
- package/dist/agent-operations/site.js +123 -0
- package/dist/agent-operations/types.d.ts +66 -7
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.d.ts +39 -5
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +223 -44
- package/dist/agent-operations/wall-face-script.d.ts +28 -0
- package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-script.js +62 -0
- package/dist/agent-operations/wall-object-observations.d.ts +41 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/wall-object-observations.js +249 -0
- package/dist/agent-operations/wall-opening.d.ts +23 -23
- package/dist/agent-operations/wall-opening.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.d.ts +24 -0
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
- package/dist/agent-operations/wall-skirting.js +85 -0
- package/dist/agent-tools/add-object.d.ts +11 -7
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +17 -11
- package/dist/agent-tools/assets.d.ts +8 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +13 -1
- package/dist/agent-tools/author-scene.d.ts +651 -0
- package/dist/agent-tools/author-scene.d.ts.map +1 -0
- package/dist/agent-tools/author-scene.js +252 -0
- package/dist/agent-tools/batch.d.ts +25 -0
- package/dist/agent-tools/batch.d.ts.map +1 -0
- package/dist/agent-tools/batch.js +61 -0
- package/dist/agent-tools/checkpoints.d.ts +13 -0
- package/dist/agent-tools/checkpoints.d.ts.map +1 -0
- package/dist/agent-tools/checkpoints.js +16 -0
- package/dist/agent-tools/clear-scene.d.ts.map +1 -1
- package/dist/agent-tools/collections.d.ts +6 -6
- package/dist/agent-tools/collections.d.ts.map +1 -1
- package/dist/agent-tools/columns.d.ts +18 -18
- package/dist/agent-tools/columns.js +2 -2
- package/dist/agent-tools/corner-window.d.ts +46 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -0
- package/dist/agent-tools/corner-window.js +47 -0
- package/dist/agent-tools/create-room.d.ts +26 -25
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +11 -4
- package/dist/agent-tools/design-brief.d.ts +408 -0
- package/dist/agent-tools/design-brief.d.ts.map +1 -0
- package/dist/agent-tools/design-brief.js +149 -0
- package/dist/agent-tools/designs.d.ts +34 -0
- package/dist/agent-tools/designs.d.ts.map +1 -0
- package/dist/agent-tools/designs.js +50 -0
- package/dist/agent-tools/fences.d.ts +28 -0
- package/dist/agent-tools/fences.d.ts.map +1 -0
- package/dist/agent-tools/fences.js +31 -0
- package/dist/agent-tools/find-by-type.d.ts +8 -1
- package/dist/agent-tools/find-by-type.d.ts.map +1 -1
- package/dist/agent-tools/find-by-type.js +23 -2
- package/dist/agent-tools/furnish-room.d.ts +10 -8
- package/dist/agent-tools/furnish-room.d.ts.map +1 -1
- package/dist/agent-tools/furnish-room.js +3 -1
- package/dist/agent-tools/hosted-services.d.ts +177 -141
- package/dist/agent-tools/hosted-services.d.ts.map +1 -1
- package/dist/agent-tools/hosted-services.js +47 -14
- package/dist/agent-tools/index.d.ts +894 -215
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +47 -3
- package/dist/agent-tools/levels.d.ts +11 -3
- package/dist/agent-tools/levels.d.ts.map +1 -1
- package/dist/agent-tools/levels.js +16 -5
- package/dist/agent-tools/measurement.d.ts +38 -20
- package/dist/agent-tools/measurement.d.ts.map +1 -1
- package/dist/agent-tools/measurement.js +117 -67
- package/dist/agent-tools/merge-windows.d.ts +10 -0
- package/dist/agent-tools/merge-windows.d.ts.map +1 -0
- package/dist/agent-tools/merge-windows.js +12 -0
- package/dist/agent-tools/nodes.d.ts.map +1 -1
- package/dist/agent-tools/nodes.js +1 -1
- package/dist/agent-tools/notation-inventory.d.ts +16 -0
- package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
- package/dist/agent-tools/notation-inventory.js +105 -0
- package/dist/agent-tools/paint.d.ts +5 -5
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +1 -1
- package/dist/agent-tools/photo-elevation.d.ts +32 -0
- package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
- package/dist/agent-tools/photo-elevation.js +73 -0
- package/dist/agent-tools/place-in-room.d.ts +35 -0
- package/dist/agent-tools/place-in-room.d.ts.map +1 -0
- package/dist/agent-tools/place-in-room.js +61 -0
- package/dist/agent-tools/place-items.d.ts +1 -1
- package/dist/agent-tools/place-items.js +2 -2
- package/dist/agent-tools/project-files.d.ts +189 -0
- package/dist/agent-tools/project-files.d.ts.map +1 -0
- package/dist/agent-tools/project-files.js +99 -0
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/retired.d.ts +21 -0
- package/dist/agent-tools/retired.d.ts.map +1 -0
- package/dist/agent-tools/retired.js +29 -0
- package/dist/agent-tools/roofs.d.ts +100 -0
- package/dist/agent-tools/roofs.d.ts.map +1 -0
- package/dist/agent-tools/roofs.js +96 -0
- package/dist/agent-tools/room-structure.d.ts +46 -38
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +30 -27
- package/dist/agent-tools/search-materials.d.ts +22 -3
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/search-materials.js +13 -14
- package/dist/agent-tools/site.d.ts +27 -0
- package/dist/agent-tools/site.d.ts.map +1 -0
- package/dist/agent-tools/site.js +40 -0
- package/dist/agent-tools/sources.d.ts +12 -0
- package/dist/agent-tools/sources.d.ts.map +1 -0
- package/dist/agent-tools/sources.js +11 -0
- package/dist/agent-tools/stairs.d.ts +48 -28
- package/dist/agent-tools/stairs.d.ts.map +1 -1
- package/dist/agent-tools/stairs.js +65 -22
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +1 -1
- package/dist/agent-tools/view-scene.d.ts +50 -12
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +74 -31
- package/dist/agent-tools/wall-openings.d.ts +77 -73
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +9 -5
- package/dist/agent-tools/walls.d.ts +4 -4
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +7 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +454 -250
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +62 -2
- package/dist/building/corner-window.d.ts +56 -0
- package/dist/building/corner-window.d.ts.map +1 -0
- package/dist/building/corner-window.js +179 -0
- package/dist/building/ground-level.d.ts +26 -0
- package/dist/building/ground-level.d.ts.map +1 -0
- package/dist/building/ground-level.js +58 -0
- package/dist/building/index.d.ts +5 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +5 -0
- package/dist/building/level-duplication.d.ts +7472 -6613
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-duplication.js +18 -4
- package/dist/building/level-insertion.d.ts +55 -0
- package/dist/building/level-insertion.d.ts.map +1 -0
- package/dist/building/level-insertion.js +35 -0
- package/dist/building/merge-windows.d.ts +58 -0
- package/dist/building/merge-windows.d.ts.map +1 -0
- package/dist/building/merge-windows.js +189 -0
- package/dist/building/opening-style-presets.d.ts +2 -2
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/photo-elevation.d.ts +125 -0
- package/dist/building/photo-elevation.d.ts.map +1 -0
- package/dist/building/photo-elevation.js +404 -0
- package/dist/building/wall-gaps.d.ts +13 -0
- package/dist/building/wall-gaps.d.ts.map +1 -0
- package/dist/building/wall-gaps.js +158 -0
- package/dist/building/wall-openings.d.ts +154 -119
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +37 -9
- package/dist/capture/schema.d.ts +22 -22
- package/dist/capture/source.d.ts.map +1 -1
- package/dist/capture/source.js +1 -1
- package/dist/commands/structure/create-zone.d.ts +12 -1
- package/dist/commands/structure/create-zone.d.ts.map +1 -1
- package/dist/commands/structure/create-zone.js +49 -0
- package/dist/commands/structure/divide-zone.d.ts +3 -3
- package/dist/commands/structure/index.d.ts +1 -1
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +1 -1
- package/dist/commands/structure/set-floor-foundation.d.ts +6 -6
- package/dist/commands/structure/set-zone-intent.d.ts +4 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +19 -0
- package/dist/commands/structure/shared.d.ts +3642 -3213
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/zone-wall-merge.d.ts +4149 -3334
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +106 -26
- package/dist/events/bus.d.ts +22 -3
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/capture-sessions.d.ts +5 -0
- package/dist/events/capture-sessions.d.ts.map +1 -0
- package/dist/events/capture-sessions.js +31 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +1 -2
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +4 -6
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3608 -3179
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +11 -2
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
- package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
- package/dist/index.d.ts +37 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -9
- package/dist/lib/__fixtures__/mezzanine.d.ts +11800 -10132
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +3642 -3213
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/angle-accumulator.d.ts.map +1 -1
- package/dist/lib/artifact-store.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.d.ts +65 -0
- package/dist/lib/below-grade-footprints.d.ts.map +1 -0
- package/dist/lib/below-grade-footprints.js +181 -0
- package/dist/lib/building-footprint.d.ts +33 -0
- package/dist/lib/building-footprint.d.ts.map +1 -0
- package/dist/lib/building-footprint.js +89 -0
- package/dist/lib/corner-pair.d.ts +1129 -0
- package/dist/lib/corner-pair.d.ts.map +1 -0
- package/dist/lib/corner-pair.js +130 -0
- package/dist/lib/corner-snap.d.ts +54 -0
- package/dist/lib/corner-snap.d.ts.map +1 -0
- package/dist/lib/corner-snap.js +125 -0
- package/dist/lib/critically-damped.d.ts +11 -0
- package/dist/lib/critically-damped.d.ts.map +1 -0
- package/dist/lib/critically-damped.js +14 -0
- package/dist/lib/deepest-drawn.d.ts +18 -0
- package/dist/lib/deepest-drawn.d.ts.map +1 -0
- package/dist/lib/deepest-drawn.js +65 -0
- package/dist/lib/door-operation.d.ts +1 -1
- package/dist/lib/exterior-wall-loops.d.ts +17 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
- package/dist/lib/exterior-wall-loops.js +334 -0
- package/dist/lib/finish-script.d.ts +61 -0
- package/dist/lib/finish-script.d.ts.map +1 -0
- package/dist/lib/finish-script.js +86 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +4 -4
- package/dist/lib/floor-plate-paint.d.ts +3 -1
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +24 -4
- package/dist/lib/floor-plates.d.ts +50 -50
- package/dist/lib/floor-script.d.ts +24 -0
- package/dist/lib/floor-script.d.ts.map +1 -0
- package/dist/lib/floor-script.js +51 -0
- package/dist/lib/foundation-construction.d.ts +73 -0
- package/dist/lib/foundation-construction.d.ts.map +1 -0
- package/dist/lib/foundation-construction.js +242 -0
- package/dist/lib/foundation-standard.d.ts +30 -0
- package/dist/lib/foundation-standard.d.ts.map +1 -0
- package/dist/lib/foundation-standard.js +30 -0
- package/dist/lib/foundation-wall.d.ts +36 -0
- package/dist/lib/foundation-wall.d.ts.map +1 -0
- package/dist/lib/foundation-wall.js +66 -0
- package/dist/lib/generic-foundation.d.ts +40 -0
- package/dist/lib/generic-foundation.d.ts.map +1 -0
- package/dist/lib/generic-foundation.js +200 -0
- package/dist/lib/geometry-script-node.d.ts +32 -3
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +26 -0
- package/dist/lib/grade-standing.d.ts +38 -0
- package/dist/lib/grade-standing.d.ts.map +1 -0
- package/dist/lib/grade-standing.js +137 -0
- package/dist/lib/ground-level.d.ts +20 -0
- package/dist/lib/ground-level.d.ts.map +1 -0
- package/dist/lib/ground-level.js +49 -0
- package/dist/lib/ground-over-part.d.ts +13 -0
- package/dist/lib/ground-over-part.d.ts.map +1 -0
- package/dist/lib/ground-over-part.js +94 -0
- package/dist/lib/ground-seat.d.ts +47 -0
- package/dist/lib/ground-seat.d.ts.map +1 -0
- package/dist/lib/ground-seat.js +61 -0
- package/dist/lib/ground-window.d.ts +39 -0
- package/dist/lib/ground-window.d.ts.map +1 -0
- package/dist/lib/ground-window.js +147 -0
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +2 -3
- package/dist/lib/own-floor-intent.d.ts.map +1 -1
- package/dist/lib/own-floor-intent.js +4 -4
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +3 -1
- package/dist/lib/point-ask.d.ts +9 -0
- package/dist/lib/point-ask.d.ts.map +1 -0
- package/dist/lib/point-ask.js +36 -0
- package/dist/lib/room-drawn-floor.d.ts +1 -1
- package/dist/lib/room-drawn-floor.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.js +3 -3
- package/dist/lib/room-graph.d.ts.map +1 -1
- package/dist/lib/room-graph.js +2 -0
- package/dist/lib/room-name.d.ts +2 -0
- package/dist/lib/room-name.d.ts.map +1 -1
- package/dist/lib/room-name.js +2 -0
- package/dist/lib/room-topology-index.d.ts.map +1 -1
- package/dist/lib/room-topology-index.js +1 -1
- package/dist/lib/room-zone-adoption.d.ts.map +1 -1
- package/dist/lib/script-inputs-key.d.ts +3 -0
- package/dist/lib/script-inputs-key.d.ts.map +1 -0
- package/dist/lib/script-inputs-key.js +13 -0
- package/dist/lib/setback-envelope.d.ts +95 -5
- package/dist/lib/setback-envelope.d.ts.map +1 -1
- package/dist/lib/setback-envelope.js +351 -35
- package/dist/lib/site-flatwork.d.ts +11 -0
- package/dist/lib/site-flatwork.d.ts.map +1 -0
- package/dist/lib/site-flatwork.js +11 -0
- package/dist/lib/site-ground-height.d.ts +13 -0
- package/dist/lib/site-ground-height.d.ts.map +1 -0
- package/dist/lib/site-ground-height.js +16 -0
- package/dist/lib/site-placement.d.ts +362 -0
- package/dist/lib/site-placement.d.ts.map +1 -0
- package/dist/lib/site-placement.js +942 -0
- package/dist/lib/snap-ease.d.ts +20 -0
- package/dist/lib/snap-ease.d.ts.map +1 -0
- package/dist/lib/snap-ease.js +50 -0
- package/dist/lib/structure-kernel.d.ts +1 -1
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +2 -0
- package/dist/lib/surface-support-references.d.ts +4 -0
- package/dist/lib/surface-support-references.d.ts.map +1 -0
- package/dist/lib/surface-support-references.js +19 -0
- package/dist/lib/terrain-support-query.d.ts +10 -0
- package/dist/lib/terrain-support-query.d.ts.map +1 -1
- package/dist/lib/terrain-support-query.js +1 -1
- package/dist/lib/wall-face-script.d.ts +66 -0
- package/dist/lib/wall-face-script.d.ts.map +1 -0
- package/dist/lib/wall-face-script.js +235 -0
- package/dist/lib/zone-colors.d.ts +1 -1
- package/dist/lib/zone-colors.d.ts.map +1 -1
- package/dist/lib/zone-quantities.d.ts.map +1 -1
- package/dist/lib/zone-quantities.js +4 -5
- package/dist/material-kinds.d.ts +9 -0
- package/dist/material-kinds.d.ts.map +1 -0
- package/dist/material-kinds.js +30 -0
- package/dist/material-library.d.ts +4 -4
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +72 -26
- package/dist/node-slots/index.d.ts +1 -0
- package/dist/node-slots/index.d.ts.map +1 -1
- package/dist/node-slots/index.js +7 -1
- package/dist/node-slots/roof.d.ts +5 -0
- package/dist/node-slots/roof.d.ts.map +1 -0
- package/dist/node-slots/roof.js +12 -0
- package/dist/node-slots/stair.d.ts +2 -0
- package/dist/node-slots/stair.d.ts.map +1 -1
- package/dist/node-slots/stair.js +6 -2
- package/dist/procedural-items/design-placement.d.ts.map +1 -1
- package/dist/procedural-items/design.d.ts +19 -19
- package/dist/procedural-items/fixtures.d.ts +297 -297
- package/dist/procedural-items/fixtures.d.ts.map +1 -1
- package/dist/procedural-items/integration.d.ts +106 -106
- package/dist/procedural-items/joints.d.ts +4 -4
- package/dist/procedural-items/library-colors.d.ts +22 -22
- package/dist/procedural-items/library-colors.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/node.d.ts +291 -291
- package/dist/procedural-items/query.d.ts +1 -1
- package/dist/procedural-items/query.d.ts.map +1 -1
- package/dist/procedural-items/recipe.d.ts +11 -11
- package/dist/procedural-items/recipe.d.ts.map +1 -1
- package/dist/procedural-items/section.d.ts.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/scene-api.d.ts +1 -0
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +3 -0
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +2 -0
- package/dist/registry/types.d.ts +120 -1
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/assembly.d.ts +41 -41
- package/dist/schema/asset-url.d.ts +1 -1
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/base.d.ts +9 -9
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/camera.d.ts +1 -1
- package/dist/schema/collection-templates.d.ts +20 -20
- package/dist/schema/collection-templates.d.ts.map +1 -1
- package/dist/schema/geometry-metadata.d.ts +7 -7
- package/dist/schema/geometry-metadata.d.ts.map +1 -1
- package/dist/schema/geometry-source.d.ts +26 -16
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +14 -0
- package/dist/schema/index.d.ts +10 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +10 -7
- package/dist/schema/material.d.ts +33 -33
- package/dist/schema/nodes/barrel-roof.d.ts +3 -0
- package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
- package/dist/schema/nodes/barrel-roof.js +11 -0
- package/dist/schema/nodes/block.d.ts +8 -8
- package/dist/schema/nodes/box-vent.d.ts +13 -13
- package/dist/schema/nodes/building.d.ts +9 -8
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/building.js +2 -0
- package/dist/schema/nodes/cabinet.d.ts +130 -129
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.js +1 -1
- package/dist/schema/nodes/ceiling.d.ts +15 -15
- package/dist/schema/nodes/chimney.d.ts +23 -23
- package/dist/schema/nodes/column.d.ts +207 -199
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +2 -0
- package/dist/schema/nodes/construction-dimension.d.ts +34 -34
- package/dist/schema/nodes/cupola.d.ts +15 -15
- package/dist/schema/nodes/curtain-wall.d.ts +21 -20
- package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
- package/dist/schema/nodes/curtain-wall.js +23 -0
- package/dist/schema/nodes/door.d.ts +50 -43
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +19 -0
- package/dist/schema/nodes/dormer.d.ts +37 -36
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +17 -17
- package/dist/schema/nodes/duct-fitting.d.ts +24 -24
- package/dist/schema/nodes/duct-segment.d.ts +14 -14
- package/dist/schema/nodes/duct-terminal.d.ts +12 -12
- package/dist/schema/nodes/elevator.d.ts +15 -15
- package/dist/schema/nodes/eyebrow-vent.d.ts +13 -13
- package/dist/schema/nodes/fence-feature.d.ts +37 -37
- package/dist/schema/nodes/fence-types.d.ts +32 -0
- package/dist/schema/nodes/fence-types.d.ts.map +1 -0
- package/dist/schema/nodes/fence-types.js +22 -0
- package/dist/schema/nodes/fence.d.ts +43 -72
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +4 -20
- package/dist/schema/nodes/floor-opening.d.ts +8 -8
- package/dist/schema/nodes/guide.d.ts +8 -8
- package/dist/schema/nodes/gutter.d.ts +14 -14
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.js +6 -5
- package/dist/schema/nodes/hvac-equipment.d.ts +13 -13
- package/dist/schema/nodes/imported-mesh.d.ts +8 -8
- package/dist/schema/nodes/item.d.ts +30 -25
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/lean-to-extension.d.ts +36 -36
- package/dist/schema/nodes/level.d.ts +9 -9
- package/dist/schema/nodes/lineset.d.ts +8 -8
- package/dist/schema/nodes/liquid-line.d.ts +8 -8
- package/dist/schema/nodes/measurement.d.ts +8 -8
- package/dist/schema/nodes/opening-types.d.ts +13 -13
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-fitting.d.ts +15 -15
- package/dist/schema/nodes/pipe-segment.d.ts +11 -11
- package/dist/schema/nodes/pipe-trap.d.ts +9 -9
- package/dist/schema/nodes/ridge-vent.d.ts +14 -14
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +3 -1
- package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
- package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing-config.js +34 -0
- package/dist/schema/nodes/roof-glazing.d.ts +57 -0
- package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing.js +514 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-resize.js +21 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-shape.js +44 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.js +24 -0
- package/dist/schema/nodes/roof-segment.d.ts +153 -46
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +91 -20
- package/dist/schema/nodes/roof-types.d.ts +14 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -0
- package/dist/schema/nodes/roof-types.js +14 -0
- package/dist/schema/nodes/roof.d.ts +49 -49
- package/dist/schema/nodes/scan.d.ts +8 -8
- package/dist/schema/nodes/separator.d.ts +8 -8
- package/dist/schema/nodes/shelf.d.ts +16 -16
- package/dist/schema/nodes/site-facts.d.ts +64 -0
- package/dist/schema/nodes/site-facts.d.ts.map +1 -0
- package/dist/schema/nodes/site-facts.js +73 -0
- package/dist/schema/nodes/site.d.ts +105 -63
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -70
- package/dist/schema/nodes/skylight.d.ts +41 -41
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +21 -21
- package/dist/schema/nodes/solar-panel.d.ts +21 -21
- package/dist/schema/nodes/spawn.d.ts +8 -8
- package/dist/schema/nodes/stair-construction.d.ts +3 -3
- package/dist/schema/nodes/stair-defaults.d.ts +16 -0
- package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
- package/dist/schema/nodes/stair-defaults.js +15 -0
- package/dist/schema/nodes/stair-segment.d.ts +22 -22
- package/dist/schema/nodes/stair-types.d.ts +29 -0
- package/dist/schema/nodes/stair-types.d.ts.map +1 -0
- package/dist/schema/nodes/stair-types.js +23 -0
- package/dist/schema/nodes/stair.d.ts +51 -75
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +6 -20
- package/dist/schema/nodes/structural-grid.d.ts +8 -8
- package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -2
- package/dist/schema/nodes/turbine-vent.d.ts +13 -13
- package/dist/schema/nodes/unit.d.ts +10 -10
- package/dist/schema/nodes/unit.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +479 -146
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +19 -0
- package/dist/schema/nodes/window.d.ts +55 -39
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +10 -0
- package/dist/schema/nodes/zone.d.ts +231 -12
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +10 -0
- package/dist/schema/provenance.d.ts +21 -21
- package/dist/schema/scene-material.d.ts +5 -5
- package/dist/schema/site-presentation.d.ts +100 -0
- package/dist/schema/site-presentation.d.ts.map +1 -0
- package/dist/schema/site-presentation.js +83 -0
- package/dist/schema/types.d.ts +1954 -1414
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
- package/dist/services/index.d.ts +5 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +5 -1
- package/dist/services/level-height.d.ts.map +1 -1
- package/dist/services/level-height.js +7 -3
- package/dist/services/port-connectivity.d.ts +4 -0
- package/dist/services/port-connectivity.d.ts.map +1 -1
- package/dist/services/port-connectivity.js +35 -0
- package/dist/services/project-file-sink.d.ts +9 -0
- package/dist/services/project-file-sink.d.ts.map +1 -0
- package/dist/services/project-file-sink.js +13 -0
- package/dist/services/roof-bearing.d.ts +62 -0
- package/dist/services/roof-bearing.d.ts.map +1 -0
- package/dist/services/roof-bearing.js +234 -0
- package/dist/services/roof-level.d.ts +121 -0
- package/dist/services/roof-level.d.ts.map +1 -0
- package/dist/services/roof-level.js +280 -0
- package/dist/services/roof-move.d.ts +83 -0
- package/dist/services/roof-move.d.ts.map +1 -0
- package/dist/services/roof-move.js +316 -0
- package/dist/services/stair-surface-snap.d.ts +14 -0
- package/dist/services/stair-surface-snap.d.ts.map +1 -0
- package/dist/services/stair-surface-snap.js +116 -0
- package/dist/services/storey-datum.d.ts +12 -0
- package/dist/services/storey-datum.d.ts.map +1 -0
- package/dist/services/storey-datum.js +18 -0
- package/dist/services/storey.d.ts +51 -5
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +125 -8
- package/dist/solar-panel-presets.d.ts +2 -2
- package/dist/store/actions/node-actions.d.ts +3613 -3182
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +46 -1
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/history-control.d.ts +39 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +84 -4
- package/dist/store/scene-annotations.d.ts +7267 -6409
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-preview.d.ts +16 -0
- package/dist/store/scene-preview.d.ts.map +1 -0
- package/dist/store/scene-preview.js +144 -0
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-terrain.d.ts.map +1 -1
- package/dist/store/use-live-transforms.d.ts.map +1 -1
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +37 -4
- package/dist/systems/elevator/elevator-dispatch.js +1 -1
- package/dist/systems/fence/fence-features.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +24 -3
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +9 -3
- package/dist/systems/roof/roof-elevation.d.ts +5 -0
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +91 -62
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +4623 -3516
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +5149 -4076
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.d.ts +6 -3
- package/dist/systems/slab/slab-support.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.js +78 -10
- package/dist/systems/stair/stair-detail-budget.d.ts +2 -2
- package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.d.ts +6 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +27 -14
- package/dist/systems/stair/stair-layout.d.ts +2 -2
- package/dist/systems/stair/stair-opening-preview.d.ts +3643 -3214
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.d.ts +73 -65
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.js +16 -9
- package/dist/systems/stair/stair-rail-path.d.ts +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts +16 -0
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +57 -7
- package/dist/systems/stair/stair-sizing.d.ts +101 -99
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.d.ts +11 -0
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +21 -0
- package/dist/systems/wall/wall-curve.d.ts +5 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +13 -0
- 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-room-sides.d.ts +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts.map +1 -1
- package/dist/systems/wall/wall-room-sides.js +60 -7
- package/dist/systems/wall/wall-top.d.ts +7 -4
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +14 -6
- package/dist/systems/wall/wall-topology.d.ts +4 -0
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +4 -2
- package/dist/systems/wall/wall-trim.d.ts +7 -0
- package/dist/systems/wall/wall-trim.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim.js +10 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +8 -0
- package/dist/utils/ensure-scene-openings.d.ts +7420 -6562
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +2 -2
- package/dist/utils/floor-plate-migration.d.ts +3746 -3317
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.js +2 -2
- package/dist/utils/heal-scene-graph.d.ts +12 -0
- package/dist/utils/heal-scene-graph.d.ts.map +1 -1
- package/dist/utils/heal-scene-graph.js +40 -23
- package/dist/utils/legacy-wall-datums.d.ts.map +1 -1
- package/dist/utils/legacy-wall-datums.js +2 -2
- package/dist/utils/owned-floor-opening-migration.d.ts +3642 -3213
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +3730 -7777
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/scene-migrations.d.ts +1 -1
- package/dist/utils/scene-migrations.d.ts.map +1 -1
- package/dist/utils/scene-migrations.js +1 -1
- package/dist/utils/semantic-equal.d.ts +3 -0
- package/dist/utils/semantic-equal.d.ts.map +1 -0
- package/dist/utils/semantic-equal.js +26 -0
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/wall-face-migration.d.ts +1 -1
- package/dist/utils/wall-face-migration.d.ts.map +1 -1
- package/package.json +36 -10
|
@@ -25,52 +25,40 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
25
25
|
}): {
|
|
26
26
|
plates: {
|
|
27
27
|
object: "node";
|
|
28
|
+
name?: string | undefined;
|
|
28
29
|
parentId: string | null;
|
|
29
30
|
visible: boolean;
|
|
30
|
-
metadata: Record<string, unknown>;
|
|
31
|
-
id: `slab_${string}`;
|
|
32
|
-
type: "slab";
|
|
33
|
-
polygon: [number, number][];
|
|
34
|
-
holes: [number, number][][];
|
|
35
|
-
holeMetadata: {
|
|
36
|
-
source: "stair" | "elevator" | "manual" | "room" | "floor-opening";
|
|
37
|
-
openingId?: string | undefined;
|
|
38
|
-
stairId?: string | undefined;
|
|
39
|
-
elevatorId?: string | undefined;
|
|
40
|
-
}[];
|
|
41
|
-
elevation: number;
|
|
42
|
-
thickness: number;
|
|
43
|
-
recessed: boolean;
|
|
44
|
-
autoFromWalls: boolean;
|
|
45
|
-
name?: string | undefined;
|
|
46
31
|
camera?: {
|
|
47
32
|
position: [number, number, number];
|
|
48
33
|
target: [number, number, number];
|
|
49
|
-
mode: "
|
|
34
|
+
mode: "orthographic" | "perspective";
|
|
50
35
|
fov?: number | undefined;
|
|
51
36
|
zoom?: number | undefined;
|
|
52
37
|
} | undefined;
|
|
38
|
+
metadata: Record<string, unknown>;
|
|
53
39
|
provenance?: {
|
|
54
40
|
refs: {
|
|
55
|
-
id: string;
|
|
56
41
|
ns?: string | undefined;
|
|
57
|
-
|
|
42
|
+
id: string;
|
|
43
|
+
role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
|
|
58
44
|
}[];
|
|
59
45
|
lineage?: {
|
|
60
|
-
op: "
|
|
46
|
+
op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
|
|
61
47
|
fromIds: string[];
|
|
62
48
|
} | undefined;
|
|
63
49
|
} | undefined;
|
|
50
|
+
id: `slab_${string}`;
|
|
51
|
+
type: "slab";
|
|
64
52
|
material?: {
|
|
65
53
|
id?: string | undefined;
|
|
66
|
-
preset?: "
|
|
54
|
+
preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
|
|
67
55
|
properties?: {
|
|
68
56
|
color: string;
|
|
69
57
|
roughness: number;
|
|
70
58
|
metalness: number;
|
|
71
59
|
opacity: number;
|
|
72
60
|
transparent: boolean;
|
|
73
|
-
side: "
|
|
61
|
+
side: "back" | "double" | "front";
|
|
74
62
|
} | undefined;
|
|
75
63
|
texture?: {
|
|
76
64
|
url: string;
|
|
@@ -80,20 +68,29 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
80
68
|
} | undefined;
|
|
81
69
|
materialPreset?: string | undefined;
|
|
82
70
|
slots?: Record<string, string> | undefined;
|
|
71
|
+
polygon: [number, number][];
|
|
72
|
+
holes: [number, number][][];
|
|
73
|
+
holeMetadata: {
|
|
74
|
+
source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
|
|
75
|
+
openingId?: string | undefined;
|
|
76
|
+
stairId?: string | undefined;
|
|
77
|
+
elevatorId?: string | undefined;
|
|
78
|
+
}[];
|
|
79
|
+
elevation: number;
|
|
83
80
|
floorHeight?: number | undefined;
|
|
84
81
|
referenceFloorElevation?: number | undefined;
|
|
85
82
|
foundation?: {
|
|
86
|
-
type: "
|
|
83
|
+
type: "none" | "solid";
|
|
87
84
|
material?: string | {
|
|
88
85
|
id?: string | undefined;
|
|
89
|
-
preset?: "
|
|
86
|
+
preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
|
|
90
87
|
properties?: {
|
|
91
88
|
color: string;
|
|
92
89
|
roughness: number;
|
|
93
90
|
metalness: number;
|
|
94
91
|
opacity: number;
|
|
95
92
|
transparent: boolean;
|
|
96
|
-
side: "
|
|
93
|
+
side: "back" | "double" | "front";
|
|
97
94
|
} | undefined;
|
|
98
95
|
texture?: {
|
|
99
96
|
url: string;
|
|
@@ -102,6 +99,8 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
102
99
|
} | undefined;
|
|
103
100
|
} | undefined;
|
|
104
101
|
} | undefined;
|
|
102
|
+
thickness: number;
|
|
103
|
+
recessed: boolean;
|
|
105
104
|
recessedRimElevation?: number | undefined;
|
|
106
105
|
fillToTerrain?: boolean | undefined;
|
|
107
106
|
boundary?: "auto" | undefined;
|
|
@@ -113,55 +112,44 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
113
112
|
}[] | undefined;
|
|
114
113
|
zoneIds?: string[] | undefined;
|
|
115
114
|
associatedZoneIds?: string[] | undefined;
|
|
115
|
+
autoFromWalls: boolean;
|
|
116
116
|
}[];
|
|
117
117
|
retired: {
|
|
118
118
|
object: "node";
|
|
119
|
+
name?: string | undefined;
|
|
119
120
|
parentId: string | null;
|
|
120
121
|
visible: boolean;
|
|
121
|
-
metadata: Record<string, unknown>;
|
|
122
|
-
id: `slab_${string}`;
|
|
123
|
-
type: "slab";
|
|
124
|
-
polygon: [number, number][];
|
|
125
|
-
holes: [number, number][][];
|
|
126
|
-
holeMetadata: {
|
|
127
|
-
source: "stair" | "elevator" | "manual" | "room" | "floor-opening";
|
|
128
|
-
openingId?: string | undefined;
|
|
129
|
-
stairId?: string | undefined;
|
|
130
|
-
elevatorId?: string | undefined;
|
|
131
|
-
}[];
|
|
132
|
-
elevation: number;
|
|
133
|
-
thickness: number;
|
|
134
|
-
recessed: boolean;
|
|
135
|
-
autoFromWalls: boolean;
|
|
136
|
-
name?: string | undefined;
|
|
137
122
|
camera?: {
|
|
138
123
|
position: [number, number, number];
|
|
139
124
|
target: [number, number, number];
|
|
140
|
-
mode: "
|
|
125
|
+
mode: "orthographic" | "perspective";
|
|
141
126
|
fov?: number | undefined;
|
|
142
127
|
zoom?: number | undefined;
|
|
143
128
|
} | undefined;
|
|
129
|
+
metadata: Record<string, unknown>;
|
|
144
130
|
provenance?: {
|
|
145
131
|
refs: {
|
|
146
|
-
id: string;
|
|
147
132
|
ns?: string | undefined;
|
|
148
|
-
|
|
133
|
+
id: string;
|
|
134
|
+
role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
|
|
149
135
|
}[];
|
|
150
136
|
lineage?: {
|
|
151
|
-
op: "
|
|
137
|
+
op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
|
|
152
138
|
fromIds: string[];
|
|
153
139
|
} | undefined;
|
|
154
140
|
} | undefined;
|
|
141
|
+
id: `slab_${string}`;
|
|
142
|
+
type: "slab";
|
|
155
143
|
material?: {
|
|
156
144
|
id?: string | undefined;
|
|
157
|
-
preset?: "
|
|
145
|
+
preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
|
|
158
146
|
properties?: {
|
|
159
147
|
color: string;
|
|
160
148
|
roughness: number;
|
|
161
149
|
metalness: number;
|
|
162
150
|
opacity: number;
|
|
163
151
|
transparent: boolean;
|
|
164
|
-
side: "
|
|
152
|
+
side: "back" | "double" | "front";
|
|
165
153
|
} | undefined;
|
|
166
154
|
texture?: {
|
|
167
155
|
url: string;
|
|
@@ -171,20 +159,29 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
171
159
|
} | undefined;
|
|
172
160
|
materialPreset?: string | undefined;
|
|
173
161
|
slots?: Record<string, string> | undefined;
|
|
162
|
+
polygon: [number, number][];
|
|
163
|
+
holes: [number, number][][];
|
|
164
|
+
holeMetadata: {
|
|
165
|
+
source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
|
|
166
|
+
openingId?: string | undefined;
|
|
167
|
+
stairId?: string | undefined;
|
|
168
|
+
elevatorId?: string | undefined;
|
|
169
|
+
}[];
|
|
170
|
+
elevation: number;
|
|
174
171
|
floorHeight?: number | undefined;
|
|
175
172
|
referenceFloorElevation?: number | undefined;
|
|
176
173
|
foundation?: {
|
|
177
|
-
type: "
|
|
174
|
+
type: "none" | "solid";
|
|
178
175
|
material?: string | {
|
|
179
176
|
id?: string | undefined;
|
|
180
|
-
preset?: "
|
|
177
|
+
preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
|
|
181
178
|
properties?: {
|
|
182
179
|
color: string;
|
|
183
180
|
roughness: number;
|
|
184
181
|
metalness: number;
|
|
185
182
|
opacity: number;
|
|
186
183
|
transparent: boolean;
|
|
187
|
-
side: "
|
|
184
|
+
side: "back" | "double" | "front";
|
|
188
185
|
} | undefined;
|
|
189
186
|
texture?: {
|
|
190
187
|
url: string;
|
|
@@ -193,6 +190,8 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
193
190
|
} | undefined;
|
|
194
191
|
} | undefined;
|
|
195
192
|
} | undefined;
|
|
193
|
+
thickness: number;
|
|
194
|
+
recessed: boolean;
|
|
196
195
|
recessedRimElevation?: number | undefined;
|
|
197
196
|
fillToTerrain?: boolean | undefined;
|
|
198
197
|
boundary?: "auto" | undefined;
|
|
@@ -204,6 +203,7 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
|
|
|
204
203
|
}[] | undefined;
|
|
205
204
|
zoneIds?: string[] | undefined;
|
|
206
205
|
associatedZoneIds?: string[] | undefined;
|
|
206
|
+
autoFromWalls: boolean;
|
|
207
207
|
}[];
|
|
208
208
|
remap: Map<string, string | undefined>;
|
|
209
209
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AnyNode, CompiledGeometryScript, ZoneFloorScript } from '../schema/index.js';
|
|
2
|
+
type SceneNodes = Readonly<Record<string, AnyNode>>;
|
|
3
|
+
/**
|
|
4
|
+
* What a room's floor script is built for, in level coordinates and metres: the room's walking
|
|
5
|
+
* floor (its outline inside the wall faces, on its floor plate) as `polygon` with its `holes`, and
|
|
6
|
+
* the plate's top, `elevation`. The module lays its boards out over it; the compiler cuts the build
|
|
7
|
+
* to the polygon less its holes.
|
|
8
|
+
*/
|
|
9
|
+
export type FloorScriptInputs = {
|
|
10
|
+
polygon: [number, number][];
|
|
11
|
+
holes: [number, number][][];
|
|
12
|
+
elevation: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The floor a room's script builds on, or null when the room has none (no floor plate: `hasFloor`
|
|
16
|
+
* false, or not enclosed yet). Several pieces (a floor cut through by a wall) give the largest.
|
|
17
|
+
*/
|
|
18
|
+
export declare function floorScriptInputs(nodes: SceneNodes, zoneId: string): FloorScriptInputs | null;
|
|
19
|
+
/** The key a floor script keeps of the floor it was built for (`ZoneFloorScript.inputs`). */
|
|
20
|
+
export declare function floorScriptInputsKey(inputs: FloorScriptInputs): string;
|
|
21
|
+
/** A compile as the zone keeps it: its script source and the key of the floor it was built for. */
|
|
22
|
+
export declare function floorScriptRecord(compiled: CompiledGeometryScript, inputs: FloorScriptInputs, previous?: ZoneFloorScript): ZoneFloorScript;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=floor-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floor-script.d.ts","sourceRoot":"","sources":["../../src/lib/floor-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAejF,KAAK,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CA0B7F;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEtE;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,eAAe,GACzB,eAAe,CAEjB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { DEFAULT_SLAB_ELEVATION } from '../schema/nodes/slab.js';
|
|
2
|
+
import { scriptSource } from './geometry-script-node.js';
|
|
3
|
+
import { levelWallCover, plateLevelContext } from './plate-surface.js';
|
|
4
|
+
import { area, difference, intersection, union, } from './polygon-boolean.js';
|
|
5
|
+
import { roomFloorPlate } from './room-floor-plate.js';
|
|
6
|
+
import { scriptInputsKey } from './script-inputs-key.js';
|
|
7
|
+
const round = (value) => Math.round(value * 1e4) / 1e4;
|
|
8
|
+
const roundRing = (ring) => ring.map(([x, z]) => [round(x), round(z)]);
|
|
9
|
+
/** Inputs by wall cover (memoised per wall signature in `levelWallCover`), then by room and plate. */
|
|
10
|
+
const inputsByCover = new WeakMap();
|
|
11
|
+
/**
|
|
12
|
+
* The floor a room's script builds on, or null when the room has none (no floor plate: `hasFloor`
|
|
13
|
+
* false, or not enclosed yet). Several pieces (a floor cut through by a wall) give the largest.
|
|
14
|
+
*/
|
|
15
|
+
export function floorScriptInputs(nodes, zoneId) {
|
|
16
|
+
const zone = nodes[zoneId];
|
|
17
|
+
if (zone?.type !== 'zone' || zone.polygon.length < 3 || !zone.parentId)
|
|
18
|
+
return null;
|
|
19
|
+
const context = plateLevelContext(nodes[zone.parentId] ?? null, (id) => nodes[id]);
|
|
20
|
+
const plate = roomFloorPlate(context.slabs, zone.id);
|
|
21
|
+
if (!plate || plate.polygon.length < 3)
|
|
22
|
+
return null;
|
|
23
|
+
const cover = levelWallCover(context.walls);
|
|
24
|
+
const cache = inputsByCover.get(cover) ?? new Map();
|
|
25
|
+
inputsByCover.set(cover, cache);
|
|
26
|
+
const elevation = round(plate.elevation ?? DEFAULT_SLAB_ELEVATION);
|
|
27
|
+
const key = JSON.stringify([zone.polygon, zone.holes, plate.polygon, plate.holes, elevation]);
|
|
28
|
+
if (cache.has(key))
|
|
29
|
+
return cache.get(key);
|
|
30
|
+
const room = union([{ outer: zone.polygon, holes: zone.holes ?? [] }]);
|
|
31
|
+
const floor = intersection(cover.length ? difference(room, cover) : room, union([{ outer: plate.polygon, holes: plate.holes ?? [] }]));
|
|
32
|
+
let largest;
|
|
33
|
+
for (const piece of floor)
|
|
34
|
+
if (!largest || area([piece]) > area([largest]))
|
|
35
|
+
largest = piece;
|
|
36
|
+
const inputs = largest
|
|
37
|
+
? { polygon: roundRing(largest.outer), holes: largest.holes.map(roundRing), elevation }
|
|
38
|
+
: null;
|
|
39
|
+
if (cache.size > 64)
|
|
40
|
+
cache.delete(cache.keys().next().value);
|
|
41
|
+
cache.set(key, inputs);
|
|
42
|
+
return inputs;
|
|
43
|
+
}
|
|
44
|
+
/** The key a floor script keeps of the floor it was built for (`ZoneFloorScript.inputs`). */
|
|
45
|
+
export function floorScriptInputsKey(inputs) {
|
|
46
|
+
return scriptInputsKey(JSON.stringify([inputs.polygon, inputs.holes, inputs.elevation]));
|
|
47
|
+
}
|
|
48
|
+
/** A compile as the zone keeps it: its script source and the key of the floor it was built for. */
|
|
49
|
+
export function floorScriptRecord(compiled, inputs, previous) {
|
|
50
|
+
return { ...scriptSource(compiled, {}, previous), inputs: floorScriptInputsKey(inputs) };
|
|
51
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { AnyNode, AnyNodeId } from '../schema/index.js';
|
|
2
|
+
import type { Assembly } from '../schema/assembly.js';
|
|
3
|
+
/** What a foundation wall is built of: block, or cast in place. */
|
|
4
|
+
export type FoundationConstructionId = 'cmu' | 'cast-concrete';
|
|
5
|
+
/** Where the scene says the building stands, as far as foundation practice goes. */
|
|
6
|
+
export type FoundationRegionId = 'us' | 'europe' | 'generic';
|
|
7
|
+
export type FoundationConstruction = {
|
|
8
|
+
id: FoundationConstructionId;
|
|
9
|
+
/** Short name, for the results the agent reads. */
|
|
10
|
+
label: string;
|
|
11
|
+
/** The wall as the agent is told of it. */
|
|
12
|
+
description: string;
|
|
13
|
+
/** The stack a new foundation wall stores, outside in (the wall's thickness is its sum). */
|
|
14
|
+
assembly: Assembly;
|
|
15
|
+
/** The course the generic foundation draws up to the floor, where the walls above it are thinner. */
|
|
16
|
+
stemThickness: number;
|
|
17
|
+
/** How far the ground floor stands over finished grade: the top of the foundation, metres. */
|
|
18
|
+
seatAboveGrade: number;
|
|
19
|
+
/** Where the seat comes from. */
|
|
20
|
+
seatBasis: string;
|
|
21
|
+
/** Whether the numbers cite a standard (`standard`) or are a sensible default (`default`). */
|
|
22
|
+
source: 'standard' | 'default';
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The foundation constructions, as data: the wall a person gets below grade, the course the generic
|
|
26
|
+
* foundation draws, and how high the floor stands over the ground. The generic one (`cmu`) is the
|
|
27
|
+
* US residential practice and stays the answer wherever nothing says better.
|
|
28
|
+
*
|
|
29
|
+
* - `cmu`: 8 in block, 2x4 pressure-treated furring laid flat inside (IRC R404.1, R317.1), the
|
|
30
|
+
* floor 8 in over grade (R317.1 keeps wood framing that far off exposed ground).
|
|
31
|
+
* - `cast-concrete`: the continental and British practice of a cast wall, 25 cm, insulated and
|
|
32
|
+
* waterproofed on the outside. The thicknesses are the usual ones (cellar walls of 20 to 25 cm,
|
|
33
|
+
* perimeter insulation of 10 cm, a 4 mm bitumen sheet), a sensible default rather than one
|
|
34
|
+
* country's code. The floor 15 cm over the ground: the damp-proof course of British practice
|
|
35
|
+
* (Approved Document C, NHBC) stands at least 150 mm over it, and plinths elsewhere run as high.
|
|
36
|
+
*/
|
|
37
|
+
export declare const FOUNDATION_CONSTRUCTIONS: Record<FoundationConstructionId, FoundationConstruction>;
|
|
38
|
+
/**
|
|
39
|
+
* What the tool descriptions say of the construction, in one phrase; a test keeps its numbers equal
|
|
40
|
+
* to the data above.
|
|
41
|
+
*/
|
|
42
|
+
export declare const FOUNDATION_BY_REGION_NOTE = "built of what the building's region says: 8 in CMU with 2x4 pressure-treated furring laid flat inside (0.241 m) in the United States and where the scene does not say where the building stands, 25 cm cast concrete insulated and waterproofed outside (0.354 m) in Europe; the result names the region it read";
|
|
43
|
+
/** What the scene says about where the building stands, and the construction that follows. */
|
|
44
|
+
export type FoundationReading = {
|
|
45
|
+
region: FoundationRegionId;
|
|
46
|
+
construction: FoundationConstruction;
|
|
47
|
+
/** Why this construction, for the agent: the region read and what it was read from. */
|
|
48
|
+
basis: string;
|
|
49
|
+
};
|
|
50
|
+
type Nodes = Record<AnyNodeId, AnyNode>;
|
|
51
|
+
/**
|
|
52
|
+
* Where the scene says the building stands, from what it carries without any plugin and in the
|
|
53
|
+
* order Bones' jurisdiction guess reads the same site: the state set by hand on the site
|
|
54
|
+
* (`metadata.codeOverrides.state`), the site's address state, the parcel's state; then, which
|
|
55
|
+
* Bones has no use for, the country the dossier's address ends with, and last the site's
|
|
56
|
+
* coordinates (a point over Europe). Nothing else is guessed: not the browser (core runs on the
|
|
57
|
+
* server too, where there is none), and a state or country that is not recognised leaves the
|
|
58
|
+
* region generic.
|
|
59
|
+
*/
|
|
60
|
+
export declare function foundationRegionOf(nodes: Nodes, buildingId?: string | null): {
|
|
61
|
+
region: FoundationRegionId;
|
|
62
|
+
basis: string;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* The foundation construction of a building, by region: the US block practice, cast concrete in
|
|
66
|
+
* Europe, and the generic block where the scene says nothing. `basis` names what was read, for the
|
|
67
|
+
* agent to repeat.
|
|
68
|
+
*/
|
|
69
|
+
export declare function foundationReadingOf(nodes: Nodes, buildingId?: string | null): FoundationReading;
|
|
70
|
+
/** The reading for the building a level belongs to (no building: the site's region alone). */
|
|
71
|
+
export declare function foundationReadingOfLevel(nodes: Nodes, levelId: string): FoundationReading;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=foundation-construction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foundation-construction.d.ts","sourceRoot":"","sources":["../../src/lib/foundation-construction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD,mEAAmE;AACnE,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,eAAe,CAAA;AAE9D,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,wBAAwB,CAAA;IAC5B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,QAAQ,EAAE,QAAQ,CAAA;IAClB,qGAAqG;IACrG,aAAa,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,CAAA;IACtB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;CAC/B,CAAA;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,sBAAsB,CAuC7F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,qTAC8Q,CAAA;AAEpT,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,YAAY,EAAE,sBAAsB,CAAA;IACpC,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAmIvC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwC/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAS/F;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAGzF"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { FOUNDATION_STANDARD } from './foundation-standard.js';
|
|
2
|
+
const INCH = 0.0254;
|
|
3
|
+
/**
|
|
4
|
+
* The foundation constructions, as data: the wall a person gets below grade, the course the generic
|
|
5
|
+
* foundation draws, and how high the floor stands over the ground. The generic one (`cmu`) is the
|
|
6
|
+
* US residential practice and stays the answer wherever nothing says better.
|
|
7
|
+
*
|
|
8
|
+
* - `cmu`: 8 in block, 2x4 pressure-treated furring laid flat inside (IRC R404.1, R317.1), the
|
|
9
|
+
* floor 8 in over grade (R317.1 keeps wood framing that far off exposed ground).
|
|
10
|
+
* - `cast-concrete`: the continental and British practice of a cast wall, 25 cm, insulated and
|
|
11
|
+
* waterproofed on the outside. The thicknesses are the usual ones (cellar walls of 20 to 25 cm,
|
|
12
|
+
* perimeter insulation of 10 cm, a 4 mm bitumen sheet), a sensible default rather than one
|
|
13
|
+
* country's code. The floor 15 cm over the ground: the damp-proof course of British practice
|
|
14
|
+
* (Approved Document C, NHBC) stands at least 150 mm over it, and plinths elsewhere run as high.
|
|
15
|
+
*/
|
|
16
|
+
export const FOUNDATION_CONSTRUCTIONS = {
|
|
17
|
+
cmu: {
|
|
18
|
+
id: 'cmu',
|
|
19
|
+
label: 'CMU',
|
|
20
|
+
description: '8 in (0.203 m) CMU with 2x4 pressure-treated furring laid flat on the inside, 16 in on centre, interior finish as the level has it',
|
|
21
|
+
assembly: {
|
|
22
|
+
layers: [
|
|
23
|
+
{ id: 'block', role: 'structure', core: true, material: 'cmu', thickness: 0.203 },
|
|
24
|
+
// IRC R317.1: furring on the inside of below-grade masonry is pressure treated, 16 in on centre.
|
|
25
|
+
{ id: 'furring', role: 'furring', material: 'pressure-treated wood', thickness: 0.038 },
|
|
26
|
+
],
|
|
27
|
+
face: 'exterior',
|
|
28
|
+
},
|
|
29
|
+
stemThickness: FOUNDATION_STANDARD.stemThickness,
|
|
30
|
+
seatAboveGrade: 0.203,
|
|
31
|
+
seatBasis: 'IRC R317.1 keeps wood framing resting on a foundation wall 8 in from exposed ground',
|
|
32
|
+
source: 'standard',
|
|
33
|
+
},
|
|
34
|
+
'cast-concrete': {
|
|
35
|
+
id: 'cast-concrete',
|
|
36
|
+
label: 'cast concrete',
|
|
37
|
+
description: '25 cm (0.25 m) cast concrete with 10 cm of insulation and a bitumen waterproofing membrane on the outside, interior finish as the level has it',
|
|
38
|
+
assembly: {
|
|
39
|
+
layers: [
|
|
40
|
+
{ id: 'membrane', role: 'membrane', material: 'bitumen membrane', thickness: 0.004 },
|
|
41
|
+
{ id: 'insulation', role: 'insulation', material: 'perimeter insulation', thickness: 0.1 },
|
|
42
|
+
{ id: 'concrete', role: 'structure', core: true, material: 'concrete', thickness: 0.25 },
|
|
43
|
+
],
|
|
44
|
+
face: 'exterior',
|
|
45
|
+
},
|
|
46
|
+
stemThickness: 0.25,
|
|
47
|
+
seatAboveGrade: 0.15,
|
|
48
|
+
seatBasis: 'a sensible default: the damp-proof course of British practice (Approved Document C, NHBC) stands at least 150 mm over the ground and continental plinths run about as high; verify the local rule',
|
|
49
|
+
source: 'default',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* What the tool descriptions say of the construction, in one phrase; a test keeps its numbers equal
|
|
54
|
+
* to the data above.
|
|
55
|
+
*/
|
|
56
|
+
export const FOUNDATION_BY_REGION_NOTE = "built of what the building's region says: 8 in CMU with 2x4 pressure-treated furring laid flat inside (0.241 m) in the United States and where the scene does not say where the building stands, 25 cm cast concrete insulated and waterproofed outside (0.354 m) in Europe; the result names the region it read";
|
|
57
|
+
const US_STATES = new Set('AL AK AZ AR CA CO CT DE DC FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI WY'.split(' '));
|
|
58
|
+
const US_STATE_NAMES = Object.fromEntries([
|
|
59
|
+
['ALABAMA', 'AL'],
|
|
60
|
+
['ALASKA', 'AK'],
|
|
61
|
+
['ARIZONA', 'AZ'],
|
|
62
|
+
['ARKANSAS', 'AR'],
|
|
63
|
+
['CALIFORNIA', 'CA'],
|
|
64
|
+
['COLORADO', 'CO'],
|
|
65
|
+
['CONNECTICUT', 'CT'],
|
|
66
|
+
['DELAWARE', 'DE'],
|
|
67
|
+
['DISTRICT OF COLUMBIA', 'DC'],
|
|
68
|
+
['FLORIDA', 'FL'],
|
|
69
|
+
['GEORGIA', 'GA'],
|
|
70
|
+
['HAWAII', 'HI'],
|
|
71
|
+
['IDAHO', 'ID'],
|
|
72
|
+
['ILLINOIS', 'IL'],
|
|
73
|
+
['INDIANA', 'IN'],
|
|
74
|
+
['IOWA', 'IA'],
|
|
75
|
+
['KANSAS', 'KS'],
|
|
76
|
+
['KENTUCKY', 'KY'],
|
|
77
|
+
['LOUISIANA', 'LA'],
|
|
78
|
+
['MAINE', 'ME'],
|
|
79
|
+
['MARYLAND', 'MD'],
|
|
80
|
+
['MASSACHUSETTS', 'MA'],
|
|
81
|
+
['MICHIGAN', 'MI'],
|
|
82
|
+
['MINNESOTA', 'MN'],
|
|
83
|
+
['MISSISSIPPI', 'MS'],
|
|
84
|
+
['MISSOURI', 'MO'],
|
|
85
|
+
['MONTANA', 'MT'],
|
|
86
|
+
['NEBRASKA', 'NE'],
|
|
87
|
+
['NEVADA', 'NV'],
|
|
88
|
+
['NEW HAMPSHIRE', 'NH'],
|
|
89
|
+
['NEW JERSEY', 'NJ'],
|
|
90
|
+
['NEW MEXICO', 'NM'],
|
|
91
|
+
['NEW YORK', 'NY'],
|
|
92
|
+
['NORTH CAROLINA', 'NC'],
|
|
93
|
+
['NORTH DAKOTA', 'ND'],
|
|
94
|
+
['OHIO', 'OH'],
|
|
95
|
+
['OKLAHOMA', 'OK'],
|
|
96
|
+
['OREGON', 'OR'],
|
|
97
|
+
['PENNSYLVANIA', 'PA'],
|
|
98
|
+
['RHODE ISLAND', 'RI'],
|
|
99
|
+
['SOUTH CAROLINA', 'SC'],
|
|
100
|
+
['SOUTH DAKOTA', 'SD'],
|
|
101
|
+
['TENNESSEE', 'TN'],
|
|
102
|
+
['TEXAS', 'TX'],
|
|
103
|
+
['UTAH', 'UT'],
|
|
104
|
+
['VERMONT', 'VT'],
|
|
105
|
+
['VIRGINIA', 'VA'],
|
|
106
|
+
['WASHINGTON', 'WA'],
|
|
107
|
+
['WEST VIRGINIA', 'WV'],
|
|
108
|
+
['WISCONSIN', 'WI'],
|
|
109
|
+
['WYOMING', 'WY'],
|
|
110
|
+
]);
|
|
111
|
+
/** 'tx', 'Texas', 'TEXAS ' → 'TX'; null for anything that is no US state (a Canadian province, a French région). */
|
|
112
|
+
function usStateOf(raw) {
|
|
113
|
+
if (typeof raw !== 'string')
|
|
114
|
+
return null;
|
|
115
|
+
const text = raw.trim().toUpperCase().replace(/\s+/g, ' ');
|
|
116
|
+
if (US_STATES.has(text))
|
|
117
|
+
return text;
|
|
118
|
+
return US_STATE_NAMES[text] ?? null;
|
|
119
|
+
}
|
|
120
|
+
const fold = (text) => text
|
|
121
|
+
.normalize('NFD')
|
|
122
|
+
.replace(/\p{Diacritic}/gu, '')
|
|
123
|
+
.toLowerCase()
|
|
124
|
+
.replace(/[^a-z ]/g, ' ')
|
|
125
|
+
.replace(/\s+/g, ' ')
|
|
126
|
+
.trim();
|
|
127
|
+
const UNITED_STATES_NAMES = new Set(['usa', 'us', 'united states', 'united states of america']);
|
|
128
|
+
/** The countries a formatted address can end with, where masonry and cast foundations are the practice. */
|
|
129
|
+
const EUROPEAN_COUNTRY_NAMES = new Set([
|
|
130
|
+
'albania, andorra, austria, belgium, belgique, belgie, bosnia and herzegovina, bulgaria, croatia, cyprus,',
|
|
131
|
+
'czechia, czech republic, denmark, estonia, finland, france, germany, deutschland, greece, hungary,',
|
|
132
|
+
'iceland, ireland, italy, italia, latvia, liechtenstein, lithuania, luxembourg, malta, monaco,',
|
|
133
|
+
'montenegro, netherlands, nederland, north macedonia, norway, poland, portugal, romania,',
|
|
134
|
+
'san marino, serbia, slovakia, slovenia, spain, espana, sweden, switzerland, suisse, schweiz,',
|
|
135
|
+
'svizzera, united kingdom, uk, great britain, england, scotland, wales, northern ireland',
|
|
136
|
+
]
|
|
137
|
+
.join(' ')
|
|
138
|
+
.split(',')
|
|
139
|
+
.map((name) => name.trim()));
|
|
140
|
+
/** The country the last part of a formatted address names ('…, 75008 Paris, France'), as a region. */
|
|
141
|
+
function regionOfAddress(formatted) {
|
|
142
|
+
if (typeof formatted !== 'string')
|
|
143
|
+
return null;
|
|
144
|
+
const last = formatted.split(',').at(-1);
|
|
145
|
+
if (!last)
|
|
146
|
+
return null;
|
|
147
|
+
const country = fold(last);
|
|
148
|
+
if (UNITED_STATES_NAMES.has(country))
|
|
149
|
+
return { region: 'us', country: last.trim() };
|
|
150
|
+
if (EUROPEAN_COUNTRY_NAMES.has(country))
|
|
151
|
+
return { region: 'europe', country: last.trim() };
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* A coarse box over Europe, for a site with a point and no address. It leaves out Africa and the
|
|
156
|
+
* Near East, and what it takes in beyond the continent (Anatolia's west, Kaliningrad) is masonry
|
|
157
|
+
* country too. Canada and the United States are not read from coordinates: their border is no
|
|
158
|
+
* box, and a site with only a point there keeps the generic construction.
|
|
159
|
+
*/
|
|
160
|
+
function inEurope(lat, lng) {
|
|
161
|
+
return lat >= 36 && lat <= 71.5 && lng >= -10.7 && lng <= 31;
|
|
162
|
+
}
|
|
163
|
+
function finite(value) {
|
|
164
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
165
|
+
}
|
|
166
|
+
function siteOf(nodes, buildingId) {
|
|
167
|
+
const building = buildingId ? nodes[buildingId] : undefined;
|
|
168
|
+
const parent = building?.parentId ? nodes[building.parentId] : undefined;
|
|
169
|
+
if (parent?.type === 'site')
|
|
170
|
+
return parent;
|
|
171
|
+
const site = Object.values(nodes).find((node) => node.type === 'site');
|
|
172
|
+
return site ?? null;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Where the scene says the building stands, from what it carries without any plugin and in the
|
|
176
|
+
* order Bones' jurisdiction guess reads the same site: the state set by hand on the site
|
|
177
|
+
* (`metadata.codeOverrides.state`), the site's address state, the parcel's state; then, which
|
|
178
|
+
* Bones has no use for, the country the dossier's address ends with, and last the site's
|
|
179
|
+
* coordinates (a point over Europe). Nothing else is guessed: not the browser (core runs on the
|
|
180
|
+
* server too, where there is none), and a state or country that is not recognised leaves the
|
|
181
|
+
* region generic.
|
|
182
|
+
*/
|
|
183
|
+
export function foundationRegionOf(nodes, buildingId) {
|
|
184
|
+
const site = siteOf(nodes, buildingId);
|
|
185
|
+
const nowhere = {
|
|
186
|
+
region: 'generic',
|
|
187
|
+
basis: 'the scene does not say where the building stands (no site state, address country or coordinates)',
|
|
188
|
+
};
|
|
189
|
+
if (!site)
|
|
190
|
+
return nowhere;
|
|
191
|
+
const overrides = site.metadata?.codeOverrides;
|
|
192
|
+
const byHand = usStateOf(overrides?.state);
|
|
193
|
+
if (byHand)
|
|
194
|
+
return { region: 'us', basis: `the site's code overrides set the state ${byHand}` };
|
|
195
|
+
const addressState = usStateOf(site.address?.state);
|
|
196
|
+
if (addressState)
|
|
197
|
+
return { region: 'us', basis: `the site's address is in the state ${addressState}` };
|
|
198
|
+
const parcelState = usStateOf(site.parcel?.state);
|
|
199
|
+
if (parcelState)
|
|
200
|
+
return { region: 'us', basis: `the site's parcel is in the state ${parcelState}` };
|
|
201
|
+
const dossier = site.dossier;
|
|
202
|
+
const named = regionOfAddress(dossier?.address?.formatted);
|
|
203
|
+
if (named) {
|
|
204
|
+
return {
|
|
205
|
+
region: named.region,
|
|
206
|
+
basis: `the site's dossier address ends with ${named.country}`,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
const origin = site.parcel?.originLngLat;
|
|
210
|
+
const points = [
|
|
211
|
+
{ lat: dossier?.point?.lat, lng: dossier?.point?.lng },
|
|
212
|
+
...(Array.isArray(origin) ? [{ lat: origin[1], lng: origin[0] }] : []),
|
|
213
|
+
];
|
|
214
|
+
for (const { lat, lng } of points) {
|
|
215
|
+
if (finite(lat) && finite(lng) && inEurope(lat, lng)) {
|
|
216
|
+
return {
|
|
217
|
+
region: 'europe',
|
|
218
|
+
basis: `the site's coordinates (${lat.toFixed(2)}, ${lng.toFixed(2)}) lie in Europe`,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return nowhere;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* The foundation construction of a building, by region: the US block practice, cast concrete in
|
|
226
|
+
* Europe, and the generic block where the scene says nothing. `basis` names what was read, for the
|
|
227
|
+
* agent to repeat.
|
|
228
|
+
*/
|
|
229
|
+
export function foundationReadingOf(nodes, buildingId) {
|
|
230
|
+
const { region, basis: regionBasis } = foundationRegionOf(nodes, buildingId);
|
|
231
|
+
const id = region === 'europe' ? 'cast-concrete' : 'cmu';
|
|
232
|
+
const regionPart = region === 'generic'
|
|
233
|
+
? `no region known (${regionBasis})`
|
|
234
|
+
: `region ${region === 'us' ? 'United States' : 'Europe'} (${regionBasis})`;
|
|
235
|
+
const basis = `${regionPart}${region === 'generic' ? '; the generic block foundation applies' : ''}`;
|
|
236
|
+
return { region, construction: FOUNDATION_CONSTRUCTIONS[id], basis };
|
|
237
|
+
}
|
|
238
|
+
/** The reading for the building a level belongs to (no building: the site's region alone). */
|
|
239
|
+
export function foundationReadingOfLevel(nodes, levelId) {
|
|
240
|
+
const parent = nodes[(nodes[levelId]?.parentId ?? '')];
|
|
241
|
+
return foundationReadingOf(nodes, parent?.type === 'building' ? parent.id : null);
|
|
242
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The standard numbers of a residential foundation, in metres, stated once: the generic foundation
|
|
3
|
+
* the viewer draws under every building (`genericFoundation`), Bones' pour and the sections
|
|
4
|
+
* plugin's drawings all read them. They are the common US residential values (IRC chapters 4 and
|
|
5
|
+
* 5), not a jurisdiction's: core holds no frost data, so what depends on one (the frost line, the
|
|
6
|
+
* wall convention) stays with the jurisdiction profile in Bones.
|
|
7
|
+
*/
|
|
8
|
+
export declare const FOUNDATION_STANDARD: {
|
|
9
|
+
/** Continuous footing under an exterior wall: 16 in wide, the usual pour for light framing (IRC R403.1). */
|
|
10
|
+
readonly footingWidth: number;
|
|
11
|
+
/** 6 in is the minimum (IRC Table R403.1(1)); 8 in is the near-universal pour. */
|
|
12
|
+
readonly footingThickness: number;
|
|
13
|
+
/**
|
|
14
|
+
* How far the footing's bottom sits under the lowest grade where nothing says better: 12 in, the
|
|
15
|
+
* shallowest Bones allows (IRC R403.1.4.1 asks for the frost line, which core does not know). A
|
|
16
|
+
* generic depth, drawn as one.
|
|
17
|
+
*/
|
|
18
|
+
readonly footingBelowGrade: number;
|
|
19
|
+
/** The foundation wall (the stem) from the footing up to the floor: 8 in (IRC R404.1). */
|
|
20
|
+
readonly stemThickness: number;
|
|
21
|
+
/** A crawl space vent, 8 × 16 in screened for 50 sq in net (IRC R408.1), within 3 ft of each corner, set 2 ft in (R408.2). */
|
|
22
|
+
readonly ventWidth: number;
|
|
23
|
+
readonly ventHeight: number;
|
|
24
|
+
readonly ventNetAreaSqIn: 50;
|
|
25
|
+
readonly ventCornerInset: number;
|
|
26
|
+
/** The crawl space access through the stem: 16 × 24 in (IRC R408.4). */
|
|
27
|
+
readonly crawlAccessWidth: number;
|
|
28
|
+
readonly crawlAccessHeight: number;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=foundation-standard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foundation-standard.d.ts","sourceRoot":"","sources":["../../src/lib/foundation-standard.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B,4GAA4G;aAC5G,YAAY;IACZ,kFAAkF;aAClF,gBAAgB;IAChB;;;;OAIG;aACH,iBAAiB;IACjB,0FAA0F;aAC1F,aAAa;IACb,8HAA8H;aAC9H,SAAS;aACT,UAAU;aACV,eAAe,EAAE,EAAE;aACnB,eAAe;IACf,wEAAwE;aACxE,gBAAgB;aAChB,iBAAiB;CACT,CAAA"}
|