@pascal-app/nodes 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -8
- package/dist/agent-operations/index.d.ts +5 -0
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +10 -0
- package/dist/agent-tools/index.d.ts +195 -0
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +82 -2
- 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 +65 -0
- package/dist/beam/definition.d.ts.map +1 -0
- package/dist/beam/definition.edit.d.ts +4 -0
- package/dist/beam/definition.edit.d.ts.map +1 -0
- package/dist/beam/definition.edit.js +133 -0
- package/dist/beam/definition.js +4 -0
- package/dist/beam/definition.render.d.ts +6 -0
- package/dist/beam/definition.render.d.ts.map +1 -0
- package/dist/beam/definition.render.js +32 -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/block/definition.d.ts +67 -7
- package/dist/block/definition.d.ts.map +1 -1
- package/dist/block/definition.edit.d.ts +4 -0
- package/dist/block/definition.edit.d.ts.map +1 -0
- package/dist/block/definition.edit.js +28 -0
- package/dist/block/definition.js +5 -144
- package/dist/block/definition.render.d.ts +11 -0
- package/dist/block/definition.render.d.ts.map +1 -0
- package/dist/block/definition.render.js +120 -0
- package/dist/box-vent/definition.d.ts +103 -29
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.edit.d.ts +4 -0
- package/dist/box-vent/definition.edit.d.ts.map +1 -0
- package/dist/box-vent/definition.edit.js +151 -0
- package/dist/box-vent/definition.js +4 -212
- package/dist/box-vent/definition.render.d.ts +6 -0
- package/dist/box-vent/definition.render.d.ts.map +1 -0
- package/dist/box-vent/definition.render.js +40 -0
- package/dist/box-vent/move-tool.d.ts.map +1 -1
- package/dist/box-vent/move-tool.js +6 -5
- package/dist/box-vent/panel.d.ts.map +1 -1
- package/dist/box-vent/panel.js +8 -7
- package/dist/building/definition.d.ts +49 -11
- package/dist/building/definition.d.ts.map +1 -1
- package/dist/building/definition.edit.d.ts +4 -0
- package/dist/building/definition.edit.d.ts.map +1 -0
- package/dist/building/definition.edit.js +10 -0
- package/dist/building/definition.js +4 -54
- package/dist/building/definition.render.d.ts +6 -0
- package/dist/building/definition.render.d.ts.map +1 -0
- package/dist/building/definition.render.js +38 -0
- package/dist/builtin-definitions.d.ts +9784 -0
- package/dist/builtin-definitions.d.ts.map +1 -0
- package/dist/builtin-definitions.js +113 -0
- package/dist/builtin-edit-contributions.d.ts +9608 -0
- package/dist/builtin-edit-contributions.d.ts.map +1 -0
- package/dist/builtin-edit-contributions.js +112 -0
- package/dist/builtin-plugin-metadata.d.ts +5 -0
- package/dist/builtin-plugin-metadata.d.ts.map +1 -0
- package/dist/builtin-plugin-metadata.js +1 -0
- 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 +497 -25
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.edit.d.ts +5 -0
- package/dist/cabinet/definition.edit.d.ts.map +1 -0
- package/dist/cabinet/definition.edit.js +1375 -0
- package/dist/cabinet/definition.js +6 -2112
- package/dist/cabinet/definition.render.d.ts +66 -0
- package/dist/cabinet/definition.render.d.ts.map +1 -0
- package/dist/cabinet/definition.render.js +751 -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 +108 -15
- 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/placement-dimensions.d.ts +36 -2
- package/dist/cabinet/placement-dimensions.d.ts.map +1 -1
- package/dist/cabinet/placement-dimensions.js +68 -2
- 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/system.js +1 -1
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +275 -19
- package/dist/cabinet/wall-snap.d.ts +5 -1
- package/dist/cabinet/wall-snap.d.ts.map +1 -1
- package/dist/cabinet/wall-snap.js +2 -2
- 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 +152 -19
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.edit.d.ts +4 -0
- package/dist/ceiling/definition.edit.d.ts.map +1 -0
- package/dist/ceiling/definition.edit.js +125 -0
- package/dist/ceiling/definition.js +4 -205
- package/dist/ceiling/definition.render.d.ts +6 -0
- package/dist/ceiling/definition.render.d.ts.map +1 -0
- package/dist/ceiling/definition.render.js +71 -0
- 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/definition.d.ts +186 -17
- package/dist/chimney/definition.d.ts.map +1 -1
- package/dist/chimney/definition.edit.d.ts +4 -0
- package/dist/chimney/definition.edit.d.ts.map +1 -0
- package/dist/chimney/definition.edit.js +219 -0
- package/dist/chimney/definition.js +4 -390
- package/dist/chimney/definition.render.d.ts +6 -0
- package/dist/chimney/definition.render.d.ts.map +1 -0
- package/dist/chimney/definition.render.js +59 -0
- package/dist/chimney/move-tool.d.ts.map +1 -1
- package/dist/chimney/move-tool.js +6 -4
- package/dist/chimney/panel.d.ts.map +1 -1
- package/dist/chimney/panel.js +113 -41
- package/dist/column/__bench__/geometry.d.ts +2 -0
- package/dist/column/__bench__/geometry.d.ts.map +1 -0
- package/dist/column/__bench__/geometry.js +36 -0
- package/dist/column/bounds.d.ts +7 -0
- package/dist/column/bounds.d.ts.map +1 -0
- package/dist/column/bounds.js +127 -0
- package/dist/column/definition.d.ts +372 -20
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.edit.d.ts +4 -0
- package/dist/column/definition.edit.d.ts.map +1 -0
- package/dist/column/definition.edit.js +323 -0
- package/dist/column/definition.js +4 -436
- package/dist/column/definition.render.d.ts +6 -0
- package/dist/column/definition.render.d.ts.map +1 -0
- package/dist/column/definition.render.js +81 -0
- package/dist/column/edit-policy.d.ts +5 -0
- package/dist/column/edit-policy.d.ts.map +1 -0
- package/dist/column/edit-policy.js +43 -0
- package/dist/column/floorplan-affordances.d.ts.map +1 -1
- package/dist/column/floorplan-affordances.js +2 -0
- package/dist/column/floorplan-move.d.ts.map +1 -1
- package/dist/column/floorplan-move.js +5 -1
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +50 -91
- package/dist/column/geometry.d.ts +13 -0
- package/dist/column/geometry.d.ts.map +1 -0
- package/dist/column/geometry.js +294 -0
- package/dist/column/hosted-resize.d.ts +31 -3
- package/dist/column/hosted-resize.d.ts.map +1 -1
- package/dist/column/hosted-resize.js +7 -1
- package/dist/column/inspector-highlight.d.ts +29 -0
- package/dist/column/inspector-highlight.d.ts.map +1 -0
- package/dist/column/inspector-highlight.js +166 -0
- package/dist/column/paint.d.ts.map +1 -1
- package/dist/column/paint.js +12 -2
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +459 -283
- package/dist/column/parametrics.js +1 -1
- 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/preset-gallery.d.ts +8 -0
- package/dist/column/preset-gallery.d.ts.map +1 -0
- package/dist/column/preset-gallery.js +98 -0
- package/dist/column/presets.d.ts +16 -0
- package/dist/column/presets.d.ts.map +1 -0
- package/dist/column/presets.js +96 -0
- package/dist/column/property-preview.d.ts +8 -0
- package/dist/column/property-preview.d.ts.map +1 -0
- package/dist/column/property-preview.js +50 -0
- package/dist/column/renderer.d.ts +13 -1
- package/dist/column/renderer.d.ts.map +1 -1
- package/dist/column/renderer.js +174 -198
- package/dist/column/shape.d.ts +4 -4
- package/dist/column/shape.d.ts.map +1 -1
- package/dist/column/shape.js +1 -1
- package/dist/column/surface.d.ts.map +1 -1
- package/dist/column/surface.js +15 -8
- package/dist/column/tool.d.ts +3 -10
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +34 -11
- package/dist/construction-dimension/definition.d.ts +129 -3
- package/dist/construction-dimension/definition.d.ts.map +1 -1
- package/dist/construction-dimension/definition.edit.d.ts +4 -0
- package/dist/construction-dimension/definition.edit.d.ts.map +1 -0
- package/dist/construction-dimension/definition.edit.js +32 -0
- package/dist/construction-dimension/definition.js +4 -83
- package/dist/construction-dimension/definition.render.d.ts +6 -0
- package/dist/construction-dimension/definition.render.d.ts.map +1 -0
- package/dist/construction-dimension/definition.render.js +53 -0
- package/dist/construction-dimension/floorplan-tool.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan-tool.js +2 -2
- package/dist/cupola/definition.d.ts +95 -10
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.edit.d.ts +4 -0
- package/dist/cupola/definition.edit.d.ts.map +1 -0
- package/dist/cupola/definition.edit.js +103 -0
- package/dist/cupola/definition.js +4 -148
- package/dist/cupola/definition.render.d.ts +6 -0
- package/dist/cupola/definition.render.d.ts.map +1 -0
- package/dist/cupola/definition.render.js +43 -0
- package/dist/cupola/move-tool.d.ts.map +1 -1
- package/dist/cupola/move-tool.js +6 -5
- package/dist/cupola/panel.d.ts.map +1 -1
- package/dist/cupola/panel.js +14 -7
- package/dist/definition-contributions.d.ts +14 -0
- package/dist/definition-contributions.d.ts.map +1 -0
- package/dist/definition-contributions.js +8 -0
- 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 +350 -22
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.edit.d.ts +4 -0
- package/dist/door/definition.edit.d.ts.map +1 -0
- package/dist/door/definition.edit.js +246 -0
- package/dist/door/definition.js +4 -314
- package/dist/door/definition.render.d.ts +6 -0
- package/dist/door/definition.render.d.ts.map +1 -0
- package/dist/door/definition.render.js +88 -0
- 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 +34 -9
- 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/mechanism.d.ts.map +1 -1
- package/dist/door/mechanism.js +1 -2
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +81 -35
- 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 +77 -29
- package/dist/dormer/definition.d.ts +240 -11
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.edit.d.ts +4 -0
- package/dist/dormer/definition.edit.d.ts.map +1 -0
- package/dist/dormer/definition.edit.js +214 -0
- package/dist/dormer/definition.js +4 -319
- package/dist/dormer/definition.render.d.ts +6 -0
- package/dist/dormer/definition.render.d.ts.map +1 -0
- package/dist/dormer/definition.render.js +52 -0
- 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/definition.d.ts +108 -16
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.edit.d.ts +4 -0
- package/dist/downspout/definition.edit.d.ts.map +1 -0
- package/dist/downspout/definition.edit.js +134 -0
- package/dist/downspout/definition.js +4 -188
- package/dist/downspout/definition.render.d.ts +6 -0
- package/dist/downspout/definition.render.d.ts.map +1 -0
- package/dist/downspout/definition.render.js +46 -0
- package/dist/downspout/inspector-editors.d.ts.map +1 -1
- package/dist/downspout/inspector-editors.js +3 -2
- package/dist/duct-fitting/definition.d.ts +99 -11
- package/dist/duct-fitting/definition.d.ts.map +1 -1
- package/dist/duct-fitting/definition.edit.d.ts +4 -0
- package/dist/duct-fitting/definition.edit.d.ts.map +1 -0
- package/dist/duct-fitting/definition.edit.js +49 -0
- package/dist/duct-fitting/definition.js +4 -135
- package/dist/duct-fitting/definition.render.d.ts +6 -0
- package/dist/duct-fitting/definition.render.d.ts.map +1 -0
- package/dist/duct-fitting/definition.render.js +82 -0
- package/dist/duct-fitting/floorplan.js +1 -1
- package/dist/duct-fitting/geometry.js +2 -1
- package/dist/duct-fitting/inspector-editors.d.ts.map +1 -1
- package/dist/duct-fitting/inspector-editors.js +6 -1
- package/dist/duct-fitting/move-tool.d.ts.map +1 -1
- package/dist/duct-fitting/move-tool.js +19 -13
- package/dist/duct-fitting/selection.d.ts.map +1 -1
- package/dist/duct-fitting/selection.js +92 -80
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +11 -2
- package/dist/duct-segment/continuation.d.ts +2 -2
- package/dist/duct-segment/continuation.d.ts.map +1 -1
- package/dist/duct-segment/continuation.js +53 -2
- package/dist/duct-segment/definition.d.ts +91 -3
- package/dist/duct-segment/definition.d.ts.map +1 -1
- package/dist/duct-segment/definition.edit.d.ts +4 -0
- package/dist/duct-segment/definition.edit.d.ts.map +1 -0
- package/dist/duct-segment/definition.edit.js +100 -0
- package/dist/duct-segment/definition.js +4 -181
- package/dist/duct-segment/definition.render.d.ts +6 -0
- package/dist/duct-segment/definition.render.d.ts.map +1 -0
- package/dist/duct-segment/definition.render.js +89 -0
- package/dist/duct-segment/edit-inspector.d.ts +5 -0
- package/dist/duct-segment/edit-inspector.d.ts.map +1 -0
- package/dist/duct-segment/edit-inspector.js +163 -0
- package/dist/duct-segment/edit-operation.d.ts +17 -0
- package/dist/duct-segment/edit-operation.d.ts.map +1 -0
- package/dist/duct-segment/edit-operation.js +283 -0
- package/dist/duct-segment/floorplan.js +1 -1
- package/dist/duct-segment/geometry.d.ts +0 -40
- package/dist/duct-segment/geometry.d.ts.map +1 -1
- package/dist/duct-segment/geometry.js +2 -77
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +34 -35
- package/dist/duct-segment/parametrics.d.ts.map +1 -1
- package/dist/duct-segment/parametrics.js +2 -35
- package/dist/duct-segment/profile.d.ts +42 -0
- package/dist/duct-segment/profile.d.ts.map +1 -0
- package/dist/duct-segment/profile.js +78 -0
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +112 -53
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +103 -27
- package/dist/duct-terminal/definition.d.ts +68 -12
- package/dist/duct-terminal/definition.d.ts.map +1 -1
- package/dist/duct-terminal/definition.edit.d.ts +4 -0
- package/dist/duct-terminal/definition.edit.d.ts.map +1 -0
- package/dist/duct-terminal/definition.edit.js +14 -0
- package/dist/duct-terminal/definition.js +4 -87
- package/dist/duct-terminal/definition.render.d.ts +6 -0
- package/dist/duct-terminal/definition.render.d.ts.map +1 -0
- package/dist/duct-terminal/definition.render.js +66 -0
- package/dist/duct-terminal/geometry.d.ts.map +1 -1
- package/dist/duct-terminal/geometry.js +2 -1
- package/dist/duct-terminal/parametrics.d.ts.map +1 -1
- package/dist/duct-terminal/parametrics.js +1 -0
- package/dist/duct-terminal/ports.js +1 -1
- package/dist/duct-terminal/tool.d.ts.map +1 -1
- package/dist/duct-terminal/tool.js +11 -2
- package/dist/elevator/__bench__/runtime.d.ts +2 -0
- package/dist/elevator/__bench__/runtime.d.ts.map +1 -0
- package/dist/elevator/__bench__/runtime.js +38 -0
- package/dist/elevator/definition.d.ts +117 -10
- package/dist/elevator/definition.d.ts.map +1 -1
- package/dist/elevator/definition.edit.d.ts +4 -0
- package/dist/elevator/definition.edit.d.ts.map +1 -0
- package/dist/elevator/definition.edit.js +177 -0
- package/dist/elevator/definition.js +4 -258
- package/dist/elevator/definition.render.d.ts +11 -0
- package/dist/elevator/definition.render.d.ts.map +1 -0
- package/dist/elevator/definition.render.js +96 -0
- package/dist/elevator/floorplan-affordances.d.ts.map +1 -1
- package/dist/elevator/floorplan-affordances.js +11 -9
- package/dist/elevator/floorplan.d.ts +19 -0
- package/dist/elevator/floorplan.d.ts.map +1 -1
- package/dist/elevator/floorplan.js +3 -9
- package/dist/elevator/inspection.d.ts +17 -0
- package/dist/elevator/inspection.d.ts.map +1 -0
- package/dist/elevator/inspection.js +78 -0
- package/dist/elevator/panel.d.ts.map +1 -1
- package/dist/elevator/panel.js +177 -102
- package/dist/elevator/parametrics.d.ts +1 -1
- package/dist/elevator/parametrics.d.ts.map +1 -1
- package/dist/elevator/parametrics.js +7 -10
- package/dist/elevator/presets.d.ts +17 -0
- package/dist/elevator/presets.d.ts.map +1 -0
- package/dist/elevator/presets.js +52 -0
- package/dist/elevator/renderer.d.ts +2 -1
- package/dist/elevator/renderer.d.ts.map +1 -1
- package/dist/elevator/renderer.edit.d.ts +5 -0
- package/dist/elevator/renderer.edit.d.ts.map +1 -0
- package/dist/elevator/renderer.edit.js +8 -0
- package/dist/elevator/renderer.js +159 -60
- package/dist/elevator/tool.d.ts +2 -0
- package/dist/elevator/tool.d.ts.map +1 -0
- package/dist/elevator/tool.js +250 -0
- package/dist/eyebrow-vent/definition.d.ts +97 -11
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.edit.d.ts +4 -0
- package/dist/eyebrow-vent/definition.edit.d.ts.map +1 -0
- package/dist/eyebrow-vent/definition.edit.js +106 -0
- package/dist/eyebrow-vent/definition.js +4 -152
- package/dist/eyebrow-vent/definition.render.d.ts +6 -0
- package/dist/eyebrow-vent/definition.render.d.ts.map +1 -0
- package/dist/eyebrow-vent/definition.render.js +43 -0
- package/dist/eyebrow-vent/move-tool.d.ts.map +1 -1
- package/dist/eyebrow-vent/move-tool.js +6 -5
- package/dist/eyebrow-vent/panel.d.ts.map +1 -1
- package/dist/eyebrow-vent/panel.js +16 -6
- package/dist/fence/definition.d.ts +186 -17
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.edit.d.ts +4 -0
- package/dist/fence/definition.edit.d.ts.map +1 -0
- package/dist/fence/definition.edit.js +282 -0
- package/dist/fence/definition.js +5 -413
- package/dist/fence/definition.render.d.ts +8 -0
- package/dist/fence/definition.render.d.ts.map +1 -0
- package/dist/fence/definition.render.js +124 -0
- 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 +12 -3
- package/dist/fence/system.d.ts.map +1 -1
- package/dist/fence/system.js +13 -0
- package/dist/fence/tool.js +2 -2
- package/dist/fence-feature/actions.d.ts.map +1 -1
- package/dist/fence-feature/actions.js +5 -2
- package/dist/fence-feature/definition.d.ts +270 -3
- package/dist/fence-feature/definition.d.ts.map +1 -1
- package/dist/fence-feature/definition.edit.d.ts +5 -0
- package/dist/fence-feature/definition.edit.d.ts.map +1 -0
- package/dist/fence-feature/definition.edit.js +69 -0
- package/dist/fence-feature/definition.js +5 -116
- package/dist/fence-feature/definition.render.d.ts +9 -0
- package/dist/fence-feature/definition.render.d.ts.map +1 -0
- package/dist/fence-feature/definition.render.js +69 -0
- 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/definition.d.ts +58 -2
- package/dist/floor-opening/definition.d.ts.map +1 -1
- package/dist/floor-opening/definition.edit.d.ts +4 -0
- package/dist/floor-opening/definition.edit.d.ts.map +1 -0
- package/dist/floor-opening/definition.edit.js +11 -0
- package/dist/floor-opening/definition.js +4 -41
- package/dist/floor-opening/definition.render.d.ts +6 -0
- package/dist/floor-opening/definition.render.d.ts.map +1 -0
- package/dist/floor-opening/definition.render.js +32 -0
- 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/guide/definition.d.ts +65 -9
- package/dist/guide/definition.d.ts.map +1 -1
- package/dist/guide/definition.edit.d.ts +4 -0
- package/dist/guide/definition.edit.d.ts.map +1 -0
- package/dist/guide/definition.edit.js +4 -0
- package/dist/guide/definition.js +4 -53
- package/dist/guide/definition.render.d.ts +6 -0
- package/dist/guide/definition.render.d.ts.map +1 -0
- package/dist/guide/definition.render.js +45 -0
- package/dist/gutter/definition.d.ts +113 -18
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.edit.d.ts +4 -0
- package/dist/gutter/definition.edit.d.ts.map +1 -0
- package/dist/gutter/definition.edit.js +121 -0
- package/dist/gutter/definition.js +4 -176
- package/dist/gutter/definition.render.d.ts +6 -0
- package/dist/gutter/definition.render.d.ts.map +1 -0
- package/dist/gutter/definition.render.js +44 -0
- package/dist/gutter/downspouts-panel.d.ts.map +1 -1
- package/dist/gutter/downspouts-panel.js +14 -2
- package/dist/gutter/move-tool.d.ts.map +1 -1
- package/dist/gutter/move-tool.js +5 -4
- package/dist/hvac-equipment/definition.d.ts +72 -12
- package/dist/hvac-equipment/definition.d.ts.map +1 -1
- package/dist/hvac-equipment/definition.edit.d.ts +4 -0
- package/dist/hvac-equipment/definition.edit.d.ts.map +1 -0
- package/dist/hvac-equipment/definition.edit.js +13 -0
- package/dist/hvac-equipment/definition.js +4 -92
- package/dist/hvac-equipment/definition.render.d.ts +6 -0
- package/dist/hvac-equipment/definition.render.d.ts.map +1 -0
- package/dist/hvac-equipment/definition.render.js +72 -0
- package/dist/hvac-equipment/floorplan.js +1 -1
- package/dist/hvac-equipment/geometry.d.ts.map +1 -1
- package/dist/hvac-equipment/geometry.js +2 -1
- package/dist/hvac-equipment/parametrics.d.ts.map +1 -1
- package/dist/hvac-equipment/parametrics.js +1 -0
- package/dist/hvac-equipment/ports.js +1 -1
- 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/imported-mesh/definition.d.ts +54 -4
- package/dist/imported-mesh/definition.d.ts.map +1 -1
- package/dist/imported-mesh/definition.edit.d.ts +4 -0
- package/dist/imported-mesh/definition.edit.d.ts.map +1 -0
- package/dist/imported-mesh/definition.edit.js +5 -0
- package/dist/imported-mesh/definition.js +4 -40
- package/dist/imported-mesh/definition.render.d.ts +6 -0
- package/dist/imported-mesh/definition.render.d.ts.map +1 -0
- package/dist/imported-mesh/definition.render.js +36 -0
- package/dist/index.d.ts +7 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -135
- package/dist/item/authored-params.d.ts.map +1 -1
- package/dist/item/authored-params.js +19 -4
- package/dist/item/definition.d.ts +280 -31
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.edit.d.ts +4 -0
- package/dist/item/definition.edit.d.ts.map +1 -0
- package/dist/item/definition.edit.js +206 -0
- package/dist/item/definition.js +4 -356
- package/dist/item/definition.render.d.ts +6 -0
- package/dist/item/definition.render.d.ts.map +1 -0
- package/dist/item/definition.render.js +128 -0
- package/dist/item/floorplan.d.ts +1 -1
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +2 -2
- package/dist/item/panel.d.ts.map +1 -1
- package/dist/item/panel.js +9 -7
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +2 -2
- package/dist/lean-to-extension/definition.d.ts +177 -3
- package/dist/lean-to-extension/definition.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.edit.d.ts +4 -0
- package/dist/lean-to-extension/definition.edit.d.ts.map +1 -0
- package/dist/lean-to-extension/definition.edit.js +392 -0
- package/dist/lean-to-extension/definition.js +4 -433
- package/dist/lean-to-extension/definition.render.d.ts +6 -0
- package/dist/lean-to-extension/definition.render.d.ts.map +1 -0
- package/dist/lean-to-extension/definition.render.js +46 -0
- package/dist/level/definition.d.ts +49 -8
- package/dist/level/definition.d.ts.map +1 -1
- package/dist/level/definition.edit.d.ts +4 -0
- package/dist/level/definition.edit.d.ts.map +1 -0
- package/dist/level/definition.edit.js +4 -0
- package/dist/level/definition.js +4 -60
- package/dist/level/definition.render.d.ts +6 -0
- package/dist/level/definition.render.d.ts.map +1 -0
- package/dist/level/definition.render.js +53 -0
- package/dist/lineset/definition.d.ts +49 -14
- package/dist/lineset/definition.d.ts.map +1 -1
- package/dist/lineset/definition.edit.d.ts +4 -0
- package/dist/lineset/definition.edit.d.ts.map +1 -0
- package/dist/lineset/definition.edit.js +38 -0
- package/dist/lineset/definition.js +4 -119
- package/dist/lineset/definition.render.d.ts +6 -0
- package/dist/lineset/definition.render.d.ts.map +1 -0
- package/dist/lineset/definition.render.js +72 -0
- package/dist/lineset/floorplan.js +1 -1
- package/dist/lineset/geometry.js +1 -1
- package/dist/lineset/move-tool.d.ts.map +1 -1
- package/dist/lineset/move-tool.js +14 -7
- package/dist/liquid-line/definition.d.ts +47 -15
- package/dist/liquid-line/definition.d.ts.map +1 -1
- package/dist/liquid-line/definition.edit.d.ts +4 -0
- package/dist/liquid-line/definition.edit.d.ts.map +1 -0
- package/dist/liquid-line/definition.edit.js +31 -0
- package/dist/liquid-line/definition.js +4 -111
- package/dist/liquid-line/definition.render.d.ts +6 -0
- package/dist/liquid-line/definition.render.d.ts.map +1 -0
- package/dist/liquid-line/definition.render.js +70 -0
- package/dist/liquid-line/floorplan.js +1 -1
- package/dist/liquid-line/geometry.js +1 -1
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +10 -3
- package/dist/measurement/definition.d.ts +126 -3
- package/dist/measurement/definition.d.ts.map +1 -1
- package/dist/measurement/definition.edit.d.ts +4 -0
- package/dist/measurement/definition.edit.d.ts.map +1 -0
- package/dist/measurement/definition.edit.js +26 -0
- package/dist/measurement/definition.js +4 -67
- package/dist/measurement/definition.render.d.ts +6 -0
- package/dist/measurement/definition.render.d.ts.map +1 -0
- package/dist/measurement/definition.render.js +43 -0
- package/dist/measurement/floorplan.d.ts.map +1 -1
- package/dist/measurement/floorplan.js +3 -2
- package/dist/measurement/renderer.d.ts.map +1 -1
- package/dist/measurement/renderer.js +2 -3
- package/dist/measurement/selection.d.ts.map +1 -1
- package/dist/measurement/selection.js +2 -2
- package/dist/measurement/tool.d.ts +3 -3
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +9 -9
- package/dist/pipe-fitting/definition.d.ts +73 -9
- package/dist/pipe-fitting/definition.d.ts.map +1 -1
- package/dist/pipe-fitting/definition.edit.d.ts +4 -0
- package/dist/pipe-fitting/definition.edit.d.ts.map +1 -0
- package/dist/pipe-fitting/definition.edit.js +47 -0
- package/dist/pipe-fitting/definition.js +4 -105
- package/dist/pipe-fitting/definition.render.d.ts +6 -0
- package/dist/pipe-fitting/definition.render.d.ts.map +1 -0
- package/dist/pipe-fitting/definition.render.js +54 -0
- package/dist/pipe-fitting/floorplan.js +1 -1
- package/dist/pipe-fitting/geometry.js +1 -1
- package/dist/pipe-fitting/move-tool.d.ts +1 -1
- package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
- package/dist/pipe-fitting/move-tool.js +28 -22
- package/dist/pipe-fitting/parametrics.d.ts.map +1 -1
- package/dist/pipe-fitting/parametrics.js +1 -0
- package/dist/pipe-fitting/ports.js +1 -1
- package/dist/pipe-fitting/selection.d.ts.map +1 -1
- package/dist/pipe-fitting/selection.js +73 -29
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +3 -2
- package/dist/pipe-segment/collar-connection.d.ts +12 -0
- package/dist/pipe-segment/collar-connection.d.ts.map +1 -0
- package/dist/pipe-segment/collar-connection.js +58 -0
- package/dist/pipe-segment/connect-operation.d.ts +9 -0
- package/dist/pipe-segment/connect-operation.d.ts.map +1 -0
- package/dist/pipe-segment/connect-operation.js +44 -0
- package/dist/pipe-segment/continuation.d.ts +3 -2
- package/dist/pipe-segment/continuation.d.ts.map +1 -1
- package/dist/pipe-segment/continuation.js +60 -1
- package/dist/pipe-segment/definition.d.ts +78 -13
- package/dist/pipe-segment/definition.d.ts.map +1 -1
- package/dist/pipe-segment/definition.edit.d.ts +4 -0
- package/dist/pipe-segment/definition.edit.d.ts.map +1 -0
- package/dist/pipe-segment/definition.edit.js +48 -0
- package/dist/pipe-segment/definition.js +4 -132
- package/dist/pipe-segment/definition.render.d.ts +6 -0
- package/dist/pipe-segment/definition.render.d.ts.map +1 -0
- package/dist/pipe-segment/definition.render.js +78 -0
- package/dist/pipe-segment/floorplan.d.ts +1 -1
- package/dist/pipe-segment/floorplan.d.ts.map +1 -1
- package/dist/pipe-segment/floorplan.js +34 -1
- package/dist/pipe-segment/geometry.d.ts.map +1 -1
- package/dist/pipe-segment/geometry.js +2 -1
- package/dist/pipe-segment/grade-affordance.d.ts +8 -0
- package/dist/pipe-segment/grade-affordance.d.ts.map +1 -0
- package/dist/pipe-segment/grade-affordance.js +116 -0
- package/dist/pipe-segment/grade-inspector.d.ts +5 -0
- package/dist/pipe-segment/grade-inspector.d.ts.map +1 -0
- package/dist/pipe-segment/grade-inspector.js +91 -0
- package/dist/pipe-segment/grade-label.d.ts +7 -0
- package/dist/pipe-segment/grade-label.d.ts.map +1 -0
- package/dist/pipe-segment/grade-label.js +32 -0
- package/dist/pipe-segment/grade-operation.d.ts +22 -0
- package/dist/pipe-segment/grade-operation.d.ts.map +1 -0
- package/dist/pipe-segment/grade-operation.js +114 -0
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +38 -15
- package/dist/pipe-segment/offset-inspector.d.ts +5 -0
- package/dist/pipe-segment/offset-inspector.d.ts.map +1 -0
- package/dist/pipe-segment/offset-inspector.js +112 -0
- package/dist/pipe-segment/offset-operation.d.ts +9 -0
- package/dist/pipe-segment/offset-operation.d.ts.map +1 -0
- package/dist/pipe-segment/offset-operation.js +104 -0
- package/dist/pipe-segment/parametrics.d.ts.map +1 -1
- package/dist/pipe-segment/parametrics.js +1 -9
- package/dist/pipe-segment/resize-inspector.d.ts +5 -0
- package/dist/pipe-segment/resize-inspector.d.ts.map +1 -0
- package/dist/pipe-segment/resize-inspector.js +75 -0
- package/dist/pipe-segment/resize-operation.d.ts +8 -0
- package/dist/pipe-segment/resize-operation.d.ts.map +1 -0
- package/dist/pipe-segment/resize-operation.js +143 -0
- package/dist/pipe-segment/run-move.d.ts +65 -0
- package/dist/pipe-segment/run-move.d.ts.map +1 -0
- package/dist/pipe-segment/run-move.js +110 -0
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +122 -178
- package/dist/pipe-segment/slope.d.ts +3 -0
- package/dist/pipe-segment/slope.d.ts.map +1 -1
- package/dist/pipe-segment/slope.js +47 -0
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +123 -28
- package/dist/pipe-trap/definition.d.ts +54 -9
- package/dist/pipe-trap/definition.d.ts.map +1 -1
- package/dist/pipe-trap/definition.edit.d.ts +4 -0
- package/dist/pipe-trap/definition.edit.d.ts.map +1 -0
- package/dist/pipe-trap/definition.edit.js +13 -0
- package/dist/pipe-trap/definition.js +4 -59
- package/dist/pipe-trap/definition.render.d.ts +6 -0
- package/dist/pipe-trap/definition.render.d.ts.map +1 -0
- package/dist/pipe-trap/definition.render.js +43 -0
- package/dist/pipe-trap/geometry.d.ts.map +1 -1
- package/dist/pipe-trap/geometry.js +2 -1
- package/dist/pipe-trap/parametrics.d.ts.map +1 -1
- package/dist/pipe-trap/parametrics.js +1 -0
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -2
- package/dist/procedural-item/definition.d.ts +734 -3
- package/dist/procedural-item/definition.d.ts.map +1 -1
- package/dist/procedural-item/definition.edit.d.ts +4 -0
- package/dist/procedural-item/definition.edit.d.ts.map +1 -0
- package/dist/procedural-item/definition.edit.js +255 -0
- package/dist/procedural-item/definition.js +4 -325
- package/dist/procedural-item/definition.render.d.ts +6 -0
- package/dist/procedural-item/definition.render.d.ts.map +1 -0
- package/dist/procedural-item/definition.render.js +84 -0
- package/dist/procedural-item/renderer.d.ts.map +1 -1
- package/dist/procedural-item/renderer.edit.d.ts +5 -0
- package/dist/procedural-item/renderer.edit.d.ts.map +1 -0
- package/dist/procedural-item/renderer.edit.js +49 -0
- package/dist/procedural-item/renderer.js +12 -22
- package/dist/render.d.ts +4 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +4 -0
- package/dist/ridge-vent/definition.d.ts +95 -15
- package/dist/ridge-vent/definition.d.ts.map +1 -1
- package/dist/ridge-vent/definition.edit.d.ts +4 -0
- package/dist/ridge-vent/definition.edit.d.ts.map +1 -0
- package/dist/ridge-vent/definition.edit.js +148 -0
- package/dist/ridge-vent/definition.js +4 -197
- package/dist/ridge-vent/definition.render.d.ts +6 -0
- package/dist/ridge-vent/definition.render.d.ts.map +1 -0
- package/dist/ridge-vent/definition.render.js +42 -0
- package/dist/ridge-vent/move-tool.d.ts.map +1 -1
- package/dist/ridge-vent/move-tool.js +5 -4
- 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 +8 -4
- package/dist/roof/definition.d.ts +325 -8
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.edit.d.ts +4 -0
- package/dist/roof/definition.edit.d.ts.map +1 -0
- package/dist/roof/definition.edit.js +183 -0
- package/dist/roof/definition.js +4 -254
- package/dist/roof/definition.render.d.ts +7 -0
- package/dist/roof/definition.render.d.ts.map +1 -0
- package/dist/roof/definition.render.js +101 -0
- 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/geometry-notice.d.ts +5 -0
- package/dist/roof/geometry-notice.d.ts.map +1 -0
- package/dist/roof/geometry-notice.js +27 -0
- 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 +52 -14
- 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 +91 -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 +20 -4
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +264 -280
- package/dist/roof/type-thumbnail-assets.d.ts +3 -0
- package/dist/roof/type-thumbnail-assets.d.ts.map +1 -0
- package/dist/roof/type-thumbnail-assets.js +12 -0
- package/dist/roof/type-thumbnail.d.ts +5 -0
- package/dist/roof/type-thumbnail.d.ts.map +1 -0
- package/dist/roof/type-thumbnail.js +5 -0
- 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 +564 -9
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.edit.d.ts +4 -0
- package/dist/roof-segment/definition.edit.d.ts.map +1 -0
- package/dist/roof-segment/definition.edit.js +305 -0
- package/dist/roof-segment/definition.js +4 -319
- package/dist/roof-segment/definition.render.d.ts +6 -0
- package/dist/roof-segment/definition.render.d.ts.map +1 -0
- package/dist/roof-segment/definition.render.js +59 -0
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +70 -21
- 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 -2
- package/dist/roof-segment/paint.d.ts.map +1 -1
- package/dist/roof-segment/paint.js +43 -3
- 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 +117 -37
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +17 -11
- package/dist/roof-segment/renderer.d.ts.map +1 -1
- package/dist/roof-segment/renderer.js +26 -5
- package/dist/roof-segment/slots.d.ts +2 -0
- package/dist/roof-segment/slots.d.ts.map +1 -0
- package/dist/roof-segment/slots.js +1 -0
- package/dist/scan/definition.d.ts +57 -7
- package/dist/scan/definition.d.ts.map +1 -1
- package/dist/scan/definition.edit.d.ts +4 -0
- package/dist/scan/definition.edit.d.ts.map +1 -0
- package/dist/scan/definition.edit.js +4 -0
- package/dist/scan/definition.js +4 -52
- package/dist/scan/definition.render.d.ts +6 -0
- package/dist/scan/definition.render.d.ts.map +1 -0
- package/dist/scan/definition.render.js +46 -0
- package/dist/separator/definition.d.ts +47 -2
- package/dist/separator/definition.d.ts.map +1 -1
- package/dist/separator/definition.edit.d.ts +4 -0
- package/dist/separator/definition.edit.d.ts.map +1 -0
- package/dist/separator/definition.edit.js +13 -0
- package/dist/separator/definition.js +4 -39
- package/dist/separator/definition.render.d.ts +6 -0
- package/dist/separator/definition.render.d.ts.map +1 -0
- package/dist/separator/definition.render.js +27 -0
- 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 +6 -1
- package/dist/separator/renderer.d.ts.map +1 -1
- package/dist/separator/renderer.edit.d.ts +5 -0
- package/dist/separator/renderer.edit.d.ts.map +1 -0
- package/dist/separator/renderer.edit.js +8 -0
- package/dist/separator/renderer.js +22 -9
- 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/accessory-placement.js +1 -1
- package/dist/shared/auto-fitting.js +1 -1
- package/dist/shared/auto-offset-tag.d.ts +1 -1
- package/dist/shared/auto-offset-tag.d.ts.map +1 -1
- package/dist/shared/auto-offset-tag.js +3 -1
- package/dist/shared/automatic-run-end-cap.d.ts +5 -0
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -1
- package/dist/shared/automatic-run-end-cap.js +17 -9
- 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/connection-feedback.d.ts +6 -3
- package/dist/shared/connection-feedback.d.ts.map +1 -1
- package/dist/shared/connection-feedback.js +29 -6
- package/dist/shared/curtain-opening-limits.d.ts.map +1 -1
- package/dist/shared/curtain-opening-limits.js +45 -16
- package/dist/shared/draft-axis-guides.d.ts.map +1 -1
- package/dist/shared/draft-axis-guides.js +2 -1
- package/dist/shared/duct-adapter.js +1 -1
- package/dist/shared/duct-collar-inspector.d.ts +5 -0
- package/dist/shared/duct-collar-inspector.d.ts.map +1 -0
- package/dist/shared/duct-collar-inspector.js +36 -0
- package/dist/shared/follower-frames.d.ts +15 -0
- package/dist/shared/follower-frames.d.ts.map +1 -0
- package/dist/shared/follower-frames.js +36 -0
- package/dist/shared/handle-drag-scope.d.ts +14 -0
- package/dist/shared/handle-drag-scope.d.ts.map +1 -0
- package/dist/shared/handle-drag-scope.js +36 -0
- package/dist/shared/hosted-resize.d.ts +3 -1
- package/dist/shared/hosted-resize.d.ts.map +1 -1
- package/dist/shared/hosted-resize.js +10 -8
- 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/live-preview.d.ts +16 -0
- package/dist/shared/live-preview.d.ts.map +1 -0
- package/dist/shared/live-preview.js +36 -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 +13 -9
- 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 +12 -10
- 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/path-point-affordance.d.ts.map +1 -1
- package/dist/shared/path-point-affordance.js +19 -24
- package/dist/shared/path-segment-affordance.d.ts +2 -1
- package/dist/shared/path-segment-affordance.d.ts.map +1 -1
- package/dist/shared/path-segment-affordance.js +11 -8
- package/dist/shared/pipe-collar-inspector.d.ts +5 -0
- package/dist/shared/pipe-collar-inspector.d.ts.map +1 -0
- package/dist/shared/pipe-collar-inspector.js +27 -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/refrigerant-line-selection.d.ts.map +1 -1
- package/dist/shared/refrigerant-line-selection.js +46 -29
- package/dist/shared/relative-roof-drag.d.ts.map +1 -1
- package/dist/shared/relative-roof-drag.js +5 -4
- 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-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +2 -0
- 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/run-hangers.d.ts.map +1 -1
- package/dist/shared/run-hangers.js +2 -2
- package/dist/shared/run-move-connectivity.d.ts +15 -6
- package/dist/shared/run-move-connectivity.d.ts.map +1 -1
- package/dist/shared/run-move-connectivity.js +14 -5
- package/dist/shared/run-tool-options.d.ts +8 -0
- package/dist/shared/run-tool-options.d.ts.map +1 -0
- package/dist/shared/run-tool-options.js +166 -0
- package/dist/shared/system-check-panel.d.ts.map +1 -1
- package/dist/shared/system-check-panel.js +94 -15
- package/dist/shared/system-checks.d.ts.map +1 -1
- package/dist/shared/system-checks.js +2 -1
- package/dist/shared/vertical-offset.js +1 -1
- package/dist/shared/wall-attach-target.d.ts.map +1 -1
- package/dist/shared/wall-attach-target.js +6 -3
- package/dist/shared/wall-opening-ceiling.d.ts +6 -0
- package/dist/shared/wall-opening-ceiling.d.ts.map +1 -1
- package/dist/shared/wall-opening-ceiling.js +36 -7
- package/dist/shelf/definition.d.ts +108 -3
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.edit.d.ts +4 -0
- package/dist/shelf/definition.edit.d.ts.map +1 -0
- package/dist/shelf/definition.edit.js +155 -0
- package/dist/shelf/definition.js +4 -270
- package/dist/shelf/definition.render.d.ts +6 -0
- package/dist/shelf/definition.render.d.ts.map +1 -0
- package/dist/shelf/definition.render.js +122 -0
- package/dist/site/definition.d.ts +312 -9
- package/dist/site/definition.d.ts.map +1 -1
- package/dist/site/definition.edit.d.ts +4 -0
- package/dist/site/definition.edit.d.ts.map +1 -0
- package/dist/site/definition.edit.js +4 -0
- package/dist/site/definition.js +4 -55
- package/dist/site/definition.render.d.ts +6 -0
- package/dist/site/definition.render.d.ts.map +1 -0
- package/dist/site/definition.render.js +47 -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/definition.d.ts +158 -9
- package/dist/skylight/definition.d.ts.map +1 -1
- package/dist/skylight/definition.edit.d.ts +4 -0
- package/dist/skylight/definition.edit.d.ts.map +1 -0
- package/dist/skylight/definition.edit.js +218 -0
- package/dist/skylight/definition.js +4 -271
- package/dist/skylight/definition.render.d.ts +6 -0
- package/dist/skylight/definition.render.d.ts.map +1 -0
- package/dist/skylight/definition.render.js +50 -0
- package/dist/skylight/move-tool.d.ts.map +1 -1
- package/dist/skylight/move-tool.js +7 -5
- 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 +289 -19
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.edit.d.ts +4 -0
- package/dist/slab/definition.edit.d.ts.map +1 -0
- package/dist/slab/definition.edit.js +230 -0
- package/dist/slab/definition.js +4 -329
- package/dist/slab/definition.render.d.ts +6 -0
- package/dist/slab/definition.render.d.ts.map +1 -0
- package/dist/slab/definition.render.js +92 -0
- 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/definition.d.ts +145 -14
- package/dist/solar-panel/definition.d.ts.map +1 -1
- package/dist/solar-panel/definition.edit.d.ts +4 -0
- package/dist/solar-panel/definition.edit.d.ts.map +1 -0
- package/dist/solar-panel/definition.edit.js +213 -0
- package/dist/solar-panel/definition.js +4 -263
- package/dist/solar-panel/definition.render.d.ts +6 -0
- package/dist/solar-panel/definition.render.d.ts.map +1 -0
- package/dist/solar-panel/definition.render.js +42 -0
- package/dist/solar-panel/move-tool.d.ts.map +1 -1
- package/dist/solar-panel/move-tool.js +7 -5
- package/dist/solar-panel/panel.d.ts.map +1 -1
- package/dist/solar-panel/panel.js +49 -14
- package/dist/spawn/definition.d.ts +48 -3
- package/dist/spawn/definition.d.ts.map +1 -1
- package/dist/spawn/definition.edit.d.ts +4 -0
- package/dist/spawn/definition.edit.d.ts.map +1 -0
- package/dist/spawn/definition.edit.js +64 -0
- package/dist/spawn/definition.js +4 -109
- package/dist/spawn/definition.render.d.ts +6 -0
- package/dist/spawn/definition.render.d.ts.map +1 -0
- package/dist/spawn/definition.render.js +48 -0
- 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/definition.d.ts +334 -8
- package/dist/stair/definition.d.ts.map +1 -1
- package/dist/stair/definition.edit.d.ts +4 -0
- package/dist/stair/definition.edit.d.ts.map +1 -0
- package/dist/stair/definition.edit.js +377 -0
- package/dist/stair/definition.js +4 -443
- package/dist/stair/definition.render.d.ts +6 -0
- package/dist/stair/definition.render.d.ts.map +1 -0
- package/dist/stair/definition.render.js +65 -0
- 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 +244 -52
- 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/definition.d.ts +130 -7
- package/dist/stair-segment/definition.d.ts.map +1 -1
- package/dist/stair-segment/definition.edit.d.ts +4 -0
- package/dist/stair-segment/definition.edit.d.ts.map +1 -0
- package/dist/stair-segment/definition.edit.js +135 -0
- package/dist/stair-segment/definition.js +4 -172
- package/dist/stair-segment/definition.render.d.ts +6 -0
- package/dist/stair-segment/definition.render.d.ts.map +1 -0
- package/dist/stair-segment/definition.render.js +38 -0
- package/dist/stair-segment/panel.d.ts.map +1 -1
- package/dist/stair-segment/panel.js +65 -18
- package/dist/structural-grid/definition.d.ts +50 -3
- package/dist/structural-grid/definition.d.ts.map +1 -1
- package/dist/structural-grid/definition.edit.d.ts +4 -0
- package/dist/structural-grid/definition.edit.d.ts.map +1 -0
- package/dist/structural-grid/definition.edit.js +18 -0
- package/dist/structural-grid/definition.js +4 -51
- package/dist/structural-grid/definition.render.d.ts +6 -0
- package/dist/structural-grid/definition.render.d.ts.map +1 -0
- package/dist/structural-grid/definition.render.js +35 -0
- package/dist/turbine-vent/definition.d.ts +97 -23
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.edit.d.ts +4 -0
- package/dist/turbine-vent/definition.edit.d.ts.map +1 -0
- package/dist/turbine-vent/definition.edit.js +66 -0
- package/dist/turbine-vent/definition.js +4 -121
- package/dist/turbine-vent/definition.render.d.ts +6 -0
- package/dist/turbine-vent/definition.render.d.ts.map +1 -0
- package/dist/turbine-vent/definition.render.js +40 -0
- package/dist/turbine-vent/move-tool.d.ts.map +1 -1
- package/dist/turbine-vent/move-tool.js +6 -5
- package/dist/turbine-vent/panel.d.ts.map +1 -1
- package/dist/turbine-vent/panel.js +14 -5
- package/dist/unit/definition.d.ts +53 -9
- package/dist/unit/definition.d.ts.map +1 -1
- package/dist/unit/definition.edit.d.ts +4 -0
- package/dist/unit/definition.edit.d.ts.map +1 -0
- package/dist/unit/definition.edit.js +4 -0
- package/dist/unit/definition.js +4 -38
- package/dist/unit/definition.render.d.ts +6 -0
- package/dist/unit/definition.render.d.ts.map +1 -0
- package/dist/unit/definition.render.js +30 -0
- 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 +105 -18
- 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 +242 -38
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/curve-tool.js +2 -3
- package/dist/wall/definition.d.ts +809 -3
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.edit.d.ts +4 -0
- package/dist/wall/definition.edit.d.ts.map +1 -0
- package/dist/wall/definition.edit.js +184 -0
- package/dist/wall/definition.js +4 -264
- package/dist/wall/definition.render.d.ts +6 -0
- package/dist/wall/definition.render.d.ts.map +1 -0
- package/dist/wall/definition.render.js +100 -0
- 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 +63 -47
- package/dist/wall/measurement.d.ts.map +1 -1
- package/dist/wall/measurement.js +22 -5
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +4 -3
- package/dist/wall/move-shared.js +1 -1
- 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 +159 -18
- package/dist/wall/panel.d.ts +8 -0
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +240 -159
- 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/quick-measurement.js +1 -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 +80 -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 +4 -2
- 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/split-floorplan-layer.d.ts.map +1 -1
- package/dist/wall/split-floorplan-layer.js +2 -2
- package/dist/wall/split-tool.d.ts.map +1 -1
- package/dist/wall/split-tool.js +2 -2
- 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 +285 -70
- package/dist/wall/treatments.d.ts +3 -0
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +57 -14
- 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 +356 -15
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.edit.d.ts +4 -0
- package/dist/window/definition.edit.d.ts.map +1 -0
- package/dist/window/definition.edit.js +255 -0
- package/dist/window/definition.js +5 -329
- package/dist/window/definition.render.d.ts +8 -0
- package/dist/window/definition.render.d.ts.map +1 -0
- package/dist/window/definition.render.js +83 -0
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +12 -4
- 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 +17 -14
- 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 +24 -16
- package/dist/zone/contextual-dimensions.d.ts.map +1 -1
- package/dist/zone/contextual-dimensions.js +1 -2
- package/dist/zone/definition.d.ts +264 -9
- package/dist/zone/definition.d.ts.map +1 -1
- package/dist/zone/definition.edit.d.ts +4 -0
- package/dist/zone/definition.edit.d.ts.map +1 -0
- package/dist/zone/definition.edit.js +38 -0
- package/dist/zone/definition.js +4 -97
- package/dist/zone/definition.render.d.ts +6 -0
- package/dist/zone/definition.render.d.ts.map +1 -0
- package/dist/zone/definition.render.js +55 -0
- 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 +27 -16
- 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,133 @@
|
|
|
1
|
+
import { beamPlan, beamTopElevation, } from '@pascal-app/core';
|
|
2
|
+
import { clearStructuralElevationGuide, FLOORPLAN_NODE_EXTENSION_KEY, PANEL_MODEL_EXTENSION, publishStructuralElevationGuide, resolveStructuralElevationSnap, } from '@pascal-app/editor';
|
|
3
|
+
import { useViewer } from '@pascal-app/viewer';
|
|
4
|
+
import { beamToolOptions } from './draft-settings.js';
|
|
5
|
+
import { buildBeamFloorplan } from './floorplan.js';
|
|
6
|
+
import { beamEndpointAffordance } from './floorplan-affordances.js';
|
|
7
|
+
import { beamFloorplanMoveTarget } from './floorplan-move.js';
|
|
8
|
+
import { beamPanelModel } from './panel-model.js';
|
|
9
|
+
import { beamParametrics } from './parametrics.js';
|
|
10
|
+
const SIDE_HANDLE_OFFSET = 0.22;
|
|
11
|
+
const INCH = 0.0254;
|
|
12
|
+
/** Where a beam's top is in the live scene (a descriptor may run before the scene has a level). */
|
|
13
|
+
function topOf(beam, sceneApi) {
|
|
14
|
+
return beamTopElevation(sceneApi?.nodes() ?? {}, beam);
|
|
15
|
+
}
|
|
16
|
+
function midFrame(beam) {
|
|
17
|
+
const plan = beamPlan(beam);
|
|
18
|
+
return {
|
|
19
|
+
mid: [(plan.start[0] + plan.end[0]) / 2, (plan.start[1] + plan.end[1]) / 2],
|
|
20
|
+
normal: plan.normal,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** The beam's top, as the elevation guides read a structural datum. */
|
|
24
|
+
function guideSource(beam) {
|
|
25
|
+
const { mid } = midFrame(beam);
|
|
26
|
+
return { nodeId: beam.id, levelId: beam.parentId, anchor: mid };
|
|
27
|
+
}
|
|
28
|
+
// Side arrows: a tap hands the beam to its move tool, either side of its middle at mid-depth.
|
|
29
|
+
function beamSideMoveHandle(side) {
|
|
30
|
+
return {
|
|
31
|
+
kind: 'tap-action',
|
|
32
|
+
onActivate: (node, _scene, editor) => editor.engageMove(node),
|
|
33
|
+
placement: {
|
|
34
|
+
position: (n, sceneApi) => {
|
|
35
|
+
const { mid, normal } = midFrame(n);
|
|
36
|
+
const offset = (n.width / 2 + SIDE_HANDLE_OFFSET) * side;
|
|
37
|
+
return [
|
|
38
|
+
mid[0] + normal[0] * offset,
|
|
39
|
+
topOf(n, sceneApi) - n.depth / 2,
|
|
40
|
+
mid[1] + normal[1] * offset,
|
|
41
|
+
];
|
|
42
|
+
},
|
|
43
|
+
rotationY: (n) => {
|
|
44
|
+
const { normal } = midFrame(n);
|
|
45
|
+
return Math.atan2(-normal[1] * side, normal[0] * side);
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
cursor: 'ew-resize',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// End pickers: a dashed leader down the beam's depth and a disc at its end; a tap drags the end.
|
|
52
|
+
function beamEndPicker(endpoint) {
|
|
53
|
+
return {
|
|
54
|
+
kind: 'tap-action',
|
|
55
|
+
shape: 'corner-picker',
|
|
56
|
+
cursor: 'move',
|
|
57
|
+
nodeHeight: (n) => n.depth,
|
|
58
|
+
onActivate: (node, _scene, editor) => editor.engageEndpointMove(node, endpoint),
|
|
59
|
+
placement: {
|
|
60
|
+
position: (n, sceneApi) => {
|
|
61
|
+
const point = n[endpoint];
|
|
62
|
+
return [point[0], topOf(n, sceneApi) - n.depth, point[1]];
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The beam's top, dragged up and down: it stores the top it lands on, caught by the levels'
|
|
69
|
+
* structural heights (a ceiling plane, a slab top) and otherwise to the half inch (the centimetre
|
|
70
|
+
* on a metric plan).
|
|
71
|
+
*/
|
|
72
|
+
function beamTopHandle(current) {
|
|
73
|
+
return {
|
|
74
|
+
kind: 'linear-resize',
|
|
75
|
+
axis: 'y',
|
|
76
|
+
anchor: 'min',
|
|
77
|
+
shape: 'tracker',
|
|
78
|
+
currentValue: () => current,
|
|
79
|
+
magneticSnap: (n, value, sceneApi) => {
|
|
80
|
+
const snapped = resolveStructuralElevationSnap(guideSource(n), value, sceneApi.nodes());
|
|
81
|
+
if (snapped !== value)
|
|
82
|
+
return snapped;
|
|
83
|
+
const step = useViewer.getState().unit === 'imperial' ? INCH / 2 : 0.01;
|
|
84
|
+
return Math.round(value / step) * step;
|
|
85
|
+
},
|
|
86
|
+
onDrag: (n, sceneApi) => publishStructuralElevationGuide(guideSource(n), topOf(n, sceneApi), sceneApi.nodes()),
|
|
87
|
+
onDragEnd: (n) => clearStructuralElevationGuide(n.id),
|
|
88
|
+
apply: (_n, top) => ({ topElevation: top }),
|
|
89
|
+
placement: {
|
|
90
|
+
position: (n, sceneApi) => {
|
|
91
|
+
const { mid } = midFrame(n);
|
|
92
|
+
return [mid[0], topOf(n, sceneApi), mid[1]];
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const beamHandles = (node, sceneApi) => [
|
|
98
|
+
beamSideMoveHandle(1),
|
|
99
|
+
beamSideMoveHandle(-1),
|
|
100
|
+
beamEndPicker('start'),
|
|
101
|
+
beamEndPicker('end'),
|
|
102
|
+
beamTopHandle(topOf(node, sceneApi)),
|
|
103
|
+
];
|
|
104
|
+
export const beamEditContribution = {
|
|
105
|
+
snapProfile: 'structural',
|
|
106
|
+
extensions: {
|
|
107
|
+
[FLOORPLAN_NODE_EXTENSION_KEY]: {
|
|
108
|
+
// In 2D-only view the 3D tool never mounts: the plan drafts beams itself.
|
|
109
|
+
tool: () => import('./tool.js').then((module) => ({ default: module.BeamFloorplanTool })),
|
|
110
|
+
// A beam crosses rooms: a plan click on it picks the beam, not the room.
|
|
111
|
+
planHitSelectsNode: true,
|
|
112
|
+
},
|
|
113
|
+
[PANEL_MODEL_EXTENSION]: beamPanelModel,
|
|
114
|
+
},
|
|
115
|
+
parametrics: beamParametrics,
|
|
116
|
+
handles: beamHandles,
|
|
117
|
+
tool: () => import('./tool.js'),
|
|
118
|
+
toolOptions: beamToolOptions,
|
|
119
|
+
toolHints: [
|
|
120
|
+
{ key: 'Left click', label: 'Set beam start / end; the next beam starts there' },
|
|
121
|
+
{ key: 'Alt', label: 'Free place' },
|
|
122
|
+
{ key: 'Esc', label: 'End the run' },
|
|
123
|
+
],
|
|
124
|
+
floorplan: buildBeamFloorplan,
|
|
125
|
+
floorplanMoveTarget: beamFloorplanMoveTarget,
|
|
126
|
+
floorplanAffordances: {
|
|
127
|
+
'move-endpoint': beamEndpointAffordance,
|
|
128
|
+
},
|
|
129
|
+
affordanceTools: {
|
|
130
|
+
move: () => import('./move-tool.js'),
|
|
131
|
+
'move-endpoint': () => import('./move-endpoint-tool.js'),
|
|
132
|
+
},
|
|
133
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { composeNodeDefinition } from '../definition-contributions.js';
|
|
2
|
+
import { beamEditContribution } from './definition.edit.js';
|
|
3
|
+
import { beamRenderDefinition } from './definition.render.js';
|
|
4
|
+
export const beamDefinition = composeNodeDefinition(beamRenderDefinition, beamEditContribution);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NodeRenderDefinition } from '../definition-contributions.js';
|
|
2
|
+
import { BeamNode } from './schema.js';
|
|
3
|
+
export declare const beamRenderDefinition: NodeRenderDefinition<typeof BeamNode> & {
|
|
4
|
+
kind: 'beam';
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=definition.render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/beam/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CA+BxF,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BeamNode } from './schema.js';
|
|
2
|
+
export const beamRenderDefinition = {
|
|
3
|
+
kind: 'beam',
|
|
4
|
+
schemaVersion: 1,
|
|
5
|
+
schema: BeamNode,
|
|
6
|
+
category: 'structure',
|
|
7
|
+
defaults: () => {
|
|
8
|
+
const { id: _id, type: _type, ...rest } = BeamNode.parse({ start: [0, 0], end: [3, 0] });
|
|
9
|
+
return rest;
|
|
10
|
+
},
|
|
11
|
+
capabilities: {
|
|
12
|
+
selectable: { hitVolume: 'bbox' },
|
|
13
|
+
surfaces: { hosting: false },
|
|
14
|
+
duplicable: true,
|
|
15
|
+
deletable: true,
|
|
16
|
+
drawTool: true,
|
|
17
|
+
},
|
|
18
|
+
// The renderer reads the scene and live overrides itself; nothing consumes a dirty mark.
|
|
19
|
+
dirtyTracking: false,
|
|
20
|
+
rendersChildren: false,
|
|
21
|
+
renderer: { kind: 'parametric', module: () => import('./renderer.js') },
|
|
22
|
+
presentation: {
|
|
23
|
+
label: 'Beam',
|
|
24
|
+
description: 'A framing beam drawn end to end: a porch header, a deck beam, a girder.',
|
|
25
|
+
icon: { kind: 'url', src: '/icons/beam.svg' },
|
|
26
|
+
paletteSection: 'structure',
|
|
27
|
+
paletteOrder: 72,
|
|
28
|
+
},
|
|
29
|
+
mcp: {
|
|
30
|
+
description: 'A horizontal framing beam: start/end centreline (level-local), actual width/depth, nominal size and plies, material, dropped or flush placement, and a top elevation (absent = under the ceiling plane).',
|
|
31
|
+
},
|
|
32
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type BeamMaterial, type BeamTopReference, type ToolOption } from '@pascal-app/core';
|
|
2
|
+
/** What the beam tool draws with: its size, material and where its top goes. */
|
|
3
|
+
export type BeamDraftChoices = {
|
|
4
|
+
preset: string;
|
|
5
|
+
material: BeamMaterial;
|
|
6
|
+
top: BeamTopReference;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The beam tool's choices, kept apart from the editor's tool defaults: a host clears those when it
|
|
10
|
+
* arms a tool from its tile, which would forget the size just picked.
|
|
11
|
+
*/
|
|
12
|
+
export declare const useBeamDraft: import("zustand").UseBoundStore<import("zustand").StoreApi<BeamDraftChoices & {
|
|
13
|
+
set: (patch: Partial<BeamDraftChoices>) => void;
|
|
14
|
+
}>>;
|
|
15
|
+
/** The Beam tool's rows in the Build panel: material, size, top. */
|
|
16
|
+
export declare const beamToolOptions: readonly ToolOption[];
|
|
17
|
+
//# sourceMappingURL=draft-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-settings.d.ts","sourceRoot":"","sources":["../../src/beam/draft-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGrB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AAGzB,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,YAAY,CAAA;IACtB,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;SACG,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI;GAMnE,CAAA;AAsFH,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,SAAS,UAAU,EAAgD,CAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { BEAM_MATERIAL_LABELS, BEAM_SIZE_PRESETS, BEAM_TOP_REFERENCE_LABELS, BEAM_TOP_REFERENCES, beamSizePreset, DEFAULT_BEAM_SIZE_PRESET_ID, } from '@pascal-app/core';
|
|
2
|
+
import { create } from 'zustand';
|
|
3
|
+
/**
|
|
4
|
+
* The beam tool's choices, kept apart from the editor's tool defaults: a host clears those when it
|
|
5
|
+
* arms a tool from its tile, which would forget the size just picked.
|
|
6
|
+
*/
|
|
7
|
+
export const useBeamDraft = create((set) => ({
|
|
8
|
+
preset: DEFAULT_BEAM_SIZE_PRESET_ID,
|
|
9
|
+
material: 'sawn',
|
|
10
|
+
top: 'ceiling-dropped',
|
|
11
|
+
set: (patch) => set(patch),
|
|
12
|
+
}));
|
|
13
|
+
const familyOf = (material) => material === 'pressure-treated' ? 'sawn' : material;
|
|
14
|
+
/** The size a family starts at when its material is picked. */
|
|
15
|
+
const FAMILY_SIZE = {
|
|
16
|
+
sawn: DEFAULT_BEAM_SIZE_PRESET_ID,
|
|
17
|
+
lvl: '(2)lvl-1-3/4x11-7/8',
|
|
18
|
+
glulam: 'glulam-5-1/8x12',
|
|
19
|
+
steel: 'W8x10',
|
|
20
|
+
};
|
|
21
|
+
const MATERIAL_DESCRIPTIONS = {
|
|
22
|
+
sawn: 'A solid timber or 2x plies nailed up, inside where it stays dry',
|
|
23
|
+
'pressure-treated': 'Treated sawn lumber, for a porch, a deck or anything in the weather',
|
|
24
|
+
lvl: 'Laminated veneer lumber: a stiff beam for a long span inside',
|
|
25
|
+
glulam: 'Glued-laminated timber: long spans, often left exposed',
|
|
26
|
+
steel: 'A steel W shape, for the longest spans',
|
|
27
|
+
};
|
|
28
|
+
const TOP_DESCRIPTIONS = {
|
|
29
|
+
'ceiling-dropped': 'Hangs under the ceiling plane, the top of the walls: the joists or rafters bear on it',
|
|
30
|
+
'ceiling-flush': 'In the ceiling framing, its underside on the ceiling plane: the joists hang from its sides',
|
|
31
|
+
'floor-flush': 'Its top flush with the floor over it, in the floor framing',
|
|
32
|
+
'floor-under': "Under the floor's framing: a girder in a crawl space, or a deck's beam under its joists",
|
|
33
|
+
};
|
|
34
|
+
const subscribe = (onChange) => useBeamDraft.subscribe(() => onChange());
|
|
35
|
+
/** The material row: picking another family brings its usual size along. */
|
|
36
|
+
const materialOption = {
|
|
37
|
+
id: 'beam-material',
|
|
38
|
+
label: 'Material',
|
|
39
|
+
choices: Object.keys(BEAM_MATERIAL_LABELS).map((material) => ({
|
|
40
|
+
value: material,
|
|
41
|
+
label: BEAM_MATERIAL_LABELS[material],
|
|
42
|
+
description: MATERIAL_DESCRIPTIONS[material],
|
|
43
|
+
})),
|
|
44
|
+
subscribe,
|
|
45
|
+
value: () => useBeamDraft.getState().material,
|
|
46
|
+
set: (value) => {
|
|
47
|
+
const material = value;
|
|
48
|
+
const preset = beamSizePreset(useBeamDraft.getState().preset);
|
|
49
|
+
const keeps = preset && familyOf(preset.material) === familyOf(material);
|
|
50
|
+
useBeamDraft
|
|
51
|
+
.getState()
|
|
52
|
+
.set({ material, ...(keeps ? {} : { preset: FAMILY_SIZE[familyOf(material)] }) });
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
/** One Size row per family, shown while its material is the one picked. */
|
|
56
|
+
const sizeOptions = ['sawn', 'lvl', 'glulam', 'steel'].map((family) => ({
|
|
57
|
+
id: `beam-size-${family}`,
|
|
58
|
+
label: 'Size',
|
|
59
|
+
choices: BEAM_SIZE_PRESETS.filter((preset) => familyOf(preset.material) === family).map((preset) => ({ value: preset.id, label: preset.label.replace(/ (LVL|GLB)$/, '') })),
|
|
60
|
+
subscribe,
|
|
61
|
+
value: () => useBeamDraft.getState().preset,
|
|
62
|
+
set: (value) => useBeamDraft.getState().set({ preset: value }),
|
|
63
|
+
visible: {
|
|
64
|
+
subscribe,
|
|
65
|
+
value: () => familyOf(useBeamDraft.getState().material) === family,
|
|
66
|
+
},
|
|
67
|
+
}));
|
|
68
|
+
const topOption = {
|
|
69
|
+
id: 'beam-top',
|
|
70
|
+
label: 'Top',
|
|
71
|
+
choices: BEAM_TOP_REFERENCES.map((top) => ({
|
|
72
|
+
value: top,
|
|
73
|
+
label: BEAM_TOP_REFERENCE_LABELS[top],
|
|
74
|
+
description: TOP_DESCRIPTIONS[top],
|
|
75
|
+
})),
|
|
76
|
+
subscribe,
|
|
77
|
+
value: () => useBeamDraft.getState().top,
|
|
78
|
+
set: (value) => useBeamDraft.getState().set({ top: value }),
|
|
79
|
+
};
|
|
80
|
+
/** The Beam tool's rows in the Build panel: material, size, top. */
|
|
81
|
+
export const beamToolOptions = [materialOption, ...sizeOptions, topOption];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type AnyNode, type AnyNodeId, BeamNode, type WallNode } from '@pascal-app/core';
|
|
2
|
+
import { type WallDraftSnapKind, type WallPlanPoint } from '@pascal-app/editor';
|
|
3
|
+
import { type BeamDraftChoices } from './draft-settings.js';
|
|
4
|
+
type Nodes = Readonly<Record<AnyNodeId, AnyNode>>;
|
|
5
|
+
/**
|
|
6
|
+
* What a beam drawn on `levelId` snaps to, through the wall snap (`snapWallDraftPoint`): the
|
|
7
|
+
* level's wall centrelines and both faces of each straight wall (so a beam end lands on a wall's
|
|
8
|
+
* face or its corner), other beams' centrelines (their ends, middles and runs), and every post
|
|
9
|
+
* and column centre (a segment of no length). Kept per scene, so a pointer move asks once.
|
|
10
|
+
*/
|
|
11
|
+
export declare function beamSnapTargets(nodes: Nodes, levelId: string, ignoreIds?: readonly string[]): WallNode[];
|
|
12
|
+
/** A snapped plan point and what caught it (null: the grid, an angle step, or nothing). */
|
|
13
|
+
export type BeamPlanSnap = {
|
|
14
|
+
point: WallPlanPoint;
|
|
15
|
+
snap: WallDraftSnapKind | null;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* A beam point snapped as the beam tool snaps: wall and beam ends, faces, middles and crossings,
|
|
19
|
+
* post centres, the grid, and from `start` the angle steps. `free` (Alt) places it as it is.
|
|
20
|
+
*/
|
|
21
|
+
export declare function snapBeamPoint(args: {
|
|
22
|
+
point: WallPlanPoint;
|
|
23
|
+
nodes: Nodes;
|
|
24
|
+
levelId: string;
|
|
25
|
+
start?: WallPlanPoint | null;
|
|
26
|
+
ignoreIds?: readonly string[];
|
|
27
|
+
free?: boolean;
|
|
28
|
+
}): BeamPlanSnap;
|
|
29
|
+
/**
|
|
30
|
+
* The beam a draft makes from `start` to `end` on `levelId` with the tool's choices, its top set
|
|
31
|
+
* from the chosen reference; `seed` (a preset the host armed the tool with) overrides them.
|
|
32
|
+
*/
|
|
33
|
+
export declare function draftBeam(start: WallPlanPoint, end: WallPlanPoint, levelId: string, nodes: Nodes, choices?: BeamDraftChoices, seed?: Readonly<Record<string, unknown>> | null, fields?: Partial<BeamNode>): BeamNode;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=drafting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drafting.d.ts","sourceRoot":"","sources":["../../src/beam/drafting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,QAAQ,EAIR,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,gBAAgB,EAAgB,MAAM,kBAAkB,CAAA;AAEtE,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;AA0BjD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,QAAQ,EAAE,CAmCZ;AAED,2FAA2F;AAC3F,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,CAAA;AAEnF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,aAAa,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,YAAY,CAaf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,gBAA0C,EACnD,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAC/C,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAM,GAC7B,QAAQ,CAmBV"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { BeamNode, beamTopReferencePatch, createBeam, getWallFaceLine, } from '@pascal-app/core';
|
|
2
|
+
import { getSegmentGridStep, isAngleSnapActive, isMagneticSnapActive, snapBuildingLocalToWorldGrid, snapWallDraftPointDetailed, } from '@pascal-app/editor';
|
|
3
|
+
import { useBeamDraft } from './draft-settings.js';
|
|
4
|
+
/** A segment as the wall snap reads a wall: its ends, its middle and its body catch a point. */
|
|
5
|
+
function reference(id, parentId, start, end) {
|
|
6
|
+
return {
|
|
7
|
+
object: 'node',
|
|
8
|
+
id: id,
|
|
9
|
+
type: 'wall',
|
|
10
|
+
parentId,
|
|
11
|
+
visible: true,
|
|
12
|
+
metadata: {},
|
|
13
|
+
children: [],
|
|
14
|
+
start,
|
|
15
|
+
end,
|
|
16
|
+
frontSide: 'unknown',
|
|
17
|
+
backSide: 'unknown',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const targetsMemo = new WeakMap();
|
|
21
|
+
/**
|
|
22
|
+
* What a beam drawn on `levelId` snaps to, through the wall snap (`snapWallDraftPoint`): the
|
|
23
|
+
* level's wall centrelines and both faces of each straight wall (so a beam end lands on a wall's
|
|
24
|
+
* face or its corner), other beams' centrelines (their ends, middles and runs), and every post
|
|
25
|
+
* and column centre (a segment of no length). Kept per scene, so a pointer move asks once.
|
|
26
|
+
*/
|
|
27
|
+
export function beamSnapTargets(nodes, levelId, ignoreIds = []) {
|
|
28
|
+
const key = `${levelId}|${ignoreIds.join(',')}`;
|
|
29
|
+
let byKey = targetsMemo.get(nodes);
|
|
30
|
+
if (!byKey) {
|
|
31
|
+
byKey = new Map();
|
|
32
|
+
targetsMemo.set(nodes, byKey);
|
|
33
|
+
}
|
|
34
|
+
const cached = byKey.get(key);
|
|
35
|
+
if (cached)
|
|
36
|
+
return cached;
|
|
37
|
+
const targets = [];
|
|
38
|
+
for (const node of Object.values(nodes)) {
|
|
39
|
+
if (node.parentId !== levelId || node.visible === false || ignoreIds.includes(node.id))
|
|
40
|
+
continue;
|
|
41
|
+
if (node.type === 'wall') {
|
|
42
|
+
targets.push(node);
|
|
43
|
+
if (Math.abs(node.curveOffset ?? 0) > 1e-6)
|
|
44
|
+
continue;
|
|
45
|
+
for (const face of ['a', 'b']) {
|
|
46
|
+
const line = getWallFaceLine(node, face);
|
|
47
|
+
targets.push(reference(`${node.id}:${face}`, node.parentId, [line.start.x, line.start.y], [line.end.x, line.end.y]));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (node.type === 'beam') {
|
|
51
|
+
targets.push(reference(node.id, node.parentId, node.start, node.end));
|
|
52
|
+
}
|
|
53
|
+
else if (node.type === 'column') {
|
|
54
|
+
const centre = [node.position[0], node.position[2]];
|
|
55
|
+
targets.push(reference(node.id, node.parentId, centre, centre));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
byKey.set(key, targets);
|
|
59
|
+
return targets;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A beam point snapped as the beam tool snaps: wall and beam ends, faces, middles and crossings,
|
|
63
|
+
* post centres, the grid, and from `start` the angle steps. `free` (Alt) places it as it is.
|
|
64
|
+
*/
|
|
65
|
+
export function snapBeamPoint(args) {
|
|
66
|
+
if (args.free)
|
|
67
|
+
return { point: args.point, snap: null };
|
|
68
|
+
const step = getSegmentGridStep();
|
|
69
|
+
const angleSnap = !!args.start && isAngleSnapActive();
|
|
70
|
+
const result = snapWallDraftPointDetailed({
|
|
71
|
+
point: args.point,
|
|
72
|
+
walls: beamSnapTargets(args.nodes, args.levelId, args.ignoreIds),
|
|
73
|
+
start: args.start ?? undefined,
|
|
74
|
+
angleSnap,
|
|
75
|
+
magnetic: isMagneticSnapActive(),
|
|
76
|
+
gridSnap: (point) => snapBuildingLocalToWorldGrid(point, step),
|
|
77
|
+
});
|
|
78
|
+
return { point: result.point, snap: result.snap };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The beam a draft makes from `start` to `end` on `levelId` with the tool's choices, its top set
|
|
82
|
+
* from the chosen reference; `seed` (a preset the host armed the tool with) overrides them.
|
|
83
|
+
*/
|
|
84
|
+
export function draftBeam(start, end, levelId, nodes, choices = useBeamDraft.getState(), seed, fields = {}) {
|
|
85
|
+
const base = createBeam({
|
|
86
|
+
start,
|
|
87
|
+
end,
|
|
88
|
+
preset: choices.preset,
|
|
89
|
+
material: choices.material,
|
|
90
|
+
levelId,
|
|
91
|
+
});
|
|
92
|
+
const placed = { ...base, ...beamTopReferencePatch(nodes, base, choices.top) };
|
|
93
|
+
return BeamNode.parse({
|
|
94
|
+
...placed,
|
|
95
|
+
...(seed ?? {}),
|
|
96
|
+
...fields,
|
|
97
|
+
id: base.id,
|
|
98
|
+
type: 'beam',
|
|
99
|
+
start,
|
|
100
|
+
end,
|
|
101
|
+
parentId: levelId,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type BeamNode, type FloorplanAffordance } from '@pascal-app/core';
|
|
2
|
+
/**
|
|
3
|
+
* A beam's end, dragged in the plan: snapped as the beam tool snaps, angle-stepped off the other
|
|
4
|
+
* end. Previews through live overrides, writes the last end on release, and refuses an end that
|
|
5
|
+
* would leave the beam too short to draw.
|
|
6
|
+
*/
|
|
7
|
+
export declare const beamEndpointAffordance: FloorplanAffordance<BeamNode>;
|
|
8
|
+
//# sourceMappingURL=floorplan-affordances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floorplan-affordances.d.ts","sourceRoot":"","sources":["../../src/beam/floorplan-affordances.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EAGzB,MAAM,kBAAkB,CAAA;AAKzB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,CAAC,QAAQ,CA8BhE,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
2
|
+
import { isSegmentLongEnough } from '@pascal-app/editor';
|
|
3
|
+
import { snapBeamPoint } from './drafting.js';
|
|
4
|
+
/**
|
|
5
|
+
* A beam's end, dragged in the plan: snapped as the beam tool snaps, angle-stepped off the other
|
|
6
|
+
* end. Previews through live overrides, writes the last end on release, and refuses an end that
|
|
7
|
+
* would leave the beam too short to draw.
|
|
8
|
+
*/
|
|
9
|
+
export const beamEndpointAffordance = {
|
|
10
|
+
start({ node, payload, nodes }) {
|
|
11
|
+
const { endpoint } = payload;
|
|
12
|
+
const id = node.id;
|
|
13
|
+
const fixed = endpoint === 'start' ? node.end : node.start;
|
|
14
|
+
let last = null;
|
|
15
|
+
return {
|
|
16
|
+
affectedIds: [id],
|
|
17
|
+
apply({ planPoint, modifiers }) {
|
|
18
|
+
last = node.parentId
|
|
19
|
+
? snapBeamPoint({
|
|
20
|
+
point: [planPoint[0], planPoint[1]],
|
|
21
|
+
nodes,
|
|
22
|
+
levelId: node.parentId,
|
|
23
|
+
start: fixed,
|
|
24
|
+
ignoreIds: [node.id],
|
|
25
|
+
free: modifiers.altKey,
|
|
26
|
+
}).point
|
|
27
|
+
: [planPoint[0], planPoint[1]];
|
|
28
|
+
useLiveNodeOverrides.getState().set(id, { [endpoint]: last });
|
|
29
|
+
},
|
|
30
|
+
canCommit() {
|
|
31
|
+
return last !== null && isSegmentLongEnough(fixed, last);
|
|
32
|
+
},
|
|
33
|
+
commit() {
|
|
34
|
+
if (last)
|
|
35
|
+
useScene.getState().updateNodes([{ id, data: { [endpoint]: last } }]);
|
|
36
|
+
useLiveNodeOverrides.getState().clear(id);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type BeamNode, type FloorplanMoveTarget } from '@pascal-app/core';
|
|
2
|
+
import { type WallPlanPoint } from '@pascal-app/editor';
|
|
3
|
+
/** A beam translated by `delta`, both ends together. */
|
|
4
|
+
export declare function movedBeamEnds(beam: Pick<BeamNode, 'start' | 'end'>, delta: WallPlanPoint): Pick<BeamNode, 'start' | 'end'>;
|
|
5
|
+
/**
|
|
6
|
+
* A beam moved in the plan: its start follows the pointer and snaps as the beam tool snaps (wall
|
|
7
|
+
* faces and ends, other beams, post centres, the grid); its end travels with it. Previews through
|
|
8
|
+
* live overrides, writes once on release.
|
|
9
|
+
*/
|
|
10
|
+
export declare const beamFloorplanMoveTarget: FloorplanMoveTarget<BeamNode>;
|
|
11
|
+
//# sourceMappingURL=floorplan-move.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floorplan-move.d.ts","sourceRoot":"","sources":["../../src/beam/floorplan-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EAGzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAInE,wDAAwD;AACxD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC,EACrC,KAAK,EAAE,aAAa,GACnB,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC,CAKjC;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CAAC,QAAQ,CAqCjE,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
2
|
+
import { triggerSFX } from '@pascal-app/editor';
|
|
3
|
+
import { useViewer } from '@pascal-app/viewer';
|
|
4
|
+
import { snapBeamPoint } from './drafting.js';
|
|
5
|
+
/** A beam translated by `delta`, both ends together. */
|
|
6
|
+
export function movedBeamEnds(beam, delta) {
|
|
7
|
+
return {
|
|
8
|
+
start: [beam.start[0] + delta[0], beam.start[1] + delta[1]],
|
|
9
|
+
end: [beam.end[0] + delta[0], beam.end[1] + delta[1]],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A beam moved in the plan: its start follows the pointer and snaps as the beam tool snaps (wall
|
|
14
|
+
* faces and ends, other beams, post centres, the grid); its end travels with it. Previews through
|
|
15
|
+
* live overrides, writes once on release.
|
|
16
|
+
*/
|
|
17
|
+
export const beamFloorplanMoveTarget = ({ node, nodes }) => {
|
|
18
|
+
const id = node.id;
|
|
19
|
+
const origin = [node.start[0], node.start[1]];
|
|
20
|
+
let anchor = null;
|
|
21
|
+
let delta = [0, 0];
|
|
22
|
+
return {
|
|
23
|
+
affectedIds: [id],
|
|
24
|
+
apply({ planPoint, modifiers }) {
|
|
25
|
+
if (!anchor) {
|
|
26
|
+
anchor = [planPoint[0], planPoint[1]];
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const at = node.parentId
|
|
30
|
+
? snapBeamPoint({
|
|
31
|
+
point: [origin[0] + planPoint[0] - anchor[0], origin[1] + planPoint[1] - anchor[1]],
|
|
32
|
+
nodes,
|
|
33
|
+
levelId: node.parentId,
|
|
34
|
+
ignoreIds: [node.id],
|
|
35
|
+
free: modifiers.altKey,
|
|
36
|
+
}).point
|
|
37
|
+
: origin;
|
|
38
|
+
const next = [at[0] - origin[0], at[1] - origin[1]];
|
|
39
|
+
if (next[0] === delta[0] && next[1] === delta[1])
|
|
40
|
+
return;
|
|
41
|
+
delta = next;
|
|
42
|
+
triggerSFX('sfx:grid-snap');
|
|
43
|
+
useLiveNodeOverrides.getState().set(id, movedBeamEnds(node, delta));
|
|
44
|
+
},
|
|
45
|
+
canCommit() {
|
|
46
|
+
return delta[0] !== 0 || delta[1] !== 0;
|
|
47
|
+
},
|
|
48
|
+
commit() {
|
|
49
|
+
useScene.getState().updateNodes([{ id, data: movedBeamEnds(node, delta) }]);
|
|
50
|
+
useLiveNodeOverrides.getState().clear(id);
|
|
51
|
+
useViewer.getState().setSelection({ selectedIds: [id] });
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type BeamNode, type FloorplanGeometry, type GeometryContext } from '@pascal-app/core';
|
|
2
|
+
export type BeamEndpointPayload = {
|
|
3
|
+
endpoint: 'start' | 'end';
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* A beam in the plan, the way a framing plan draws one: its width as a dashed double outline and
|
|
7
|
+
* its size beside it ("6x8", "(2) 2x10"), over a clear hit area. Selected, it gets its end handles,
|
|
8
|
+
* a move arrow either side and its length.
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildBeamFloorplan(node: BeamNode, ctx: GeometryContext): FloorplanGeometry | null;
|
|
11
|
+
//# sourceMappingURL=floorplan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/beam/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAIb,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AASzB,MAAM,MAAM,mBAAmB,GAAG;IAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,CAAA;AAE/D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAoFjG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { beamOutline, beamPlan, beamSizeLabel, formatLinearMeasurement, } from '@pascal-app/core';
|
|
2
|
+
import { floorplanGeometryMetadata, readFloorplanMetricNotationOverride } from '@pascal-app/editor';
|
|
3
|
+
/** Hidden work: a beam is over the plan's cut, so it is drawn dashed, as a framing plan draws it. */
|
|
4
|
+
const HIDDEN_DASH = '8 4';
|
|
5
|
+
const MOVE_ARROW_OFFSET = 0.17;
|
|
6
|
+
/** Screen pixels between the beam's line and its size label (and, selected, its length). */
|
|
7
|
+
const LABEL_OFFSET_PX = 11;
|
|
8
|
+
/**
|
|
9
|
+
* A beam in the plan, the way a framing plan draws one: its width as a dashed double outline and
|
|
10
|
+
* its size beside it ("6x8", "(2) 2x10"), over a clear hit area. Selected, it gets its end handles,
|
|
11
|
+
* a move arrow either side and its length.
|
|
12
|
+
*/
|
|
13
|
+
export function buildBeamFloorplan(node, ctx) {
|
|
14
|
+
const plan = beamPlan(node);
|
|
15
|
+
if (plan.length < 1e-6)
|
|
16
|
+
return null;
|
|
17
|
+
const view = ctx.viewState;
|
|
18
|
+
const selected = view?.selected ?? false;
|
|
19
|
+
const chrome = selected || (view?.highlighted ?? false);
|
|
20
|
+
const stroke = chrome && view?.palette
|
|
21
|
+
? view.palette.selectedStroke
|
|
22
|
+
: view?.hovered && view.palette
|
|
23
|
+
? view.palette.wallHoverStroke
|
|
24
|
+
: '#374151';
|
|
25
|
+
const mid = [
|
|
26
|
+
(plan.start[0] + plan.end[0]) / 2,
|
|
27
|
+
(plan.start[1] + plan.end[1]) / 2,
|
|
28
|
+
];
|
|
29
|
+
const angle = Math.atan2(plan.direction[1], plan.direction[0]);
|
|
30
|
+
const children = [
|
|
31
|
+
{
|
|
32
|
+
kind: 'polygon',
|
|
33
|
+
points: beamOutline(node),
|
|
34
|
+
fill: chrome ? '#fed7aa' : 'transparent',
|
|
35
|
+
fillOpacity: chrome ? 0.35 : undefined,
|
|
36
|
+
stroke,
|
|
37
|
+
strokeWidth: chrome ? 1.75 : 1.25,
|
|
38
|
+
strokeDasharray: HIDDEN_DASH,
|
|
39
|
+
vectorEffect: 'non-scaling-stroke',
|
|
40
|
+
// A room's name and area move off a beam rather than hide it.
|
|
41
|
+
metadata: floorplanGeometryMetadata({ annotationObstacle: 'outline' }),
|
|
42
|
+
},
|
|
43
|
+
// A beam is a few inches wide: a click near its line picks it at any zoom.
|
|
44
|
+
{
|
|
45
|
+
kind: 'hit-line',
|
|
46
|
+
x1: plan.start[0],
|
|
47
|
+
y1: plan.start[1],
|
|
48
|
+
x2: plan.end[0],
|
|
49
|
+
y2: plan.end[1],
|
|
50
|
+
strokeWidthPx: 12,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
kind: 'dimension-label',
|
|
54
|
+
cx: mid[0],
|
|
55
|
+
cy: mid[1],
|
|
56
|
+
text: beamSizeLabel(node),
|
|
57
|
+
angle,
|
|
58
|
+
offsetPx: LABEL_OFFSET_PX,
|
|
59
|
+
appearance: 'outlined',
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
if (selected) {
|
|
63
|
+
for (const endpoint of ['start', 'end'])
|
|
64
|
+
children.push({
|
|
65
|
+
kind: 'endpoint-handle',
|
|
66
|
+
point: plan[endpoint],
|
|
67
|
+
state: 'idle',
|
|
68
|
+
affordance: 'move-endpoint',
|
|
69
|
+
payload: { endpoint },
|
|
70
|
+
});
|
|
71
|
+
for (const side of [1, -1]) {
|
|
72
|
+
// No affordance: the layer hands the beam to `floorplanMoveTarget`.
|
|
73
|
+
const offset = (plan.width / 2 + MOVE_ARROW_OFFSET) * side;
|
|
74
|
+
children.push({
|
|
75
|
+
kind: 'move-arrow',
|
|
76
|
+
point: [mid[0] + plan.normal[0] * offset, mid[1] + plan.normal[1] * offset],
|
|
77
|
+
angle: Math.atan2(plan.normal[1] * side, plan.normal[0] * side),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (plan.length >= 0.1)
|
|
81
|
+
children.push({
|
|
82
|
+
kind: 'dimension-label',
|
|
83
|
+
cx: mid[0],
|
|
84
|
+
cy: mid[1],
|
|
85
|
+
text: formatLinearMeasurement(plan.length, view?.unit ?? 'metric', readFloorplanMetricNotationOverride(ctx) ?? 'meters'),
|
|
86
|
+
angle,
|
|
87
|
+
offsetPx: -LABEL_OFFSET_PX - 4,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return { kind: 'group', children };
|
|
91
|
+
}
|