@pascal-app/nodes 1.0.6 → 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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { getRailingWallConfig, getRailingWallHeight, RAILING_GUARD_HEIGHT, RAILING_GUARD_HEIGHT_TALL, RAILING_SPHERE_LIMIT, usePascalI18n, } from '@pascal-app/core';
|
|
4
|
+
import { PanelSection, SegmentedControl, SelectControl, SliderControl, ToggleControl, } from '@pascal-app/editor';
|
|
5
|
+
import { getRailingWallUpdate, RAILING_CAPPED_STYLES, RAILING_INFILL_LABELS, RAILING_STYLE_OPTIONS, railingHeightPreset, railingStylePatch, } from './railing-wall-panel-model.js';
|
|
6
|
+
const INCH = 0.0254;
|
|
7
|
+
/** The panel's lengths stop here: a guard is never this big, so the cap only bounds the slider. */
|
|
8
|
+
const MAX_LENGTH = 1000;
|
|
9
|
+
/**
|
|
10
|
+
* The wall panel's railing controls: the style, the guard's height
|
|
11
|
+
* (36 in, 42 in or its own), the posts' spacing and size, and the infill. Lengths read in inches
|
|
12
|
+
* on an imperial plan, where feet would show a 1½ in baluster as 0.13.
|
|
13
|
+
*/
|
|
14
|
+
export function RailingWallPanel({ node, unit, onUpdate, onPreview, onCommit, onCancel }) {
|
|
15
|
+
const i18n = usePascalI18n();
|
|
16
|
+
const config = getRailingWallConfig(node);
|
|
17
|
+
const height = getRailingWallHeight(node);
|
|
18
|
+
const imperial = unit === 'imperial';
|
|
19
|
+
const toShown = (meters) => (imperial ? meters / INCH : meters);
|
|
20
|
+
const toMeters = (shown) => (imperial ? shown * INCH : shown);
|
|
21
|
+
const update = (patch, preview = false) => (preview ? onPreview : onUpdate)(getRailingWallUpdate(node, patch));
|
|
22
|
+
const length = (label, value, min, onChange) => (_jsx(SliderControl, { label: label, max: toShown(MAX_LENGTH), min: toShown(min), onCancel: onCancel, onChange: (shown) => onChange(Math.min(Math.max(toMeters(shown), min), MAX_LENGTH)), onCommit: onCommit, precision: imperial ? 2 : 3, previewWhileTyping: true, restoreOnCommit: false, step: imperial ? 0.25 : 0.005, unit: imperial ? 'in' : 'm', value: toShown(value) }));
|
|
23
|
+
const preset = railingHeightPreset(height);
|
|
24
|
+
const infill = RAILING_INFILL_LABELS[config.style];
|
|
25
|
+
// IRC R312.1.3: no opening in a guard may pass a 4 in sphere.
|
|
26
|
+
const opensPastSphere = (infill.gap !== null && config.infillGap >= RAILING_SPHERE_LIMIT) ||
|
|
27
|
+
config.bottomClearance >= RAILING_SPHERE_LIMIT;
|
|
28
|
+
return (_jsxs(_Fragment, { children: [_jsxs(PanelSection, { title: i18n._({ id: 'node.wall.railingWallPanel.railing', message: 'Railing' }), children: [_jsx(SelectControl, { label: i18n._({ id: 'node.wall.railingWallPanel.style', message: 'Style' }), onChange: (style) => update(railingStylePatch(style)), options: RAILING_STYLE_OPTIONS, value: config.style }), _jsx("div", { className: "px-1 font-medium text-[10px] text-muted-foreground/80 uppercase tracking-wider", children: i18n._({ id: 'node.wall.railingWallPanel.height', message: 'Height' }) }), _jsx(SegmentedControl, { mixed: preset === null, onChange: (next) => onUpdate({ height: next === '42' ? RAILING_GUARD_HEIGHT_TALL : RAILING_GUARD_HEIGHT }), options: [
|
|
29
|
+
{
|
|
30
|
+
label: i18n._({ id: 'node.wall.railingWallPanel.n36In', message: '36 in' }),
|
|
31
|
+
value: '36',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: i18n._({ id: 'node.wall.railingWallPanel.n42In', message: '42 in' }),
|
|
35
|
+
value: '42',
|
|
36
|
+
},
|
|
37
|
+
], value: preset ?? '36' }), length('Height', height, 0.1, (meters) => onPreview({ height: meters })), RAILING_CAPPED_STYLES.has(config.style) && (_jsx(ToggleControl, { checked: config.cap, label: i18n._({ id: 'node.wall.railingWallPanel.n2x6Cap', message: '2x6 cap' }), onChange: (cap) => update({ cap }) }))] }), _jsxs(PanelSection, { title: i18n._({ id: 'node.wall.railingWallPanel.posts', message: 'Posts' }), children: [length('Max spacing', config.postSpacing, 0.1, (postSpacing) => update({ postSpacing }, true)), length('Post size', config.postSize, 0.01, (postSize) => update({ postSize }, true))] }), _jsxs(PanelSection, { title: i18n._({ id: 'node.wall.railingWallPanel.infill', message: 'Infill' }), children: [length(infill.size, config.infillSize, 0.003, (infillSize) => update({ infillSize }, true)), infill.gap !== null &&
|
|
38
|
+
length(infill.gap, config.infillGap, 0, (infillGap) => update({ infillGap }, true)), length('Floor clearance', config.bottomClearance, 0, (bottomClearance) => update({ bottomClearance }, true)), opensPastSphere && (_jsx("p", { className: "px-1 text-[11px] text-muted-foreground", children: i18n._({
|
|
39
|
+
id: 'node.wall.railingWallPanel.aGuardSOpeningsMustNot',
|
|
40
|
+
message: "A guard's openings must not pass a 4 in sphere (IRC R312.1.3).",
|
|
41
|
+
}) }))] })] }));
|
|
42
|
+
}
|
|
@@ -25,7 +25,7 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
25
25
|
} | undefined;
|
|
26
26
|
id: `wall_${string}`;
|
|
27
27
|
type: "wall";
|
|
28
|
-
wallType?: "curtain" | "standard" | undefined;
|
|
28
|
+
wallType?: "curtain" | "railing" | "standard" | undefined;
|
|
29
29
|
curtainWall?: {
|
|
30
30
|
construction: "stick" | "unitized";
|
|
31
31
|
framing: "capped" | "horizontal-caps" | "structural-glazing" | "vertical-caps";
|
|
@@ -59,6 +59,15 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
59
59
|
type: "empty" | "glass" | "solid";
|
|
60
60
|
}[];
|
|
61
61
|
} | undefined;
|
|
62
|
+
railing?: {
|
|
63
|
+
style: "balusters" | "boards" | "cable" | "glass" | "metal" | "post-and-rail";
|
|
64
|
+
postSpacing: number;
|
|
65
|
+
postSize: number;
|
|
66
|
+
infillSize: number;
|
|
67
|
+
infillGap: number;
|
|
68
|
+
bottomClearance: number;
|
|
69
|
+
cap: boolean;
|
|
70
|
+
} | undefined;
|
|
62
71
|
children: (`door_${string}` | `item_${string}` | `leanto_${string}` | `procedural-item_${string}` | `window_${string}`)[];
|
|
63
72
|
material?: {
|
|
64
73
|
id?: string | undefined;
|
|
@@ -75,6 +84,11 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
75
84
|
url: string;
|
|
76
85
|
repeat?: [number, number] | undefined;
|
|
77
86
|
scale?: number | undefined;
|
|
87
|
+
offset?: [number, number] | undefined;
|
|
88
|
+
normalMap?: string | undefined;
|
|
89
|
+
normalScale?: number | undefined;
|
|
90
|
+
bumpMap?: string | undefined;
|
|
91
|
+
bumpScale?: number | undefined;
|
|
78
92
|
} | undefined;
|
|
79
93
|
} | undefined;
|
|
80
94
|
materialPreset?: string | undefined;
|
|
@@ -93,6 +107,11 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
93
107
|
url: string;
|
|
94
108
|
repeat?: [number, number] | undefined;
|
|
95
109
|
scale?: number | undefined;
|
|
110
|
+
offset?: [number, number] | undefined;
|
|
111
|
+
normalMap?: string | undefined;
|
|
112
|
+
normalScale?: number | undefined;
|
|
113
|
+
bumpMap?: string | undefined;
|
|
114
|
+
bumpScale?: number | undefined;
|
|
96
115
|
} | undefined;
|
|
97
116
|
} | undefined;
|
|
98
117
|
interiorMaterialPreset?: string | undefined;
|
|
@@ -111,6 +130,11 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
111
130
|
url: string;
|
|
112
131
|
repeat?: [number, number] | undefined;
|
|
113
132
|
scale?: number | undefined;
|
|
133
|
+
offset?: [number, number] | undefined;
|
|
134
|
+
normalMap?: string | undefined;
|
|
135
|
+
normalScale?: number | undefined;
|
|
136
|
+
bumpMap?: string | undefined;
|
|
137
|
+
bumpScale?: number | undefined;
|
|
114
138
|
} | undefined;
|
|
115
139
|
} | undefined;
|
|
116
140
|
exteriorMaterialPreset?: string | undefined;
|
|
@@ -132,6 +156,11 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
132
156
|
url: string;
|
|
133
157
|
repeat?: [number, number] | undefined;
|
|
134
158
|
scale?: number | undefined;
|
|
159
|
+
offset?: [number, number] | undefined;
|
|
160
|
+
normalMap?: string | undefined;
|
|
161
|
+
normalScale?: number | undefined;
|
|
162
|
+
bumpMap?: string | undefined;
|
|
163
|
+
bumpScale?: number | undefined;
|
|
135
164
|
} | undefined;
|
|
136
165
|
} | undefined;
|
|
137
166
|
materialPreset?: string | undefined;
|
|
@@ -152,6 +181,11 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
152
181
|
url: string;
|
|
153
182
|
repeat?: [number, number] | undefined;
|
|
154
183
|
scale?: number | undefined;
|
|
184
|
+
offset?: [number, number] | undefined;
|
|
185
|
+
normalMap?: string | undefined;
|
|
186
|
+
normalScale?: number | undefined;
|
|
187
|
+
bumpMap?: string | undefined;
|
|
188
|
+
bumpScale?: number | undefined;
|
|
155
189
|
} | undefined;
|
|
156
190
|
} | undefined;
|
|
157
191
|
materialPreset?: string | undefined;
|
|
@@ -173,6 +207,7 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
173
207
|
role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
|
|
174
208
|
thickness: number;
|
|
175
209
|
core?: true | undefined;
|
|
210
|
+
spacing?: number | undefined;
|
|
176
211
|
material?: string | undefined;
|
|
177
212
|
slot?: string | undefined;
|
|
178
213
|
returns?: boolean | undefined;
|
|
@@ -187,6 +222,7 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
187
222
|
role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
|
|
188
223
|
thickness: number;
|
|
189
224
|
core?: true | undefined;
|
|
225
|
+
spacing?: number | undefined;
|
|
190
226
|
material?: string | undefined;
|
|
191
227
|
slot?: string | undefined;
|
|
192
228
|
returns?: boolean | undefined;
|
|
@@ -304,6 +340,16 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
304
340
|
color: string;
|
|
305
341
|
intensity: number;
|
|
306
342
|
distance?: number | undefined;
|
|
343
|
+
spot?: {
|
|
344
|
+
direction: [number, number, number];
|
|
345
|
+
angle: number;
|
|
346
|
+
softness: number;
|
|
347
|
+
} | undefined;
|
|
348
|
+
shadows?: boolean | undefined;
|
|
349
|
+
glow?: {
|
|
350
|
+
size: number;
|
|
351
|
+
strength: number;
|
|
352
|
+
} | undefined;
|
|
307
353
|
}[];
|
|
308
354
|
undersides: {
|
|
309
355
|
part?: string | undefined;
|
|
@@ -322,6 +368,17 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
322
368
|
}[] | undefined;
|
|
323
369
|
cutout: boolean;
|
|
324
370
|
collider: boolean;
|
|
371
|
+
shape?: {
|
|
372
|
+
tolerance: number;
|
|
373
|
+
bands: {
|
|
374
|
+
y0: number;
|
|
375
|
+
y1: number;
|
|
376
|
+
polygons: {
|
|
377
|
+
outer: [number, number][];
|
|
378
|
+
holes?: [number, number][][] | undefined;
|
|
379
|
+
}[];
|
|
380
|
+
}[];
|
|
381
|
+
} | undefined;
|
|
325
382
|
triangles: number;
|
|
326
383
|
coverage?: number | undefined;
|
|
327
384
|
uncovered?: {
|
|
@@ -399,6 +456,16 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
399
456
|
color: string;
|
|
400
457
|
intensity: number;
|
|
401
458
|
distance?: number | undefined;
|
|
459
|
+
spot?: {
|
|
460
|
+
direction: [number, number, number];
|
|
461
|
+
angle: number;
|
|
462
|
+
softness: number;
|
|
463
|
+
} | undefined;
|
|
464
|
+
shadows?: boolean | undefined;
|
|
465
|
+
glow?: {
|
|
466
|
+
size: number;
|
|
467
|
+
strength: number;
|
|
468
|
+
} | undefined;
|
|
402
469
|
}[];
|
|
403
470
|
undersides: {
|
|
404
471
|
part?: string | undefined;
|
|
@@ -417,6 +484,17 @@ export declare function createWallRectangle(levelId: AnyNodeId, start: WallPlanP
|
|
|
417
484
|
}[] | undefined;
|
|
418
485
|
cutout: boolean;
|
|
419
486
|
collider: boolean;
|
|
487
|
+
shape?: {
|
|
488
|
+
tolerance: number;
|
|
489
|
+
bands: {
|
|
490
|
+
y0: number;
|
|
491
|
+
y1: number;
|
|
492
|
+
polygons: {
|
|
493
|
+
outer: [number, number][];
|
|
494
|
+
holes?: [number, number][][] | undefined;
|
|
495
|
+
}[];
|
|
496
|
+
}[];
|
|
497
|
+
} | undefined;
|
|
420
498
|
triangles: number;
|
|
421
499
|
coverage?: number | undefined;
|
|
422
500
|
uncovered?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rectangle-command.d.ts","sourceRoot":"","sources":["../../src/wall/rectangle-command.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAKd,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAA;AAEzB,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,aAAa,EAClB,QAAQ,GAAE,OAAO,CAAC,QAAQ,CAAM,EAChC,OAAO,CAAC,EAAE,uBAAuB
|
|
1
|
+
{"version":3,"file":"rectangle-command.d.ts","sourceRoot":"","sources":["../../src/wall/rectangle-command.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAKd,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAA;AAEzB,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,aAAa,EAClB,QAAQ,GAAE,OAAO,CAAC,QAAQ,CAAM,EAChC,OAAO,CAAC,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rectangle-tool.d.ts","sourceRoot":"","sources":["../../src/wall/rectangle-tool.tsx"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,UAAU,iBAAiB,
|
|
1
|
+
{"version":3,"file":"rectangle-tool.d.ts","sourceRoot":"","sources":["../../src/wall/rectangle-tool.tsx"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,UAAU,iBAAiB,gCAsNxC"}
|
|
@@ -35,6 +35,8 @@ export default function RectangleWallTool() {
|
|
|
35
35
|
point: [e.localPosition[0], e.localPosition[2]],
|
|
36
36
|
walls: Object.values(useScene.getState().nodes).filter((n) => n.type === 'wall' && n.parentId === activeLevelId),
|
|
37
37
|
magnetic: isMagneticSnapActive(),
|
|
38
|
+
// A corner aimed into an existing wall's body joins it.
|
|
39
|
+
captureWallBodies: true,
|
|
38
40
|
});
|
|
39
41
|
useWallSnapIndicator.getState().set(result.snap
|
|
40
42
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/wall/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAA;AAqEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,YAAY,aAAc;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/wall/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAA;AAqEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,YAAY,aAAc;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,gCAsKjD,CAAA;eAEc,YAAY"}
|
package/dist/wall/renderer.js
CHANGED
|
@@ -139,7 +139,9 @@ const WallRenderer = ({ node }) => {
|
|
|
139
139
|
for (const entry of owned)
|
|
140
140
|
entry.dispose();
|
|
141
141
|
}, [baseMaterials, extraMaterials]);
|
|
142
|
-
|
|
142
|
+
// Trim and scripted finishes dress a wall's faces: a curtain wall and a railing have none.
|
|
143
|
+
const hasFaces = node.wallType !== 'curtain' && node.wallType !== 'railing';
|
|
144
|
+
return (_jsxs("mesh", { castShadow: node.wallType !== 'curtain', geometry: placeholderGeometry, material: baseMaterials, receiveShadow: true, ref: ref, visible: node.visible, children: [_jsx("mesh", { name: "curtain-wall-shadow", userData: { pascalExport: 'strip' }, geometry: shadowPlaceholderGeometry, layers: SHADOW_ONLY_LAYER, castShadow: true, visible: node.wallType === 'curtain', raycast: () => { }, children: _jsx("meshBasicMaterial", {}) }), _jsx("mesh", { geometry: collisionPlaceholderGeometry, name: WALL_COLLISION_MESH_NAME, visible: false, ...handlers }), hasFaces && hasWallTreatments(treatmentNode) && (_jsx(WallTreatmentSubscription, { childrenNodes: childNodes, materials: extraMaterials, node: treatmentNode })), hasFaces &&
|
|
143
145
|
['a', 'b'].map((face) => {
|
|
144
146
|
const script = node.finishScripts?.[face];
|
|
145
147
|
return script ? (_jsx(WallFaceScriptModel, { face: face, node: node, script: script }, face)) : null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnyNode, type WallFace, type WallNode } from '@pascal-app/core';
|
|
2
|
+
/**
|
|
3
|
+
* Where a floor opening of the wall's level meets one of its faces, as wall-local x ranges along
|
|
4
|
+
* the chord (as the trim's runs are measured): the skirting breaks there, as it does at a door,
|
|
5
|
+
* rather than running on in mid-air along a double-height void or a stairwell.
|
|
6
|
+
*/
|
|
7
|
+
export declare function skirtingFloorOpeningRanges(wall: WallNode, face: WallFace, nodes: Readonly<Record<string, AnyNode>>): [number, number][];
|
|
8
|
+
//# sourceMappingURL=skirting-floor-gaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skirting-floor-gaps.d.ts","sourceRoot":"","sources":["../../src/wall/skirting-floor-gaps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAMZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAKzB;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAgCpB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { area, getWallCurveFrameAt, getWallFaceOffsets, intersection, isCurvedWall, } from '@pascal-app/core';
|
|
2
|
+
/** How far in front of the face a floor opening must reach to break the skirting. */
|
|
3
|
+
const REACH = 0.05;
|
|
4
|
+
/**
|
|
5
|
+
* Where a floor opening of the wall's level meets one of its faces, as wall-local x ranges along
|
|
6
|
+
* the chord (as the trim's runs are measured): the skirting breaks there, as it does at a door,
|
|
7
|
+
* rather than running on in mid-air along a double-height void or a stairwell.
|
|
8
|
+
*/
|
|
9
|
+
export function skirtingFloorOpeningRanges(wall, face, nodes) {
|
|
10
|
+
const openings = Object.values(nodes).filter((node) => node.type === 'floor-opening' &&
|
|
11
|
+
node.parentId === wall.parentId &&
|
|
12
|
+
node.drawnOn === 'floor' &&
|
|
13
|
+
node.cutsPrimary);
|
|
14
|
+
if (!openings.length)
|
|
15
|
+
return [];
|
|
16
|
+
const offset = getWallFaceOffsets(wall)[face];
|
|
17
|
+
const out = offset + (face === 'a' ? REACH : -REACH);
|
|
18
|
+
const samples = isCurvedWall(wall) ? 24 : 1;
|
|
19
|
+
const near = [];
|
|
20
|
+
const far = [];
|
|
21
|
+
for (let index = 0; index <= samples; index++) {
|
|
22
|
+
const { point, normal } = getWallCurveFrameAt(wall, index / samples);
|
|
23
|
+
near.push([point.x + normal.x * offset, point.y + normal.y * offset]);
|
|
24
|
+
far.push([point.x + normal.x * out, point.y + normal.y * out]);
|
|
25
|
+
}
|
|
26
|
+
const band = [...near, ...far.reverse()];
|
|
27
|
+
const [dx, dz] = [wall.end[0] - wall.start[0], wall.end[1] - wall.start[1]];
|
|
28
|
+
const length = Math.hypot(dx, dz) || 1;
|
|
29
|
+
const along = ([x, z]) => ((x - wall.start[0]) * dx + (z - wall.start[1]) * dz) / length;
|
|
30
|
+
return openings.flatMap((opening) => intersection(band, opening.polygon)
|
|
31
|
+
.filter((part) => area([part]) > 1e-6)
|
|
32
|
+
.map((part) => {
|
|
33
|
+
const xs = part.outer.map(along);
|
|
34
|
+
return [Math.min(...xs), Math.max(...xs)];
|
|
35
|
+
}));
|
|
36
|
+
}
|
package/dist/wall/system.d.ts
CHANGED
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
export declare function resetWallTreatmentLevels(): void;
|
|
2
2
|
export declare function updateWallTreatmentLevels(): void;
|
|
3
|
-
/**
|
|
4
|
-
* Registry-driven wall system bundle.
|
|
5
|
-
*
|
|
6
|
-
* - **`WallSystem`** — reads `dirtyNodes`, batches by level, runs
|
|
7
|
-
* `calculateLevelMiters(levelWalls)`, rebuilds geometry via
|
|
8
|
-
* `generateExtrudedWall(node, children, miterData, slabElevation, baseElevation, baseSegments, storeyHeight)`,
|
|
9
|
-
* and cascades to adjacent walls that share a junction. This is the
|
|
10
|
-
* bulk of the wall runtime (~820 lines in viewer).
|
|
11
|
-
* - **`WallCutout`** — cutaway-mode hide/show logic based on camera
|
|
12
|
-
* direction and `frontSide` / `backSide` interior/exterior tags.
|
|
13
|
-
* - **`WallBatchSystem`** — once a level stops changing, sews its opaque
|
|
14
|
-
* walls into one mesh per material set so a floor costs a handful of
|
|
15
|
-
* draw calls instead of one per wall face run.
|
|
16
|
-
*/
|
|
17
3
|
declare const WallSystems: () => import("react").JSX.Element;
|
|
18
4
|
export default WallSystems;
|
|
19
5
|
//# sourceMappingURL=system.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/wall/system.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/wall/system.tsx"],"names":[],"mappings":"AAwDA,wBAAgB,wBAAwB,IAAI,IAAI,CAO/C;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CA0FhD;AA4BD,QAAA,MAAM,WAAW,mCAShB,CAAA;eAEc,WAAW"}
|
package/dist/wall/system.js
CHANGED
|
@@ -6,6 +6,7 @@ import { useFrame } from '@react-three/fiber';
|
|
|
6
6
|
import { useEffect } from 'react';
|
|
7
7
|
import { curtainWallGeometryAdapter } from './curtain-wall-adapter.js';
|
|
8
8
|
import { getCurtainAwareWallMaterials } from './curtain-wall-materials.js';
|
|
9
|
+
import { withRailingWalls } from './railing-wall-adapter.js';
|
|
9
10
|
import { buildWallTreatmentLevelData, clearWallTreatmentMiterCache, sameTreatmentWalls, treatmentProudKeys, useWallTreatmentLevelData, } from './treatment-level-data.js';
|
|
10
11
|
import { wallTreatmentProudOffsets } from './treatments.js';
|
|
11
12
|
import { WallBatchSystem } from './wall-batch-system.js';
|
|
@@ -125,8 +126,12 @@ const WallTreatmentMiterSystem = () => {
|
|
|
125
126
|
* - **`WallBatchSystem`** — once a level stops changing, sews its opaque
|
|
126
127
|
* walls into one mesh per material set so a floor costs a handful of
|
|
127
128
|
* draw calls instead of one per wall face run.
|
|
129
|
+
*
|
|
130
|
+
* Curtain walls and railings build their own mesh through the geometry
|
|
131
|
+
* adapter: a glazed grid, an open guard.
|
|
128
132
|
*/
|
|
133
|
+
const wallGeometryAdapter = withRailingWalls(curtainWallGeometryAdapter);
|
|
129
134
|
const WallSystems = () => {
|
|
130
|
-
return (_jsxs(_Fragment, { children: [_jsx(WallTreatmentMiterSystem, {}), _jsx(WallSystem, { geometryAdapter:
|
|
135
|
+
return (_jsxs(_Fragment, { children: [_jsx(WallTreatmentMiterSystem, {}), _jsx(WallSystem, { geometryAdapter: wallGeometryAdapter }), _jsx(WallCutout, { materialResolver: getCurtainAwareWallMaterials }), _jsx(WallBatchSystem, {})] }));
|
|
131
136
|
};
|
|
132
137
|
export default WallSystems;
|
package/dist/wall/tool.d.ts
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
import { type WallNode } from '@pascal-app/core';
|
|
2
|
+
/**
|
|
3
|
+
* The walls the line tool snaps a drafted point against. `walls` is the active
|
|
4
|
+
* level, which the measurement HUD reports against. `snapWalls` adds an open
|
|
5
|
+
* Polygon room's sides and, as a reference for the corner and edge snaps, the
|
|
6
|
+
* floor below. `bodyWalls` leaves the floor below out: a body capture T-joins
|
|
7
|
+
* the wall it lands in, and a wall on another floor can't be joined, so an end
|
|
8
|
+
* near a lower wall's face stays where the plan (which only knows the active
|
|
9
|
+
* level) puts it. An invisible-wall draft also catches the invisible walls
|
|
10
|
+
* already drawn (`invisibleWallDraftSnapLines`).
|
|
11
|
+
*/
|
|
12
|
+
export declare function getWallDraftSnapWalls(): {
|
|
13
|
+
walls: WallNode[];
|
|
14
|
+
snapWalls: WallNode[];
|
|
15
|
+
bodyWalls: WallNode[];
|
|
16
|
+
};
|
|
1
17
|
export declare const WallTool: React.FC;
|
|
2
18
|
export default WallTool;
|
|
3
19
|
//# sourceMappingURL=tool.d.ts.map
|
package/dist/wall/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/wall/tool.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/wall/tool.tsx"],"names":[],"mappings":"AAAA,OAAO,EAiBL,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAA;AA0czB;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI;IACvC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CAQA;AAyqBD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAe5B,CAAA;eAEc,QAAQ"}
|