@pascal-app/nodes 1.0.0-beta.5 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/block/commands.d.ts +68 -0
- package/dist/block/commands.d.ts.map +1 -0
- package/dist/block/commands.js +1144 -0
- package/dist/block/contextual-help.d.ts +3 -0
- package/dist/block/contextual-help.d.ts.map +1 -0
- package/dist/block/contextual-help.js +38 -0
- package/dist/block/definition.d.ts +8 -0
- package/dist/block/definition.d.ts.map +1 -0
- package/dist/block/definition.js +126 -0
- package/dist/block/edit-session.d.ts +16 -0
- package/dist/block/edit-session.d.ts.map +1 -0
- package/dist/block/edit-session.js +32 -0
- package/dist/block/face-host.d.ts +3 -0
- package/dist/block/face-host.d.ts.map +1 -0
- package/dist/block/face-host.js +178 -0
- package/dist/block/floorplan.d.ts +3 -0
- package/dist/block/floorplan.d.ts.map +1 -0
- package/dist/block/floorplan.js +43 -0
- package/dist/block/geometry-snap.d.ts +18 -0
- package/dist/block/geometry-snap.d.ts.map +1 -0
- package/dist/block/geometry-snap.js +137 -0
- package/dist/block/geometry.d.ts +11 -0
- package/dist/block/geometry.d.ts.map +1 -0
- package/dist/block/geometry.js +146 -0
- package/dist/block/gesture-wheel.d.ts +8 -0
- package/dist/block/gesture-wheel.d.ts.map +1 -0
- package/dist/block/gesture-wheel.js +7 -0
- package/dist/block/interaction-sfx.d.ts +3 -0
- package/dist/block/interaction-sfx.d.ts.map +1 -0
- package/dist/block/interaction-sfx.js +16 -0
- package/dist/block/last-operation.d.ts +48 -0
- package/dist/block/last-operation.d.ts.map +1 -0
- package/dist/block/last-operation.js +120 -0
- package/dist/block/loop-cut-interaction.d.ts +5 -0
- package/dist/block/loop-cut-interaction.d.ts.map +1 -0
- package/dist/block/loop-cut-interaction.js +13 -0
- package/dist/block/material-slots.d.ts +61 -0
- package/dist/block/material-slots.d.ts.map +1 -0
- package/dist/block/material-slots.js +131 -0
- package/dist/block/modal-face-operation.d.ts +13 -0
- package/dist/block/modal-face-operation.d.ts.map +1 -0
- package/dist/block/modal-face-operation.js +40 -0
- package/dist/block/modal-session.d.ts +15 -0
- package/dist/block/modal-session.d.ts.map +1 -0
- package/dist/block/modal-session.js +40 -0
- package/dist/block/modal-transform.d.ts +30 -0
- package/dist/block/modal-transform.d.ts.map +1 -0
- package/dist/block/modal-transform.js +144 -0
- package/dist/block/paint.d.ts +3 -0
- package/dist/block/paint.d.ts.map +1 -0
- package/dist/block/paint.js +136 -0
- package/dist/block/panel.d.ts +2 -0
- package/dist/block/panel.d.ts.map +1 -0
- package/dist/block/panel.js +234 -0
- package/dist/block/parametrics.d.ts +4 -0
- package/dist/block/parametrics.d.ts.map +1 -0
- package/dist/block/parametrics.js +9 -0
- package/dist/block/preview.d.ts +6 -0
- package/dist/block/preview.d.ts.map +1 -0
- package/dist/block/preview.js +46 -0
- package/dist/block/rotation-drag.d.ts +5 -0
- package/dist/block/rotation-drag.d.ts.map +1 -0
- package/dist/block/rotation-drag.js +18 -0
- package/dist/block/schema.d.ts +2 -0
- package/dist/block/schema.d.ts.map +1 -0
- package/dist/block/schema.js +1 -0
- package/dist/block/selection-geometry.d.ts +9 -0
- package/dist/block/selection-geometry.d.ts.map +1 -0
- package/dist/block/selection-geometry.js +31 -0
- package/dist/block/selection-model.d.ts +17 -0
- package/dist/block/selection-model.d.ts.map +1 -0
- package/dist/block/selection-model.js +84 -0
- package/dist/block/selection.d.ts +4 -0
- package/dist/block/selection.d.ts.map +1 -0
- package/dist/block/selection.js +2570 -0
- package/dist/block/slots.d.ts +4 -0
- package/dist/block/slots.d.ts.map +1 -0
- package/dist/block/slots.js +17 -0
- package/dist/block/tool.d.ts +3 -0
- package/dist/block/tool.d.ts.map +1 -0
- package/dist/block/tool.js +174 -0
- package/dist/block/toolbar-state.d.ts +46 -0
- package/dist/block/toolbar-state.d.ts.map +1 -0
- package/dist/block/toolbar-state.js +67 -0
- package/dist/block/use-block-face-operation.d.ts +39 -0
- package/dist/block/use-block-face-operation.d.ts.map +1 -0
- package/dist/block/use-block-face-operation.js +218 -0
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.js +8 -5
- package/dist/box-vent/geometry.d.ts +4 -0
- package/dist/box-vent/geometry.d.ts.map +1 -1
- package/dist/box-vent/geometry.js +76 -44
- package/dist/box-vent/paint.d.ts +4 -0
- package/dist/box-vent/paint.d.ts.map +1 -0
- package/dist/box-vent/paint.js +40 -0
- package/dist/box-vent/panel.js +1 -1
- package/dist/box-vent/parametrics.js +3 -3
- package/dist/box-vent/renderer.d.ts.map +1 -1
- package/dist/box-vent/renderer.js +29 -10
- package/dist/cabinet/compartment-card.d.ts.map +1 -1
- package/dist/cabinet/compartment-card.js +11 -3
- package/dist/cabinet/continuous-placement.d.ts +3 -0
- package/dist/cabinet/continuous-placement.d.ts.map +1 -1
- package/dist/cabinet/continuous-placement.js +6 -0
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +400 -54
- package/dist/cabinet/floorplan-move.d.ts.map +1 -1
- package/dist/cabinet/floorplan-move.js +91 -22
- package/dist/cabinet/geometry/fridge.d.ts.map +1 -1
- package/dist/cabinet/geometry/fridge.js +25 -1
- package/dist/cabinet/geometry/fronts.d.ts +4 -0
- package/dist/cabinet/geometry/fronts.d.ts.map +1 -1
- package/dist/cabinet/geometry/fronts.js +1 -1
- package/dist/cabinet/geometry/run.d.ts.map +1 -1
- package/dist/cabinet/geometry/run.js +19 -1
- package/dist/cabinet/geometry.d.ts.map +1 -1
- package/dist/cabinet/geometry.js +63 -1
- package/dist/cabinet/index.d.ts +1 -0
- package/dist/cabinet/index.d.ts.map +1 -1
- package/dist/cabinet/index.js +1 -0
- package/dist/cabinet/insertion.d.ts +19 -0
- package/dist/cabinet/insertion.d.ts.map +1 -0
- package/dist/cabinet/insertion.js +49 -0
- package/dist/cabinet/move-frame.d.ts.map +1 -1
- package/dist/cabinet/move-frame.js +68 -2
- package/dist/cabinet/panel-context.d.ts +7 -0
- package/dist/cabinet/panel-context.d.ts.map +1 -0
- package/dist/cabinet/panel-context.js +16 -0
- package/dist/cabinet/panel-visibility.d.ts +9 -0
- package/dist/cabinet/panel-visibility.d.ts.map +1 -0
- package/dist/cabinet/panel-visibility.js +26 -0
- package/dist/cabinet/panel.d.ts.map +1 -1
- package/dist/cabinet/panel.js +221 -37
- package/dist/cabinet/placement-dimensions.d.ts +42 -0
- package/dist/cabinet/placement-dimensions.d.ts.map +1 -0
- package/dist/cabinet/placement-dimensions.js +227 -0
- package/dist/cabinet/placement-snap.d.ts +21 -1
- package/dist/cabinet/placement-snap.d.ts.map +1 -1
- package/dist/cabinet/placement-snap.js +48 -6
- package/dist/cabinet/preset-width-debt.d.ts +7 -0
- package/dist/cabinet/preset-width-debt.d.ts.map +1 -0
- package/dist/cabinet/preset-width-debt.js +45 -0
- package/dist/cabinet/presets.d.ts.map +1 -1
- package/dist/cabinet/presets.js +14 -13
- package/dist/cabinet/profiles.d.ts +14 -0
- package/dist/cabinet/profiles.d.ts.map +1 -0
- package/dist/cabinet/profiles.js +30 -0
- package/dist/cabinet/quick-actions.d.ts.map +1 -1
- package/dist/cabinet/quick-actions.js +8 -24
- package/dist/cabinet/reveals.d.ts +37 -0
- package/dist/cabinet/reveals.d.ts.map +1 -0
- package/dist/cabinet/reveals.js +13 -0
- package/dist/cabinet/run-layout.d.ts +90 -4
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +408 -23
- package/dist/cabinet/run-ops.d.ts +202 -10
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-ops.js +520 -33
- package/dist/cabinet/run-panel.d.ts +6 -2
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +285 -108
- package/dist/cabinet/stack-transitions.d.ts.map +1 -1
- package/dist/cabinet/stack-transitions.js +35 -24
- package/dist/cabinet/stack.d.ts +169 -1
- package/dist/cabinet/stack.d.ts.map +1 -1
- package/dist/cabinet/stack.js +57 -18
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +615 -91
- package/dist/cabinet/validation.d.ts +27 -0
- package/dist/cabinet/validation.d.ts.map +1 -0
- package/dist/cabinet/validation.js +56 -0
- package/dist/cabinet/wall-height-presets.d.ts +12 -0
- package/dist/cabinet/wall-height-presets.d.ts.map +1 -0
- package/dist/cabinet/wall-height-presets.js +15 -0
- package/dist/cabinet/wall-snap.d.ts +27 -3
- package/dist/cabinet/wall-snap.d.ts.map +1 -1
- package/dist/cabinet/wall-snap.js +278 -62
- package/dist/cabinet/widths.d.ts +10 -0
- package/dist/cabinet/widths.d.ts.map +1 -0
- package/dist/cabinet/widths.js +13 -0
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +7 -1
- package/dist/ceiling/floorplan-affordances.d.ts +8 -8
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +0 -1
- package/dist/ceiling/panel.js +1 -1
- package/dist/ceiling/parametrics.js +1 -1
- package/dist/chimney/definition.js +1 -1
- package/dist/chimney/panel.js +1 -1
- package/dist/chimney/parametrics.js +3 -3
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +22 -4
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +37 -7
- package/dist/column/parametrics.d.ts.map +1 -1
- package/dist/column/parametrics.js +5 -3
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +50 -14
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.js +15 -6
- package/dist/cupola/geometry.d.ts +6 -0
- package/dist/cupola/geometry.d.ts.map +1 -1
- package/dist/cupola/geometry.js +60 -13
- package/dist/cupola/paint.d.ts +4 -0
- package/dist/cupola/paint.d.ts.map +1 -0
- package/dist/cupola/paint.js +39 -0
- package/dist/cupola/panel.js +1 -1
- package/dist/cupola/parametrics.js +3 -3
- package/dist/cupola/renderer.d.ts.map +1 -1
- package/dist/cupola/renderer.js +27 -8
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +1 -1
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +86 -32
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +1 -1
- package/dist/door/parametrics.js +2 -2
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +16 -4
- package/dist/dormer/csg-geometry.d.ts +6 -42
- package/dist/dormer/csg-geometry.d.ts.map +1 -1
- package/dist/dormer/csg-geometry.js +38 -209
- package/dist/dormer/definition.d.ts +4 -12
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.js +18 -193
- package/dist/dormer/floorplan.d.ts +3 -3
- package/dist/dormer/floorplan.d.ts.map +1 -1
- package/dist/dormer/floorplan.js +6 -17
- package/dist/dormer/geometry.d.ts +5 -24
- package/dist/dormer/geometry.d.ts.map +1 -1
- package/dist/dormer/geometry.js +64 -41
- package/dist/dormer/index.d.ts +1 -1
- package/dist/dormer/index.d.ts.map +1 -1
- package/dist/dormer/index.js +1 -1
- package/dist/dormer/move-tool.d.ts.map +1 -1
- package/dist/dormer/move-tool.js +31 -3
- package/dist/dormer/panel-windows-section.d.ts +9 -0
- package/dist/dormer/panel-windows-section.d.ts.map +1 -0
- package/dist/dormer/panel-windows-section.js +7 -0
- package/dist/dormer/panel.d.ts.map +1 -1
- package/dist/dormer/panel.js +100 -18
- package/dist/dormer/parametrics.d.ts.map +1 -1
- package/dist/dormer/parametrics.js +8 -77
- package/dist/dormer/preview.d.ts.map +1 -1
- package/dist/dormer/preview.js +9 -1
- package/dist/dormer/renderer.d.ts.map +1 -1
- package/dist/dormer/renderer.js +24 -26
- package/dist/dormer/tool.d.ts.map +1 -1
- package/dist/dormer/tool.js +3 -1
- package/dist/dormer/window-layout.d.ts +15 -0
- package/dist/dormer/window-layout.d.ts.map +1 -0
- package/dist/dormer/window-layout.js +59 -0
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.js +17 -4
- package/dist/downspout/geometry.d.ts.map +1 -1
- package/dist/downspout/geometry.js +10 -0
- package/dist/downspout/inspector-editors.d.ts.map +1 -1
- package/dist/downspout/inspector-editors.js +9 -1
- package/dist/downspout/parametrics.d.ts.map +1 -1
- package/dist/downspout/parametrics.js +2 -1
- package/dist/downspout/renderer.d.ts.map +1 -1
- package/dist/downspout/renderer.js +19 -3
- package/dist/downspout/system.d.ts +7 -0
- package/dist/downspout/system.d.ts.map +1 -0
- package/dist/downspout/system.js +114 -0
- package/dist/duct-fitting/accessory-geometry.d.ts +4 -0
- package/dist/duct-fitting/accessory-geometry.d.ts.map +1 -0
- package/dist/duct-fitting/accessory-geometry.js +47 -0
- package/dist/duct-fitting/definition.d.ts.map +1 -1
- package/dist/duct-fitting/definition.js +11 -1
- package/dist/duct-fitting/floorplan.d.ts.map +1 -1
- package/dist/duct-fitting/floorplan.js +8 -0
- package/dist/duct-fitting/geometry.d.ts.map +1 -1
- package/dist/duct-fitting/geometry.js +52 -38
- package/dist/duct-fitting/parametrics.d.ts.map +1 -1
- package/dist/duct-fitting/parametrics.js +78 -15
- package/dist/duct-fitting/ports.d.ts +1 -0
- package/dist/duct-fitting/ports.d.ts.map +1 -1
- package/dist/duct-fitting/ports.js +46 -0
- package/dist/duct-fitting/tool.d.ts +19 -0
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +126 -34
- package/dist/duct-segment/continuation.d.ts +21 -0
- package/dist/duct-segment/continuation.d.ts.map +1 -0
- package/dist/duct-segment/continuation.js +167 -0
- package/dist/duct-segment/definition.d.ts.map +1 -1
- package/dist/duct-segment/definition.js +19 -18
- package/dist/duct-segment/floorplan.d.ts.map +1 -1
- package/dist/duct-segment/floorplan.js +43 -0
- package/dist/duct-segment/geometry.d.ts.map +1 -1
- package/dist/duct-segment/geometry.js +3 -0
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +33 -6
- package/dist/duct-segment/parametrics.d.ts.map +1 -1
- package/dist/duct-segment/parametrics.js +45 -1
- package/dist/duct-segment/selection.d.ts +3 -4
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +186 -158
- package/dist/duct-segment/tool.d.ts +37 -0
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +305 -678
- package/dist/duct-terminal/parametrics.js +2 -2
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +37 -7
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +7 -7
- package/dist/elevator/system.d.ts.map +1 -1
- package/dist/elevator/system.js +10 -1
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.js +8 -5
- package/dist/eyebrow-vent/geometry.d.ts +4 -0
- package/dist/eyebrow-vent/geometry.d.ts.map +1 -1
- package/dist/eyebrow-vent/geometry.js +60 -15
- package/dist/eyebrow-vent/paint.d.ts +4 -0
- package/dist/eyebrow-vent/paint.d.ts.map +1 -0
- package/dist/eyebrow-vent/paint.js +33 -0
- package/dist/eyebrow-vent/panel.js +1 -1
- package/dist/eyebrow-vent/parametrics.js +3 -3
- package/dist/eyebrow-vent/renderer.d.ts.map +1 -1
- package/dist/eyebrow-vent/renderer.js +27 -8
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.js +2 -1
- package/dist/fence/floorplan-affordances.d.ts +1 -0
- package/dist/fence/floorplan-affordances.d.ts.map +1 -1
- package/dist/fence/floorplan-affordances.js +30 -1
- package/dist/fence/floorplan.d.ts.map +1 -1
- package/dist/fence/floorplan.js +14 -0
- package/dist/fence/parametrics.js +3 -3
- package/dist/fence/tool.d.ts.map +1 -1
- package/dist/fence/tool.js +47 -20
- package/dist/gutter/corner-mitre.d.ts.map +1 -1
- package/dist/gutter/corner-mitre.js +47 -7
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.js +23 -13
- package/dist/gutter/eave-align.d.ts.map +1 -1
- package/dist/gutter/eave-align.js +10 -0
- package/dist/gutter/eave-snap.d.ts +1 -1
- package/dist/gutter/eave-snap.d.ts.map +1 -1
- package/dist/gutter/eave-snap.js +10 -23
- package/dist/gutter/geometry.d.ts.map +1 -1
- package/dist/gutter/geometry.js +126 -8
- package/dist/gutter/outlet-lookup.d.ts.map +1 -1
- package/dist/gutter/outlet-lookup.js +22 -1
- package/dist/gutter/paint.d.ts +3 -0
- package/dist/gutter/paint.d.ts.map +1 -0
- package/dist/gutter/paint.js +6 -0
- package/dist/gutter/parametrics.d.ts.map +1 -1
- package/dist/gutter/parametrics.js +4 -1
- package/dist/gutter/renderer.d.ts.map +1 -1
- package/dist/gutter/renderer.js +63 -7
- package/dist/gutter/trim-clip.d.ts +3 -0
- package/dist/gutter/trim-clip.d.ts.map +1 -0
- package/dist/gutter/trim-clip.js +5 -0
- package/dist/hvac-equipment/parametrics.js +3 -3
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +12 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +10 -2
- package/dist/item/floorplan-move.d.ts.map +1 -1
- package/dist/item/floorplan-move.js +20 -1
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +22 -1
- package/dist/item/move-tool.d.ts +28 -1
- package/dist/item/move-tool.d.ts.map +1 -1
- package/dist/item/move-tool.js +14 -2
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +16 -6
- package/dist/item/system.d.ts +5 -0
- package/dist/item/system.d.ts.map +1 -1
- package/dist/item/system.js +7 -1
- package/dist/lean-to-extension/arc.d.ts +14 -0
- package/dist/lean-to-extension/arc.d.ts.map +1 -0
- package/dist/lean-to-extension/arc.js +56 -0
- package/dist/lean-to-extension/assembly.d.ts +61 -0
- package/dist/lean-to-extension/assembly.d.ts.map +1 -0
- package/dist/lean-to-extension/assembly.js +761 -0
- package/dist/lean-to-extension/canopy-joint.d.ts +35 -0
- package/dist/lean-to-extension/canopy-joint.d.ts.map +1 -0
- package/dist/lean-to-extension/canopy-joint.js +234 -0
- package/dist/lean-to-extension/conical-host.d.ts +15 -0
- package/dist/lean-to-extension/conical-host.d.ts.map +1 -0
- package/dist/lean-to-extension/conical-host.js +113 -0
- package/dist/lean-to-extension/corner-joint.d.ts +29 -0
- package/dist/lean-to-extension/corner-joint.d.ts.map +1 -0
- package/dist/lean-to-extension/corner-joint.js +1202 -0
- package/dist/lean-to-extension/definition.d.ts +4 -0
- package/dist/lean-to-extension/definition.d.ts.map +1 -0
- package/dist/lean-to-extension/definition.js +433 -0
- package/dist/lean-to-extension/floorplan-affordances.d.ts +4 -0
- package/dist/lean-to-extension/floorplan-affordances.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan-affordances.js +144 -0
- package/dist/lean-to-extension/floorplan-move.d.ts +3 -0
- package/dist/lean-to-extension/floorplan-move.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan-move.js +157 -0
- package/dist/lean-to-extension/floorplan-tool.d.ts +4 -0
- package/dist/lean-to-extension/floorplan-tool.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan-tool.js +385 -0
- package/dist/lean-to-extension/floorplan.d.ts +3 -0
- package/dist/lean-to-extension/floorplan.d.ts.map +1 -0
- package/dist/lean-to-extension/floorplan.js +373 -0
- package/dist/lean-to-extension/geometry.d.ts +7 -0
- package/dist/lean-to-extension/geometry.d.ts.map +1 -0
- package/dist/lean-to-extension/geometry.js +662 -0
- package/dist/lean-to-extension/index.d.ts +8 -0
- package/dist/lean-to-extension/index.d.ts.map +1 -0
- package/dist/lean-to-extension/index.js +7 -0
- package/dist/lean-to-extension/layout.d.ts +108 -0
- package/dist/lean-to-extension/layout.d.ts.map +1 -0
- package/dist/lean-to-extension/layout.js +477 -0
- package/dist/lean-to-extension/managed-preview.d.ts +3 -0
- package/dist/lean-to-extension/managed-preview.d.ts.map +1 -0
- package/dist/lean-to-extension/managed-preview.js +93 -0
- package/dist/lean-to-extension/move-tool.d.ts +8 -0
- package/dist/lean-to-extension/move-tool.d.ts.map +1 -0
- package/dist/lean-to-extension/move-tool.js +202 -0
- package/dist/lean-to-extension/paint.d.ts +2 -0
- package/dist/lean-to-extension/paint.d.ts.map +1 -0
- package/dist/lean-to-extension/paint.js +16 -0
- package/dist/lean-to-extension/parametrics.d.ts +4 -0
- package/dist/lean-to-extension/parametrics.d.ts.map +1 -0
- package/dist/lean-to-extension/parametrics.js +570 -0
- package/dist/lean-to-extension/placement-scope.d.ts +3 -0
- package/dist/lean-to-extension/placement-scope.d.ts.map +1 -0
- package/dist/lean-to-extension/placement-scope.js +4 -0
- package/dist/lean-to-extension/placement-validation.d.ts +4 -0
- package/dist/lean-to-extension/placement-validation.d.ts.map +1 -0
- package/dist/lean-to-extension/placement-validation.js +324 -0
- package/dist/lean-to-extension/placement.d.ts +59 -0
- package/dist/lean-to-extension/placement.d.ts.map +1 -0
- package/dist/lean-to-extension/placement.js +331 -0
- package/dist/lean-to-extension/plan-footprint.d.ts +10 -0
- package/dist/lean-to-extension/plan-footprint.d.ts.map +1 -0
- package/dist/lean-to-extension/plan-footprint.js +27 -0
- package/dist/lean-to-extension/preview-geometry.d.ts +7 -0
- package/dist/lean-to-extension/preview-geometry.d.ts.map +1 -0
- package/dist/lean-to-extension/preview-geometry.js +40 -0
- package/dist/lean-to-extension/preview.d.ts +7 -0
- package/dist/lean-to-extension/preview.d.ts.map +1 -0
- package/dist/lean-to-extension/preview.js +20 -0
- package/dist/lean-to-extension/renderer.d.ts +6 -0
- package/dist/lean-to-extension/renderer.d.ts.map +1 -0
- package/dist/lean-to-extension/renderer.js +34 -0
- package/dist/lean-to-extension/roof-attachment.d.ts +28 -0
- package/dist/lean-to-extension/roof-attachment.d.ts.map +1 -0
- package/dist/lean-to-extension/roof-attachment.js +376 -0
- package/dist/lean-to-extension/schema.d.ts +2 -0
- package/dist/lean-to-extension/schema.d.ts.map +1 -0
- package/dist/lean-to-extension/schema.js +1 -0
- package/dist/lean-to-extension/slots.d.ts +5 -0
- package/dist/lean-to-extension/slots.d.ts.map +1 -0
- package/dist/lean-to-extension/slots.js +15 -0
- package/dist/lean-to-extension/system.d.ts +7 -0
- package/dist/lean-to-extension/system.d.ts.map +1 -0
- package/dist/lean-to-extension/system.js +726 -0
- package/dist/lean-to-extension/tool.d.ts +3 -0
- package/dist/lean-to-extension/tool.d.ts.map +1 -0
- package/dist/lean-to-extension/tool.js +580 -0
- package/dist/lean-to-extension/wall-target.d.ts +10 -0
- package/dist/lean-to-extension/wall-target.d.ts.map +1 -0
- package/dist/lean-to-extension/wall-target.js +29 -0
- package/dist/lineset/definition.d.ts.map +1 -1
- package/dist/lineset/definition.js +1 -0
- package/dist/liquid-line/definition.d.ts.map +1 -1
- package/dist/liquid-line/definition.js +1 -0
- package/dist/pipe-fitting/definition.d.ts.map +1 -1
- package/dist/pipe-fitting/definition.js +16 -2
- package/dist/pipe-fitting/floorplan.d.ts.map +1 -1
- package/dist/pipe-fitting/floorplan.js +4 -0
- package/dist/pipe-fitting/geometry.d.ts +3 -5
- package/dist/pipe-fitting/geometry.d.ts.map +1 -1
- package/dist/pipe-fitting/geometry.js +154 -21
- package/dist/pipe-fitting/inline-insertion.d.ts +13 -0
- package/dist/pipe-fitting/inline-insertion.d.ts.map +1 -0
- package/dist/pipe-fitting/inline-insertion.js +96 -0
- package/dist/pipe-fitting/parametrics.d.ts.map +1 -1
- package/dist/pipe-fitting/parametrics.js +17 -3
- package/dist/pipe-fitting/ports.d.ts.map +1 -1
- package/dist/pipe-fitting/ports.js +8 -1
- package/dist/pipe-fitting/tool.d.ts +26 -0
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +182 -37
- package/dist/pipe-segment/continuation.d.ts +22 -0
- package/dist/pipe-segment/continuation.d.ts.map +1 -0
- package/dist/pipe-segment/continuation.js +146 -0
- package/dist/pipe-segment/definition.d.ts.map +1 -1
- package/dist/pipe-segment/definition.js +23 -7
- package/dist/pipe-segment/floorplan.d.ts.map +1 -1
- package/dist/pipe-segment/floorplan.js +42 -0
- package/dist/pipe-segment/geometry.d.ts +2 -1
- package/dist/pipe-segment/geometry.d.ts.map +1 -1
- package/dist/pipe-segment/geometry.js +4 -1
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +25 -5
- package/dist/pipe-segment/parametrics.d.ts.map +1 -1
- package/dist/pipe-segment/parametrics.js +45 -0
- package/dist/pipe-segment/selection.d.ts +3 -4
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +169 -105
- package/dist/pipe-segment/slope.d.ts +5 -0
- package/dist/pipe-segment/slope.d.ts.map +1 -0
- package/dist/pipe-segment/slope.js +10 -0
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +325 -545
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +15 -2
- package/dist/ridge-vent/definition.js +1 -1
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +2 -2
- package/dist/ridge-vent/parametrics.js +1 -1
- package/dist/roof/conical-roof-placement.d.ts +36 -0
- package/dist/roof/conical-roof-placement.d.ts.map +1 -0
- package/dist/roof/conical-roof-placement.js +134 -0
- package/dist/roof/conical-roof.d.ts +3 -0
- package/dist/roof/conical-roof.d.ts.map +1 -0
- package/dist/roof/conical-roof.js +53 -0
- package/dist/roof/definition.d.ts +3 -10
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +83 -13
- package/dist/roof/floorplan.d.ts +3 -10
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +139 -165
- package/dist/roof/index.d.ts +1 -0
- package/dist/roof/index.d.ts.map +1 -1
- package/dist/roof/index.js +1 -0
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +22 -23
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/roof-footprint-source.d.ts +16 -0
- package/dist/roof/roof-footprint-source.d.ts.map +1 -0
- package/dist/roof/roof-footprint-source.js +14 -0
- package/dist/roof/roof-footprint.d.ts +25 -0
- package/dist/roof/roof-footprint.d.ts.map +1 -0
- package/dist/roof/roof-footprint.js +94 -0
- package/dist/roof/roof-placement-mode.d.ts +18 -0
- package/dist/roof/roof-placement-mode.d.ts.map +1 -0
- package/dist/roof/roof-placement-mode.js +24 -0
- package/dist/roof/tool.d.ts +10 -0
- package/dist/roof/tool.d.ts.map +1 -0
- package/dist/roof/tool.js +922 -0
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +52 -8
- package/dist/roof-segment/floorplan-affordances.d.ts +5 -6
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +64 -18
- package/dist/roof-segment/floorplan.d.ts +3 -2
- package/dist/roof-segment/floorplan.d.ts.map +1 -1
- package/dist/roof-segment/floorplan.js +95 -46
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +122 -27
- package/dist/scan/definition.d.ts +2 -3
- package/dist/scan/definition.d.ts.map +1 -1
- package/dist/scan/definition.js +9 -7
- package/dist/scan/parametrics.d.ts.map +1 -1
- package/dist/scan/parametrics.js +13 -1
- package/dist/scan/renderer.d.ts.map +1 -1
- package/dist/scan/renderer.js +8 -2
- package/dist/shared/accessory-cursor.d.ts +7 -0
- package/dist/shared/accessory-cursor.d.ts.map +1 -0
- package/dist/shared/accessory-cursor.js +83 -0
- package/dist/shared/accessory-floorplan.d.ts +4 -0
- package/dist/shared/accessory-floorplan.d.ts.map +1 -0
- package/dist/shared/accessory-floorplan.js +51 -0
- package/dist/shared/accessory-geometry.d.ts +7 -0
- package/dist/shared/accessory-geometry.d.ts.map +1 -0
- package/dist/shared/accessory-geometry.js +79 -0
- package/dist/shared/accessory-placement.d.ts +10 -0
- package/dist/shared/accessory-placement.d.ts.map +1 -0
- package/dist/shared/accessory-placement.js +126 -0
- package/dist/shared/accessory-snapping.d.ts +5 -0
- package/dist/shared/accessory-snapping.d.ts.map +1 -0
- package/dist/shared/accessory-snapping.js +40 -0
- package/dist/shared/automatic-run-end-cap.d.ts +11 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -0
- package/dist/shared/automatic-run-end-cap.js +159 -0
- package/dist/shared/block-face-host.d.ts +15 -0
- package/dist/shared/block-face-host.d.ts.map +1 -0
- package/dist/shared/block-face-host.js +36 -0
- package/dist/shared/connection-compatibility.d.ts +8 -0
- package/dist/shared/connection-compatibility.d.ts.map +1 -0
- package/dist/shared/connection-compatibility.js +28 -0
- package/dist/shared/connection-feedback.d.ts +10 -0
- package/dist/shared/connection-feedback.d.ts.map +1 -0
- package/dist/shared/connection-feedback.js +17 -0
- package/dist/shared/distribution-run-contract.d.ts +49 -0
- package/dist/shared/distribution-run-contract.d.ts.map +1 -0
- package/dist/shared/distribution-run-contract.js +30 -0
- package/dist/shared/distribution-run-tool.d.ts +107 -0
- package/dist/shared/distribution-run-tool.d.ts.map +1 -0
- package/dist/shared/distribution-run-tool.js +941 -0
- package/dist/shared/dormer-wall-opening-placement.d.ts +21 -0
- package/dist/shared/dormer-wall-opening-placement.d.ts.map +1 -0
- package/dist/shared/dormer-wall-opening-placement.js +101 -0
- package/dist/shared/duct-adapter.d.ts +10 -0
- package/dist/shared/duct-adapter.d.ts.map +1 -0
- package/dist/shared/duct-adapter.js +43 -0
- package/dist/shared/elbow-branch-continuation.d.ts +20 -0
- package/dist/shared/elbow-branch-continuation.d.ts.map +1 -0
- package/dist/shared/elbow-branch-continuation.js +200 -0
- package/dist/shared/fitting-clearance.d.ts +5 -0
- package/dist/shared/fitting-clearance.d.ts.map +1 -0
- package/dist/shared/fitting-clearance.js +11 -0
- package/dist/shared/fitting-deletion-cleanup.d.ts +14 -0
- package/dist/shared/fitting-deletion-cleanup.d.ts.map +1 -0
- package/dist/shared/fitting-deletion-cleanup.js +297 -0
- package/dist/shared/fitting-surface-support.d.ts +5 -0
- package/dist/shared/fitting-surface-support.d.ts.map +1 -0
- package/dist/shared/fitting-surface-support.js +42 -0
- package/dist/shared/fitting-tool-options.d.ts +4 -0
- package/dist/shared/fitting-tool-options.d.ts.map +1 -0
- package/dist/shared/fitting-tool-options.js +175 -0
- package/dist/shared/floor-placement.d.ts +1 -1
- package/dist/shared/floor-placement.d.ts.map +1 -1
- package/dist/shared/floor-placement.js +13 -33
- package/dist/shared/ghost-materials.d.ts.map +1 -1
- package/dist/shared/ghost-materials.js +2 -1
- package/dist/shared/lean-to-post-omissions.d.ts +8 -0
- package/dist/shared/lean-to-post-omissions.d.ts.map +1 -0
- package/dist/shared/lean-to-post-omissions.js +51 -0
- package/dist/shared/mep-fitting-actions.d.ts +5 -0
- package/dist/shared/mep-fitting-actions.d.ts.map +1 -0
- package/dist/shared/mep-fitting-actions.js +16 -0
- package/dist/shared/mep-presets.d.ts +11 -0
- package/dist/shared/mep-presets.d.ts.map +1 -0
- package/dist/shared/mep-presets.js +34 -0
- package/dist/shared/node-batch/candidates.d.ts +29 -0
- package/dist/shared/node-batch/candidates.d.ts.map +1 -0
- package/dist/shared/node-batch/candidates.js +260 -0
- package/dist/shared/node-batch/store.d.ts +26 -0
- package/dist/shared/node-batch/store.d.ts.map +1 -0
- package/dist/shared/node-batch/store.js +319 -0
- package/dist/shared/node-batch/system.d.ts +8 -0
- package/dist/shared/node-batch/system.d.ts.map +1 -0
- package/dist/shared/node-batch/system.js +569 -0
- package/dist/shared/node-batch/types.d.ts +99 -0
- package/dist/shared/node-batch/types.d.ts.map +1 -0
- package/dist/shared/node-batch/types.js +4 -0
- package/dist/shared/opening-move-history.d.ts +47 -0
- package/dist/shared/opening-move-history.d.ts.map +1 -0
- package/dist/shared/opening-move-history.js +18 -0
- package/dist/shared/opening-move-wall-gate.d.ts +55 -0
- package/dist/shared/opening-move-wall-gate.d.ts.map +1 -0
- package/dist/shared/opening-move-wall-gate.js +44 -0
- package/dist/shared/path-point-affordance.d.ts +2 -2
- package/dist/shared/path-point-affordance.d.ts.map +1 -1
- package/dist/shared/path-point-affordance.js +30 -6
- package/dist/shared/placeholder-geometry.d.ts.map +1 -1
- package/dist/shared/placeholder-geometry.js +4 -0
- package/dist/shared/ports.d.ts +20 -3
- package/dist/shared/ports.d.ts.map +1 -1
- package/dist/shared/ports.js +148 -7
- package/dist/shared/primitive-uv.d.ts +17 -0
- package/dist/shared/primitive-uv.d.ts.map +1 -0
- package/dist/shared/primitive-uv.js +107 -0
- package/dist/shared/reducer-size.d.ts +2 -0
- package/dist/shared/reducer-size.d.ts.map +1 -0
- package/dist/shared/reducer-size.js +12 -0
- package/dist/shared/ridge-snap.js +1 -1
- package/dist/shared/roof-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +17 -2
- package/dist/shared/run-cursor.d.ts +22 -0
- package/dist/shared/run-cursor.d.ts.map +1 -0
- package/dist/shared/run-cursor.js +19 -0
- package/dist/shared/run-direction-feedback.d.ts +20 -0
- package/dist/shared/run-direction-feedback.d.ts.map +1 -0
- package/dist/shared/run-direction-feedback.js +139 -0
- package/dist/shared/run-hanger-controls.d.ts +7 -0
- package/dist/shared/run-hanger-controls.d.ts.map +1 -0
- package/dist/shared/run-hanger-controls.js +44 -0
- package/dist/shared/run-hanger-inspector.d.ts +5 -0
- package/dist/shared/run-hanger-inspector.d.ts.map +1 -0
- package/dist/shared/run-hanger-inspector.js +43 -0
- package/dist/shared/run-hanger-mode.d.ts +11 -0
- package/dist/shared/run-hanger-mode.d.ts.map +1 -0
- package/dist/shared/run-hanger-mode.js +32 -0
- package/dist/shared/run-hanger-system.d.ts +3 -0
- package/dist/shared/run-hanger-system.d.ts.map +1 -0
- package/dist/shared/run-hanger-system.js +39 -0
- package/dist/shared/run-hangers.d.ts +25 -0
- package/dist/shared/run-hangers.d.ts.map +1 -0
- package/dist/shared/run-hangers.js +261 -0
- package/dist/shared/run-port-snap.d.ts +11 -0
- package/dist/shared/run-port-snap.d.ts.map +1 -0
- package/dist/shared/run-port-snap.js +19 -0
- package/dist/shared/run-screen-direction.d.ts +5 -0
- package/dist/shared/run-screen-direction.d.ts.map +1 -0
- package/dist/shared/run-screen-direction.js +24 -0
- package/dist/shared/selection-handles.d.ts +4 -0
- package/dist/shared/selection-handles.d.ts.map +1 -1
- package/dist/shared/selection-handles.js +10 -0
- package/dist/shared/slot-paint.d.ts +8 -1
- package/dist/shared/slot-paint.d.ts.map +1 -1
- package/dist/shared/slot-paint.js +120 -27
- package/dist/shared/surface-paint.d.ts +1 -2
- package/dist/shared/surface-paint.d.ts.map +1 -1
- package/dist/shared/surface-paint.js +9 -20
- package/dist/shared/system-check-panel.d.ts +6 -0
- package/dist/shared/system-check-panel.d.ts.map +1 -0
- package/dist/shared/system-check-panel.js +62 -0
- package/dist/shared/system-checks.d.ts +9 -0
- package/dist/shared/system-checks.d.ts.map +1 -0
- package/dist/shared/system-checks.js +131 -0
- package/dist/shared/wall-attach-target.d.ts +14 -2
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +108 -4
- package/dist/shared/wall-opening-clearance.d.ts +19 -0
- package/dist/shared/wall-opening-clearance.d.ts.map +1 -0
- package/dist/shared/wall-opening-clearance.js +28 -0
- package/dist/shared/wall-run-move.d.ts +17 -0
- package/dist/shared/wall-run-move.d.ts.map +1 -0
- package/dist/shared/wall-run-move.js +56 -0
- package/dist/shelf/parametrics.js +4 -4
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +40 -28
- package/dist/site/terrain-geometry.d.ts +1 -1
- package/dist/site/terrain-geometry.d.ts.map +1 -1
- package/dist/site/terrain-geometry.js +35 -9
- package/dist/site/terrain-mesh.d.ts +5 -0
- package/dist/site/terrain-mesh.d.ts.map +1 -1
- package/dist/site/terrain-mesh.js +63 -34
- package/dist/skylight/definition.js +1 -1
- package/dist/skylight/panel.js +1 -1
- package/dist/skylight/parametrics.js +2 -2
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +6 -1
- package/dist/slab/dependency-tracker.d.ts +3 -0
- package/dist/slab/dependency-tracker.d.ts.map +1 -0
- package/dist/slab/dependency-tracker.js +104 -0
- package/dist/slab/floorplan-affordances.d.ts +8 -8
- package/dist/slab/geometry.d.ts.map +1 -1
- package/dist/slab/geometry.js +16 -2
- package/dist/slab/panel.js +1 -1
- package/dist/slab/parametrics.js +1 -1
- package/dist/slab/system.d.ts.map +1 -1
- package/dist/slab/system.js +8 -64
- package/dist/solar-panel/definition.js +1 -1
- package/dist/solar-panel/panel.js +1 -1
- package/dist/solar-panel/parametrics.js +2 -2
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +18 -13
- package/dist/stair/stair-type.d.ts +18 -0
- package/dist/stair/stair-type.d.ts.map +1 -0
- package/dist/stair/stair-type.js +25 -0
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +44 -5
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.js +8 -5
- package/dist/turbine-vent/geometry.d.ts.map +1 -1
- package/dist/turbine-vent/geometry.js +48 -18
- package/dist/turbine-vent/paint.d.ts +4 -0
- package/dist/turbine-vent/paint.d.ts.map +1 -0
- package/dist/turbine-vent/paint.js +35 -0
- package/dist/turbine-vent/panel.js +1 -1
- package/dist/turbine-vent/parametrics.js +2 -2
- package/dist/turbine-vent/renderer.d.ts.map +1 -1
- package/dist/turbine-vent/renderer.js +31 -9
- package/dist/wall/curve-eligibility.d.ts +3 -0
- package/dist/wall/curve-eligibility.d.ts.map +1 -0
- package/dist/wall/curve-eligibility.js +10 -0
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +8 -11
- package/dist/wall/definition.d.ts +1 -1
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +36 -13
- package/dist/wall/floorplan-affordances.d.ts +1 -0
- package/dist/wall/floorplan-affordances.d.ts.map +1 -1
- package/dist/wall/floorplan-affordances.js +46 -7
- package/dist/wall/floorplan-move.d.ts +3 -4
- package/dist/wall/floorplan-move.d.ts.map +1 -1
- package/dist/wall/floorplan-move.js +122 -9
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +19 -23
- package/dist/wall/move-shared.d.ts.map +1 -1
- package/dist/wall/move-shared.js +10 -7
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +2 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +10 -17
- package/dist/wall/parametrics.js +2 -2
- package/dist/wall/pointer-transparency.d.ts +128 -0
- package/dist/wall/pointer-transparency.d.ts.map +1 -0
- package/dist/wall/pointer-transparency.js +147 -0
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +65 -8
- package/dist/wall/selection-hit-owner.d.ts +53 -0
- package/dist/wall/selection-hit-owner.d.ts.map +1 -0
- package/dist/wall/selection-hit-owner.js +79 -0
- package/dist/wall/system.d.ts +2 -0
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +66 -25
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +5 -0
- package/dist/wall/treatment-level-data.d.ts +6 -1
- package/dist/wall/treatment-level-data.d.ts.map +1 -1
- package/dist/wall/treatment-level-data.js +82 -5
- package/dist/wall/treatments.d.ts +1 -0
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +5 -0
- package/dist/wall/wall-batch-system.d.ts +38 -6
- package/dist/wall/wall-batch-system.d.ts.map +1 -1
- package/dist/wall/wall-batch-system.js +122 -25
- package/dist/wall/wall-batch.js +2 -2
- package/dist/window/definition.d.ts +2 -1
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +51 -24
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +1 -1
- package/dist/window/move-tool.d.ts +7 -5
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +344 -58
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +2 -0
- package/dist/window/parametrics.js +2 -2
- package/dist/window/renderer.d.ts.map +1 -1
- package/dist/window/renderer.js +5 -7
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +227 -13
- package/dist/zone/floorplan-affordances.d.ts +12 -12
- package/package.json +11 -9
- package/dist/dormer/panel-window-section.d.ts +0 -14
- package/dist/dormer/panel-window-section.d.ts.map +0 -1
- package/dist/dormer/panel-window-section.js +0 -59
- package/dist/dormer/window-assembly.d.ts +0 -22
- package/dist/dormer/window-assembly.d.ts.map +0 -1
- package/dist/dormer/window-assembly.js +0 -111
- package/dist/dormer/window-frame.d.ts +0 -24
- package/dist/dormer/window-frame.d.ts.map +0 -1
- package/dist/dormer/window-frame.js +0 -100
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/wall/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/wall/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAaxB,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAA;AAqCzB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CAAC,QAAQ,CAuYjE,CAAA"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { getPerpendicularWallMoveAxis, getPlannedLinkedWallUpdates, planWallMoveJunctions, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
1
|
+
import { detectSpacesForLevel, getCeilingClampBound, getPerpendicularWallMoveAxis, getPlannedLinkedWallUpdates, getStoredLevelHeight, planAutoCeilingsForLevel, planAutoSlabsForLevel, planWallMoveJunctions, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
2
2
|
import { getFloorplanWallThickness, getSegmentGridStep, isSegmentLongEnough, snapScalarToGrid, useWallMoveGhosts, } from '@pascal-app/editor';
|
|
3
3
|
import { useViewer } from '@pascal-app/viewer';
|
|
4
4
|
import { buildBridgeWallCreates, buildBridgeWallPreviews, getLinkedWallSnapshots, getWallsAfterUpdates, stripWallIsNewMetadata, } from './move-shared';
|
|
5
|
+
function getLevelSlabs(levelId, nodes) {
|
|
6
|
+
return Object.values(nodes).filter((entry) => entry?.type === 'slab' && (entry.parentId ?? null) === levelId);
|
|
7
|
+
}
|
|
8
|
+
function getLevelCeilings(levelId, nodes) {
|
|
9
|
+
return Object.values(nodes).filter((entry) => entry?.type === 'ceiling' && (entry.parentId ?? null) === levelId);
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* 2D floor-plan move handler for wall.
|
|
7
13
|
*
|
|
@@ -26,10 +32,9 @@ import { buildBridgeWallCreates, buildBridgeWallPreviews, getLinkedWallSnapshots
|
|
|
26
32
|
* overrides after the write lands so the system reads from the new
|
|
27
33
|
* committed scene state.
|
|
28
34
|
*
|
|
29
|
-
*
|
|
30
|
-
* the
|
|
31
|
-
*
|
|
32
|
-
* time. Follow-up work to surface them mid-drag is tracked separately.
|
|
35
|
+
* Existing automatic slabs and ceilings receive live polygon overrides during
|
|
36
|
+
* the drag. New surfaces and removals stay deferred until commit because live
|
|
37
|
+
* overrides cannot represent nodes that do not exist in the scene.
|
|
33
38
|
*/
|
|
34
39
|
export const wallFloorplanMoveTarget = ({ node }) => {
|
|
35
40
|
const wallId = node.id;
|
|
@@ -72,8 +77,75 @@ export const wallFloorplanMoveTarget = ({ node }) => {
|
|
|
72
77
|
let lastDelta = [0, 0];
|
|
73
78
|
let lastNextStart = originalStart;
|
|
74
79
|
let lastNextEnd = originalEnd;
|
|
80
|
+
const levelId = node.parentId ?? null;
|
|
81
|
+
const affectedIds = [wallId, ...linkedOriginals.map((wall) => wall.id)];
|
|
82
|
+
const affectedIdSet = new Set(affectedIds);
|
|
83
|
+
const touchedSurfaceIds = new Set();
|
|
84
|
+
let latestSurfacePlans = null;
|
|
85
|
+
const planSurfaces = (walls) => {
|
|
86
|
+
if (!levelId)
|
|
87
|
+
return null;
|
|
88
|
+
const sceneState = useScene.getState();
|
|
89
|
+
const levelWalls = walls.filter((wall) => (wall.parentId ?? null) === levelId);
|
|
90
|
+
const { roomPolygons } = detectSpacesForLevel(levelId, levelWalls);
|
|
91
|
+
const slabs = planAutoSlabsForLevel(roomPolygons, getLevelSlabs(levelId, sceneState.nodes));
|
|
92
|
+
const levelNode = sceneState.nodes[levelId];
|
|
93
|
+
const ceilings = planAutoCeilingsForLevel(roomPolygons, getLevelCeilings(levelId, sceneState.nodes), {
|
|
94
|
+
storeyHeight: levelNode?.type === 'level' ? getStoredLevelHeight(levelNode) : undefined,
|
|
95
|
+
ceilingClampBound: (polygon) => getCeilingClampBound(levelId, sceneState.nodes, polygon),
|
|
96
|
+
});
|
|
97
|
+
return { slabs, ceilings };
|
|
98
|
+
};
|
|
99
|
+
const publishSurfacePreviews = (walls) => {
|
|
100
|
+
const plans = planSurfaces(walls);
|
|
101
|
+
latestSurfacePlans = plans;
|
|
102
|
+
if (!plans)
|
|
103
|
+
return;
|
|
104
|
+
const entries = [];
|
|
105
|
+
for (const update of plans.slabs.update) {
|
|
106
|
+
if (update.data.polygon !== undefined) {
|
|
107
|
+
entries.push([update.id, { polygon: update.data.polygon }]);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
for (const update of plans.ceilings.update) {
|
|
111
|
+
if (update.data.polygon !== undefined || update.data.height !== undefined) {
|
|
112
|
+
entries.push([update.id, update.data]);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const nextIds = new Set(entries.map(([id]) => id));
|
|
116
|
+
const overrides = useLiveNodeOverrides.getState();
|
|
117
|
+
const sceneState = useScene.getState();
|
|
118
|
+
for (const id of touchedSurfaceIds) {
|
|
119
|
+
if (nextIds.has(id))
|
|
120
|
+
continue;
|
|
121
|
+
overrides.clear(id);
|
|
122
|
+
sceneState.markDirty(id);
|
|
123
|
+
touchedSurfaceIds.delete(id);
|
|
124
|
+
}
|
|
125
|
+
if (entries.length > 0) {
|
|
126
|
+
overrides.setMany(entries);
|
|
127
|
+
for (const [id] of entries) {
|
|
128
|
+
touchedSurfaceIds.add(id);
|
|
129
|
+
if (!affectedIdSet.has(id)) {
|
|
130
|
+
affectedIdSet.add(id);
|
|
131
|
+
affectedIds.push(id);
|
|
132
|
+
}
|
|
133
|
+
sceneState.markDirty(id);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const clearSurfacePreviews = () => {
|
|
138
|
+
const overrides = useLiveNodeOverrides.getState();
|
|
139
|
+
const sceneState = useScene.getState();
|
|
140
|
+
for (const id of touchedSurfaceIds) {
|
|
141
|
+
overrides.clear(id);
|
|
142
|
+
sceneState.markDirty(id);
|
|
143
|
+
}
|
|
144
|
+
touchedSurfaceIds.clear();
|
|
145
|
+
latestSurfacePlans = null;
|
|
146
|
+
};
|
|
75
147
|
const session = {
|
|
76
|
-
affectedIds
|
|
148
|
+
affectedIds,
|
|
77
149
|
apply({ planPoint }) {
|
|
78
150
|
if (!rawAnchor) {
|
|
79
151
|
rawAnchor = [planPoint[0], planPoint[1]];
|
|
@@ -168,6 +240,7 @@ export const wallFloorplanMoveTarget = ({ node }) => {
|
|
|
168
240
|
thickness: getFloorplanWallThickness(wall),
|
|
169
241
|
}));
|
|
170
242
|
useWallMoveGhosts.getState().setBridges(ghostBridges);
|
|
243
|
+
publishSurfacePreviews([...previewSceneWalls, ...bridgePreviews.map(({ wall }) => wall)]);
|
|
171
244
|
// `WallSystem` only runs its rebuild pass when `dirtyNodes` is
|
|
172
245
|
// non-empty. We're not writing to scene any more, but we still
|
|
173
246
|
// need the system to pick up the live override changes — so
|
|
@@ -195,6 +268,7 @@ export const wallFloorplanMoveTarget = ({ node }) => {
|
|
|
195
268
|
overrides.clear(wallId);
|
|
196
269
|
for (const wall of linkedOriginals)
|
|
197
270
|
overrides.clear(wall.id);
|
|
271
|
+
clearSurfacePreviews();
|
|
198
272
|
return;
|
|
199
273
|
}
|
|
200
274
|
const plan = planWallMoveJunctions(linkedOriginals, originalStart, originalEnd, lastNextStart, lastNextEnd);
|
|
@@ -232,10 +306,48 @@ export const wallFloorplanMoveTarget = ({ node }) => {
|
|
|
232
306
|
existingWalls,
|
|
233
307
|
wallCount: Object.values(sceneState.nodes).filter((entry) => entry?.type === 'wall').length,
|
|
234
308
|
});
|
|
309
|
+
const finalWalls = [
|
|
310
|
+
...existingWalls,
|
|
311
|
+
...bridgeCreates.map((entry) => ({ ...entry.node, parentId: entry.parentId ?? null })),
|
|
312
|
+
];
|
|
313
|
+
const surfacePlans = planSurfaces(finalWalls) ?? latestSurfacePlans;
|
|
314
|
+
const surfaceUpdates = surfacePlans
|
|
315
|
+
? [
|
|
316
|
+
...surfacePlans.slabs.update.map((entry) => ({
|
|
317
|
+
id: entry.id,
|
|
318
|
+
data: entry.data,
|
|
319
|
+
})),
|
|
320
|
+
...surfacePlans.ceilings.update.map((entry) => ({
|
|
321
|
+
id: entry.id,
|
|
322
|
+
data: entry.data,
|
|
323
|
+
})),
|
|
324
|
+
]
|
|
325
|
+
: [];
|
|
326
|
+
const surfaceCreates = surfacePlans
|
|
327
|
+
? [
|
|
328
|
+
...surfacePlans.slabs.create.map((slab) => ({
|
|
329
|
+
node: slab,
|
|
330
|
+
parentId: levelId,
|
|
331
|
+
})),
|
|
332
|
+
...surfacePlans.ceilings.create.map((ceiling) => ({
|
|
333
|
+
node: ceiling,
|
|
334
|
+
parentId: levelId,
|
|
335
|
+
})),
|
|
336
|
+
]
|
|
337
|
+
: [];
|
|
338
|
+
const surfaceDeletes = surfacePlans
|
|
339
|
+
? [
|
|
340
|
+
...surfacePlans.slabs.delete.map((id) => id),
|
|
341
|
+
...surfacePlans.ceilings.delete.map((id) => id),
|
|
342
|
+
]
|
|
343
|
+
: [];
|
|
235
344
|
sceneState.applyNodeChanges({
|
|
236
|
-
update:
|
|
237
|
-
|
|
238
|
-
|
|
345
|
+
update: [
|
|
346
|
+
...commitUpdates,
|
|
347
|
+
...surfaceUpdates,
|
|
348
|
+
],
|
|
349
|
+
create: [...bridgeCreates, ...surfaceCreates],
|
|
350
|
+
delete: Array.from(new Set([...collapsedLinkedWallIds, ...surfaceDeletes])),
|
|
239
351
|
});
|
|
240
352
|
// Drop the live overrides now that the committed scene state
|
|
241
353
|
// matches them — leaving them around would keep the system
|
|
@@ -246,6 +358,7 @@ export const wallFloorplanMoveTarget = ({ node }) => {
|
|
|
246
358
|
overrides.clear(wallId);
|
|
247
359
|
for (const wall of linkedOriginals)
|
|
248
360
|
overrides.clear(wall.id);
|
|
361
|
+
clearSurfacePreviews();
|
|
249
362
|
// Swap ghosts → real walls: the bridges we just created render
|
|
250
363
|
// through the registry layer, so the dashed previews aren't
|
|
251
364
|
// needed any more. Clearing here (instead of waiting for the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/wall/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAOpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAKL,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/wall/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAOpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAKL,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAA;AAYlC,QAAA,MAAM,yBAAyB,yDAA0D,CAAA;AAEzF,KAAK,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;AAexE,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,aAAa,CAAA;IACrB,cAAc,EAAE,aAAa,CAAA;IAC7B,iCAAiC,EAAE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC,CAAA;CACjG,CAAA;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,GAAG,sBAAsB,CAqCzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAkNjG"}
|
package/dist/wall/floorplan.js
CHANGED
|
@@ -2,6 +2,7 @@ import { calculateLevelMiters, getWallCurveFrameAt, getWallCurveLength, getWallM
|
|
|
2
2
|
import { floorplanGeometryMetadata, readFloorplanContext } from '@pascal-app/editor';
|
|
3
3
|
import { constructionDimensionStandard } from '../shared/construction-dimension-standards';
|
|
4
4
|
import { buildCurvedWallConstructionDimensions, buildLevelWallConstructionDimensionPlan, buildWallConstructionDimensions, renderPlannedConstructionDimensions, } from './construction-dimensions';
|
|
5
|
+
import { hasWallCurveBlockingChildren } from './curve-eligibility';
|
|
5
6
|
// Same constants the legacy `getFloorplanWall` uses (editor/lib/floorplan/walls.ts).
|
|
6
7
|
// Slightly exaggerates thin walls so the 2D plan stays legible without
|
|
7
8
|
// drifting from BIM data. Inlined to keep nodes/wall self-contained.
|
|
@@ -190,6 +191,20 @@ export function buildWallFloorplan(node, ctx) {
|
|
|
190
191
|
affordance: 'move-endpoint',
|
|
191
192
|
payload: { wallId: node.id, endpoint: 'end' },
|
|
192
193
|
});
|
|
194
|
+
const thicknessFrame = getWallCurveFrameAt(self, 0.5);
|
|
195
|
+
const halfVisibleThickness = getWallThickness(self) / 2;
|
|
196
|
+
for (const side of [1, -1]) {
|
|
197
|
+
children.push({
|
|
198
|
+
kind: 'endpoint-handle',
|
|
199
|
+
point: [
|
|
200
|
+
thicknessFrame.point.x + thicknessFrame.normal.x * halfVisibleThickness * side,
|
|
201
|
+
thicknessFrame.point.y + thicknessFrame.normal.y * halfVisibleThickness * side,
|
|
202
|
+
],
|
|
203
|
+
state: 'idle',
|
|
204
|
+
affordance: 'thickness',
|
|
205
|
+
payload: { wallId: node.id, side },
|
|
206
|
+
});
|
|
207
|
+
}
|
|
193
208
|
// Side move arrows — two directional arrows at the wall midpoint,
|
|
194
209
|
// pointing outward perpendicular to the wall. Mirrors the 3D
|
|
195
210
|
// `WallMoveSideHandles` arrows so users can grab the wall body
|
|
@@ -217,11 +232,10 @@ export function buildWallFloorplan(node, ctx) {
|
|
|
217
232
|
}
|
|
218
233
|
}
|
|
219
234
|
// Curve sagitta handle — teal dot at the wall midpoint that
|
|
220
|
-
// controls `curveOffset`. Hidden when the wall hosts
|
|
221
|
-
//
|
|
222
|
-
//
|
|
223
|
-
|
|
224
|
-
if (!hasCurveBlockingChildren(ctx.children)) {
|
|
235
|
+
// controls `curveOffset`. Hidden when the wall hosts an opening,
|
|
236
|
+
// lean-to extension, or wall-attached item because bending the host
|
|
237
|
+
// would tear the child geometry away from it.
|
|
238
|
+
if (!hasWallCurveBlockingChildren(ctx.children)) {
|
|
225
239
|
const handle = getWallMidpointHandlePoint(node);
|
|
226
240
|
children.push({
|
|
227
241
|
kind: 'endpoint-handle',
|
|
@@ -271,21 +285,3 @@ function wallDimensionDatumPolicy(reference) {
|
|
|
271
285
|
return 'wall-face';
|
|
272
286
|
}
|
|
273
287
|
}
|
|
274
|
-
/**
|
|
275
|
-
* Doors, windows, and wall-attached items would tear if the wall bent
|
|
276
|
-
* around them, so the curve sagitta handle hides when any of those
|
|
277
|
-
* children exist. Mirrors the legacy
|
|
278
|
-
* `wallCurveHandles.hasWallChildrenBlockingCurve` check.
|
|
279
|
-
*/
|
|
280
|
-
function hasCurveBlockingChildren(children) {
|
|
281
|
-
for (const child of children) {
|
|
282
|
-
if (child.type === 'door' || child.type === 'window')
|
|
283
|
-
return true;
|
|
284
|
-
if (child.type === 'item') {
|
|
285
|
-
const attachTo = child.asset?.attachTo;
|
|
286
|
-
if (attachTo === 'wall' || attachTo === 'wall-side')
|
|
287
|
-
return true;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
return false;
|
|
291
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-shared.d.ts","sourceRoot":"","sources":["../../src/wall/move-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAKd,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAA;AAczB,wBAAgB,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,WAE3D;AAMD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAQvF;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAEzC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,aAAa,CAAA;CAC3B,GAAG,kBAAkB,EAAE,CA2CvB;
|
|
1
|
+
{"version":3,"file":"move-shared.d.ts","sourceRoot":"","sources":["../../src/wall/move-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAKd,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAA;AAczB,wBAAgB,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,WAE3D;AAMD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAQvF;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAEzC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,aAAa,CAAA;CAC3B,GAAG,kBAAkB,EAAE,CA2CvB;AA4BD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,UAiB/C;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EACpD,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC,GACzD,QAAQ,EAAE,CASZ;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC1D,SAAS,EAAE,aAAa,CAAA;IACxB,OAAO,EAAE,aAAa,CAAA;IACtB,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAoClD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,aAAa,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC1D,SAAS,EAAE,aAAa,CAAA;IACxB,OAAO,EAAE,aAAa,CAAA;IACtB,aAAa,EAAE,QAAQ,EAAE,CAAA;CAC1B,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAyCrD"}
|
package/dist/wall/move-shared.js
CHANGED
|
@@ -61,9 +61,10 @@ export function getLinkedWallSnapshots(args) {
|
|
|
61
61
|
}
|
|
62
62
|
return snapshots;
|
|
63
63
|
}
|
|
64
|
-
function wallSegmentExists(walls, start, end) {
|
|
65
|
-
return walls.some((wall) =>
|
|
66
|
-
(samePoint(wall.start,
|
|
64
|
+
function wallSegmentExists(walls, start, end, parentId) {
|
|
65
|
+
return walls.some((wall) => wall.parentId === parentId &&
|
|
66
|
+
((samePoint(wall.start, start) && samePoint(wall.end, end)) ||
|
|
67
|
+
(samePoint(wall.start, end) && samePoint(wall.end, start))));
|
|
67
68
|
}
|
|
68
69
|
// Resolve a wall slot ref (`library:`/`scene:`) to a swatch colour, or
|
|
69
70
|
// undefined when the ref is absent / dangling / colourless.
|
|
@@ -108,7 +109,7 @@ export function buildBridgeWallCreates(args) {
|
|
|
108
109
|
if (!isSegmentLongEnough(plan.originalPoint, nextPoint)) {
|
|
109
110
|
continue;
|
|
110
111
|
}
|
|
111
|
-
if (wallSegmentExists(wallsForDuplicateCheck, plan.originalPoint, nextPoint)) {
|
|
112
|
+
if (wallSegmentExists(wallsForDuplicateCheck, plan.originalPoint, nextPoint, plan.wall.parentId)) {
|
|
112
113
|
continue;
|
|
113
114
|
}
|
|
114
115
|
const { id: _id, parentId: _parentId, children: _children, ...sourceWall } = plan.wall;
|
|
@@ -124,20 +125,22 @@ export function buildBridgeWallCreates(args) {
|
|
|
124
125
|
node: bridgeWall,
|
|
125
126
|
parentId: (plan.wall.parentId ?? undefined),
|
|
126
127
|
});
|
|
127
|
-
wallsForDuplicateCheck.push(bridgeWall);
|
|
128
|
+
wallsForDuplicateCheck.push({ ...bridgeWall, parentId: plan.wall.parentId });
|
|
128
129
|
}
|
|
129
130
|
return creates;
|
|
130
131
|
}
|
|
131
132
|
export function buildBridgeWallPreviews(args) {
|
|
132
133
|
const { bridgePlans, nextStart, nextEnd, existingWalls } = args;
|
|
133
|
-
const wallsForDuplicateCheck = [
|
|
134
|
+
const wallsForDuplicateCheck = [
|
|
135
|
+
...existingWalls,
|
|
136
|
+
];
|
|
134
137
|
const previews = [];
|
|
135
138
|
for (const plan of bridgePlans) {
|
|
136
139
|
const nextPoint = plan.movedEndpoint === 'start' ? nextStart : nextEnd;
|
|
137
140
|
if (!isSegmentLongEnough(plan.originalPoint, nextPoint)) {
|
|
138
141
|
continue;
|
|
139
142
|
}
|
|
140
|
-
if (wallSegmentExists(wallsForDuplicateCheck, plan.originalPoint, nextPoint)) {
|
|
143
|
+
if (wallSegmentExists(wallsForDuplicateCheck, plan.originalPoint, nextPoint, plan.wall.parentId)) {
|
|
141
144
|
continue;
|
|
142
145
|
}
|
|
143
146
|
const { id: _id, children: _children, ...sourceWall } = plan.wall;
|
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,EAQL,KAAK,eAAe,EAOpB,KAAK,QAAQ,EAGd,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/wall/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,eAAe,EAOpB,KAAK,QAAQ,EAGd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAA2C,KAAK,GAAG,EAAa,MAAM,OAAO,CAAA;AAqDpF;;;;;;;;;;GAUG;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;CACV,GAAG,MAAM,GAAG,IAAI,CA+DhB;AAqCD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,eAoCtB,CAAA"}
|
package/dist/wall/paint.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getEffectiveWallSurfaceMaterial, getWallBandSlotId, getWallFaceBandConfig, getWallFaceBandForHeight, getWallSurfaceSideFromBandSlot, parseMaterialRef, sceneRegistry, useScene, WALL_SURFACE_SLOT_DEFAULTS, } from '@pascal-app/core';
|
|
2
|
+
import { setSurfaceRaycastLayers } from '@pascal-app/viewer';
|
|
2
3
|
import { Raycaster } from 'three';
|
|
3
4
|
import { buildSlotPreviewMaterial, createSlotPaintCapability, previewSlotByUserData, } from '../shared/slot-paint';
|
|
4
5
|
import { resolveWallOpeningCeiling } from '../shared/wall-opening-ceiling';
|
|
@@ -20,6 +21,7 @@ const WALL_INDEX_SLOT = new Map(Object.entries(WALL_ARRAY_SLOT_INDEX).map(([slot
|
|
|
20
21
|
slotId,
|
|
21
22
|
]));
|
|
22
23
|
const wallSlotRaycaster = new Raycaster();
|
|
24
|
+
setSurfaceRaycastLayers(wallSlotRaycaster.layers);
|
|
23
25
|
function resolveSideFromMaterialIndex(materialIndex) {
|
|
24
26
|
const slotId = materialIndex === null ? undefined : WALL_INDEX_SLOT.get(materialIndex);
|
|
25
27
|
if (slotId)
|
package/dist/wall/panel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/wall/panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/wall/panel.tsx"],"names":[],"mappings":"AA0FA,MAAM,CAAC,OAAO,UAAU,SAAS,uCA8ThC"}
|
package/dist/wall/panel.js
CHANGED
|
@@ -6,6 +6,7 @@ import { useViewer } from '@pascal-app/viewer';
|
|
|
6
6
|
import { Spline } from 'lucide-react';
|
|
7
7
|
import { useCallback, useMemo, useRef } from 'react';
|
|
8
8
|
import { resolveWallOpeningCeiling } from '../shared/wall-opening-ceiling';
|
|
9
|
+
import { hasWallCurveBlockingChildren } from './curve-eligibility';
|
|
9
10
|
/**
|
|
10
11
|
* Base half of the plane-bound repair: a stamped draft offset goes, and a
|
|
11
12
|
* ground host is dropped unless sculpted terrain actually supports it — a
|
|
@@ -63,22 +64,14 @@ export default function WallPanel() {
|
|
|
63
64
|
return { ...sceneNode, ...liveOverride };
|
|
64
65
|
}, [sceneNode, liveOverride]);
|
|
65
66
|
// Boolean selector — re-renders only when this specific wall's child
|
|
66
|
-
// composition crosses the "has
|
|
67
|
+
// composition crosses the "has an incompatible hosted child" threshold.
|
|
67
68
|
const hasWallChildrenBlockingCurve = useScene((s) => {
|
|
68
69
|
if (!node)
|
|
69
70
|
return false;
|
|
70
|
-
return (node.children ?? []).
|
|
71
|
+
return hasWallCurveBlockingChildren((node.children ?? []).flatMap((childId) => {
|
|
71
72
|
const child = s.nodes[childId];
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (child.type === 'door' || child.type === 'window')
|
|
75
|
-
return true;
|
|
76
|
-
if (child.type === 'item') {
|
|
77
|
-
const attachTo = child.asset?.attachTo;
|
|
78
|
-
return attachTo === 'wall' || attachTo === 'wall-side';
|
|
79
|
-
}
|
|
80
|
-
return false;
|
|
81
|
-
});
|
|
73
|
+
return child ? [child] : [];
|
|
74
|
+
}));
|
|
82
75
|
});
|
|
83
76
|
// Existing plane-bound walls have no stored height. Resolve their current
|
|
84
77
|
// body height for display and materialize it if the user edits height or
|
|
@@ -181,17 +174,17 @@ export default function WallPanel() {
|
|
|
181
174
|
const skirting = { ...WALL_SKIRTING_DEFAULT, ...(node.skirting ?? {}) };
|
|
182
175
|
const crown = { ...WALL_CROWN_DEFAULT, ...(node.crown ?? {}) };
|
|
183
176
|
const chairRail = { ...WALL_CHAIR_RAIL_DEFAULT, ...(node.chairRail ?? {}) };
|
|
184
|
-
return (_jsxs(PanelWrapper, { icon: "/icons/wall.webp", onClose: handleClose, title: node.name || 'Wall', width: 280, children: [_jsxs(PanelSection, { title: "Dimensions", children: [_jsx(SliderControl, { label: "Length", max: metersToLinearUnit(
|
|
177
|
+
return (_jsxs(PanelWrapper, { icon: "/icons/wall.webp", onClose: handleClose, title: node.name || 'Wall', width: 280, children: [_jsxs(PanelSection, { title: "Dimensions", children: [_jsx(SliderControl, { label: "Length", max: metersToLinearUnit(1000, unit), min: metersToLinearUnit(0.1, unit), onChange: (value) => handleUpdateLength(linearControlValueToMeters(value, unit, { maxMeters: 1000, minMeters: 0.1 })), precision: 2, step: unit === 'imperial' ? 0.1 : 0.01, unit: unitLabel, value: displayLength }), _jsx("div", { className: "px-1 font-medium text-[10px] text-muted-foreground/80 uppercase tracking-wider", children: "Top" }), _jsx(SegmentedControl, { onChange: handleTopModeChange, options: [
|
|
185
178
|
{ label: 'Follows level', value: 'storey' },
|
|
186
179
|
{ label: 'Custom height', value: 'custom' },
|
|
187
|
-
], value: isPlaneBound ? 'storey' : 'custom' }), isPlaneBound ? (_jsxs("div", { className: "px-1 text-[11px] text-muted-foreground", children: ["Currently ", formatLinearMeasurement(height, unit)] })) : (_jsx(SliderControl, { label: "Height", max: metersToLinearUnit(
|
|
188
|
-
height: linearControlValueToMeters(v, unit, { maxMeters:
|
|
180
|
+
], value: isPlaneBound ? 'storey' : 'custom' }), isPlaneBound ? (_jsxs("div", { className: "px-1 text-[11px] text-muted-foreground", children: ["Currently ", formatLinearMeasurement(height, unit)] })) : (_jsx(SliderControl, { label: "Height", max: metersToLinearUnit(1000, unit), min: metersToLinearUnit(0.1, unit), onChange: (v) => handleUpdate({
|
|
181
|
+
height: linearControlValueToMeters(v, unit, { maxMeters: 1000, minMeters: 0.1 }),
|
|
189
182
|
}), precision: 2, step: 0.1, unit: unitLabel, value: Math.round(displayHeight * 100) / 100 })), _jsx("div", { className: "px-1 font-medium text-[10px] text-muted-foreground/80 uppercase tracking-wider", children: "Bottom" }), _jsx(SegmentedControl, { onChange: handleInfillChange, options: [
|
|
190
183
|
{ label: 'Auto', value: 'auto' },
|
|
191
184
|
{ label: 'Fill to terrain', value: 'terrain' },
|
|
192
|
-
], value: followsTerrain ? 'terrain' : 'auto' }), followsTerrain && (_jsx("div", { className: "px-1 text-[11px] text-muted-foreground", children: "Extends downward to meet the terrain. Height and top stay unchanged." })), _jsx(SliderControl, { label: "Thickness", max: metersToLinearUnit(
|
|
185
|
+
], value: followsTerrain ? 'terrain' : 'auto' }), followsTerrain && (_jsx("div", { className: "px-1 text-[11px] text-muted-foreground", children: "Extends downward to meet the terrain. Height and top stay unchanged." })), _jsx(SliderControl, { label: "Thickness", max: metersToLinearUnit(1000, unit), min: metersToLinearUnit(0.05, unit), onChange: (v) => handleUpdate({
|
|
193
186
|
thickness: linearControlValueToMeters(v, unit, {
|
|
194
|
-
maxMeters:
|
|
187
|
+
maxMeters: 1000,
|
|
195
188
|
minMeters: 0.05,
|
|
196
189
|
}),
|
|
197
190
|
}), precision: 3, step: 0.01, unit: unitLabel, value: Math.round(displayThickness * 1000) / 1000 }), !hasWallChildrenBlockingCurve && (_jsx(SliderControl, { label: "Curve", max: Math.max(metersToLinearUnit(0.01, unit), displayMaxCurveOffset), min: -Math.max(metersToLinearUnit(0.01, unit), displayMaxCurveOffset), onChange: (v) => handleUpdate({
|
package/dist/wall/parametrics.js
CHANGED
|
@@ -15,10 +15,10 @@ export const wallParametrics = {
|
|
|
15
15
|
{
|
|
16
16
|
label: 'Dimensions',
|
|
17
17
|
fields: [
|
|
18
|
-
{ key: 'thickness', kind: 'number', unit: 'm', min: 0.05, max:
|
|
18
|
+
{ key: 'thickness', kind: 'number', unit: 'm', min: 0.05, max: 1000, step: 0.01 },
|
|
19
19
|
// `height` may be absent (plane-bound top); the custom panel owns the
|
|
20
20
|
// Follows storey / Custom height mode switch, so this is metadata only.
|
|
21
|
-
{ key: 'height', kind: 'number', unit: 'm', min: 1
|
|
21
|
+
{ key: 'height', kind: 'number', unit: 'm', min: 0.1, max: 1000, step: 0.05 },
|
|
22
22
|
{ key: 'curveOffset', kind: 'number', unit: 'm', min: -3, max: 3, step: 0.05 },
|
|
23
23
|
],
|
|
24
24
|
},
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Should a wall's pointer handlers swallow (early-return) this event?
|
|
3
|
+
*
|
|
4
|
+
* Hidden walls ('down' wall mode, cutaway-hidden faces, auto-mode interior
|
|
5
|
+
* partitions) keep invisible full-height collision meshes that raycast for
|
|
6
|
+
* every pointer event. #683 made them blanket pointer-TRANSPARENT so clicks
|
|
7
|
+
* reached the visible objects behind them (wall-mounted plugin device /
|
|
8
|
+
* service boxes, items). That over-corrected hover + selection: with the
|
|
9
|
+
* Bones X-ray on (walls hidden, framing rendering where the walls are),
|
|
10
|
+
* mousing over a wall highlighted and selected the furniture BEHIND it,
|
|
11
|
+
* because nothing at the wall's depth was allowed to win.
|
|
12
|
+
*
|
|
13
|
+
* The rule is NEAREST-FIRST over hits that OWN SELECTION SEMANTICS. The
|
|
14
|
+
* live event raycast recurses through the level/building wrapper groups
|
|
15
|
+
* (they carry pointer handlers), so `event.intersections` also contains
|
|
16
|
+
* passive geometry — Bones framing InstancedMeshes sit exactly at the
|
|
17
|
+
* wall's own depth (QA f2 probe6/probe7), and the wall's own render mesh
|
|
18
|
+
* rides the same list. Rank by distance alone and the hidden wall yields
|
|
19
|
+
* everywhere its overlay (or its own body) renders — i.e. always. So every
|
|
20
|
+
* hit is first classified by its nearest REGISTERED node ancestor
|
|
21
|
+
* (`selection-hit-owner.ts`):
|
|
22
|
+
*
|
|
23
|
+
* - 'self-wall' hits (own render/collision/treatment meshes) are neutral;
|
|
24
|
+
* - 'other-wall' hits never compete directly (two hidden walls must not
|
|
25
|
+
* both yield and drop the event into the room behind — delivery order
|
|
26
|
+
* gives the nearest one the event) but ANCHOR the wall-mounted test;
|
|
27
|
+
* - 'passive' hits (framing members, gizmos, the grid — no selectable-node
|
|
28
|
+
* ancestry, or a level/building wrapper as their nearest handler owner)
|
|
29
|
+
* never outrank the wall;
|
|
30
|
+
* - 'selectable' hits (furniture, devices, openings, slabs …) outrank the
|
|
31
|
+
* hidden wall when any of these hold:
|
|
32
|
+
* 1. HOSTED by this wall (its own doors / windows / wall-mounted
|
|
33
|
+
* children — subtree membership, so grazing angles can't inflate
|
|
34
|
+
* the depth gap past any epsilon);
|
|
35
|
+
* 2. at ~equal-or-nearer depth (`HIDDEN_WALL_SELECTION_EPSILON`
|
|
36
|
+
* tie-break: device boxes flush with / proud of / recessed into the
|
|
37
|
+
* face, items standing in front of the wall);
|
|
38
|
+
* 3. WALL-MOUNTED further down the ray — within epsilon of some other
|
|
39
|
+
* wall's hit (the #683 / night-5 D4 class: a visible receptacle on
|
|
40
|
+
* a wall two meters BEHIND an interposed hidden wall still wins —
|
|
41
|
+
* the interposed wall falls through, like the #694 MOVE gate).
|
|
42
|
+
*
|
|
43
|
+
* Free-standing selectables clearly behind the wall (a sofa mid-room) no
|
|
44
|
+
* longer outrank it: the wall in front highlights, which is what the ray
|
|
45
|
+
* visually strikes when the Bones framing renders there. Trade-off
|
|
46
|
+
* (deliberate, host-side only — no plugin presence flag): in a plain manual
|
|
47
|
+
* 'down' mode with NO overlay rendering at the wall, that wall strip is
|
|
48
|
+
* hover/selectable even though it draws nothing.
|
|
49
|
+
*
|
|
50
|
+
* Two pre-existing exceptions keep ALL events flowing unconditionally:
|
|
51
|
+
*
|
|
52
|
+
* - DELETE hover mode: hidden walls must stay hover-targetable for the
|
|
53
|
+
* deleteInvisible highlight flow.
|
|
54
|
+
* - A live hidden-wall pointer HOLD (`holdHiddenWallPointerEvents`, core):
|
|
55
|
+
* the door / window move + place tools drive their cursor entirely from
|
|
56
|
+
* `wall:enter` / `wall:move` / `wall:click`, so while one is active the
|
|
57
|
+
* hidden wall must keep raycasting or the opening detaches into the floor
|
|
58
|
+
* free-follow (red world-axis ghost) instead of sliding along its wall.
|
|
59
|
+
* (#694's own-wall MOVE gate then filters those events downstream —
|
|
60
|
+
* this predicate never runs for held events, so the two compose.)
|
|
61
|
+
*
|
|
62
|
+
* Visible walls never suppress. Pure so the truth table is testable without
|
|
63
|
+
* an R3F rig; the renderer supplies live values per event.
|
|
64
|
+
*/
|
|
65
|
+
import type { WallRayHitOwnership } from './selection-hit-owner';
|
|
66
|
+
/**
|
|
67
|
+
* Depth tie-break for "at the wall face": in-wall boxes sit flush-to-
|
|
68
|
+
* recessed within a wall thickness (0.09–0.3 m); openings sit inside the
|
|
69
|
+
* slab. Along-ray gaps inflate by 1/cos(incidence), so this carries typical
|
|
70
|
+
* face-mounted gear through moderate grazing angles without letting a sofa
|
|
71
|
+
* a metre behind the wall win.
|
|
72
|
+
*/
|
|
73
|
+
export declare const HIDDEN_WALL_SELECTION_EPSILON = 0.35;
|
|
74
|
+
/** The wall renderer names its invisible pick mesh this (see renderer.tsx). */
|
|
75
|
+
export declare const WALL_COLLISION_MESH_NAME = "collision-mesh";
|
|
76
|
+
/** One raycast hit, reduced to what the yield rule needs. */
|
|
77
|
+
export type WallRayHit = {
|
|
78
|
+
/** Distance along the ray, in meters (three.js Intersection.distance). */
|
|
79
|
+
distance: number;
|
|
80
|
+
/** Who owns the hit — see `selection-hit-owner.ts`. */
|
|
81
|
+
ownership: WallRayHitOwnership;
|
|
82
|
+
/** True when a 'selectable' hit lives inside THIS wall's rendered subtree. */
|
|
83
|
+
hostedByThisWall: boolean;
|
|
84
|
+
};
|
|
85
|
+
/** The pointer ray as seen from one hidden wall's collision-mesh hit. */
|
|
86
|
+
export type WallSelectionRay = {
|
|
87
|
+
/** Distance of this wall's own collision-mesh hit. */
|
|
88
|
+
wallHitDistance: number;
|
|
89
|
+
/** Every other hit on the same ray (the delivered hit itself excluded). */
|
|
90
|
+
otherHits: ReadonlyArray<WallRayHit>;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Does any other hit on the ray outrank this hidden wall for hover /
|
|
94
|
+
* selection? True → the wall yields the event (pointer-transparent).
|
|
95
|
+
*/
|
|
96
|
+
export declare const hiddenWallOutrankedOnRay: (ray: WallSelectionRay, epsilon?: number) => boolean;
|
|
97
|
+
/** Minimal structural shapes so extraction is testable without three.js. */
|
|
98
|
+
export type WallRayObjectLike = {
|
|
99
|
+
name?: string;
|
|
100
|
+
parent?: WallRayObjectLike | null;
|
|
101
|
+
};
|
|
102
|
+
export type WallRayIntersectionLike = {
|
|
103
|
+
distance: number;
|
|
104
|
+
object: WallRayObjectLike;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Reduce a live R3F pointer event (Intersection & { intersections }) to the
|
|
108
|
+
* `WallSelectionRay` the yield rule consumes. `wallRoot` is the wall's
|
|
109
|
+
* registered outer mesh — its subtree hosts the collision mesh, treatments,
|
|
110
|
+
* and the hosted door / window / item renderers. `classify` resolves each
|
|
111
|
+
* hit's owner (`createWallRayHitClassifier(node.id)` in the renderer).
|
|
112
|
+
* Returns undefined when the event carries no usable ray data (synthetic
|
|
113
|
+
* replays); the caller then falls back to full transparency, #683's
|
|
114
|
+
* original behavior.
|
|
115
|
+
*/
|
|
116
|
+
export declare const extractWallSelectionRay: (event: unknown, wallRoot: object | null, classify: (object: WallRayObjectLike) => WallRayHitOwnership) => WallSelectionRay | undefined;
|
|
117
|
+
export declare const wallPointerEventsSuppressed: ({ wallHidden, hoverHighlightMode, hiddenWallHoldActive, selectionRay, }: {
|
|
118
|
+
wallHidden: boolean;
|
|
119
|
+
hoverHighlightMode: string | null | undefined;
|
|
120
|
+
hiddenWallHoldActive: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* The pointer ray context for hover/selection events. Omitted or
|
|
123
|
+
* undefined → the hidden wall stays fully transparent (#683 fallback for
|
|
124
|
+
* events without intersection data).
|
|
125
|
+
*/
|
|
126
|
+
selectionRay?: WallSelectionRay;
|
|
127
|
+
}) => boolean;
|
|
128
|
+
//# sourceMappingURL=pointer-transparency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer-transparency.d.ts","sourceRoot":"","sources":["../../src/wall/pointer-transparency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAA;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,mBAAmB,CAAA;AAExD,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG;IACvB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB,uDAAuD;IACvD,SAAS,EAAE,mBAAmB,CAAA;IAC9B,8EAA8E;IAC9E,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAA;IACvB,2EAA2E;IAC3E,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CACrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,KAAK,gBAAgB,EACrB,UAAS,MAAsC,KAC9C,OAYF,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAClC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAYD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,OAAO,EACd,UAAU,MAAM,GAAG,IAAI,EACvB,UAAU,CAAC,MAAM,EAAE,iBAAiB,KAAK,mBAAmB,KAC3D,gBAAgB,GAAG,SAsBrB,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,yEAKzC;IACD,UAAU,EAAE,OAAO,CAAA;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC7C,oBAAoB,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAChC,KAAG,OAMH,CAAA"}
|