@pascal-app/nodes 1.0.5 → 1.0.7
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 +1 -0
- package/dist/beam/actions/move-endpoint.d.ts +24 -0
- package/dist/beam/actions/move-endpoint.d.ts.map +1 -0
- package/dist/beam/actions/move-endpoint.js +54 -0
- package/dist/beam/definition.d.ts +14 -0
- package/dist/beam/definition.d.ts.map +1 -0
- package/dist/beam/definition.js +173 -0
- package/dist/beam/draft-settings.d.ts +17 -0
- package/dist/beam/draft-settings.d.ts.map +1 -0
- package/dist/beam/draft-settings.js +81 -0
- package/dist/beam/drafting.d.ts +35 -0
- package/dist/beam/drafting.d.ts.map +1 -0
- package/dist/beam/drafting.js +103 -0
- package/dist/beam/floorplan-affordances.d.ts +8 -0
- package/dist/beam/floorplan-affordances.d.ts.map +1 -0
- package/dist/beam/floorplan-affordances.js +40 -0
- package/dist/beam/floorplan-move.d.ts +11 -0
- package/dist/beam/floorplan-move.d.ts.map +1 -0
- package/dist/beam/floorplan-move.js +54 -0
- package/dist/beam/floorplan.d.ts +11 -0
- package/dist/beam/floorplan.d.ts.map +1 -0
- package/dist/beam/floorplan.js +91 -0
- package/dist/beam/geometry.d.ts +19 -0
- package/dist/beam/geometry.d.ts.map +1 -0
- package/dist/beam/geometry.js +63 -0
- package/dist/beam/index.d.ts +3 -0
- package/dist/beam/index.d.ts.map +1 -0
- package/dist/beam/index.js +2 -0
- package/dist/beam/move-endpoint-tool.d.ts +21 -0
- package/dist/beam/move-endpoint-tool.d.ts.map +1 -0
- package/dist/beam/move-endpoint-tool.js +49 -0
- package/dist/beam/move-tool.d.ts +12 -0
- package/dist/beam/move-tool.d.ts.map +1 -0
- package/dist/beam/move-tool.js +114 -0
- package/dist/beam/panel-model.d.ts +28 -0
- package/dist/beam/panel-model.d.ts.map +1 -0
- package/dist/beam/panel-model.js +123 -0
- package/dist/beam/panel.d.ts +13 -0
- package/dist/beam/panel.d.ts.map +1 -0
- package/dist/beam/panel.js +107 -0
- package/dist/beam/parametrics.d.ts +3 -0
- package/dist/beam/parametrics.d.ts.map +1 -0
- package/dist/beam/parametrics.js +4 -0
- package/dist/beam/renderer.d.ts +13 -0
- package/dist/beam/renderer.d.ts.map +1 -0
- package/dist/beam/renderer.js +36 -0
- package/dist/beam/schema.d.ts +2 -0
- package/dist/beam/schema.d.ts.map +1 -0
- package/dist/beam/schema.js +1 -0
- package/dist/beam/tool.d.ts +13 -0
- package/dist/beam/tool.d.ts.map +1 -0
- package/dist/beam/tool.js +152 -0
- package/dist/box-vent/panel.d.ts.map +1 -1
- package/dist/box-vent/panel.js +8 -7
- package/dist/cabinet/batchable.d.ts +10 -0
- package/dist/cabinet/batchable.d.ts.map +1 -0
- package/dist/cabinet/batchable.js +12 -0
- package/dist/cabinet/compartment-card.d.ts.map +1 -1
- package/dist/cabinet/compartment-card.js +142 -46
- package/dist/cabinet/countertop-layout.d.ts +5 -0
- package/dist/cabinet/countertop-layout.d.ts.map +1 -1
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +3 -0
- package/dist/cabinet/dimension-input.d.ts +6 -0
- package/dist/cabinet/dimension-input.d.ts.map +1 -0
- package/dist/cabinet/dimension-input.js +8 -0
- package/dist/cabinet/essential-controls.d.ts.map +1 -1
- package/dist/cabinet/essential-controls.js +82 -17
- package/dist/cabinet/index.d.ts +1 -1
- package/dist/cabinet/index.d.ts.map +1 -1
- package/dist/cabinet/index.js +1 -1
- package/dist/cabinet/kitchen-catalog.d.ts +17 -4
- package/dist/cabinet/kitchen-catalog.d.ts.map +1 -1
- package/dist/cabinet/kitchen-catalog.js +45 -7
- package/dist/cabinet/kitchen-collection.d.ts.map +1 -1
- package/dist/cabinet/kitchen-collection.js +21 -5
- package/dist/cabinet/kitchen-module-actions.d.ts.map +1 -1
- package/dist/cabinet/kitchen-module-actions.js +107 -14
- package/dist/cabinet/neighbor-placement.d.ts +10 -0
- package/dist/cabinet/neighbor-placement.d.ts.map +1 -1
- package/dist/cabinet/panel.d.ts.map +1 -1
- package/dist/cabinet/panel.js +127 -50
- package/dist/cabinet/run-finishing.d.ts +5 -0
- package/dist/cabinet/run-finishing.d.ts.map +1 -1
- package/dist/cabinet/run-ops.d.ts +5 -0
- package/dist/cabinet/run-ops.d.ts.map +1 -1
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +203 -52
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +8 -5
- package/dist/ceiling/build-up-section.d.ts +7 -0
- package/dist/ceiling/build-up-section.d.ts.map +1 -0
- package/dist/ceiling/build-up-section.js +57 -0
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +3 -1
- package/dist/ceiling/floorplan-affordances.d.ts +112 -0
- package/dist/ceiling/floorplan-affordances.d.ts.map +1 -1
- package/dist/ceiling/materials.d.ts +5 -0
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +17 -0
- package/dist/ceiling/panel-model.d.ts +13 -0
- package/dist/ceiling/panel-model.d.ts.map +1 -0
- package/dist/ceiling/panel-model.js +49 -0
- package/dist/ceiling/panel.d.ts.map +1 -1
- package/dist/ceiling/panel.js +82 -18
- package/dist/ceiling/renderer.d.ts.map +1 -1
- package/dist/ceiling/renderer.js +10 -4
- package/dist/ceiling/tool.d.ts.map +1 -1
- package/dist/ceiling/tool.js +24 -4
- package/dist/chimney/panel.d.ts.map +1 -1
- package/dist/chimney/panel.js +113 -41
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +3 -0
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +17 -0
- package/dist/column/hosted-resize.d.ts +28 -1
- package/dist/column/hosted-resize.d.ts.map +1 -1
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +125 -37
- package/dist/column/post-options.d.ts +10 -0
- package/dist/column/post-options.d.ts.map +1 -0
- package/dist/column/post-options.js +71 -0
- package/dist/column/post-placement.d.ts +78 -0
- package/dist/column/post-placement.d.ts.map +1 -0
- package/dist/column/post-placement.js +157 -0
- package/dist/column/post-section.d.ts +17 -0
- package/dist/column/post-section.d.ts.map +1 -0
- package/dist/column/post-section.js +95 -0
- package/dist/column/post-tool.d.ts +11 -0
- package/dist/column/post-tool.d.ts.map +1 -0
- package/dist/column/post-tool.js +94 -0
- package/dist/column/tool.d.ts +3 -10
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +13 -1
- package/dist/cupola/panel.d.ts.map +1 -1
- package/dist/cupola/panel.js +14 -7
- package/dist/door/actions.d.ts +7 -0
- package/dist/door/actions.d.ts.map +1 -0
- package/dist/door/actions.js +32 -0
- package/dist/door/contextual-dimensions.d.ts.map +1 -1
- package/dist/door/contextual-dimensions.js +11 -1
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.js +34 -7
- package/dist/door/floorplan-affordances.d.ts.map +1 -1
- package/dist/door/floorplan-affordances.js +5 -2
- package/dist/door/floorplan-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +28 -6
- package/dist/door/floorplan.d.ts +2 -0
- package/dist/door/floorplan.d.ts.map +1 -1
- package/dist/door/floorplan.js +89 -16
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +60 -16
- package/dist/door/paint.d.ts +2 -7
- package/dist/door/paint.d.ts.map +1 -1
- package/dist/door/paint.js +26 -2
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +242 -90
- package/dist/door/parametrics.js +1 -1
- package/dist/door/placement.d.ts.map +1 -1
- package/dist/door/placement.js +9 -2
- package/dist/door/swing.d.ts +22 -0
- package/dist/door/swing.d.ts.map +1 -0
- package/dist/door/swing.js +36 -0
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +76 -29
- package/dist/dormer/panel-actions-section.d.ts.map +1 -1
- package/dist/dormer/panel-actions-section.js +3 -1
- package/dist/dormer/panel-position-section.d.ts.map +1 -1
- package/dist/dormer/panel-position-section.js +4 -3
- package/dist/dormer/panel-windows-section.d.ts.map +1 -1
- package/dist/dormer/panel-windows-section.js +38 -1
- package/dist/dormer/panel.d.ts.map +1 -1
- package/dist/dormer/panel.js +24 -18
- package/dist/downspout/inspector-editors.d.ts.map +1 -1
- package/dist/downspout/inspector-editors.js +3 -2
- package/dist/duct-fitting/inspector-editors.d.ts.map +1 -1
- package/dist/duct-fitting/inspector-editors.js +6 -1
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +11 -2
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +11 -2
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +41 -18
- package/dist/eyebrow-vent/panel.d.ts.map +1 -1
- package/dist/eyebrow-vent/panel.js +16 -6
- package/dist/fence/drafting.d.ts +2 -3
- package/dist/fence/drafting.d.ts.map +1 -1
- package/dist/fence/drafting.js +2 -3
- package/dist/fence/inspector-editors.d.ts.map +1 -1
- package/dist/fence/inspector-editors.js +64 -21
- package/dist/fence/move-endpoint-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.js +11 -2
- package/dist/fence/system.d.ts.map +1 -1
- package/dist/fence/system.js +13 -0
- package/dist/fence-feature/actions.d.ts.map +1 -1
- package/dist/fence-feature/actions.js +5 -2
- package/dist/fence-feature/inspector.d.ts.map +1 -1
- package/dist/fence-feature/inspector.js +150 -34
- package/dist/fence-feature/move-session.d.ts +1 -1
- package/dist/floor-opening/floorplan.d.ts +29 -6
- package/dist/floor-opening/floorplan.d.ts.map +1 -1
- package/dist/floor-opening/floorplan.js +172 -14
- package/dist/gutter/downspouts-panel.d.ts.map +1 -1
- package/dist/gutter/downspouts-panel.js +14 -2
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +3 -2
- package/dist/i18n/definition-messages.d.ts +5 -0
- package/dist/i18n/definition-messages.d.ts.map +1 -0
- package/dist/i18n/definition-messages.js +771 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/item/authored-params.d.ts.map +1 -1
- package/dist/item/authored-params.js +19 -4
- package/dist/item/floorplan.d.ts +1 -1
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/panel.d.ts.map +1 -1
- package/dist/item/panel.js +9 -7
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +10 -3
- package/dist/measurement/tool.d.ts +1 -1
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +8 -8
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +3 -2
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -2
- package/dist/procedural-item/renderer.d.ts.map +1 -1
- package/dist/procedural-item/renderer.js +8 -1
- package/dist/ridge-vent/panel.d.ts.map +1 -1
- package/dist/ridge-vent/panel.js +22 -9
- package/dist/roof/barrel-panel.d.ts.map +1 -1
- package/dist/roof/barrel-panel.js +7 -3
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +33 -3
- package/dist/roof/floorplan-overrides.d.ts +22 -0
- package/dist/roof/floorplan-overrides.d.ts.map +1 -0
- package/dist/roof/floorplan-overrides.js +46 -0
- package/dist/roof/floorplan-tool.d.ts +9 -0
- package/dist/roof/floorplan-tool.d.ts.map +1 -0
- package/dist/roof/floorplan-tool.js +168 -0
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +131 -41
- package/dist/roof/glazing-controls.d.ts +2 -1
- package/dist/roof/glazing-controls.d.ts.map +1 -1
- package/dist/roof/glazing-controls.js +51 -13
- package/dist/roof/glazing-panel-editor.d.ts.map +1 -1
- package/dist/roof/glazing-panel-editor.js +40 -13
- package/dist/roof/glazing-panel.d.ts.map +1 -1
- package/dist/roof/glazing-panel.js +73 -9
- package/dist/roof/paint.d.ts +19 -0
- package/dist/roof/paint.d.ts.map +1 -0
- package/dist/roof/paint.js +158 -0
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +90 -22
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +13 -2
- package/dist/roof/roof-footprint-source.d.ts +17 -0
- package/dist/roof/roof-footprint-source.d.ts.map +1 -1
- package/dist/roof/roof-footprint-source.js +14 -0
- package/dist/roof/roof-footprint.d.ts +36 -2
- package/dist/roof/roof-footprint.d.ts.map +1 -1
- package/dist/roof/roof-footprint.js +124 -2
- package/dist/roof/roof-materials.d.ts.map +1 -1
- package/dist/roof/roof-materials.js +10 -1
- package/dist/roof/roof-placement-mode.d.ts +0 -2
- package/dist/roof/roof-placement-mode.d.ts.map +1 -1
- package/dist/roof/roof-placement-mode.js +8 -6
- package/dist/roof/roof-plan-creases.d.ts +50 -0
- package/dist/roof/roof-plan-creases.d.ts.map +1 -0
- package/dist/roof/roof-plan-creases.js +194 -0
- package/dist/roof/roof-ridge-mode.d.ts +20 -0
- package/dist/roof/roof-ridge-mode.d.ts.map +1 -0
- package/dist/roof/roof-ridge-mode.js +16 -0
- package/dist/roof/tool.d.ts +17 -4
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +211 -113
- package/dist/roof/wall-catch.d.ts +106 -0
- package/dist/roof/wall-catch.d.ts.map +1 -0
- package/dist/roof/wall-catch.js +267 -0
- package/dist/roof-segment/build-up-section.d.ts +9 -0
- package/dist/roof-segment/build-up-section.d.ts.map +1 -0
- package/dist/roof-segment/build-up-section.js +191 -0
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +50 -5
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +68 -19
- package/dist/roof-segment/floorplan.d.ts.map +1 -1
- package/dist/roof-segment/floorplan.js +16 -12
- package/dist/roof-segment/paint.d.ts +3 -1
- package/dist/roof-segment/paint.d.ts.map +1 -1
- package/dist/roof-segment/paint.js +43 -2
- package/dist/roof-segment/panel-model.d.ts +23 -0
- package/dist/roof-segment/panel-model.d.ts.map +1 -0
- package/dist/roof-segment/panel-model.js +64 -0
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +96 -14
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +4 -0
- package/dist/roof-segment/renderer.d.ts.map +1 -1
- package/dist/roof-segment/renderer.js +26 -5
- package/dist/separator/definition.d.ts.map +1 -1
- package/dist/separator/definition.js +10 -12
- package/dist/separator/floorplan-affordances.d.ts +9 -0
- package/dist/separator/floorplan-affordances.d.ts.map +1 -0
- package/dist/separator/floorplan-affordances.js +23 -0
- package/dist/separator/floorplan.d.ts +9 -0
- package/dist/separator/floorplan.d.ts.map +1 -0
- package/dist/separator/floorplan.js +54 -0
- package/dist/separator/renderer.d.ts +4 -0
- package/dist/separator/renderer.d.ts.map +1 -1
- package/dist/separator/renderer.js +21 -6
- package/dist/separator/selection.d.ts +10 -0
- package/dist/separator/selection.d.ts.map +1 -0
- package/dist/separator/selection.js +35 -0
- package/dist/shared/build-up-controls.d.ts +88 -0
- package/dist/shared/build-up-controls.d.ts.map +1 -0
- package/dist/shared/build-up-controls.js +139 -0
- package/dist/shared/curtain-opening-limits.d.ts.map +1 -1
- package/dist/shared/curtain-opening-limits.js +44 -14
- package/dist/shared/item-interaction-actions.d.ts.map +1 -1
- package/dist/shared/item-interaction-actions.js +11 -2
- package/dist/shared/layer-thickness.d.ts +2 -0
- package/dist/shared/layer-thickness.d.ts.map +1 -0
- package/dist/shared/layer-thickness.js +3 -0
- package/dist/shared/move-roof-tool.d.ts.map +1 -1
- package/dist/shared/move-roof-tool.js +100 -5
- package/dist/shared/node-batch/batchable.d.ts +2 -0
- package/dist/shared/node-batch/batchable.d.ts.map +1 -1
- package/dist/shared/node-batch/batchable.js +4 -0
- package/dist/shared/node-batch/candidates.d.ts +21 -5
- package/dist/shared/node-batch/candidates.d.ts.map +1 -1
- package/dist/shared/node-batch/candidates.js +85 -50
- package/dist/shared/node-batch/system.d.ts.map +1 -1
- package/dist/shared/node-batch/system.js +24 -15
- package/dist/shared/opening-casing-move.d.ts +16 -0
- package/dist/shared/opening-casing-move.d.ts.map +1 -0
- package/dist/shared/opening-casing-move.js +33 -0
- package/dist/shared/opening-casing-section.d.ts +15 -0
- package/dist/shared/opening-casing-section.d.ts.map +1 -0
- package/dist/shared/opening-casing-section.js +38 -0
- package/dist/shared/opening-casing.d.ts +26 -0
- package/dist/shared/opening-casing.d.ts.map +1 -0
- package/dist/shared/opening-casing.js +80 -0
- package/dist/shared/opening-depth-position.d.ts +13 -0
- package/dist/shared/opening-depth-position.d.ts.map +1 -0
- package/dist/shared/opening-depth-position.js +34 -0
- package/dist/shared/opening-documentation.d.ts.map +1 -1
- package/dist/shared/opening-documentation.js +17 -8
- package/dist/shared/opening-guides-runtime.d.ts +2 -1
- package/dist/shared/opening-guides-runtime.d.ts.map +1 -1
- package/dist/shared/opening-guides-runtime.js +11 -7
- package/dist/shared/opening-labels.d.ts +11 -0
- package/dist/shared/opening-labels.d.ts.map +1 -0
- package/dist/shared/opening-labels.js +46 -0
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +11 -9
- package/dist/shared/opening-plane-offset.d.ts +4 -3
- package/dist/shared/opening-plane-offset.d.ts.map +1 -1
- package/dist/shared/opening-plane-offset.js +7 -4
- package/dist/shared/opening-swap.d.ts +8 -0
- package/dist/shared/opening-swap.d.ts.map +1 -0
- package/dist/shared/opening-swap.js +18 -0
- package/dist/shared/polygon-vertex-affordance.d.ts +19 -0
- package/dist/shared/polygon-vertex-affordance.d.ts.map +1 -1
- package/dist/shared/polygon-vertex-affordance.js +65 -6
- package/dist/shared/roof-opening-host.d.ts +2 -1
- package/dist/shared/roof-opening-host.d.ts.map +1 -1
- package/dist/shared/roof-opening-host.js +14 -5
- package/dist/shared/roof-wall-opening-cut.d.ts.map +1 -1
- package/dist/shared/roof-wall-opening-cut.js +14 -6
- package/dist/shared/roof-wall-opening-placement.d.ts +2 -1
- package/dist/shared/roof-wall-opening-placement.d.ts.map +1 -1
- package/dist/shared/roof-wall-opening-placement.js +6 -4
- package/dist/shared/run-hanger-inspector.d.ts.map +1 -1
- package/dist/shared/run-hanger-inspector.js +39 -5
- package/dist/shared/system-check-panel.d.ts.map +1 -1
- package/dist/shared/system-check-panel.js +94 -15
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +6 -3
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +2 -0
- package/dist/site/ground-hole.d.ts +3 -3
- package/dist/site/ground-hole.js +3 -3
- package/dist/site/ground-veil.d.ts +5 -12
- package/dist/site/ground-veil.d.ts.map +1 -1
- package/dist/site/ground-veil.js +9 -33
- package/dist/site/panel.d.ts.map +1 -1
- package/dist/site/panel.js +52 -12
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +52 -23
- package/dist/skylight/panel.d.ts.map +1 -1
- package/dist/skylight/panel.js +49 -19
- package/dist/slab/deck-geometry.d.ts +28 -0
- package/dist/slab/deck-geometry.d.ts.map +1 -0
- package/dist/slab/deck-geometry.js +320 -0
- package/dist/slab/definition.d.ts +2 -1
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +6 -1
- package/dist/slab/dependency-tracker.d.ts.map +1 -1
- package/dist/slab/dependency-tracker.js +3 -0
- package/dist/slab/floorplan-affordances.d.ts +500 -0
- package/dist/slab/floorplan-affordances.d.ts.map +1 -1
- package/dist/slab/geometry.d.ts.map +1 -1
- package/dist/slab/geometry.js +46 -9
- package/dist/slab/panel.d.ts.map +1 -1
- package/dist/slab/panel.js +97 -21
- package/dist/slab/renderer.d.ts +11 -0
- package/dist/slab/renderer.d.ts.map +1 -0
- package/dist/slab/renderer.js +19 -0
- package/dist/slab/system.d.ts.map +1 -1
- package/dist/slab/system.js +12 -1
- package/dist/solar-panel/panel.d.ts.map +1 -1
- package/dist/solar-panel/panel.js +49 -14
- package/dist/stair/construction-controls.d.ts +3 -1
- package/dist/stair/construction-controls.d.ts.map +1 -1
- package/dist/stair/construction-controls.js +75 -12
- package/dist/stair/paint.d.ts +6 -0
- package/dist/stair/paint.d.ts.map +1 -1
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +243 -51
- package/dist/stair/parametrics.d.ts.map +1 -1
- package/dist/stair/parametrics.js +7 -0
- package/dist/stair/placement-defaults.d.ts +18 -0
- package/dist/stair/placement-defaults.d.ts.map +1 -0
- package/dist/stair/placement-defaults.js +27 -0
- package/dist/stair/railing-controls.d.ts.map +1 -1
- package/dist/stair/railing-controls.js +78 -18
- package/dist/stair/renderer.d.ts.map +1 -1
- package/dist/stair/renderer.js +16 -10
- package/dist/stair/structure-controls.d.ts +18 -0
- package/dist/stair/structure-controls.d.ts.map +1 -0
- package/dist/stair/structure-controls.js +275 -0
- package/dist/stair/tool.d.ts.map +1 -1
- package/dist/stair/tool.js +13 -9
- package/dist/stair/use-stair-render-data.d.ts +41 -0
- package/dist/stair/use-stair-render-data.d.ts.map +1 -1
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +65 -18
- package/dist/turbine-vent/panel.d.ts.map +1 -1
- package/dist/turbine-vent/panel.js +14 -5
- package/dist/unit/unit-panel.d.ts.map +1 -1
- package/dist/unit/unit-panel.js +28 -12
- package/dist/wall/actions.d.ts +1 -1
- package/dist/wall/actions.d.ts.map +1 -1
- package/dist/wall/actions.js +17 -13
- package/dist/wall/construction-dimensions.d.ts +6 -0
- package/dist/wall/construction-dimensions.d.ts.map +1 -1
- package/dist/wall/construction-dimensions.js +8 -0
- package/dist/wall/contextual-dimensions.d.ts +6 -0
- package/dist/wall/contextual-dimensions.d.ts.map +1 -1
- package/dist/wall/contextual-dimensions.js +104 -17
- package/dist/wall/curtain-opening-frame.d.ts.map +1 -1
- package/dist/wall/curtain-opening-frame.js +6 -4
- package/dist/wall/curtain-wall-layout.d.ts +1 -1
- package/dist/wall/curtain-wall-layout.d.ts.map +1 -1
- package/dist/wall/curtain-wall-layout.js +6 -4
- package/dist/wall/curtain-wall-materials.d.ts.map +1 -1
- package/dist/wall/curtain-wall-materials.js +8 -3
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
- package/dist/wall/curtain-wall-panel.js +241 -37
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +2 -3
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +20 -5
- package/dist/wall/floorplan-affordances.d.ts.map +1 -1
- package/dist/wall/floorplan-affordances.js +9 -6
- package/dist/wall/floorplan-move.d.ts.map +1 -1
- package/dist/wall/floorplan-move.js +66 -16
- package/dist/wall/floorplan.d.ts +4 -5
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +62 -46
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +1 -0
- package/dist/wall/move-tool.d.ts.map +1 -1
- package/dist/wall/move-tool.js +77 -12
- package/dist/wall/paint.d.ts +2 -2
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +11 -4
- package/dist/wall/panel-model.d.ts +17 -2
- package/dist/wall/panel-model.d.ts.map +1 -1
- package/dist/wall/panel-model.js +158 -18
- package/dist/wall/panel.d.ts +8 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +228 -156
- package/dist/wall/parametrics.d.ts +1 -1
- package/dist/wall/parametrics.d.ts.map +1 -1
- package/dist/wall/parametrics.js +14 -1
- package/dist/wall/railing-wall-adapter.d.ts +7 -0
- package/dist/wall/railing-wall-adapter.d.ts.map +1 -0
- package/dist/wall/railing-wall-adapter.js +38 -0
- package/dist/wall/railing-wall-floorplan.d.ts +8 -0
- package/dist/wall/railing-wall-floorplan.d.ts.map +1 -0
- package/dist/wall/railing-wall-floorplan.js +27 -0
- package/dist/wall/railing-wall-geometry.d.ts +12 -0
- package/dist/wall/railing-wall-geometry.d.ts.map +1 -0
- package/dist/wall/railing-wall-geometry.js +51 -0
- package/dist/wall/railing-wall-guard.d.ts +81 -0
- package/dist/wall/railing-wall-guard.d.ts.map +1 -0
- package/dist/wall/railing-wall-guard.js +435 -0
- package/dist/wall/railing-wall-materials.d.ts +11 -0
- package/dist/wall/railing-wall-materials.d.ts.map +1 -0
- package/dist/wall/railing-wall-materials.js +31 -0
- package/dist/wall/railing-wall-panel-model.d.ts +30 -0
- package/dist/wall/railing-wall-panel-model.d.ts.map +1 -0
- package/dist/wall/railing-wall-panel-model.js +117 -0
- package/dist/wall/railing-wall-panel.d.ts +17 -0
- package/dist/wall/railing-wall-panel.d.ts.map +1 -0
- package/dist/wall/railing-wall-panel.js +42 -0
- package/dist/wall/rectangle-command.d.ts +79 -1
- 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 +2 -0
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +3 -1
- package/dist/wall/skirting-floor-gaps.d.ts +8 -0
- package/dist/wall/skirting-floor-gaps.d.ts.map +1 -0
- package/dist/wall/skirting-floor-gaps.js +36 -0
- package/dist/wall/system.d.ts +0 -14
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +6 -1
- package/dist/wall/tool.d.ts +16 -0
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +160 -47
- package/dist/wall/treatments.d.ts +3 -0
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +30 -7
- package/dist/window/actions.d.ts +7 -0
- package/dist/window/actions.d.ts.map +1 -0
- package/dist/window/actions.js +29 -0
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +11 -2
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +5 -0
- package/dist/window/floorplan.d.ts +2 -0
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +58 -1
- package/dist/window/mechanism.d.ts.map +1 -1
- package/dist/window/mechanism.js +21 -1
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +10 -3
- package/dist/window/paint.d.ts +2 -7
- package/dist/window/paint.d.ts.map +1 -1
- package/dist/window/paint.js +31 -3
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +311 -69
- package/dist/window/placement.d.ts.map +1 -1
- package/dist/window/placement.js +5 -1
- package/dist/window/swing.d.ts +13 -0
- package/dist/window/swing.d.ts.map +1 -0
- package/dist/window/swing.js +16 -0
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +19 -14
- package/dist/zone/floorplan-affordances.d.ts +136 -0
- package/dist/zone/floorplan-affordances.d.ts.map +1 -1
- package/dist/zone/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +34 -9
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +9 -5
- package/package.json +14 -14
- package/dist/site/generic-foundation-geometry.d.ts +0 -16
- package/dist/site/generic-foundation-geometry.d.ts.map +0 -1
- package/dist/site/generic-foundation-geometry.js +0 -75
- package/dist/site/generic-foundation.d.ts +0 -4
- package/dist/site/generic-foundation.d.ts.map +0 -1
- package/dist/site/generic-foundation.js +0 -91
package/dist/wall/parametrics.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_WALL_THICKNESS } from '@pascal-app/core';
|
|
1
2
|
/**
|
|
2
3
|
* Inspector descriptor for wall.
|
|
3
4
|
*
|
|
@@ -18,7 +19,19 @@ export const wallParametrics = {
|
|
|
18
19
|
// Reference is not a raw field: its labels depend on each wall's rooms
|
|
19
20
|
// (`wallReferenceModel` in panel-model), so generic inspectors never
|
|
20
21
|
// show the stored a / b value.
|
|
21
|
-
|
|
22
|
+
// An assembly owns the thickness (the sum of its layers), so the field
|
|
23
|
+
// edits only walls without one; those read it from the panel model's
|
|
24
|
+
// readout instead of typing over it. A railing's posts set its thickness.
|
|
25
|
+
{
|
|
26
|
+
key: 'thickness',
|
|
27
|
+
kind: 'number',
|
|
28
|
+
unit: 'm',
|
|
29
|
+
min: 0.05,
|
|
30
|
+
max: 1000,
|
|
31
|
+
step: 0.01,
|
|
32
|
+
default: DEFAULT_WALL_THICKNESS,
|
|
33
|
+
appliesTo: (wall) => wall.wallType !== 'railing' && (!wall.assembly || wall.wallType === 'curtain'),
|
|
34
|
+
},
|
|
22
35
|
// `height` may be absent (plane-bound top); the custom panel owns the
|
|
23
36
|
// Follows storey / Custom height mode switch, so this is metadata only.
|
|
24
37
|
{ key: 'height', kind: 'number', unit: 'm', min: 0.1, max: 1000, step: 0.05 },
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WallGeometryAdapter } from '@pascal-app/viewer';
|
|
2
|
+
/**
|
|
3
|
+
* `adapter` with railing walls built as their guard (`railing-wall-geometry.ts`) instead of a
|
|
4
|
+
* solid body. A railing is never cut: its doors are the gaps its guard leaves.
|
|
5
|
+
*/
|
|
6
|
+
export declare function withRailingWalls(adapter: WallGeometryAdapter): WallGeometryAdapter;
|
|
7
|
+
//# sourceMappingURL=railing-wall-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"railing-wall-adapter.d.ts","sourceRoot":"","sources":["../../src/wall/railing-wall-adapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAc7D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAmBlF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getEffectiveNode, isRailingWall, useScene, } from '@pascal-app/core';
|
|
2
|
+
import { buildRailingWallGeometry } from './railing-wall-geometry.js';
|
|
3
|
+
/** The walls of a railing's level as they stand live: the walls its ends may die into. */
|
|
4
|
+
function levelWalls(wall) {
|
|
5
|
+
const nodes = useScene.getState().nodes;
|
|
6
|
+
const level = wall.parentId ? nodes[wall.parentId] : undefined;
|
|
7
|
+
if (level?.type !== 'level')
|
|
8
|
+
return [];
|
|
9
|
+
return level.children.flatMap((id) => {
|
|
10
|
+
const node = nodes[id];
|
|
11
|
+
return node?.type === 'wall' ? [getEffectiveNode(node)] : [];
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `adapter` with railing walls built as their guard (`railing-wall-geometry.ts`) instead of a
|
|
16
|
+
* solid body. A railing is never cut: its doors are the gaps its guard leaves.
|
|
17
|
+
*/
|
|
18
|
+
export function withRailingWalls(adapter) {
|
|
19
|
+
return {
|
|
20
|
+
prepareChildren(wall, children, context) {
|
|
21
|
+
if (isRailingWall(wall))
|
|
22
|
+
return { envelopeChildren: [], renderChildren: [...children] };
|
|
23
|
+
return (adapter.prepareChildren?.(wall, children, context) ?? {
|
|
24
|
+
envelopeChildren: [...children],
|
|
25
|
+
renderChildren: [...children],
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
buildGeometry(wall, envelope, children) {
|
|
29
|
+
if (isRailingWall(wall))
|
|
30
|
+
return buildRailingWallGeometry(wall, children, levelWalls(wall));
|
|
31
|
+
return adapter.buildGeometry?.(wall, envelope, children) ?? envelope;
|
|
32
|
+
},
|
|
33
|
+
syncAuxiliaryGeometry(wall, mesh, geometry) {
|
|
34
|
+
if (!isRailingWall(wall))
|
|
35
|
+
adapter.syncAuxiliaryGeometry?.(wall, mesh, geometry);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnyNode, type FloorplanGeometry, type WallNode } from '@pascal-app/core';
|
|
2
|
+
/**
|
|
3
|
+
* A railing's posts in plan: a small square at each post the guard stands
|
|
4
|
+
* (`railing-wall-guard.ts`), inside the thin, unfilled outline the wall builder draws. `walls`
|
|
5
|
+
* are the level's, read for the ends that die into a wall.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildRailingWallFloorplan(wall: WallNode, children: readonly AnyNode[], walls: readonly WallNode[], stroke: string): FloorplanGeometry[];
|
|
8
|
+
//# sourceMappingURL=railing-wall-floorplan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"railing-wall-floorplan.d.ts","sourceRoot":"","sources":["../../src/wall/railing-wall-floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAGzB;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,MAAM,GACb,iBAAiB,EAAE,CAqBrB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getRailingWallConfig, } from '@pascal-app/core';
|
|
2
|
+
import { buildRailingWallGuard } from './railing-wall-guard.js';
|
|
3
|
+
/**
|
|
4
|
+
* A railing's posts in plan: a small square at each post the guard stands
|
|
5
|
+
* (`railing-wall-guard.ts`), inside the thin, unfilled outline the wall builder draws. `walls`
|
|
6
|
+
* are the level's, read for the ends that die into a wall.
|
|
7
|
+
*/
|
|
8
|
+
export function buildRailingWallFloorplan(wall, children, walls, stroke) {
|
|
9
|
+
const half = getRailingWallConfig(wall).postSize / 2;
|
|
10
|
+
const angle = Math.atan2(wall.end[1] - wall.start[1], wall.end[0] - wall.start[0]);
|
|
11
|
+
// The posts stand square to the wall's chord, as in 3D.
|
|
12
|
+
const along = [Math.cos(angle) * half, Math.sin(angle) * half];
|
|
13
|
+
const across = [-along[1], along[0]];
|
|
14
|
+
return buildRailingWallGuard(wall, children, walls, 'plan').posts.map(([x, , z]) => ({
|
|
15
|
+
kind: 'polygon',
|
|
16
|
+
points: [
|
|
17
|
+
[x - along[0] - across[0], z - along[1] - across[1]],
|
|
18
|
+
[x + along[0] - across[0], z + along[1] - across[1]],
|
|
19
|
+
[x + along[0] + across[0], z + along[1] + across[1]],
|
|
20
|
+
[x - along[0] + across[0], z - along[1] + across[1]],
|
|
21
|
+
],
|
|
22
|
+
fill: stroke,
|
|
23
|
+
stroke,
|
|
24
|
+
strokeWidth: 0.004,
|
|
25
|
+
pointerEvents: 'none',
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AnyNode, WallNode } from '@pascal-app/core';
|
|
2
|
+
import { BufferGeometry } from 'three';
|
|
3
|
+
/** The railing mesh's palette: its posts, rails and caps, then its infill (`wallSlots`). */
|
|
4
|
+
export declare const RAILING_FRAME_MATERIAL_INDEX = 0;
|
|
5
|
+
export declare const RAILING_INFILL_MATERIAL_INDEX = 1;
|
|
6
|
+
/**
|
|
7
|
+
* A railing wall's mesh in the wall's frame (`railing-wall-guard.ts`), from its floor at y 0: the
|
|
8
|
+
* posts, rails and caps in group 0 and the infill (balusters, boards, cables, glass) in group 1,
|
|
9
|
+
* so each takes its own slot. `walls` are the level's, read for the ends that die into a wall.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildRailingWallGeometry(wall: WallNode, children: readonly AnyNode[], walls: readonly WallNode[]): BufferGeometry;
|
|
12
|
+
//# sourceMappingURL=railing-wall-geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"railing-wall-geometry.d.ts","sourceRoot":"","sources":["../../src/wall/railing-wall-geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,cAAc,EAA0B,MAAM,OAAO,CAAA;AAM9D,4FAA4F;AAC5F,eAAO,MAAM,4BAA4B,IAAI,CAAA;AAC7C,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAsB9C;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB,cAAc,CAkBhB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BufferGeometry, Float32BufferAttribute } from 'three';
|
|
2
|
+
import { mergeGeometries } from 'three/examples/jsm/utils/BufferGeometryUtils.js';
|
|
3
|
+
import { guardBoxGeometry } from '../stair/baluster-geometry.js';
|
|
4
|
+
import { buildRailingWallGuard } from './railing-wall-guard.js';
|
|
5
|
+
/** The railing mesh's palette: its posts, rails and caps, then its infill (`wallSlots`). */
|
|
6
|
+
export const RAILING_FRAME_MATERIAL_INDEX = 0;
|
|
7
|
+
export const RAILING_INFILL_MATERIAL_INDEX = 1;
|
|
8
|
+
function boxesGeometry(boxes) {
|
|
9
|
+
if (boxes.length === 0)
|
|
10
|
+
return null;
|
|
11
|
+
const parts = boxes.map(guardBoxGeometry);
|
|
12
|
+
const merged = mergeGeometries(parts, false);
|
|
13
|
+
for (const part of parts)
|
|
14
|
+
part.dispose();
|
|
15
|
+
return merged;
|
|
16
|
+
}
|
|
17
|
+
function emptyGeometry() {
|
|
18
|
+
const geometry = new BufferGeometry();
|
|
19
|
+
for (const [name, size] of [
|
|
20
|
+
['position', 3],
|
|
21
|
+
['normal', 3],
|
|
22
|
+
['uv', 2],
|
|
23
|
+
['uv2', 2],
|
|
24
|
+
])
|
|
25
|
+
geometry.setAttribute(name, new Float32BufferAttribute([], size));
|
|
26
|
+
return geometry;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A railing wall's mesh in the wall's frame (`railing-wall-guard.ts`), from its floor at y 0: the
|
|
30
|
+
* posts, rails and caps in group 0 and the infill (balusters, boards, cables, glass) in group 1,
|
|
31
|
+
* so each takes its own slot. `walls` are the level's, read for the ends that die into a wall.
|
|
32
|
+
*/
|
|
33
|
+
export function buildRailingWallGeometry(wall, children, walls) {
|
|
34
|
+
const guard = buildRailingWallGuard(wall, children, walls, 'local');
|
|
35
|
+
const parts = [
|
|
36
|
+
{ geometry: boxesGeometry(guard.frame), materialIndex: RAILING_FRAME_MATERIAL_INDEX },
|
|
37
|
+
{ geometry: boxesGeometry(guard.infill), materialIndex: RAILING_INFILL_MATERIAL_INDEX },
|
|
38
|
+
].filter((part) => !!part.geometry);
|
|
39
|
+
if (parts.length === 0)
|
|
40
|
+
return emptyGeometry();
|
|
41
|
+
const merged = mergeGeometries(parts.map((part) => part.geometry), true);
|
|
42
|
+
for (const part of parts)
|
|
43
|
+
part.geometry.dispose();
|
|
44
|
+
if (!merged)
|
|
45
|
+
return emptyGeometry();
|
|
46
|
+
// `mergeGeometries` numbers its groups by input; give each its slot's palette entry.
|
|
47
|
+
merged.groups.forEach((group, index) => {
|
|
48
|
+
group.materialIndex = parts[index].materialIndex;
|
|
49
|
+
});
|
|
50
|
+
return merged;
|
|
51
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A railing wall's guard (`wallType: 'railing'`) as pure data: where it runs, where its posts
|
|
3
|
+
* stand, and its members as oriented boxes. It is laid out on the stair guards' chassis
|
|
4
|
+
* (`stair/guard-path.ts`): the same path sampling, equally spaced posts and rail joinery, with the
|
|
5
|
+
* stair styles' members (`stair/*-guard.ts`) stood on a level floor and sized by the railing's
|
|
6
|
+
* config. The 3D builder (`railing-wall-geometry.ts`) turns the boxes into the wall's mesh and the
|
|
7
|
+
* plan (`railing-wall-floorplan.ts`) draws the posts, so both show the same guard.
|
|
8
|
+
*
|
|
9
|
+
* The guard runs along the wall's body centreline from the floor up to the wall's height. A door
|
|
10
|
+
* on the railing is a gap in it: the guard stops either side with a post whose face is on the
|
|
11
|
+
* gap's edge, so the gap is the door's width clear. An end that dies into a solid wall has no post:
|
|
12
|
+
* the rails run on into the wall. Every other end, and every
|
|
13
|
+
* corner where two railings meet, has its post centred on the wall's end. Between the ends the
|
|
14
|
+
* posts are equally spaced at most `postSpacing` apart, and the balusters of each bay equally
|
|
15
|
+
* spaced at most `infillGap` clear.
|
|
16
|
+
*/
|
|
17
|
+
import { type AnyNode, type RailingWallConfig, type WallNode } from '@pascal-app/core';
|
|
18
|
+
import { type GuardBox, type Vec3 } from '../stair/guard-path.js';
|
|
19
|
+
/**
|
|
20
|
+
* A stretch of a railing's guard, `from` to `to` metres along the wall: whether a post stands at
|
|
21
|
+
* each end, and whether that end faces a gap (a door), where the cap stops flush with the post.
|
|
22
|
+
*/
|
|
23
|
+
export type RailingRun = {
|
|
24
|
+
from: number;
|
|
25
|
+
to: number;
|
|
26
|
+
startPost: boolean;
|
|
27
|
+
endPost: boolean;
|
|
28
|
+
startGap: boolean;
|
|
29
|
+
endGap: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** How a run ends (`RailingRun` without its stretch). */
|
|
32
|
+
export type RailingRunEnds = Omit<RailingRun, 'from' | 'to'>;
|
|
33
|
+
/** A railing's guard: its frame (posts, rails, caps), its infill, and where its posts stand. */
|
|
34
|
+
export type RailingGuard = {
|
|
35
|
+
frame: GuardBox[];
|
|
36
|
+
infill: GuardBox[];
|
|
37
|
+
posts: Vec3[];
|
|
38
|
+
};
|
|
39
|
+
/** The frame the guard's points are given in: the wall's mesh frame, or the level's plan. */
|
|
40
|
+
export type RailingFrame = 'local' | 'plan';
|
|
41
|
+
/**
|
|
42
|
+
* The doors (and any window) a railing hosts as gaps along it, `[from, to]` metres from its
|
|
43
|
+
* start, clipped to the wall, merged where they touch, in order.
|
|
44
|
+
*/
|
|
45
|
+
export declare function railingWallGaps(wall: WallNode, children: readonly AnyNode[]): Array<[number, number]>;
|
|
46
|
+
/**
|
|
47
|
+
* Which ends of a railing die into a solid wall among `walls` (its level's): a railing run up to
|
|
48
|
+
* the house stops in its wall with no post, its rails carried into it.
|
|
49
|
+
*/
|
|
50
|
+
export declare function railingWallEndsAtWalls(wall: WallNode, walls: readonly WallNode[]): {
|
|
51
|
+
start: boolean;
|
|
52
|
+
end: boolean;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* The runs of a railing's guard over its `length`: the wall less its `gaps`, a post either side
|
|
56
|
+
* of each gap with its face on the gap's edge, and none at an end that dies into a wall
|
|
57
|
+
* (`atWall`). A stretch shorter than a post holds no guard.
|
|
58
|
+
*/
|
|
59
|
+
export declare function railingWallRuns(length: number, gaps: ReadonlyArray<readonly [number, number]>, postSize: number, atWall: {
|
|
60
|
+
start: boolean;
|
|
61
|
+
end: boolean;
|
|
62
|
+
}): RailingRun[];
|
|
63
|
+
/**
|
|
64
|
+
* Points along a railing's body centreline from `from` to `to` metres along it, on its floor: in
|
|
65
|
+
* the wall's mesh frame (x along its chord from its start, z toward face `a`) or in plan (level x
|
|
66
|
+
* and z). A curve is sampled finely enough for its rails to read as one.
|
|
67
|
+
*/
|
|
68
|
+
export declare function railingRunPoints(wall: WallNode, from: number, to: number, frame: RailingFrame): Vec3[];
|
|
69
|
+
/**
|
|
70
|
+
* One run of a railing's guard along `points` (on the floor, bottom first), `height` tall, built
|
|
71
|
+
* as `config` says, with or without a post at either end (`ends`).
|
|
72
|
+
*/
|
|
73
|
+
export declare function buildRailingRunGuard(points: Vec3[], config: RailingWallConfig, height: number, ends?: RailingRunEnds): RailingGuard;
|
|
74
|
+
/**
|
|
75
|
+
* A railing wall's runs: its length less the doors it hosts, with no post at an end that dies
|
|
76
|
+
* into one of `walls` (its level's).
|
|
77
|
+
*/
|
|
78
|
+
export declare function railingWallLayout(wall: WallNode, children: readonly AnyNode[], walls: readonly WallNode[]): RailingRun[];
|
|
79
|
+
/** A railing wall's whole guard, in its mesh frame or in plan (`railingWallLayout`). */
|
|
80
|
+
export declare function buildRailingWallGuard(wall: WallNode, children: readonly AnyNode[], walls: readonly WallNode[], frame?: RailingFrame): RailingGuard;
|
|
81
|
+
//# sourceMappingURL=railing-wall-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"railing-wall-guard.d.ts","sourceRoot":"","sources":["../../src/wall/railing-wall-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,KAAK,OAAO,EAUZ,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,KAAK,QAAQ,EAQb,KAAK,IAAI,EACV,MAAM,qBAAqB,CAAA;AAuC5B;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;AAE5D,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AAEnF,6FAA6F;AAC7F,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAA;AAE3C;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBzB;AAgCD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAQlC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC9C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GACvC,UAAU,EAAE,CAwBd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GAClB,IAAI,EAAE,CAuBR;AAmID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,EAAE,EACd,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,cAA0B,GAC/B,YAAY,CA+Hd;AAeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB,UAAU,EAAE,CAQd;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,KAAK,GAAE,YAAsB,GAC5B,YAAY,CAgBd"}
|