@pascal-app/nodes 1.0.0-beta.5 → 1.0.1
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 +4 -4
- 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/appliance-layout.d.ts +26 -0
- package/dist/cabinet/appliance-layout.d.ts.map +1 -0
- package/dist/cabinet/appliance-layout.js +52 -0
- 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/countertop-layout.d.ts +173 -0
- package/dist/cabinet/countertop-layout.d.ts.map +1 -0
- package/dist/cabinet/countertop-layout.js +80 -0
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +414 -61
- package/dist/cabinet/floorplan-move.d.ts.map +1 -1
- package/dist/cabinet/floorplan-move.js +91 -22
- package/dist/cabinet/geometry/cooktop.d.ts.map +1 -1
- package/dist/cabinet/geometry/cooktop.js +2 -2
- 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 +28 -71
- package/dist/cabinet/geometry/sink.d.ts +2 -12
- package/dist/cabinet/geometry/sink.d.ts.map +1 -1
- package/dist/cabinet/geometry/sink.js +8 -39
- package/dist/cabinet/geometry.d.ts.map +1 -1
- package/dist/cabinet/geometry.js +63 -1
- package/dist/cabinet/hosted-resize.d.ts +8 -0
- package/dist/cabinet/hosted-resize.d.ts.map +1 -0
- package/dist/cabinet/hosted-resize.js +158 -0
- 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 +98 -5
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +430 -37
- package/dist/cabinet/run-ops.d.ts +204 -12
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-ops.js +523 -36
- 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 +294 -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/surfaces.d.ts +4 -0
- package/dist/cabinet/surfaces.d.ts.map +1 -0
- package/dist/cabinet/surfaces.js +101 -0
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +615 -91
- package/dist/cabinet/tree-structure.d.ts.map +1 -1
- package/dist/cabinet/tree-structure.js +10 -9
- 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 +8 -2
- package/dist/ceiling/floorplan-affordances.d.ts +12 -12
- 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 +9 -9
- 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 +12 -12
- 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-position-section.js +2 -2
- 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 +49 -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 +38 -0
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +306 -677
- 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/inspector-editors.js +1 -1
- 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/imported-mesh/definition.d.ts +5 -0
- package/dist/imported-mesh/definition.d.ts.map +1 -0
- package/dist/imported-mesh/definition.js +38 -0
- package/dist/imported-mesh/floorplan.d.ts +4 -0
- package/dist/imported-mesh/floorplan.d.ts.map +1 -0
- package/dist/imported-mesh/floorplan.js +34 -0
- package/dist/imported-mesh/geometry.d.ts +5 -0
- package/dist/imported-mesh/geometry.d.ts.map +1 -0
- package/dist/imported-mesh/geometry.js +34 -0
- package/dist/imported-mesh/index.d.ts +4 -0
- package/dist/imported-mesh/index.d.ts.map +1 -0
- package/dist/imported-mesh/index.js +3 -0
- package/dist/imported-mesh/schema.d.ts +2 -0
- package/dist/imported-mesh/schema.d.ts.map +1 -0
- package/dist/imported-mesh/schema.js +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +10 -2
- package/dist/item/floorplan-move.d.ts +9 -1
- package/dist/item/floorplan-move.d.ts.map +1 -1
- package/dist/item/floorplan-move.js +74 -2
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +33 -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 +15 -3
- package/dist/item/panel.js +1 -1
- 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 +49 -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/procedural-item/definition.d.ts +4 -0
- package/dist/procedural-item/definition.d.ts.map +1 -0
- package/dist/procedural-item/definition.js +254 -0
- package/dist/procedural-item/geometry.d.ts +31 -0
- package/dist/procedural-item/geometry.d.ts.map +1 -0
- package/dist/procedural-item/geometry.js +88 -0
- package/dist/procedural-item/index.d.ts +3 -0
- package/dist/procedural-item/index.d.ts.map +1 -0
- package/dist/procedural-item/index.js +2 -0
- package/dist/procedural-item/move-session.d.ts +15 -0
- package/dist/procedural-item/move-session.d.ts.map +1 -0
- package/dist/procedural-item/move-session.js +197 -0
- package/dist/procedural-item/move-tool.d.ts +5 -0
- package/dist/procedural-item/move-tool.d.ts.map +1 -0
- package/dist/procedural-item/move-tool.js +193 -0
- package/dist/procedural-item/renderer.d.ts +5 -0
- package/dist/procedural-item/renderer.d.ts.map +1 -0
- package/dist/procedural-item/renderer.js +66 -0
- package/dist/ridge-vent/definition.js +1 -1
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +4 -4
- 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 +26 -25
- 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 +12 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -0
- package/dist/shared/automatic-run-end-cap.js +169 -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 +117 -0
- package/dist/shared/distribution-run-tool.d.ts.map +1 -0
- package/dist/shared/distribution-run-tool.js +986 -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/panel-fields.d.ts +15 -0
- package/dist/shared/panel-fields.d.ts.map +1 -0
- package/dist/shared/panel-fields.js +31 -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/resting-surface-plan.d.ts +3 -0
- package/dist/shared/resting-surface-plan.d.ts.map +1 -0
- package/dist/shared/resting-surface-plan.js +28 -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/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +2 -1
- package/dist/shelf/floorplan-affordances.d.ts.map +1 -1
- package/dist/shelf/floorplan-affordances.js +5 -3
- package/dist/shelf/floorplan-move.d.ts.map +1 -1
- package/dist/shelf/floorplan-move.js +3 -2
- package/dist/shelf/geometry.d.ts.map +1 -1
- package/dist/shelf/geometry.js +2 -10
- 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 +6 -6
- 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 +2 -2
- package/dist/solar-panel/parametrics.js +2 -2
- package/dist/spawn/panel.js +1 -1
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +23 -16
- 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 +45 -6
- 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/unit/definition.d.ts +10 -0
- package/dist/unit/definition.d.ts.map +1 -0
- package/dist/unit/definition.js +38 -0
- package/dist/unit/index.d.ts +2 -0
- package/dist/unit/index.d.ts.map +1 -0
- package/dist/unit/index.js +1 -0
- package/dist/unit/parametrics.d.ts +3 -0
- package/dist/unit/parametrics.d.ts.map +1 -0
- package/dist/unit/parametrics.js +4 -0
- package/dist/unit/schema.d.ts +2 -0
- package/dist/unit/schema.d.ts.map +1 -0
- package/dist/unit/schema.js +1 -0
- package/dist/unit/unit-panel.d.ts +5 -0
- package/dist/unit/unit-panel.d.ts.map +1 -0
- package/dist/unit/unit-panel.js +61 -0
- 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 +8 -6
- 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/definition.d.ts.map +1 -1
- package/dist/zone/definition.js +7 -1
- package/dist/zone/floorplan-affordances.d.ts +12 -12
- package/dist/zone/floorplan.d.ts +1 -3
- package/dist/zone/floorplan.d.ts.map +1 -1
- package/dist/zone/floorplan.js +43 -28
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +33 -29
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +20 -6
- package/dist/zone/unit-membership.d.ts +12 -0
- package/dist/zone/unit-membership.d.ts.map +1 -0
- package/dist/zone/unit-membership.js +22 -0
- package/package.json +16 -8
- 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,18 +1,21 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { analyzePortConnectivity, PipeSegmentNode, pauseSceneHistory, resolveConnectivityUpdates, resumeSceneHistory, sceneRegistry, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
4
|
-
import { DimensionPill, swallowNextClick, triggerSFX, useEditor } from '@pascal-app/editor';
|
|
4
|
+
import { clearPlacementSurface, DimensionPill, isGridSnapActive, swallowNextClick, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
5
5
|
import { useViewer } from '@pascal-app/viewer';
|
|
6
6
|
import { Html } from '@react-three/drei';
|
|
7
7
|
import { createPortal, useFrame, useThree } from '@react-three/fiber';
|
|
8
8
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
9
9
|
import { Plane, Raycaster, Vector2, Vector3 } from 'three';
|
|
10
|
+
import { planRunEndCapFollowUpdates } from '../shared/automatic-run-end-cap';
|
|
10
11
|
import { detectFittingEndpoint, planFittingEndpointReaim, } from '../shared/fitting-endpoint-reaim';
|
|
11
12
|
import { PipeFittingGhost, PipeSegmentGhost } from '../shared/mep-ghost';
|
|
12
13
|
import { planPipeRunTranslationOffsets } from '../shared/pipe-run-translation-offset';
|
|
13
14
|
import { planVerticalOffsets } from '../shared/pipe-vertical-offset';
|
|
14
15
|
import { collectScenePorts, DWV_PORT_SYSTEMS, findNearestPortXZ } from '../shared/ports';
|
|
15
|
-
import { HandleCube, MoveChevron } from '../shared/selection-handles';
|
|
16
|
+
import { ContinuePlusHandle, HandleCube, MoveChevron } from '../shared/selection-handles';
|
|
17
|
+
import { refreshWallRunAttachment } from '../shared/wall-run-move';
|
|
18
|
+
import { activatePipeContinuation, pipeContinuationHandlePlan, } from './continuation';
|
|
16
19
|
/** Port-snap radius for dragged run endpoints (meters, XZ). */
|
|
17
20
|
const PORT_SNAP_RADIUS_M = 0.4;
|
|
18
21
|
const CENTER_ARROW_GAP = 0.28;
|
|
@@ -48,11 +51,10 @@ function pipeRadiusM(pipe) {
|
|
|
48
51
|
* - **Alt** detaches: the joint breaks for this drag — the elbow does NOT
|
|
49
52
|
* re-aim and mated fittings / runs do NOT follow; the endpoint moves on its
|
|
50
53
|
* own (port re-mate still allowed so it can be reattached elsewhere).
|
|
51
|
-
* -
|
|
54
|
+
* - Snapping follows the active editor snapping mode.
|
|
52
55
|
*
|
|
53
|
-
* History
|
|
54
|
-
*
|
|
55
|
-
* reverted, history resumed, and the final path applied as one tracked
|
|
56
|
+
* History is paused during the drag while live overrides drive the preview.
|
|
57
|
+
* On release, history resumes and the final path is applied as one tracked
|
|
56
58
|
* change.
|
|
57
59
|
*/
|
|
58
60
|
const PipeSegmentSelectionAffordance = () => {
|
|
@@ -90,6 +92,8 @@ const PipeSegmentSelectionAffordance = () => {
|
|
|
90
92
|
};
|
|
91
93
|
const PipePointHandles = ({ pipe, target }) => {
|
|
92
94
|
const { camera, gl } = useThree();
|
|
95
|
+
const liveOverride = useLiveNodeOverrides((state) => state.overrides.get(pipe.id));
|
|
96
|
+
const displayPipe = liveOverride ? { ...pipe, ...liveOverride } : pipe;
|
|
93
97
|
const outerRef = useRef(null);
|
|
94
98
|
useFrame(() => {
|
|
95
99
|
const outer = outerRef.current;
|
|
@@ -190,21 +194,54 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
190
194
|
// collar and the elbow swings to fit. Otherwise: the dragged point moves
|
|
191
195
|
// and any mated fittings / runs translate via connectivity.
|
|
192
196
|
const buildDragBatch = (drag, next, detached) => {
|
|
197
|
+
const wall = pipe.wallAttachment
|
|
198
|
+
? useScene.getState().nodes[pipe.wallAttachment.wallId]
|
|
199
|
+
: undefined;
|
|
200
|
+
const attachmentFor = (path) => pipe.wallAttachment && wall?.type === 'wall'
|
|
201
|
+
? refreshWallRunAttachment(path, pipe.wallAttachment, wall)
|
|
202
|
+
: pipe.wallAttachment;
|
|
203
|
+
const withEndCapFollow = (path, updates) => {
|
|
204
|
+
if (drag.index !== 0 && drag.index !== drag.initialPath.length - 1)
|
|
205
|
+
return updates;
|
|
206
|
+
const endpoint = drag.index === 0 ? 'start' : 'end';
|
|
207
|
+
const nextPipe = { ...pipe, path };
|
|
208
|
+
const capUpdates = planRunEndCapFollowUpdates(pipe, nextPipe, endpoint, useScene.getState().nodes);
|
|
209
|
+
const capIds = new Set(capUpdates.map((update) => update.id));
|
|
210
|
+
return [...updates.filter((update) => !capIds.has(update.id)), ...capUpdates];
|
|
211
|
+
};
|
|
193
212
|
if (!detached && drag.fittingEndpoint) {
|
|
194
213
|
const plan = planFittingEndpointReaim(drag.fittingEndpoint, drag.index, next);
|
|
195
214
|
// Out of the elbow's buildable turn range — hold this frame.
|
|
196
215
|
if (!plan)
|
|
197
216
|
return null;
|
|
198
|
-
return [
|
|
199
|
-
{
|
|
217
|
+
return withEndCapFollow(plan.path, [
|
|
218
|
+
{
|
|
219
|
+
id: pipe.id,
|
|
220
|
+
data: { path: plan.path, wallAttachment: attachmentFor(plan.path) },
|
|
221
|
+
},
|
|
200
222
|
{ id: plan.fittingUpdate.id, data: plan.fittingUpdate.data },
|
|
201
|
-
|
|
223
|
+
...(drag.jointPartner
|
|
224
|
+
? [
|
|
225
|
+
{
|
|
226
|
+
id: drag.jointPartner.id,
|
|
227
|
+
data: {
|
|
228
|
+
path: drag.jointPartner.startPath.map((p, i) => i === (drag.index === 0 ? drag.jointPartner.startPath.length - 1 : 0)
|
|
229
|
+
? drag.index === 0
|
|
230
|
+
? plan.path[plan.path.length - 1]
|
|
231
|
+
: plan.path[0]
|
|
232
|
+
: p),
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
]
|
|
236
|
+
: []),
|
|
237
|
+
]);
|
|
202
238
|
}
|
|
203
|
-
const path =
|
|
204
|
-
|
|
205
|
-
{ id: pipe.id, data: { path } },
|
|
239
|
+
const path = drag.initialPath.map((p, i) => (i === drag.index ? next : p));
|
|
240
|
+
const updates = [
|
|
241
|
+
{ id: pipe.id, data: { path, wallAttachment: attachmentFor(path) } },
|
|
206
242
|
...(detached ? [] : connectivityUpdatesForPath(drag.connectivity, path)),
|
|
207
243
|
];
|
|
244
|
+
return detached ? updates : withEndCapFollow(path, updates);
|
|
208
245
|
};
|
|
209
246
|
/** World-space position of a local path point. */
|
|
210
247
|
const toWorld = (p) => target.localToWorld(new Vector3(p[0], p[1], p[2]));
|
|
@@ -228,11 +265,32 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
228
265
|
const startPoint = initialPath[index];
|
|
229
266
|
const connectivity = analyzePortConnectivity(pipe, useScene.getState().nodes);
|
|
230
267
|
pauseSceneHistory(useScene);
|
|
268
|
+
const livePreviewIds = new Set();
|
|
269
|
+
const publishLivePreview = (updates) => {
|
|
270
|
+
const scene = useScene.getState();
|
|
271
|
+
const entries = updates
|
|
272
|
+
.filter((update) => scene.nodes[update.id])
|
|
273
|
+
.map((update) => [update.id, update.data]);
|
|
274
|
+
useLiveNodeOverrides.getState().setMany(entries);
|
|
275
|
+
for (const [id] of entries) {
|
|
276
|
+
livePreviewIds.add(id);
|
|
277
|
+
scene.markDirty(id);
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
const clearLivePreview = () => {
|
|
281
|
+
const scene = useScene.getState();
|
|
282
|
+
const overrides = useLiveNodeOverrides.getState();
|
|
283
|
+
for (const id of livePreviewIds) {
|
|
284
|
+
overrides.clear(id);
|
|
285
|
+
if (scene.nodes[id])
|
|
286
|
+
scene.markDirty(id);
|
|
287
|
+
}
|
|
288
|
+
};
|
|
231
289
|
useViewer.getState().setInputDragging(true);
|
|
232
290
|
document.body.style.cursor = kind.axis === 'y' ? 'ns-resize' : 'grabbing';
|
|
233
291
|
setDraggingIndex(index);
|
|
234
292
|
const isEndpoint = index === 0 || index === initialPath.length - 1;
|
|
235
|
-
const swings = kind.axis === 'y' ? kind.along !== true : !kind.along;
|
|
293
|
+
const swings = kind.axis === 'y' ? kind.along !== true : kind.axis === 'horizontal' && !kind.along;
|
|
236
294
|
const neighborIndex = index === 0 ? 1 : index === initialPath.length - 1 ? index - 1 : null;
|
|
237
295
|
const pivot = neighborIndex !== null ? initialPath[neighborIndex] : null;
|
|
238
296
|
const radius = pivot
|
|
@@ -247,17 +305,20 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
247
305
|
const fittingEndpoint = isEndpoint
|
|
248
306
|
? detectFittingEndpoint('pipe-segment', initialPath, index, useScene.getState().nodes)
|
|
249
307
|
: null;
|
|
308
|
+
const partnerId = fittingEndpoint?.fitting.metadata?.altJoint
|
|
309
|
+
? fittingEndpoint.fitting.metadata.partnerIds?.find((id) => id !== pipe.id)
|
|
310
|
+
: undefined;
|
|
311
|
+
const partner = partnerId ? useScene.getState().nodes[partnerId] : undefined;
|
|
250
312
|
const onMove = (event) => {
|
|
251
313
|
const drag = dragRef.current;
|
|
252
314
|
if (!drag)
|
|
253
315
|
return;
|
|
254
|
-
//
|
|
255
|
-
|
|
256
|
-
const step = event.shiftKey ? 0 : useEditor.getState().gridSnapStep;
|
|
316
|
+
// Follow the active snapping mode; Shift cycles that mode globally.
|
|
317
|
+
const step = isGridSnapActive() ? useEditor.getState().gridSnapStep : 0;
|
|
257
318
|
// Alt = detach: break the joint for this drag — the endpoint moves on
|
|
258
319
|
// its own, no elbow re-aim and no connectivity follow (it can still
|
|
259
320
|
// port-snap to re-mate elsewhere). Mirrors the wall corner drag.
|
|
260
|
-
const detached = event.altKey;
|
|
321
|
+
const detached = event.altKey && !drag.jointPartner;
|
|
261
322
|
let next = null;
|
|
262
323
|
if (canSwing && pivot) {
|
|
263
324
|
const aim = kind.axis === 'y'
|
|
@@ -289,7 +350,10 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
289
350
|
if (!next)
|
|
290
351
|
return;
|
|
291
352
|
if (isEndpoint && (detached || !drag.fittingEndpoint)) {
|
|
292
|
-
const port = findNearestPortXZ([next[0], next[1], next[2]], collectScenePorts({
|
|
353
|
+
const port = findNearestPortXZ([next[0], next[1], next[2]], collectScenePorts({
|
|
354
|
+
excludeNodeId: pipe.id,
|
|
355
|
+
systems: DWV_PORT_SYSTEMS,
|
|
356
|
+
}), PORT_SNAP_RADIUS_M);
|
|
293
357
|
if (port)
|
|
294
358
|
next = [port.position[0], port.position[1], port.position[2]];
|
|
295
359
|
}
|
|
@@ -302,7 +366,7 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
302
366
|
drag.detached = detached;
|
|
303
367
|
if (step > 0)
|
|
304
368
|
triggerSFX('sfx:grid-snap');
|
|
305
|
-
|
|
369
|
+
publishLivePreview(batch);
|
|
306
370
|
};
|
|
307
371
|
const onUp = () => {
|
|
308
372
|
const drag = dragRef.current;
|
|
@@ -312,30 +376,15 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
312
376
|
drag.cleanup();
|
|
313
377
|
dragRef.current = null;
|
|
314
378
|
setDraggingIndex(null);
|
|
315
|
-
|
|
316
|
-
//
|
|
379
|
+
clearLivePreview();
|
|
380
|
+
// Resume history and apply the final batch as one tracked change. The
|
|
381
|
+
// final batch is built the same way as
|
|
317
382
|
// each live frame (elbow re-aim, rigid connectivity follow, or — when
|
|
318
383
|
// detached — just the pipe path).
|
|
319
384
|
const detached = drag.detached;
|
|
385
|
+
const moved = drag.current.some((v, axis) => v !== drag.initialPath[drag.index][axis]);
|
|
320
386
|
const finalBatch = buildDragBatch(drag, drag.current, detached);
|
|
321
|
-
// Revert the run AND whatever the drag carried to their pre-drag state
|
|
322
|
-
// while paused so history captures a clean before→after delta. When
|
|
323
|
-
// detached nothing else moved, so only the run needs reverting.
|
|
324
|
-
const revertUpdates = detached
|
|
325
|
-
? []
|
|
326
|
-
: drag.fittingEndpoint
|
|
327
|
-
? [drag.fittingEndpoint.revert]
|
|
328
|
-
: (drag.connectivity?.connections ?? []).map((conn) => conn.kind === 'rigid-node'
|
|
329
|
-
? { id: conn.nodeId, data: { position: conn.startPosition } }
|
|
330
|
-
: { id: conn.nodeId, data: { path: conn.startPath } });
|
|
331
|
-
useScene
|
|
332
|
-
.getState()
|
|
333
|
-
.updateNodes([
|
|
334
|
-
{ id: pipe.id, data: { path: drag.initialPath } },
|
|
335
|
-
...revertUpdates.filter((u) => useScene.getState().nodes[u.id]),
|
|
336
|
-
]);
|
|
337
387
|
resumeSceneHistory(useScene);
|
|
338
|
-
const moved = drag.current.some((v, axis) => v !== drag.initialPath[drag.index][axis]);
|
|
339
388
|
if (moved && finalBatch) {
|
|
340
389
|
useScene.getState().updateNodes(finalBatch);
|
|
341
390
|
}
|
|
@@ -354,6 +403,9 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
354
403
|
cleanup,
|
|
355
404
|
connectivity,
|
|
356
405
|
fittingEndpoint,
|
|
406
|
+
jointPartner: partner?.type === 'pipe-segment'
|
|
407
|
+
? { id: partner.id, startPath: partner.path.map((p) => [...p]) }
|
|
408
|
+
: undefined,
|
|
357
409
|
detached: false,
|
|
358
410
|
};
|
|
359
411
|
window.addEventListener('pointermove', onMove);
|
|
@@ -366,14 +418,19 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
366
418
|
const initialPath = pipe.path.map((p) => [...p]);
|
|
367
419
|
const center = runAxisAndCenter(pipe)?.center ?? initialPath[0];
|
|
368
420
|
const anchorWorld = toWorld(center);
|
|
369
|
-
const profile = {
|
|
370
|
-
|
|
421
|
+
const profile = {
|
|
422
|
+
diameter: pipe.diameter,
|
|
423
|
+
pipeMaterial: pipe.pipeMaterial,
|
|
424
|
+
};
|
|
425
|
+
const nodesById = {
|
|
426
|
+
...useScene.getState().nodes,
|
|
427
|
+
};
|
|
371
428
|
const connectivity = analyzePortConnectivity(pipe, nodesById);
|
|
372
429
|
const scenePorts = collectScenePorts({
|
|
373
430
|
excludeNodeId: pipe.id,
|
|
374
431
|
systems: DWV_PORT_SYSTEMS,
|
|
375
432
|
});
|
|
376
|
-
const
|
|
433
|
+
const previewHiddenIds = new Set();
|
|
377
434
|
pauseSceneHistory(useScene);
|
|
378
435
|
const ensureSceneObjectsVisible = (ids) => {
|
|
379
436
|
const scene = useScene.getState();
|
|
@@ -404,29 +461,30 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
404
461
|
}
|
|
405
462
|
};
|
|
406
463
|
const clearLivePreview = () => {
|
|
464
|
+
const scene = useScene.getState();
|
|
407
465
|
const overrides = useLiveNodeOverrides.getState();
|
|
408
|
-
for (const id of livePreviewIds)
|
|
466
|
+
for (const id of livePreviewIds) {
|
|
409
467
|
overrides.clear(id);
|
|
468
|
+
if (scene.nodes[id])
|
|
469
|
+
scene.markDirty(id);
|
|
470
|
+
}
|
|
410
471
|
livePreviewIds.clear();
|
|
411
472
|
};
|
|
412
|
-
const
|
|
413
|
-
const
|
|
414
|
-
const
|
|
415
|
-
|
|
416
|
-
for (const [id, node] of previewDeletedSnapshots) {
|
|
417
|
-
if (keep.has(id))
|
|
473
|
+
const setPreviewHidden = (ids) => {
|
|
474
|
+
const next = new Set(ids);
|
|
475
|
+
for (const id of previewHiddenIds) {
|
|
476
|
+
if (next.has(id))
|
|
418
477
|
continue;
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
previewDeletedSnapshots.delete(id);
|
|
478
|
+
const object = sceneRegistry.nodes.get(id);
|
|
479
|
+
if (object)
|
|
480
|
+
object.visible = true;
|
|
481
|
+
previewHiddenIds.delete(id);
|
|
426
482
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
483
|
+
for (const id of next) {
|
|
484
|
+
const object = sceneRegistry.nodes.get(id);
|
|
485
|
+
if (object)
|
|
486
|
+
object.visible = false;
|
|
487
|
+
previewHiddenIds.add(id);
|
|
430
488
|
}
|
|
431
489
|
};
|
|
432
490
|
const sample = (clientX, clientY) => {
|
|
@@ -463,10 +521,15 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
463
521
|
const partnerReverts = () => (connectivity?.connections ?? [])
|
|
464
522
|
.map((conn) => {
|
|
465
523
|
if (conn.kind !== 'rigid-node') {
|
|
466
|
-
return {
|
|
524
|
+
return {
|
|
525
|
+
id: conn.nodeId,
|
|
526
|
+
data: { path: conn.startPath },
|
|
527
|
+
};
|
|
467
528
|
}
|
|
468
529
|
const start = nodesById[conn.nodeId];
|
|
469
|
-
const data = {
|
|
530
|
+
const data = {
|
|
531
|
+
position: conn.startPosition,
|
|
532
|
+
};
|
|
470
533
|
if (start?.rotation !== undefined)
|
|
471
534
|
data.rotation = start.rotation;
|
|
472
535
|
if (start?.angle !== undefined)
|
|
@@ -480,7 +543,7 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
480
543
|
const s = sample(event.clientX, event.clientY);
|
|
481
544
|
if (s === null)
|
|
482
545
|
return;
|
|
483
|
-
const step =
|
|
546
|
+
const step = isGridSnapActive() ? useEditor.getState().gridSnapStep : 0;
|
|
484
547
|
const next = snap(s - startSample, step);
|
|
485
548
|
if (next === delta)
|
|
486
549
|
return;
|
|
@@ -502,12 +565,7 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
502
565
|
const plan = offsetResult.plan;
|
|
503
566
|
const scene = useScene.getState();
|
|
504
567
|
const deletePreview = (plan.delete ?? []).filter((id) => scene.nodes[id]);
|
|
505
|
-
|
|
506
|
-
const node = scene.nodes[id];
|
|
507
|
-
if (node)
|
|
508
|
-
previewDeletedSnapshots.set(id, node);
|
|
509
|
-
}
|
|
510
|
-
restorePreviewDeleted(plan.delete ?? []);
|
|
568
|
+
setPreviewHidden(deletePreview);
|
|
511
569
|
const followUpdates = connectivityUpdatesForPath(connectivity, plan.followPath);
|
|
512
570
|
const updates = [
|
|
513
571
|
{ id: pipe.id, data: { path: plan.pipePath } },
|
|
@@ -515,28 +573,30 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
515
573
|
...followUpdates,
|
|
516
574
|
];
|
|
517
575
|
publishLivePreview(updates);
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
576
|
+
setVerticalGhost({
|
|
577
|
+
tint: 'valid',
|
|
578
|
+
fittings: plan.fittings,
|
|
579
|
+
risers: plan.risers,
|
|
580
|
+
});
|
|
521
581
|
}
|
|
522
582
|
else if (offsetResult?.status === 'invalid') {
|
|
523
|
-
|
|
583
|
+
setPreviewHidden([]);
|
|
524
584
|
const updates = [
|
|
525
585
|
{ id: pipe.id, data: { path: pipe.path } },
|
|
526
586
|
...partnerReverts(),
|
|
527
587
|
];
|
|
528
588
|
publishLivePreview(updates);
|
|
529
|
-
|
|
530
|
-
|
|
589
|
+
const lifted = PipeSegmentNode.parse({
|
|
590
|
+
...pipe,
|
|
591
|
+
path: shiftedPath(next),
|
|
592
|
+
});
|
|
531
593
|
setVerticalGhost({ tint: 'invalid', fittings: [], risers: [lifted] });
|
|
532
594
|
}
|
|
533
595
|
else {
|
|
534
|
-
|
|
596
|
+
setPreviewHidden([]);
|
|
535
597
|
setVerticalGhost(null);
|
|
536
598
|
const updates = batchFor(shiftedPath(next));
|
|
537
599
|
publishLivePreview(updates);
|
|
538
|
-
useScene.getState().updateNodes(updates);
|
|
539
|
-
ensureSceneObjectsVisible(updates.map((update) => update.id));
|
|
540
600
|
}
|
|
541
601
|
};
|
|
542
602
|
const onUp = () => {
|
|
@@ -545,27 +605,12 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
545
605
|
window.removeEventListener('pointerup', onUp);
|
|
546
606
|
window.removeEventListener('pointercancel', onUp);
|
|
547
607
|
useViewer.getState().setInputDragging(false);
|
|
608
|
+
clearPlacementSurface();
|
|
548
609
|
document.body.style.cursor = '';
|
|
549
610
|
setRunMoving(false);
|
|
550
611
|
setVerticalGhost(null);
|
|
551
612
|
clearLivePreview();
|
|
552
|
-
|
|
553
|
-
const restoredPreviewNodes = Array.from(previewDeletedSnapshots.values()).filter((node) => !restore.nodes[node.id]);
|
|
554
|
-
const restoreUpdates = [
|
|
555
|
-
{ id: pipe.id, data: { path: initialPath } },
|
|
556
|
-
...partnerReverts(),
|
|
557
|
-
];
|
|
558
|
-
restore.applyNodeChanges({
|
|
559
|
-
create: restoredPreviewNodes.map((node) => ({
|
|
560
|
-
node,
|
|
561
|
-
parentId: (node.parentId ?? undefined),
|
|
562
|
-
})),
|
|
563
|
-
update: restoreUpdates,
|
|
564
|
-
});
|
|
565
|
-
ensureSceneObjectsVisible([
|
|
566
|
-
...restoredPreviewNodes.map((node) => node.id),
|
|
567
|
-
...restoreUpdates.map((update) => update.id),
|
|
568
|
-
]);
|
|
613
|
+
setPreviewHidden([]);
|
|
569
614
|
resumeSceneHistory(useScene);
|
|
570
615
|
if (delta === 0)
|
|
571
616
|
return;
|
|
@@ -607,11 +652,17 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
607
652
|
if (translationPlan) {
|
|
608
653
|
const created = [...translationPlan.fittings, ...translationPlan.connectors];
|
|
609
654
|
const updates = [
|
|
610
|
-
{
|
|
655
|
+
{
|
|
656
|
+
id: pipe.id,
|
|
657
|
+
data: { path: translationPlan.pipePath },
|
|
658
|
+
},
|
|
611
659
|
...translationPlan.updates,
|
|
612
660
|
];
|
|
613
661
|
scene.applyNodeChanges({
|
|
614
|
-
create: created.map((node) => ({
|
|
662
|
+
create: created.map((node) => ({
|
|
663
|
+
node: node,
|
|
664
|
+
parentId,
|
|
665
|
+
})),
|
|
615
666
|
update: updates,
|
|
616
667
|
});
|
|
617
668
|
ensureSceneObjectsVisible([
|
|
@@ -628,19 +679,19 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
628
679
|
window.addEventListener('pointerup', onUp);
|
|
629
680
|
window.addEventListener('pointercancel', onUp);
|
|
630
681
|
};
|
|
631
|
-
const cornerArrows = useMemo(() => getCornerArrows(
|
|
632
|
-
const runCenter = useMemo(() => runAxisAndCenter(
|
|
682
|
+
const cornerArrows = useMemo(() => getCornerArrows(displayPipe), [displayPipe]);
|
|
683
|
+
const runCenter = useMemo(() => runAxisAndCenter(displayPipe)?.center ?? null, [displayPipe]);
|
|
633
684
|
const runCenterYaw = useMemo(() => {
|
|
634
|
-
const axis = runAxisAndCenter(
|
|
685
|
+
const axis = runAxisAndCenter(displayPipe);
|
|
635
686
|
if (!axis || Math.hypot(axis.dir[0], axis.dir[2]) < 1e-6)
|
|
636
687
|
return 0;
|
|
637
688
|
return Math.atan2(-axis.dir[2], axis.dir[0]);
|
|
638
|
-
}, [
|
|
689
|
+
}, [displayPipe]);
|
|
639
690
|
const centerArrows = useMemo(() => {
|
|
640
691
|
if (!runCenter)
|
|
641
692
|
return [];
|
|
642
|
-
const base = Math.max(pipeRadiusM(
|
|
643
|
-
const axis = runAxisAndCenter(
|
|
693
|
+
const base = Math.max(pipeRadiusM(displayPipe) + CENTER_ARROW_GAP, CENTER_ARROW_MIN_OFFSET);
|
|
694
|
+
const axis = runAxisAndCenter(displayPipe);
|
|
644
695
|
const t = axis && Math.hypot(axis.dir[0], axis.dir[2]) > 1e-6
|
|
645
696
|
? (() => {
|
|
646
697
|
const len = Math.hypot(axis.dir[0], axis.dir[2]);
|
|
@@ -677,19 +728,22 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
677
728
|
cursor: 'ns-resize',
|
|
678
729
|
});
|
|
679
730
|
return arrows;
|
|
680
|
-
}, [
|
|
731
|
+
}, [displayPipe, runCenter]);
|
|
681
732
|
return (_jsxs("group", { ref: outerRef, children: [verticalGhost?.fittings.map((f) => (_jsx(PipeFittingGhost, { fitting: f, tint: verticalGhost.tint }, `pipe-vghost-fit-${f.id}`))), verticalGhost?.risers.map((r) => (_jsx(PipeSegmentGhost, { pipe: r, tint: verticalGhost.tint }, `pipe-vghost-riser-${r.id}`))), draggingIndex === null &&
|
|
682
733
|
!runMoving &&
|
|
683
|
-
|
|
734
|
+
openCluster === null &&
|
|
735
|
+
['start', 'end'].map((endpoint) => (_jsx(PipeContinuationHandle, { endpoint: endpoint, pipe: displayPipe }, endpoint))), draggingIndex === null &&
|
|
736
|
+
!runMoving &&
|
|
737
|
+
displayPipe.path.map((p, i) => (_jsxs("group", { children: [_jsx(HandleCube, { active: openCluster === i, onClick: () => toggleCluster(i), position: p, rotationY: vertexYaw(displayPipe, i) }), openCluster === i &&
|
|
684
738
|
cornerArrows
|
|
685
739
|
.filter((a) => a.index === i)
|
|
686
740
|
.map((a) => (_jsx(MoveChevron, { cursor: a.cursor, onPointerDown: onHandleDown(a.index, a.kind), position: a.position, rotationY: a.rotationY, vertical: a.vertical }, a.key)))] }, `pipe-vtx${i}`))), draggingIndex === null && !runMoving && runCenter && (_jsxs("group", { children: [_jsx(HandleCube, { active: openCluster === 'center', onClick: () => toggleCluster('center'), position: runCenter, rotationY: runCenterYaw }), openCluster === 'center' &&
|
|
687
741
|
centerArrows.map((a) => (_jsx(MoveChevron, { cursor: a.cursor, onPointerDown: onRunMoveDown(a.kind), position: a.position, rotationY: a.rotationY, vertical: a.vertical }, a.key)))] })), draggingIndex !== null &&
|
|
688
|
-
|
|
742
|
+
displayPipe.path[draggingIndex] &&
|
|
689
743
|
(() => {
|
|
690
744
|
// Same pill as the draw tool: signed per-axis deltas from the
|
|
691
745
|
// drag-start position, dominant axis emphasised.
|
|
692
|
-
const point =
|
|
746
|
+
const point = displayPipe.path[draggingIndex];
|
|
693
747
|
const origin = dragRef.current?.initialPath[draggingIndex] ?? point;
|
|
694
748
|
const deltas = [point[0] - origin[0], point[1] - origin[1], point[2] - origin[2]];
|
|
695
749
|
const axes = ['x', 'y', 'z'];
|
|
@@ -702,6 +756,16 @@ const PipePointHandles = ({ pipe, target }) => {
|
|
|
702
756
|
})), primary: primary, unit: unit }) }));
|
|
703
757
|
})()] }));
|
|
704
758
|
};
|
|
759
|
+
function PipeContinuationHandle({ pipe, endpoint, }) {
|
|
760
|
+
const nodes = useScene((state) => state.nodes);
|
|
761
|
+
const plan = pipeContinuationHandlePlan(pipe, endpoint, nodes);
|
|
762
|
+
if (!plan)
|
|
763
|
+
return null;
|
|
764
|
+
return (_jsx(ContinuePlusHandle, { onActivate: () => {
|
|
765
|
+
triggerSFX('sfx:item-pick');
|
|
766
|
+
activatePipeContinuation(pipe, endpoint, plan.fittingId);
|
|
767
|
+
}, position: plan.position }));
|
|
768
|
+
}
|
|
705
769
|
function getCornerArrows(pipe) {
|
|
706
770
|
const arrows = [];
|
|
707
771
|
const base = Math.max(pipeRadiusM(pipe) + CENTER_ARROW_GAP, CENTER_ARROW_MIN_OFFSET);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type Point = readonly [number, number, number];
|
|
2
|
+
export declare function pipeGrade(start: Point, end: Point): number | null;
|
|
3
|
+
export declare function applyPipeGrade(start: Point, end: Point, grade: number): [number, number, number];
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=slope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slope.d.ts","sourceRoot":"","sources":["../../src/pipe-segment/slope.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAE9C,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAIhG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function pipeGrade(start, end) {
|
|
2
|
+
const horizontal = Math.hypot(end[0] - start[0], end[2] - start[2]);
|
|
3
|
+
return horizontal < 1e-6 ? null : (start[1] - end[1]) / horizontal;
|
|
4
|
+
}
|
|
5
|
+
export function applyPipeGrade(start, end, grade) {
|
|
6
|
+
const horizontal = Math.hypot(end[0] - start[0], end[2] - start[2]);
|
|
7
|
+
if (horizontal < 1e-6 || !Number.isFinite(grade))
|
|
8
|
+
return [...end];
|
|
9
|
+
return [end[0], start[1] - horizontal * grade, end[2]];
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/pipe-segment/tool.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/pipe-segment/tool.tsx"],"names":[],"mappings":"AA+DA,QAAA,MAAM,eAAe,0CA2bpB,CAAA;AA8BD,eAAe,eAAe,CAAA"}
|