@pascal-app/nodes 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/agent-operations/index.d.ts +12 -0
- package/dist/agent-operations/index.d.ts.map +1 -0
- package/dist/agent-operations/index.js +6 -0
- package/dist/agent-tools/index.d.ts +50 -0
- package/dist/agent-tools/index.d.ts.map +1 -0
- package/dist/agent-tools/index.js +21 -0
- package/dist/block/commands.d.ts +2 -2
- package/dist/block/contextual-help.js +1 -1
- package/dist/block/definition.d.ts +1 -1
- package/dist/block/definition.d.ts.map +1 -1
- package/dist/block/definition.js +30 -15
- package/dist/block/edit-session.d.ts +2 -2
- package/dist/block/edit-session.d.ts.map +1 -1
- package/dist/block/edit-session.js +1 -1
- package/dist/block/face-host.js +1 -1
- package/dist/block/floorplan.d.ts +11 -1
- package/dist/block/floorplan.d.ts.map +1 -1
- package/dist/block/floorplan.js +81 -13
- package/dist/block/geometry-snap.d.ts +2 -2
- package/dist/block/geometry-snap.js +2 -2
- package/dist/block/geometry.d.ts +2 -2
- package/dist/block/geometry.d.ts.map +1 -1
- package/dist/block/geometry.js +39 -24
- package/dist/block/gesture-wheel.d.ts.map +1 -1
- package/dist/block/hosted-edit.d.ts +1 -1
- package/dist/block/hosted-edit.d.ts.map +1 -1
- package/dist/block/hosted-edit.js +28 -3
- package/dist/block/interaction-sfx.d.ts +1 -1
- package/dist/block/last-operation.d.ts +1 -1
- package/dist/block/last-operation.js +2 -2
- package/dist/block/material-slots.d.ts +1 -3
- package/dist/block/material-slots.d.ts.map +1 -1
- package/dist/block/material-slots.js +1 -11
- package/dist/block/modal-face-operation.d.ts +2 -2
- package/dist/block/modal-face-operation.js +1 -1
- package/dist/block/paint.d.ts.map +1 -1
- package/dist/block/paint.js +5 -11
- package/dist/block/panel.d.ts.map +1 -1
- package/dist/block/panel.js +15 -10
- package/dist/block/parametrics.d.ts +1 -1
- package/dist/block/parametrics.js +1 -1
- package/dist/block/preview.js +1 -1
- package/dist/block/selection-geometry.d.ts +1 -1
- package/dist/block/selection-geometry.js +1 -1
- package/dist/block/selection.d.ts.map +1 -1
- package/dist/block/selection.js +20 -20
- package/dist/block/tool.d.ts.map +1 -1
- package/dist/block/tool.js +3 -3
- package/dist/block/use-block-face-operation.d.ts +4 -4
- package/dist/block/use-block-face-operation.js +6 -6
- package/dist/box-vent/definition.d.ts +1 -1
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.js +11 -13
- package/dist/box-vent/geometry.d.ts.map +1 -1
- package/dist/box-vent/geometry.js +2 -2
- package/dist/box-vent/index.d.ts +3 -3
- package/dist/box-vent/index.js +3 -3
- package/dist/box-vent/move-tool.js +4 -4
- package/dist/box-vent/paint.js +2 -2
- package/dist/box-vent/panel.d.ts.map +1 -1
- package/dist/box-vent/panel.js +7 -30
- package/dist/box-vent/parametrics.d.ts +1 -1
- package/dist/box-vent/parametrics.js +1 -1
- package/dist/box-vent/preview.d.ts +1 -1
- package/dist/box-vent/preview.d.ts.map +1 -1
- package/dist/box-vent/preview.js +2 -2
- package/dist/box-vent/renderer.d.ts.map +1 -1
- package/dist/box-vent/renderer.js +3 -3
- package/dist/box-vent/tool.d.ts.map +1 -1
- package/dist/box-vent/tool.js +7 -7
- package/dist/building/definition.d.ts +1 -1
- package/dist/building/definition.d.ts.map +1 -1
- package/dist/building/definition.js +5 -4
- package/dist/building/index.d.ts +1 -1
- package/dist/building/index.js +1 -1
- package/dist/building/move-tool.d.ts.map +1 -1
- package/dist/building/move-tool.js +2 -3
- package/dist/building/renderer.d.ts.map +1 -1
- package/dist/cabinet/__bench__/geometry.d.ts +2 -0
- package/dist/cabinet/__bench__/geometry.d.ts.map +1 -0
- package/dist/cabinet/__bench__/geometry.js +21 -0
- package/dist/cabinet/appliance-layout.d.ts +1 -1
- package/dist/cabinet/appliance-layout.d.ts.map +1 -1
- package/dist/cabinet/compartment-card.d.ts +1 -1
- package/dist/cabinet/compartment-card.js +12 -12
- package/dist/cabinet/continuous-placement.d.ts +1 -1
- package/dist/cabinet/continuous-placement.js +2 -2
- package/dist/cabinet/countertop-layout.d.ts +64 -53
- package/dist/cabinet/countertop-layout.d.ts.map +1 -1
- package/dist/cabinet/countertop-layout.js +3 -3
- package/dist/cabinet/definition.d.ts +1 -1
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +34 -30
- package/dist/cabinet/essential-controls.d.ts +7 -0
- package/dist/cabinet/essential-controls.d.ts.map +1 -0
- package/dist/cabinet/essential-controls.js +47 -0
- package/dist/cabinet/finish-operation.d.ts +9 -0
- package/dist/cabinet/finish-operation.d.ts.map +1 -0
- package/dist/cabinet/finish-operation.js +86 -0
- package/dist/cabinet/floorplan-move.js +3 -3
- package/dist/cabinet/floorplan.d.ts.map +1 -1
- package/dist/cabinet/floorplan.js +130 -33
- package/dist/cabinet/geometry/cooktop.d.ts +2 -2
- package/dist/cabinet/geometry/cooktop.d.ts.map +1 -1
- package/dist/cabinet/geometry/cooktop.js +55 -18
- package/dist/cabinet/geometry/dishwasher.d.ts +1 -1
- package/dist/cabinet/geometry/dishwasher.d.ts.map +1 -1
- package/dist/cabinet/geometry/dishwasher.js +5 -6
- package/dist/cabinet/geometry/fridge.d.ts +2 -2
- package/dist/cabinet/geometry/fridge.d.ts.map +1 -1
- package/dist/cabinet/geometry/fridge.js +49 -8
- package/dist/cabinet/geometry/fronts.d.ts +1 -1
- package/dist/cabinet/geometry/fronts.d.ts.map +1 -1
- package/dist/cabinet/geometry/fronts.js +22 -8
- package/dist/cabinet/geometry/hood.d.ts +2 -2
- package/dist/cabinet/geometry/hood.d.ts.map +1 -1
- package/dist/cabinet/geometry/hood.js +15 -3
- package/dist/cabinet/geometry/oven-microwave.d.ts +1 -1
- package/dist/cabinet/geometry/oven-microwave.d.ts.map +1 -1
- package/dist/cabinet/geometry/oven-microwave.js +46 -21
- package/dist/cabinet/geometry/pantry.d.ts +2 -2
- package/dist/cabinet/geometry/pantry.d.ts.map +1 -1
- package/dist/cabinet/geometry/pantry.js +11 -9
- package/dist/cabinet/geometry/run.d.ts.map +1 -1
- package/dist/cabinet/geometry/run.js +18 -8
- package/dist/cabinet/geometry/shared.d.ts +5 -4
- package/dist/cabinet/geometry/shared.d.ts.map +1 -1
- package/dist/cabinet/geometry/shared.js +78 -19
- package/dist/cabinet/geometry/sink.d.ts +2 -2
- package/dist/cabinet/geometry/sink.d.ts.map +1 -1
- package/dist/cabinet/geometry/sink.js +30 -12
- package/dist/cabinet/geometry.d.ts +1 -1
- package/dist/cabinet/geometry.d.ts.map +1 -1
- package/dist/cabinet/geometry.js +15 -11
- package/dist/cabinet/hosted-resize.d.ts +2 -2
- package/dist/cabinet/hosted-resize.d.ts.map +1 -1
- package/dist/cabinet/hosted-resize.js +3 -1
- package/dist/cabinet/index.d.ts +9 -5
- package/dist/cabinet/index.d.ts.map +1 -1
- package/dist/cabinet/index.js +9 -5
- package/dist/cabinet/insertion.d.ts.map +1 -1
- package/dist/cabinet/insertion.js +3 -1
- package/dist/cabinet/interaction.js +1 -1
- package/dist/cabinet/kitchen-catalog.d.ts +14 -0
- package/dist/cabinet/kitchen-catalog.d.ts.map +1 -0
- package/dist/cabinet/kitchen-catalog.js +62 -0
- package/dist/cabinet/kitchen-collection.d.ts +11 -0
- package/dist/cabinet/kitchen-collection.d.ts.map +1 -0
- package/dist/cabinet/kitchen-collection.js +19 -0
- package/dist/cabinet/kitchen-module-actions.d.ts +8 -0
- package/dist/cabinet/kitchen-module-actions.d.ts.map +1 -0
- package/dist/cabinet/kitchen-module-actions.js +117 -0
- package/dist/cabinet/kitchen-placement.d.ts +3 -0
- package/dist/cabinet/kitchen-placement.d.ts.map +1 -0
- package/dist/cabinet/kitchen-placement.js +16 -0
- package/dist/cabinet/move-frame.js +4 -4
- package/dist/cabinet/neighbor-placement.d.ts +335 -0
- package/dist/cabinet/neighbor-placement.d.ts.map +1 -0
- package/dist/cabinet/neighbor-placement.js +48 -0
- package/dist/cabinet/opening-clearance.d.ts +22 -0
- package/dist/cabinet/opening-clearance.d.ts.map +1 -0
- package/dist/cabinet/opening-clearance.js +158 -0
- package/dist/cabinet/paint.js +1 -1
- package/dist/cabinet/panel-visibility.js +2 -2
- package/dist/cabinet/panel.d.ts.map +1 -1
- package/dist/cabinet/panel.js +86 -77
- package/dist/cabinet/parametrics.js +3 -3
- package/dist/cabinet/placement-dimensions.js +2 -2
- package/dist/cabinet/placement-notice.d.ts +6 -0
- package/dist/cabinet/placement-notice.d.ts.map +1 -0
- package/dist/cabinet/placement-notice.js +34 -0
- package/dist/cabinet/placement-status.d.ts +2 -0
- package/dist/cabinet/placement-status.d.ts.map +1 -1
- package/dist/cabinet/placement-status.js +3 -1
- package/dist/cabinet/placement-type.d.ts.map +1 -1
- package/dist/cabinet/preset-width-debt.js +2 -2
- package/dist/cabinet/presets.d.ts +3 -1
- package/dist/cabinet/presets.d.ts.map +1 -1
- package/dist/cabinet/presets.js +27 -8
- package/dist/cabinet/quick-action-icons.js +1 -1
- package/dist/cabinet/quick-actions.js +7 -7
- package/dist/cabinet/resize-limits.d.ts.map +1 -1
- package/dist/cabinet/reveals.d.ts +16 -16
- package/dist/cabinet/reveals.d.ts.map +1 -1
- package/dist/cabinet/run-finishing.d.ts +168 -0
- package/dist/cabinet/run-finishing.d.ts.map +1 -0
- package/dist/cabinet/run-finishing.js +100 -0
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +28 -8
- package/dist/cabinet/run-ops.d.ts +61 -50
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-ops.js +6 -6
- package/dist/cabinet/run-panel.d.ts +11 -0
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +43 -17
- package/dist/cabinet/scene-action.js +1 -1
- package/dist/cabinet/stack-transitions.d.ts +1 -1
- package/dist/cabinet/stack-transitions.js +2 -2
- package/dist/cabinet/stack.d.ts +60 -60
- package/dist/cabinet/stack.d.ts.map +1 -1
- package/dist/cabinet/stack.js +1 -1
- package/dist/cabinet/surfaces.js +3 -3
- package/dist/cabinet/system.d.ts.map +1 -1
- package/dist/cabinet/system.js +4 -4
- package/dist/cabinet/tool.d.ts +1 -2
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +228 -105
- package/dist/cabinet/validation.js +3 -3
- package/dist/cabinet/wall-snap.d.ts +1 -1
- package/dist/cabinet/wall-snap.d.ts.map +1 -1
- package/dist/cabinet/wall-snap.js +10 -10
- package/dist/ceiling/boundary-editor.d.ts.map +1 -1
- package/dist/ceiling/boundary-editor.js +5 -3
- package/dist/ceiling/definition.d.ts +5 -5
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +31 -29
- package/dist/ceiling/floorplan-affordances.d.ts +138 -58
- package/dist/ceiling/floorplan-affordances.d.ts.map +1 -1
- package/dist/ceiling/floorplan-affordances.js +1 -2
- package/dist/ceiling/floorplan-move.d.ts.map +1 -1
- package/dist/ceiling/floorplan-move.js +1 -2
- package/dist/ceiling/floorplan.d.ts +1 -1
- package/dist/ceiling/floorplan.d.ts.map +1 -1
- package/dist/ceiling/floorplan.js +2 -1
- package/dist/ceiling/height-bounds.d.ts +19 -0
- package/dist/ceiling/height-bounds.d.ts.map +1 -0
- package/dist/ceiling/height-bounds.js +24 -0
- package/dist/ceiling/hole-editor.d.ts.map +1 -1
- package/dist/ceiling/hole-editor.js +3 -4
- package/dist/ceiling/index.d.ts +2 -2
- package/dist/ceiling/index.js +2 -2
- package/dist/ceiling/materials.d.ts +8 -4
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +55 -21
- package/dist/ceiling/move-tool.d.ts.map +1 -1
- package/dist/ceiling/paint.d.ts +2 -8
- package/dist/ceiling/paint.d.ts.map +1 -1
- package/dist/ceiling/paint.js +112 -24
- package/dist/ceiling/panel.d.ts.map +1 -1
- package/dist/ceiling/panel.js +42 -25
- package/dist/ceiling/parametrics.d.ts +1 -1
- package/dist/ceiling/parametrics.js +1 -1
- package/dist/ceiling/renderer.d.ts.map +1 -1
- package/dist/ceiling/renderer.js +56 -21
- package/dist/ceiling/system.d.ts.map +1 -1
- package/dist/ceiling/tool.d.ts.map +1 -1
- package/dist/ceiling/tool.js +1 -1
- package/dist/chimney/definition.d.ts +1 -1
- package/dist/chimney/definition.d.ts.map +1 -1
- package/dist/chimney/definition.js +9 -8
- package/dist/chimney/floorplan.js +1 -1
- package/dist/chimney/holes.js +1 -1
- package/dist/chimney/index.d.ts +3 -3
- package/dist/chimney/index.js +3 -3
- package/dist/chimney/move-tool.d.ts.map +1 -1
- package/dist/chimney/move-tool.js +11 -5
- package/dist/chimney/paint.d.ts.map +1 -1
- package/dist/chimney/paint.js +3 -10
- package/dist/chimney/panel.js +4 -4
- package/dist/chimney/parametrics.d.ts +1 -1
- package/dist/chimney/parametrics.js +1 -1
- package/dist/chimney/presets.d.ts +1 -1
- package/dist/chimney/preview.d.ts.map +1 -1
- package/dist/chimney/preview.js +2 -2
- package/dist/chimney/renderer.d.ts.map +1 -1
- package/dist/chimney/renderer.js +4 -4
- package/dist/chimney/roof-trim.js +2 -2
- package/dist/chimney/tool.d.ts.map +1 -1
- package/dist/chimney/tool.js +6 -6
- package/dist/column/definition.d.ts +1 -1
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +39 -15
- package/dist/column/floorplan-affordances.d.ts.map +1 -1
- package/dist/column/floorplan-affordances.js +7 -2
- package/dist/column/floorplan-move.js +2 -2
- package/dist/column/floorplan.d.ts +1 -1
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +48 -3
- package/dist/column/hosted-resize.d.ts +134 -29
- package/dist/column/hosted-resize.d.ts.map +1 -1
- package/dist/column/hosted-resize.js +1 -1
- package/dist/column/index.d.ts +1 -1
- package/dist/column/index.js +1 -1
- package/dist/column/paint.js +1 -1
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +152 -149
- package/dist/column/parametrics.d.ts +1 -1
- package/dist/column/parametrics.js +2 -2
- package/dist/column/renderer.d.ts.map +1 -1
- package/dist/column/renderer.js +8 -6
- package/dist/column/surface.d.ts.map +1 -1
- package/dist/column/surface.js +8 -1
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +3 -3
- package/dist/construction-dimension/definition.d.ts +1 -1
- package/dist/construction-dimension/definition.js +6 -6
- package/dist/construction-dimension/floorplan-affordances.js +1 -1
- package/dist/construction-dimension/floorplan-tool.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan-tool.js +1 -1
- package/dist/construction-dimension/floorplan.js +11 -7
- package/dist/construction-dimension/index.d.ts +3 -3
- package/dist/construction-dimension/index.js +3 -3
- package/dist/construction-dimension/panel.js +1 -1
- package/dist/construction-dimension/parametrics.js +1 -1
- package/dist/cupola/definition.d.ts +1 -1
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.js +11 -16
- package/dist/cupola/geometry.d.ts.map +1 -1
- package/dist/cupola/geometry.js +1 -1
- package/dist/cupola/index.d.ts +3 -3
- package/dist/cupola/index.js +3 -3
- package/dist/cupola/move-tool.js +4 -4
- package/dist/cupola/paint.js +2 -2
- package/dist/cupola/panel.d.ts.map +1 -1
- package/dist/cupola/panel.js +6 -24
- package/dist/cupola/parametrics.d.ts +1 -1
- package/dist/cupola/parametrics.js +1 -1
- package/dist/cupola/preview.d.ts +1 -1
- package/dist/cupola/preview.d.ts.map +1 -1
- package/dist/cupola/preview.js +2 -2
- package/dist/cupola/renderer.d.ts.map +1 -1
- package/dist/cupola/renderer.js +3 -3
- package/dist/cupola/tool.d.ts.map +1 -1
- package/dist/cupola/tool.js +7 -7
- package/dist/door/contextual-dimensions.js +1 -1
- package/dist/door/definition.d.ts +1 -1
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.js +38 -25
- package/dist/door/door-math.d.ts +6 -11
- package/dist/door/door-math.d.ts.map +1 -1
- package/dist/door/door-math.js +15 -16
- package/dist/door/floorplan-affordances.js +2 -2
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +7 -5
- package/dist/door/floorplan.d.ts.map +1 -1
- package/dist/door/floorplan.js +57 -23
- package/dist/door/index.d.ts +2 -2
- package/dist/door/index.js +2 -2
- package/dist/door/mechanism.d.ts +4 -0
- package/dist/door/mechanism.d.ts.map +1 -0
- package/dist/door/mechanism.js +24 -0
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +82 -58
- package/dist/door/paint.d.ts.map +1 -1
- package/dist/door/paint.js +4 -1
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +43 -268
- package/dist/door/parametrics.d.ts +1 -1
- package/dist/door/parametrics.js +1 -1
- package/dist/door/placement.d.ts +45 -0
- package/dist/door/placement.d.ts.map +1 -0
- package/dist/door/placement.js +51 -0
- package/dist/door/preview.d.ts +1 -1
- package/dist/door/preview.d.ts.map +1 -1
- package/dist/door/preview.js +3 -1
- package/dist/door/renderer.d.ts.map +1 -1
- package/dist/door/renderer.js +4 -3
- package/dist/door/system.d.ts.map +1 -1
- package/dist/door/system.js +1 -1
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +99 -28
- package/dist/dormer/csg-geometry.d.ts.map +1 -1
- package/dist/dormer/csg-geometry.js +3 -1
- package/dist/dormer/definition.d.ts +1 -1
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.js +10 -9
- package/dist/dormer/index.d.ts +4 -4
- package/dist/dormer/index.js +3 -3
- package/dist/dormer/move-tool.d.ts.map +1 -1
- package/dist/dormer/move-tool.js +3 -3
- package/dist/dormer/paint.d.ts.map +1 -1
- package/dist/dormer/paint.js +2 -5
- package/dist/dormer/panel-actions-section.js +1 -1
- package/dist/dormer/panel-windows-section.js +1 -1
- package/dist/dormer/panel.d.ts.map +1 -1
- package/dist/dormer/panel.js +12 -22
- package/dist/dormer/parametrics.d.ts +1 -1
- package/dist/dormer/parametrics.js +1 -1
- package/dist/dormer/placement-guides.js +3 -3
- package/dist/dormer/preview.d.ts +1 -1
- package/dist/dormer/preview.d.ts.map +1 -1
- package/dist/dormer/preview.js +2 -2
- package/dist/dormer/renderer.d.ts +1 -1
- package/dist/dormer/renderer.d.ts.map +1 -1
- package/dist/dormer/renderer.js +2 -2
- package/dist/dormer/tool.d.ts.map +1 -1
- package/dist/dormer/tool.js +6 -6
- package/dist/dormer/use-dormer-placement.js +3 -3
- package/dist/downspout/definition.d.ts +1 -1
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.js +11 -10
- package/dist/downspout/geometry.d.ts +1 -1
- package/dist/downspout/geometry.js +2 -2
- package/dist/downspout/index.d.ts +3 -3
- package/dist/downspout/index.js +3 -3
- package/dist/downspout/parametrics.d.ts +1 -1
- package/dist/downspout/parametrics.js +1 -1
- package/dist/downspout/preview.d.ts +2 -2
- package/dist/downspout/preview.d.ts.map +1 -1
- package/dist/downspout/preview.js +3 -3
- package/dist/downspout/renderer.d.ts.map +1 -1
- package/dist/downspout/renderer.js +5 -5
- package/dist/downspout/routing.d.ts +2 -2
- package/dist/downspout/routing.d.ts.map +1 -1
- package/dist/downspout/routing.js +5 -4
- package/dist/downspout/system.d.ts.map +1 -1
- package/dist/downspout/tool.d.ts.map +1 -1
- package/dist/downspout/tool.js +7 -7
- package/dist/duct-fitting/accessory-geometry.js +1 -1
- package/dist/duct-fitting/definition.d.ts +1 -1
- package/dist/duct-fitting/definition.d.ts.map +1 -1
- package/dist/duct-fitting/definition.js +12 -11
- package/dist/duct-fitting/floorplan.d.ts +1 -1
- package/dist/duct-fitting/floorplan.js +5 -5
- package/dist/duct-fitting/geometry.d.ts +1 -1
- package/dist/duct-fitting/geometry.d.ts.map +1 -1
- package/dist/duct-fitting/geometry.js +4 -4
- package/dist/duct-fitting/index.d.ts +4 -4
- package/dist/duct-fitting/index.js +4 -4
- package/dist/duct-fitting/inspector-editors.d.ts +1 -1
- package/dist/duct-fitting/move-tool.d.ts.map +1 -1
- package/dist/duct-fitting/move-tool.js +12 -6
- package/dist/duct-fitting/parametrics.d.ts +1 -1
- package/dist/duct-fitting/parametrics.js +3 -3
- package/dist/duct-fitting/ports.d.ts +1 -1
- package/dist/duct-fitting/selection.d.ts.map +1 -1
- package/dist/duct-fitting/selection.js +8 -9
- package/dist/duct-fitting/tool.d.ts +1 -1
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +14 -15
- package/dist/duct-segment/continuation.d.ts +3 -3
- package/dist/duct-segment/continuation.d.ts.map +1 -1
- package/dist/duct-segment/continuation.js +2 -2
- package/dist/duct-segment/definition.d.ts +1 -1
- package/dist/duct-segment/definition.d.ts.map +1 -1
- package/dist/duct-segment/definition.js +14 -14
- package/dist/duct-segment/floorplan.d.ts +1 -1
- package/dist/duct-segment/floorplan.js +3 -3
- package/dist/duct-segment/geometry.d.ts +1 -1
- package/dist/duct-segment/geometry.d.ts.map +1 -1
- package/dist/duct-segment/geometry.js +2 -2
- package/dist/duct-segment/index.d.ts +3 -3
- package/dist/duct-segment/index.js +3 -3
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +16 -9
- package/dist/duct-segment/parametrics.d.ts +1 -1
- package/dist/duct-segment/parametrics.js +5 -5
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +13 -12
- package/dist/duct-segment/tool.d.ts +1 -2
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +22 -18
- package/dist/duct-terminal/definition.d.ts +1 -1
- package/dist/duct-terminal/definition.js +6 -6
- package/dist/duct-terminal/floorplan.d.ts +1 -1
- package/dist/duct-terminal/floorplan.js +1 -1
- package/dist/duct-terminal/geometry.d.ts +1 -1
- package/dist/duct-terminal/geometry.js +2 -2
- package/dist/duct-terminal/index.d.ts +4 -4
- package/dist/duct-terminal/index.js +4 -4
- package/dist/duct-terminal/parametrics.d.ts +1 -1
- package/dist/duct-terminal/ports.d.ts +1 -1
- package/dist/duct-terminal/ports.js +1 -1
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +11 -12
- package/dist/elevator/definition.d.ts +1 -1
- package/dist/elevator/definition.d.ts.map +1 -1
- package/dist/elevator/definition.js +8 -9
- package/dist/elevator/floorplan-affordances.js +1 -1
- package/dist/elevator/index.d.ts +1 -1
- package/dist/elevator/index.js +1 -1
- package/dist/elevator/paint.js +1 -1
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +14 -36
- package/dist/elevator/parametrics.js +2 -2
- package/dist/elevator/renderer.d.ts.map +1 -1
- package/dist/elevator/renderer.js +4 -5
- package/dist/elevator/system.js +1 -1
- package/dist/eyebrow-vent/definition.d.ts +1 -1
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.js +11 -13
- package/dist/eyebrow-vent/geometry.d.ts.map +1 -1
- package/dist/eyebrow-vent/geometry.js +1 -1
- package/dist/eyebrow-vent/index.d.ts +3 -3
- package/dist/eyebrow-vent/index.js +3 -3
- package/dist/eyebrow-vent/move-tool.js +4 -4
- package/dist/eyebrow-vent/paint.d.ts.map +1 -1
- package/dist/eyebrow-vent/paint.js +5 -8
- package/dist/eyebrow-vent/panel.d.ts.map +1 -1
- package/dist/eyebrow-vent/panel.js +6 -24
- package/dist/eyebrow-vent/parametrics.d.ts +1 -1
- package/dist/eyebrow-vent/parametrics.js +1 -1
- package/dist/eyebrow-vent/preview.d.ts +1 -1
- package/dist/eyebrow-vent/preview.d.ts.map +1 -1
- package/dist/eyebrow-vent/preview.js +2 -2
- package/dist/eyebrow-vent/renderer.d.ts.map +1 -1
- package/dist/eyebrow-vent/renderer.js +3 -3
- package/dist/eyebrow-vent/tool.d.ts.map +1 -1
- package/dist/eyebrow-vent/tool.js +7 -7
- package/dist/fence/actions/move-endpoint.d.ts +1 -1
- package/dist/fence/actions/move-endpoint.d.ts.map +1 -1
- package/dist/fence/actions/move-endpoint.js +2 -1
- package/dist/fence/curve-tool.d.ts.map +1 -1
- package/dist/fence/definition.d.ts +3 -2
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.js +113 -43
- package/dist/fence/drafting.d.ts +42 -0
- package/dist/fence/drafting.d.ts.map +1 -0
- package/dist/fence/drafting.js +269 -0
- package/dist/fence/feature-tool.d.ts +4 -0
- package/dist/fence/feature-tool.d.ts.map +1 -0
- package/dist/fence/feature-tool.js +140 -0
- package/dist/fence/features.d.ts +2 -0
- package/dist/fence/features.d.ts.map +1 -0
- package/dist/fence/features.js +12 -0
- package/dist/fence/floorplan-affordances.d.ts.map +1 -1
- package/dist/fence/floorplan-affordances.js +2 -1
- package/dist/fence/floorplan.d.ts +2 -3
- package/dist/fence/floorplan.d.ts.map +1 -1
- package/dist/fence/floorplan.js +131 -71
- package/dist/fence/geometry-parts.d.ts +50 -0
- package/dist/fence/geometry-parts.d.ts.map +1 -0
- package/dist/fence/geometry-parts.js +1144 -0
- package/dist/fence/geometry.d.ts +2 -3
- package/dist/fence/geometry.d.ts.map +1 -1
- package/dist/fence/geometry.js +85 -8
- package/dist/fence/index.d.ts +3 -2
- package/dist/fence/index.d.ts.map +1 -1
- package/dist/fence/index.js +3 -2
- package/dist/fence/inspector-editors.d.ts +15 -0
- package/dist/fence/inspector-editors.d.ts.map +1 -1
- package/dist/fence/inspector-editors.js +128 -3
- package/dist/fence/lift.d.ts +3 -3
- package/dist/fence/lift.d.ts.map +1 -1
- package/dist/fence/lift.js +15 -3
- package/dist/fence/move-control-point-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.js +4 -4
- package/dist/fence/move-tangent-tool.d.ts.map +1 -1
- package/dist/fence/move-tool.d.ts.map +1 -1
- package/dist/fence/move-tool.js +2 -1
- package/dist/fence/paint.js +1 -1
- package/dist/fence/panel-model.d.ts +4 -0
- package/dist/fence/panel-model.d.ts.map +1 -0
- package/dist/fence/panel-model.js +12 -0
- package/dist/fence/parametrics.d.ts +1 -13
- package/dist/fence/parametrics.d.ts.map +1 -1
- package/dist/fence/parametrics.js +185 -18
- package/dist/fence/system.d.ts.map +1 -1
- package/dist/fence/system.js +142 -32
- package/dist/fence/tool.d.ts.map +1 -1
- package/dist/fence/tool.js +339 -56
- package/dist/fence-feature/actions.d.ts +7 -0
- package/dist/fence-feature/actions.d.ts.map +1 -0
- package/dist/fence-feature/actions.js +26 -0
- package/dist/fence-feature/definition.d.ts +4 -0
- package/dist/fence-feature/definition.d.ts.map +1 -0
- package/dist/fence-feature/definition.js +116 -0
- package/dist/fence-feature/floorplan-affordances.d.ts +3 -0
- package/dist/fence-feature/floorplan-affordances.d.ts.map +1 -0
- package/dist/fence-feature/floorplan-affordances.js +37 -0
- package/dist/fence-feature/floorplan.d.ts +4 -0
- package/dist/fence-feature/floorplan.d.ts.map +1 -0
- package/dist/fence-feature/floorplan.js +120 -0
- package/dist/fence-feature/geometry.d.ts +5 -0
- package/dist/fence-feature/geometry.d.ts.map +1 -0
- package/dist/fence-feature/geometry.js +43 -0
- package/dist/fence-feature/handles.d.ts +5 -0
- package/dist/fence-feature/handles.d.ts.map +1 -0
- package/dist/fence-feature/handles.js +84 -0
- package/dist/fence-feature/inspector.d.ts +6 -0
- package/dist/fence-feature/inspector.d.ts.map +1 -0
- package/dist/fence-feature/inspector.js +214 -0
- package/dist/fence-feature/interaction.d.ts +3 -0
- package/dist/fence-feature/interaction.d.ts.map +1 -0
- package/dist/fence-feature/interaction.js +41 -0
- package/dist/fence-feature/move-session.d.ts +9 -0
- package/dist/fence-feature/move-session.d.ts.map +1 -0
- package/dist/fence-feature/move-session.js +48 -0
- package/dist/fence-feature/move-tool.d.ts +5 -0
- package/dist/fence-feature/move-tool.d.ts.map +1 -0
- package/dist/fence-feature/move-tool.js +58 -0
- package/dist/fence-feature/pick-target.d.ts +7 -0
- package/dist/fence-feature/pick-target.d.ts.map +1 -0
- package/dist/fence-feature/pick-target.js +52 -0
- package/dist/floor-opening/definition.d.ts +3 -0
- package/dist/floor-opening/definition.d.ts.map +1 -0
- package/dist/floor-opening/definition.js +41 -0
- package/dist/floor-opening/floorplan.d.ts +156 -0
- package/dist/floor-opening/floorplan.d.ts.map +1 -0
- package/dist/floor-opening/floorplan.js +63 -0
- package/dist/guide/definition.d.ts +1 -1
- package/dist/guide/definition.js +4 -4
- package/dist/guide/index.d.ts +1 -1
- package/dist/guide/index.js +1 -1
- package/dist/guide/renderer.d.ts.map +1 -1
- package/dist/guide/system.d.ts.map +1 -1
- package/dist/gutter/definition.d.ts +1 -1
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.js +12 -11
- package/dist/gutter/downspouts-panel.js +3 -3
- package/dist/gutter/eave-align.js +2 -2
- package/dist/gutter/eave-snap.d.ts.map +1 -1
- package/dist/gutter/eave-snap.js +2 -2
- package/dist/gutter/floorplan.d.ts.map +1 -1
- package/dist/gutter/floorplan.js +5 -4
- package/dist/gutter/geometry.d.ts +1 -1
- package/dist/gutter/geometry.js +3 -3
- package/dist/gutter/index.d.ts +3 -3
- package/dist/gutter/index.js +3 -3
- package/dist/gutter/move-tool.js +4 -4
- package/dist/gutter/outlet-lookup.d.ts +1 -1
- package/dist/gutter/outlet-lookup.js +1 -1
- package/dist/gutter/paint.js +1 -1
- package/dist/gutter/parametrics.d.ts +1 -1
- package/dist/gutter/parametrics.js +1 -1
- package/dist/gutter/preview.d.ts +1 -1
- package/dist/gutter/preview.d.ts.map +1 -1
- package/dist/gutter/preview.js +3 -3
- package/dist/gutter/renderer.d.ts.map +1 -1
- package/dist/gutter/renderer.js +6 -6
- package/dist/gutter/tool.d.ts.map +1 -1
- package/dist/gutter/tool.js +7 -7
- package/dist/hvac-equipment/definition.d.ts +1 -1
- package/dist/hvac-equipment/definition.js +6 -6
- package/dist/hvac-equipment/floorplan.d.ts +1 -1
- package/dist/hvac-equipment/floorplan.js +2 -2
- package/dist/hvac-equipment/geometry.d.ts +1 -1
- package/dist/hvac-equipment/geometry.js +2 -2
- package/dist/hvac-equipment/index.d.ts +4 -4
- package/dist/hvac-equipment/index.js +4 -4
- package/dist/hvac-equipment/parametrics.d.ts +1 -1
- package/dist/hvac-equipment/ports.d.ts +1 -1
- package/dist/hvac-equipment/ports.js +1 -1
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +7 -8
- package/dist/imported-mesh/definition.d.ts +1 -1
- package/dist/imported-mesh/definition.d.ts.map +1 -1
- package/dist/imported-mesh/definition.js +5 -3
- package/dist/imported-mesh/geometry.d.ts +1 -1
- package/dist/imported-mesh/geometry.d.ts.map +1 -1
- package/dist/imported-mesh/geometry.js +40 -12
- package/dist/imported-mesh/index.d.ts +3 -3
- package/dist/imported-mesh/index.js +3 -3
- package/dist/index.d.ts +65 -50
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -100
- package/dist/item/authored-face-host.d.ts +10 -0
- package/dist/item/authored-face-host.d.ts.map +1 -0
- package/dist/item/authored-face-host.js +87 -0
- package/dist/item/authored-params.d.ts +15 -0
- package/dist/item/authored-params.d.ts.map +1 -0
- package/dist/item/authored-params.js +72 -0
- package/dist/item/definition.d.ts +3 -3
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +46 -15
- package/dist/item/floorplan-move.js +4 -4
- package/dist/item/floorplan.d.ts +1 -1
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +36 -6
- package/dist/item/index.d.ts +3 -2
- package/dist/item/index.d.ts.map +1 -1
- package/dist/item/index.js +3 -2
- package/dist/item/model-loader.d.ts +7 -0
- package/dist/item/model-loader.d.ts.map +1 -1
- package/dist/item/model-loader.js +104 -23
- package/dist/item/move-tool.d.ts.map +1 -1
- package/dist/item/move-tool.js +4 -4
- package/dist/item/paint.d.ts.map +1 -1
- package/dist/item/paint.js +5 -24
- package/dist/item/panel.d.ts +1 -3
- package/dist/item/panel.d.ts.map +1 -1
- package/dist/item/panel.js +23 -27
- package/dist/item/parametrics.d.ts +1 -1
- package/dist/item/parametrics.js +1 -1
- package/dist/item/placement-notice.d.ts +14 -0
- package/dist/item/placement-notice.d.ts.map +1 -0
- package/dist/item/placement-notice.js +38 -0
- package/dist/item/plan-symbols.d.ts +67 -0
- package/dist/item/plan-symbols.d.ts.map +1 -0
- package/dist/item/plan-symbols.js +407 -0
- package/dist/item/renderer.d.ts +10 -0
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +78 -48
- package/dist/item/script-param-defaults.d.ts +12 -0
- package/dist/item/script-param-defaults.d.ts.map +1 -0
- package/dist/item/script-param-defaults.js +34 -0
- package/dist/item/system.d.ts.map +1 -1
- package/dist/item/system.js +7 -2
- package/dist/item/tool.d.ts.map +1 -1
- package/dist/item/tool.js +3 -3
- package/dist/item/wall-object-observations.d.ts +6 -0
- package/dist/item/wall-object-observations.d.ts.map +1 -0
- package/dist/item/wall-object-observations.js +260 -0
- package/dist/lean-to-extension/assembly.d.ts +2 -2
- package/dist/lean-to-extension/assembly.js +8 -8
- package/dist/lean-to-extension/canopy-joint.d.ts +1 -1
- package/dist/lean-to-extension/canopy-joint.js +1 -1
- package/dist/lean-to-extension/corner-joint.js +4 -4
- package/dist/lean-to-extension/definition.d.ts +1 -1
- package/dist/lean-to-extension/definition.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.js +18 -18
- package/dist/lean-to-extension/floorplan-affordances.js +4 -4
- package/dist/lean-to-extension/floorplan-move.js +4 -4
- package/dist/lean-to-extension/floorplan-tool.d.ts.map +1 -1
- package/dist/lean-to-extension/floorplan-tool.js +7 -7
- package/dist/lean-to-extension/floorplan.js +5 -5
- package/dist/lean-to-extension/geometry.d.ts.map +1 -1
- package/dist/lean-to-extension/geometry.js +5 -5
- package/dist/lean-to-extension/index.d.ts +7 -7
- package/dist/lean-to-extension/index.js +7 -7
- package/dist/lean-to-extension/layout.d.ts +1 -1
- package/dist/lean-to-extension/layout.d.ts.map +1 -1
- package/dist/lean-to-extension/layout.js +6 -7
- package/dist/lean-to-extension/managed-preview.js +4 -4
- package/dist/lean-to-extension/move-tool.d.ts.map +1 -1
- package/dist/lean-to-extension/move-tool.js +5 -5
- package/dist/lean-to-extension/paint.js +1 -1
- package/dist/lean-to-extension/parametrics.js +1 -1
- package/dist/lean-to-extension/placement-validation.d.ts.map +1 -1
- package/dist/lean-to-extension/placement-validation.js +9 -9
- package/dist/lean-to-extension/placement.d.ts +1 -1
- package/dist/lean-to-extension/placement.js +6 -6
- package/dist/lean-to-extension/plan-footprint.js +2 -2
- package/dist/lean-to-extension/preview-geometry.js +1 -1
- package/dist/lean-to-extension/preview.d.ts.map +1 -1
- package/dist/lean-to-extension/preview.js +1 -1
- package/dist/lean-to-extension/renderer.d.ts.map +1 -1
- package/dist/lean-to-extension/renderer.js +1 -1
- package/dist/lean-to-extension/roof-attachment.d.ts.map +1 -1
- package/dist/lean-to-extension/roof-attachment.js +4 -4
- package/dist/lean-to-extension/system.d.ts.map +1 -1
- package/dist/lean-to-extension/system.js +10 -10
- package/dist/lean-to-extension/tool.d.ts.map +1 -1
- package/dist/lean-to-extension/tool.js +16 -16
- package/dist/level/definition.d.ts +1 -1
- package/dist/level/definition.d.ts.map +1 -1
- package/dist/level/definition.js +5 -4
- package/dist/level/index.d.ts +1 -1
- package/dist/level/index.js +1 -1
- package/dist/level/renderer.d.ts.map +1 -1
- package/dist/level/system.d.ts.map +1 -1
- package/dist/lineset/definition.d.ts +1 -1
- package/dist/lineset/definition.js +8 -8
- package/dist/lineset/floorplan.d.ts +1 -1
- package/dist/lineset/floorplan.js +1 -1
- package/dist/lineset/geometry.d.ts +1 -1
- package/dist/lineset/geometry.js +1 -1
- package/dist/lineset/index.d.ts +3 -3
- package/dist/lineset/index.js +3 -3
- package/dist/lineset/move-tool.d.ts.map +1 -1
- package/dist/lineset/move-tool.js +10 -4
- package/dist/lineset/parametrics.d.ts +1 -1
- package/dist/lineset/selection.d.ts.map +1 -1
- package/dist/lineset/selection.js +1 -1
- package/dist/lineset/tool.d.ts.map +1 -1
- package/dist/lineset/tool.js +7 -8
- package/dist/liquid-line/definition.d.ts +1 -1
- package/dist/liquid-line/definition.js +8 -8
- package/dist/liquid-line/floorplan.d.ts +1 -1
- package/dist/liquid-line/floorplan.js +1 -1
- package/dist/liquid-line/geometry.d.ts +1 -1
- package/dist/liquid-line/geometry.js +1 -1
- package/dist/liquid-line/index.d.ts +4 -4
- package/dist/liquid-line/index.js +4 -4
- package/dist/liquid-line/move-tool.d.ts.map +1 -1
- package/dist/liquid-line/move-tool.js +9 -3
- package/dist/liquid-line/parametrics.d.ts +1 -1
- package/dist/liquid-line/selection.d.ts.map +1 -1
- package/dist/liquid-line/selection.js +1 -1
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +9 -10
- package/dist/measurement/definition.d.ts +1 -1
- package/dist/measurement/definition.js +7 -7
- package/dist/measurement/edit.d.ts +1 -1
- package/dist/measurement/floorplan-affordance.js +2 -2
- package/dist/measurement/floorplan.js +2 -2
- package/dist/measurement/index.d.ts +2 -2
- package/dist/measurement/index.js +2 -2
- package/dist/measurement/renderer.d.ts.map +1 -1
- package/dist/measurement/renderer.js +2 -2
- package/dist/measurement/selection.d.ts.map +1 -1
- package/dist/measurement/selection.js +4 -4
- package/dist/measurement/smart-surface.d.ts +1 -1
- package/dist/measurement/smart-tool.d.ts.map +1 -1
- package/dist/measurement/smart-tool.js +2 -2
- package/dist/measurement/surface-query.js +1 -1
- package/dist/measurement/tool-router.js +2 -2
- package/dist/measurement/tool.d.ts +1 -1
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +3 -3
- package/dist/pipe-fitting/definition.d.ts +1 -1
- package/dist/pipe-fitting/definition.js +11 -11
- package/dist/pipe-fitting/floorplan.d.ts +1 -1
- package/dist/pipe-fitting/floorplan.js +4 -4
- package/dist/pipe-fitting/geometry.d.ts +1 -1
- package/dist/pipe-fitting/geometry.js +4 -4
- package/dist/pipe-fitting/index.d.ts +4 -4
- package/dist/pipe-fitting/index.js +4 -4
- package/dist/pipe-fitting/inline-insertion.d.ts +1 -1
- package/dist/pipe-fitting/inline-insertion.d.ts.map +1 -1
- package/dist/pipe-fitting/inline-insertion.js +1 -1
- package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
- package/dist/pipe-fitting/move-tool.js +11 -5
- package/dist/pipe-fitting/parametrics.d.ts +1 -1
- package/dist/pipe-fitting/parametrics.js +1 -1
- package/dist/pipe-fitting/ports.d.ts +1 -1
- package/dist/pipe-fitting/ports.js +1 -1
- package/dist/pipe-fitting/selection.d.ts.map +1 -1
- package/dist/pipe-fitting/selection.js +6 -7
- package/dist/pipe-fitting/tool.d.ts +2 -2
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +15 -16
- package/dist/pipe-segment/continuation.d.ts +4 -4
- package/dist/pipe-segment/continuation.d.ts.map +1 -1
- package/dist/pipe-segment/continuation.js +1 -1
- package/dist/pipe-segment/definition.d.ts +1 -1
- package/dist/pipe-segment/definition.js +11 -11
- package/dist/pipe-segment/floorplan.d.ts +1 -1
- package/dist/pipe-segment/floorplan.js +3 -3
- package/dist/pipe-segment/geometry.d.ts +1 -1
- package/dist/pipe-segment/geometry.js +2 -2
- package/dist/pipe-segment/index.d.ts +3 -3
- package/dist/pipe-segment/index.js +3 -3
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +11 -5
- package/dist/pipe-segment/parametrics.d.ts +1 -1
- package/dist/pipe-segment/parametrics.js +3 -3
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +10 -9
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +13 -14
- package/dist/pipe-trap/definition.d.ts +1 -1
- package/dist/pipe-trap/definition.js +6 -6
- package/dist/pipe-trap/floorplan.d.ts +1 -1
- package/dist/pipe-trap/floorplan.js +1 -1
- package/dist/pipe-trap/geometry.d.ts +1 -1
- package/dist/pipe-trap/geometry.js +2 -2
- package/dist/pipe-trap/index.d.ts +4 -4
- package/dist/pipe-trap/index.js +4 -4
- package/dist/pipe-trap/parametrics.d.ts +1 -1
- package/dist/pipe-trap/ports.d.ts +1 -1
- package/dist/pipe-trap/ports.js +1 -1
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -8
- package/dist/procedural-item/animation.d.ts +8 -0
- package/dist/procedural-item/animation.d.ts.map +1 -0
- package/dist/procedural-item/animation.js +116 -0
- package/dist/procedural-item/definition.d.ts.map +1 -1
- package/dist/procedural-item/definition.js +81 -13
- package/dist/procedural-item/geometry.d.ts +5 -1
- package/dist/procedural-item/geometry.d.ts.map +1 -1
- package/dist/procedural-item/geometry.js +239 -15
- package/dist/procedural-item/index.d.ts +2 -2
- package/dist/procedural-item/index.js +2 -2
- package/dist/procedural-item/move-session.d.ts +1 -1
- package/dist/procedural-item/move-session.js +2 -2
- package/dist/procedural-item/move-tool.js +3 -3
- package/dist/procedural-item/renderer.d.ts.map +1 -1
- package/dist/procedural-item/renderer.js +273 -24
- package/dist/ridge-vent/definition.d.ts +1 -1
- package/dist/ridge-vent/definition.d.ts.map +1 -1
- package/dist/ridge-vent/definition.js +9 -8
- package/dist/ridge-vent/geometry.js +1 -1
- package/dist/ridge-vent/index.d.ts +3 -3
- package/dist/ridge-vent/index.js +3 -3
- package/dist/ridge-vent/move-tool.js +5 -5
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +6 -24
- package/dist/ridge-vent/parametrics.d.ts +1 -1
- package/dist/ridge-vent/parametrics.js +1 -1
- package/dist/ridge-vent/preview.d.ts +1 -1
- package/dist/ridge-vent/preview.d.ts.map +1 -1
- package/dist/ridge-vent/preview.js +2 -2
- package/dist/ridge-vent/renderer.d.ts.map +1 -1
- package/dist/ridge-vent/renderer.js +14 -12
- package/dist/ridge-vent/tool.d.ts.map +1 -1
- package/dist/ridge-vent/tool.js +8 -8
- package/dist/roof/barrel-panel.d.ts +5 -0
- package/dist/roof/barrel-panel.d.ts.map +1 -0
- package/dist/roof/barrel-panel.js +17 -0
- package/dist/roof/conical-roof.d.ts +5 -1
- package/dist/roof/conical-roof.d.ts.map +1 -1
- package/dist/roof/conical-roof.js +19 -15
- package/dist/roof/definition.d.ts +1 -1
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +22 -11
- package/dist/roof/floorplan.d.ts +8 -0
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +202 -19
- package/dist/roof/glazed-geometry.d.ts +5 -0
- package/dist/roof/glazed-geometry.d.ts.map +1 -0
- package/dist/roof/glazed-geometry.js +27 -0
- package/dist/roof/glazed-materials.d.ts +14 -0
- package/dist/roof/glazed-materials.d.ts.map +1 -0
- package/dist/roof/glazed-materials.js +42 -0
- package/dist/roof/glazing-controls.d.ts +33 -0
- package/dist/roof/glazing-controls.d.ts.map +1 -0
- package/dist/roof/glazing-controls.js +50 -0
- package/dist/roof/glazing-panel-editor.d.ts +6 -0
- package/dist/roof/glazing-panel-editor.d.ts.map +1 -0
- package/dist/roof/glazing-panel-editor.js +44 -0
- package/dist/roof/glazing-panel.d.ts +5 -0
- package/dist/roof/glazing-panel.d.ts.map +1 -0
- package/dist/roof/glazing-panel.js +41 -0
- package/dist/roof/glazing-preview.d.ts +10 -0
- package/dist/roof/glazing-preview.d.ts.map +1 -0
- package/dist/roof/glazing-preview.js +48 -0
- package/dist/roof/index.d.ts +3 -3
- package/dist/roof/index.js +3 -3
- package/dist/roof/panel-model.d.ts.map +1 -1
- package/dist/roof/panel-model.js +10 -6
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +43 -15
- package/dist/roof/parametrics.js +1 -1
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +40 -7
- package/dist/roof/roof-footprint-source.d.ts.map +1 -1
- package/dist/roof/roof-level-target.d.ts +75 -0
- package/dist/roof/roof-level-target.d.ts.map +1 -0
- package/dist/roof/roof-level-target.js +119 -0
- package/dist/roof/roof-placement-mode.d.ts +3 -2
- package/dist/roof/roof-placement-mode.d.ts.map +1 -1
- package/dist/roof/system.d.ts +1 -2
- package/dist/roof/system.d.ts.map +1 -1
- package/dist/roof/system.js +5 -1
- package/dist/roof/tool.d.ts +3 -3
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +80 -41
- package/dist/roof-segment/definition.d.ts +1 -1
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +31 -62
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +13 -34
- package/dist/roof-segment/floorplan.d.ts.map +1 -1
- package/dist/roof-segment/floorplan.js +1 -0
- package/dist/roof-segment/index.d.ts +1 -1
- package/dist/roof-segment/index.js +1 -1
- package/dist/roof-segment/measurement.js +1 -1
- package/dist/roof-segment/paint.d.ts +4 -0
- package/dist/roof-segment/paint.d.ts.map +1 -0
- package/dist/roof-segment/paint.js +92 -0
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +20 -30
- package/dist/roof-segment/parametrics.d.ts +1 -1
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +12 -1
- package/dist/roof-segment/renderer.d.ts +1 -1
- package/dist/roof-segment/renderer.d.ts.map +1 -1
- package/dist/roof-segment/renderer.js +81 -19
- package/dist/scan/definition.d.ts +1 -1
- package/dist/scan/definition.js +4 -4
- package/dist/scan/index.d.ts +1 -1
- package/dist/scan/index.js +1 -1
- package/dist/scan/renderer.d.ts.map +1 -1
- package/dist/scan/system.d.ts.map +1 -1
- package/dist/separator/definition.d.ts +3 -0
- package/dist/separator/definition.d.ts.map +1 -0
- package/dist/separator/definition.js +39 -0
- package/dist/separator/renderer.d.ts +5 -0
- package/dist/separator/renderer.d.ts.map +1 -0
- package/dist/separator/renderer.js +36 -0
- package/dist/shared/accessory-placement.d.ts +1 -1
- package/dist/shared/accessory-placement.d.ts.map +1 -1
- package/dist/shared/accessory-placement.js +3 -3
- package/dist/shared/accessory-snapping.d.ts +1 -1
- package/dist/shared/accessory-snapping.d.ts.map +1 -1
- package/dist/shared/accessory-snapping.js +1 -1
- package/dist/shared/auto-fitting.d.ts +1 -1
- package/dist/shared/auto-fitting.d.ts.map +1 -1
- package/dist/shared/auto-fitting.js +3 -3
- package/dist/shared/automatic-run-end-cap.d.ts +1 -1
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -1
- package/dist/shared/automatic-run-end-cap.js +4 -4
- package/dist/shared/block-face-host.d.ts +1 -1
- package/dist/shared/connection-feedback.d.ts +1 -2
- package/dist/shared/connection-feedback.d.ts.map +1 -1
- package/dist/shared/connection-feedback.js +1 -2
- package/dist/shared/construction-dimension-standards.d.ts +1 -1
- package/dist/shared/curtain-opening-limits.js +1 -1
- package/dist/shared/draft-axis-guides.js +1 -1
- package/dist/shared/duct-adapter.d.ts +2 -2
- package/dist/shared/duct-adapter.d.ts.map +1 -1
- package/dist/shared/duct-adapter.js +3 -3
- package/dist/shared/duct-body-paint.d.ts +0 -4
- package/dist/shared/duct-body-paint.d.ts.map +1 -1
- package/dist/shared/duct-body-paint.js +2 -6
- package/dist/shared/elbow-branch-continuation.d.ts +1 -1
- package/dist/shared/elbow-branch-continuation.d.ts.map +1 -1
- package/dist/shared/elbow-branch-continuation.js +2 -2
- package/dist/shared/finish-script-model.d.ts +12 -0
- package/dist/shared/finish-script-model.d.ts.map +1 -0
- package/dist/shared/finish-script-model.js +32 -0
- package/dist/shared/fitting-deletion-cleanup.js +2 -2
- package/dist/shared/fitting-endpoint-reaim.js +3 -3
- package/dist/shared/fitting-surface-support.d.ts.map +1 -1
- package/dist/shared/fitting-surface-support.js +2 -2
- package/dist/shared/fitting-tool-options.js +1 -1
- package/dist/shared/floor-placement.d.ts.map +1 -1
- package/dist/shared/floorplan-cursor.d.ts.map +1 -1
- package/dist/shared/hosted-resize.d.ts +2 -1
- package/dist/shared/hosted-resize.d.ts.map +1 -1
- package/dist/shared/hosted-resize.js +11 -3
- package/dist/shared/item-interaction-actions.d.ts +6 -0
- package/dist/shared/item-interaction-actions.d.ts.map +1 -0
- package/dist/shared/item-interaction-actions.js +27 -0
- package/dist/shared/item-interactions.d.ts +9 -0
- package/dist/shared/item-interactions.d.ts.map +1 -0
- package/dist/shared/item-interactions.js +74 -0
- package/dist/shared/item-light-placement.d.ts +2 -0
- package/dist/shared/item-light-placement.d.ts.map +1 -0
- package/dist/shared/item-light-placement.js +3 -0
- package/dist/shared/lean-to-post-omissions.d.ts +1 -1
- package/dist/shared/lean-to-post-omissions.js +1 -1
- package/dist/shared/mep-ghost.js +5 -5
- package/dist/shared/move-roof-tool.d.ts.map +1 -1
- package/dist/shared/move-roof-tool.js +129 -35
- package/dist/shared/node-batch/batchable.d.ts +12 -0
- package/dist/shared/node-batch/batchable.d.ts.map +1 -0
- package/dist/shared/node-batch/batchable.js +43 -0
- package/dist/shared/node-batch/candidates.d.ts +8 -6
- package/dist/shared/node-batch/candidates.d.ts.map +1 -1
- package/dist/shared/node-batch/candidates.js +44 -60
- package/dist/shared/node-batch/release.d.ts +8 -0
- package/dist/shared/node-batch/release.d.ts.map +1 -0
- package/dist/shared/node-batch/release.js +16 -0
- package/dist/shared/node-batch/store.d.ts +1 -1
- package/dist/shared/node-batch/store.d.ts.map +1 -1
- package/dist/shared/node-batch/store.js +1 -1
- package/dist/shared/node-batch/system.d.ts.map +1 -1
- package/dist/shared/node-batch/system.js +36 -16
- package/dist/shared/node-batch/types.d.ts +4 -1
- package/dist/shared/node-batch/types.d.ts.map +1 -1
- package/dist/shared/opening-documentation.d.ts +14 -2
- package/dist/shared/opening-documentation.d.ts.map +1 -1
- package/dist/shared/opening-documentation.js +246 -60
- package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
- package/dist/shared/opening-guides-runtime.js +18 -15
- package/dist/shared/opening-move-wall-gate.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +5 -5
- package/dist/shared/opening-plane-offset.d.ts +23 -0
- package/dist/shared/opening-plane-offset.d.ts.map +1 -0
- package/dist/shared/opening-plane-offset.js +24 -0
- package/dist/shared/opening-property-preview-host.d.ts +1 -1
- package/dist/shared/opening-property-preview.d.ts.map +1 -1
- package/dist/shared/opening-property-preview.js +1 -1
- package/dist/shared/panel-fields.js +2 -2
- package/dist/shared/path-point-affordance.js +2 -2
- package/dist/shared/pipe-run-translation-offset.d.ts +2 -2
- package/dist/shared/pipe-run-translation-offset.d.ts.map +1 -1
- package/dist/shared/pipe-run-translation-offset.js +2 -2
- package/dist/shared/pipe-vertical-offset.d.ts +2 -2
- package/dist/shared/pipe-vertical-offset.d.ts.map +1 -1
- package/dist/shared/pipe-vertical-offset.js +2 -2
- package/dist/shared/polygon-centroid-move.d.ts.map +1 -1
- package/dist/shared/polygon-centroid-move.js +5 -2
- package/dist/shared/polygon-vertex-affordance.d.ts.map +1 -1
- package/dist/shared/polygon-vertex-affordance.js +19 -15
- package/dist/shared/port-systems.d.ts +9 -0
- package/dist/shared/port-systems.d.ts.map +1 -0
- package/dist/shared/port-systems.js +10 -0
- package/dist/shared/refrigerant-line-selection.d.ts.map +1 -1
- package/dist/shared/refrigerant-line-selection.js +3 -2
- package/dist/shared/relative-roof-drag.d.ts +1 -1
- package/dist/shared/relative-roof-drag.js +2 -2
- package/dist/shared/roof-segment-hit.d.ts.map +1 -1
- package/dist/shared/roof-segment-hit.js +7 -5
- package/dist/shared/roof-surface-placement-guides.d.ts +1 -1
- package/dist/shared/roof-surface-placement-guides.js +11 -11
- package/dist/shared/roof-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +25 -5
- package/dist/shared/run-hanger-controls.d.ts +1 -1
- package/dist/shared/run-hanger-controls.js +1 -1
- package/dist/shared/run-hanger-inspector.d.ts +1 -1
- package/dist/shared/run-hanger-inspector.js +3 -3
- package/dist/shared/run-hangers.d.ts.map +1 -1
- package/dist/shared/run-hangers.js +7 -6
- package/dist/shared/run-move-connectivity.d.ts.map +1 -1
- package/dist/shared/run-translation-offset.d.ts +3 -3
- package/dist/shared/run-translation-offset.d.ts.map +1 -1
- package/dist/shared/run-translation-offset.js +2 -2
- package/dist/shared/scripted-opening-handles.d.ts +18 -0
- package/dist/shared/scripted-opening-handles.d.ts.map +1 -0
- package/dist/shared/scripted-opening-handles.js +53 -0
- package/dist/shared/scripted-opening.d.ts +25 -0
- package/dist/shared/scripted-opening.d.ts.map +1 -0
- package/dist/shared/scripted-opening.js +72 -0
- package/dist/shared/slot-paint.d.ts +14 -2
- package/dist/shared/slot-paint.d.ts.map +1 -1
- package/dist/shared/slot-paint.js +29 -29
- package/dist/shared/surface-paint.d.ts.map +1 -1
- package/dist/shared/surface-paint.js +3 -6
- package/dist/shared/swap-preview-material.d.ts +13 -0
- package/dist/shared/swap-preview-material.d.ts.map +1 -0
- package/dist/shared/swap-preview-material.js +27 -0
- package/dist/shared/system-check-panel.js +1 -1
- package/dist/shared/system-checks.d.ts.map +1 -1
- package/dist/shared/system-checks.js +7 -5
- package/dist/shared/vertical-offset.d.ts +3 -3
- package/dist/shared/vertical-offset.d.ts.map +1 -1
- package/dist/shared/vertical-offset.js +3 -3
- package/dist/shared/wall-attach-target.d.ts +3 -10
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +3 -63
- package/dist/shared/wall-opening-ceiling.d.ts +5 -15
- package/dist/shared/wall-opening-ceiling.d.ts.map +1 -1
- package/dist/shared/wall-opening-ceiling.js +10 -18
- package/dist/shared/wall-run-move.d.ts +1 -1
- package/dist/shared/wall-run-move.d.ts.map +1 -1
- package/dist/shelf/definition.d.ts +1 -1
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +14 -12
- package/dist/shelf/dimensions.d.ts +1 -1
- package/dist/shelf/floorplan-affordances.js +1 -1
- package/dist/shelf/floorplan-move.js +1 -1
- package/dist/shelf/floorplan.d.ts +1 -1
- package/dist/shelf/floorplan.js +2 -2
- package/dist/shelf/geometry.d.ts +1 -1
- package/dist/shelf/geometry.d.ts.map +1 -1
- package/dist/shelf/geometry.js +2 -3
- package/dist/shelf/index.d.ts +3 -3
- package/dist/shelf/index.js +3 -3
- package/dist/shelf/paint.d.ts.map +1 -1
- package/dist/shelf/paint.js +4 -10
- package/dist/shelf/parametrics.d.ts +1 -1
- package/dist/shelf/preview.d.ts +1 -1
- package/dist/shelf/preview.d.ts.map +1 -1
- package/dist/shelf/preview.js +1 -1
- package/dist/shelf/tool.d.ts.map +1 -1
- package/dist/shelf/tool.js +3 -3
- package/dist/site/definition.d.ts +1 -1
- package/dist/site/definition.d.ts.map +1 -1
- package/dist/site/definition.js +5 -4
- package/dist/site/generic-foundation-geometry.d.ts +16 -0
- package/dist/site/generic-foundation-geometry.d.ts.map +1 -0
- package/dist/site/generic-foundation-geometry.js +75 -0
- package/dist/site/generic-foundation.d.ts +4 -0
- package/dist/site/generic-foundation.d.ts.map +1 -0
- package/dist/site/generic-foundation.js +91 -0
- package/dist/site/ground-hole.d.ts +92 -0
- package/dist/site/ground-hole.d.ts.map +1 -0
- package/dist/site/ground-hole.js +306 -0
- package/dist/site/ground-pit-geometry.d.ts +39 -0
- package/dist/site/ground-pit-geometry.d.ts.map +1 -0
- package/dist/site/ground-pit-geometry.js +213 -0
- package/dist/site/ground-pit.d.ts +45 -0
- package/dist/site/ground-pit.d.ts.map +1 -0
- package/dist/site/ground-pit.js +175 -0
- package/dist/site/ground-veil.d.ts +39 -0
- package/dist/site/ground-veil.d.ts.map +1 -0
- package/dist/site/ground-veil.js +86 -0
- package/dist/site/ground-window-system.d.ts +9 -0
- package/dist/site/ground-window-system.d.ts.map +1 -0
- package/dist/site/ground-window-system.js +108 -0
- package/dist/site/hole-noise.d.ts +11 -0
- package/dist/site/hole-noise.d.ts.map +1 -0
- package/dist/site/hole-noise.js +79 -0
- package/dist/site/index.d.ts +1 -1
- package/dist/site/index.js +1 -1
- package/dist/site/line-ribbon.d.ts +31 -0
- package/dist/site/line-ribbon.d.ts.map +1 -0
- package/dist/site/line-ribbon.js +117 -0
- package/dist/site/lot-mask.d.ts +20 -0
- package/dist/site/lot-mask.d.ts.map +1 -0
- package/dist/site/lot-mask.js +39 -0
- package/dist/site/panel.d.ts +10 -0
- package/dist/site/panel.d.ts.map +1 -0
- package/dist/site/panel.js +179 -0
- package/dist/site/parametrics.d.ts +7 -0
- package/dist/site/parametrics.d.ts.map +1 -1
- package/dist/site/parametrics.js +8 -0
- package/dist/site/recessed-slab-ground-holes.d.ts.map +1 -1
- package/dist/site/recessed-slab-ground-holes.js +5 -2
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +275 -40
- package/dist/site/terrain-geometry.d.ts +28 -1
- package/dist/site/terrain-geometry.d.ts.map +1 -1
- package/dist/site/terrain-geometry.js +78 -4
- package/dist/site/terrain-holes.d.ts +15 -0
- package/dist/site/terrain-holes.d.ts.map +1 -0
- package/dist/site/terrain-holes.js +74 -0
- package/dist/site/terrain-mesh.d.ts +10 -3
- package/dist/site/terrain-mesh.d.ts.map +1 -1
- package/dist/site/terrain-mesh.js +36 -9
- package/dist/site/terrain-renderer.d.ts +11 -2
- package/dist/site/terrain-renderer.d.ts.map +1 -1
- package/dist/site/terrain-renderer.js +23 -6
- package/dist/site/underground-edge.d.ts +26 -0
- package/dist/site/underground-edge.d.ts.map +1 -0
- package/dist/site/underground-edge.js +46 -0
- package/dist/skylight/definition.d.ts +1 -1
- package/dist/skylight/definition.d.ts.map +1 -1
- package/dist/skylight/definition.js +11 -10
- package/dist/skylight/geometry.d.ts +1 -1
- package/dist/skylight/geometry.js +1 -1
- package/dist/skylight/index.d.ts +4 -4
- package/dist/skylight/index.js +4 -4
- package/dist/skylight/move-tool.js +4 -4
- package/dist/skylight/panel.js +3 -3
- package/dist/skylight/parametrics.d.ts +1 -1
- package/dist/skylight/parametrics.js +1 -1
- package/dist/skylight/preview.d.ts +1 -1
- package/dist/skylight/preview.d.ts.map +1 -1
- package/dist/skylight/preview.js +2 -2
- package/dist/skylight/renderer.d.ts.map +1 -1
- package/dist/skylight/renderer.js +5 -5
- package/dist/skylight/system.d.ts.map +1 -1
- package/dist/skylight/tool.d.ts.map +1 -1
- package/dist/skylight/tool.js +7 -7
- package/dist/slab/boundary-editor.d.ts +1 -1
- package/dist/slab/boundary-editor.d.ts.map +1 -1
- package/dist/slab/boundary-editor.js +13 -13
- package/dist/slab/definition.d.ts +1 -1
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +44 -19
- package/dist/slab/dependency-tracker.d.ts.map +1 -1
- package/dist/slab/dependency-tracker.js +67 -7
- package/dist/slab/elevation-limit.d.ts.map +1 -1
- package/dist/slab/elevation-limit.js +2 -2
- package/dist/slab/floorplan-affordances.d.ts +232 -60
- package/dist/slab/floorplan-affordances.d.ts.map +1 -1
- package/dist/slab/floorplan-affordances.js +1 -2
- package/dist/slab/floorplan-move.d.ts.map +1 -1
- package/dist/slab/floorplan-move.js +4 -5
- package/dist/slab/floorplan.d.ts +7 -0
- package/dist/slab/floorplan.d.ts.map +1 -1
- package/dist/slab/floorplan.js +22 -5
- package/dist/slab/geometry.d.ts.map +1 -1
- package/dist/slab/geometry.js +187 -77
- package/dist/slab/hole-editor.d.ts.map +1 -1
- package/dist/slab/index.d.ts +2 -2
- package/dist/slab/index.js +2 -2
- package/dist/slab/move-tool.d.ts.map +1 -1
- package/dist/slab/move-tool.js +7 -6
- package/dist/slab/paint.d.ts +18 -5
- package/dist/slab/paint.d.ts.map +1 -1
- package/dist/slab/paint.js +461 -9
- package/dist/slab/panel.d.ts.map +1 -1
- package/dist/slab/panel.js +32 -13
- package/dist/slab/parametrics.d.ts +1 -1
- package/dist/slab/parametrics.js +1 -1
- package/dist/slab/placement-ownership.d.ts +2 -1
- package/dist/slab/placement-ownership.d.ts.map +1 -1
- package/dist/slab/placement-ownership.js +2 -2
- package/dist/slab/quick-measurement.js +1 -1
- package/dist/slab/surface-split.d.ts +24 -0
- package/dist/slab/surface-split.d.ts.map +1 -0
- package/dist/slab/surface-split.js +389 -0
- package/dist/slab/system.d.ts.map +1 -1
- package/dist/slab/system.js +1 -1
- package/dist/slab/tool.d.ts.map +1 -1
- package/dist/slab/tool.js +7 -5
- package/dist/solar-panel/definition.d.ts +1 -1
- package/dist/solar-panel/definition.d.ts.map +1 -1
- package/dist/solar-panel/definition.js +8 -7
- package/dist/solar-panel/index.d.ts +4 -4
- package/dist/solar-panel/index.js +4 -4
- package/dist/solar-panel/move-tool.js +3 -3
- package/dist/solar-panel/panel.d.ts.map +1 -1
- package/dist/solar-panel/panel.js +4 -4
- package/dist/solar-panel/parametrics.d.ts +1 -1
- package/dist/solar-panel/parametrics.js +1 -1
- package/dist/solar-panel/preview.d.ts +1 -1
- package/dist/solar-panel/preview.d.ts.map +1 -1
- package/dist/solar-panel/preview.js +2 -2
- package/dist/solar-panel/renderer.d.ts.map +1 -1
- package/dist/solar-panel/renderer.js +3 -3
- package/dist/solar-panel/tool.d.ts.map +1 -1
- package/dist/solar-panel/tool.js +7 -7
- package/dist/spawn/definition.d.ts +1 -1
- package/dist/spawn/definition.js +7 -7
- package/dist/spawn/floorplan-affordances.js +1 -1
- package/dist/spawn/floorplan.d.ts +1 -1
- package/dist/spawn/index.d.ts +2 -2
- package/dist/spawn/index.js +2 -2
- package/dist/spawn/panel.js +1 -1
- package/dist/spawn/parametrics.d.ts +1 -1
- package/dist/spawn/parametrics.js +1 -1
- package/dist/spawn/renderer.d.ts.map +1 -1
- package/dist/spawn/renderer.js +1 -1
- package/dist/spawn/tool.d.ts.map +1 -1
- package/dist/spawn/tool.js +2 -2
- package/dist/stair/baluster-geometry.d.ts +21 -0
- package/dist/stair/baluster-geometry.d.ts.map +1 -0
- package/dist/stair/baluster-geometry.js +74 -0
- package/dist/stair/baluster-guard.d.ts +50 -0
- package/dist/stair/baluster-guard.d.ts.map +1 -0
- package/dist/stair/baluster-guard.js +71 -0
- package/dist/stair/boards-guard.d.ts +37 -0
- package/dist/stair/boards-guard.d.ts.map +1 -0
- package/dist/stair/boards-guard.js +61 -0
- package/dist/stair/cable-guard.d.ts +39 -0
- package/dist/stair/cable-guard.d.ts.map +1 -0
- package/dist/stair/cable-guard.js +105 -0
- package/dist/stair/construction-controls.d.ts +15 -0
- package/dist/stair/construction-controls.d.ts.map +1 -0
- package/dist/stair/construction-controls.js +29 -0
- package/dist/stair/continuous-railings.d.ts +10 -0
- package/dist/stair/continuous-railings.d.ts.map +1 -0
- package/dist/stair/continuous-railings.js +159 -0
- package/dist/stair/definition.d.ts +1 -1
- package/dist/stair/definition.d.ts.map +1 -1
- package/dist/stair/definition.js +39 -46
- package/dist/stair/documentation.d.ts +1 -1
- package/dist/stair/documentation.d.ts.map +1 -1
- package/dist/stair/documentation.js +11 -18
- package/dist/stair/floorplan-affordances.d.ts.map +1 -1
- package/dist/stair/floorplan-affordances.js +10 -26
- package/dist/stair/floorplan-move.d.ts.map +1 -1
- package/dist/stair/floorplan-move.js +90 -10
- package/dist/stair/floorplan.d.ts +2 -24
- package/dist/stair/floorplan.d.ts.map +1 -1
- package/dist/stair/floorplan.js +123 -88
- package/dist/stair/glass-guard.d.ts +72 -0
- package/dist/stair/glass-guard.d.ts.map +1 -0
- package/dist/stair/glass-guard.js +167 -0
- package/dist/stair/guard-path.d.ts +119 -0
- package/dist/stair/guard-path.d.ts.map +1 -0
- package/dist/stair/guard-path.js +208 -0
- package/dist/stair/index.d.ts +1 -1
- package/dist/stair/index.js +1 -1
- package/dist/stair/materials.d.ts +11 -0
- package/dist/stair/materials.d.ts.map +1 -0
- package/dist/stair/materials.js +51 -0
- package/dist/stair/metal-guard.d.ts +38 -0
- package/dist/stair/metal-guard.d.ts.map +1 -0
- package/dist/stair/metal-guard.js +79 -0
- package/dist/stair/paint.d.ts +32 -0
- package/dist/stair/paint.d.ts.map +1 -1
- package/dist/stair/paint.js +75 -36
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +170 -19
- package/dist/stair/parametrics.d.ts +1 -1
- package/dist/stair/parametrics.d.ts.map +1 -1
- package/dist/stair/parametrics.js +33 -16
- package/dist/stair/plan-entry.d.ts +31 -0
- package/dist/stair/plan-entry.d.ts.map +1 -0
- package/dist/stair/plan-entry.js +325 -0
- package/dist/stair/post-and-rail-guard.d.ts +31 -0
- package/dist/stair/post-and-rail-guard.d.ts.map +1 -0
- package/dist/stair/post-and-rail-guard.js +63 -0
- package/dist/stair/railing-controls.d.ts +9 -0
- package/dist/stair/railing-controls.d.ts.map +1 -0
- package/dist/stair/railing-controls.js +49 -0
- package/dist/stair/renderer.d.ts.map +1 -1
- package/dist/stair/renderer.js +355 -262
- package/dist/stair/stair-click-guard.d.ts +43 -0
- package/dist/stair/stair-click-guard.d.ts.map +1 -0
- package/dist/stair/stair-click-guard.js +44 -0
- package/dist/stair/stair-type.d.ts.map +1 -1
- package/dist/stair/stair-type.js +1 -2
- package/dist/stair/surface-move-preview.d.ts +4 -0
- package/dist/stair/surface-move-preview.d.ts.map +1 -0
- package/dist/stair/surface-move-preview.js +53 -0
- package/dist/stair/surface-transition.d.ts +9 -0
- package/dist/stair/surface-transition.d.ts.map +1 -0
- package/dist/stair/surface-transition.js +61 -0
- package/dist/stair/system.d.ts.map +1 -1
- package/dist/stair/tool.d.ts +2 -0
- package/dist/stair/tool.d.ts.map +1 -0
- package/dist/stair/tool.js +580 -0
- package/dist/stair/use-stair-render-data.d.ts +319 -0
- package/dist/stair/use-stair-render-data.d.ts.map +1 -0
- package/dist/stair/use-stair-render-data.js +73 -0
- package/dist/stair-segment/definition.d.ts +1 -1
- package/dist/stair-segment/definition.d.ts.map +1 -1
- package/dist/stair-segment/definition.js +52 -14
- package/dist/stair-segment/index.d.ts +1 -1
- package/dist/stair-segment/index.js +1 -1
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +38 -44
- package/dist/stair-segment/parametrics.d.ts +1 -1
- package/dist/stair-segment/parametrics.d.ts.map +1 -1
- package/dist/stair-segment/parametrics.js +22 -9
- package/dist/stair-segment/renderer.d.ts.map +1 -1
- package/dist/stair-segment/renderer.js +17 -29
- package/dist/structural-grid/definition.d.ts +1 -1
- package/dist/structural-grid/definition.js +3 -3
- package/dist/structural-grid/floorplan-tool.d.ts.map +1 -1
- package/dist/structural-grid/index.d.ts +1 -1
- package/dist/structural-grid/index.js +1 -1
- package/dist/turbine-vent/definition.d.ts +1 -1
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.js +11 -13
- package/dist/turbine-vent/geometry.js +1 -1
- package/dist/turbine-vent/index.d.ts +3 -3
- package/dist/turbine-vent/index.js +3 -3
- package/dist/turbine-vent/move-tool.js +4 -4
- package/dist/turbine-vent/paint.d.ts.map +1 -1
- package/dist/turbine-vent/paint.js +3 -6
- package/dist/turbine-vent/panel.d.ts.map +1 -1
- package/dist/turbine-vent/panel.js +6 -24
- package/dist/turbine-vent/parametrics.d.ts +1 -1
- package/dist/turbine-vent/parametrics.js +1 -1
- package/dist/turbine-vent/preview.d.ts +1 -1
- package/dist/turbine-vent/preview.d.ts.map +1 -1
- package/dist/turbine-vent/preview.js +2 -2
- package/dist/turbine-vent/renderer.d.ts.map +1 -1
- package/dist/turbine-vent/renderer.js +3 -3
- package/dist/turbine-vent/tool.d.ts.map +1 -1
- package/dist/turbine-vent/tool.js +7 -7
- package/dist/unit/definition.d.ts +1 -1
- package/dist/unit/definition.js +2 -2
- package/dist/unit/index.d.ts +1 -1
- package/dist/unit/index.js +1 -1
- package/dist/unit/parametrics.js +1 -1
- package/dist/unit/unit-panel.d.ts.map +1 -1
- package/dist/unit/unit-panel.js +7 -2
- package/dist/wall/actions.d.ts.map +1 -1
- package/dist/wall/actions.js +9 -4
- package/dist/wall/construction-dimensions.d.ts +3 -3
- package/dist/wall/construction-dimensions.js +14 -11
- package/dist/wall/contextual-dimensions.js +4 -4
- package/dist/wall/curtain-opening-frame.d.ts.map +1 -1
- package/dist/wall/curtain-wall-adapter.js +2 -2
- package/dist/wall/curtain-wall-floorplan.js +2 -2
- package/dist/wall/curtain-wall-geometry.d.ts.map +1 -1
- package/dist/wall/curtain-wall-geometry.js +4 -4
- package/dist/wall/curtain-wall-layout.d.ts +1 -2
- package/dist/wall/curtain-wall-layout.d.ts.map +1 -1
- package/dist/wall/curtain-wall-layout.js +1 -23
- package/dist/wall/curtain-wall-materials.d.ts +1 -1
- package/dist/wall/curtain-wall-materials.d.ts.map +1 -1
- package/dist/wall/curtain-wall-materials.js +4 -3
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
- package/dist/wall/curtain-wall-panel.js +4 -4
- package/dist/wall/curtain-wall-piece-geometry.d.ts +1 -1
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +4 -0
- package/dist/wall/definition.d.ts +1 -1
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +71 -42
- package/dist/wall/exterior.d.ts +6 -0
- package/dist/wall/exterior.d.ts.map +1 -0
- package/dist/wall/exterior.js +13 -0
- package/dist/wall/floorplan-move.d.ts +1 -1
- package/dist/wall/floorplan-move.d.ts.map +1 -1
- package/dist/wall/floorplan-move.js +21 -84
- package/dist/wall/floorplan-tool.d.ts.map +1 -1
- package/dist/wall/floorplan-tool.js +11 -12
- package/dist/wall/floorplan.d.ts +5 -3
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +188 -25
- package/dist/wall/index.d.ts +2 -2
- package/dist/wall/index.js +2 -2
- package/dist/wall/measurement.d.ts.map +1 -1
- package/dist/wall/measurement.js +6 -6
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +25 -13
- package/dist/wall/move-shared.d.ts.map +1 -1
- package/dist/wall/move-shared.js +12 -8
- package/dist/wall/move-tool.d.ts.map +1 -1
- package/dist/wall/move-tool.js +120 -151
- package/dist/wall/paint.d.ts +26 -15
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +303 -119
- package/dist/wall/panel-model.d.ts +18 -0
- package/dist/wall/panel-model.d.ts.map +1 -1
- package/dist/wall/panel-model.js +82 -24
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +262 -53
- package/dist/wall/parametrics.d.ts +1 -1
- package/dist/wall/parametrics.d.ts.map +1 -1
- package/dist/wall/parametrics.js +4 -1
- package/dist/wall/pointer-transparency.d.ts +1 -1
- package/dist/wall/pointer-transparency.d.ts.map +1 -1
- package/dist/wall/preview.d.ts.map +1 -1
- package/dist/wall/property-preview.d.ts.map +1 -1
- package/dist/wall/quick-measurement.js +1 -1
- package/dist/wall/rectangle-command.d.ts +329 -37
- package/dist/wall/rectangle-command.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.js +27 -9
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +31 -10
- package/dist/wall/selection-hit-owner.d.ts.map +1 -1
- package/dist/wall/split-floorplan-layer.d.ts.map +1 -1
- package/dist/wall/split-floorplan-layer.js +10 -10
- package/dist/wall/split-pointer.js +2 -2
- package/dist/wall/split-preview.d.ts +1 -1
- package/dist/wall/split-session.d.ts.map +1 -1
- package/dist/wall/split-session.js +9 -3
- package/dist/wall/split-store.d.ts +1 -1
- package/dist/wall/split-tool.js +3 -3
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +42 -10
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +114 -53
- package/dist/wall/treatment-level-data.d.ts +3 -2
- package/dist/wall/treatment-level-data.d.ts.map +1 -1
- package/dist/wall/treatment-level-data.js +17 -13
- package/dist/wall/treatments.d.ts +11 -11
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +77 -57
- package/dist/wall/wall-batch-system.d.ts +7 -0
- package/dist/wall/wall-batch-system.d.ts.map +1 -1
- package/dist/wall/wall-batch-system.js +81 -7
- package/dist/wall/wall-batch.d.ts +6 -0
- package/dist/wall/wall-batch.d.ts.map +1 -1
- package/dist/wall/wall-batch.js +7 -1
- package/dist/window/contextual-dimensions.js +1 -1
- package/dist/window/corner-cue.d.ts +9 -0
- package/dist/window/corner-cue.d.ts.map +1 -0
- package/dist/window/corner-cue.js +31 -0
- package/dist/window/corner-fuse.d.ts +14 -0
- package/dist/window/corner-fuse.d.ts.map +1 -0
- package/dist/window/corner-fuse.js +42 -0
- package/dist/window/definition.d.ts +1 -1
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +39 -26
- package/dist/window/floor-projection.js +1 -1
- package/dist/window/floorplan-affordances.js +2 -2
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +49 -13
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +214 -87
- package/dist/window/index.d.ts +2 -2
- package/dist/window/index.js +2 -2
- package/dist/window/mechanism.d.ts +4 -0
- package/dist/window/mechanism.d.ts.map +1 -0
- package/dist/window/mechanism.js +20 -0
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +165 -69
- package/dist/window/paint.d.ts.map +1 -1
- package/dist/window/paint.js +4 -1
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +134 -100
- package/dist/window/parametrics.d.ts +1 -1
- package/dist/window/parametrics.d.ts.map +1 -1
- package/dist/window/parametrics.js +7 -1
- package/dist/window/placement.d.ts +29 -0
- package/dist/window/placement.d.ts.map +1 -0
- package/dist/window/placement.js +92 -0
- package/dist/window/preview.d.ts +1 -1
- package/dist/window/preview.d.ts.map +1 -1
- package/dist/window/preview.js +3 -1
- package/dist/window/renderer.d.ts.map +1 -1
- package/dist/window/renderer.js +4 -3
- package/dist/window/system.d.ts.map +1 -1
- package/dist/window/system.js +1 -1
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +207 -50
- package/dist/window/window-math.d.ts +7 -15
- package/dist/window/window-math.d.ts.map +1 -1
- package/dist/window/window-math.js +15 -21
- package/dist/zone/contextual-dimensions.d.ts.map +1 -1
- package/dist/zone/contextual-dimensions.js +6 -28
- package/dist/zone/definition.d.ts +1 -1
- package/dist/zone/definition.d.ts.map +1 -1
- package/dist/zone/definition.js +17 -15
- package/dist/zone/floorplan-affordances.d.ts +613 -37
- package/dist/zone/floorplan-affordances.d.ts.map +1 -1
- package/dist/zone/floorplan-affordances.js +1 -1
- package/dist/zone/floorplan-move.js +1 -1
- package/dist/zone/floorplan.d.ts +1 -1
- package/dist/zone/floorplan.d.ts.map +1 -1
- package/dist/zone/floorplan.js +96 -56
- package/dist/zone/index.d.ts +1 -1
- package/dist/zone/index.js +1 -1
- package/dist/zone/parametrics.js +1 -1
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +6 -17
- package/dist/zone/quick-measurement.d.ts +2 -2
- package/dist/zone/quick-measurement.d.ts.map +1 -1
- package/dist/zone/quick-measurement.js +7 -6
- package/dist/zone/renderer.d.ts +1 -1
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +67 -147
- package/dist/zone/room-clear-dimensions.js +4 -4
- package/dist/zone/room-documentation.d.ts +1 -1
- package/dist/zone/room-documentation.d.ts.map +1 -1
- package/dist/zone/room-documentation.js +3 -7
- package/dist/zone/system.d.ts.map +1 -1
- package/package.json +28 -15
- package/dist/block/slots.d.ts +0 -4
- package/dist/block/slots.d.ts.map +0 -1
- package/dist/block/slots.js +0 -17
- package/dist/cabinet/slots.d.ts +0 -4
- package/dist/cabinet/slots.d.ts.map +0 -1
- package/dist/cabinet/slots.js +0 -24
- package/dist/ceiling/slots.d.ts +0 -6
- package/dist/ceiling/slots.d.ts.map +0 -1
- package/dist/ceiling/slots.js +0 -7
- package/dist/column/slots.d.ts +0 -9
- package/dist/column/slots.d.ts.map +0 -1
- package/dist/column/slots.js +0 -19
- package/dist/door/slots.d.ts +0 -9
- package/dist/door/slots.d.ts.map +0 -1
- package/dist/door/slots.js +0 -20
- package/dist/elevator/slots.d.ts +0 -8
- package/dist/elevator/slots.d.ts.map +0 -1
- package/dist/elevator/slots.js +0 -17
- package/dist/fence/slots.d.ts +0 -10
- package/dist/fence/slots.d.ts.map +0 -1
- package/dist/fence/slots.js +0 -23
- package/dist/item/__fixtures__/main-floorplan.d.ts +0 -26
- package/dist/item/__fixtures__/main-floorplan.d.ts.map +0 -1
- package/dist/item/__fixtures__/main-floorplan.js +0 -297
- package/dist/lean-to-extension/slots.d.ts +0 -5
- package/dist/lean-to-extension/slots.d.ts.map +0 -1
- package/dist/lean-to-extension/slots.js +0 -15
- package/dist/shared/connection-compatibility.d.ts +0 -8
- package/dist/shared/connection-compatibility.d.ts.map +0 -1
- package/dist/shared/connection-compatibility.js +0 -28
- package/dist/shared/distribution-run-contract.d.ts +0 -49
- package/dist/shared/distribution-run-contract.d.ts.map +0 -1
- package/dist/shared/distribution-run-contract.js +0 -30
- package/dist/shared/distribution-run-tool.d.ts +0 -117
- package/dist/shared/distribution-run-tool.d.ts.map +0 -1
- package/dist/shared/distribution-run-tool.js +0 -986
- package/dist/shared/draw-alignment.d.ts +0 -25
- package/dist/shared/draw-alignment.d.ts.map +0 -1
- package/dist/shared/draw-alignment.js +0 -30
- package/dist/shared/ports.d.ts +0 -92
- package/dist/shared/ports.d.ts.map +0 -1
- package/dist/shared/ports.js +0 -305
- package/dist/shared/run-cursor.d.ts +0 -22
- package/dist/shared/run-cursor.d.ts.map +0 -1
- package/dist/shared/run-cursor.js +0 -19
- package/dist/shared/run-direction-feedback.d.ts +0 -20
- package/dist/shared/run-direction-feedback.d.ts.map +0 -1
- package/dist/shared/run-direction-feedback.js +0 -139
- package/dist/shared/run-port-snap.d.ts +0 -11
- package/dist/shared/run-port-snap.d.ts.map +0 -1
- package/dist/shared/run-port-snap.js +0 -19
- package/dist/shared/run-screen-direction.d.ts +0 -5
- package/dist/shared/run-screen-direction.d.ts.map +0 -1
- package/dist/shared/run-screen-direction.js +0 -24
- package/dist/shelf/slots.d.ts +0 -9
- package/dist/shelf/slots.d.ts.map +0 -1
- package/dist/shelf/slots.js +0 -30
- package/dist/slab/slots.d.ts +0 -10
- package/dist/slab/slots.d.ts.map +0 -1
- package/dist/slab/slots.js +0 -20
- package/dist/stair/floor-stack.d.ts +0 -10
- package/dist/stair/floor-stack.d.ts.map +0 -1
- package/dist/stair/floor-stack.js +0 -115
- package/dist/stair/slots.d.ts +0 -7
- package/dist/stair/slots.d.ts.map +0 -1
- package/dist/stair/slots.js +0 -13
- package/dist/wall/drawing-mode.d.ts +0 -12
- package/dist/wall/drawing-mode.d.ts.map +0 -1
- package/dist/wall/drawing-mode.js +0 -38
- package/dist/wall/slots.d.ts +0 -10
- package/dist/wall/slots.d.ts.map +0 -1
- package/dist/wall/slots.js +0 -92
- package/dist/window/slots.d.ts +0 -5
- package/dist/window/slots.d.ts.map +0 -1
- package/dist/window/slots.js +0 -11
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One coherent glass-panel guard laid out along a rail path — a modern framed
|
|
3
|
+
* glass balustrade in metres: a slim square post at each end (and every bay
|
|
4
|
+
* ≤ 4 ft between), a flat cap over them, and one flat tempered-glass panel per
|
|
5
|
+
* bay, point-fixed to its flanking posts by small edge clamps. It shares the
|
|
6
|
+
* path sampling, corner finding and post stations in `guard-path.ts` with the
|
|
7
|
+
* baluster, cable and deck guards, so a straight flight, a chained L/U landing
|
|
8
|
+
* turn, a winder, a curved or spiral sweep and an integrated top landing all
|
|
9
|
+
* read as the same glass rail; only the sections and the glass infill differ.
|
|
10
|
+
*
|
|
11
|
+
* The panels are the physical intent of a glass rail, not a fiction: a tempered
|
|
12
|
+
* pane is rigid and flat, so on a curved or spiral sweep it cannot follow the
|
|
13
|
+
* arc. Each panel is therefore a flat parallelogram spanning the straight chord
|
|
14
|
+
* between two consecutive posts, with plumb vertical edges inset from each post
|
|
15
|
+
* by a reveal gap and a top/bottom clearance to the cap and the nosing line.
|
|
16
|
+
* Adjacent panels meet at a post with twice the reveal between them, never
|
|
17
|
+
* sharing or crossing a vertex. On a straight flight the collinear posts make
|
|
18
|
+
* those chords read as one plane.
|
|
19
|
+
*
|
|
20
|
+
* A flat chord between two posts on a curve lies inside the rail curve by its
|
|
21
|
+
* sagitta — on the outer rail that is up to tens of centimetres toward the
|
|
22
|
+
* treads, so a chord laid on the posts would push the pane well past the guard
|
|
23
|
+
* line into the walking volume. When the caller supplies `insideWalk` (which
|
|
24
|
+
* side of a point is the walkable surface), each bay measures how far its flat
|
|
25
|
+
* chord sags toward that surface and shifts the whole pane — and its clamps —
|
|
26
|
+
* radially outward by that sag plus the pane's half-thickness, so the pane's
|
|
27
|
+
* walking-facing face sits at or outside the rail line across the entire bay.
|
|
28
|
+
* The inner rail's chord sags into the void, away from the walkable surface, so
|
|
29
|
+
* it is left on the line; a straight run has no sag; neither is shifted. The
|
|
30
|
+
* frame is pure `GuardBox` data; the panels are the corner parametrics the
|
|
31
|
+
* renderer extrudes with metre UVs. No Three.js.
|
|
32
|
+
*
|
|
33
|
+
* `reach` runs the cap that far past the top vertex along the final slope to die
|
|
34
|
+
* into a post standing there; `topPost: false` then omits the top post.
|
|
35
|
+
* `postThrough` runs the posts past the cap with a small cap of their own.
|
|
36
|
+
*/
|
|
37
|
+
import { add, barBox, buildGuardChassis, horizontalLength, scale, sub, } from './guard-path.js';
|
|
38
|
+
// Dressed glass balustrade, in metres.
|
|
39
|
+
const POST = 0.0381; // a slim 1½ in square stainless post
|
|
40
|
+
const POST_EMBED = 0.05; // the post foot runs this far below the nosing line
|
|
41
|
+
const CAP_W = 0.0635; // a flat 2½ in cap over the posts
|
|
42
|
+
const CAP_T = 0.0381;
|
|
43
|
+
const PANEL_T = 0.0127; // ½ in tempered glass
|
|
44
|
+
const PANEL_REVEAL = 0.015; // the pane is held this far off each post, plan
|
|
45
|
+
const PANEL_FOOT = 0.075; // the glass sits this far over the nosing line
|
|
46
|
+
const PANEL_HEAD = 0.01; // and this far under the cap underside
|
|
47
|
+
const CLAMP_W = 0.05; // a point clamp straddling the pane edge
|
|
48
|
+
const CLAMP_T = 0.03;
|
|
49
|
+
const CLAMP_LEN = 0.05;
|
|
50
|
+
const CLAMP_LEVELS = [0.22, 0.78]; // clamp heights, as a fraction of pane height
|
|
51
|
+
const POST_ABOVE_CAP = 0.0762; // a through-post stands this far above the cap…
|
|
52
|
+
const POST_CAP_T = 0.0254; // …under a 1 in cap of its own
|
|
53
|
+
const POST_CAP_OVERHANG = 0.0381;
|
|
54
|
+
/** The glass guard's single flat cap rail. Shared with the flight connector so a
|
|
55
|
+
* bridge between flights carries the same cap as the guards it joins. */
|
|
56
|
+
export function glassGuardRails(railHeight) {
|
|
57
|
+
return [{ y: railHeight - CAP_T / 2, across: CAP_W, vertical: CAP_T }];
|
|
58
|
+
}
|
|
59
|
+
/** A clamp block straddling the pane edge at height `y`, pointing along the
|
|
60
|
+
* chord toward the post — the point fixing that ties the pane to the frame. */
|
|
61
|
+
function clamp(edge, alongH, y, post) {
|
|
62
|
+
const paneAnchor = add(edge, [0, y, 0]);
|
|
63
|
+
const postAnchor = [post[0], paneAnchor[1], post[2]];
|
|
64
|
+
const bridge = barBox(postAnchor, paneAnchor, CLAMP_W, CLAMP_T);
|
|
65
|
+
if (bridge) {
|
|
66
|
+
return { ...bridge, size: [CLAMP_W, CLAMP_T, bridge.size[2] + CLAMP_LEN] };
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
center: add(edge, [0, y, 0]),
|
|
70
|
+
size: [CLAMP_W, CLAMP_T, CLAMP_LEN],
|
|
71
|
+
direction: alongH,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** The horizontal fractions of a bay sampled to find the chord's deepest sag;
|
|
75
|
+
* a convex arc sags most near the middle, so the quarter points bracket it. */
|
|
76
|
+
const SAG_SAMPLES = [0.25, 0.5, 0.75];
|
|
77
|
+
/**
|
|
78
|
+
* How far, and which way, to shift a bay's pane off the walking volume. The rail
|
|
79
|
+
* point at the bay's middle sits on the walkable boundary, so a small probe to
|
|
80
|
+
* either side of it along the chord normal names the outward (non-walkable)
|
|
81
|
+
* side; the pane is then pushed out by the deepest the flat chord sags past the
|
|
82
|
+
* rail curve toward the walkable side, plus a half-thickness so the face clears.
|
|
83
|
+
* Returns the zero vector when the side is unknown, the bay is straight, or the
|
|
84
|
+
* chord sags into the void (the inner rail) rather than toward the walking side.
|
|
85
|
+
*/
|
|
86
|
+
function paneOffset(a, b, alongH, sa, sb, pointAt, insideWalk) {
|
|
87
|
+
if (!insideWalk || sb <= sa)
|
|
88
|
+
return [0, 0, 0];
|
|
89
|
+
const normal = [-alongH[2], 0, alongH[0]];
|
|
90
|
+
const railMid = pointAt((sa + sb) / 2);
|
|
91
|
+
const probe = 0.01;
|
|
92
|
+
const plusIn = insideWalk(railMid[0] + normal[0] * probe, railMid[2] + normal[2] * probe);
|
|
93
|
+
const minusIn = insideWalk(railMid[0] - normal[0] * probe, railMid[2] - normal[2] * probe);
|
|
94
|
+
if (plusIn === minusIn)
|
|
95
|
+
return [0, 0, 0];
|
|
96
|
+
const out = plusIn ? scale(normal, -1) : normal;
|
|
97
|
+
let sag = 0;
|
|
98
|
+
for (const f of SAG_SAMPLES) {
|
|
99
|
+
const rail = pointAt(sa + (sb - sa) * f);
|
|
100
|
+
const chordX = a[0] + (b[0] - a[0]) * f;
|
|
101
|
+
const chordZ = a[2] + (b[2] - a[2]) * f;
|
|
102
|
+
const inward = (rail[0] - chordX) * out[0] + (rail[2] - chordZ) * out[2];
|
|
103
|
+
if (inward > sag)
|
|
104
|
+
sag = inward;
|
|
105
|
+
}
|
|
106
|
+
if (sag <= 1e-6)
|
|
107
|
+
return [0, 0, 0];
|
|
108
|
+
return scale(out, sag + PANEL_T / 2);
|
|
109
|
+
}
|
|
110
|
+
export function buildGlassGuard(points, options) {
|
|
111
|
+
const { railHeight } = options;
|
|
112
|
+
const chassis = buildGuardChassis(points, options, glassGuardRails(railHeight), {
|
|
113
|
+
width: POST,
|
|
114
|
+
embed: POST_EMBED,
|
|
115
|
+
top: -CAP_T,
|
|
116
|
+
throughTop: POST_ABOVE_CAP,
|
|
117
|
+
capThickness: POST_CAP_T,
|
|
118
|
+
capOverhang: POST_CAP_OVERHANG,
|
|
119
|
+
}, { cornerPosts: true });
|
|
120
|
+
if (!chassis)
|
|
121
|
+
return { frame: [], panels: [] };
|
|
122
|
+
const { path, boxes } = chassis;
|
|
123
|
+
if (path.kind === 'pivot')
|
|
124
|
+
return { frame: boxes, panels: [] };
|
|
125
|
+
const frame = boxes;
|
|
126
|
+
const { postPositions, postStations, pointAt } = path;
|
|
127
|
+
// One flat pane per bay, inset from both posts, with edge clamps. The pane top
|
|
128
|
+
// sits under the cap underside; the foot clears the nosing line.
|
|
129
|
+
const top = railHeight - CAP_T - PANEL_HEAD;
|
|
130
|
+
const bottom = PANEL_FOOT;
|
|
131
|
+
const panels = [];
|
|
132
|
+
if (top > bottom + 1e-6) {
|
|
133
|
+
for (let i = 1; i < postPositions.length; i++) {
|
|
134
|
+
const a = postPositions[i - 1];
|
|
135
|
+
const b = postPositions[i];
|
|
136
|
+
const span = horizontalLength(sub(b, a));
|
|
137
|
+
if (span < 1e-4)
|
|
138
|
+
continue;
|
|
139
|
+
const reveal = Math.min(PANEL_REVEAL, span * 0.2);
|
|
140
|
+
const run = span - 2 * reveal;
|
|
141
|
+
if (run < 1e-4)
|
|
142
|
+
continue;
|
|
143
|
+
const alongH = scale([b[0] - a[0], 0, b[2] - a[2]], 1 / span);
|
|
144
|
+
const yaw = Math.atan2(alongH[2], alongH[0]);
|
|
145
|
+
// Shift the pane off the walking volume by however far its flat chord sags
|
|
146
|
+
// past the rail curve toward that side, plus a half-thickness so the pane's
|
|
147
|
+
// face — not just its mid-plane — clears the rail line. A straight run and
|
|
148
|
+
// the inner (into-the-void) rail measure no inward sag and stay on the line.
|
|
149
|
+
const shift = paneOffset(a, b, alongH, postStations[i - 1], postStations[i], pointAt, options.insideWalk);
|
|
150
|
+
const foot = (s) => [
|
|
151
|
+
a[0] + alongH[0] * s + shift[0],
|
|
152
|
+
a[1] + ((b[1] - a[1]) * s) / span,
|
|
153
|
+
a[2] + alongH[2] * s + shift[2],
|
|
154
|
+
];
|
|
155
|
+
const start = foot(reveal);
|
|
156
|
+
const rise = foot(span - reveal)[1] - start[1];
|
|
157
|
+
panels.push({ start, yaw, run, rise, bottom, top, thickness: PANEL_T });
|
|
158
|
+
for (const [edge, post] of [
|
|
159
|
+
[foot(reveal), a],
|
|
160
|
+
[foot(span - reveal), b],
|
|
161
|
+
])
|
|
162
|
+
for (const level of CLAMP_LEVELS)
|
|
163
|
+
frame.push(clamp(edge, alongH, bottom + level * (top - bottom), post));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return { frame, panels };
|
|
167
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The style-agnostic chassis a stair guard is laid out on, as pure data (no
|
|
3
|
+
* Three.js, no React). A guard — baluster (`baluster-guard.ts`) or deck
|
|
4
|
+
* post-and-rail (`post-and-rail-guard.ts`) — differs only in the sections and
|
|
5
|
+
* y of its rails, its newel and its infill; where those members *go* is the
|
|
6
|
+
* same problem for both: sample the rail path by run so density tracks the run
|
|
7
|
+
* rather than the path's tessellation, extend it `reach` past the top vertex,
|
|
8
|
+
* stand newels by spacing, and close a plan corner with a fitting block. That
|
|
9
|
+
* shared geometry lives here so there is one path/corner/station convention to
|
|
10
|
+
* maintain and no duplicated arc sampling between the styles.
|
|
11
|
+
*/
|
|
12
|
+
export type Vec3 = [number, number, number];
|
|
13
|
+
/** An oriented box in the guard's frame; see `GuardBox`'s consumers for UVs. */
|
|
14
|
+
export type GuardBox = {
|
|
15
|
+
/** Box centre. */
|
|
16
|
+
center: Vec3;
|
|
17
|
+
/** Local box size: x across the run, y vertical, z along the run. */
|
|
18
|
+
size: Vec3;
|
|
19
|
+
/** Unit direction the box's z axis runs along (for sloped/plan-turned bars). */
|
|
20
|
+
direction: Vec3;
|
|
21
|
+
/** Render as a round member (a cylinder about `direction`); `size[0]` is its
|
|
22
|
+
* diameter. Cables and their terminal sleeves set this; everything else is a
|
|
23
|
+
* rectangular bar. */
|
|
24
|
+
round?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export declare const UP: Vec3;
|
|
27
|
+
export declare const add: (a: Vec3, b: Vec3) => Vec3;
|
|
28
|
+
export declare const sub: (a: Vec3, b: Vec3) => Vec3;
|
|
29
|
+
export declare const scale: (a: Vec3, s: number) => Vec3;
|
|
30
|
+
export declare const lerp: (a: Vec3, b: Vec3, t: number) => Vec3;
|
|
31
|
+
export declare const horizontalLength: (d: Vec3) => number;
|
|
32
|
+
/** An oriented bar between two points; `width` is across the run, `depth` vertical. */
|
|
33
|
+
export declare function barBox(a: Vec3, b: Vec3, width: number, depth: number): GuardBox | null;
|
|
34
|
+
/** A plumb box standing from `base` up `height`, square section `width`. */
|
|
35
|
+
export declare function postBox(base: Vec3, height: number, width: number): GuardBox;
|
|
36
|
+
/** A guard rail: its centre `y` off the nosing line and its section (`across`
|
|
37
|
+
* the run, `vertical`), bottom-to-top. */
|
|
38
|
+
export type GuardRail = {
|
|
39
|
+
y: number;
|
|
40
|
+
across: number;
|
|
41
|
+
vertical: number;
|
|
42
|
+
};
|
|
43
|
+
/** The rails of a guard following `railPoints`, with a cube fitting block
|
|
44
|
+
* closing every real plan corner — the shared joinery for both guard styles. */
|
|
45
|
+
export declare function railBars(railPoints: Vec3[], isCorner: (i: number) => boolean, rails: GuardRail[]): GuardBox[];
|
|
46
|
+
/** A plan direction change past this at an interior vertex gets a corner fitting
|
|
47
|
+
* block; collinear points and curve tessellation stay under it, so a dense path
|
|
48
|
+
* does not bulge a block at every vertex. */
|
|
49
|
+
export declare const CORNER_MIN_TURN: number;
|
|
50
|
+
export type GuardPathOptions = {
|
|
51
|
+
/** Metres between newels along the run; omit (or Infinity) for ends only. */
|
|
52
|
+
postSpacing?: number;
|
|
53
|
+
cornerPosts?: boolean;
|
|
54
|
+
topPost?: boolean;
|
|
55
|
+
/** Metres the rails run past the top vertex, along the final slope. */
|
|
56
|
+
reach?: number;
|
|
57
|
+
/** The requested infill pitch, clamped into [min, max] below. */
|
|
58
|
+
picketPitch?: number;
|
|
59
|
+
picketMinPitch?: number;
|
|
60
|
+
picketMaxPitch?: number;
|
|
61
|
+
};
|
|
62
|
+
export type GuardPath =
|
|
63
|
+
/** A path with no horizontal run — a zero-radius winder's inner pivot: the
|
|
64
|
+
* caller stands one plumb newel over the vertical rise `lo`→`hi`. */
|
|
65
|
+
{
|
|
66
|
+
kind: 'pivot';
|
|
67
|
+
lo: Vec3;
|
|
68
|
+
hi: Vec3;
|
|
69
|
+
} | {
|
|
70
|
+
kind: 'path';
|
|
71
|
+
/** Total horizontal run, including `reach`. */
|
|
72
|
+
run: number;
|
|
73
|
+
/** The vertices the rails follow, extended `reach` past the top. */
|
|
74
|
+
railPoints: Vec3[];
|
|
75
|
+
/** The point at horizontal station `s` along the run. */
|
|
76
|
+
pointAt: (s: number) => Vec3;
|
|
77
|
+
/** Whether interior vertex `i` of `railPoints` is a real plan corner. */
|
|
78
|
+
isCorner: (i: number) => boolean;
|
|
79
|
+
/** Newel foot positions, bottom-to-top along the run. */
|
|
80
|
+
postPositions: Vec3[];
|
|
81
|
+
/** Horizontal stations of `postPositions`, bottom-to-top. */
|
|
82
|
+
postStations: number[];
|
|
83
|
+
/** Infill (picket) foot positions, newel clashes left to the caller. */
|
|
84
|
+
picketStations: Vec3[];
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Resolve the shared chassis for a guard laid along `points` (bottom first).
|
|
88
|
+
* Returns `null` for a degenerate path (fewer than two points, or a vertical
|
|
89
|
+
* run with no rise). The caller turns the stations into its own members.
|
|
90
|
+
*/
|
|
91
|
+
export declare function resolveGuardPath(points: Vec3[], options: GuardPathOptions): GuardPath | null;
|
|
92
|
+
export declare const GUARD_POST_SPACING = 1.2192;
|
|
93
|
+
export declare const GUARD_PICKET_PITCH = 0.127;
|
|
94
|
+
export type GuardOptions = {
|
|
95
|
+
railHeight: number;
|
|
96
|
+
postSpacing?: number;
|
|
97
|
+
topPost?: boolean;
|
|
98
|
+
postThrough?: boolean;
|
|
99
|
+
reach?: number;
|
|
100
|
+
};
|
|
101
|
+
type PostProfile = {
|
|
102
|
+
width: number;
|
|
103
|
+
embed: number;
|
|
104
|
+
top: number;
|
|
105
|
+
throughTop: number;
|
|
106
|
+
capThickness: number;
|
|
107
|
+
capOverhang: number;
|
|
108
|
+
foot?: (x: number, y: number, z: number) => GuardBox;
|
|
109
|
+
};
|
|
110
|
+
/** Posts, caps and the vertical-pivot case have the same assembly in every style. */
|
|
111
|
+
export declare function buildGuardChassis(points: Vec3[], options: GuardOptions, rails: GuardRail[], profile: PostProfile, sampling?: Pick<GuardPathOptions, 'cornerPosts' | 'picketPitch' | 'picketMinPitch' | 'picketMaxPitch'>): {
|
|
112
|
+
path: GuardPath;
|
|
113
|
+
boxes: GuardBox[];
|
|
114
|
+
} | null;
|
|
115
|
+
export declare function guardPickets(path: Extract<GuardPath, {
|
|
116
|
+
kind: 'path';
|
|
117
|
+
}>, width: number, postWidth: number, bottom: number, top: number): GuardBox[];
|
|
118
|
+
export {};
|
|
119
|
+
//# sourceMappingURL=guard-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-path.d.ts","sourceRoot":"","sources":["../../src/stair/guard-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAE3C,gFAAgF;AAChF,MAAM,MAAM,QAAQ,GAAG;IACrB,kBAAkB;IAClB,MAAM,EAAE,IAAI,CAAA;IACZ,qEAAqE;IACrE,IAAI,EAAE,IAAI,CAAA;IACV,gFAAgF;IAChF,SAAS,EAAE,IAAI,CAAA;IACf;;0BAEsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,IAAgB,CAAA;AAEjC,eAAO,MAAM,GAAG,MAAO,IAAI,KAAK,IAAI,KAAG,IAA+C,CAAA;AACtF,eAAO,MAAM,GAAG,MAAO,IAAI,KAAK,IAAI,KAAG,IAA+C,CAAA;AACtF,eAAO,MAAM,KAAK,MAAO,IAAI,KAAK,MAAM,KAAG,IAAsC,CAAA;AACjF,eAAO,MAAM,IAAI,MAAO,IAAI,KAAK,IAAI,KAAK,MAAM,KAAG,IAAmC,CAAA;AACtF,eAAO,MAAM,gBAAgB,MAAO,IAAI,WAA2B,CAAA;AAEnE,uFAAuF;AACvF,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAStF;AAED,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAM3E;AAED;0CAC0C;AAC1C,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvE;gFACgF;AAChF,wBAAgB,QAAQ,CACtB,UAAU,EAAE,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,EAChC,KAAK,EAAE,SAAS,EAAE,GACjB,QAAQ,EAAE,CAuBZ;AAED;;6CAE6C;AAC7C,eAAO,MAAM,eAAe,QAAc,CAAA;AAE1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,SAAS;AACnB;qEACqE;AACnE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrC;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,oEAAoE;IACpE,UAAU,EAAE,IAAI,EAAE,CAAA;IAClB,yDAAyD;IACzD,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,yEAAyE;IACzE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;IAChC,yDAAyD;IACzD,aAAa,EAAE,IAAI,EAAE,CAAA;IACrB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,wEAAwE;IACxE,cAAc,EAAE,IAAI,EAAE,CAAA;CACvB,CAAA;AAEL;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAoG5F;AAED,eAAO,MAAM,kBAAkB,SAAS,CAAA;AACxC,eAAO,MAAM,kBAAkB,QAAQ,CAAA;AAEvC,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAA;CACrD,CAAA;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,EAAE,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,WAAW,EACpB,QAAQ,GAAE,IAAI,CACZ,gBAAgB,EAChB,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAC/D;;;SAwBP;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,QAAQ,EAAE,CAaZ"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The style-agnostic chassis a stair guard is laid out on, as pure data (no
|
|
3
|
+
* Three.js, no React). A guard — baluster (`baluster-guard.ts`) or deck
|
|
4
|
+
* post-and-rail (`post-and-rail-guard.ts`) — differs only in the sections and
|
|
5
|
+
* y of its rails, its newel and its infill; where those members *go* is the
|
|
6
|
+
* same problem for both: sample the rail path by run so density tracks the run
|
|
7
|
+
* rather than the path's tessellation, extend it `reach` past the top vertex,
|
|
8
|
+
* stand newels by spacing, and close a plan corner with a fitting block. That
|
|
9
|
+
* shared geometry lives here so there is one path/corner/station convention to
|
|
10
|
+
* maintain and no duplicated arc sampling between the styles.
|
|
11
|
+
*/
|
|
12
|
+
export const UP = [0, 1, 0];
|
|
13
|
+
export const add = (a, b) => [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
|
|
14
|
+
export const sub = (a, b) => [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
|
|
15
|
+
export const scale = (a, s) => [a[0] * s, a[1] * s, a[2] * s];
|
|
16
|
+
export const lerp = (a, b, t) => add(a, scale(sub(b, a), t));
|
|
17
|
+
export const horizontalLength = (d) => Math.hypot(d[0], d[2]);
|
|
18
|
+
/** An oriented bar between two points; `width` is across the run, `depth` vertical. */
|
|
19
|
+
export function barBox(a, b, width, depth) {
|
|
20
|
+
const d = sub(b, a);
|
|
21
|
+
const length = Math.hypot(d[0], d[1], d[2]);
|
|
22
|
+
if (length < 1e-6)
|
|
23
|
+
return null;
|
|
24
|
+
return {
|
|
25
|
+
center: lerp(a, b, 0.5),
|
|
26
|
+
size: [width, depth, length],
|
|
27
|
+
direction: scale(d, 1 / length),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** A plumb box standing from `base` up `height`, square section `width`. */
|
|
31
|
+
export function postBox(base, height, width) {
|
|
32
|
+
return {
|
|
33
|
+
center: [base[0], base[1] + height / 2, base[2]],
|
|
34
|
+
size: [width, width, height],
|
|
35
|
+
direction: UP,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** The rails of a guard following `railPoints`, with a cube fitting block
|
|
39
|
+
* closing every real plan corner — the shared joinery for both guard styles. */
|
|
40
|
+
export function railBars(railPoints, isCorner, rails) {
|
|
41
|
+
const boxes = [];
|
|
42
|
+
for (const rail of rails) {
|
|
43
|
+
for (let i = 1; i < railPoints.length; i++) {
|
|
44
|
+
const bar = barBox(add(railPoints[i - 1], [0, rail.y, 0]), add(railPoints[i], [0, rail.y, 0]), rail.across, rail.vertical);
|
|
45
|
+
if (bar)
|
|
46
|
+
boxes.push(bar);
|
|
47
|
+
}
|
|
48
|
+
for (let i = 1; i < railPoints.length - 1; i++) {
|
|
49
|
+
if (!isCorner(i))
|
|
50
|
+
continue;
|
|
51
|
+
const block = Math.max(rail.across, rail.vertical);
|
|
52
|
+
boxes.push({
|
|
53
|
+
center: add(railPoints[i], [0, rail.y, 0]),
|
|
54
|
+
size: [block, block, block],
|
|
55
|
+
direction: UP,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return boxes;
|
|
60
|
+
}
|
|
61
|
+
/** A plan direction change past this at an interior vertex gets a corner fitting
|
|
62
|
+
* block; collinear points and curve tessellation stay under it, so a dense path
|
|
63
|
+
* does not bulge a block at every vertex. */
|
|
64
|
+
export const CORNER_MIN_TURN = Math.PI / 8;
|
|
65
|
+
/**
|
|
66
|
+
* Resolve the shared chassis for a guard laid along `points` (bottom first).
|
|
67
|
+
* Returns `null` for a degenerate path (fewer than two points, or a vertical
|
|
68
|
+
* run with no rise). The caller turns the stations into its own members.
|
|
69
|
+
*/
|
|
70
|
+
export function resolveGuardPath(points, options) {
|
|
71
|
+
if (points.length < 2)
|
|
72
|
+
return null;
|
|
73
|
+
const topPost = options.topPost !== false;
|
|
74
|
+
const reach = Math.max(options.reach ?? 0, 0);
|
|
75
|
+
const postSpacing = options.postSpacing && Number.isFinite(options.postSpacing) && options.postSpacing > 0
|
|
76
|
+
? options.postSpacing
|
|
77
|
+
: Number.POSITIVE_INFINITY;
|
|
78
|
+
const cumulative = [0];
|
|
79
|
+
for (let i = 1; i < points.length; i++)
|
|
80
|
+
cumulative.push(cumulative[i - 1] + horizontalLength(sub(points[i], points[i - 1])));
|
|
81
|
+
const run = cumulative.at(-1);
|
|
82
|
+
if (run < 1e-4) {
|
|
83
|
+
const lo = points.reduce((low, p) => (p[1] < low[1] ? p : low));
|
|
84
|
+
const hi = points.reduce((high, p) => (p[1] > high[1] ? p : high));
|
|
85
|
+
if (hi[1] - lo[1] < 1e-4)
|
|
86
|
+
return null;
|
|
87
|
+
return { kind: 'pivot', lo, hi };
|
|
88
|
+
}
|
|
89
|
+
const pointAt = (s) => {
|
|
90
|
+
const clamped = Math.min(Math.max(s, 0), run);
|
|
91
|
+
for (let i = 1; i < points.length; i++) {
|
|
92
|
+
if (clamped <= cumulative[i] || i === points.length - 1) {
|
|
93
|
+
const span = cumulative[i] - cumulative[i - 1];
|
|
94
|
+
const t = span > 1e-9 ? (clamped - cumulative[i - 1]) / span : 0;
|
|
95
|
+
return lerp(points[i - 1], points[i], t);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return points[0];
|
|
99
|
+
};
|
|
100
|
+
// The top vertex, extended `reach` along the final slope.
|
|
101
|
+
const lastEdge = sub(points.at(-1), points.at(-2));
|
|
102
|
+
const lastLen = Math.hypot(lastEdge[0], lastEdge[1], lastEdge[2]);
|
|
103
|
+
const railEnd = reach > 0 && lastLen > 1e-6
|
|
104
|
+
? add(points.at(-1), scale(lastEdge, reach / lastLen))
|
|
105
|
+
: points.at(-1);
|
|
106
|
+
const railPoints = reach > 0 ? [...points, railEnd] : [...points];
|
|
107
|
+
// A fitting block belongs only at a real corner. A tessellated curve or a
|
|
108
|
+
// spiral turns a similar amount at every vertex, so a sharp turn is a corner
|
|
109
|
+
// only when it stands out from its neighbours; collinear points never turn.
|
|
110
|
+
const horizontalDir = (a, b) => {
|
|
111
|
+
const dx = b[0] - a[0], dz = b[2] - a[2];
|
|
112
|
+
const length = Math.hypot(dx, dz);
|
|
113
|
+
return length < 1e-6 ? null : [dx / length, dz / length];
|
|
114
|
+
};
|
|
115
|
+
const turnAt = (i) => {
|
|
116
|
+
if (i < 1 || i > railPoints.length - 2)
|
|
117
|
+
return null;
|
|
118
|
+
const incoming = horizontalDir(railPoints[i - 1], railPoints[i]);
|
|
119
|
+
const outgoing = horizontalDir(railPoints[i], railPoints[i + 1]);
|
|
120
|
+
if (!incoming || !outgoing)
|
|
121
|
+
return null;
|
|
122
|
+
const dot = Math.min(Math.max(incoming[0] * outgoing[0] + incoming[1] * outgoing[1], -1), 1);
|
|
123
|
+
return Math.acos(dot);
|
|
124
|
+
};
|
|
125
|
+
const isCorner = (i) => {
|
|
126
|
+
const turn = turnAt(i);
|
|
127
|
+
if (turn === null || turn <= CORNER_MIN_TURN)
|
|
128
|
+
return false;
|
|
129
|
+
// Cable runs need anchors at consecutive sharp turns as well as isolated corners.
|
|
130
|
+
if (options.cornerPosts && turn >= Math.PI / 6)
|
|
131
|
+
return true;
|
|
132
|
+
const neighbour = Math.max(turnAt(i - 1) ?? 0, turnAt(i + 1) ?? 0);
|
|
133
|
+
return neighbour < turn * 0.5;
|
|
134
|
+
};
|
|
135
|
+
const postStations = new Set([0]);
|
|
136
|
+
if (topPost)
|
|
137
|
+
postStations.add(run);
|
|
138
|
+
if (Number.isFinite(postSpacing)) {
|
|
139
|
+
const bays = Math.max(1, Math.ceil(run / postSpacing));
|
|
140
|
+
for (let i = 1; i < bays; i++)
|
|
141
|
+
postStations.add((run * i) / bays);
|
|
142
|
+
}
|
|
143
|
+
if (options.cornerPosts) {
|
|
144
|
+
for (let i = 1; i < points.length - 1; i++) {
|
|
145
|
+
if (isCorner(i))
|
|
146
|
+
postStations.add(cumulative[i]);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const sortedStations = [...postStations].sort((a, b) => a - b);
|
|
150
|
+
const postPositions = sortedStations.map(pointAt);
|
|
151
|
+
const picketStations = [];
|
|
152
|
+
if (options.picketPitch !== undefined) {
|
|
153
|
+
const pitch = Math.min(Math.max(options.picketPitch, options.picketMinPitch ?? options.picketPitch), options.picketMaxPitch ?? options.picketPitch);
|
|
154
|
+
const bays = Math.max(2, Math.ceil(run / pitch));
|
|
155
|
+
for (let i = 1; i < bays; i++)
|
|
156
|
+
picketStations.push(pointAt((run * i) / bays));
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
kind: 'path',
|
|
160
|
+
run,
|
|
161
|
+
railPoints,
|
|
162
|
+
pointAt,
|
|
163
|
+
isCorner,
|
|
164
|
+
postPositions,
|
|
165
|
+
postStations: sortedStations,
|
|
166
|
+
picketStations,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export const GUARD_POST_SPACING = 1.2192;
|
|
170
|
+
export const GUARD_PICKET_PITCH = 0.127;
|
|
171
|
+
/** Posts, caps and the vertical-pivot case have the same assembly in every style. */
|
|
172
|
+
export function buildGuardChassis(points, options, rails, profile, sampling = {}) {
|
|
173
|
+
const path = resolveGuardPath(points, { ...options, ...sampling });
|
|
174
|
+
if (!path)
|
|
175
|
+
return null;
|
|
176
|
+
const rise = options.railHeight + (options.postThrough ? profile.throughTop : profile.top);
|
|
177
|
+
const boxes = path.kind === 'pivot' ? [] : railBars(path.railPoints, path.isCorner, rails);
|
|
178
|
+
const posts = path.kind === 'pivot' ? [path.lo] : path.postPositions;
|
|
179
|
+
for (const p of posts) {
|
|
180
|
+
const height = rise + profile.embed + (path.kind === 'pivot' ? path.hi[1] - path.lo[1] : 0);
|
|
181
|
+
const base = add(p, [0, -profile.embed, 0]);
|
|
182
|
+
boxes.push(postBox(base, height, profile.width));
|
|
183
|
+
if (profile.foot)
|
|
184
|
+
boxes.push(profile.foot(p[0], p[1], p[2]));
|
|
185
|
+
if (options.postThrough)
|
|
186
|
+
boxes.push({
|
|
187
|
+
center: [p[0], base[1] + height + profile.capThickness / 2, p[2]],
|
|
188
|
+
size: [
|
|
189
|
+
profile.width + profile.capOverhang,
|
|
190
|
+
profile.capThickness,
|
|
191
|
+
profile.width + profile.capOverhang,
|
|
192
|
+
],
|
|
193
|
+
direction: UP,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return { path, boxes };
|
|
197
|
+
}
|
|
198
|
+
export function guardPickets(path, width, postWidth, bottom, top) {
|
|
199
|
+
const boxes = [];
|
|
200
|
+
for (const p of path.picketStations) {
|
|
201
|
+
if (!path.postPositions.every((post) => Math.hypot(post[0] - p[0], post[2] - p[2]) > postWidth / 2 + width / 2))
|
|
202
|
+
continue;
|
|
203
|
+
const picket = barBox([p[0], p[1] + bottom, p[2]], [p[0], p[1] + top, p[2]], width, width);
|
|
204
|
+
if (picket)
|
|
205
|
+
boxes.push(picket);
|
|
206
|
+
}
|
|
207
|
+
return boxes;
|
|
208
|
+
}
|
package/dist/stair/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { stairDefinition } from './definition';
|
|
1
|
+
export { stairDefinition } from './definition.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/stair/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { stairDefinition } from './definition';
|
|
1
|
+
export { stairDefinition } from './definition.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StairNode, StairSegmentNode } from '@pascal-app/core';
|
|
2
|
+
import { type StairSlotId } from '@pascal-app/core';
|
|
3
|
+
import { getStraightStairSegmentBodyMaterials, resolveMaterialRef, type StairBodyMaterials } from '@pascal-app/viewer';
|
|
4
|
+
import type * as THREE from 'three';
|
|
5
|
+
type SceneMaterials = Parameters<typeof resolveMaterialRef>[1];
|
|
6
|
+
type ViewerShading = Parameters<typeof resolveMaterialRef>[2];
|
|
7
|
+
export declare function resolveStairSlotMaterial(node: StairNode, slotId: StairSlotId, defaultRef: string, baseMaterial: THREE.Material, sceneMaterials: SceneMaterials, shading: ViewerShading, textures: boolean): THREE.Material;
|
|
8
|
+
export declare function resolveStairSegmentMaterials(segment: StairSegmentNode, parent: StairNode | undefined, parentMaterials: StairBodyMaterials | undefined, sceneMaterials: SceneMaterials, shading: ViewerShading, textures: boolean, colorPreset: Parameters<typeof getStraightStairSegmentBodyMaterials>[4]): StairBodyMaterials;
|
|
9
|
+
export declare function resolveStairBodySlotMaterials(stair: StairNode, base: StairBodyMaterials, sceneMaterials: SceneMaterials, shading: ViewerShading, textures: boolean): StairBodyMaterials;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=materials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../src/stair/materials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,oCAAoC,EACpC,kBAAkB,EAElB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAEnC,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;AAkB7D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,OAAO,GAChB,KAAK,CAAC,QAAQ,CAShB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,eAAe,EAAE,kBAAkB,GAAG,SAAS,EAC/C,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAAC,CAAC,CAAC,GACtE,kBAAkB,CAgBpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,kBAAkB,EACxB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,OAAO,GAChB,kBAAkB,CAqBpB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { STAIR_BODY_SLOT_DEFAULT, STAIR_TREADS_SLOT_DEFAULT, } from '@pascal-app/core';
|
|
2
|
+
import { getStraightStairSegmentBodyMaterials, resolveMaterialRef, resolveSlotDefaultMaterial, } from '@pascal-app/viewer';
|
|
3
|
+
function hasMaterialSpec(material, materialPreset) {
|
|
4
|
+
return material !== undefined || typeof materialPreset === 'string';
|
|
5
|
+
}
|
|
6
|
+
function hasLegacyStairSlotMaterial(node, slotId) {
|
|
7
|
+
if (slotId === 'infill')
|
|
8
|
+
return false;
|
|
9
|
+
const hasWhole = hasMaterialSpec(node.material, node.materialPreset);
|
|
10
|
+
const hasTread = hasMaterialSpec(node.treadMaterial, node.treadMaterialPreset);
|
|
11
|
+
const hasSide = hasMaterialSpec(node.sideMaterial, node.sideMaterialPreset);
|
|
12
|
+
const hasRailing = hasMaterialSpec(node.railingMaterial, node.railingMaterialPreset);
|
|
13
|
+
if (slotId === 'treads')
|
|
14
|
+
return hasTread || hasSide || hasWhole;
|
|
15
|
+
if (slotId === 'body')
|
|
16
|
+
return hasSide || hasTread || hasWhole;
|
|
17
|
+
return hasRailing || hasTread || hasSide || hasWhole;
|
|
18
|
+
}
|
|
19
|
+
export function resolveStairSlotMaterial(node, slotId, defaultRef, baseMaterial, sceneMaterials, shading, textures) {
|
|
20
|
+
if (!textures)
|
|
21
|
+
return baseMaterial;
|
|
22
|
+
const slotMaterial = resolveMaterialRef(node.slots?.[slotId], sceneMaterials, shading);
|
|
23
|
+
if (slotMaterial)
|
|
24
|
+
return slotMaterial;
|
|
25
|
+
if (hasLegacyStairSlotMaterial(node, slotId))
|
|
26
|
+
return baseMaterial;
|
|
27
|
+
return resolveSlotDefaultMaterial(defaultRef, shading);
|
|
28
|
+
}
|
|
29
|
+
export function resolveStairSegmentMaterials(segment, parent, parentMaterials, sceneMaterials, shading, textures, colorPreset) {
|
|
30
|
+
const hasOverride = hasMaterialSpec(segment.material, segment.materialPreset);
|
|
31
|
+
const base = !hasOverride && !parentMaterials && textures
|
|
32
|
+
? [
|
|
33
|
+
resolveSlotDefaultMaterial(STAIR_TREADS_SLOT_DEFAULT, shading),
|
|
34
|
+
resolveSlotDefaultMaterial(STAIR_BODY_SLOT_DEFAULT, shading),
|
|
35
|
+
]
|
|
36
|
+
: hasOverride || !parentMaterials
|
|
37
|
+
? getStraightStairSegmentBodyMaterials(segment, parent, shading, textures, colorPreset)
|
|
38
|
+
: parentMaterials;
|
|
39
|
+
if (!textures)
|
|
40
|
+
return base;
|
|
41
|
+
return [
|
|
42
|
+
resolveMaterialRef(segment.slots?.treads, sceneMaterials, shading) ?? base[0],
|
|
43
|
+
resolveMaterialRef(segment.slots?.body, sceneMaterials, shading) ?? base[1],
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
export function resolveStairBodySlotMaterials(stair, base, sceneMaterials, shading, textures) {
|
|
47
|
+
return [
|
|
48
|
+
resolveStairSlotMaterial(stair, 'treads', STAIR_TREADS_SLOT_DEFAULT, base[0], sceneMaterials, shading, textures),
|
|
49
|
+
resolveStairSlotMaterial(stair, 'body', STAIR_BODY_SLOT_DEFAULT, base[1], sceneMaterials, shading, textures),
|
|
50
|
+
];
|
|
51
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One coherent metal guard laid out along a rail path, as oriented boxes — a
|
|
3
|
+
* fabricated steel guardrail in metres: a slim square post at each end (and
|
|
4
|
+
* every bay ≤ 4 ft between), welded to a flat baseplate that mounts it to the
|
|
5
|
+
* tread rather than embedding below it, a flat top rail and a bottom rail that
|
|
6
|
+
* follow the path with a fitting block closing every interior corner, and
|
|
7
|
+
* slender square balusters spanning the two rails. It shares the path sampling,
|
|
8
|
+
* corner finding and newel/picket stations in `guard-path.ts` with the baluster,
|
|
9
|
+
* deck post-and-rail, cable, boards and glass guards, so a straight flight, a
|
|
10
|
+
* chained L/U landing turn, a winder, a curved or spiral sweep and an integrated
|
|
11
|
+
* top landing all read as the same guard; only the sections, the surface-mounted
|
|
12
|
+
* feet and the slim infill differ. Pure data — no Three.js, no React.
|
|
13
|
+
*
|
|
14
|
+
* Unlike the wood guards, a steel post is not sunk into the structure: it stands
|
|
15
|
+
* on the nosing line on a baseplate, the mounting foot that grounds it. The
|
|
16
|
+
* infill is plumb slender bars spanning rail to rail, so nothing crosses the
|
|
17
|
+
* walking volume on a slope and every member meets another.
|
|
18
|
+
*
|
|
19
|
+
* `reach` runs the rails that far past the top vertex along the final slope to
|
|
20
|
+
* die into a post standing there; `topPost: false` then omits the top post.
|
|
21
|
+
* `postThrough` runs the posts past the top rail with a small cap of their own.
|
|
22
|
+
*/
|
|
23
|
+
import { type GuardBox, type GuardRail, type Vec3 } from './guard-path.js';
|
|
24
|
+
export type MetalGuardOptions = {
|
|
25
|
+
railHeight: number;
|
|
26
|
+
/** Metres between posts along the run; omit (or Infinity) for ends only. */
|
|
27
|
+
postSpacing?: number;
|
|
28
|
+
topPost?: boolean;
|
|
29
|
+
postThrough?: boolean;
|
|
30
|
+
/** Metres the rails run past the top vertex, along the final slope. */
|
|
31
|
+
reach?: number;
|
|
32
|
+
};
|
|
33
|
+
/** The metal guard's two rails, bottom-to-top: a slim bottom rail held off the
|
|
34
|
+
* nosing line and a flat top rail with its top at the guard height. Shared with
|
|
35
|
+
* the flight connector so a bridge carries the same rails as the guards it joins. */
|
|
36
|
+
export declare function metalGuardRails(railHeight: number): GuardRail[];
|
|
37
|
+
export declare function buildMetalGuard(points: Vec3[], options: MetalGuardOptions): GuardBox[];
|
|
38
|
+
//# sourceMappingURL=metal-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metal-guard.d.ts","sourceRoot":"","sources":["../../src/stair/metal-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,IAAI,EACV,MAAM,cAAc,CAAA;AAErB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAmBD;;qFAEqF;AACrF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAK/D;AAWD,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE,CA6BtF"}
|