@pascal-app/core 1.0.3 → 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 +247 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.js +429 -0
- 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 +4 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.js +1005 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts +67 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/cases.js +868 -0
- 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__/find-by-type-cases.d.ts +7 -0
- package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/find-by-type-cases.js +21 -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 +17 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.js +584 -0
- 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 +4 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/room-cases.js +473 -0
- 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 +5 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +149 -0
- 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 +7 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/structure-cases.js +1215 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +313 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.js +350 -0
- 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 +21 -0
- package/dist/agent-operations/achieved.d.ts.map +1 -0
- package/dist/agent-operations/achieved.js +48 -0
- package/dist/agent-operations/add-column.d.ts +23 -0
- package/dist/agent-operations/add-column.d.ts.map +1 -0
- package/dist/agent-operations/add-column.js +99 -0
- 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 +17 -0
- package/dist/agent-operations/add-level.d.ts.map +1 -0
- package/dist/agent-operations/add-level.js +130 -0
- package/dist/agent-operations/add-object.d.ts +143 -0
- package/dist/agent-operations/add-object.d.ts.map +1 -0
- package/dist/agent-operations/add-object.js +522 -0
- package/dist/agent-operations/add-wall.d.ts +13 -0
- package/dist/agent-operations/add-wall.d.ts.map +1 -0
- package/dist/agent-operations/add-wall.js +73 -0
- package/dist/agent-operations/apply-changes.d.ts +22 -0
- package/dist/agent-operations/apply-changes.d.ts.map +1 -0
- package/dist/agent-operations/apply-changes.js +125 -0
- package/dist/agent-operations/apply-outcome.d.ts +21 -0
- package/dist/agent-operations/apply-outcome.d.ts.map +1 -0
- package/dist/agent-operations/apply-outcome.js +33 -0
- 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/collections.d.ts +28 -0
- package/dist/agent-operations/collections.d.ts.map +1 -0
- package/dist/agent-operations/collections.js +130 -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 +38 -0
- package/dist/agent-operations/create-room.d.ts.map +1 -0
- package/dist/agent-operations/create-room.js +245 -0
- package/dist/agent-operations/create-stair.d.ts +11 -0
- package/dist/agent-operations/create-stair.d.ts.map +1 -0
- package/dist/agent-operations/create-stair.js +330 -0
- package/dist/agent-operations/delete-node.d.ts +6 -0
- package/dist/agent-operations/delete-node.d.ts.map +1 -0
- package/dist/agent-operations/delete-node.js +9 -0
- 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 +150 -0
- package/dist/agent-operations/door-clearance.d.ts.map +1 -0
- package/dist/agent-operations/door-clearance.js +391 -0
- package/dist/agent-operations/duplicate-level.d.ts +12 -0
- package/dist/agent-operations/duplicate-level.d.ts.map +1 -0
- package/dist/agent-operations/duplicate-level.js +55 -0
- package/dist/agent-operations/find-by-type.d.ts +18 -0
- package/dist/agent-operations/find-by-type.d.ts.map +1 -0
- package/dist/agent-operations/find-by-type.js +317 -0
- package/dist/agent-operations/furnish-room.d.ts +39 -0
- package/dist/agent-operations/furnish-room.d.ts.map +1 -0
- package/dist/agent-operations/furnish-room.js +306 -0
- 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 +12 -0
- package/dist/agent-operations/get-node.d.ts.map +1 -0
- package/dist/agent-operations/get-node.js +105 -0
- package/dist/agent-operations/hosted-services.d.ts +14 -0
- package/dist/agent-operations/hosted-services.d.ts.map +1 -0
- package/dist/agent-operations/hosted-services.js +22 -0
- package/dist/agent-operations/index.d.ts +489 -0
- package/dist/agent-operations/index.d.ts.map +1 -0
- package/dist/agent-operations/index.js +141 -0
- 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 +157 -0
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -0
- package/dist/agent-operations/layout-clearance.js +500 -0
- 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 +37 -0
- package/dist/agent-operations/level-reads.d.ts.map +1 -0
- package/dist/agent-operations/level-reads.js +168 -0
- package/dist/agent-operations/level-target.d.ts +11 -0
- package/dist/agent-operations/level-target.d.ts.map +1 -0
- package/dist/agent-operations/level-target.js +29 -0
- package/dist/agent-operations/list-levels.d.ts +4 -0
- package/dist/agent-operations/list-levels.d.ts.map +1 -0
- package/dist/agent-operations/list-levels.js +54 -0
- package/dist/agent-operations/material-preset.d.ts +11 -0
- package/dist/agent-operations/material-preset.d.ts.map +1 -0
- package/dist/agent-operations/material-preset.js +68 -0
- package/dist/agent-operations/material-refs.d.ts +30 -0
- package/dist/agent-operations/material-refs.d.ts.map +1 -0
- package/dist/agent-operations/material-refs.js +105 -0
- 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/node-patch.d.ts +3 -0
- package/dist/agent-operations/node-patch.d.ts.map +1 -0
- package/dist/agent-operations/node-patch.js +114 -0
- package/dist/agent-operations/paint.d.ts +22 -0
- package/dist/agent-operations/paint.d.ts.map +1 -0
- package/dist/agent-operations/paint.js +329 -0
- 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 +20 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -0
- package/dist/agent-operations/place-items.js +239 -0
- package/dist/agent-operations/plan-geometry.d.ts +24 -0
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -0
- package/dist/agent-operations/plan-geometry.js +97 -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 +87 -0
- package/dist/agent-operations/room-structure.d.ts.map +1 -0
- package/dist/agent-operations/room-structure.js +144 -0
- 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-materials.d.ts +15 -0
- package/dist/agent-operations/scene-materials.d.ts.map +1 -0
- package/dist/agent-operations/scene-materials.js +62 -0
- package/dist/agent-operations/scene-measure.d.ts +73 -0
- package/dist/agent-operations/scene-measure.d.ts.map +1 -0
- package/dist/agent-operations/scene-measure.js +73 -0
- package/dist/agent-operations/scene-queries.d.ts +4941 -0
- package/dist/agent-operations/scene-queries.d.ts.map +1 -0
- package/dist/agent-operations/scene-queries.js +74 -0
- 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 +165 -0
- package/dist/agent-operations/scene-view.d.ts.map +1 -0
- package/dist/agent-operations/scene-view.js +916 -0
- package/dist/agent-operations/search-assets.d.ts +14 -0
- package/dist/agent-operations/search-assets.d.ts.map +1 -0
- package/dist/agent-operations/search-assets.js +43 -0
- package/dist/agent-operations/search-materials.d.ts +18 -0
- package/dist/agent-operations/search-materials.d.ts.map +1 -0
- package/dist/agent-operations/search-materials.js +165 -0
- 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/stairs.d.ts +5 -0
- package/dist/agent-operations/stairs.d.ts.map +1 -0
- package/dist/agent-operations/stairs.js +70 -0
- package/dist/agent-operations/types.d.ts +118 -0
- package/dist/agent-operations/types.d.ts.map +1 -0
- package/dist/agent-operations/types.js +1 -0
- package/dist/agent-operations/verify-scene.d.ts +84 -0
- package/dist/agent-operations/verify-scene.d.ts.map +1 -0
- package/dist/agent-operations/verify-scene.js +548 -0
- 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 +65 -0
- package/dist/agent-operations/wall-opening.d.ts.map +1 -0
- package/dist/agent-operations/wall-opening.js +55 -0
- 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/achieved.d.ts +9 -0
- package/dist/agent-tools/achieved.d.ts.map +1 -0
- package/dist/agent-tools/achieved.js +8 -0
- package/dist/agent-tools/add-object.d.ts +47 -0
- package/dist/agent-tools/add-object.d.ts.map +1 -0
- package/dist/agent-tools/add-object.js +92 -0
- package/dist/agent-tools/assets.d.ts +21 -0
- package/dist/agent-tools/assets.d.ts.map +1 -0
- package/dist/agent-tools/assets.js +30 -0
- 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 +10 -0
- package/dist/agent-tools/clear-scene.d.ts.map +1 -0
- package/dist/agent-tools/clear-scene.js +9 -0
- package/dist/agent-tools/collections.d.ts +35 -0
- package/dist/agent-tools/collections.d.ts.map +1 -0
- package/dist/agent-tools/collections.js +31 -0
- package/dist/agent-tools/columns.d.ts +44 -0
- package/dist/agent-tools/columns.d.ts.map +1 -0
- package/dist/agent-tools/columns.js +59 -0
- package/dist/agent-tools/contract.d.ts +68 -0
- package/dist/agent-tools/contract.d.ts.map +1 -0
- package/dist/agent-tools/contract.js +1 -0
- 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 +64 -0
- package/dist/agent-tools/create-room.d.ts.map +1 -0
- package/dist/agent-tools/create-room.js +97 -0
- 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 +18 -0
- package/dist/agent-tools/find-by-type.d.ts.map +1 -0
- package/dist/agent-tools/find-by-type.js +35 -0
- package/dist/agent-tools/furnish-room.d.ts +28 -0
- package/dist/agent-tools/furnish-room.d.ts.map +1 -0
- package/dist/agent-tools/furnish-room.js +37 -0
- package/dist/agent-tools/hosted-services.d.ts +438 -0
- package/dist/agent-tools/hosted-services.d.ts.map +1 -0
- package/dist/agent-tools/hosted-services.js +181 -0
- package/dist/agent-tools/index.d.ts +1543 -0
- package/dist/agent-tools/index.d.ts.map +1 -0
- package/dist/agent-tools/index.js +126 -0
- package/dist/agent-tools/levels.d.ts +80 -0
- package/dist/agent-tools/levels.d.ts.map +1 -0
- package/dist/agent-tools/levels.js +87 -0
- package/dist/agent-tools/measurement.d.ts +55 -0
- package/dist/agent-tools/measurement.d.ts.map +1 -0
- package/dist/agent-tools/measurement.js +144 -0
- 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/node-id.d.ts +3 -0
- package/dist/agent-tools/node-id.d.ts.map +1 -0
- package/dist/agent-tools/node-id.js +2 -0
- package/dist/agent-tools/nodes.d.ts +17 -0
- package/dist/agent-tools/nodes.d.ts.map +1 -0
- package/dist/agent-tools/nodes.js +13 -0
- 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 +46 -0
- package/dist/agent-tools/paint.d.ts.map +1 -0
- package/dist/agent-tools/paint.js +29 -0
- 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 +19 -0
- package/dist/agent-tools/place-items.d.ts.map +1 -0
- package/dist/agent-tools/place-items.js +29 -0
- 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 +20 -0
- package/dist/agent-tools/refusal.d.ts.map +1 -0
- package/dist/agent-tools/refusal.js +29 -0
- 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 +446 -0
- package/dist/agent-tools/room-structure.d.ts.map +1 -0
- package/dist/agent-tools/room-structure.js +210 -0
- package/dist/agent-tools/search-materials.d.ts +39 -0
- package/dist/agent-tools/search-materials.d.ts.map +1 -0
- package/dist/agent-tools/search-materials.js +31 -0
- 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 +106 -0
- package/dist/agent-tools/stairs.d.ts.map +1 -0
- package/dist/agent-tools/stairs.js +146 -0
- package/dist/agent-tools/verify-scene.d.ts +13 -0
- package/dist/agent-tools/verify-scene.d.ts.map +1 -0
- package/dist/agent-tools/verify-scene.js +21 -0
- package/dist/agent-tools/view-scene.d.ts +81 -0
- package/dist/agent-tools/view-scene.d.ts.map +1 -0
- package/dist/agent-tools/view-scene.js +123 -0
- package/dist/agent-tools/wall-openings.d.ts +167 -0
- package/dist/agent-tools/wall-openings.d.ts.map +1 -0
- package/dist/agent-tools/wall-openings.js +148 -0
- package/dist/agent-tools/walls.d.ts +21 -0
- package/dist/agent-tools/walls.d.ts.map +1 -0
- package/dist/agent-tools/walls.js +35 -0
- package/dist/agent-tools/write-target.d.ts +12 -0
- package/dist/agent-tools/write-target.d.ts.map +1 -0
- package/dist/agent-tools/write-target.js +10 -0
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +940 -0
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -0
- package/dist/building/__fixtures__/wall-opening-cases.js +367 -0
- 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/door-types.d.ts +22 -0
- package/dist/building/door-types.d.ts.map +1 -0
- package/dist/building/door-types.js +167 -0
- package/dist/building/floor-item-fit.d.ts +38 -0
- package/dist/building/floor-item-fit.d.ts.map +1 -0
- package/dist/building/floor-item-fit.js +47 -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 +12 -0
- package/dist/building/index.d.ts.map +1 -0
- package/dist/building/index.js +11 -0
- package/dist/building/level-duplication.d.ts +9842 -0
- package/dist/building/level-duplication.d.ts.map +1 -0
- package/dist/building/level-duplication.js +328 -0
- 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 +46 -0
- package/dist/building/opening-style-presets.d.ts.map +1 -0
- package/dist/building/opening-style-presets.js +195 -0
- 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 +480 -0
- package/dist/building/wall-openings.d.ts.map +1 -0
- package/dist/building/wall-openings.js +259 -0
- package/dist/building/window-types.d.ts +17 -0
- package/dist/building/window-types.d.ts.map +1 -0
- package/dist/building/window-types.js +31 -0
- 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/apply-zone-transform.d.ts +23 -0
- package/dist/commands/structure/apply-zone-transform.d.ts.map +1 -0
- package/dist/commands/structure/apply-zone-transform.js +55 -0
- package/dist/commands/structure/create-mezzanine.d.ts +12 -0
- package/dist/commands/structure/create-mezzanine.d.ts.map +1 -0
- package/dist/commands/structure/create-mezzanine.js +46 -0
- package/dist/commands/structure/create-zone.d.ts +43 -0
- package/dist/commands/structure/create-zone.d.ts.map +1 -0
- package/dist/commands/structure/create-zone.js +175 -0
- package/dist/commands/structure/delete-zone.d.ts +51 -0
- package/dist/commands/structure/delete-zone.d.ts.map +1 -0
- package/dist/commands/structure/delete-zone.js +354 -0
- package/dist/commands/structure/divide-zone.d.ts +38 -0
- package/dist/commands/structure/divide-zone.d.ts.map +1 -0
- package/dist/commands/structure/divide-zone.js +186 -0
- package/dist/commands/structure/duplicate-zone.d.ts +7 -0
- package/dist/commands/structure/duplicate-zone.d.ts.map +1 -0
- package/dist/commands/structure/duplicate-zone.js +21 -0
- package/dist/commands/structure/floor-opening.d.ts +36 -0
- package/dist/commands/structure/floor-opening.d.ts.map +1 -0
- package/dist/commands/structure/floor-opening.js +124 -0
- package/dist/commands/structure/index.d.ts +22 -0
- package/dist/commands/structure/index.d.ts.map +1 -0
- package/dist/commands/structure/index.js +20 -0
- package/dist/commands/structure/lock-outside-faces.d.ts +12 -0
- package/dist/commands/structure/lock-outside-faces.d.ts.map +1 -0
- package/dist/commands/structure/lock-outside-faces.js +32 -0
- package/dist/commands/structure/merge-zones.d.ts +5 -0
- package/dist/commands/structure/merge-zones.d.ts.map +1 -0
- package/dist/commands/structure/merge-zones.js +22 -0
- package/dist/commands/structure/mezzanine-content.d.ts +16 -0
- package/dist/commands/structure/mezzanine-content.d.ts.map +1 -0
- package/dist/commands/structure/mezzanine-content.js +109 -0
- package/dist/commands/structure/plan-mezzanine-stair.d.ts +7 -0
- package/dist/commands/structure/plan-mezzanine-stair.d.ts.map +1 -0
- package/dist/commands/structure/plan-mezzanine-stair.js +127 -0
- package/dist/commands/structure/plan-wall-deletion.d.ts +9 -0
- package/dist/commands/structure/plan-wall-deletion.d.ts.map +1 -0
- package/dist/commands/structure/plan-wall-deletion.js +151 -0
- package/dist/commands/structure/rebase-floor-reference.d.ts +7 -0
- package/dist/commands/structure/rebase-floor-reference.d.ts.map +1 -0
- package/dist/commands/structure/rebase-floor-reference.js +90 -0
- package/dist/commands/structure/resize-mezzanine.d.ts +8 -0
- package/dist/commands/structure/resize-mezzanine.d.ts.map +1 -0
- package/dist/commands/structure/resize-mezzanine.js +43 -0
- package/dist/commands/structure/rotate-zone.d.ts +8 -0
- package/dist/commands/structure/rotate-zone.d.ts.map +1 -0
- package/dist/commands/structure/rotate-zone.js +28 -0
- package/dist/commands/structure/set-floor-foundation.d.ts +62 -0
- package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -0
- package/dist/commands/structure/set-floor-foundation.js +162 -0
- package/dist/commands/structure/set-room-floor-construction.d.ts +8 -0
- package/dist/commands/structure/set-room-floor-construction.d.ts.map +1 -0
- package/dist/commands/structure/set-room-floor-construction.js +72 -0
- package/dist/commands/structure/set-wall-geometry.d.ts +10 -0
- package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -0
- package/dist/commands/structure/set-wall-geometry.js +52 -0
- package/dist/commands/structure/set-zone-edges.d.ts +14 -0
- package/dist/commands/structure/set-zone-edges.d.ts.map +1 -0
- package/dist/commands/structure/set-zone-edges.js +143 -0
- package/dist/commands/structure/set-zone-intent.d.ts +43 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -0
- package/dist/commands/structure/set-zone-intent.js +144 -0
- package/dist/commands/structure/shared.d.ts +4941 -0
- package/dist/commands/structure/shared.d.ts.map +1 -0
- package/dist/commands/structure/shared.js +102 -0
- package/dist/commands/structure/transform-zone.d.ts +23 -0
- package/dist/commands/structure/transform-zone.d.ts.map +1 -0
- package/dist/commands/structure/transform-zone.js +472 -0
- package/dist/commands/structure/validate-mezzanine.d.ts +5 -0
- package/dist/commands/structure/validate-mezzanine.d.ts.map +1 -0
- package/dist/commands/structure/validate-mezzanine.js +46 -0
- package/dist/commands/structure/zone-crossings.d.ts +8 -0
- package/dist/commands/structure/zone-crossings.d.ts.map +1 -0
- package/dist/commands/structure/zone-crossings.js +162 -0
- package/dist/commands/structure/zone-drop.d.ts +4 -0
- package/dist/commands/structure/zone-drop.d.ts.map +1 -0
- package/dist/commands/structure/zone-drop.js +68 -0
- package/dist/commands/structure/zone-insertion.d.ts +4 -0
- package/dist/commands/structure/zone-insertion.d.ts.map +1 -0
- package/dist/commands/structure/zone-insertion.js +200 -0
- package/dist/commands/structure/zone-transform-content.d.ts +6 -0
- package/dist/commands/structure/zone-transform-content.d.ts.map +1 -0
- package/dist/commands/structure/zone-transform-content.js +117 -0
- package/dist/commands/structure/zone-wall-merge.d.ts +5792 -0
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -0
- package/dist/commands/structure/zone-wall-merge.js +135 -0
- package/dist/contracts/reference-discovery.d.ts +18 -0
- package/dist/contracts/reference-discovery.d.ts.map +1 -0
- package/dist/contracts/reference-discovery.js +100 -0
- package/dist/contracts/reference-inventory.d.ts +44 -0
- package/dist/contracts/reference-inventory.d.ts.map +1 -0
- package/dist/contracts/reference-inventory.js +952 -0
- package/dist/events/bus.d.ts +90 -10
- 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/item-clip-registry.d.ts +6 -3
- package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -1
- package/dist/hooks/scene-registry/item-clip-registry.js +2 -1
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +15 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +4 -4
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +56 -71
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3948 -2034
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +86 -83
- package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.d.ts +1 -0
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +21 -5
- 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 +109 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +103 -12
- package/dist/lib/__bench__/near-linear-walls.d.ts +2 -0
- package/dist/lib/__bench__/near-linear-walls.d.ts.map +1 -0
- package/dist/lib/__bench__/near-linear-walls.js +24 -0
- package/dist/lib/__bench__/structure-preview.bench.d.ts +2 -0
- package/dist/lib/__bench__/structure-preview.bench.d.ts.map +1 -0
- package/dist/lib/__bench__/structure-preview.bench.js +72 -0
- package/dist/lib/__fixtures__/mezzanine.d.ts +15636 -0
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -0
- package/dist/lib/__fixtures__/mezzanine.js +43 -0
- package/dist/lib/absorb-wall-separators.d.ts +4912 -0
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -0
- package/dist/lib/absorb-wall-separators.js +65 -0
- package/dist/lib/angle-accumulator.d.ts +3 -0
- package/dist/lib/angle-accumulator.d.ts.map +1 -0
- package/dist/lib/angle-accumulator.js +13 -0
- package/dist/lib/artifact-store.d.ts +31 -0
- package/dist/lib/artifact-store.d.ts.map +1 -0
- package/dist/lib/artifact-store.js +42 -0
- package/dist/lib/assembly-stack.d.ts +54 -0
- package/dist/lib/assembly-stack.d.ts.map +1 -0
- package/dist/lib/assembly-stack.js +52 -0
- package/dist/lib/asset-storage.d.ts.map +1 -1
- package/dist/lib/asset-storage.js +3 -0
- 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/canonical-opening-ring.d.ts +3 -0
- package/dist/lib/canonical-opening-ring.d.ts.map +1 -0
- package/dist/lib/canonical-opening-ring.js +14 -0
- package/dist/lib/ceiling-children.d.ts +8 -0
- package/dist/lib/ceiling-children.d.ts.map +1 -0
- package/dist/lib/ceiling-children.js +36 -0
- package/dist/lib/ceiling-surface.d.ts +40 -0
- package/dist/lib/ceiling-surface.d.ts.map +1 -0
- package/dist/lib/ceiling-surface.js +65 -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/cutter-host.d.ts +5 -0
- package/dist/lib/cutter-host.d.ts.map +1 -0
- package/dist/lib/cutter-host.js +30 -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-construction-lift.d.ts +4 -0
- package/dist/lib/floor-construction-lift.d.ts.map +1 -0
- package/dist/lib/floor-construction-lift.js +54 -0
- package/dist/lib/floor-footprint-key.d.ts +3 -0
- package/dist/lib/floor-footprint-key.d.ts.map +1 -0
- package/dist/lib/floor-footprint-key.js +9 -0
- package/dist/lib/floor-footprint-name.d.ts +11 -0
- package/dist/lib/floor-footprint-name.d.ts.map +1 -0
- package/dist/lib/floor-footprint-name.js +52 -0
- package/dist/lib/floor-foundation-datum.d.ts +31 -0
- package/dist/lib/floor-foundation-datum.d.ts.map +1 -0
- package/dist/lib/floor-foundation-datum.js +226 -0
- package/dist/lib/floor-foundation-stack.d.ts +16 -0
- package/dist/lib/floor-foundation-stack.d.ts.map +1 -0
- package/dist/lib/floor-foundation-stack.js +214 -0
- package/dist/lib/floor-intent-changes.d.ts +10 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -0
- package/dist/lib/floor-intent-changes.js +461 -0
- package/dist/lib/floor-opening-footprints.d.ts +24 -0
- package/dist/lib/floor-opening-footprints.d.ts.map +1 -0
- package/dist/lib/floor-opening-footprints.js +127 -0
- package/dist/lib/floor-opening-intent.d.ts +16 -0
- package/dist/lib/floor-opening-intent.d.ts.map +1 -0
- package/dist/lib/floor-opening-intent.js +82 -0
- package/dist/lib/floor-plate-id.d.ts +5 -0
- package/dist/lib/floor-plate-id.d.ts.map +1 -0
- package/dist/lib/floor-plate-id.js +20 -0
- package/dist/lib/floor-plate-paint.d.ts +10 -0
- package/dist/lib/floor-plate-paint.d.ts.map +1 -0
- package/dist/lib/floor-plate-paint.js +31 -0
- package/dist/lib/floor-plates.d.ts +211 -0
- package/dist/lib/floor-plates.d.ts.map +1 -0
- package/dist/lib/floor-plates.js +729 -0
- package/dist/lib/floor-room-faces.d.ts +5 -0
- package/dist/lib/floor-room-faces.d.ts.map +1 -0
- package/dist/lib/floor-room-faces.js +29 -0
- 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/floor-step-finish.d.ts +49 -0
- package/dist/lib/floor-step-finish.d.ts.map +1 -0
- package/dist/lib/floor-step-finish.js +128 -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 +111 -0
- package/dist/lib/geometry-script-node.d.ts.map +1 -0
- package/dist/lib/geometry-script-node.js +173 -0
- package/dist/lib/geometry-surfaces.d.ts +61 -0
- package/dist/lib/geometry-surfaces.d.ts.map +1 -0
- package/dist/lib/geometry-surfaces.js +156 -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/item-slab-support.d.ts +14 -0
- package/dist/lib/item-slab-support.d.ts.map +1 -0
- package/dist/lib/item-slab-support.js +40 -0
- package/dist/lib/level-footprints.d.ts +23 -0
- package/dist/lib/level-footprints.d.ts.map +1 -0
- package/dist/lib/level-footprints.js +398 -0
- package/dist/lib/level-name.d.ts +7 -0
- package/dist/lib/level-name.d.ts.map +1 -1
- package/dist/lib/level-name.js +11 -3
- package/dist/lib/new-zone.d.ts +10 -0
- package/dist/lib/new-zone.d.ts.map +1 -0
- package/dist/lib/new-zone.js +10 -0
- package/dist/lib/node-ancestry.d.ts +30 -0
- package/dist/lib/node-ancestry.d.ts.map +1 -0
- package/dist/lib/node-ancestry.js +76 -0
- package/dist/lib/object-cuts.d.ts +11 -0
- package/dist/lib/object-cuts.d.ts.map +1 -0
- package/dist/lib/object-cuts.js +63 -0
- package/dist/lib/opening-floor-datum.d.ts +24 -0
- package/dist/lib/opening-floor-datum.d.ts.map +1 -0
- package/dist/lib/opening-floor-datum.js +144 -0
- package/dist/lib/own-floor-intent.d.ts +15 -0
- package/dist/lib/own-floor-intent.d.ts.map +1 -0
- package/dist/lib/own-floor-intent.js +201 -0
- package/dist/lib/plate-reference.d.ts +3 -0
- package/dist/lib/plate-reference.d.ts.map +1 -0
- package/dist/lib/plate-reference.js +91 -0
- package/dist/lib/plate-surface.d.ts +120 -0
- package/dist/lib/plate-surface.d.ts.map +1 -0
- package/dist/lib/plate-surface.js +727 -0
- 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/polygon-boolean.d.ts +17 -0
- package/dist/lib/polygon-boolean.d.ts.map +1 -0
- package/dist/lib/polygon-boolean.js +195 -0
- package/dist/lib/polygon-label.d.ts +7 -0
- package/dist/lib/polygon-label.d.ts.map +1 -0
- package/dist/lib/polygon-label.js +94 -0
- package/dist/lib/room-drawn-floor.d.ts +29 -0
- package/dist/lib/room-drawn-floor.d.ts.map +1 -0
- package/dist/lib/room-drawn-floor.js +88 -0
- package/dist/lib/room-floor-choices.d.ts +11 -0
- package/dist/lib/room-floor-choices.d.ts.map +1 -0
- package/dist/lib/room-floor-choices.js +60 -0
- package/dist/lib/room-floor-feasibility.d.ts +25 -0
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -0
- package/dist/lib/room-floor-feasibility.js +293 -0
- package/dist/lib/room-floor-plate.d.ts +3 -0
- package/dist/lib/room-floor-plate.d.ts.map +1 -0
- package/dist/lib/room-floor-plate.js +4 -0
- package/dist/lib/room-graph.d.ts +79 -0
- package/dist/lib/room-graph.d.ts.map +1 -0
- package/dist/lib/room-graph.js +1267 -0
- package/dist/lib/room-name.d.ts +12 -0
- package/dist/lib/room-name.d.ts.map +1 -0
- package/dist/lib/room-name.js +24 -0
- package/dist/lib/room-topology-index.d.ts +53 -5
- package/dist/lib/room-topology-index.d.ts.map +1 -1
- package/dist/lib/room-topology-index.js +176 -30
- package/dist/lib/room-vertical-placement.d.ts +12 -0
- package/dist/lib/room-vertical-placement.d.ts.map +1 -0
- package/dist/lib/room-vertical-placement.js +28 -0
- package/dist/lib/room-zone-adoption.d.ts +74 -0
- package/dist/lib/room-zone-adoption.d.ts.map +1 -0
- package/dist/lib/room-zone-adoption.js +150 -0
- 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 +163 -0
- package/dist/lib/setback-envelope.d.ts.map +1 -0
- package/dist/lib/setback-envelope.js +822 -0
- 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/slab-polygon.d.ts.map +1 -1
- package/dist/lib/slab-polygon.js +33 -12
- package/dist/lib/slots.d.ts +20 -0
- package/dist/lib/slots.d.ts.map +1 -1
- package/dist/lib/slots.js +44 -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/space-detection.d.ts +14 -94
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +244 -1616
- package/dist/lib/structure-commit.d.ts +38 -0
- package/dist/lib/structure-commit.d.ts.map +1 -0
- package/dist/lib/structure-commit.js +52 -0
- package/dist/lib/structure-kernel.d.ts +66 -0
- package/dist/lib/structure-kernel.d.ts.map +1 -0
- package/dist/lib/structure-kernel.js +737 -0
- package/dist/lib/structure-reconcile.d.ts +15 -0
- package/dist/lib/structure-reconcile.d.ts.map +1 -0
- package/dist/lib/structure-reconcile.js +218 -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-contours.d.ts +29 -0
- package/dist/lib/terrain-contours.d.ts.map +1 -0
- package/dist/lib/terrain-contours.js +199 -0
- package/dist/lib/terrain-source-persisted.d.ts +42 -0
- package/dist/lib/terrain-source-persisted.d.ts.map +1 -0
- package/dist/lib/terrain-source-persisted.js +68 -0
- package/dist/lib/terrain-source.d.ts +2 -40
- package/dist/lib/terrain-source.d.ts.map +1 -1
- package/dist/lib/terrain-source.js +2 -68
- package/dist/lib/terrain-support-query.d.ts +93 -0
- package/dist/lib/terrain-support-query.d.ts.map +1 -0
- package/dist/lib/terrain-support-query.js +187 -0
- package/dist/lib/terrain-support.d.ts +1 -77
- package/dist/lib/terrain-support.d.ts.map +1 -1
- package/dist/lib/terrain-support.js +3 -181
- package/dist/lib/unit-containment.js +2 -2
- package/dist/lib/unit-report.d.ts.map +1 -1
- package/dist/lib/unit-report.js +5 -4
- 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 +11 -0
- package/dist/lib/zone-colors.d.ts.map +1 -0
- package/dist/lib/zone-colors.js +32 -0
- package/dist/lib/zone-quantities.d.ts.map +1 -1
- package/dist/lib/zone-quantities.js +117 -228
- 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 +13 -5
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +622 -27
- package/dist/node-slots/block.d.ts +7 -0
- package/dist/node-slots/block.d.ts.map +1 -0
- package/dist/node-slots/block.js +27 -0
- package/dist/node-slots/cabinet.d.ts +4 -0
- package/dist/node-slots/cabinet.d.ts.map +1 -0
- package/dist/node-slots/cabinet.js +24 -0
- package/dist/node-slots/ceiling.d.ts +6 -0
- package/dist/node-slots/ceiling.d.ts.map +1 -0
- package/dist/node-slots/ceiling.js +7 -0
- package/dist/node-slots/column.d.ts +9 -0
- package/dist/node-slots/column.d.ts.map +1 -0
- package/dist/node-slots/column.js +24 -0
- package/dist/node-slots/door.d.ts +9 -0
- package/dist/node-slots/door.d.ts.map +1 -0
- package/dist/node-slots/door.js +20 -0
- package/dist/node-slots/duct.d.ts +5 -0
- package/dist/node-slots/duct.d.ts.map +1 -0
- package/dist/node-slots/duct.js +5 -0
- package/dist/node-slots/elevator.d.ts +9 -0
- package/dist/node-slots/elevator.d.ts.map +1 -0
- package/dist/node-slots/elevator.js +17 -0
- package/dist/node-slots/fence.d.ts +10 -0
- package/dist/node-slots/fence.d.ts.map +1 -0
- package/dist/node-slots/fence.js +23 -0
- package/dist/node-slots/index.d.ts +26 -0
- package/dist/node-slots/index.d.ts.map +1 -0
- package/dist/node-slots/index.js +98 -0
- package/dist/node-slots/lean-to-extension.d.ts +5 -0
- package/dist/node-slots/lean-to-extension.d.ts.map +1 -0
- package/dist/node-slots/lean-to-extension.js +15 -0
- package/dist/node-slots/procedural-item.d.ts +4 -0
- package/dist/node-slots/procedural-item.d.ts.map +1 -0
- package/dist/node-slots/procedural-item.js +3 -0
- package/dist/node-slots/roof-accessories.d.ts +9 -0
- package/dist/node-slots/roof-accessories.d.ts.map +1 -0
- package/dist/node-slots/roof-accessories.js +34 -0
- 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/shelf.d.ts +9 -0
- package/dist/node-slots/shelf.d.ts.map +1 -0
- package/dist/node-slots/shelf.js +30 -0
- package/dist/node-slots/slab.d.ts +7 -0
- package/dist/node-slots/slab.d.ts.map +1 -0
- package/dist/node-slots/slab.js +21 -0
- package/dist/node-slots/stair.d.ts +10 -0
- package/dist/node-slots/stair.d.ts.map +1 -0
- package/dist/node-slots/stair.js +21 -0
- package/dist/node-slots/wall.d.ts +12 -0
- package/dist/node-slots/wall.d.ts.map +1 -0
- package/dist/node-slots/wall.js +55 -0
- package/dist/node-slots/window.d.ts +5 -0
- package/dist/node-slots/window.d.ts.map +1 -0
- package/dist/node-slots/window.js +11 -0
- package/dist/procedural-items/design-placement.d.ts +49 -0
- package/dist/procedural-items/design-placement.d.ts.map +1 -0
- package/dist/procedural-items/design-placement.js +129 -0
- package/dist/procedural-items/design.d.ts +261 -0
- package/dist/procedural-items/design.d.ts.map +1 -0
- package/dist/procedural-items/design.js +707 -0
- package/dist/procedural-items/fixtures.d.ts +515 -75
- package/dist/procedural-items/fixtures.d.ts.map +1 -1
- package/dist/procedural-items/index.d.ts +5 -0
- package/dist/procedural-items/index.d.ts.map +1 -1
- package/dist/procedural-items/index.js +5 -0
- package/dist/procedural-items/integration.d.ts +156 -35
- package/dist/procedural-items/integration.d.ts.map +1 -1
- package/dist/procedural-items/joints.d.ts +56 -0
- package/dist/procedural-items/joints.d.ts.map +1 -0
- package/dist/procedural-items/joints.js +251 -0
- package/dist/procedural-items/library-colors.d.ts +34 -22
- package/dist/procedural-items/library-colors.d.ts.map +1 -1
- package/dist/procedural-items/library-colors.js +37 -3
- package/dist/procedural-items/motion-controller.d.ts +29 -0
- package/dist/procedural-items/motion-controller.d.ts.map +1 -0
- package/dist/procedural-items/motion-controller.js +130 -0
- package/dist/procedural-items/node.d.ts +528 -62
- package/dist/procedural-items/node.d.ts.map +1 -1
- package/dist/procedural-items/query.d.ts +19 -2
- package/dist/procedural-items/query.d.ts.map +1 -1
- package/dist/procedural-items/query.js +78 -39
- package/dist/procedural-items/recipe.d.ts +260 -16
- package/dist/procedural-items/recipe.d.ts.map +1 -1
- package/dist/procedural-items/recipe.js +933 -61
- package/dist/procedural-items/section.d.ts +27 -0
- package/dist/procedural-items/section.d.ts.map +1 -0
- package/dist/procedural-items/section.js +237 -0
- package/dist/procedural-items/spatial.d.ts +21 -0
- package/dist/procedural-items/spatial.d.ts.map +1 -1
- package/dist/procedural-items/spatial.js +90 -0
- package/dist/registry/handles.d.ts +2 -0
- package/dist/registry/handles.d.ts.map +1 -1
- package/dist/registry/index.d.ts +6 -4
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +4 -2
- package/dist/registry/mechanism.d.ts +9 -0
- package/dist/registry/mechanism.d.ts.map +1 -0
- package/dist/registry/mechanism.js +21 -0
- package/dist/registry/registry.d.ts +6 -3
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +59 -22
- package/dist/registry/scene-api.d.ts +21 -0
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +29 -13
- package/dist/registry/subtree.d.ts +8 -0
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +55 -0
- package/dist/registry/types.d.ts +460 -12
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.js +2 -0
- package/dist/schema/assembly.d.ts +153 -0
- package/dist/schema/assembly.d.ts.map +1 -0
- package/dist/schema/assembly.js +155 -0
- package/dist/schema/asset-url.d.ts +2 -1
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/asset-url.js +5 -2
- package/dist/schema/base.d.ts +28 -2
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +2 -0
- package/dist/schema/camera.d.ts +1 -1
- package/dist/schema/collection-templates.d.ts +46 -0
- package/dist/schema/collection-templates.d.ts.map +1 -0
- package/dist/schema/collection-templates.js +14 -0
- package/dist/schema/collections.d.ts +7 -0
- package/dist/schema/collections.d.ts.map +1 -1
- package/dist/schema/cut.d.ts +29 -0
- package/dist/schema/cut.d.ts.map +1 -0
- package/dist/schema/cut.js +50 -0
- package/dist/schema/geometry-metadata.d.ts +51 -0
- package/dist/schema/geometry-metadata.d.ts.map +1 -0
- package/dist/schema/geometry-metadata.js +57 -0
- package/dist/schema/geometry-source.d.ts +260 -0
- package/dist/schema/geometry-source.d.ts.map +1 -0
- package/dist/schema/geometry-source.js +144 -0
- package/dist/schema/index.d.ts +27 -12
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +29 -10
- 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 +27 -1
- package/dist/schema/nodes/block.d.ts.map +1 -1
- package/dist/schema/nodes/block.js +1 -1
- package/dist/schema/nodes/box-vent.d.ts +32 -6
- package/dist/schema/nodes/box-vent.d.ts.map +1 -1
- package/dist/schema/nodes/building.d.ts +28 -1
- 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 +167 -114
- 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 +44 -7
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +8 -0
- package/dist/schema/nodes/chimney.d.ts +42 -16
- package/dist/schema/nodes/chimney.d.ts.map +1 -1
- package/dist/schema/nodes/column.d.ts +321 -187
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +4 -0
- package/dist/schema/nodes/construction-dimension.d.ts +53 -27
- package/dist/schema/nodes/construction-dimension.d.ts.map +1 -1
- package/dist/schema/nodes/cupola.d.ts +34 -8
- package/dist/schema/nodes/cupola.d.ts.map +1 -1
- 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 +170 -44
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +37 -33
- package/dist/schema/nodes/dormer.d.ts +56 -29
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +36 -10
- package/dist/schema/nodes/downspout.d.ts.map +1 -1
- package/dist/schema/nodes/duct-fitting.d.ts +44 -18
- package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
- package/dist/schema/nodes/duct-segment.d.ts +34 -8
- package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
- package/dist/schema/nodes/duct-terminal.d.ts +31 -5
- package/dist/schema/nodes/duct-terminal.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.d.ts +34 -8
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/eyebrow-vent.d.ts +32 -6
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
- package/dist/schema/nodes/fence-feature.d.ts +141 -0
- package/dist/schema/nodes/fence-feature.d.ts.map +1 -0
- package/dist/schema/nodes/fence-feature.js +21 -0
- 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 +175 -18
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +76 -7
- package/dist/schema/nodes/floor-opening.d.ts +61 -0
- package/dist/schema/nodes/floor-opening.d.ts.map +1 -0
- package/dist/schema/nodes/floor-opening.js +17 -0
- package/dist/schema/nodes/guide.d.ts +27 -1
- package/dist/schema/nodes/guide.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.d.ts +33 -7
- 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 +32 -6
- package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -1
- package/dist/schema/nodes/imported-mesh.d.ts +27 -1
- package/dist/schema/nodes/imported-mesh.d.ts.map +1 -1
- package/dist/schema/nodes/item.d.ts +169 -13
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +13 -0
- package/dist/schema/nodes/lean-to-extension.d.ts +55 -29
- package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -1
- package/dist/schema/nodes/level.d.ts +28 -2
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/lineset.d.ts +27 -1
- package/dist/schema/nodes/lineset.d.ts.map +1 -1
- package/dist/schema/nodes/liquid-line.d.ts +27 -1
- package/dist/schema/nodes/liquid-line.d.ts.map +1 -1
- package/dist/schema/nodes/measurement.d.ts +27 -1
- package/dist/schema/nodes/measurement.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.d.ts +41 -0
- package/dist/schema/nodes/opening-types.d.ts.map +1 -0
- package/dist/schema/nodes/opening-types.js +48 -0
- package/dist/schema/nodes/pipe-fitting.d.ts +34 -8
- package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-segment.d.ts +30 -4
- package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-trap.d.ts +28 -2
- package/dist/schema/nodes/pipe-trap.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.d.ts +33 -7
- 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 +26 -1
- package/dist/schema/nodes/roof-segment.d.ts +175 -40
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +100 -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 +122 -21
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +6 -0
- package/dist/schema/nodes/scan.d.ts +27 -1
- package/dist/schema/nodes/scan.d.ts.map +1 -1
- package/dist/schema/nodes/separator.d.ts +50 -0
- package/dist/schema/nodes/separator.d.ts.map +1 -0
- package/dist/schema/nodes/separator.js +8 -0
- package/dist/schema/nodes/shelf.d.ts +35 -9
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- 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 +235 -1
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +115 -1
- package/dist/schema/nodes/skylight.d.ts +64 -38
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +91 -7
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +37 -2
- package/dist/schema/nodes/solar-panel.d.ts +40 -14
- package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
- package/dist/schema/nodes/spawn.d.ts +27 -1
- package/dist/schema/nodes/spawn.d.ts.map +1 -1
- package/dist/schema/nodes/stair-construction.d.ts +21 -0
- package/dist/schema/nodes/stair-construction.d.ts.map +1 -0
- package/dist/schema/nodes/stair-construction.js +13 -0
- 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-design-targets.d.ts +9 -0
- package/dist/schema/nodes/stair-design-targets.d.ts.map +1 -0
- package/dist/schema/nodes/stair-design-targets.js +7 -0
- package/dist/schema/nodes/stair-segment.d.ts +78 -10
- package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
- package/dist/schema/nodes/stair-segment.js +13 -0
- 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 +131 -38
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +46 -3
- package/dist/schema/nodes/structural-grid.d.ts +27 -1
- package/dist/schema/nodes/structural-grid.d.ts.map +1 -1
- package/dist/schema/nodes/surface-hole-metadata.d.ts +4 -1
- package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
- package/dist/schema/nodes/surface-hole-metadata.js +2 -1
- package/dist/schema/nodes/surface-paint-region.d.ts +14 -0
- package/dist/schema/nodes/surface-paint-region.d.ts.map +1 -0
- package/dist/schema/nodes/surface-paint-region.js +12 -0
- package/dist/schema/nodes/turbine-vent.d.ts +32 -6
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
- package/dist/schema/nodes/unit.d.ts +29 -3
- package/dist/schema/nodes/unit.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +771 -147
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +204 -186
- package/dist/schema/nodes/window.d.ts +173 -38
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +22 -14
- package/dist/schema/nodes/zone.d.ts +291 -4
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +56 -0
- package/dist/schema/provenance.d.ts +118 -0
- package/dist/schema/provenance.d.ts.map +1 -0
- package/dist/schema/provenance.js +76 -0
- 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/source-ref.d.ts +23 -0
- package/dist/schema/source-ref.d.ts.map +1 -0
- package/dist/schema/source-ref.js +29 -0
- package/dist/schema/types.d.ts +4442 -653
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +7 -0
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
- package/dist/services/alignment-anchors.d.ts +2 -1
- package/dist/services/alignment-anchors.d.ts.map +1 -1
- package/dist/services/alignment-anchors.js +9 -6
- 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 +10 -4
- 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 +72 -6
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +215 -12
- package/dist/services/surface-hosting.d.ts.map +1 -1
- package/dist/services/surface-hosting.js +4 -1
- package/dist/solar-panel-presets.d.ts +2 -2
- package/dist/store/actions/node-actions.d.ts +4994 -8
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +541 -175
- package/dist/store/derived-node-guard.d.ts +84 -0
- package/dist/store/derived-node-guard.d.ts.map +1 -0
- package/dist/store/derived-node-guard.js +586 -0
- package/dist/store/history-control.d.ts +73 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +183 -5
- package/dist/store/history-drafts.d.ts +48 -0
- package/dist/store/history-drafts.d.ts.map +1 -0
- package/dist/store/history-drafts.js +403 -0
- package/dist/store/history-invalidation.d.ts.map +1 -1
- package/dist/store/history-invalidation.js +1 -0
- package/dist/store/item-interaction.d.ts +28 -0
- package/dist/store/item-interaction.d.ts.map +1 -0
- package/dist/store/item-interaction.js +34 -0
- package/dist/store/registered-node-defaults.d.ts +11 -0
- package/dist/store/registered-node-defaults.d.ts.map +1 -0
- package/dist/store/registered-node-defaults.js +25 -0
- package/dist/store/scene-annotations.d.ts +9827 -0
- package/dist/store/scene-annotations.d.ts.map +1 -0
- package/dist/store/scene-annotations.js +107 -0
- 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-interactive.d.ts +23 -1
- package/dist/store/use-interactive.d.ts.map +1 -1
- package/dist/store/use-interactive.js +128 -5
- 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 +68 -12
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +452 -308
- package/dist/systems/elevator/elevator-dispatch.js +1 -1
- package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-sync.js +4 -6
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-system.js +12 -6
- package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-service.js +8 -3
- package/dist/systems/fence/fence-centerline.d.ts.map +1 -1
- package/dist/systems/fence/fence-centerline.js +6 -5
- package/dist/systems/fence/fence-features.d.ts +36 -0
- package/dist/systems/fence/fence-features.d.ts.map +1 -0
- package/dist/systems/fence/fence-features.js +105 -0
- package/dist/systems/fence/fence-spline.d.ts +8 -5
- package/dist/systems/fence/fence-spline.d.ts.map +1 -1
- package/dist/systems/fence/fence-spline.js +51 -16
- package/dist/systems/owned-floor-openings.d.ts +9 -0
- package/dist/systems/owned-floor-openings.d.ts.map +1 -0
- package/dist/systems/owned-floor-openings.js +347 -0
- package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -0
- package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -0
- package/dist/systems/reconcile-owned-floor-openings.js +25 -0
- 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__/doorway-steps.d.ts +8 -0
- package/dist/systems/slab/__fixtures__/doorway-steps.d.ts.map +1 -0
- package/dist/systems/slab/__fixtures__/doorway-steps.js +62 -0
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +6743 -0
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -0
- package/dist/systems/slab/__fixtures__/floor-step.js +66 -0
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +6848 -0
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -0
- package/dist/systems/slab/__fixtures__/raised-room.js +54 -0
- package/dist/systems/slab/ensure-slab-openings.d.ts +9 -0
- package/dist/systems/slab/ensure-slab-openings.d.ts.map +1 -0
- package/dist/systems/slab/ensure-slab-openings.js +41 -0
- package/dist/systems/slab/slab-support.d.ts +30 -8
- package/dist/systems/slab/slab-support.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.js +547 -62
- package/dist/systems/stair/stair-base-elevation.d.ts +3 -0
- package/dist/systems/stair/stair-base-elevation.d.ts.map +1 -0
- package/dist/systems/stair/stair-base-elevation.js +49 -0
- package/dist/systems/stair/stair-clearance.d.ts +39 -0
- package/dist/systems/stair/stair-clearance.d.ts.map +1 -0
- package/dist/systems/stair/stair-clearance.js +508 -0
- package/dist/systems/stair/stair-construction.d.ts +37 -0
- package/dist/systems/stair/stair-construction.d.ts.map +1 -0
- package/dist/systems/stair/stair-construction.js +314 -0
- package/dist/systems/stair/stair-detail-budget.d.ts +13 -0
- package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -0
- package/dist/systems/stair/stair-detail-budget.js +64 -0
- package/dist/systems/stair/stair-flight.d.ts +2 -2
- package/dist/systems/stair/stair-flight.d.ts.map +1 -1
- package/dist/systems/stair/stair-flight.js +4 -3
- package/dist/systems/stair/stair-floor-footprints.d.ts +7 -0
- package/dist/systems/stair/stair-floor-footprints.d.ts.map +1 -0
- package/dist/systems/stair/stair-floor-footprints.js +113 -0
- package/dist/systems/stair/stair-footprint.d.ts +9 -1
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +123 -57
- package/dist/systems/stair/stair-layout.d.ts +39 -0
- package/dist/systems/stair/stair-layout.d.ts.map +1 -0
- package/dist/systems/stair/stair-layout.js +58 -0
- package/dist/systems/stair/stair-opening-preview.d.ts +4022 -2061
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.d.ts +8 -2
- package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.js +136 -315
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +40 -8
- package/dist/systems/stair/stair-presets.d.ts +284 -0
- package/dist/systems/stair/stair-presets.d.ts.map +1 -0
- package/dist/systems/stair/stair-presets.js +158 -0
- package/dist/systems/stair/stair-rail-budget.d.ts +6 -0
- package/dist/systems/stair/stair-rail-budget.d.ts.map +1 -0
- package/dist/systems/stair/stair-rail-budget.js +36 -0
- package/dist/systems/stair/stair-rail-path.d.ts +22 -0
- package/dist/systems/stair/stair-rail-path.d.ts.map +1 -0
- package/dist/systems/stair/stair-rail-path.js +497 -0
- package/dist/systems/stair/stair-rise-edit.d.ts +9 -0
- package/dist/systems/stair/stair-rise-edit.d.ts.map +1 -0
- package/dist/systems/stair/stair-rise-edit.js +46 -0
- package/dist/systems/stair/stair-rise-query.d.ts +40 -0
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -0
- package/dist/systems/stair/stair-rise-query.js +175 -0
- package/dist/systems/stair/stair-rise.d.ts +4 -19
- package/dist/systems/stair/stair-rise.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise.js +8 -71
- package/dist/systems/stair/stair-sizing.d.ts +416 -0
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -0
- package/dist/systems/stair/stair-sizing.js +255 -0
- package/dist/systems/stair/stair-sweep-edit.d.ts +7 -0
- package/dist/systems/stair/stair-sweep-edit.d.ts.map +1 -0
- package/dist/systems/stair/stair-sweep-edit.js +8 -0
- package/dist/systems/stair/stair-walking-line.d.ts +5 -0
- package/dist/systems/stair/stair-walking-line.d.ts.map +1 -0
- package/dist/systems/stair/stair-walking-line.js +91 -0
- package/dist/systems/stair/stair-winder.d.ts +36 -0
- package/dist/systems/stair/stair-winder.d.ts.map +1 -0
- package/dist/systems/stair/stair-winder.js +173 -0
- package/dist/systems/wall/wall-assembly.d.ts +245 -0
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -0
- package/dist/systems/wall/wall-assembly.js +875 -0
- package/dist/systems/wall/wall-curve.d.ts +7 -1
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +34 -5
- package/dist/systems/wall/wall-finish.d.ts +102 -0
- package/dist/systems/wall/wall-finish.d.ts.map +1 -0
- package/dist/systems/wall/wall-finish.js +264 -0
- package/dist/systems/wall/wall-footprint.d.ts +3 -0
- package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
- package/dist/systems/wall/wall-footprint.js +15 -13
- package/dist/systems/wall/wall-frame.d.ts +45 -0
- package/dist/systems/wall/wall-frame.d.ts.map +1 -0
- package/dist/systems/wall/wall-frame.js +170 -0
- package/dist/systems/wall/wall-layer-bands.d.ts +38 -0
- package/dist/systems/wall/wall-layer-bands.d.ts.map +1 -0
- package/dist/systems/wall/wall-layer-bands.js +109 -0
- package/dist/systems/wall/wall-merge.d.ts +20 -1
- package/dist/systems/wall/wall-merge.d.ts.map +1 -1
- package/dist/systems/wall/wall-merge.js +189 -18
- package/dist/systems/wall/wall-mitering.d.ts +6 -5
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +70 -20
- package/dist/systems/wall/wall-operations.d.ts +1 -1
- package/dist/systems/wall/wall-operations.d.ts.map +1 -1
- package/dist/systems/wall/wall-operations.js +2 -1
- package/dist/systems/wall/wall-paint-plan.d.ts +30 -0
- package/dist/systems/wall/wall-paint-plan.d.ts.map +1 -0
- package/dist/systems/wall/wall-paint-plan.js +167 -0
- package/dist/systems/wall/wall-room-sides.d.ts +14 -0
- package/dist/systems/wall/wall-room-sides.d.ts.map +1 -0
- package/dist/systems/wall/wall-room-sides.js +67 -0
- package/dist/systems/wall/wall-step-openings.d.ts +17 -0
- package/dist/systems/wall/wall-step-openings.d.ts.map +1 -0
- package/dist/systems/wall/wall-step-openings.js +32 -0
- package/dist/systems/wall/wall-top.d.ts +7 -8
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +15 -13
- package/dist/systems/wall/wall-topology.d.ts +25 -0
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +408 -5
- 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 +6 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +131 -15
- package/dist/utils/ensure-scene-openings.d.ts +9823 -0
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -0
- package/dist/utils/ensure-scene-openings.js +29 -0
- package/dist/utils/exterior-threshold-migration.d.ts +4 -0
- package/dist/utils/exterior-threshold-migration.d.ts.map +1 -0
- package/dist/utils/exterior-threshold-migration.js +114 -0
- package/dist/utils/floor-follow-migration.d.ts +3 -0
- package/dist/utils/floor-follow-migration.d.ts.map +1 -0
- package/dist/utils/floor-follow-migration.js +29 -0
- package/dist/utils/floor-opening-migration.d.ts +13 -0
- package/dist/utils/floor-opening-migration.d.ts.map +1 -0
- package/dist/utils/floor-opening-migration.js +148 -0
- package/dist/utils/floor-piece-adoption.d.ts +50 -0
- package/dist/utils/floor-piece-adoption.d.ts.map +1 -0
- package/dist/utils/floor-piece-adoption.js +182 -0
- package/dist/utils/floor-plate-migration.d.ts +4936 -0
- package/dist/utils/floor-plate-migration.d.ts.map +1 -0
- package/dist/utils/floor-plate-migration.js +1360 -0
- package/dist/utils/heal-plan-coordinates.d.ts +2 -0
- package/dist/utils/heal-plan-coordinates.d.ts.map +1 -0
- package/dist/utils/heal-plan-coordinates.js +69 -0
- package/dist/utils/heal-scene-graph.d.ts +32 -6
- package/dist/utils/heal-scene-graph.d.ts.map +1 -1
- package/dist/utils/heal-scene-graph.js +78 -16
- package/dist/utils/legacy-material-slots.d.ts +23 -0
- package/dist/utils/legacy-material-slots.d.ts.map +1 -0
- package/dist/utils/legacy-material-slots.js +120 -0
- package/dist/utils/legacy-opening-datums.d.ts +11 -0
- package/dist/utils/legacy-opening-datums.d.ts.map +1 -0
- package/dist/utils/legacy-opening-datums.js +92 -0
- package/dist/utils/legacy-wall-datums.d.ts +6 -0
- package/dist/utils/legacy-wall-datums.d.ts.map +1 -0
- package/dist/utils/legacy-wall-datums.js +199 -0
- package/dist/utils/load-migration.d.ts +28 -0
- package/dist/utils/load-migration.d.ts.map +1 -0
- package/dist/utils/load-migration.js +89 -0
- package/dist/utils/node-defaults.d.ts +37 -0
- package/dist/utils/node-defaults.d.ts.map +1 -0
- package/dist/utils/node-defaults.js +96 -0
- package/dist/utils/normalize-legacy-structure.d.ts +2 -0
- package/dist/utils/normalize-legacy-structure.d.ts.map +1 -0
- package/dist/utils/normalize-legacy-structure.js +61 -0
- package/dist/utils/omit-undefined.d.ts +2 -0
- package/dist/utils/omit-undefined.d.ts.map +1 -0
- package/dist/utils/omit-undefined.js +17 -0
- package/dist/utils/owned-floor-opening-migration.d.ts +4918 -0
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -0
- package/dist/utils/owned-floor-opening-migration.js +365 -0
- package/dist/utils/reconcile-structure-on-load.d.ts +4918 -0
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -0
- package/dist/utils/reconcile-structure-on-load.js +307 -0
- package/dist/utils/room-zone-migration.d.ts +18 -0
- package/dist/utils/room-zone-migration.d.ts.map +1 -0
- package/dist/utils/room-zone-migration.js +258 -0
- package/dist/utils/scene-migrations.d.ts +16 -1
- package/dist/utils/scene-migrations.d.ts.map +1 -1
- package/dist/utils/scene-migrations.js +15 -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 +4 -0
- package/dist/utils/structure-id.d.ts.map +1 -0
- package/dist/utils/structure-id.js +115 -0
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/vertical-scene-migration.d.ts +8 -8
- package/dist/utils/vertical-scene-migration.d.ts.map +1 -1
- package/dist/utils/vertical-scene-migration.js +18 -8
- package/dist/utils/wall-assembly-migration.d.ts +14 -0
- package/dist/utils/wall-assembly-migration.d.ts.map +1 -0
- package/dist/utils/wall-assembly-migration.js +23 -0
- package/dist/utils/wall-face-migration.d.ts +23 -0
- package/dist/utils/wall-face-migration.d.ts.map +1 -0
- package/dist/utils/wall-face-migration.js +246 -0
- package/dist/validation/opening-bounds.d.ts +36 -0
- package/dist/validation/opening-bounds.d.ts.map +1 -0
- package/dist/validation/opening-bounds.js +34 -0
- package/dist/validation/validate-build-json.d.ts +2 -0
- package/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +36 -1
- package/package.json +69 -10
- package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +0 -13
- package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +0 -1
- package/dist/services/surface-hosting-procedural-parity.fixtures.js +0 -4691
- package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +0 -1060
- package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +0 -1
- package/dist/services/surface-hosting-shelf-parity.fixtures.js +0 -3127
|
@@ -1,15 +1,38 @@
|
|
|
1
|
+
import { planWallDeletion } from '../../commands/structure/plan-wall-deletion.js';
|
|
2
|
+
import { withoutFloorStepOverrideKeys } from '../../lib/floor-step-finish.js';
|
|
3
|
+
import { isSpaceDetectionPaused } from '../../lib/space-detection.js';
|
|
4
|
+
import { deletedSurfaceSupportPatch } from '../../lib/surface-support-references.js';
|
|
1
5
|
import { nodeRegistry } from '../../registry/registry.js';
|
|
2
6
|
import { validateNodeRelations } from '../../registry/validate-relations.js';
|
|
3
7
|
import { AnyNode as AnyNodeSchema, createDefaultGuttersForSegment, createDefaultRidgeVentsForSegment, DownspoutNode as DownspoutNodeSchema, defaultDownspoutMetadata, generateId, getDefaultGutterSide, isAutoGutterEnabled, isAutoRidgeVentEnabled, isDefaultDownspoutNode, isDefaultGutterNode, isDefaultRidgeVentNode, parseNode, planAutomaticDownspouts, resolveAutomaticDownspoutLength, } from '../../schema/index.js';
|
|
8
|
+
import { Provenance } from '../../schema/provenance.js';
|
|
4
9
|
import { constrainWallCurveOffsetToAvoidIntersections } from '../../systems/wall/wall-curve.js';
|
|
5
|
-
import { areWallStylesCompatible, areWallsCollinearAcrossPoint, buildMergedWallAttachmentUpdates, getWallEndpointAtPoint, resolveMergedWallEndpoints, } from '../../systems/wall/wall-merge.js';
|
|
6
|
-
import {
|
|
10
|
+
import { areWallStylesCompatible, areWallsCollinearAcrossPoint, buildMergedWallAttachmentUpdates, getWallEndpointAtPoint, mergeWallFaceRegions, planMergedZoneReferences, resolveMergedWallEndpoints, } from '../../systems/wall/wall-merge.js';
|
|
11
|
+
import { areSemanticValuesEqual } from '../../utils/semantic-equal.js';
|
|
12
|
+
import { convertDerivedPlateHoleWrites, DERIVED_WRITER_TOKEN, derivedDeletionIntent, derivedDetachPatch, filterDerivedNodeWrites, isDerivedNode, } from '../derived-node-guard.js';
|
|
13
|
+
import { activeSceneCommitNodeIds, addActiveSceneCommitNodeIds, noteDerivedNodeWrites, runWithSceneCommitNodeIds, } from '../history-control.js';
|
|
14
|
+
/**
|
|
15
|
+
* What a derived write of `updates` changes, for the commit that carries it: a node, and the fields whose
|
|
16
|
+
* value differs from the node's own. A write that sets what is already there changes nothing, so it is
|
|
17
|
+
* not noted and cannot mark a later authored edit of that field as derived.
|
|
18
|
+
*/
|
|
19
|
+
function changedDerivedFields(nodes, updates) {
|
|
20
|
+
return updates.flatMap(({ id, data }) => {
|
|
21
|
+
const node = nodes[id];
|
|
22
|
+
if (!node)
|
|
23
|
+
return [];
|
|
24
|
+
const fields = Object.keys(data).filter((field) => !areSemanticValuesEqual(node[field], data[field]));
|
|
25
|
+
return fields.length ? [{ id, fields }] : [];
|
|
26
|
+
});
|
|
27
|
+
}
|
|
7
28
|
const DEFAULT_RIDGE_VENT_REFRESH_FIELDS = new Set([
|
|
29
|
+
'roofSystem',
|
|
8
30
|
'roofType',
|
|
9
31
|
'width',
|
|
10
32
|
'depth',
|
|
11
33
|
'pitch',
|
|
12
34
|
'overhang',
|
|
35
|
+
'gableOverhang',
|
|
13
36
|
'wallThickness',
|
|
14
37
|
'shingleThickness',
|
|
15
38
|
'gambrelLowerWidthRatio',
|
|
@@ -28,6 +51,8 @@ const DEFAULT_GUTTER_REFRESH_FIELDS = new Set([
|
|
|
28
51
|
'wallHeight',
|
|
29
52
|
'pitch',
|
|
30
53
|
'overhang',
|
|
54
|
+
'gableOverhang',
|
|
55
|
+
'wallThickness',
|
|
31
56
|
'trim',
|
|
32
57
|
]);
|
|
33
58
|
const NUMBER_FORMAT_BOUNDS = {
|
|
@@ -367,12 +392,42 @@ function warnSanitizedNodeMutation(mutation, nodeId, issues) {
|
|
|
367
392
|
// A broken diagnostic sink must not interrupt a node mutation either.
|
|
368
393
|
}
|
|
369
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* Source ids cannot be repaired the way the numeric fallback repairs a value:
|
|
397
|
+
* any fix would drop or rewrite them (D5). A write that sets an invalid
|
|
398
|
+
* `provenance` throws, whatever the node's kind (a plain plugin kind never
|
|
399
|
+
* reaches a schema that knows the field), so the mutation applies nothing.
|
|
400
|
+
*/
|
|
401
|
+
function assertProvenanceWrite(nodeId, value) {
|
|
402
|
+
if (value === undefined)
|
|
403
|
+
return;
|
|
404
|
+
const parsed = Provenance.safeParse(value);
|
|
405
|
+
if (parsed.success)
|
|
406
|
+
return;
|
|
407
|
+
const issue = parsed.error.issues[0];
|
|
408
|
+
const at = ['provenance', ...(issue?.path ?? [])].join('.');
|
|
409
|
+
throw new Error(`Node "${nodeId}": provenance refused at ${at}: ${issue?.message}`);
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* A strict kind parses everything but `provenance`, which core checks on write
|
|
413
|
+
* and carries verbatim: a stored over-cap value (kept at load) must not make
|
|
414
|
+
* the node uneditable, and a schema that never declared the base field must
|
|
415
|
+
* not drop it.
|
|
416
|
+
*/
|
|
417
|
+
function parseStrict(schema, candidate) {
|
|
418
|
+
if (!Object.hasOwn(candidate, 'provenance'))
|
|
419
|
+
return schema.parse(candidate);
|
|
420
|
+
const { provenance, ...rest } = candidate;
|
|
421
|
+
const parsed = schema.parse(rest);
|
|
422
|
+
return provenance === undefined ? parsed : { ...parsed, provenance };
|
|
423
|
+
}
|
|
370
424
|
function parseCreatedNode(node, parentId) {
|
|
371
425
|
const candidate = { ...node, parentId };
|
|
426
|
+
assertProvenanceWrite(candidate.id, candidate.provenance);
|
|
372
427
|
const registered = nodeRegistry.get(candidate.type)?.schema;
|
|
373
428
|
// Generated definitions must reject invalid geometry instead of retaining a failed parse.
|
|
374
429
|
if (registered?.meta?.()?.strictMutations === true)
|
|
375
|
-
return registered
|
|
430
|
+
return parseStrict(registered, candidate);
|
|
376
431
|
const parsed = parseNode(candidate);
|
|
377
432
|
if (parsed.success)
|
|
378
433
|
return parsed.data;
|
|
@@ -398,6 +453,9 @@ function mergeNodeUpdate(currentNode, patch) {
|
|
|
398
453
|
return merged;
|
|
399
454
|
}
|
|
400
455
|
function parseUpdatedNode(currentNode, data) {
|
|
456
|
+
// Only a write of the field is checked: a stored over-cap value stays editable.
|
|
457
|
+
if (Object.hasOwn(data, 'provenance'))
|
|
458
|
+
assertProvenanceWrite(currentNode.id, data.provenance);
|
|
401
459
|
const candidate = mergeNodeUpdate(currentNode, data);
|
|
402
460
|
// Graph links survive schemas that omit children; only an explicit patch may change them.
|
|
403
461
|
const preserveChildren = (updated) => !Object.hasOwn(data, 'children') &&
|
|
@@ -408,7 +466,7 @@ function parseUpdatedNode(currentNode, data) {
|
|
|
408
466
|
const registered = nodeRegistry.get(currentNode.type)?.schema;
|
|
409
467
|
// Generated definitions must reject invalid geometry instead of retaining a failed parse.
|
|
410
468
|
if (registered?.meta?.()?.strictMutations === true)
|
|
411
|
-
return preserveChildren(registered
|
|
469
|
+
return preserveChildren(parseStrict(registered, candidate));
|
|
412
470
|
const parsed = parseNode(candidate);
|
|
413
471
|
if (parsed.success)
|
|
414
472
|
return preserveChildren(parsed.data);
|
|
@@ -751,6 +809,10 @@ function refreshDefaultGuttersForRoofIds(nextNodes, roofIds, dirtyIds, deletedId
|
|
|
751
809
|
// Track pending RAF for updateNodesAction to prevent multiple queued callbacks
|
|
752
810
|
let pendingRafId = null;
|
|
753
811
|
let pendingUpdates = new Set();
|
|
812
|
+
/** Authored updates whose deferred dirty intent has not reached render systems yet. */
|
|
813
|
+
export function getPendingNodeUpdateCount() {
|
|
814
|
+
return pendingUpdates.size;
|
|
815
|
+
}
|
|
754
816
|
function buildWallMergePlans(nodes, idsToDelete) {
|
|
755
817
|
const deletedWalls = idsToDelete
|
|
756
818
|
.map((id) => nodes[id])
|
|
@@ -788,6 +850,11 @@ function buildWallMergePlans(nodes, idsToDelete) {
|
|
|
788
850
|
continue;
|
|
789
851
|
}
|
|
790
852
|
const { start, end } = resolveMergedWallEndpoints(primary, secondary, junction);
|
|
853
|
+
// A heal that would repaint a room or overflow a side's regions leaves the walls split.
|
|
854
|
+
const mergedFaceRegions = mergeWallFaceRegions([primary, secondary], start, end);
|
|
855
|
+
const zoneUpdates = planMergedZoneReferences(nodes, primary, secondary, start, end);
|
|
856
|
+
if (!(mergedFaceRegions && zoneUpdates))
|
|
857
|
+
continue;
|
|
791
858
|
const mergedChildren = Array.from(new Set([...(primary.children ?? []), ...(secondary.children ?? [])]));
|
|
792
859
|
const attachmentUpdates = buildMergedWallAttachmentUpdates(primary, secondary, primary.id, start, end, nodes);
|
|
793
860
|
mergePlans.push({
|
|
@@ -796,7 +863,9 @@ function buildWallMergePlans(nodes, idsToDelete) {
|
|
|
796
863
|
mergedStart: start,
|
|
797
864
|
mergedEnd: end,
|
|
798
865
|
mergedChildren,
|
|
866
|
+
mergedFaceRegions: mergedFaceRegions.length > 0 ? mergedFaceRegions : undefined,
|
|
799
867
|
attachmentUpdates,
|
|
868
|
+
zoneUpdates,
|
|
800
869
|
});
|
|
801
870
|
usedWallIds.add(primary.id);
|
|
802
871
|
usedWallIds.add(secondary.id);
|
|
@@ -804,17 +873,23 @@ function buildWallMergePlans(nodes, idsToDelete) {
|
|
|
804
873
|
}
|
|
805
874
|
return mergePlans;
|
|
806
875
|
}
|
|
807
|
-
const createNodesActionImpl = (set, get, ops) => {
|
|
876
|
+
const createNodesActionImpl = (set, get, ops, options) => {
|
|
808
877
|
if (get().readOnly)
|
|
809
878
|
return;
|
|
879
|
+
ops = filterDerivedNodeWrites(get().nodes, { create: ops }, options).create;
|
|
880
|
+
if (!ops.length)
|
|
881
|
+
return;
|
|
882
|
+
if (options?.derivedWriter === DERIVED_WRITER_TOKEN)
|
|
883
|
+
noteDerivedNodeWrites(ops.map((op) => ({ id: op.node.id })));
|
|
810
884
|
const extraNodesToMarkDirty = new Set();
|
|
811
885
|
const extraNodesToClearDirty = new Set();
|
|
812
886
|
set((state) => {
|
|
813
887
|
const nextNodes = { ...state.nodes };
|
|
814
888
|
const nextRootIds = [...state.rootNodeIds];
|
|
815
|
-
|
|
889
|
+
const nextCollections = { ...state.collections };
|
|
890
|
+
for (const { node, parentId, collectionIds } of ops) {
|
|
816
891
|
const effectiveParentId = parentId ?? node.parentId ?? null;
|
|
817
|
-
const newNode = parseCreatedNode(node, effectiveParentId);
|
|
892
|
+
const newNode = joinCollections(nextCollections, parseCreatedNode(node, effectiveParentId), collectionIds);
|
|
818
893
|
nextNodes[newNode.id] = newNode;
|
|
819
894
|
// 2. Update the Parent's children list. We append to ANY container
|
|
820
895
|
// parent (kind has `children` in its schema) — if the field is
|
|
@@ -853,7 +928,12 @@ const createNodesActionImpl = (set, get, ops) => {
|
|
|
853
928
|
}
|
|
854
929
|
refreshDefaultGuttersForRoofIds(nextNodes, refreshedRoofIds, extraNodesToMarkDirty, extraNodesToClearDirty);
|
|
855
930
|
addActiveSceneCommitNodeIds([...extraNodesToMarkDirty, ...extraNodesToClearDirty]);
|
|
856
|
-
|
|
931
|
+
const joined = Object.entries(nextCollections).some(([id, collection]) => state.collections[id] !== collection);
|
|
932
|
+
return {
|
|
933
|
+
nodes: nextNodes,
|
|
934
|
+
rootNodeIds: nextRootIds,
|
|
935
|
+
...(joined && { collections: nextCollections }),
|
|
936
|
+
};
|
|
857
937
|
});
|
|
858
938
|
// 4. System Sync
|
|
859
939
|
ops.forEach(({ node, parentId }) => {
|
|
@@ -868,11 +948,61 @@ const createNodesActionImpl = (set, get, ops) => {
|
|
|
868
948
|
for (const id of extraNodesToClearDirty)
|
|
869
949
|
get().clearDirty(id);
|
|
870
950
|
};
|
|
871
|
-
|
|
951
|
+
/**
|
|
952
|
+
* A created node joins the collections it is given, or an item those its mirror
|
|
953
|
+
* names, so a duplicate or a same-project paste stays a member; ids of
|
|
954
|
+
* collections this scene lacks (a paste from another project) are dropped.
|
|
955
|
+
* Writes the joined collections into `collections` and returns the node, an
|
|
956
|
+
* item with its mirror set to what it joined.
|
|
957
|
+
*/
|
|
958
|
+
export function joinCollections(collections, node, requested = node.type === 'item' ? node.collectionIds : undefined) {
|
|
959
|
+
const collectionIds = (requested ?? []).filter((id) => collections[id]);
|
|
960
|
+
for (const id of collectionIds) {
|
|
961
|
+
const collection = collections[id];
|
|
962
|
+
if (!collection.nodeIds.includes(node.id))
|
|
963
|
+
collections[id] = { ...collection, nodeIds: [...collection.nodeIds, node.id] };
|
|
964
|
+
}
|
|
965
|
+
if (node.type !== 'item' || sameIds(node.collectionIds ?? [], collectionIds))
|
|
966
|
+
return node;
|
|
967
|
+
return { ...node, collectionIds };
|
|
968
|
+
}
|
|
969
|
+
function sameIds(left, right) {
|
|
970
|
+
return left.length === right.length && left.every((id, index) => right[index] === id);
|
|
971
|
+
}
|
|
972
|
+
/** The collections `id` belongs to: membership lives on the collection for every kind. */
|
|
973
|
+
export function collectionIdsOf(collections, id) {
|
|
974
|
+
return Object.values(collections)
|
|
975
|
+
.filter((collection) => collection.nodeIds.includes(id))
|
|
976
|
+
.map((collection) => collection.id);
|
|
977
|
+
}
|
|
978
|
+
/** Membership lives on the collection; only items mirror it, so every collection is checked. */
|
|
979
|
+
function removeFromCollections(collections, id) {
|
|
980
|
+
for (const [collectionId, collection] of Object.entries(collections)) {
|
|
981
|
+
if (collection.nodeIds.includes(id))
|
|
982
|
+
collections[collectionId] = {
|
|
983
|
+
...collection,
|
|
984
|
+
nodeIds: collection.nodeIds.filter((nodeId) => nodeId !== id),
|
|
985
|
+
};
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
const applyNodeChangesActionImpl = (set, get, changes, options) => {
|
|
872
989
|
if (get().readOnly)
|
|
873
990
|
return;
|
|
991
|
+
changes = convertDerivedPlateHoleWrites(get().nodes, changes, options);
|
|
992
|
+
changes = filterDerivedNodeWrites(get().nodes, changes, options);
|
|
993
|
+
if (!changes.create?.length && !changes.update?.length && !changes.delete?.length)
|
|
994
|
+
return;
|
|
995
|
+
if (options?.derivedWriter === DERIVED_WRITER_TOKEN)
|
|
996
|
+
noteDerivedNodeWrites([
|
|
997
|
+
...(changes.create ?? []).map((op) => ({ id: op.node.id })),
|
|
998
|
+
...changedDerivedFields(get().nodes, changes.update ?? []),
|
|
999
|
+
...(changes.delete ?? []).filter((id) => get().nodes[id]).map((id) => ({ id })),
|
|
1000
|
+
]);
|
|
874
1001
|
const createOps = changes.create ?? [];
|
|
875
|
-
const
|
|
1002
|
+
const deletionIntent = options?.derivedWriter === DERIVED_WRITER_TOKEN
|
|
1003
|
+
? []
|
|
1004
|
+
: derivedDeletionIntent(get().nodes, changes.delete ?? []);
|
|
1005
|
+
const updateOps = [...(changes.update ?? []), ...deletionIntent];
|
|
876
1006
|
const deleteOps = changes.delete ?? [];
|
|
877
1007
|
const nodesToMarkDirty = new Set();
|
|
878
1008
|
const nodesToClearDirty = new Set();
|
|
@@ -923,9 +1053,9 @@ const applyNodeChangesActionImpl = (set, get, changes) => {
|
|
|
923
1053
|
}
|
|
924
1054
|
nodesToMarkDirty.add(id);
|
|
925
1055
|
}
|
|
926
|
-
for (const { node, parentId } of createOps) {
|
|
1056
|
+
for (const { node, parentId, collectionIds } of createOps) {
|
|
927
1057
|
const effectiveParentId = parentId ?? node.parentId ?? null;
|
|
928
|
-
const newNode = parseCreatedNode(node, effectiveParentId);
|
|
1058
|
+
const newNode = joinCollections(nextCollections, parseCreatedNode(node, effectiveParentId), collectionIds);
|
|
929
1059
|
nextNodes[newNode.id] = newNode;
|
|
930
1060
|
nodesToMarkDirty.add(newNode.id);
|
|
931
1061
|
if (newNode.type === 'roof-segment' && effectiveParentId) {
|
|
@@ -984,17 +1114,7 @@ const applyNodeChangesActionImpl = (set, get, changes) => {
|
|
|
984
1114
|
}
|
|
985
1115
|
}
|
|
986
1116
|
resolvedRootIds = resolvedRootIds.filter((rootId) => rootId !== id);
|
|
987
|
-
|
|
988
|
-
for (const collectionId of node.collectionIds) {
|
|
989
|
-
const collection = nextCollections[collectionId];
|
|
990
|
-
if (collection) {
|
|
991
|
-
nextCollections[collectionId] = {
|
|
992
|
-
...collection,
|
|
993
|
-
nodeIds: collection.nodeIds.filter((nodeId) => nodeId !== id),
|
|
994
|
-
};
|
|
995
|
-
}
|
|
996
|
-
}
|
|
997
|
-
}
|
|
1117
|
+
removeFromCollections(nextCollections, id);
|
|
998
1118
|
delete nextNodes[id];
|
|
999
1119
|
}
|
|
1000
1120
|
refreshDefaultGuttersForRoofIds(nextNodes, roofsToRefresh, nodesToMarkDirty, nodesToClearDirty);
|
|
@@ -1022,9 +1142,19 @@ const applyNodeChangesActionImpl = (set, get, changes) => {
|
|
|
1022
1142
|
}
|
|
1023
1143
|
}
|
|
1024
1144
|
};
|
|
1025
|
-
const updateNodesActionImpl = (set, get, updates) => {
|
|
1145
|
+
const updateNodesActionImpl = (set, get, updates, options, deferDirty = true) => {
|
|
1026
1146
|
if (get().readOnly)
|
|
1027
1147
|
return;
|
|
1148
|
+
const converted = convertDerivedPlateHoleWrites(get().nodes, { update: updates }, options);
|
|
1149
|
+
if (converted.create?.length || converted.delete?.length) {
|
|
1150
|
+
applyNodeChangesActionImpl(set, get, converted, options);
|
|
1151
|
+
return;
|
|
1152
|
+
}
|
|
1153
|
+
updates = filterDerivedNodeWrites(get().nodes, { update: converted.update ?? [] }, options).update;
|
|
1154
|
+
if (!updates.length)
|
|
1155
|
+
return;
|
|
1156
|
+
if (options?.derivedWriter === DERIVED_WRITER_TOKEN)
|
|
1157
|
+
noteDerivedNodeWrites(changedDerivedFields(get().nodes, updates));
|
|
1028
1158
|
const parentsToUpdate = new Set();
|
|
1029
1159
|
const extraNodesToUpdate = new Set();
|
|
1030
1160
|
const extraNodesToDelete = new Set();
|
|
@@ -1101,6 +1231,13 @@ const updateNodesActionImpl = (set, get, updates) => {
|
|
|
1101
1231
|
]);
|
|
1102
1232
|
return { nodes: nextNodes };
|
|
1103
1233
|
});
|
|
1234
|
+
if (!deferDirty) {
|
|
1235
|
+
for (const id of [...updates.map((u) => u.id), ...parentsToUpdate, ...extraNodesToUpdate])
|
|
1236
|
+
get().markDirty(id);
|
|
1237
|
+
for (const id of extraNodesToDelete)
|
|
1238
|
+
get().clearDirty(id);
|
|
1239
|
+
return;
|
|
1240
|
+
}
|
|
1104
1241
|
// Batch dirty-marking into a single RAF to avoid redundant callbacks during rapid updates
|
|
1105
1242
|
for (const u of updates) {
|
|
1106
1243
|
// Visibility is applied by React before the deferred dirty callback. Mark
|
|
@@ -1130,175 +1267,320 @@ const updateNodesActionImpl = (set, get, updates) => {
|
|
|
1130
1267
|
pendingRafId = null;
|
|
1131
1268
|
});
|
|
1132
1269
|
};
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1270
|
+
/**
|
|
1271
|
+
* The delete store action's planner, without committing: the requested ids,
|
|
1272
|
+
* their `children` subtrees and kind `onDeleteCascade` companions, collinear
|
|
1273
|
+
* walls merged across a deleted junction, the separators that keep two rooms
|
|
1274
|
+
* apart when the wall between them goes, derived-construction deletion intent,
|
|
1275
|
+
* neighbour patches, support and unit cleanup, and the default gutter and
|
|
1276
|
+
* downspout refresh.
|
|
1277
|
+
*
|
|
1278
|
+
* The refresh mints gutters, downspouts and outlets with random ids, and which
|
|
1279
|
+
* existing defaults it keeps can depend on them. With `mintDefaults: false`
|
|
1280
|
+
* (a preview, such as the MCP patch dry run) the refresh does not run: the
|
|
1281
|
+
* existing defaults it would touch are listed in `unsettledIds`, and the plan
|
|
1282
|
+
* is deterministic and equals the commit for every other existing id. The
|
|
1283
|
+
* delete action mints.
|
|
1284
|
+
*/
|
|
1285
|
+
export function planNodeDeletion(scene, ids, { mintDefaults = true, options, wallDeletionPlan, } = {}) {
|
|
1136
1286
|
const parentsToMarkDirty = new Set();
|
|
1137
1287
|
const nodesToMarkDirty = new Set();
|
|
1138
1288
|
const deletedIds = new Set();
|
|
1139
|
-
const mergePlans = buildWallMergePlans(
|
|
1289
|
+
const mergePlans = buildWallMergePlans(scene.nodes, ids);
|
|
1140
1290
|
const requestedDeleteIds = new Set(ids);
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1291
|
+
// Deleting derived construction is an intent edit ("this room has no
|
|
1292
|
+
// ceiling"), not a refusal — the reconciler must not rebuild it.
|
|
1293
|
+
const deletionIntent = options?.derivedWriter === DERIVED_WRITER_TOKEN ? [] : derivedDeletionIntent(scene.nodes, ids);
|
|
1294
|
+
// A preview names the separators a room-preserving delete adds without random ids.
|
|
1295
|
+
let previewCount = 0;
|
|
1296
|
+
const previewId = (kind) => {
|
|
1297
|
+
let id;
|
|
1298
|
+
do
|
|
1299
|
+
id = `${kind}_preview${++previewCount}`;
|
|
1300
|
+
while (id in scene.nodes);
|
|
1301
|
+
return id;
|
|
1302
|
+
};
|
|
1303
|
+
const nextNodes = { ...scene.nodes };
|
|
1304
|
+
const nextCollections = { ...scene.collections };
|
|
1305
|
+
let nextRootIds = [...scene.rootNodeIds];
|
|
1306
|
+
// Collect all ids to delete (the requested ids + all their descendants) before
|
|
1307
|
+
// mutating anything, so the recursive walk reads consistent state.
|
|
1308
|
+
const allIds = new Set();
|
|
1309
|
+
const collect = (id) => {
|
|
1310
|
+
if (allIds.has(id))
|
|
1311
|
+
return;
|
|
1312
|
+
allIds.add(id);
|
|
1313
|
+
const node = nextNodes[id];
|
|
1314
|
+
const cascadeDeletes = node
|
|
1315
|
+
? nodeRegistry
|
|
1316
|
+
.get(node.type)
|
|
1317
|
+
?.parametrics?.onDeleteCascade?.(node, nextNodes, allIds, requestedDeleteIds)
|
|
1318
|
+
: null;
|
|
1319
|
+
if (cascadeDeletes) {
|
|
1320
|
+
for (const companionId of cascadeDeletes)
|
|
1321
|
+
collect(companionId);
|
|
1322
|
+
}
|
|
1323
|
+
if (node && 'children' in node) {
|
|
1324
|
+
for (const cid of node.children)
|
|
1325
|
+
collect(cid);
|
|
1326
|
+
}
|
|
1327
|
+
};
|
|
1328
|
+
for (const id of ids)
|
|
1329
|
+
collect(id);
|
|
1330
|
+
if (wallDeletionPlan ||
|
|
1331
|
+
(options?.derivedWriter !== DERIVED_WRITER_TOKEN && !isSpaceDetectionPaused())) {
|
|
1332
|
+
const plan = wallDeletionPlan ??
|
|
1333
|
+
planWallDeletion(scene.nodes, {
|
|
1334
|
+
nodeIds: [...allIds],
|
|
1335
|
+
mintId: mintDefaults ? generateId : previewId,
|
|
1336
|
+
});
|
|
1337
|
+
for (const change of plan.changes) {
|
|
1338
|
+
if (change.op === 'delete')
|
|
1339
|
+
collect(change.id);
|
|
1340
|
+
else if (change.op === 'update') {
|
|
1341
|
+
const current = nextNodes[change.id];
|
|
1342
|
+
if (current)
|
|
1343
|
+
nextNodes[change.id] = parseUpdatedNode(current, change.data);
|
|
1344
|
+
nodesToMarkDirty.add(change.id);
|
|
1161
1345
|
}
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1346
|
+
else {
|
|
1347
|
+
const node = change.node;
|
|
1348
|
+
nextNodes[node.id] = node;
|
|
1349
|
+
nodesToMarkDirty.add(node.id);
|
|
1350
|
+
const parent = node.parentId ? nextNodes[node.parentId] : undefined;
|
|
1351
|
+
if (parent && 'children' in parent && Array.isArray(parent.children)) {
|
|
1352
|
+
nextNodes[parent.id] = { ...parent, children: [...parent.children, node.id] };
|
|
1353
|
+
parentsToMarkDirty.add(parent.id);
|
|
1354
|
+
}
|
|
1165
1355
|
}
|
|
1166
|
-
};
|
|
1167
|
-
for (const id of ids)
|
|
1168
|
-
collect(id);
|
|
1169
|
-
for (const plan of mergePlans) {
|
|
1170
|
-
allIds.add(plan.secondaryWallId);
|
|
1171
1356
|
}
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1357
|
+
}
|
|
1358
|
+
for (const plan of mergePlans) {
|
|
1359
|
+
allIds.add(plan.secondaryWallId);
|
|
1360
|
+
}
|
|
1361
|
+
const affectedRoofIds = new Set();
|
|
1362
|
+
for (const id of allIds) {
|
|
1363
|
+
const node = nextNodes[id];
|
|
1364
|
+
addLeanToHostRoofId(node, nextNodes, affectedRoofIds);
|
|
1365
|
+
if (node?.type === 'roof-segment' && node.parentId) {
|
|
1366
|
+
affectedRoofIds.add(node.parentId);
|
|
1179
1367
|
}
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1368
|
+
}
|
|
1369
|
+
for (const id of allIds)
|
|
1370
|
+
deletedIds.add(id);
|
|
1371
|
+
// Let each deleted kind undo what it imposed on its neighbours (e.g. an
|
|
1372
|
+
// auto-inserted elbow re-extends the duct runs it trimmed back onto the
|
|
1373
|
+
// corner it replaced). Read against pre-deletion `nextNodes`; skip
|
|
1374
|
+
// patches that target a node also being deleted.
|
|
1375
|
+
for (const id of allIds) {
|
|
1376
|
+
const node = nextNodes[id];
|
|
1377
|
+
if (!node)
|
|
1378
|
+
continue;
|
|
1379
|
+
const onDelete = nodeRegistry.get(node.type)?.parametrics?.onDelete;
|
|
1380
|
+
if (!onDelete)
|
|
1381
|
+
continue;
|
|
1382
|
+
for (const { id: targetId, data } of onDelete(node, nextNodes, allIds, requestedDeleteIds)) {
|
|
1383
|
+
if (allIds.has(targetId))
|
|
1189
1384
|
continue;
|
|
1190
|
-
const
|
|
1191
|
-
if (!
|
|
1385
|
+
const target = nextNodes[targetId];
|
|
1386
|
+
if (!target)
|
|
1192
1387
|
continue;
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
}
|
|
1388
|
+
nextNodes[targetId] = { ...target, ...data };
|
|
1389
|
+
nodesToMarkDirty.add(targetId);
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
for (const plan of mergePlans) {
|
|
1393
|
+
const primaryWall = nextNodes[plan.primaryWallId];
|
|
1394
|
+
if (!(primaryWall && primaryWall.type === 'wall') || allIds.has(plan.primaryWallId)) {
|
|
1395
|
+
continue;
|
|
1202
1396
|
}
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1397
|
+
const { faceRegions: _regions, ...keptWall } = primaryWall;
|
|
1398
|
+
nextNodes[plan.primaryWallId] = {
|
|
1399
|
+
...keptWall,
|
|
1400
|
+
...(plan.mergedFaceRegions ? { faceRegions: plan.mergedFaceRegions } : {}),
|
|
1401
|
+
start: plan.mergedStart,
|
|
1402
|
+
end: plan.mergedEnd,
|
|
1403
|
+
children: plan.mergedChildren,
|
|
1404
|
+
};
|
|
1405
|
+
nodesToMarkDirty.add(plan.primaryWallId);
|
|
1406
|
+
for (const update of plan.zoneUpdates) {
|
|
1407
|
+
if (allIds.has(update.id))
|
|
1206
1408
|
continue;
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
...
|
|
1210
|
-
start: plan.mergedStart,
|
|
1211
|
-
end: plan.mergedEnd,
|
|
1212
|
-
children: plan.mergedChildren,
|
|
1213
|
-
};
|
|
1214
|
-
nodesToMarkDirty.add(plan.primaryWallId);
|
|
1215
|
-
for (const update of plan.attachmentUpdates) {
|
|
1216
|
-
if (allIds.has(update.id))
|
|
1217
|
-
continue;
|
|
1218
|
-
const child = nextNodes[update.id];
|
|
1219
|
-
if (!child)
|
|
1220
|
-
continue;
|
|
1221
|
-
nextNodes[update.id] = { ...child, ...update.data };
|
|
1222
|
-
nodesToMarkDirty.add(update.id);
|
|
1223
|
-
}
|
|
1409
|
+
const zone = nextNodes[update.id];
|
|
1410
|
+
if (zone)
|
|
1411
|
+
nextNodes[update.id] = { ...zone, ...update.data };
|
|
1224
1412
|
}
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
if (nextNodes[id]?.type === 'slab')
|
|
1234
|
-
deletedSlabIds.add(id);
|
|
1413
|
+
for (const update of plan.attachmentUpdates) {
|
|
1414
|
+
if (allIds.has(update.id))
|
|
1415
|
+
continue;
|
|
1416
|
+
const child = nextNodes[update.id];
|
|
1417
|
+
if (!child)
|
|
1418
|
+
continue;
|
|
1419
|
+
nextNodes[update.id] = { ...child, ...update.data };
|
|
1420
|
+
nodesToMarkDirty.add(update.id);
|
|
1235
1421
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1422
|
+
}
|
|
1423
|
+
// Deleting a slab strips `supportSlabId` / `deckSlabId` references from
|
|
1424
|
+
// surviving nodes in the same undo commit (mirrors the collectionIds
|
|
1425
|
+
// cleanup below), so those nodes re-elect their support / re-derive
|
|
1426
|
+
// their rise. Deletion is the ONLY writer — a host merely reshaped away
|
|
1427
|
+
// keeps the field and the read path falls back, letting hosting resume
|
|
1428
|
+
// if the slab returns.
|
|
1429
|
+
const deletedSlabIds = new Set();
|
|
1430
|
+
for (const id of allIds) {
|
|
1431
|
+
if (nextNodes[id]?.type === 'slab')
|
|
1432
|
+
deletedSlabIds.add(id);
|
|
1433
|
+
}
|
|
1434
|
+
if (deletedSlabIds.size > 0) {
|
|
1435
|
+
for (const [nodeId, node] of Object.entries(nextNodes)) {
|
|
1436
|
+
if (allIds.has(nodeId))
|
|
1437
|
+
continue;
|
|
1438
|
+
const patch = {};
|
|
1439
|
+
const hostId = node.supportSlabId;
|
|
1440
|
+
if (hostId && deletedSlabIds.has(hostId))
|
|
1441
|
+
patch.supportSlabId = undefined;
|
|
1442
|
+
const deckId = node.deckSlabId;
|
|
1443
|
+
if (deckId && deletedSlabIds.has(deckId))
|
|
1444
|
+
patch.deckSlabId = undefined;
|
|
1445
|
+
if (Object.keys(patch).length > 0) {
|
|
1446
|
+
nextNodes[nodeId] = { ...node, ...patch };
|
|
1447
|
+
nodesToMarkDirty.add(nodeId);
|
|
1251
1448
|
}
|
|
1252
1449
|
}
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1450
|
+
}
|
|
1451
|
+
for (const node of Object.values(nextNodes)) {
|
|
1452
|
+
if (allIds.has(node.id))
|
|
1453
|
+
continue;
|
|
1454
|
+
const patch = deletedSurfaceSupportPatch(node, allIds);
|
|
1455
|
+
if (!patch)
|
|
1456
|
+
continue;
|
|
1457
|
+
nextNodes[node.id] = { ...node, ...patch };
|
|
1458
|
+
nodesToMarkDirty.add(node.id);
|
|
1459
|
+
}
|
|
1460
|
+
// A deleted door takes its step paint with it, in the same undo step; every
|
|
1461
|
+
// other doorway keeps its own.
|
|
1462
|
+
for (const node of Object.values(nextNodes)) {
|
|
1463
|
+
if (node.type !== 'zone' || allIds.has(node.id))
|
|
1464
|
+
continue;
|
|
1465
|
+
const pruned = withoutFloorStepOverrideKeys(node, allIds);
|
|
1466
|
+
if (!pruned)
|
|
1467
|
+
continue;
|
|
1468
|
+
nextNodes[node.id] = pruned;
|
|
1469
|
+
nodesToMarkDirty.add(node.id);
|
|
1470
|
+
}
|
|
1471
|
+
const deletedZoneIds = new Set();
|
|
1472
|
+
for (const id of allIds) {
|
|
1473
|
+
if (nextNodes[id]?.type === 'zone')
|
|
1474
|
+
deletedZoneIds.add(id);
|
|
1475
|
+
}
|
|
1476
|
+
if (deletedZoneIds.size > 0) {
|
|
1477
|
+
for (const node of Object.values(nextNodes)) {
|
|
1478
|
+
if (node.type !== 'unit' || allIds.has(node.id))
|
|
1479
|
+
continue;
|
|
1480
|
+
const members = node.members.filter((id) => !deletedZoneIds.has(id));
|
|
1481
|
+
if (members.length === node.members.length)
|
|
1482
|
+
continue;
|
|
1483
|
+
nextNodes[node.id] = { ...node, members };
|
|
1484
|
+
nodesToMarkDirty.add(node.id);
|
|
1257
1485
|
}
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1486
|
+
}
|
|
1487
|
+
for (const id of allIds) {
|
|
1488
|
+
const node = nextNodes[id];
|
|
1489
|
+
if (!node)
|
|
1490
|
+
continue;
|
|
1491
|
+
// Legacy graphs can link children without a reciprocal parentId.
|
|
1492
|
+
const parentId = (node.parentId ??
|
|
1493
|
+
Object.values(nextNodes).find((candidate) => 'children' in candidate && candidate.children?.some((childId) => childId === id))?.id);
|
|
1494
|
+
if (parentId && nextNodes[parentId] && !allIds.has(parentId)) {
|
|
1495
|
+
const parent = nextNodes[parentId];
|
|
1496
|
+
if (parent.children) {
|
|
1497
|
+
nextNodes[parent.id] = {
|
|
1498
|
+
...parent,
|
|
1499
|
+
children: parent.children.filter((cid) => cid !== id),
|
|
1500
|
+
};
|
|
1501
|
+
parentsToMarkDirty.add(parent.id);
|
|
1267
1502
|
}
|
|
1268
1503
|
}
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1504
|
+
// 2. Remove from root list
|
|
1505
|
+
nextRootIds = nextRootIds.filter((rid) => rid !== id);
|
|
1506
|
+
// 3. Remove from any collections it belongs to
|
|
1507
|
+
removeFromCollections(nextCollections, id);
|
|
1508
|
+
// 4. Delete the node itself
|
|
1509
|
+
delete nextNodes[id];
|
|
1510
|
+
}
|
|
1511
|
+
for (const { id, data } of deletionIntent) {
|
|
1512
|
+
const zone = nextNodes[id];
|
|
1513
|
+
if (!zone)
|
|
1514
|
+
continue;
|
|
1515
|
+
nextNodes[id] = { ...zone, ...data };
|
|
1516
|
+
nodesToMarkDirty.add(id);
|
|
1517
|
+
}
|
|
1518
|
+
const unsettledIds = new Set();
|
|
1519
|
+
const regeneratedHostIds = new Set();
|
|
1520
|
+
if (mintDefaults) {
|
|
1521
|
+
refreshDefaultGuttersForRoofIds(nextNodes, affectedRoofIds, nodesToMarkDirty, deletedIds);
|
|
1522
|
+
}
|
|
1523
|
+
else {
|
|
1524
|
+
collectRefreshedDefaults(nextNodes, affectedRoofIds, unsettledIds, regeneratedHostIds);
|
|
1525
|
+
}
|
|
1526
|
+
return {
|
|
1527
|
+
nodes: nextNodes,
|
|
1528
|
+
rootNodeIds: nextRootIds,
|
|
1529
|
+
collections: nextCollections,
|
|
1530
|
+
deletedIds,
|
|
1531
|
+
parentsToMarkDirty,
|
|
1532
|
+
nodesToMarkDirty,
|
|
1533
|
+
unsettledIds,
|
|
1534
|
+
regeneratedHostIds,
|
|
1535
|
+
};
|
|
1536
|
+
}
|
|
1537
|
+
/**
|
|
1538
|
+
* The existing nodes the default gutter refresh of `roofIds` may keep, move or
|
|
1539
|
+
* replace: each roof's default gutters and the downspouts on them. Which of
|
|
1540
|
+
* them survive depends on the gutters the refresh mints, whose ids are random.
|
|
1541
|
+
* `hosts` receives the roof segments whose `children` the refresh rewrites.
|
|
1542
|
+
*/
|
|
1543
|
+
function collectRefreshedDefaults(nodes, roofIds, out, hosts) {
|
|
1544
|
+
const gutterIds = new Set();
|
|
1545
|
+
for (const roofId of new Set(roofIds)) {
|
|
1546
|
+
const roof = nodes[roofId];
|
|
1547
|
+
if (roof?.type !== 'roof')
|
|
1548
|
+
continue;
|
|
1549
|
+
for (const segmentId of roof.children ?? []) {
|
|
1550
|
+
const segment = nodes[segmentId];
|
|
1551
|
+
if (segment?.type !== 'roof-segment')
|
|
1272
1552
|
continue;
|
|
1273
|
-
|
|
1274
|
-
const
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
if (parent.children) {
|
|
1278
|
-
nextNodes[parent.id] = {
|
|
1279
|
-
...parent,
|
|
1280
|
-
children: parent.children.filter((cid) => cid !== id),
|
|
1281
|
-
};
|
|
1282
|
-
parentsToMarkDirty.add(parent.id);
|
|
1553
|
+
hosts.add(segment.id);
|
|
1554
|
+
for (const childId of segment.children ?? []) {
|
|
1555
|
+
if (isDefaultGutterNode(nodes[childId], segment.id)) {
|
|
1556
|
+
gutterIds.add(childId);
|
|
1283
1557
|
}
|
|
1284
1558
|
}
|
|
1285
|
-
// 2. Remove from root list
|
|
1286
|
-
nextRootIds = nextRootIds.filter((rid) => rid !== id);
|
|
1287
|
-
// 3. Remove from any collections it belongs to
|
|
1288
|
-
if ('collectionIds' in node && node.collectionIds) {
|
|
1289
|
-
for (const cid of node.collectionIds) {
|
|
1290
|
-
const col = nextCollections[cid];
|
|
1291
|
-
if (col) {
|
|
1292
|
-
nextCollections[cid] = { ...col, nodeIds: col.nodeIds.filter((nid) => nid !== id) };
|
|
1293
|
-
}
|
|
1294
|
-
}
|
|
1295
|
-
}
|
|
1296
|
-
// 4. Delete the node itself
|
|
1297
|
-
delete nextNodes[id];
|
|
1298
1559
|
}
|
|
1299
|
-
|
|
1560
|
+
}
|
|
1561
|
+
for (const id of gutterIds)
|
|
1562
|
+
out.add(id);
|
|
1563
|
+
for (const node of Object.values(nodes)) {
|
|
1564
|
+
if (node?.type === 'downspout' && node.gutterId && gutterIds.has(node.gutterId)) {
|
|
1565
|
+
out.add(node.id);
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
const deleteNodesActionImpl = (set, get, ids, options, wallDeletionPlan) => {
|
|
1570
|
+
if (get().readOnly)
|
|
1571
|
+
return;
|
|
1572
|
+
if (options?.derivedWriter === DERIVED_WRITER_TOKEN)
|
|
1573
|
+
noteDerivedNodeWrites(ids.filter((id) => get().nodes[id]).map((id) => ({ id })));
|
|
1574
|
+
let deletedIds = new Set();
|
|
1575
|
+
let parentsToMarkDirty = new Set();
|
|
1576
|
+
let nodesToMarkDirty = new Set();
|
|
1577
|
+
set((state) => {
|
|
1578
|
+
const plan = planNodeDeletion(state, ids, { options, wallDeletionPlan });
|
|
1579
|
+
deletedIds = plan.deletedIds;
|
|
1580
|
+
parentsToMarkDirty = plan.parentsToMarkDirty;
|
|
1581
|
+
nodesToMarkDirty = plan.nodesToMarkDirty;
|
|
1300
1582
|
addActiveSceneCommitNodeIds([...deletedIds, ...parentsToMarkDirty, ...nodesToMarkDirty]);
|
|
1301
|
-
return { nodes:
|
|
1583
|
+
return { nodes: plan.nodes, rootNodeIds: plan.rootNodeIds, collections: plan.collections };
|
|
1302
1584
|
});
|
|
1303
1585
|
// Deleted ids must leave the dirty set: every consumer skips missing
|
|
1304
1586
|
// nodes without clearing them, so a mark on a deleted node would sit in
|
|
@@ -1328,17 +1610,101 @@ function validatedSet(set) {
|
|
|
1328
1610
|
return patch;
|
|
1329
1611
|
});
|
|
1330
1612
|
}
|
|
1331
|
-
|
|
1613
|
+
/** Runs the same deletion hooks and update constraints for headless scene owners. */
|
|
1614
|
+
export function planSceneNodeChanges(snapshot, changes) {
|
|
1615
|
+
const dirtyIds = new Set();
|
|
1616
|
+
let state = {
|
|
1617
|
+
...snapshot,
|
|
1618
|
+
readOnly: false,
|
|
1619
|
+
markDirty: (id) => {
|
|
1620
|
+
dirtyIds.add(id);
|
|
1621
|
+
},
|
|
1622
|
+
clearDirty: (id) => {
|
|
1623
|
+
dirtyIds.delete(id);
|
|
1624
|
+
},
|
|
1625
|
+
};
|
|
1626
|
+
const set = (update) => {
|
|
1627
|
+
state = { ...state, ...update(state) };
|
|
1628
|
+
};
|
|
1629
|
+
if (changes.update?.length)
|
|
1630
|
+
updateNodesActionImpl(set, () => state, changes.update, undefined, false);
|
|
1631
|
+
if (changes.delete?.length)
|
|
1632
|
+
deleteNodesActionImpl(set, () => state, changes.delete, undefined, changes.wallDeletionPlan);
|
|
1633
|
+
return {
|
|
1634
|
+
nodes: state.nodes,
|
|
1635
|
+
rootNodeIds: state.rootNodeIds,
|
|
1636
|
+
collections: state.collections,
|
|
1637
|
+
dirtyIds: [...dirtyIds],
|
|
1638
|
+
};
|
|
1639
|
+
}
|
|
1640
|
+
export const createNodesAction = (set, get, ops, options) => runWithSceneCommitNodeIds(ops.flatMap(({ node, parentId }) => {
|
|
1332
1641
|
const effectiveParentId = parentId ?? node.parentId;
|
|
1333
1642
|
return effectiveParentId ? [node.id, effectiveParentId] : [node.id];
|
|
1334
|
-
}), () => createNodesActionImpl(validatedSet(set), get, ops));
|
|
1335
|
-
export const applyNodeChangesAction = (set, get, changes) => runWithSceneCommitNodeIds([
|
|
1643
|
+
}), () => createNodesActionImpl(validatedSet(set), get, ops, options));
|
|
1644
|
+
export const applyNodeChangesAction = (set, get, changes, options) => runWithSceneCommitNodeIds([
|
|
1336
1645
|
...(changes.create ?? []).flatMap(({ node, parentId }) => {
|
|
1337
1646
|
const effectiveParentId = parentId ?? node.parentId;
|
|
1338
1647
|
return effectiveParentId ? [node.id, effectiveParentId] : [node.id];
|
|
1339
1648
|
}),
|
|
1340
1649
|
...(changes.update ?? []).map(({ id }) => id),
|
|
1341
1650
|
...(changes.delete ?? []),
|
|
1342
|
-
], () => applyNodeChangesActionImpl(validatedSet(set), get, changes));
|
|
1343
|
-
export const updateNodesAction = (set, get, updates) => runWithSceneCommitNodeIds(updates.map(({ id }) => id), () => updateNodesActionImpl(validatedSet(set), get, updates));
|
|
1344
|
-
export const deleteNodesAction = (set, get, ids) => runWithSceneCommitNodeIds(ids, () => deleteNodesActionImpl(validatedSet(set), get, ids));
|
|
1651
|
+
], () => applyNodeChangesActionImpl(validatedSet(set), get, changes, options));
|
|
1652
|
+
export const updateNodesAction = (set, get, updates, options) => runWithSceneCommitNodeIds(updates.map(({ id }) => id), () => updateNodesActionImpl(validatedSet(set), get, updates, options));
|
|
1653
|
+
export const deleteNodesAction = (set, get, ids, options) => runWithSceneCommitNodeIds(ids, () => deleteNodesActionImpl(validatedSet(set), get, ids, options));
|
|
1654
|
+
/**
|
|
1655
|
+
* The sanctioned conversion from derived construction to an authored surface:
|
|
1656
|
+
* the boundary editors' polygon edit, a 2D reshape, a manual move. Clears the
|
|
1657
|
+
* derived markers (and the zone link) in the same update that carries the
|
|
1658
|
+
* caller's own change, so the reconciler stops owning the surface from this
|
|
1659
|
+
* commit on.
|
|
1660
|
+
*/
|
|
1661
|
+
export const detachDerivedNodeAction = (set, get, id, data) => {
|
|
1662
|
+
const node = get().nodes[id];
|
|
1663
|
+
if (!node)
|
|
1664
|
+
return;
|
|
1665
|
+
// An automatic ceiling draws its room's paint regions; once it is its own it
|
|
1666
|
+
// keeps them on itself.
|
|
1667
|
+
const zone = node.type === 'ceiling' && node.zoneId ? get().nodes[node.zoneId] : null;
|
|
1668
|
+
const keptRegions = node.type === 'ceiling' &&
|
|
1669
|
+
isDerivedNode(node) &&
|
|
1670
|
+
zone?.type === 'zone' &&
|
|
1671
|
+
zone.ceiling?.regions?.length &&
|
|
1672
|
+
!(data && 'regions' in data)
|
|
1673
|
+
? { regions: zone.ceiling.regions }
|
|
1674
|
+
: {};
|
|
1675
|
+
// Spread through a plain record: merging two `Partial<AnyNode>` unions
|
|
1676
|
+
// explodes into a union TypeScript cannot represent.
|
|
1677
|
+
const patch = {
|
|
1678
|
+
...data,
|
|
1679
|
+
...keptRegions,
|
|
1680
|
+
...(isDerivedNode(node) ? derivedDetachPatch(node) : {}),
|
|
1681
|
+
...(node.type === 'slab' && isDerivedNode(node)
|
|
1682
|
+
? { associatedZoneIds: node.zoneIds ?? [] }
|
|
1683
|
+
: {}),
|
|
1684
|
+
};
|
|
1685
|
+
if (Object.keys(patch).length === 0)
|
|
1686
|
+
return;
|
|
1687
|
+
const ownerUpdates = node.type === 'slab' && isDerivedNode(node)
|
|
1688
|
+
? (node.zoneIds ?? []).flatMap((zoneId) => {
|
|
1689
|
+
const zone = get().nodes[zoneId];
|
|
1690
|
+
return zone?.type === 'zone'
|
|
1691
|
+
? [{ id: zone.id, data: { floor: { ...zone.floor, sourceSlabId: node.id } } }]
|
|
1692
|
+
: [];
|
|
1693
|
+
})
|
|
1694
|
+
: [];
|
|
1695
|
+
runWithSceneCommitNodeIds([id, ...ownerUpdates.map(({ id }) => id)], () => updateNodesActionImpl(validatedSet(set), get, [{ id, data: patch }, ...ownerUpdates], {
|
|
1696
|
+
derivedWriter: DERIVED_WRITER_TOKEN,
|
|
1697
|
+
}));
|
|
1698
|
+
};
|
|
1699
|
+
/**
|
|
1700
|
+
* What the default gutter refresh of `roofIds` would touch, without running
|
|
1701
|
+
* it: the existing default gutters and downspouts it may keep or replace, and
|
|
1702
|
+
* the roof segments whose `children` it rewrites. For previews of edits that
|
|
1703
|
+
* trigger the refresh (a roof segment update, a delete).
|
|
1704
|
+
*/
|
|
1705
|
+
export function previewDefaultGutterRefresh(nodes, roofIds) {
|
|
1706
|
+
const unsettledIds = new Set();
|
|
1707
|
+
const regeneratedHostIds = new Set();
|
|
1708
|
+
collectRefreshedDefaults(nodes, roofIds, unsettledIds, regeneratedHostIds);
|
|
1709
|
+
return { unsettledIds, regeneratedHostIds };
|
|
1710
|
+
}
|