@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
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { getWallFaceOffsets } from '../../systems/wall/wall-frame.js';
|
|
2
|
+
import { getBarrelRoofProfile } from './barrel-roof.js';
|
|
2
3
|
import { getDutchRoofMetrics, getSegmentSlopeFrame } from './roof-segment.js';
|
|
3
4
|
function getWallVolumeFrame(node) {
|
|
4
5
|
const { activeRh, tanTheta } = getSegmentSlopeFrame(node);
|
|
6
|
+
if (node.roofType === 'barrel')
|
|
7
|
+
return {
|
|
8
|
+
wV: node.width + (node.wallThickness ?? 0.1),
|
|
9
|
+
dV: node.depth + (node.wallThickness ?? 0.1),
|
|
10
|
+
eaveY: node.wallHeight,
|
|
11
|
+
peakY: node.wallHeight + activeRh,
|
|
12
|
+
tanTheta,
|
|
13
|
+
hasSlope: true,
|
|
14
|
+
};
|
|
5
15
|
const wallThickness = node.wallThickness ?? 0.1;
|
|
6
16
|
const autoDrop = getWallFaceOffsets({ thickness: wallThickness }).a * tanTheta;
|
|
7
17
|
const wV = Math.max(0.01, node.width + wallThickness);
|
|
@@ -49,6 +59,20 @@ function buildFaceProfile(node, frame, id) {
|
|
|
49
59
|
if (!hasSlope)
|
|
50
60
|
return rectProfile(length, eaveY);
|
|
51
61
|
switch (node.roofType) {
|
|
62
|
+
case 'barrel': {
|
|
63
|
+
if (!isEnd)
|
|
64
|
+
return rectProfile(length, node.wallHeight);
|
|
65
|
+
const profile = getBarrelRoofProfile(node.depth, getSegmentSlopeFrame(node).activeRh, node.barrelSegments ?? 12);
|
|
66
|
+
// The arch springs from the eaves' centre lines, inside the walls' outer faces; the placeable
|
|
67
|
+
// region stays convex by leaving out the walls' outer halves above their base corners.
|
|
68
|
+
return [
|
|
69
|
+
[0, 0],
|
|
70
|
+
[length, 0],
|
|
71
|
+
...profile
|
|
72
|
+
.reverse()
|
|
73
|
+
.map(([z, y]) => [z + length / 2, y + node.wallHeight]),
|
|
74
|
+
];
|
|
75
|
+
}
|
|
52
76
|
case 'gable': {
|
|
53
77
|
if (!isEnd)
|
|
54
78
|
return rectProfile(length, eaveY);
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { MaterialSchema as MaterialSchemaType } from '../material.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
hip: "hip";
|
|
6
|
-
gable: "gable";
|
|
7
|
-
shed: "shed";
|
|
8
|
-
gambrel: "gambrel";
|
|
9
|
-
dutch: "dutch";
|
|
10
|
-
mansard: "mansard";
|
|
11
|
-
conical: "conical";
|
|
12
|
-
}>;
|
|
13
|
-
export type RoofType = z.infer<typeof RoofType>;
|
|
3
|
+
import { RoofType } from './roof-types.js';
|
|
4
|
+
export { RoofType } from './roof-types.js';
|
|
14
5
|
export declare const MIN_ROOF_SEGMENT_TRIM_SPAN = 0.1;
|
|
15
6
|
export declare const RoofSegmentTrim: z.ZodDefault<z.ZodObject<{
|
|
16
7
|
left: z.ZodDefault<z.ZodNumber>;
|
|
@@ -65,8 +56,8 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
65
56
|
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
66
57
|
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
67
58
|
mode: z.ZodDefault<z.ZodEnum<{
|
|
68
|
-
perspective: "perspective";
|
|
69
59
|
orthographic: "orthographic";
|
|
60
|
+
perspective: "perspective";
|
|
70
61
|
}>>;
|
|
71
62
|
fov: z.ZodOptional<z.ZodNumber>;
|
|
72
63
|
zoom: z.ZodOptional<z.ZodNumber>;
|
|
@@ -77,23 +68,23 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
77
68
|
ns: z.ZodOptional<z.ZodString>;
|
|
78
69
|
id: z.ZodString;
|
|
79
70
|
role: z.ZodOptional<z.ZodEnum<{
|
|
80
|
-
primary: "primary";
|
|
81
|
-
piece: "piece";
|
|
82
71
|
absorbed: "absorbed";
|
|
83
72
|
alias: "alias";
|
|
84
73
|
derived: "derived";
|
|
74
|
+
piece: "piece";
|
|
75
|
+
primary: "primary";
|
|
85
76
|
}>>;
|
|
86
77
|
}, z.core.$strip>>;
|
|
87
78
|
lineage: z.ZodOptional<z.ZodObject<{
|
|
88
79
|
op: z.ZodEnum<{
|
|
80
|
+
attach: "attach";
|
|
81
|
+
convert: "convert";
|
|
82
|
+
duplicate: "duplicate";
|
|
89
83
|
import: "import";
|
|
90
|
-
|
|
84
|
+
"make-independent": "make-independent";
|
|
91
85
|
merge: "merge";
|
|
92
|
-
duplicate: "duplicate";
|
|
93
|
-
convert: "convert";
|
|
94
86
|
promote: "promote";
|
|
95
|
-
|
|
96
|
-
attach: "attach";
|
|
87
|
+
split: "split";
|
|
97
88
|
}>;
|
|
98
89
|
fromIds: z.ZodArray<z.ZodString>;
|
|
99
90
|
}, z.core.$strip>>;
|
|
@@ -103,16 +94,16 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
103
94
|
material: z.ZodOptional<z.ZodObject<{
|
|
104
95
|
id: z.ZodOptional<z.ZodString>;
|
|
105
96
|
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
106
|
-
custom: "custom";
|
|
107
|
-
white: "white";
|
|
108
97
|
brick: "brick";
|
|
109
98
|
concrete: "concrete";
|
|
110
|
-
|
|
99
|
+
custom: "custom";
|
|
111
100
|
glass: "glass";
|
|
101
|
+
marble: "marble";
|
|
112
102
|
metal: "metal";
|
|
113
103
|
plaster: "plaster";
|
|
114
104
|
tile: "tile";
|
|
115
|
-
|
|
105
|
+
white: "white";
|
|
106
|
+
wood: "wood";
|
|
116
107
|
}>>>;
|
|
117
108
|
properties: z.ZodOptional<z.ZodObject<{
|
|
118
109
|
color: z.ZodDefault<z.ZodString>;
|
|
@@ -121,9 +112,9 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
121
112
|
opacity: z.ZodDefault<z.ZodNumber>;
|
|
122
113
|
transparent: z.ZodDefault<z.ZodBoolean>;
|
|
123
114
|
side: z.ZodDefault<z.ZodEnum<{
|
|
124
|
-
front: "front";
|
|
125
115
|
back: "back";
|
|
126
116
|
double: "double";
|
|
117
|
+
front: "front";
|
|
127
118
|
}>>;
|
|
128
119
|
}, z.core.$strip>>;
|
|
129
120
|
texture: z.ZodOptional<z.ZodObject<{
|
|
@@ -136,16 +127,16 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
136
127
|
topMaterial: z.ZodOptional<z.ZodObject<{
|
|
137
128
|
id: z.ZodOptional<z.ZodString>;
|
|
138
129
|
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
139
|
-
custom: "custom";
|
|
140
|
-
white: "white";
|
|
141
130
|
brick: "brick";
|
|
142
131
|
concrete: "concrete";
|
|
143
|
-
|
|
132
|
+
custom: "custom";
|
|
144
133
|
glass: "glass";
|
|
134
|
+
marble: "marble";
|
|
145
135
|
metal: "metal";
|
|
146
136
|
plaster: "plaster";
|
|
147
137
|
tile: "tile";
|
|
148
|
-
|
|
138
|
+
white: "white";
|
|
139
|
+
wood: "wood";
|
|
149
140
|
}>>>;
|
|
150
141
|
properties: z.ZodOptional<z.ZodObject<{
|
|
151
142
|
color: z.ZodDefault<z.ZodString>;
|
|
@@ -154,9 +145,9 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
154
145
|
opacity: z.ZodDefault<z.ZodNumber>;
|
|
155
146
|
transparent: z.ZodDefault<z.ZodBoolean>;
|
|
156
147
|
side: z.ZodDefault<z.ZodEnum<{
|
|
157
|
-
front: "front";
|
|
158
148
|
back: "back";
|
|
159
149
|
double: "double";
|
|
150
|
+
front: "front";
|
|
160
151
|
}>>;
|
|
161
152
|
}, z.core.$strip>>;
|
|
162
153
|
texture: z.ZodOptional<z.ZodObject<{
|
|
@@ -169,16 +160,16 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
169
160
|
edgeMaterial: z.ZodOptional<z.ZodObject<{
|
|
170
161
|
id: z.ZodOptional<z.ZodString>;
|
|
171
162
|
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
172
|
-
custom: "custom";
|
|
173
|
-
white: "white";
|
|
174
163
|
brick: "brick";
|
|
175
164
|
concrete: "concrete";
|
|
176
|
-
|
|
165
|
+
custom: "custom";
|
|
177
166
|
glass: "glass";
|
|
167
|
+
marble: "marble";
|
|
178
168
|
metal: "metal";
|
|
179
169
|
plaster: "plaster";
|
|
180
170
|
tile: "tile";
|
|
181
|
-
|
|
171
|
+
white: "white";
|
|
172
|
+
wood: "wood";
|
|
182
173
|
}>>>;
|
|
183
174
|
properties: z.ZodOptional<z.ZodObject<{
|
|
184
175
|
color: z.ZodDefault<z.ZodString>;
|
|
@@ -187,9 +178,9 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
187
178
|
opacity: z.ZodDefault<z.ZodNumber>;
|
|
188
179
|
transparent: z.ZodDefault<z.ZodBoolean>;
|
|
189
180
|
side: z.ZodDefault<z.ZodEnum<{
|
|
190
|
-
front: "front";
|
|
191
181
|
back: "back";
|
|
192
182
|
double: "double";
|
|
183
|
+
front: "front";
|
|
193
184
|
}>>;
|
|
194
185
|
}, z.core.$strip>>;
|
|
195
186
|
texture: z.ZodOptional<z.ZodObject<{
|
|
@@ -202,16 +193,16 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
202
193
|
wallMaterial: z.ZodOptional<z.ZodObject<{
|
|
203
194
|
id: z.ZodOptional<z.ZodString>;
|
|
204
195
|
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
205
|
-
custom: "custom";
|
|
206
|
-
white: "white";
|
|
207
196
|
brick: "brick";
|
|
208
197
|
concrete: "concrete";
|
|
209
|
-
|
|
198
|
+
custom: "custom";
|
|
210
199
|
glass: "glass";
|
|
200
|
+
marble: "marble";
|
|
211
201
|
metal: "metal";
|
|
212
202
|
plaster: "plaster";
|
|
213
203
|
tile: "tile";
|
|
214
|
-
|
|
204
|
+
white: "white";
|
|
205
|
+
wood: "wood";
|
|
215
206
|
}>>>;
|
|
216
207
|
properties: z.ZodOptional<z.ZodObject<{
|
|
217
208
|
color: z.ZodDefault<z.ZodString>;
|
|
@@ -220,9 +211,9 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
220
211
|
opacity: z.ZodDefault<z.ZodNumber>;
|
|
221
212
|
transparent: z.ZodDefault<z.ZodBoolean>;
|
|
222
213
|
side: z.ZodDefault<z.ZodEnum<{
|
|
223
|
-
front: "front";
|
|
224
214
|
back: "back";
|
|
225
215
|
double: "double";
|
|
216
|
+
front: "front";
|
|
226
217
|
}>>;
|
|
227
218
|
}, z.core.$strip>>;
|
|
228
219
|
texture: z.ZodOptional<z.ZodObject<{
|
|
@@ -235,15 +226,76 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
235
226
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
236
227
|
rotation: z.ZodDefault<z.ZodNumber>;
|
|
237
228
|
roofType: z.ZodDefault<z.ZodEnum<{
|
|
229
|
+
barrel: "barrel";
|
|
230
|
+
conical: "conical";
|
|
231
|
+
dutch: "dutch";
|
|
238
232
|
flat: "flat";
|
|
239
|
-
hip: "hip";
|
|
240
233
|
gable: "gable";
|
|
241
|
-
shed: "shed";
|
|
242
234
|
gambrel: "gambrel";
|
|
243
|
-
|
|
235
|
+
hip: "hip";
|
|
244
236
|
mansard: "mansard";
|
|
245
|
-
|
|
237
|
+
shed: "shed";
|
|
246
238
|
}>>;
|
|
239
|
+
barrelRise: z.ZodOptional<z.ZodNumber>;
|
|
240
|
+
barrelSegments: z.ZodOptional<z.ZodNumber>;
|
|
241
|
+
roofSystem: z.ZodOptional<z.ZodEnum<{
|
|
242
|
+
glazed: "glazed";
|
|
243
|
+
standard: "standard";
|
|
244
|
+
}>>;
|
|
245
|
+
glazing: z.ZodOptional<z.ZodObject<{
|
|
246
|
+
across: z.ZodPrefault<z.ZodObject<{
|
|
247
|
+
layout: z.ZodDefault<z.ZodEnum<{
|
|
248
|
+
count: "count";
|
|
249
|
+
"fixed-spacing": "fixed-spacing";
|
|
250
|
+
"maximum-spacing": "maximum-spacing";
|
|
251
|
+
}>>;
|
|
252
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
253
|
+
spacing: z.ZodDefault<z.ZodNumber>;
|
|
254
|
+
alignment: z.ZodDefault<z.ZodEnum<{
|
|
255
|
+
center: "center";
|
|
256
|
+
end: "end";
|
|
257
|
+
start: "start";
|
|
258
|
+
}>>;
|
|
259
|
+
}, z.core.$strip>>;
|
|
260
|
+
along: z.ZodPrefault<z.ZodObject<{
|
|
261
|
+
layout: z.ZodDefault<z.ZodEnum<{
|
|
262
|
+
count: "count";
|
|
263
|
+
"fixed-spacing": "fixed-spacing";
|
|
264
|
+
"maximum-spacing": "maximum-spacing";
|
|
265
|
+
}>>;
|
|
266
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
267
|
+
spacing: z.ZodDefault<z.ZodNumber>;
|
|
268
|
+
alignment: z.ZodDefault<z.ZodEnum<{
|
|
269
|
+
center: "center";
|
|
270
|
+
end: "end";
|
|
271
|
+
start: "start";
|
|
272
|
+
}>>;
|
|
273
|
+
}, z.core.$strip>>;
|
|
274
|
+
frameWidth: z.ZodDefault<z.ZodNumber>;
|
|
275
|
+
frameDepth: z.ZodDefault<z.ZodNumber>;
|
|
276
|
+
glassThickness: z.ZodDefault<z.ZodNumber>;
|
|
277
|
+
frameColor: z.ZodDefault<z.ZodString>;
|
|
278
|
+
glassColor: z.ZodDefault<z.ZodString>;
|
|
279
|
+
glassOpacity: z.ZodDefault<z.ZodNumber>;
|
|
280
|
+
glassRoughness: z.ZodDefault<z.ZodNumber>;
|
|
281
|
+
glazedEnds: z.ZodDefault<z.ZodBoolean>;
|
|
282
|
+
panelType: z.ZodDefault<z.ZodEnum<{
|
|
283
|
+
empty: "empty";
|
|
284
|
+
glass: "glass";
|
|
285
|
+
solid: "solid";
|
|
286
|
+
}>>;
|
|
287
|
+
panels: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
288
|
+
face: z.ZodString;
|
|
289
|
+
column: z.ZodNumber;
|
|
290
|
+
row: z.ZodNumber;
|
|
291
|
+
type: z.ZodEnum<{
|
|
292
|
+
empty: "empty";
|
|
293
|
+
glass: "glass";
|
|
294
|
+
solid: "solid";
|
|
295
|
+
}>;
|
|
296
|
+
}, z.core.$strip>>>;
|
|
297
|
+
}, z.core.$strip>>;
|
|
298
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
247
299
|
width: z.ZodDefault<z.ZodNumber>;
|
|
248
300
|
depth: z.ZodDefault<z.ZodNumber>;
|
|
249
301
|
conicalStartAngle: z.ZodOptional<z.ZodNumber>;
|
|
@@ -272,6 +324,7 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
272
324
|
wallThickness: z.ZodDefault<z.ZodNumber>;
|
|
273
325
|
deckThickness: z.ZodDefault<z.ZodNumber>;
|
|
274
326
|
overhang: z.ZodDefault<z.ZodNumber>;
|
|
327
|
+
gableOverhang: z.ZodOptional<z.ZodNumber>;
|
|
275
328
|
shingleThickness: z.ZodDefault<z.ZodNumber>;
|
|
276
329
|
arc: z.ZodOptional<z.ZodObject<{
|
|
277
330
|
centerX: z.ZodNumber;
|
|
@@ -296,12 +349,47 @@ export declare const RoofSegmentNode: z.ZodObject<{
|
|
|
296
349
|
managedByParent: z.ZodDefault<z.ZodBoolean>;
|
|
297
350
|
wallShell: z.ZodDefault<z.ZodEnum<{
|
|
298
351
|
auto: "auto";
|
|
299
|
-
omit: "omit";
|
|
300
352
|
include: "include";
|
|
353
|
+
omit: "omit";
|
|
301
354
|
}>>;
|
|
302
355
|
shedInsetEndPanels: z.ZodDefault<z.ZodBoolean>;
|
|
303
356
|
fascia: z.ZodOptional<z.ZodBoolean>;
|
|
304
357
|
fasciaHighEdge: z.ZodOptional<z.ZodBoolean>;
|
|
358
|
+
fasciaHeight: z.ZodOptional<z.ZodNumber>;
|
|
359
|
+
fasciaDepth: z.ZodOptional<z.ZodNumber>;
|
|
360
|
+
fasciaMaterial: z.ZodOptional<z.ZodObject<{
|
|
361
|
+
id: z.ZodOptional<z.ZodString>;
|
|
362
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
363
|
+
brick: "brick";
|
|
364
|
+
concrete: "concrete";
|
|
365
|
+
custom: "custom";
|
|
366
|
+
glass: "glass";
|
|
367
|
+
marble: "marble";
|
|
368
|
+
metal: "metal";
|
|
369
|
+
plaster: "plaster";
|
|
370
|
+
tile: "tile";
|
|
371
|
+
white: "white";
|
|
372
|
+
wood: "wood";
|
|
373
|
+
}>>>;
|
|
374
|
+
properties: z.ZodOptional<z.ZodObject<{
|
|
375
|
+
color: z.ZodDefault<z.ZodString>;
|
|
376
|
+
roughness: z.ZodDefault<z.ZodNumber>;
|
|
377
|
+
metalness: z.ZodDefault<z.ZodNumber>;
|
|
378
|
+
opacity: z.ZodDefault<z.ZodNumber>;
|
|
379
|
+
transparent: z.ZodDefault<z.ZodBoolean>;
|
|
380
|
+
side: z.ZodDefault<z.ZodEnum<{
|
|
381
|
+
back: "back";
|
|
382
|
+
double: "double";
|
|
383
|
+
front: "front";
|
|
384
|
+
}>>;
|
|
385
|
+
}, z.core.$strip>>;
|
|
386
|
+
texture: z.ZodOptional<z.ZodObject<{
|
|
387
|
+
url: z.ZodString;
|
|
388
|
+
repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
389
|
+
scale: z.ZodOptional<z.ZodNumber>;
|
|
390
|
+
}, z.core.$strip>>;
|
|
391
|
+
}, z.core.$strip>>;
|
|
392
|
+
fasciaMaterialPreset: z.ZodOptional<z.ZodString>;
|
|
305
393
|
gambrelLowerWidthRatio: z.ZodDefault<z.ZodNumber>;
|
|
306
394
|
gambrelLowerHeightRatio: z.ZodDefault<z.ZodNumber>;
|
|
307
395
|
mansardSteepWidthRatio: z.ZodDefault<z.ZodNumber>;
|
|
@@ -370,7 +458,7 @@ export type SegmentSlopeFrame = {
|
|
|
370
458
|
* skylight surface-frame routine, and the segment-hit raycaster) and
|
|
371
459
|
* silently drifted when a new roof type was added.
|
|
372
460
|
*/
|
|
373
|
-
export declare function getSegmentSlopeFrame(node: Pick<RoofSegmentNode, 'roofType' | 'pitch' | 'width' | 'depth'> & Partial<ShapeRatios>): SegmentSlopeFrame;
|
|
461
|
+
export declare function getSegmentSlopeFrame(node: Pick<RoofSegmentNode, 'roofType' | 'pitch' | 'width' | 'depth'> & Partial<ShapeRatios> & Pick<Partial<RoofSegmentNode>, 'barrelRise' | 'barrelSegments'>): SegmentSlopeFrame;
|
|
374
462
|
/**
|
|
375
463
|
* The eave-to-peak height of the assembled segment, derived from pitch +
|
|
376
464
|
* footprint + roofType. Replaces the legacy `roofHeight` field on the node.
|
|
@@ -384,6 +472,24 @@ export type RoofSegmentVisibleTopBounds = {
|
|
|
384
472
|
width: number;
|
|
385
473
|
depth: number;
|
|
386
474
|
};
|
|
475
|
+
/** Whether a form's ends along the segment's width are rakes, not eaves: they take `gableOverhang`. */
|
|
476
|
+
export declare function roofTypeHasRakes(roofType: RoofType): boolean;
|
|
477
|
+
/**
|
|
478
|
+
* How far a segment's deck reaches past its wall centre lines in plan, along its own x (the ridge,
|
|
479
|
+
* where a gable, gambrel or shed has its rakes) and z (the eaves): half the wall's thickness, then
|
|
480
|
+
* the eaves' overhang, which the node stores along the slope, or at the rakes its `gableOverhang`.
|
|
481
|
+
*/
|
|
482
|
+
export declare function getRoofSegmentDeckReach(segment: Pick<RoofSegmentNode, 'roofType' | 'pitch' | 'width' | 'depth'> & Partial<Pick<RoofSegmentNode, 'wallThickness' | 'overhang' | 'gableOverhang'>>): {
|
|
483
|
+
x: number;
|
|
484
|
+
z: number;
|
|
485
|
+
};
|
|
486
|
+
/**
|
|
487
|
+
* How far a segment's ends along its width reach past its wall centre lines in plan, for the readers
|
|
488
|
+
* that measure its eaves by the stored `overhang` (gutters, lean-to attachments, the sheets): a
|
|
489
|
+
* gable's, gambrel's or shed's ends are rakes, at the deck's edge (`getRoofSegmentDeckReach`); the
|
|
490
|
+
* other forms' ends are eaves like their sides, at `overhang`.
|
|
491
|
+
*/
|
|
492
|
+
export declare function getRoofSegmentEndReach(segment: Pick<RoofSegmentNode, 'roofType' | 'pitch' | 'width' | 'depth'> & Partial<Pick<RoofSegmentNode, 'wallThickness' | 'overhang' | 'gableOverhang'>>): number;
|
|
387
493
|
export declare function getRoofSegmentVisibleTopBounds(segment: RoofSegmentNode): RoofSegmentVisibleTopBounds;
|
|
388
494
|
/** Segment-local surface height used by roof accessory placement and hit disambiguation. */
|
|
389
495
|
export declare function getRoofSegmentSurfaceY(node: Pick<RoofSegmentNode, 'roofType' | 'width' | 'depth' | 'wallHeight'> & Parameters<typeof getSegmentSlopeFrame>[0], localX: number, localZ: number): number;
|
|
@@ -410,6 +516,8 @@ export type RoofSegmentSurfaceMaterialSpec = {
|
|
|
410
516
|
* to fill in for an unset segment slot — typical from the renderer.
|
|
411
517
|
*/
|
|
412
518
|
export declare function getEffectiveSegmentSurfaceMaterial(node: RoofSegmentNode, role: RoofSegmentSurfaceMaterialRole, parentFallback?: RoofSegmentSurfaceMaterialSpec): RoofSegmentSurfaceMaterialSpec;
|
|
519
|
+
/** The fascia and rake boards' own finish, or null when they take the wall role's. */
|
|
520
|
+
export declare function getSegmentFasciaMaterial(node: RoofSegmentNode): RoofSegmentSurfaceMaterialSpec | null;
|
|
413
521
|
/**
|
|
414
522
|
* Returns true when the segment has any segment-level material override —
|
|
415
523
|
* either the legacy catch-all or any of the three role-specific fields.
|
|
@@ -418,5 +526,4 @@ export declare function getEffectiveSegmentSurfaceMaterial(node: RoofSegmentNode
|
|
|
418
526
|
* shell.
|
|
419
527
|
*/
|
|
420
528
|
export declare function hasSegmentMaterialOverride(node: RoofSegmentNode): boolean;
|
|
421
|
-
export {};
|
|
422
529
|
//# sourceMappingURL=roof-segment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roof-segment.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/roof-segment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"roof-segment.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/roof-segment.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,10 @@ import dedent from 'dedent';
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { BaseNode, nodeType, objectId } from '../base.js';
|
|
4
4
|
import { MaterialSchema } from '../material.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
'gambrel',
|
|
10
|
-
'dutch',
|
|
11
|
-
'mansard',
|
|
12
|
-
'flat',
|
|
13
|
-
'conical',
|
|
14
|
-
]);
|
|
5
|
+
import { getBarrelRoofProfile } from './barrel-roof.js';
|
|
6
|
+
import { RoofGlazing, RoofSystemType } from './roof-glazing.js';
|
|
7
|
+
import { RoofType } from './roof-types.js';
|
|
8
|
+
export { RoofType } from './roof-types.js';
|
|
15
9
|
export const MIN_ROOF_SEGMENT_TRIM_SPAN = 0.1;
|
|
16
10
|
const DEFAULT_ROOF_SEGMENT_WIDTH = 8;
|
|
17
11
|
const DEFAULT_ROOF_SEGMENT_DEPTH = 6;
|
|
@@ -102,6 +96,11 @@ export const RoofSegmentNode = BaseNode.extend({
|
|
|
102
96
|
rotation: z.number().default(0),
|
|
103
97
|
// Roof shape type
|
|
104
98
|
roofType: RoofType.default('gable'),
|
|
99
|
+
barrelRise: z.number().finite().positive().optional(),
|
|
100
|
+
barrelSegments: z.number().int().min(4).max(32).optional(),
|
|
101
|
+
roofSystem: RoofSystemType.optional(),
|
|
102
|
+
glazing: RoofGlazing.optional(),
|
|
103
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
105
104
|
// Footprint dimensions
|
|
106
105
|
width: z.number().default(8),
|
|
107
106
|
depth: z.number().default(6),
|
|
@@ -132,6 +131,9 @@ export const RoofSegmentNode = BaseNode.extend({
|
|
|
132
131
|
wallThickness: z.number().default(0.1),
|
|
133
132
|
deckThickness: z.number().default(0.1),
|
|
134
133
|
overhang: z.number().default(0.3),
|
|
134
|
+
// How far the roof reaches past the gable-end walls' outside faces, in plan (a gable's or
|
|
135
|
+
// gambrel's ends, a shed's sides). Absent, as far as the eaves reach (`overhang` is along the slope).
|
|
136
|
+
gableOverhang: z.number().min(0).optional(),
|
|
135
137
|
shingleThickness: z.number().default(0.05),
|
|
136
138
|
arc: z
|
|
137
139
|
.object({
|
|
@@ -168,6 +170,13 @@ export const RoofSegmentNode = BaseNode.extend({
|
|
|
168
170
|
// Shed only: the board on the high edge. Off when that edge meets a wall
|
|
169
171
|
// (a porch cover on a ledger); a lean-to never has one.
|
|
170
172
|
fasciaHighEdge: z.boolean().optional(),
|
|
173
|
+
// The boards' height and thickness; a 1x8 (0.184 × 0.019 m) when absent. With a height set, a
|
|
174
|
+
// flat roof's boards rise to the roof's top: a coping band over the deck and membrane edges.
|
|
175
|
+
fasciaHeight: z.number().positive().optional(),
|
|
176
|
+
fasciaDepth: z.number().positive().optional(),
|
|
177
|
+
// The boards' and rakes' own finish; absent, they take the wall role's, as they always did.
|
|
178
|
+
fasciaMaterial: MaterialSchema.optional(),
|
|
179
|
+
fasciaMaterialPreset: z.string().optional(),
|
|
171
180
|
// Shape-specific ratios. Only the pair matching `roofType` is read; the
|
|
172
181
|
// rest are inert. Defined on every segment so the panel can flip
|
|
173
182
|
// roofType without losing the previous shape's tuning.
|
|
@@ -225,7 +234,9 @@ export const RoofSegmentNode = BaseNode.extend({
|
|
|
225
234
|
Roof segment node - an individual roof module within a roof group.
|
|
226
235
|
Each segment generates a complete architectural volume (walls + roof).
|
|
227
236
|
Multiple segments can be combined to form complex roof shapes.
|
|
228
|
-
- roofType: hip, gable, shed, gambrel, dutch, mansard, flat, conical
|
|
237
|
+
- roofType: hip, gable, shed, gambrel, dutch, mansard, flat, conical, barrel
|
|
238
|
+
- barrelRise: arch rise in metres, limited to half the depth/span
|
|
239
|
+
- barrelSegments: 4–32 flat arch bays, default 12
|
|
229
240
|
- width/depth: footprint dimensions
|
|
230
241
|
- conicalStartAngle / conicalSweepAngle: angular extent of a conical sector (radians)
|
|
231
242
|
- conicalFullCircle: temporarily render the complete cone while preserving the sector angles
|
|
@@ -233,10 +244,13 @@ export const RoofSegmentNode = BaseNode.extend({
|
|
|
233
244
|
- wallHeight: height of walls below the roof
|
|
234
245
|
- pitch: roof slope in degrees (angle of the primary slope face)
|
|
235
246
|
- wallThickness/deckThickness: structural thicknesses
|
|
236
|
-
- overhang: eave overhang distance
|
|
247
|
+
- overhang: eave overhang distance, along the slope
|
|
248
|
+
- gableOverhang: reach past the gable-end walls in plan (gable, gambrel, shed); absent = the eaves' reach
|
|
237
249
|
- shingleThickness: outer shingle layer thickness
|
|
238
250
|
- fascia: plumb fascia and rake boards on the eaves and rakes (gable, hip, shed, flat) (off when absent)
|
|
239
251
|
- fasciaHighEdge: shed only — a board on the high edge (off when it meets a wall; on when absent)
|
|
252
|
+
- fasciaHeight/fasciaDepth: the boards' size (a 1x8 when absent); with a height, a flat roof's boards reach its top
|
|
253
|
+
- fasciaMaterial/fasciaMaterialPreset: the boards' and rakes' finish (the wall role's when absent)
|
|
240
254
|
- gambrelLowerWidthRatio / gambrelLowerHeightRatio: kink position on gambrel roofs
|
|
241
255
|
- mansardSteepWidthRatio / mansardSteepHeightRatio: waist position on mansard roofs
|
|
242
256
|
- dutchHipWidthRatio / dutchHipHeightRatio: hip-to-gable split on dutch roofs
|
|
@@ -435,6 +449,13 @@ function getPrimarySlopeRiseFraction(input) {
|
|
|
435
449
|
* silently drifted when a new roof type was added.
|
|
436
450
|
*/
|
|
437
451
|
export function getSegmentSlopeFrame(node) {
|
|
452
|
+
if (node.roofType === 'barrel') {
|
|
453
|
+
const run = Math.max(0.005, node.depth / 2);
|
|
454
|
+
const rise = Math.min(run, node.barrelRise ?? run / 2);
|
|
455
|
+
const tanTheta = rise / run;
|
|
456
|
+
const cosTheta = 1 / Math.sqrt(1 + tanTheta * tanTheta);
|
|
457
|
+
return { run, rise, tanTheta, cosTheta, sinTheta: tanTheta * cosTheta, activeRh: rise };
|
|
458
|
+
}
|
|
438
459
|
const ratios = withRatioDefaults(node);
|
|
439
460
|
const run = getPrimarySlopeRun(ratios);
|
|
440
461
|
// `!(pitch > 0)` (not `pitch <= 0`) so a missing/NaN pitch — e.g. a segment
|
|
@@ -459,17 +480,46 @@ export function getSegmentSlopeFrame(node) {
|
|
|
459
480
|
export function getActiveRoofHeight(node) {
|
|
460
481
|
return getSegmentSlopeFrame(node).activeRh;
|
|
461
482
|
}
|
|
483
|
+
/** Whether a form's ends along the segment's width are rakes, not eaves: they take `gableOverhang`. */
|
|
484
|
+
export function roofTypeHasRakes(roofType) {
|
|
485
|
+
return roofType === 'gable' || roofType === 'gambrel' || roofType === 'shed';
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* How far a segment's deck reaches past its wall centre lines in plan, along its own x (the ridge,
|
|
489
|
+
* where a gable, gambrel or shed has its rakes) and z (the eaves): half the wall's thickness, then
|
|
490
|
+
* the eaves' overhang, which the node stores along the slope, or at the rakes its `gableOverhang`.
|
|
491
|
+
*/
|
|
492
|
+
export function getRoofSegmentDeckReach(segment) {
|
|
493
|
+
const half = finiteNonNegative(segment.wallThickness) / 2;
|
|
494
|
+
// A barrel's arch springs from its eaves, and its ends reach out by the overhang, unsloped.
|
|
495
|
+
if (segment.roofType === 'barrel')
|
|
496
|
+
return { x: half + finiteNonNegative(segment.overhang), z: 0 };
|
|
497
|
+
const z = half + finiteNonNegative(segment.overhang) * getSegmentSlopeFrame(segment).cosTheta;
|
|
498
|
+
const gable = segment.gableOverhang;
|
|
499
|
+
const raked = roofTypeHasRakes(segment.roofType) && Number.isFinite(gable);
|
|
500
|
+
return { x: raked ? half + finiteNonNegative(gable) : z, z };
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* How far a segment's ends along its width reach past its wall centre lines in plan, for the readers
|
|
504
|
+
* that measure its eaves by the stored `overhang` (gutters, lean-to attachments, the sheets): a
|
|
505
|
+
* gable's, gambrel's or shed's ends are rakes, at the deck's edge (`getRoofSegmentDeckReach`); the
|
|
506
|
+
* other forms' ends are eaves like their sides, at `overhang`.
|
|
507
|
+
*/
|
|
508
|
+
export function getRoofSegmentEndReach(segment) {
|
|
509
|
+
return roofTypeHasRakes(segment.roofType)
|
|
510
|
+
? getRoofSegmentDeckReach(segment).x
|
|
511
|
+
: finiteNonNegative(segment.overhang);
|
|
512
|
+
}
|
|
462
513
|
export function getRoofSegmentVisibleTopBounds(segment) {
|
|
463
|
-
const { activeRh,
|
|
514
|
+
const { activeRh, sinTheta } = getSegmentSlopeFrame(segment);
|
|
464
515
|
const width = finitePositive(segment.width, DEFAULT_ROOF_SEGMENT_WIDTH);
|
|
465
516
|
const depth = finitePositive(segment.depth, DEFAULT_ROOF_SEGMENT_DEPTH);
|
|
466
517
|
const trim = normalizeRoofSegmentTrim({ ...segment, width, depth });
|
|
467
|
-
const
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
let
|
|
471
|
-
let
|
|
472
|
-
let backExt = deckExt;
|
|
518
|
+
const reach = getRoofSegmentDeckReach(segment);
|
|
519
|
+
const shingleOverhang = segment.roofSystem === 'glazed' ? 0 : finiteNonNegative(segment.shingleThickness) * sinTheta;
|
|
520
|
+
let xExt = reach.x;
|
|
521
|
+
let frontExt = reach.z;
|
|
522
|
+
let backExt = reach.z;
|
|
473
523
|
if (segment.roofType === 'hip' ||
|
|
474
524
|
segment.roofType === 'conical' ||
|
|
475
525
|
segment.roofType === 'mansard' ||
|
|
@@ -526,6 +576,16 @@ export function getRoofSegmentVisibleTopBounds(segment) {
|
|
|
526
576
|
export function getRoofSegmentSurfaceY(node, localX, localZ) {
|
|
527
577
|
const slopeFrame = getSegmentSlopeFrame(node);
|
|
528
578
|
const activeRh = slopeFrame.activeRh;
|
|
579
|
+
if (node.roofType === 'barrel') {
|
|
580
|
+
const profile = getBarrelRoofProfile(node.depth, activeRh, node.barrelSegments ?? 12);
|
|
581
|
+
const z = Math.max(-node.depth / 2, Math.min(node.depth / 2, localZ));
|
|
582
|
+
for (let i = 1; i < profile.length; i++) {
|
|
583
|
+
const a = profile[i - 1], b = profile[i];
|
|
584
|
+
if (z <= b[0] + 1e-8)
|
|
585
|
+
return node.wallHeight + a[1] + ((b[1] - a[1]) * (z - a[0])) / (b[0] - a[0]);
|
|
586
|
+
}
|
|
587
|
+
return node.wallHeight;
|
|
588
|
+
}
|
|
529
589
|
const peakY = node.wallHeight + activeRh;
|
|
530
590
|
if (activeRh === 0)
|
|
531
591
|
return node.wallHeight;
|
|
@@ -641,6 +701,15 @@ export function getEffectiveSegmentSurfaceMaterial(node, role, parentFallback) {
|
|
|
641
701
|
return legacy;
|
|
642
702
|
return parentFallback ?? { material: undefined, materialPreset: undefined };
|
|
643
703
|
}
|
|
704
|
+
/** The fascia and rake boards' own finish, or null when they take the wall role's. */
|
|
705
|
+
export function getSegmentFasciaMaterial(node) {
|
|
706
|
+
if (node.fasciaMaterial === undefined && typeof node.fasciaMaterialPreset !== 'string')
|
|
707
|
+
return null;
|
|
708
|
+
return {
|
|
709
|
+
material: node.fasciaMaterial,
|
|
710
|
+
materialPreset: typeof node.fasciaMaterialPreset === 'string' ? node.fasciaMaterialPreset : undefined,
|
|
711
|
+
};
|
|
712
|
+
}
|
|
644
713
|
/**
|
|
645
714
|
* Returns true when the segment has any segment-level material override —
|
|
646
715
|
* either the legacy catch-all or any of the three role-specific fields.
|
|
@@ -656,5 +725,7 @@ export function hasSegmentMaterialOverride(node) {
|
|
|
656
725
|
node.edgeMaterial !== undefined ||
|
|
657
726
|
typeof node.edgeMaterialPreset === 'string' ||
|
|
658
727
|
node.wallMaterial !== undefined ||
|
|
659
|
-
typeof node.wallMaterialPreset === 'string'
|
|
728
|
+
typeof node.wallMaterialPreset === 'string' ||
|
|
729
|
+
node.fasciaMaterial !== undefined ||
|
|
730
|
+
typeof node.fasciaMaterialPreset === 'string');
|
|
660
731
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const RoofType: z.ZodEnum<{
|
|
3
|
+
barrel: "barrel";
|
|
4
|
+
conical: "conical";
|
|
5
|
+
dutch: "dutch";
|
|
6
|
+
flat: "flat";
|
|
7
|
+
gable: "gable";
|
|
8
|
+
gambrel: "gambrel";
|
|
9
|
+
hip: "hip";
|
|
10
|
+
mansard: "mansard";
|
|
11
|
+
shed: "shed";
|
|
12
|
+
}>;
|
|
13
|
+
export type RoofType = z.infer<typeof RoofType>;
|
|
14
|
+
//# sourceMappingURL=roof-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roof-types.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/roof-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,QAAQ;;;;;;;;;;EAUnB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// Roof shapes, in a file with no other dependency: agent tool contracts validate against them
|
|
3
|
+
// without loading the node schemas.
|
|
4
|
+
export const RoofType = z.enum([
|
|
5
|
+
'hip',
|
|
6
|
+
'gable',
|
|
7
|
+
'shed',
|
|
8
|
+
'gambrel',
|
|
9
|
+
'dutch',
|
|
10
|
+
'mansard',
|
|
11
|
+
'flat',
|
|
12
|
+
'conical',
|
|
13
|
+
'barrel',
|
|
14
|
+
]);
|