@pascal-app/nodes 1.0.1 → 1.0.4
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/block/definition.d.ts.map +1 -1
- package/dist/block/definition.js +22 -4
- package/dist/block/face-host.d.ts.map +1 -1
- package/dist/block/face-host.js +19 -2
- package/dist/block/floorplan.d.ts +11 -1
- package/dist/block/floorplan.d.ts.map +1 -1
- package/dist/block/floorplan.js +81 -13
- package/dist/block/geometry.d.ts +2 -2
- package/dist/block/geometry.d.ts.map +1 -1
- package/dist/block/geometry.js +39 -24
- package/dist/block/hosted-edit.d.ts +13 -0
- package/dist/block/hosted-edit.d.ts.map +1 -0
- package/dist/block/hosted-edit.js +230 -0
- package/dist/block/last-operation.d.ts +1 -1
- package/dist/block/last-operation.d.ts.map +1 -1
- package/dist/block/last-operation.js +6 -4
- package/dist/block/material-slots.d.ts +1 -3
- package/dist/block/material-slots.d.ts.map +1 -1
- package/dist/block/material-slots.js +1 -11
- package/dist/block/modal-session.d.ts +2 -1
- package/dist/block/modal-session.d.ts.map +1 -1
- package/dist/block/modal-session.js +2 -2
- package/dist/block/paint.d.ts.map +1 -1
- package/dist/block/paint.js +4 -10
- package/dist/block/panel.d.ts.map +1 -1
- package/dist/block/panel.js +8 -3
- package/dist/block/selection.d.ts.map +1 -1
- package/dist/block/selection.js +83 -25
- package/dist/block/surface.d.ts +4 -0
- package/dist/block/surface.d.ts.map +1 -0
- package/dist/block/surface.js +54 -0
- package/dist/block/use-block-face-operation.d.ts +2 -2
- package/dist/block/use-block-face-operation.d.ts.map +1 -1
- package/dist/block/use-block-face-operation.js +25 -11
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.js +3 -5
- package/dist/box-vent/panel.d.ts.map +1 -1
- package/dist/box-vent/panel.js +5 -28
- package/dist/building/renderer.d.ts.map +1 -1
- package/dist/building/renderer.js +1 -1
- package/dist/cabinet/countertop-layout.d.ts +13 -2
- package/dist/cabinet/countertop-layout.d.ts.map +1 -1
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +4 -3
- package/dist/cabinet/floorplan.d.ts.map +1 -1
- package/dist/cabinet/floorplan.js +125 -28
- package/dist/cabinet/geometry/shared.d.ts +1 -2
- package/dist/cabinet/geometry/shared.d.ts.map +1 -1
- package/dist/cabinet/geometry/shared.js +1 -2
- package/dist/cabinet/hosted-resize.d.ts +3 -6
- package/dist/cabinet/hosted-resize.d.ts.map +1 -1
- package/dist/cabinet/hosted-resize.js +9 -153
- package/dist/cabinet/placement-snap.d.ts.map +1 -1
- package/dist/cabinet/placement-snap.js +4 -2
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +8 -5
- package/dist/cabinet/run-ops.d.ts +13 -2
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/surfaces.d.ts +1 -0
- package/dist/cabinet/surfaces.d.ts.map +1 -1
- package/dist/cabinet/surfaces.js +13 -1
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +30 -28
- package/dist/cabinet/wall-snap.d.ts.map +1 -1
- package/dist/cabinet/wall-snap.js +8 -8
- package/dist/ceiling/boundary-editor.d.ts.map +1 -1
- package/dist/ceiling/boundary-editor.js +5 -3
- package/dist/ceiling/definition.d.ts +4 -4
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +20 -15
- package/dist/ceiling/floorplan-affordances.d.ts +84 -4
- package/dist/ceiling/floorplan-affordances.d.ts.map +1 -1
- package/dist/ceiling/floorplan-affordances.js +0 -1
- package/dist/ceiling/floorplan-move.d.ts.map +1 -1
- package/dist/ceiling/floorplan-move.js +0 -1
- package/dist/ceiling/floorplan.d.ts +1 -1
- package/dist/ceiling/floorplan.d.ts.map +1 -1
- package/dist/ceiling/floorplan.js +2 -1
- package/dist/ceiling/height-bounds.d.ts +19 -0
- package/dist/ceiling/height-bounds.d.ts.map +1 -0
- package/dist/ceiling/height-bounds.js +24 -0
- package/dist/ceiling/hole-editor.d.ts.map +1 -1
- package/dist/ceiling/hole-editor.js +3 -4
- package/dist/ceiling/materials.d.ts +1 -1
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +10 -3
- package/dist/ceiling/paint.d.ts +2 -8
- package/dist/ceiling/paint.d.ts.map +1 -1
- package/dist/ceiling/paint.js +121 -24
- package/dist/ceiling/panel.d.ts.map +1 -1
- package/dist/ceiling/panel.js +40 -23
- package/dist/ceiling/renderer.d.ts.map +1 -1
- package/dist/ceiling/renderer.js +43 -6
- package/dist/chimney/definition.d.ts.map +1 -1
- package/dist/chimney/definition.js +1 -0
- package/dist/chimney/move-tool.d.ts.map +1 -1
- package/dist/chimney/move-tool.js +8 -2
- package/dist/chimney/paint.d.ts.map +1 -1
- package/dist/chimney/paint.js +3 -10
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +34 -5
- package/dist/column/floorplan-affordances.d.ts.map +1 -1
- package/dist/column/floorplan-affordances.js +11 -1
- package/dist/column/floorplan.d.ts +1 -1
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +69 -12
- package/dist/column/hosted-resize.d.ts +215 -0
- package/dist/column/hosted-resize.d.ts.map +1 -0
- package/dist/column/hosted-resize.js +9 -0
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +153 -149
- package/dist/column/renderer.d.ts.map +1 -1
- package/dist/column/renderer.js +29 -105
- package/dist/column/shape.d.ts +22 -0
- package/dist/column/shape.d.ts.map +1 -0
- package/dist/column/shape.js +120 -0
- package/dist/column/surface.d.ts +4 -0
- package/dist/column/surface.d.ts.map +1 -0
- package/dist/column/surface.js +73 -0
- package/dist/construction-dimension/floorplan.js +7 -3
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.js +3 -8
- package/dist/cupola/panel.d.ts.map +1 -1
- package/dist/cupola/panel.js +5 -23
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.js +52 -4
- package/dist/door/door-math.d.ts +6 -11
- package/dist/door/door-math.d.ts.map +1 -1
- package/dist/door/door-math.js +13 -17
- package/dist/door/floorplan-affordances.d.ts.map +1 -1
- package/dist/door/floorplan-affordances.js +8 -12
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +3 -1
- package/dist/door/floorplan.d.ts.map +1 -1
- package/dist/door/floorplan.js +55 -21
- package/dist/door/mechanism.d.ts +4 -0
- package/dist/door/mechanism.d.ts.map +1 -0
- package/dist/door/mechanism.js +24 -0
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +75 -52
- package/dist/door/paint.d.ts.map +1 -1
- package/dist/door/paint.js +3 -0
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +54 -308
- package/dist/door/placement.d.ts +45 -0
- package/dist/door/placement.d.ts.map +1 -0
- package/dist/door/placement.js +51 -0
- package/dist/door/preview.d.ts.map +1 -1
- package/dist/door/preview.js +2 -0
- package/dist/door/renderer.d.ts.map +1 -1
- package/dist/door/renderer.js +3 -2
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +112 -23
- package/dist/dormer/csg-geometry.d.ts.map +1 -1
- package/dist/dormer/csg-geometry.js +2 -0
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.js +1 -0
- package/dist/dormer/paint.d.ts.map +1 -1
- package/dist/dormer/paint.js +2 -5
- package/dist/dormer/panel.d.ts.map +1 -1
- package/dist/dormer/panel.js +4 -14
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.js +3 -2
- package/dist/duct-fitting/definition.d.ts.map +1 -1
- package/dist/duct-fitting/definition.js +2 -1
- package/dist/duct-fitting/geometry.d.ts.map +1 -1
- package/dist/duct-fitting/geometry.js +1 -1
- package/dist/duct-fitting/move-tool.d.ts.map +1 -1
- package/dist/duct-fitting/move-tool.js +8 -2
- package/dist/duct-segment/definition.d.ts.map +1 -1
- package/dist/duct-segment/definition.js +2 -2
- package/dist/duct-segment/geometry.d.ts.map +1 -1
- package/dist/duct-segment/geometry.js +1 -1
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +8 -2
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +11 -0
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +77 -8
- package/dist/elevator/definition.d.ts.map +1 -1
- package/dist/elevator/definition.js +3 -2
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +5 -27
- package/dist/elevator/parametrics.d.ts.map +1 -1
- package/dist/elevator/parametrics.js +98 -1
- package/dist/elevator/renderer.d.ts.map +1 -1
- package/dist/elevator/renderer.js +3 -4
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.js +3 -5
- package/dist/eyebrow-vent/paint.d.ts.map +1 -1
- package/dist/eyebrow-vent/paint.js +3 -6
- package/dist/eyebrow-vent/panel.d.ts.map +1 -1
- package/dist/eyebrow-vent/panel.js +5 -23
- package/dist/fence/actions/move-endpoint.d.ts +1 -1
- package/dist/fence/actions/move-endpoint.d.ts.map +1 -1
- package/dist/fence/actions/move-endpoint.js +2 -1
- package/dist/fence/definition.d.ts +2 -1
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.js +84 -28
- package/dist/fence/drafting.d.ts +36 -0
- package/dist/fence/drafting.d.ts.map +1 -0
- package/dist/fence/drafting.js +210 -0
- package/dist/fence/feature-tool.d.ts +4 -0
- package/dist/fence/feature-tool.d.ts.map +1 -0
- package/dist/fence/feature-tool.js +140 -0
- package/dist/fence/features.d.ts +2 -0
- package/dist/fence/features.d.ts.map +1 -0
- package/dist/fence/features.js +12 -0
- package/dist/fence/floorplan-affordances.d.ts.map +1 -1
- package/dist/fence/floorplan-affordances.js +2 -1
- package/dist/fence/floorplan.d.ts +2 -3
- package/dist/fence/floorplan.d.ts.map +1 -1
- package/dist/fence/floorplan.js +131 -71
- package/dist/fence/geometry-parts.d.ts +50 -0
- package/dist/fence/geometry-parts.d.ts.map +1 -0
- package/dist/fence/geometry-parts.js +1144 -0
- package/dist/fence/geometry.d.ts +2 -3
- package/dist/fence/geometry.d.ts.map +1 -1
- package/dist/fence/geometry.js +84 -7
- package/dist/fence/index.d.ts +1 -0
- package/dist/fence/index.d.ts.map +1 -1
- package/dist/fence/index.js +1 -0
- package/dist/fence/inspector-editors.d.ts +15 -0
- package/dist/fence/inspector-editors.d.ts.map +1 -1
- package/dist/fence/inspector-editors.js +128 -3
- package/dist/fence/lift.d.ts.map +1 -1
- package/dist/fence/lift.js +5 -2
- package/dist/fence/move-tool.js +2 -1
- package/dist/fence/panel-model.d.ts +4 -0
- package/dist/fence/panel-model.d.ts.map +1 -0
- package/dist/fence/panel-model.js +12 -0
- package/dist/fence/parametrics.d.ts +0 -12
- package/dist/fence/parametrics.d.ts.map +1 -1
- package/dist/fence/parametrics.js +185 -18
- package/dist/fence/system.d.ts.map +1 -1
- package/dist/fence/system.js +141 -31
- package/dist/fence/tool.d.ts.map +1 -1
- package/dist/fence/tool.js +257 -48
- package/dist/fence-feature/actions.d.ts +7 -0
- package/dist/fence-feature/actions.d.ts.map +1 -0
- package/dist/fence-feature/actions.js +26 -0
- package/dist/fence-feature/definition.d.ts +4 -0
- package/dist/fence-feature/definition.d.ts.map +1 -0
- package/dist/fence-feature/definition.js +112 -0
- package/dist/fence-feature/floorplan-affordances.d.ts +3 -0
- package/dist/fence-feature/floorplan-affordances.d.ts.map +1 -0
- package/dist/fence-feature/floorplan-affordances.js +37 -0
- package/dist/fence-feature/floorplan.d.ts +4 -0
- package/dist/fence-feature/floorplan.d.ts.map +1 -0
- package/dist/fence-feature/floorplan.js +120 -0
- package/dist/fence-feature/geometry.d.ts +5 -0
- package/dist/fence-feature/geometry.d.ts.map +1 -0
- package/dist/fence-feature/geometry.js +43 -0
- package/dist/fence-feature/handles.d.ts +5 -0
- package/dist/fence-feature/handles.d.ts.map +1 -0
- package/dist/fence-feature/handles.js +84 -0
- package/dist/fence-feature/inspector.d.ts +6 -0
- package/dist/fence-feature/inspector.d.ts.map +1 -0
- package/dist/fence-feature/inspector.js +214 -0
- package/dist/fence-feature/interaction.d.ts +3 -0
- package/dist/fence-feature/interaction.d.ts.map +1 -0
- package/dist/fence-feature/interaction.js +41 -0
- package/dist/fence-feature/move-session.d.ts +9 -0
- package/dist/fence-feature/move-session.d.ts.map +1 -0
- package/dist/fence-feature/move-session.js +48 -0
- package/dist/fence-feature/move-tool.d.ts +5 -0
- package/dist/fence-feature/move-tool.d.ts.map +1 -0
- package/dist/fence-feature/move-tool.js +58 -0
- package/dist/fence-feature/pick-target.d.ts +7 -0
- package/dist/fence-feature/pick-target.d.ts.map +1 -0
- package/dist/fence-feature/pick-target.js +52 -0
- package/dist/floor-opening/definition.d.ts +3 -0
- package/dist/floor-opening/definition.d.ts.map +1 -0
- package/dist/floor-opening/definition.js +41 -0
- package/dist/floor-opening/floorplan.d.ts +156 -0
- package/dist/floor-opening/floorplan.d.ts.map +1 -0
- package/dist/floor-opening/floorplan.js +63 -0
- package/dist/guide/definition.d.ts.map +1 -1
- package/dist/guide/definition.js +1 -0
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.js +3 -2
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +8 -2
- package/dist/imported-mesh/definition.d.ts.map +1 -1
- package/dist/imported-mesh/definition.js +2 -0
- package/dist/imported-mesh/geometry.d.ts +1 -1
- package/dist/imported-mesh/geometry.d.ts.map +1 -1
- package/dist/imported-mesh/geometry.js +40 -12
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -2
- package/dist/item/authored-face-host.d.ts +10 -0
- package/dist/item/authored-face-host.d.ts.map +1 -0
- package/dist/item/authored-face-host.js +87 -0
- package/dist/item/authored-params.d.ts +15 -0
- package/dist/item/authored-params.d.ts.map +1 -0
- package/dist/item/authored-params.js +72 -0
- package/dist/item/definition.d.ts +2 -2
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +35 -4
- package/dist/item/floorplan-move.d.ts.map +1 -1
- package/dist/item/floorplan-move.js +209 -130
- package/dist/item/floorplan.d.ts +22 -0
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +95 -6
- package/dist/item/index.d.ts +1 -0
- package/dist/item/index.d.ts.map +1 -1
- package/dist/item/index.js +1 -0
- package/dist/item/model-loader.d.ts +2 -0
- package/dist/item/model-loader.d.ts.map +1 -1
- package/dist/item/model-loader.js +55 -23
- package/dist/item/move-tool.d.ts +1 -1
- package/dist/item/move-tool.d.ts.map +1 -1
- package/dist/item/move-tool.js +19 -11
- package/dist/item/paint.d.ts.map +1 -1
- package/dist/item/paint.js +5 -24
- package/dist/item/panel.d.ts +1 -3
- package/dist/item/panel.d.ts.map +1 -1
- package/dist/item/panel.js +20 -24
- package/dist/item/placement-notice.d.ts +14 -0
- package/dist/item/placement-notice.d.ts.map +1 -0
- package/dist/item/placement-notice.js +38 -0
- package/dist/item/plan-symbols.d.ts +67 -0
- package/dist/item/plan-symbols.d.ts.map +1 -0
- package/dist/item/plan-symbols.js +407 -0
- package/dist/item/renderer.d.ts +10 -0
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +72 -40
- package/dist/item/script-param-defaults.d.ts +12 -0
- package/dist/item/script-param-defaults.d.ts.map +1 -0
- package/dist/item/script-param-defaults.js +34 -0
- package/dist/lean-to-extension/definition.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.js +1 -2
- package/dist/lean-to-extension/geometry.d.ts.map +1 -1
- package/dist/lean-to-extension/geometry.js +1 -1
- package/dist/lean-to-extension/layout.d.ts.map +1 -1
- package/dist/lean-to-extension/layout.js +2 -3
- package/dist/lean-to-extension/placement-validation.d.ts.map +1 -1
- package/dist/lean-to-extension/placement-validation.js +5 -5
- package/dist/lean-to-extension/tool.d.ts.map +1 -1
- package/dist/lean-to-extension/tool.js +5 -5
- package/dist/level/renderer.js +1 -1
- package/dist/lineset/move-tool.d.ts.map +1 -1
- package/dist/lineset/move-tool.js +8 -2
- package/dist/lineset/tool.d.ts.map +1 -1
- package/dist/lineset/tool.js +1 -0
- package/dist/liquid-line/move-tool.d.ts.map +1 -1
- package/dist/liquid-line/move-tool.js +8 -2
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +5 -1
- package/dist/measurement/definition.d.ts.map +1 -1
- package/dist/measurement/definition.js +2 -1
- package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
- package/dist/pipe-fitting/move-tool.js +8 -2
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +8 -2
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +14 -3
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -8
- package/dist/procedural-item/animation.d.ts +8 -0
- package/dist/procedural-item/animation.d.ts.map +1 -0
- package/dist/procedural-item/animation.js +116 -0
- package/dist/procedural-item/definition.d.ts.map +1 -1
- package/dist/procedural-item/definition.js +77 -8
- package/dist/procedural-item/geometry.d.ts +5 -1
- package/dist/procedural-item/geometry.d.ts.map +1 -1
- package/dist/procedural-item/geometry.js +239 -15
- package/dist/procedural-item/renderer.d.ts.map +1 -1
- package/dist/procedural-item/renderer.js +272 -23
- package/dist/ridge-vent/definition.d.ts.map +1 -1
- package/dist/ridge-vent/definition.js +1 -0
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +5 -23
- package/dist/ridge-vent/renderer.d.ts.map +1 -1
- package/dist/ridge-vent/renderer.js +9 -8
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +8 -2
- package/dist/roof/floorplan.d.ts +8 -0
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +194 -18
- package/dist/roof/panel-model.d.ts +4 -0
- package/dist/roof/panel-model.d.ts.map +1 -0
- package/dist/roof/panel-model.js +155 -0
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +5 -13
- package/dist/roof/parametrics.d.ts.map +1 -1
- package/dist/roof/parametrics.js +16 -1
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +5 -2
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +1 -0
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +5 -24
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +176 -1
- package/dist/roof-segment/renderer.d.ts.map +1 -1
- package/dist/roof-segment/renderer.js +17 -8
- package/dist/scan/definition.d.ts.map +1 -1
- package/dist/scan/definition.js +1 -0
- package/dist/separator/definition.d.ts +3 -0
- package/dist/separator/definition.d.ts.map +1 -0
- package/dist/separator/definition.js +39 -0
- package/dist/separator/renderer.d.ts +5 -0
- package/dist/separator/renderer.d.ts.map +1 -0
- package/dist/separator/renderer.js +36 -0
- package/dist/shared/commit-opening-move.d.ts +4 -0
- package/dist/shared/commit-opening-move.d.ts.map +1 -0
- package/dist/shared/commit-opening-move.js +9 -0
- package/dist/shared/curtain-opening-limits.d.ts +14 -0
- package/dist/shared/curtain-opening-limits.d.ts.map +1 -0
- package/dist/shared/curtain-opening-limits.js +53 -0
- package/dist/shared/draft-axis-guides.d.ts +0 -6
- package/dist/shared/draft-axis-guides.d.ts.map +1 -1
- package/dist/shared/draft-axis-guides.js +1 -8
- package/dist/shared/duct-body-paint.d.ts +0 -4
- package/dist/shared/duct-body-paint.d.ts.map +1 -1
- package/dist/shared/duct-body-paint.js +1 -5
- package/dist/shared/hosted-resize.d.ts +12 -0
- package/dist/shared/hosted-resize.d.ts.map +1 -0
- package/dist/shared/hosted-resize.js +166 -0
- package/dist/shared/item-interaction-actions.d.ts +6 -0
- package/dist/shared/item-interaction-actions.d.ts.map +1 -0
- package/dist/shared/item-interaction-actions.js +27 -0
- package/dist/shared/item-interactions.d.ts +9 -0
- package/dist/shared/item-interactions.d.ts.map +1 -0
- package/dist/shared/item-interactions.js +74 -0
- package/dist/shared/item-light-placement.d.ts +2 -0
- package/dist/shared/item-light-placement.d.ts.map +1 -0
- package/dist/shared/item-light-placement.js +3 -0
- package/dist/shared/move-roof-tool.js +2 -1
- package/dist/shared/node-batch/batchable.d.ts +12 -0
- package/dist/shared/node-batch/batchable.d.ts.map +1 -0
- package/dist/shared/node-batch/batchable.js +41 -0
- package/dist/shared/node-batch/candidates.d.ts +7 -5
- package/dist/shared/node-batch/candidates.d.ts.map +1 -1
- package/dist/shared/node-batch/candidates.js +43 -59
- package/dist/shared/node-batch/release.d.ts +8 -0
- package/dist/shared/node-batch/release.d.ts.map +1 -0
- package/dist/shared/node-batch/release.js +16 -0
- package/dist/shared/node-batch/system.d.ts.map +1 -1
- package/dist/shared/node-batch/system.js +17 -12
- package/dist/shared/node-batch/types.d.ts +4 -1
- package/dist/shared/node-batch/types.d.ts.map +1 -1
- package/dist/shared/opening-documentation.d.ts +13 -1
- package/dist/shared/opening-documentation.d.ts.map +1 -1
- package/dist/shared/opening-documentation.js +245 -59
- package/dist/shared/opening-grid-follow.d.ts +8 -0
- package/dist/shared/opening-grid-follow.d.ts.map +1 -0
- package/dist/shared/opening-grid-follow.js +12 -0
- package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
- package/dist/shared/opening-guides-runtime.js +17 -14
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +3 -3
- package/dist/shared/opening-plane-offset.d.ts +23 -0
- package/dist/shared/opening-plane-offset.d.ts.map +1 -0
- package/dist/shared/opening-plane-offset.js +24 -0
- package/dist/shared/opening-property-preview-host.d.ts +3 -0
- package/dist/shared/opening-property-preview-host.d.ts.map +1 -0
- package/dist/shared/opening-property-preview-host.js +21 -0
- package/dist/shared/opening-property-preview.d.ts +19 -0
- package/dist/shared/opening-property-preview.d.ts.map +1 -0
- package/dist/shared/opening-property-preview.js +99 -0
- package/dist/shared/polygon-centroid-move.d.ts.map +1 -1
- package/dist/shared/polygon-centroid-move.js +4 -1
- package/dist/shared/polygon-vertex-affordance.d.ts.map +1 -1
- package/dist/shared/polygon-vertex-affordance.js +19 -15
- package/dist/shared/resting-surface-plan.d.ts +2 -1
- package/dist/shared/resting-surface-plan.d.ts.map +1 -1
- package/dist/shared/resting-surface-plan.js +29 -4
- package/dist/shared/run-hangers.d.ts.map +1 -1
- package/dist/shared/run-hangers.js +5 -4
- package/dist/shared/scripted-opening-handles.d.ts +18 -0
- package/dist/shared/scripted-opening-handles.d.ts.map +1 -0
- package/dist/shared/scripted-opening-handles.js +53 -0
- package/dist/shared/scripted-opening.d.ts +25 -0
- package/dist/shared/scripted-opening.d.ts.map +1 -0
- package/dist/shared/scripted-opening.js +72 -0
- package/dist/shared/slot-paint.d.ts +14 -2
- package/dist/shared/slot-paint.d.ts.map +1 -1
- package/dist/shared/slot-paint.js +29 -29
- package/dist/shared/surface-counterparts.d.ts +12 -0
- package/dist/shared/surface-counterparts.d.ts.map +1 -0
- package/dist/shared/surface-counterparts.js +27 -0
- package/dist/shared/surface-paint.d.ts.map +1 -1
- package/dist/shared/surface-paint.js +2 -5
- package/dist/shared/swap-preview-material.d.ts +11 -0
- package/dist/shared/swap-preview-material.d.ts.map +1 -0
- package/dist/shared/swap-preview-material.js +16 -0
- package/dist/shared/system-checks.d.ts.map +1 -1
- package/dist/shared/system-checks.js +5 -3
- package/dist/shared/wall-attach-target.d.ts +4 -10
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +6 -63
- package/dist/shared/wall-event-from-grid.d.ts +5 -0
- package/dist/shared/wall-event-from-grid.d.ts.map +1 -0
- package/dist/shared/wall-event-from-grid.js +36 -0
- package/dist/shared/wall-opening-ceiling.d.ts +5 -15
- package/dist/shared/wall-opening-ceiling.d.ts.map +1 -1
- package/dist/shared/wall-opening-ceiling.js +10 -18
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +4 -2
- package/dist/shelf/floorplan.d.ts.map +1 -1
- package/dist/shelf/floorplan.js +9 -2
- package/dist/shelf/geometry.d.ts.map +1 -1
- package/dist/shelf/geometry.js +1 -2
- package/dist/shelf/paint.d.ts.map +1 -1
- package/dist/shelf/paint.js +4 -10
- package/dist/site/line-ribbon.d.ts +31 -0
- package/dist/site/line-ribbon.d.ts.map +1 -0
- package/dist/site/line-ribbon.js +117 -0
- package/dist/site/lot-mask.d.ts +18 -0
- package/dist/site/lot-mask.d.ts.map +1 -0
- package/dist/site/lot-mask.js +35 -0
- package/dist/site/panel.d.ts +10 -0
- package/dist/site/panel.d.ts.map +1 -0
- package/dist/site/panel.js +155 -0
- package/dist/site/parametrics.d.ts +7 -0
- package/dist/site/parametrics.d.ts.map +1 -1
- package/dist/site/parametrics.js +8 -0
- package/dist/site/recessed-slab-ground-holes.d.ts.map +1 -1
- package/dist/site/recessed-slab-ground-holes.js +5 -2
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +158 -20
- package/dist/site/setbacks.d.ts +33 -0
- package/dist/site/setbacks.d.ts.map +1 -0
- package/dist/site/setbacks.js +204 -0
- package/dist/site/terrain-geometry.d.ts +28 -1
- package/dist/site/terrain-geometry.d.ts.map +1 -1
- package/dist/site/terrain-geometry.js +78 -4
- package/dist/site/terrain-holes.d.ts +15 -0
- package/dist/site/terrain-holes.d.ts.map +1 -0
- package/dist/site/terrain-holes.js +74 -0
- package/dist/site/terrain-mesh.d.ts +9 -2
- package/dist/site/terrain-mesh.d.ts.map +1 -1
- package/dist/site/terrain-mesh.js +36 -9
- package/dist/site/terrain-renderer.d.ts +9 -2
- package/dist/site/terrain-renderer.d.ts.map +1 -1
- package/dist/site/terrain-renderer.js +14 -4
- package/dist/skylight/definition.d.ts.map +1 -1
- package/dist/skylight/definition.js +1 -0
- package/dist/slab/boundary-editor.d.ts +1 -1
- package/dist/slab/boundary-editor.d.ts.map +1 -1
- package/dist/slab/boundary-editor.js +13 -13
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +23 -3
- package/dist/slab/dependency-tracker.d.ts.map +1 -1
- package/dist/slab/dependency-tracker.js +67 -7
- package/dist/slab/elevation-limit.d.ts.map +1 -1
- package/dist/slab/elevation-limit.js +2 -2
- package/dist/slab/floorplan-affordances.d.ts +176 -4
- package/dist/slab/floorplan-affordances.d.ts.map +1 -1
- package/dist/slab/floorplan-affordances.js +0 -1
- package/dist/slab/floorplan-move.d.ts.map +1 -1
- package/dist/slab/floorplan-move.js +3 -4
- package/dist/slab/floorplan.d.ts +7 -0
- package/dist/slab/floorplan.d.ts.map +1 -1
- package/dist/slab/floorplan.js +22 -5
- package/dist/slab/geometry.d.ts.map +1 -1
- package/dist/slab/geometry.js +186 -76
- package/dist/slab/move-tool.js +7 -6
- package/dist/slab/paint.d.ts +18 -5
- package/dist/slab/paint.d.ts.map +1 -1
- package/dist/slab/paint.js +458 -9
- package/dist/slab/panel.d.ts.map +1 -1
- package/dist/slab/panel.js +28 -9
- package/dist/slab/placement-ownership.d.ts +2 -1
- package/dist/slab/placement-ownership.d.ts.map +1 -1
- package/dist/slab/placement-ownership.js +2 -2
- package/dist/slab/surface-split.d.ts +24 -0
- package/dist/slab/surface-split.d.ts.map +1 -0
- package/dist/slab/surface-split.js +389 -0
- package/dist/slab/tool.d.ts.map +1 -1
- package/dist/slab/tool.js +3 -3
- package/dist/solar-panel/definition.d.ts.map +1 -1
- package/dist/solar-panel/definition.js +1 -0
- package/dist/spawn/definition.d.ts.map +1 -1
- package/dist/spawn/definition.js +1 -0
- package/dist/stair/baluster-geometry.d.ts +21 -0
- package/dist/stair/baluster-geometry.d.ts.map +1 -0
- package/dist/stair/baluster-geometry.js +74 -0
- package/dist/stair/baluster-guard.d.ts +50 -0
- package/dist/stair/baluster-guard.d.ts.map +1 -0
- package/dist/stair/baluster-guard.js +71 -0
- package/dist/stair/boards-guard.d.ts +37 -0
- package/dist/stair/boards-guard.d.ts.map +1 -0
- package/dist/stair/boards-guard.js +61 -0
- package/dist/stair/cable-guard.d.ts +39 -0
- package/dist/stair/cable-guard.d.ts.map +1 -0
- package/dist/stair/cable-guard.js +105 -0
- package/dist/stair/construction-controls.d.ts +15 -0
- package/dist/stair/construction-controls.d.ts.map +1 -0
- package/dist/stair/construction-controls.js +29 -0
- package/dist/stair/continuous-railings.d.ts +10 -0
- package/dist/stair/continuous-railings.d.ts.map +1 -0
- package/dist/stair/continuous-railings.js +159 -0
- package/dist/stair/definition.d.ts.map +1 -1
- package/dist/stair/definition.js +18 -37
- package/dist/stair/documentation.d.ts +1 -1
- package/dist/stair/documentation.d.ts.map +1 -1
- package/dist/stair/documentation.js +10 -17
- package/dist/stair/floorplan-affordances.d.ts.map +1 -1
- package/dist/stair/floorplan-affordances.js +9 -25
- package/dist/stair/floorplan.d.ts +1 -23
- package/dist/stair/floorplan.d.ts.map +1 -1
- package/dist/stair/floorplan.js +102 -86
- package/dist/stair/glass-guard.d.ts +72 -0
- package/dist/stair/glass-guard.d.ts.map +1 -0
- package/dist/stair/glass-guard.js +167 -0
- package/dist/stair/guard-path.d.ts +119 -0
- package/dist/stair/guard-path.d.ts.map +1 -0
- package/dist/stair/guard-path.js +208 -0
- package/dist/stair/materials.d.ts +11 -0
- package/dist/stair/materials.d.ts.map +1 -0
- package/dist/stair/materials.js +51 -0
- package/dist/stair/metal-guard.d.ts +38 -0
- package/dist/stair/metal-guard.d.ts.map +1 -0
- package/dist/stair/metal-guard.js +79 -0
- package/dist/stair/paint.d.ts +32 -0
- package/dist/stair/paint.d.ts.map +1 -1
- package/dist/stair/paint.js +75 -36
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +154 -17
- package/dist/stair/parametrics.d.ts +1 -1
- package/dist/stair/parametrics.d.ts.map +1 -1
- package/dist/stair/parametrics.js +181 -1
- package/dist/stair/plan-entry.d.ts +31 -0
- package/dist/stair/plan-entry.d.ts.map +1 -0
- package/dist/stair/plan-entry.js +325 -0
- package/dist/stair/post-and-rail-guard.d.ts +31 -0
- package/dist/stair/post-and-rail-guard.d.ts.map +1 -0
- package/dist/stair/post-and-rail-guard.js +63 -0
- package/dist/stair/railing-controls.d.ts +9 -0
- package/dist/stair/railing-controls.d.ts.map +1 -0
- package/dist/stair/railing-controls.js +49 -0
- package/dist/stair/renderer.d.ts.map +1 -1
- package/dist/stair/renderer.js +259 -259
- package/dist/stair/use-stair-render-data.d.ts +317 -0
- package/dist/stair/use-stair-render-data.d.ts.map +1 -0
- package/dist/stair/use-stair-render-data.js +73 -0
- package/dist/stair-segment/definition.d.ts.map +1 -1
- package/dist/stair-segment/definition.js +52 -10
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +36 -42
- package/dist/stair-segment/parametrics.d.ts +1 -1
- package/dist/stair-segment/parametrics.d.ts.map +1 -1
- package/dist/stair-segment/parametrics.js +94 -1
- package/dist/stair-segment/renderer.d.ts.map +1 -1
- package/dist/stair-segment/renderer.js +16 -28
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.js +3 -5
- package/dist/turbine-vent/paint.d.ts.map +1 -1
- package/dist/turbine-vent/paint.js +2 -5
- package/dist/turbine-vent/panel.d.ts.map +1 -1
- package/dist/turbine-vent/panel.js +5 -23
- package/dist/unit/unit-panel.d.ts.map +1 -1
- package/dist/unit/unit-panel.js +6 -1
- package/dist/wall/actions.d.ts +3 -0
- package/dist/wall/actions.d.ts.map +1 -0
- package/dist/wall/actions.js +61 -0
- package/dist/wall/construction-dimensions.js +8 -5
- package/dist/wall/contextual-dimensions.js +4 -4
- package/dist/wall/curtain-opening-frame.d.ts +14 -0
- package/dist/wall/curtain-opening-frame.d.ts.map +1 -0
- package/dist/wall/curtain-opening-frame.js +111 -0
- package/dist/wall/curtain-panel-highlight.d.ts +3 -0
- package/dist/wall/curtain-panel-highlight.d.ts.map +1 -0
- package/dist/wall/curtain-panel-highlight.js +113 -0
- package/dist/wall/curtain-wall-adapter.d.ts +3 -0
- package/dist/wall/curtain-wall-adapter.d.ts.map +1 -0
- package/dist/wall/curtain-wall-adapter.js +55 -0
- package/dist/wall/curtain-wall-floorplan.d.ts +3 -0
- package/dist/wall/curtain-wall-floorplan.d.ts.map +1 -0
- package/dist/wall/curtain-wall-floorplan.js +91 -0
- package/dist/wall/curtain-wall-geometry.d.ts +4 -0
- package/dist/wall/curtain-wall-geometry.d.ts.map +1 -0
- package/dist/wall/curtain-wall-geometry.js +226 -0
- package/dist/wall/curtain-wall-layout.d.ts +16 -0
- package/dist/wall/curtain-wall-layout.d.ts.map +1 -0
- package/dist/wall/curtain-wall-layout.js +176 -0
- package/dist/wall/curtain-wall-materials.d.ts +5 -0
- package/dist/wall/curtain-wall-materials.d.ts.map +1 -0
- package/dist/wall/curtain-wall-materials.js +55 -0
- package/dist/wall/curtain-wall-panel.d.ts +14 -0
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -0
- package/dist/wall/curtain-wall-panel.js +167 -0
- package/dist/wall/curtain-wall-piece-geometry.d.ts +5 -0
- package/dist/wall/curtain-wall-piece-geometry.d.ts.map +1 -0
- package/dist/wall/curtain-wall-piece-geometry.js +220 -0
- package/dist/wall/curtain-wall-shadow.d.ts +4 -0
- package/dist/wall/curtain-wall-shadow.d.ts.map +1 -0
- package/dist/wall/curtain-wall-shadow.js +15 -0
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +4 -0
- package/dist/wall/definition.d.ts +0 -15
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +92 -7
- package/dist/wall/floorplan-move.d.ts +1 -1
- package/dist/wall/floorplan-move.d.ts.map +1 -1
- package/dist/wall/floorplan-move.js +20 -83
- package/dist/wall/floorplan-tool.d.ts +4 -0
- package/dist/wall/floorplan-tool.d.ts.map +1 -0
- package/dist/wall/floorplan-tool.js +106 -0
- package/dist/wall/floorplan.d.ts +3 -1
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +189 -22
- package/dist/wall/length-patch.d.ts +3 -0
- package/dist/wall/length-patch.d.ts.map +1 -0
- package/dist/wall/length-patch.js +14 -0
- package/dist/wall/measurement.d.ts.map +1 -1
- package/dist/wall/measurement.js +5 -5
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +20 -7
- package/dist/wall/move-shared.d.ts.map +1 -1
- package/dist/wall/move-shared.js +11 -7
- package/dist/wall/move-tool.d.ts.map +1 -1
- package/dist/wall/move-tool.js +140 -148
- package/dist/wall/paint.d.ts +26 -15
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +339 -115
- package/dist/wall/panel-model.d.ts +22 -0
- package/dist/wall/panel-model.d.ts.map +1 -0
- package/dist/wall/panel-model.js +175 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +233 -61
- package/dist/wall/parametrics.d.ts.map +1 -1
- package/dist/wall/parametrics.js +3 -0
- package/dist/wall/property-preview.d.ts +7 -0
- package/dist/wall/property-preview.d.ts.map +1 -0
- package/dist/wall/property-preview.js +31 -0
- package/dist/wall/rectangle-command.d.ts +248 -0
- package/dist/wall/rectangle-command.d.ts.map +1 -0
- package/dist/wall/rectangle-command.js +22 -0
- package/dist/wall/rectangle-tool.d.ts +2 -0
- package/dist/wall/rectangle-tool.d.ts.map +1 -0
- package/dist/wall/rectangle-tool.js +165 -0
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +9 -4
- package/dist/wall/split-floorplan-layer.d.ts +4 -0
- package/dist/wall/split-floorplan-layer.d.ts.map +1 -0
- package/dist/wall/split-floorplan-layer.js +71 -0
- package/dist/wall/split-pointer.d.ts +3 -0
- package/dist/wall/split-pointer.d.ts.map +1 -0
- package/dist/wall/split-pointer.js +95 -0
- package/dist/wall/split-preview.d.ts +55 -0
- package/dist/wall/split-preview.d.ts.map +1 -0
- package/dist/wall/split-preview.js +106 -0
- package/dist/wall/split-session.d.ts +16 -0
- package/dist/wall/split-session.d.ts.map +1 -0
- package/dist/wall/split-session.js +144 -0
- package/dist/wall/split-store.d.ts +16 -0
- package/dist/wall/split-store.d.ts.map +1 -0
- package/dist/wall/split-store.js +6 -0
- package/dist/wall/split-tool.d.ts +10 -0
- package/dist/wall/split-tool.d.ts.map +1 -0
- package/dist/wall/split-tool.js +95 -0
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +39 -5
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +114 -50
- package/dist/wall/treatment-level-data.d.ts +3 -2
- package/dist/wall/treatment-level-data.d.ts.map +1 -1
- package/dist/wall/treatment-level-data.js +17 -13
- package/dist/wall/treatments.d.ts +10 -10
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +67 -54
- package/dist/wall/wall-batch-system.d.ts +7 -0
- package/dist/wall/wall-batch-system.d.ts.map +1 -1
- package/dist/wall/wall-batch-system.js +38 -3
- package/dist/wall/wall-batch.d.ts +6 -0
- package/dist/wall/wall-batch.d.ts.map +1 -1
- package/dist/wall/wall-batch.js +7 -1
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +60 -5
- package/dist/window/floorplan-affordances.d.ts.map +1 -1
- package/dist/window/floorplan-affordances.js +8 -10
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +3 -1
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +145 -60
- package/dist/window/mechanism.d.ts +4 -0
- package/dist/window/mechanism.d.ts.map +1 -0
- package/dist/window/mechanism.js +20 -0
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +83 -54
- package/dist/window/paint.d.ts.map +1 -1
- package/dist/window/paint.js +3 -0
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +50 -144
- package/dist/window/placement.d.ts +23 -0
- package/dist/window/placement.d.ts.map +1 -0
- package/dist/window/placement.js +66 -0
- package/dist/window/preview.d.ts.map +1 -1
- package/dist/window/preview.js +2 -0
- package/dist/window/renderer.d.ts.map +1 -1
- package/dist/window/renderer.js +3 -2
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +130 -26
- package/dist/window/window-math.d.ts +6 -14
- package/dist/window/window-math.d.ts.map +1 -1
- package/dist/window/window-math.js +13 -22
- package/dist/zone/contextual-dimensions.d.ts.map +1 -1
- package/dist/zone/contextual-dimensions.js +6 -28
- package/dist/zone/definition.d.ts.map +1 -1
- package/dist/zone/definition.js +4 -3
- package/dist/zone/floorplan-affordances.d.ts +200 -0
- package/dist/zone/floorplan-affordances.d.ts.map +1 -1
- package/dist/zone/floorplan.d.ts +1 -1
- package/dist/zone/floorplan.d.ts.map +1 -1
- package/dist/zone/floorplan.js +93 -53
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +6 -33
- package/dist/zone/quick-measurement.d.ts +2 -2
- package/dist/zone/quick-measurement.d.ts.map +1 -1
- package/dist/zone/quick-measurement.js +6 -5
- package/dist/zone/renderer.d.ts +1 -1
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +58 -146
- package/dist/zone/room-clear-dimensions.js +3 -3
- package/dist/zone/room-documentation.d.ts.map +1 -1
- package/dist/zone/room-documentation.js +2 -6
- package/package.json +12 -12
- package/dist/block/slots.d.ts +0 -4
- package/dist/block/slots.d.ts.map +0 -1
- package/dist/block/slots.js +0 -17
- package/dist/cabinet/slots.d.ts +0 -4
- package/dist/cabinet/slots.d.ts.map +0 -1
- package/dist/cabinet/slots.js +0 -24
- package/dist/ceiling/slots.d.ts +0 -6
- package/dist/ceiling/slots.d.ts.map +0 -1
- package/dist/ceiling/slots.js +0 -7
- package/dist/column/slots.d.ts +0 -9
- package/dist/column/slots.d.ts.map +0 -1
- package/dist/column/slots.js +0 -19
- package/dist/door/slots.d.ts +0 -9
- package/dist/door/slots.d.ts.map +0 -1
- package/dist/door/slots.js +0 -20
- package/dist/elevator/slots.d.ts +0 -8
- package/dist/elevator/slots.d.ts.map +0 -1
- package/dist/elevator/slots.js +0 -17
- package/dist/fence/slots.d.ts +0 -10
- package/dist/fence/slots.d.ts.map +0 -1
- package/dist/fence/slots.js +0 -23
- package/dist/lean-to-extension/slots.d.ts +0 -5
- package/dist/lean-to-extension/slots.d.ts.map +0 -1
- package/dist/lean-to-extension/slots.js +0 -15
- package/dist/shared/opening-documentation-fields.d.ts +0 -16
- package/dist/shared/opening-documentation-fields.d.ts.map +0 -1
- package/dist/shared/opening-documentation-fields.js +0 -54
- package/dist/shelf/slots.d.ts +0 -9
- package/dist/shelf/slots.d.ts.map +0 -1
- package/dist/shelf/slots.js +0 -30
- package/dist/slab/slots.d.ts +0 -10
- package/dist/slab/slots.d.ts.map +0 -1
- package/dist/slab/slots.js +0 -20
- package/dist/stair/floor-stack.d.ts +0 -10
- package/dist/stair/floor-stack.d.ts.map +0 -1
- package/dist/stair/floor-stack.js +0 -115
- package/dist/stair/slots.d.ts +0 -7
- package/dist/stair/slots.d.ts.map +0 -1
- package/dist/stair/slots.js +0 -13
- package/dist/wall/slots.d.ts +0 -10
- package/dist/wall/slots.d.ts.map +0 -1
- package/dist/wall/slots.js +0 -84
- package/dist/window/slots.d.ts +0 -5
- package/dist/window/slots.d.ts.map +0 -1
- package/dist/window/slots.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-tool.d.ts","sourceRoot":"","sources":["../../src/wall/move-tool.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"move-tool.d.ts","sourceRoot":"","sources":["../../src/wall/move-tool.tsx"],"names":[],"mappings":"AAEA,OAAO,EAgBL,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AA0HzB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CA+hBrD,CAAA;AAED,eAAe,YAAY,CAAA"}
|
package/dist/wall/move-tool.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import { CursorSphere, EDITOR_LAYER, getSegmentGridStep, isSegmentLongEnough, markToolCancelConsumed, snapBuildingLocalToWorldGrid, snapScalarToGrid, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
3
|
+
import { beginSceneHistoryPauseSession, createLevelStructurePreview, emitter, getPerpendicularWallMoveAxis, getPlannedLinkedWallUpdates, planWallEndRejoins, planWallMoveJunctions, resolveMovedWallSupportSlabPatch, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
4
|
+
import { CursorSphere, EDITOR_LAYER, getSegmentGridStep, isSegmentLongEnough, markToolCancelConsumed, snapBuildingLocalToWorldGrid, snapScalarToGrid, triggerSFX, useEditor, WALL_CONNECT_SNAP_RADIUS, } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
6
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
7
7
|
import { BufferGeometry, DoubleSide, Float32BufferAttribute } from 'three';
|
|
@@ -18,11 +18,11 @@ import { buildBridgeWallCreates, buildBridgeWallPreviews, getLinkedWallSnapshots
|
|
|
18
18
|
* move with the dragged wall via `planWallMoveJunctions`.
|
|
19
19
|
* - **Bridge wall ghost previews** — when a corner separates, a
|
|
20
20
|
* translucent ghost shows the new wall that would be inserted.
|
|
21
|
-
* - **Auto-slab live preview** —
|
|
22
|
-
* tick so room slabs adapt to the new wall layout
|
|
23
|
-
* - **
|
|
24
|
-
*
|
|
25
|
-
*
|
|
21
|
+
* - **Auto-slab live preview** — the structure kernel previews the level's
|
|
22
|
+
* rooms every tick, so room slabs adapt to the new wall layout live.
|
|
23
|
+
* - **One undo step** — the drag writes no history; the drop writes walls,
|
|
24
|
+
* supports and the sync's derived rooms as one step, through a pause
|
|
25
|
+
* session shared with the 2D move overlay (`commitStep`).
|
|
26
26
|
* - **`isNew` metadata strip** — first commit after a fresh wall
|
|
27
27
|
* placement clears the placement marker.
|
|
28
28
|
* - **Activation grace** (150ms).
|
|
@@ -34,12 +34,6 @@ function rotateVector([x, z], angle) {
|
|
|
34
34
|
const sin = Math.sin(angle);
|
|
35
35
|
return [x * cos - z * sin, x * sin + z * cos];
|
|
36
36
|
}
|
|
37
|
-
function getLevelSlabs(levelId, nodes) {
|
|
38
|
-
return Object.values(nodes).filter((entry) => entry?.type === 'slab' && (entry.parentId ?? null) === levelId);
|
|
39
|
-
}
|
|
40
|
-
function getLevelCeilings(levelId, nodes) {
|
|
41
|
-
return Object.values(nodes).filter((entry) => entry?.type === 'ceiling' && (entry.parentId ?? null) === levelId);
|
|
42
|
-
}
|
|
43
37
|
function setPreviewGeometryAttributes(geometry, positions, normals, uvs) {
|
|
44
38
|
geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));
|
|
45
39
|
geometry.setAttribute('normal', new Float32BufferAttribute(normals, 3));
|
|
@@ -58,9 +52,7 @@ function GhostWallPreviewMesh({ preview }) {
|
|
|
58
52
|
const dz = preview.end[1] - preview.start[1];
|
|
59
53
|
const length = Math.hypot(dx, dz);
|
|
60
54
|
const angle = -Math.atan2(dz, dx);
|
|
61
|
-
const geometry = useMemo(() =>
|
|
62
|
-
return length < 0.01 ? null : createWallPreviewGeometry(length, preview.height);
|
|
63
|
-
}, [length, preview.height]);
|
|
55
|
+
const geometry = useMemo(() => (length < 0.01 ? null : createWallPreviewGeometry(length, preview.height)), [length, preview.height]);
|
|
64
56
|
useEffect(() => () => geometry?.dispose(), [geometry]);
|
|
65
57
|
if (!geometry) {
|
|
66
58
|
return null;
|
|
@@ -119,8 +111,8 @@ export const MoveWallTool = ({ node }) => {
|
|
|
119
111
|
const originalCenter = originalCenterRef.current;
|
|
120
112
|
const originalHalfVector = originalHalfVectorRef.current;
|
|
121
113
|
const levelId = node.parentId ?? null;
|
|
122
|
-
pauseSceneHistory(useScene);
|
|
123
114
|
let shouldRestoreOnCleanup = true;
|
|
115
|
+
let active = true;
|
|
124
116
|
// Wall ids that currently carry a live position override. Cleared on commit
|
|
125
117
|
// (after the final store write lands) and on cancel / external unmount.
|
|
126
118
|
const touchedWallIds = new Set();
|
|
@@ -135,71 +127,74 @@ export const MoveWallTool = ({ node }) => {
|
|
|
135
127
|
// the final plan is written once, atomically, on commit.
|
|
136
128
|
const overrides = useLiveNodeOverrides.getState();
|
|
137
129
|
const sceneState = useScene.getState();
|
|
130
|
+
const previewIds = new Set(updates.map((entry) => entry.id));
|
|
131
|
+
for (const id of touchedWallIds) {
|
|
132
|
+
if (previewIds.has(id))
|
|
133
|
+
continue;
|
|
134
|
+
overrides.clear(id);
|
|
135
|
+
if (sceneState.nodes[id])
|
|
136
|
+
sceneState.markDirty(id);
|
|
137
|
+
touchedWallIds.delete(id);
|
|
138
|
+
}
|
|
138
139
|
overrides.setMany(updates.map((entry) => [entry.id, { start: entry.start, end: entry.end }]));
|
|
139
140
|
for (const entry of updates) {
|
|
140
141
|
touchedWallIds.add(entry.id);
|
|
141
142
|
sceneState.markDirty(entry.id);
|
|
142
143
|
}
|
|
143
144
|
};
|
|
144
|
-
// Live auto-slab / auto-ceiling preview
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
// the
|
|
151
|
-
//
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
145
|
+
// Live auto-slab / auto-ceiling preview: the structure kernel's plan for the
|
|
146
|
+
// moved walls, published as polygon overrides so `GeometrySystem` /
|
|
147
|
+
// `CeilingSystem` rebuild through the `getEffectiveNode` merge while the
|
|
148
|
+
// store stays at pre-drag values. Surfaces a new, merged or split room
|
|
149
|
+
// needs appear at commit.
|
|
150
|
+
// The drag writes nothing to the store, so a new `nodes` reference means someone else
|
|
151
|
+
// changed the scene (a collaborator, an agent). Linked walls and the structure preview
|
|
152
|
+
// are read again from it: the drop must commit a linked wall's other end as it is now,
|
|
153
|
+
// and pick up a newly connected wall the same way the arm-time read would have.
|
|
154
|
+
const levelNodesOf = (nodes) => Object.fromEntries(Object.values(nodes)
|
|
155
|
+
.filter((entry) => entry.parentId === levelId)
|
|
156
|
+
.map((entry) => [entry.id, entry]));
|
|
157
|
+
let linkedNodes = useScene.getState().nodes;
|
|
158
|
+
let previewStructure = levelId ? createLevelStructurePreview(levelId, linkedNodes) : null;
|
|
159
|
+
let dragNodes = levelNodesOf(linkedNodes);
|
|
160
|
+
const refreshLinkedWalls = () => {
|
|
161
|
+
const nodes = useScene.getState().nodes;
|
|
162
|
+
if (nodes === linkedNodes)
|
|
163
|
+
return;
|
|
164
|
+
linkedNodes = nodes;
|
|
165
|
+
previewStructure = levelId ? createLevelStructurePreview(levelId, nodes) : null;
|
|
166
|
+
dragNodes = levelNodesOf(nodes);
|
|
167
|
+
if (isNew)
|
|
168
|
+
return;
|
|
169
|
+
linkedOriginalsRef.current = getLinkedWallSnapshots({
|
|
170
|
+
wallId: nodeId,
|
|
171
|
+
wallParentId: node.parentId ?? null,
|
|
172
|
+
originalStart,
|
|
173
|
+
originalEnd,
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
const touchedStructureIds = new Set();
|
|
172
177
|
const publishLiveSurfaceOverrides = (walls) => {
|
|
173
|
-
if (!levelId)
|
|
178
|
+
if (!(levelId && previewStructure))
|
|
174
179
|
return;
|
|
175
180
|
const levelWalls = walls.filter((wall) => (wall.parentId ?? null) === levelId);
|
|
176
181
|
const sceneState = useScene.getState();
|
|
177
|
-
const
|
|
178
|
-
// Plan against the pre-drag scene — `getLevelSlabs/Ceilings`
|
|
179
|
-
// reads from the unchanged store, so the matcher's "remap
|
|
180
|
-
// existing room → existing slab" logic sees stable IDs across
|
|
181
|
-
// ticks. Without this anchor, IDs would drift as overrides
|
|
182
|
-
// re-flowed through the planner.
|
|
183
|
-
const existingSlabs = getLevelSlabs(levelId, sceneState.nodes);
|
|
184
|
-
const slabPlan = planAutoSlabsForLevel(roomPolygons, existingSlabs);
|
|
185
|
-
const levelNode = sceneState.nodes[levelId];
|
|
186
|
-
const ceilingPlan = planAutoCeilingsForLevel(roomPolygons, getLevelCeilings(levelId, sceneState.nodes), {
|
|
187
|
-
storeyHeight: levelNode?.type === 'level' ? getStoredLevelHeight(levelNode) : undefined,
|
|
188
|
-
ceilingClampBound: (polygon) => getCeilingClampBound(levelId, sceneState.nodes, polygon),
|
|
189
|
-
});
|
|
190
|
-
latestSurfacePlans = { slabs: slabPlan, ceilings: ceilingPlan };
|
|
182
|
+
const structurePlan = previewStructure(levelWalls);
|
|
191
183
|
const overrideEntries = [];
|
|
192
|
-
for (const update of
|
|
193
|
-
if (update.data
|
|
184
|
+
for (const update of structurePlan) {
|
|
185
|
+
if (!('polygon' in update.data || 'holes' in update.data))
|
|
194
186
|
continue;
|
|
195
|
-
overrideEntries.push([update.id,
|
|
196
|
-
|
|
187
|
+
overrideEntries.push([update.id, update.data]);
|
|
188
|
+
touchedStructureIds.add(update.id);
|
|
197
189
|
}
|
|
198
|
-
|
|
199
|
-
|
|
190
|
+
const previewIds = new Set(overrideEntries.map(([id]) => id));
|
|
191
|
+
for (const id of touchedStructureIds) {
|
|
192
|
+
if (previewIds.has(id))
|
|
200
193
|
continue;
|
|
201
|
-
|
|
202
|
-
|
|
194
|
+
useLiveNodeOverrides.getState().clear(id);
|
|
195
|
+
if (sceneState.nodes[id])
|
|
196
|
+
sceneState.markDirty(id);
|
|
197
|
+
touchedStructureIds.delete(id);
|
|
203
198
|
}
|
|
204
199
|
if (overrideEntries.length > 0) {
|
|
205
200
|
useLiveNodeOverrides.getState().setMany(overrideEntries);
|
|
@@ -208,56 +203,16 @@ export const MoveWallTool = ({ node }) => {
|
|
|
208
203
|
}
|
|
209
204
|
}
|
|
210
205
|
};
|
|
211
|
-
// Commit-time: flush the last live plan into the scene store as
|
|
212
|
-
// one atomic write, then drop overrides so the renderer reads
|
|
213
|
-
// from the now-current store state. Called from `commitPreview`
|
|
214
|
-
// *while history is resumed*, so the entire surface delta is one
|
|
215
|
-
// undoable step alongside the wall update.
|
|
216
|
-
const commitSurfacesToStore = () => {
|
|
217
|
-
if (!levelId || !latestSurfacePlans)
|
|
218
|
-
return;
|
|
219
|
-
const { slabs, ceilings } = latestSurfacePlans;
|
|
220
|
-
const update = [
|
|
221
|
-
...slabs.update.map((entry) => ({
|
|
222
|
-
id: entry.id,
|
|
223
|
-
data: entry.data,
|
|
224
|
-
})),
|
|
225
|
-
...ceilings.update.map((entry) => ({
|
|
226
|
-
id: entry.id,
|
|
227
|
-
data: entry.data,
|
|
228
|
-
})),
|
|
229
|
-
];
|
|
230
|
-
const create = [
|
|
231
|
-
...slabs.create.map((slab) => ({
|
|
232
|
-
node: slab,
|
|
233
|
-
parentId: levelId,
|
|
234
|
-
})),
|
|
235
|
-
...ceilings.create.map((ceiling) => ({
|
|
236
|
-
node: ceiling,
|
|
237
|
-
parentId: levelId,
|
|
238
|
-
})),
|
|
239
|
-
];
|
|
240
|
-
const deleteIds = [
|
|
241
|
-
...slabs.delete.map((id) => id),
|
|
242
|
-
...ceilings.delete.map((id) => id),
|
|
243
|
-
];
|
|
244
|
-
if (update.length === 0 && create.length === 0 && deleteIds.length === 0)
|
|
245
|
-
return;
|
|
246
|
-
useScene.getState().applyNodeChanges({
|
|
247
|
-
update,
|
|
248
|
-
create,
|
|
249
|
-
delete: deleteIds,
|
|
250
|
-
});
|
|
251
|
-
};
|
|
252
206
|
const clearSurfaceOverrides = () => {
|
|
253
207
|
const overrides = useLiveNodeOverrides.getState();
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
for (const id of touchedCeilingIds)
|
|
208
|
+
const sceneState = useScene.getState();
|
|
209
|
+
for (const id of touchedStructureIds) {
|
|
257
210
|
overrides.clear(id);
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
211
|
+
// A surface the commit deleted (rooms merged) has nothing left to rebuild.
|
|
212
|
+
if (sceneState.nodes[id])
|
|
213
|
+
sceneState.markDirty(id);
|
|
214
|
+
}
|
|
215
|
+
touchedStructureIds.clear();
|
|
261
216
|
};
|
|
262
217
|
// Drop the wall position overrides and mark the walls dirty so they rebuild
|
|
263
218
|
// from the now-authoritative store value (after commit) or the unchanged
|
|
@@ -267,7 +222,8 @@ export const MoveWallTool = ({ node }) => {
|
|
|
267
222
|
const sceneState = useScene.getState();
|
|
268
223
|
for (const id of touchedWallIds) {
|
|
269
224
|
overrides.clear(id);
|
|
270
|
-
sceneState.
|
|
225
|
+
if (sceneState.nodes[id])
|
|
226
|
+
sceneState.markDirty(id);
|
|
271
227
|
}
|
|
272
228
|
touchedWallIds.clear();
|
|
273
229
|
};
|
|
@@ -284,10 +240,19 @@ export const MoveWallTool = ({ node }) => {
|
|
|
284
240
|
return linkedOriginalsRef.current.map((wall) => movedById.get(wall.id) ?? { id: wall.id, start: wall.start, end: wall.end });
|
|
285
241
|
};
|
|
286
242
|
const applyPreview = (nextStart, nextEnd) => {
|
|
243
|
+
const previous = previewRef.current ?? { start: originalStart, end: originalEnd };
|
|
244
|
+
if (useScene.getState().nodes === linkedNodes &&
|
|
245
|
+
nextStart[0] === previous.start[0] &&
|
|
246
|
+
nextStart[1] === previous.start[1] &&
|
|
247
|
+
nextEnd[0] === previous.end[0] &&
|
|
248
|
+
nextEnd[1] === previous.end[1])
|
|
249
|
+
return;
|
|
250
|
+
hasDraggedRef.current = true;
|
|
287
251
|
previewRef.current = { start: nextStart, end: nextEnd };
|
|
288
252
|
const centerX = (nextStart[0] + nextEnd[0]) / 2;
|
|
289
253
|
const centerZ = (nextStart[1] + nextEnd[1]) / 2;
|
|
290
254
|
setCursorLocalPos([centerX, 0, centerZ]);
|
|
255
|
+
refreshLinkedWalls();
|
|
291
256
|
const previewPlan = getMovePlan(nextStart, nextEnd);
|
|
292
257
|
const previewUpdates = [
|
|
293
258
|
{ id: nodeId, start: nextStart, end: nextEnd },
|
|
@@ -299,7 +264,7 @@ export const MoveWallTool = ({ node }) => {
|
|
|
299
264
|
.map((entry) => entry.id),
|
|
300
265
|
...previewPlan.wallsToDelete.map((wall) => wall.id),
|
|
301
266
|
]);
|
|
302
|
-
const previewSceneWalls = getWallsAfterUpdates(
|
|
267
|
+
const previewSceneWalls = getWallsAfterUpdates(dragNodes, previewUpdates.map((entry) => ({
|
|
303
268
|
id: entry.id,
|
|
304
269
|
data: { start: entry.start, end: entry.end },
|
|
305
270
|
}))).filter((wall) => !previewCollapsedWallIds.has(wall.id));
|
|
@@ -310,10 +275,12 @@ export const MoveWallTool = ({ node }) => {
|
|
|
310
275
|
existingWalls: previewSceneWalls,
|
|
311
276
|
});
|
|
312
277
|
const nextGhostWalls = bridgePreviews.map((preview) => preview.ghost);
|
|
313
|
-
const virtualBridgeWalls = bridgePreviews.map((preview) => preview.wall);
|
|
314
278
|
setGhostWallPreviews(nextGhostWalls);
|
|
315
279
|
applyNodePreview(previewUpdates);
|
|
316
|
-
publishLiveSurfaceOverrides([
|
|
280
|
+
publishLiveSurfaceOverrides([
|
|
281
|
+
...previewSceneWalls,
|
|
282
|
+
...bridgePreviews.map((preview) => preview.wall),
|
|
283
|
+
]);
|
|
317
284
|
};
|
|
318
285
|
const restoreOriginal = () => {
|
|
319
286
|
setGhostWallPreviews([]);
|
|
@@ -324,15 +291,24 @@ export const MoveWallTool = ({ node }) => {
|
|
|
324
291
|
clearSurfaceOverrides();
|
|
325
292
|
};
|
|
326
293
|
const onGridMove = (event) => {
|
|
294
|
+
if (!active)
|
|
295
|
+
return;
|
|
327
296
|
const rawX = event.localPosition[0];
|
|
328
297
|
const rawZ = event.localPosition[2];
|
|
329
298
|
const snapStep = getSegmentGridStep();
|
|
330
299
|
// Anchor at the raw cursor so the displacement is measured in
|
|
331
300
|
// continuous space.
|
|
332
301
|
const anchor = dragAnchorRef.current ?? [rawX, rawZ];
|
|
302
|
+
const firstMove = dragAnchorRef.current === null;
|
|
333
303
|
dragAnchorRef.current = anchor;
|
|
304
|
+
// Seeding a controller grab is not movement; don't snap an off-grid wall
|
|
305
|
+
// to the lattice before the user has moved their hand.
|
|
306
|
+
if (firstMove)
|
|
307
|
+
return;
|
|
334
308
|
const rawDeltaX = rawX - anchor[0];
|
|
335
309
|
const rawDeltaZ = rawZ - anchor[1];
|
|
310
|
+
if (!hasDraggedRef.current && Math.hypot(rawDeltaX, rawDeltaZ) < 1e-6)
|
|
311
|
+
return;
|
|
336
312
|
// When the move is axis-locked (side-handle drag), snap the wall
|
|
337
313
|
// center's absolute perpendicular offset to a multiple of
|
|
338
314
|
// `snapStep`. For axis-aligned walls this puts the wall on grid
|
|
@@ -378,18 +354,13 @@ export const MoveWallTool = ({ node }) => {
|
|
|
378
354
|
previousGridPosRef.current = constrainedGridPos;
|
|
379
355
|
const nextCenter = [originalCenter[0] + deltaX, originalCenter[1] + deltaZ];
|
|
380
356
|
const nextWall = buildWallFromCenter(nextCenter);
|
|
381
|
-
hasDraggedRef.current = true;
|
|
382
357
|
applyPreview(nextWall.start, nextWall.end);
|
|
383
358
|
};
|
|
384
359
|
const commitPreview = () => {
|
|
385
360
|
const preview = previewRef.current ?? { start: originalStart, end: originalEnd };
|
|
386
361
|
shouldRestoreOnCleanup = false;
|
|
387
|
-
// The store was never touched during the drag (the preview was
|
|
388
|
-
// override-driven for both walls and surfaces), so there is no baseline to
|
|
389
|
-
// restore before the tracked commit — just resume history and write the
|
|
390
|
-
// final plan as one undoable change.
|
|
391
362
|
setGhostWallPreviews([]);
|
|
392
|
-
|
|
363
|
+
refreshLinkedWalls();
|
|
393
364
|
const commitPlan = getMovePlan(preview.start, preview.end);
|
|
394
365
|
const linkedWallUpdates = getPlannedLinkedWallUpdates(commitPlan, originalStart, originalEnd, preview.start, preview.end);
|
|
395
366
|
const collapsedLinkedWallIds = new Set([
|
|
@@ -425,31 +396,46 @@ export const MoveWallTool = ({ node }) => {
|
|
|
425
396
|
existingWalls,
|
|
426
397
|
wallCount: Object.values(sceneState.nodes).filter((entry) => entry?.type === 'wall').length,
|
|
427
398
|
});
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
399
|
+
// Elect each moved wall's support from its final line (keeping its current
|
|
400
|
+
// slab while that still carries it) and put any change in the same batch,
|
|
401
|
+
// so the live sync reconciles the drop in one pass.
|
|
402
|
+
const withSupport = (wall) => {
|
|
403
|
+
const patch = resolveMovedWallSupportSlabPatch(wall, sceneState.nodes);
|
|
404
|
+
return patch.supportSlabId === wall.supportSlabId ? {} : patch;
|
|
405
|
+
};
|
|
406
|
+
const wallUpdates = commitUpdates.map((entry) => ({
|
|
407
|
+
id: entry.id,
|
|
408
|
+
data: {
|
|
409
|
+
...entry.data,
|
|
410
|
+
...withSupport({ ...sceneState.nodes[entry.id], ...entry.data }),
|
|
411
|
+
},
|
|
412
|
+
}));
|
|
413
|
+
const wallCreates = bridgeCreates.map((entry) => ({
|
|
414
|
+
...entry,
|
|
415
|
+
node: {
|
|
416
|
+
...entry.node,
|
|
417
|
+
...withSupport({ ...entry.node, parentId: entry.parentId ?? null }),
|
|
418
|
+
},
|
|
419
|
+
}));
|
|
420
|
+
// One history step, one write. The live structure sync reconciles sides,
|
|
421
|
+
// rooms, slabs and ceilings inside it, and its derived writes join the step.
|
|
422
|
+
// The drag writes nothing to the store (the preview is live overrides), so history is
|
|
423
|
+
// paused only for this drop. Keyed by the moving wall: in split view the 2D move overlay
|
|
424
|
+
// co-owns the gesture, and commitStep lifts its pause too.
|
|
425
|
+
const changes = planWallEndRejoins(sceneState.nodes, commitUpdates.map(({ id }) => id), WALL_CONNECT_SNAP_RADIUS, {
|
|
426
|
+
update: wallUpdates,
|
|
427
|
+
create: wallCreates,
|
|
431
428
|
delete: Array.from(collapsedLinkedWallIds),
|
|
432
429
|
});
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
...commitUpdates.map((entry) => entry.id),
|
|
441
|
-
...bridgeCreates.map((entry) => entry.node.id),
|
|
442
|
-
];
|
|
443
|
-
const committedNodes = useScene.getState().nodes;
|
|
444
|
-
useScene.getState().updateNodes(affectedWallIds.flatMap((id) => {
|
|
445
|
-
const wall = committedNodes[id];
|
|
446
|
-
return wall?.type === 'wall'
|
|
447
|
-
? [{ id, data: resolveMovedWallSupportSlabPatch(wall, committedNodes) }]
|
|
448
|
-
: [];
|
|
449
|
-
}));
|
|
430
|
+
const drop = beginSceneHistoryPauseSession(useScene, { gesture: nodeId });
|
|
431
|
+
try {
|
|
432
|
+
drop.commitStep(() => useScene.getState().applyNodeChanges(changes));
|
|
433
|
+
}
|
|
434
|
+
finally {
|
|
435
|
+
drop.end();
|
|
436
|
+
}
|
|
450
437
|
clearSurfaceOverrides();
|
|
451
438
|
clearWallOverrides();
|
|
452
|
-
pauseSceneHistory(useScene);
|
|
453
439
|
// Claim teardown ownership so the 2D overlay's cleanup skips its
|
|
454
440
|
// own revert when split-view has both mounted — see
|
|
455
441
|
// `movingNodeOrigin` in `use-editor.tsx`.
|
|
@@ -459,6 +445,9 @@ export const MoveWallTool = ({ node }) => {
|
|
|
459
445
|
exitMoveMode();
|
|
460
446
|
};
|
|
461
447
|
const onPointerUp = () => {
|
|
448
|
+
if (!active)
|
|
449
|
+
return;
|
|
450
|
+
active = false;
|
|
462
451
|
// Press-release without drag: dismiss the tool without committing.
|
|
463
452
|
// This is the same UX as MoveWallEndpointTool / WallHeightArrowHandle
|
|
464
453
|
// — pointer-down on the affordance starts the move, drag updates the
|
|
@@ -471,6 +460,8 @@ export const MoveWallTool = ({ node }) => {
|
|
|
471
460
|
commitPreview();
|
|
472
461
|
};
|
|
473
462
|
const onKeyDown = (event) => {
|
|
463
|
+
if (!active)
|
|
464
|
+
return;
|
|
474
465
|
if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement) {
|
|
475
466
|
return;
|
|
476
467
|
}
|
|
@@ -496,10 +487,12 @@ export const MoveWallTool = ({ node }) => {
|
|
|
496
487
|
applyPreview(nextWall.start, nextWall.end);
|
|
497
488
|
};
|
|
498
489
|
const onCancel = () => {
|
|
490
|
+
if (!active)
|
|
491
|
+
return;
|
|
492
|
+
active = false;
|
|
499
493
|
shouldRestoreOnCleanup = false;
|
|
500
494
|
restoreOriginal();
|
|
501
495
|
useViewer.getState().setSelection({ selectedIds: [nodeId] });
|
|
502
|
-
resumeSceneHistory(useScene);
|
|
503
496
|
markToolCancelConsumed();
|
|
504
497
|
// Claim teardown ownership so the 2D overlay doesn't redundantly
|
|
505
498
|
// revert the same baseline on its own cleanup.
|
|
@@ -523,7 +516,6 @@ export const MoveWallTool = ({ node }) => {
|
|
|
523
516
|
restoreOriginal();
|
|
524
517
|
}
|
|
525
518
|
}
|
|
526
|
-
resumeSceneHistory(useScene);
|
|
527
519
|
emitter.off('grid:move', onGridMove);
|
|
528
520
|
emitter.off('tool:cancel', onCancel);
|
|
529
521
|
window.removeEventListener('pointerup', onPointerUp);
|
package/dist/wall/paint.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import { type PaintCapability, type WallNode } from '@pascal-app/core';
|
|
2
|
-
import { type Ray } from 'three';
|
|
1
|
+
import { type AnyNode, type WallPaintRole as CoreWallPaintRole, type PaintCapability, type WallFace, type WallNode, type WallSurfaceSlotId, wallRegionRole, wallRoomFaceRole, wallRoomFinishRole } from '@pascal-app/core';
|
|
2
|
+
import { type BufferGeometry, type Ray } from 'three';
|
|
3
|
+
type ResolvedWallPaintRole = {
|
|
4
|
+
kind: 'slot';
|
|
5
|
+
slotId: WallSurfaceSlotId | CurtainWallRole;
|
|
6
|
+
} | Exclude<CoreWallPaintRole, {
|
|
7
|
+
kind: 'slot';
|
|
8
|
+
}>;
|
|
9
|
+
declare const CURTAIN_WALL_ROLES: readonly ["curtain-frame", "curtain-glass", "curtain-solid"];
|
|
10
|
+
type CurtainWallRole = (typeof CURTAIN_WALL_ROLES)[number];
|
|
11
|
+
export { wallRegionRole, wallRoomFaceRole, wallRoomFinishRole };
|
|
12
|
+
export declare function parseWallPaintRole(role: string): ResolvedWallPaintRole | null;
|
|
3
13
|
/**
|
|
4
|
-
* Resolve which wall
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* groups aren't conclusive. Front/back of the wall maps to the
|
|
8
|
-
* node's `frontSide` / `backSide` semantic; absent that, front
|
|
9
|
-
* → interior, back → exterior.
|
|
10
|
-
*
|
|
11
|
-
* Returns null when the click is too oblique (or lands on the wall's
|
|
12
|
-
* end-cap, etc.) to confidently assign a side.
|
|
14
|
+
* Resolve which wall surface the user clicked: a trim slot, a paint region,
|
|
15
|
+
* the room finish on that face, or the face slot itself. Returns null when the
|
|
16
|
+
* click is too oblique (or lands on the wall's end-cap, etc.) to pick a face.
|
|
13
17
|
*/
|
|
14
18
|
export declare function resolveWallRole(args: {
|
|
15
19
|
node: WallNode;
|
|
@@ -22,12 +26,19 @@ export declare function resolveWallRole(args: {
|
|
|
22
26
|
normal: readonly [number, number, number] | undefined;
|
|
23
27
|
localPosition: readonly [number, number, number] | undefined;
|
|
24
28
|
ray?: Ray;
|
|
29
|
+
nodes?: Readonly<Record<string, AnyNode | undefined>>;
|
|
25
30
|
}): string | null;
|
|
26
31
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
|
|
32
|
+
* The wall's face triangles regrouped by the material index `indexFor` gives
|
|
33
|
+
* each (the face and station its centre lies at); caps keep theirs. Null when
|
|
34
|
+
* nothing moves.
|
|
35
|
+
*/
|
|
36
|
+
export declare function regroupWallFaces(geometry: BufferGeometry, wall: WallNode, indexFor: (face: WallFace, u: number, v: number) => number | null): BufferGeometry['groups'] | null;
|
|
37
|
+
/**
|
|
38
|
+
* Capability binding for the wall kind on the unified slot model. Face and trim
|
|
39
|
+
* slots write `node.slots[slotId]` like every other kind; regions write the
|
|
40
|
+
* region's finish and room roles write the zone, because a room's wall finish
|
|
41
|
+
* belongs to the room, not to one of its walls.
|
|
31
42
|
*/
|
|
32
43
|
export declare const wallPaint: PaintCapability;
|
|
33
44
|
//# sourceMappingURL=paint.d.ts.map
|
package/dist/wall/paint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/wall/paint.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/wall/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,aAAa,IAAI,iBAAiB,EAMvC,KAAK,eAAe,EAapB,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,GAAG,EAGT,MAAM,OAAO,CAAA;AAgBd,KAAK,qBAAqB,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAA;CAAE,GAC7D,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAIhD,QAAA,MAAM,kBAAkB,8DAA+D,CAAA;AACvF,KAAK,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAM1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;AAE/D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAK7E;AA6BD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;IAC/C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACrD,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IAC5D,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAA;CACtD,GAAG,MAAM,GAAG,IAAI,CAsChB;AAqJD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAChE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CA4CjC;AA2FD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,eAgCvB,CAAA"}
|