@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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type AnyNode, type LeanToExtensionNode, type RoofSegmentTrim } from '@pascal-app/core';
|
|
2
|
+
import type { LeanToCornerSide } from './corner-joint';
|
|
3
|
+
export declare const FREESTANDING_CANOPY_JOINTS_KEY = "leanToFreestandingCanopyJoints";
|
|
4
|
+
export type CanopySide = 'positive' | 'negative';
|
|
5
|
+
export type FreestandingCanopyJoint = {
|
|
6
|
+
side: LeanToCornerSide;
|
|
7
|
+
kind: 'corner' | 'linear';
|
|
8
|
+
neighborId: string;
|
|
9
|
+
neighborSide: LeanToCornerSide;
|
|
10
|
+
innerCanopySide: CanopySide;
|
|
11
|
+
interiorAngle: number;
|
|
12
|
+
trimX: number;
|
|
13
|
+
trimZ: number;
|
|
14
|
+
gutterMitre: number;
|
|
15
|
+
sharedPostOwner: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type CanopyRoofPlaneJointLayout = {
|
|
18
|
+
centerX: number;
|
|
19
|
+
trim: RoofSegmentTrim;
|
|
20
|
+
width: number;
|
|
21
|
+
};
|
|
22
|
+
export type CanopyGutterJointLayout = {
|
|
23
|
+
joints: Partial<Record<LeanToCornerSide, FreestandingCanopyJoint & {
|
|
24
|
+
gutterMitre: number;
|
|
25
|
+
}>>;
|
|
26
|
+
maxX: number;
|
|
27
|
+
minX: number;
|
|
28
|
+
};
|
|
29
|
+
export type FreestandingCanopyJointMetadata = Partial<Record<LeanToCornerSide, Pick<FreestandingCanopyJoint, 'kind' | 'innerCanopySide' | 'trimX' | 'trimZ' | 'gutterMitre' | 'sharedPostOwner'>>>;
|
|
30
|
+
export declare function canopyCornerJointMetadata(joints: Partial<Record<LeanToCornerSide, FreestandingCanopyJoint>>): FreestandingCanopyJointMetadata;
|
|
31
|
+
export declare function readFreestandingCanopyJointMetadata(leanTo: LeanToExtensionNode): FreestandingCanopyJointMetadata;
|
|
32
|
+
export declare function resolveFreestandingCanopyJoints(leanTo: LeanToExtensionNode, nodes: Record<string, AnyNode> | undefined): Partial<Record<LeanToCornerSide, FreestandingCanopyJoint>>;
|
|
33
|
+
export declare function resolveCanopyRoofPlaneJointLayout(leanTo: LeanToExtensionNode, nodes: Record<string, AnyNode> | undefined, planeSide: CanopySide): CanopyRoofPlaneJointLayout;
|
|
34
|
+
export declare function resolveCanopyGutterJointLayout(leanTo: LeanToExtensionNode, nodes: Record<string, AnyNode> | undefined, planeSide: CanopySide): CanopyGutterJointLayout;
|
|
35
|
+
//# sourceMappingURL=canopy-joint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canopy-joint.d.ts","sourceRoot":"","sources":["../../src/lean-to-extension/canopy-joint.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,mBAAmB,EAExB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAOtD,eAAO,MAAM,8BAA8B,mCAAmC,CAAA;AAI9E,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,gBAAgB,CAAA;IAC9B,eAAe,EAAE,UAAU,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAC5F,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,OAAO,CACnD,MAAM,CACJ,gBAAgB,EAChB,IAAI,CACF,uBAAuB,EACvB,MAAM,GAAG,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,iBAAiB,CACnF,CACF,CACF,CAAA;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,GACjE,+BAA+B,CAcjC;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,mBAAmB,GAC1B,+BAA+B,CAOjC;AAkJD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAoB5D;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,SAAS,EAAE,UAAU,GACpB,0BAA0B,CAsD5B;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,SAAS,EAAE,UAAU,GACpB,uBAAuB,CA0BzB"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { normalizeRoofSegmentTrim, } from '@pascal-app/core';
|
|
2
|
+
import { resolveLeanToLayout } from './layout';
|
|
3
|
+
const ENDPOINT_TOLERANCE = 0.05;
|
|
4
|
+
const PROFILE_TOLERANCE = 1e-4;
|
|
5
|
+
const DIRECTION_TOLERANCE = 1e-6;
|
|
6
|
+
export const FREESTANDING_CANOPY_JOINTS_KEY = 'leanToFreestandingCanopyJoints';
|
|
7
|
+
export function canopyCornerJointMetadata(joints) {
|
|
8
|
+
const metadata = {};
|
|
9
|
+
for (const [side, joint] of Object.entries(joints)) {
|
|
10
|
+
if (!joint)
|
|
11
|
+
continue;
|
|
12
|
+
metadata[side] = {
|
|
13
|
+
kind: joint.kind,
|
|
14
|
+
innerCanopySide: joint.innerCanopySide,
|
|
15
|
+
trimX: joint.trimX,
|
|
16
|
+
trimZ: joint.trimZ,
|
|
17
|
+
gutterMitre: joint.gutterMitre,
|
|
18
|
+
sharedPostOwner: joint.sharedPostOwner,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return metadata;
|
|
22
|
+
}
|
|
23
|
+
export function readFreestandingCanopyJointMetadata(leanTo) {
|
|
24
|
+
const metadata = leanTo.metadata;
|
|
25
|
+
if (!metadata || typeof metadata !== 'object' || Array.isArray(metadata))
|
|
26
|
+
return {};
|
|
27
|
+
const value = metadata[FREESTANDING_CANOPY_JOINTS_KEY];
|
|
28
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
29
|
+
? value
|
|
30
|
+
: {};
|
|
31
|
+
}
|
|
32
|
+
function dot(a, b) {
|
|
33
|
+
return a[0] * b[0] + a[1] * b[1];
|
|
34
|
+
}
|
|
35
|
+
function runAxis(node) {
|
|
36
|
+
return [Math.cos(node.rotation[1]), -Math.sin(node.rotation[1])];
|
|
37
|
+
}
|
|
38
|
+
function positiveCanopyAxis(node) {
|
|
39
|
+
return [Math.sin(node.rotation[1]), Math.cos(node.rotation[1])];
|
|
40
|
+
}
|
|
41
|
+
function endpoint(node, side) {
|
|
42
|
+
const axis = runAxis(node);
|
|
43
|
+
const sign = side === 'left' ? -1 : 1;
|
|
44
|
+
return [
|
|
45
|
+
node.position[0] + sign * axis[0] * (node.span / 2),
|
|
46
|
+
node.position[2] + sign * axis[1] * (node.span / 2),
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
function inwardDirection(node, side) {
|
|
50
|
+
const axis = runAxis(node);
|
|
51
|
+
const sign = side === 'left' ? 1 : -1;
|
|
52
|
+
return [sign * axis[0], sign * axis[1]];
|
|
53
|
+
}
|
|
54
|
+
function distance(a, b) {
|
|
55
|
+
return Math.hypot(a[0] - b[0], a[1] - b[1]);
|
|
56
|
+
}
|
|
57
|
+
function sameRoofProfile(a, b) {
|
|
58
|
+
return (a.canopyForm === b.canopyForm &&
|
|
59
|
+
Math.abs(a.projection - b.projection) <= PROFILE_TOLERANCE &&
|
|
60
|
+
Math.abs(a.highOverhang - b.highOverhang) <= PROFILE_TOLERANCE &&
|
|
61
|
+
Math.abs(a.lowOverhang - b.lowOverhang) <= PROFILE_TOLERANCE &&
|
|
62
|
+
Math.abs(a.highEdgeHeight - b.highEdgeHeight) <= PROFILE_TOLERANCE &&
|
|
63
|
+
Math.abs(a.pitch - b.pitch) <= PROFILE_TOLERANCE &&
|
|
64
|
+
Math.abs(a.roofThickness - b.roofThickness) <= PROFILE_TOLERANCE);
|
|
65
|
+
}
|
|
66
|
+
function matchingEndpoint(candidate, point) {
|
|
67
|
+
const matches = ['left', 'right']
|
|
68
|
+
.map((side) => ({ distance: distance(endpoint(candidate, side), point), side }))
|
|
69
|
+
.filter((match) => match.distance <= ENDPOINT_TOLERANCE)
|
|
70
|
+
.sort((a, b) => a.distance - b.distance || a.side.localeCompare(b.side));
|
|
71
|
+
return matches[0] ?? null;
|
|
72
|
+
}
|
|
73
|
+
function jointAt(leanTo, side, candidate, neighborSide) {
|
|
74
|
+
const ownInward = inwardDirection(leanTo, side);
|
|
75
|
+
const neighborInward = inwardDirection(candidate, neighborSide);
|
|
76
|
+
const directionDot = Math.max(-1, Math.min(1, dot(ownInward, neighborInward)));
|
|
77
|
+
const interiorAngle = Math.acos(directionDot);
|
|
78
|
+
const layout = resolveLeanToLayout(leanTo);
|
|
79
|
+
const trimZ = layout.projection + Math.max(0, leanTo.lowOverhang);
|
|
80
|
+
if (interiorAngle >= Math.PI - DIRECTION_TOLERANCE) {
|
|
81
|
+
return {
|
|
82
|
+
side,
|
|
83
|
+
kind: 'linear',
|
|
84
|
+
neighborId: candidate.id,
|
|
85
|
+
neighborSide,
|
|
86
|
+
innerCanopySide: 'positive',
|
|
87
|
+
interiorAngle: Math.PI,
|
|
88
|
+
trimX: 0,
|
|
89
|
+
trimZ,
|
|
90
|
+
gutterMitre: 0,
|
|
91
|
+
sharedPostOwner: String(leanTo.id) < String(candidate.id),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (interiorAngle <= DIRECTION_TOLERANCE)
|
|
95
|
+
return null;
|
|
96
|
+
const bisectorLength = Math.hypot(ownInward[0] + neighborInward[0], ownInward[1] + neighborInward[1]);
|
|
97
|
+
if (bisectorLength <= DIRECTION_TOLERANCE)
|
|
98
|
+
return null;
|
|
99
|
+
const bisector = [
|
|
100
|
+
(ownInward[0] + neighborInward[0]) / bisectorLength,
|
|
101
|
+
(ownInward[1] + neighborInward[1]) / bisectorLength,
|
|
102
|
+
];
|
|
103
|
+
const lateral = dot(bisector, positiveCanopyAxis(leanTo));
|
|
104
|
+
if (Math.abs(lateral) <= DIRECTION_TOLERANCE)
|
|
105
|
+
return null;
|
|
106
|
+
const trimX = Math.abs((dot(bisector, runAxis(leanTo)) / lateral) * trimZ);
|
|
107
|
+
if (!Number.isFinite(trimX))
|
|
108
|
+
return null;
|
|
109
|
+
return {
|
|
110
|
+
side,
|
|
111
|
+
kind: 'corner',
|
|
112
|
+
neighborId: candidate.id,
|
|
113
|
+
neighborSide,
|
|
114
|
+
innerCanopySide: lateral > 0 ? 'positive' : 'negative',
|
|
115
|
+
interiorAngle,
|
|
116
|
+
trimX,
|
|
117
|
+
trimZ,
|
|
118
|
+
gutterMitre: -(Math.PI - interiorAngle) / 2,
|
|
119
|
+
sharedPostOwner: String(leanTo.id) < String(candidate.id),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function compatibleCanopyCandidates(leanTo, nodes) {
|
|
123
|
+
return Object.values(nodes).filter((candidate) => candidate.type === 'lean-to-extension' &&
|
|
124
|
+
candidate.id !== leanTo.id &&
|
|
125
|
+
candidate.parentId === leanTo.parentId &&
|
|
126
|
+
candidate.hostKind === 'freestanding' &&
|
|
127
|
+
candidate.autoMiterCorners &&
|
|
128
|
+
sameRoofProfile(leanTo, candidate));
|
|
129
|
+
}
|
|
130
|
+
function rankedJointMatches(leanTo, side, candidates) {
|
|
131
|
+
const ownEndpoint = endpoint(leanTo, side);
|
|
132
|
+
return candidates
|
|
133
|
+
.flatMap((candidate) => {
|
|
134
|
+
const match = matchingEndpoint(candidate, ownEndpoint);
|
|
135
|
+
if (!match)
|
|
136
|
+
return [];
|
|
137
|
+
const joint = jointAt(leanTo, side, candidate, match.side);
|
|
138
|
+
return joint ? [{ candidate, joint, ...match }] : [];
|
|
139
|
+
})
|
|
140
|
+
.sort((a, b) => a.distance - b.distance ||
|
|
141
|
+
String(a.candidate.id).localeCompare(String(b.candidate.id)) ||
|
|
142
|
+
a.side.localeCompare(b.side));
|
|
143
|
+
}
|
|
144
|
+
export function resolveFreestandingCanopyJoints(leanTo, nodes) {
|
|
145
|
+
if (!nodes || leanTo.hostKind !== 'freestanding' || !leanTo.autoMiterCorners)
|
|
146
|
+
return {};
|
|
147
|
+
const candidates = compatibleCanopyCandidates(leanTo, nodes);
|
|
148
|
+
const joints = {};
|
|
149
|
+
for (const side of ['left', 'right']) {
|
|
150
|
+
const matches = rankedJointMatches(leanTo, side, candidates);
|
|
151
|
+
for (const match of matches) {
|
|
152
|
+
const reciprocal = rankedJointMatches(match.candidate, match.side, [
|
|
153
|
+
...compatibleCanopyCandidates(match.candidate, nodes),
|
|
154
|
+
...(sameRoofProfile(leanTo, match.candidate) ? [leanTo] : []),
|
|
155
|
+
])[0];
|
|
156
|
+
if (reciprocal?.candidate.id !== leanTo.id || reciprocal.side !== side)
|
|
157
|
+
continue;
|
|
158
|
+
joints[side] = match.joint;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return joints;
|
|
163
|
+
}
|
|
164
|
+
export function resolveCanopyRoofPlaneJointLayout(leanTo, nodes, planeSide) {
|
|
165
|
+
const layout = resolveLeanToLayout(leanTo);
|
|
166
|
+
const depth = layout.projection + Math.max(0, leanTo.lowOverhang);
|
|
167
|
+
const joints = resolveFreestandingCanopyJoints(leanTo, nodes);
|
|
168
|
+
const extensions = { left: 0, right: 0 };
|
|
169
|
+
const baseTrims = { left: 0, right: 0 };
|
|
170
|
+
const diagonals = [];
|
|
171
|
+
const flipsX = (leanTo.canopyForm === 'gable' && planeSide === 'negative') ||
|
|
172
|
+
(leanTo.canopyForm === 'butterfly' && planeSide === 'positive');
|
|
173
|
+
const outerEdge = leanTo.canopyForm === 'gable' ? 'front' : 'back';
|
|
174
|
+
for (const [side, joint] of Object.entries(joints)) {
|
|
175
|
+
const overhang = side === 'left' ? leanTo.leftOverhang : leanTo.rightOverhang;
|
|
176
|
+
const segmentSide = flipsX ? (side === 'left' ? 'right' : 'left') : side;
|
|
177
|
+
if (joint.kind === 'linear') {
|
|
178
|
+
baseTrims[segmentSide] = overhang;
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
const inside = joint.innerCanopySide === planeSide;
|
|
182
|
+
if (inside) {
|
|
183
|
+
baseTrims[segmentSide] = overhang;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
const extension = joint.trimX - overhang;
|
|
187
|
+
if (extension >= 0)
|
|
188
|
+
extensions[side] = extension;
|
|
189
|
+
else
|
|
190
|
+
baseTrims[segmentSide] = -extension;
|
|
191
|
+
}
|
|
192
|
+
diagonals.push({
|
|
193
|
+
edge: inside ? outerEdge : outerEdge === 'front' ? 'back' : 'front',
|
|
194
|
+
segmentSide,
|
|
195
|
+
trimX: joint.trimX,
|
|
196
|
+
trimZ: joint.trimZ,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const width = layout.roofWidth + extensions.left + extensions.right;
|
|
200
|
+
const centerX = layout.roofCenterX + (extensions.right - extensions.left) / 2;
|
|
201
|
+
const trim = normalizeRoofSegmentTrim({ width, depth });
|
|
202
|
+
trim.left = baseTrims.left;
|
|
203
|
+
trim.right = baseTrims.right;
|
|
204
|
+
for (const diagonal of diagonals) {
|
|
205
|
+
const corner = `${diagonal.edge}${diagonal.segmentSide === 'left' ? 'Left' : 'Right'}`;
|
|
206
|
+
trim[`${corner}X`] = diagonal.trimX;
|
|
207
|
+
trim[`${corner}Z`] = diagonal.trimZ;
|
|
208
|
+
}
|
|
209
|
+
return { centerX, trim, width };
|
|
210
|
+
}
|
|
211
|
+
export function resolveCanopyGutterJointLayout(leanTo, nodes, planeSide) {
|
|
212
|
+
const joints = resolveFreestandingCanopyJoints(leanTo, nodes);
|
|
213
|
+
const resolvedJoints = {};
|
|
214
|
+
let minX = -leanTo.span / 2 - leanTo.leftOverhang;
|
|
215
|
+
let maxX = leanTo.span / 2 + leanTo.rightOverhang;
|
|
216
|
+
for (const [side, joint] of Object.entries(joints)) {
|
|
217
|
+
const butterfly = leanTo.canopyForm === 'butterfly';
|
|
218
|
+
const inside = joint.innerCanopySide === planeSide;
|
|
219
|
+
const endpointX = side === 'left' ? -leanTo.span / 2 : leanTo.span / 2;
|
|
220
|
+
const direction = side === 'left' ? -1 : 1;
|
|
221
|
+
const boundaryX = butterfly
|
|
222
|
+
? endpointX
|
|
223
|
+
: endpointX + direction * (inside ? -joint.trimX : joint.trimX);
|
|
224
|
+
if (side === 'left')
|
|
225
|
+
minX = boundaryX;
|
|
226
|
+
else
|
|
227
|
+
maxX = boundaryX;
|
|
228
|
+
resolvedJoints[side] = {
|
|
229
|
+
...joint,
|
|
230
|
+
gutterMitre: inside || butterfly ? joint.gutterMitre : -joint.gutterMitre,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
return { joints: resolvedJoints, maxX, minX };
|
|
234
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AnyNode, type AnyNodeId, LeanToExtensionNode, type RoofSegmentNode } from '@pascal-app/core';
|
|
2
|
+
export type ConicalLeanToPlanHost = {
|
|
3
|
+
segment: RoofSegmentNode;
|
|
4
|
+
center: [number, number];
|
|
5
|
+
rotationY: number;
|
|
6
|
+
node: LeanToExtensionNode;
|
|
7
|
+
};
|
|
8
|
+
export declare function isClosedLoopLeanTo(leanTo: Pick<LeanToExtensionNode, 'hostKind'>): boolean;
|
|
9
|
+
export declare function isConicalLeanToHostOccupied(segmentId: RoofSegmentNode['id'], nodes: Record<AnyNodeId, AnyNode>): boolean;
|
|
10
|
+
export declare function resolveConicalLeanToPlacement(segment: RoofSegmentNode, source?: Partial<LeanToExtensionNode>): LeanToExtensionNode | null;
|
|
11
|
+
export declare function resolveConicalLeanToSurfaceHit(segment: RoofSegmentNode, localPosition: readonly [number, number, number], normal?: readonly [number, number, number]): LeanToExtensionNode | null;
|
|
12
|
+
export declare function findConicalLeanToHostInPlan(point: readonly [number, number], nodes: Record<AnyNodeId, AnyNode>, activeLevelId: AnyNodeId, options?: {
|
|
13
|
+
includeOccupied?: boolean;
|
|
14
|
+
}): ConicalLeanToPlanHost | null;
|
|
15
|
+
//# sourceMappingURL=conical-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conical-host.d.ts","sourceRoot":"","sources":["../../src/lean-to-extension/conical-host.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EAEd,mBAAmB,EACnB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AAKzB,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,mBAAmB,CAAA;CAC1B,CAAA;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG,OAAO,CAEzF;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAChC,OAAO,CAOT;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACxC,mBAAmB,GAAG,IAAI,CAuC5B;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChD,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACzC,mBAAmB,GAAG,IAAI,CAY5B;AAgCD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EACjC,aAAa,EAAE,SAAS,EACxB,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,qBAAqB,GAAG,IAAI,CAiB9B"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { findLevelAncestorId, LeanToExtensionNode, } from '@pascal-app/core';
|
|
2
|
+
const CONICAL_WALL_HIT_TOLERANCE = 0.15;
|
|
3
|
+
const CONICAL_PLAN_HIT_TOLERANCE = 0.35;
|
|
4
|
+
export function isClosedLoopLeanTo(leanTo) {
|
|
5
|
+
return leanTo.hostKind === 'conical-roof';
|
|
6
|
+
}
|
|
7
|
+
export function isConicalLeanToHostOccupied(segmentId, nodes) {
|
|
8
|
+
return Object.values(nodes).some((node) => node.type === 'lean-to-extension' &&
|
|
9
|
+
node.hostKind === 'conical-roof' &&
|
|
10
|
+
node.parentId === segmentId);
|
|
11
|
+
}
|
|
12
|
+
export function resolveConicalLeanToPlacement(segment, source = {}) {
|
|
13
|
+
if (segment.roofType !== 'conical')
|
|
14
|
+
return null;
|
|
15
|
+
const radius = segment.width / 2;
|
|
16
|
+
const hostHeightOffset = source.hostHeightOffset ?? 0;
|
|
17
|
+
const highEdgeHeight = Math.max(0.8, Math.min(10, segment.wallHeight + hostHeightOffset));
|
|
18
|
+
const projection = source.projection ?? LeanToExtensionNode.shape.projection.parse(undefined);
|
|
19
|
+
const pitch = source.pitch ?? LeanToExtensionNode.shape.pitch.parse(undefined);
|
|
20
|
+
const lowEdgeHeight = highEdgeHeight - projection * Math.tan((pitch * Math.PI) / 180);
|
|
21
|
+
const parsed = LeanToExtensionNode.parse({
|
|
22
|
+
...source,
|
|
23
|
+
parentId: segment.id,
|
|
24
|
+
hostKind: 'conical-roof',
|
|
25
|
+
hostHeightOffset,
|
|
26
|
+
position: [0, 0, radius],
|
|
27
|
+
rotation: [0, 0, 0],
|
|
28
|
+
span: 2 * Math.PI * radius,
|
|
29
|
+
autoSpan: true,
|
|
30
|
+
spanArcCenterZ: -radius,
|
|
31
|
+
spanArcRadius: radius,
|
|
32
|
+
highEdgeHeight,
|
|
33
|
+
lowEdgeHeight,
|
|
34
|
+
connectionMode: 'manual',
|
|
35
|
+
leftEndCondition: 'joined',
|
|
36
|
+
rightEndCondition: 'joined',
|
|
37
|
+
autoMiterCorners: false,
|
|
38
|
+
sideFlashing: false,
|
|
39
|
+
leftOverhang: 0,
|
|
40
|
+
rightOverhang: 0,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
...parsed,
|
|
44
|
+
hostRoofId: undefined,
|
|
45
|
+
hostRoofSegmentId: undefined,
|
|
46
|
+
hostRoofEdge: undefined,
|
|
47
|
+
hostRoofEdgeRange: undefined,
|
|
48
|
+
connectionInset: 0,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function resolveConicalLeanToSurfaceHit(segment, localPosition, normal) {
|
|
52
|
+
if (segment.roofType !== 'conical' || !normal)
|
|
53
|
+
return null;
|
|
54
|
+
const radius = segment.width / 2;
|
|
55
|
+
const radialDistance = Math.hypot(localPosition[0], localPosition[2]);
|
|
56
|
+
const hitsCylinderHeight = localPosition[1] >= -CONICAL_WALL_HIT_TOLERANCE &&
|
|
57
|
+
localPosition[1] <= segment.wallHeight + CONICAL_WALL_HIT_TOLERANCE;
|
|
58
|
+
const hitsCylinderRadius = Math.abs(radialDistance - radius) <= CONICAL_WALL_HIT_TOLERANCE;
|
|
59
|
+
const hasHorizontalNormal = Math.abs(normal[1]) <= 0.35;
|
|
60
|
+
return hitsCylinderHeight && hitsCylinderRadius && hasHorizontalNormal
|
|
61
|
+
? resolveConicalLeanToPlacement(segment)
|
|
62
|
+
: null;
|
|
63
|
+
}
|
|
64
|
+
function resolveSegmentPlanPose(segment, nodes, activeLevelId) {
|
|
65
|
+
if (findLevelAncestorId(segment.id, nodes) !== activeLevelId)
|
|
66
|
+
return null;
|
|
67
|
+
const chain = [];
|
|
68
|
+
let current = segment;
|
|
69
|
+
const seen = new Set();
|
|
70
|
+
while (current && current.id !== activeLevelId && !seen.has(current.id)) {
|
|
71
|
+
seen.add(current.id);
|
|
72
|
+
chain.push(current);
|
|
73
|
+
current = current.parentId ? nodes[current.parentId] : undefined;
|
|
74
|
+
}
|
|
75
|
+
let x = 0;
|
|
76
|
+
let z = 0;
|
|
77
|
+
let rotationY = 0;
|
|
78
|
+
for (const node of chain.reverse()) {
|
|
79
|
+
if (node.type !== 'roof' && node.type !== 'roof-segment')
|
|
80
|
+
continue;
|
|
81
|
+
const cos = Math.cos(rotationY);
|
|
82
|
+
const sin = Math.sin(rotationY);
|
|
83
|
+
x += node.position[0] * cos + node.position[2] * sin;
|
|
84
|
+
z += -node.position[0] * sin + node.position[2] * cos;
|
|
85
|
+
rotationY += node.rotation;
|
|
86
|
+
}
|
|
87
|
+
return { center: [x, z], rotationY };
|
|
88
|
+
}
|
|
89
|
+
export function findConicalLeanToHostInPlan(point, nodes, activeLevelId, options) {
|
|
90
|
+
let closest = null;
|
|
91
|
+
for (const candidate of Object.values(nodes)) {
|
|
92
|
+
if (candidate.type !== 'roof-segment' || candidate.roofType !== 'conical')
|
|
93
|
+
continue;
|
|
94
|
+
if (!options?.includeOccupied && isConicalLeanToHostOccupied(candidate.id, nodes))
|
|
95
|
+
continue;
|
|
96
|
+
const pose = resolveSegmentPlanPose(candidate, nodes, activeLevelId);
|
|
97
|
+
if (!pose)
|
|
98
|
+
continue;
|
|
99
|
+
const distance = Math.hypot(point[0] - pose.center[0], point[1] - pose.center[1]);
|
|
100
|
+
if (distance > candidate.width / 2 + CONICAL_PLAN_HIT_TOLERANCE)
|
|
101
|
+
continue;
|
|
102
|
+
if (closest && distance >= closest.distance)
|
|
103
|
+
continue;
|
|
104
|
+
const node = resolveConicalLeanToPlacement(candidate);
|
|
105
|
+
if (!node)
|
|
106
|
+
continue;
|
|
107
|
+
closest = { segment: candidate, ...pose, node, distance };
|
|
108
|
+
}
|
|
109
|
+
if (!closest)
|
|
110
|
+
return null;
|
|
111
|
+
const { distance: _distance, ...host } = closest;
|
|
112
|
+
return host;
|
|
113
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type AnyNode, type LeanToExtensionNode, WallNode } from '@pascal-app/core';
|
|
2
|
+
export type LeanToCornerSide = 'left' | 'right';
|
|
3
|
+
export type LeanToPlanPoint = [number, number];
|
|
4
|
+
export type LeanToCornerKind = 'convex' | 'concave' | 'linear';
|
|
5
|
+
export type LeanToFramingRetainedSide = 'front' | 'back';
|
|
6
|
+
export type LeanToCornerJoint = {
|
|
7
|
+
side: LeanToCornerSide;
|
|
8
|
+
kind: LeanToCornerKind;
|
|
9
|
+
neighborId: string;
|
|
10
|
+
neighborSide: LeanToCornerSide;
|
|
11
|
+
roofExtension: number;
|
|
12
|
+
roofPiece: LeanToPlanPoint[];
|
|
13
|
+
roofPieces?: LeanToPlanPoint[][];
|
|
14
|
+
roofAdditionPieces?: LeanToPlanPoint[][];
|
|
15
|
+
mergeRoofPieces?: boolean;
|
|
16
|
+
seam: [LeanToPlanPoint, LeanToPlanPoint] | null;
|
|
17
|
+
framingRetainedSide?: LeanToFramingRetainedSide;
|
|
18
|
+
beamExtension: number;
|
|
19
|
+
gutterMitre: number;
|
|
20
|
+
sharedPostOwner: boolean;
|
|
21
|
+
sharedPostPosition: [number, number, number];
|
|
22
|
+
};
|
|
23
|
+
export declare const LEAN_TO_CORNER_JOINTS_KEY = "leanToCornerJoints";
|
|
24
|
+
export declare function applyLeanToCornerRoofPieces(base: LeanToPlanPoint[], joints: Partial<Record<LeanToCornerSide, LeanToCornerJoint>>): LeanToPlanPoint[][];
|
|
25
|
+
export declare function resolveLeanToCornerJoints(leanTo: LeanToExtensionNode, wall: WallNode | undefined, nodes: Record<string, AnyNode> | undefined): Partial<Record<LeanToCornerSide, LeanToCornerJoint>>;
|
|
26
|
+
export type LeanToCornerJointMetadata = Partial<Record<LeanToCornerSide, Pick<LeanToCornerJoint, 'beamExtension' | 'gutterMitre' | 'seam' | 'framingRetainedSide' | 'sharedPostOwner'>>>;
|
|
27
|
+
export declare function leanToCornerJointMetadata(joints: Partial<Record<LeanToCornerSide, LeanToCornerJoint>>): LeanToCornerJointMetadata;
|
|
28
|
+
export declare function readLeanToCornerJointMetadata(leanTo: LeanToExtensionNode): LeanToCornerJointMetadata;
|
|
29
|
+
//# sourceMappingURL=corner-joint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corner-joint.d.ts","sourceRoot":"","sources":["../../src/lean-to-extension/corner-joint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAiB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAMlG,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAA;AAC/C,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAC9D,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,MAAM,CAAA;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,gBAAgB,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,gBAAgB,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,UAAU,CAAC,EAAE,eAAe,EAAE,EAAE,CAAA;IAChC,kBAAkB,CAAC,EAAE,eAAe,EAAE,EAAE,CAAA;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,IAAI,CAAA;IAC/C,mBAAmB,CAAC,EAAE,yBAAyB,CAAA;IAC/C,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,yBAAyB,uBAAuB,CAAA;AAojC7D,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,eAAe,EAAE,EACvB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,GAC3D,eAAe,EAAE,EAAE,CAsCrB;AAmMD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAoUtD;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,MAAM,CACJ,gBAAgB,EAChB,IAAI,CACF,iBAAiB,EACjB,eAAe,GAAG,aAAa,GAAG,MAAM,GAAG,qBAAqB,GAAG,iBAAiB,CACrF,CACF,CACF,CAAA;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,GAC3D,yBAAyB,CAe3B;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,yBAAyB,CAO3B"}
|