@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 @@
|
|
|
1
|
+
{"version":3,"file":"type-thumbnail-assets.d.ts","sourceRoot":"","sources":["../../src/roof/type-thumbnail-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGhD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAgBvD,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// WebP payloads are bundled so node inspectors work in every consuming host.
|
|
2
|
+
export const roofTypeThumbnails = {
|
|
3
|
+
barrel: 'data:image/webp;base64,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',
|
|
4
|
+
conical: 'data:image/webp;base64,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',
|
|
5
|
+
dutch: 'data:image/webp;base64,UklGRngUAABXRUJQVlA4WAoAAAAQAAAA/wAA/wAAQUxQSOgIAAAR8AftnyHJ/v9lRlZMrzGzcWzbtm3btm2fOS8e27Zt2+baZvcznhnPiMzqQuKZf05ESJQkuW4bkBdttga4PIEDSP2ASP7V43/r8b/1PN2U2Gv05V1CKpnoJsW6U4iGntGZbKHEM9RsaRp+fMO5kKmIPTWgBiO+21MZ4TJkIrylxhFocwFoem8r6UTIfN9EhMzepJbWOi9Iv7OdFEo56J8SqDsX7QJJv7iecCBSErsTYK4VAfD48kImUkix7IQ8pEuA2fcYkckEhlRv56KSuHGhFJYhSlxeLbRGIyZ2z29F4mL/HFRVaJp48SA7TMpilSnaftYRQ0/okzBAij6fFueqlMOIH/ftEFKl6vO/1DReffHFTlLIFJlZO1RfkH5vc2FEsiA3Ah5aSQglEwM1PiIbzkTzgaXsBJyUdn0u3Amk6d1zp2QRzsTBdaJ6ITY6dy6TCmjFSYRauxaafjo0EUKK3lUhF4vwZ7lTiQR8Xp8ruLwI0m+vaydg9iuOnPYm4P6lmBdSLDHaNn8CacbVQzgXUjTez4VfMfJkux9j27u6CuRjCfpurw6hFM+xi5vthnayH9uC5U5SLD4q54UgCB9d1gpuI3s754UiZv13bpOD86cM/nMgjTq1v8nB+VOGECbgn3aVQkk2vcVG1oL8VaJvbmhz8Bgdb1YLDGACfmgJHoUSl1aEMARg2hVDhMz4i+0QS6CwJuChR/YWUjHnLVIOhTYB/7w3bxOwlNlrNXOF0IneWI+zHJm4OBeBC7h3MSu4grSFQhdI07rn5klIsdDQHBS+0DT8SHs2yRD0RmkEPQF/sQ07E7DMxFXFUPg5NDcTsJTiYNBhQIjOcsDdCzEilGhcT4g6mOZMTLyo0woesKU/LdlsxpPjn6MbQsr4Q4k9J+R7xCi+3kmI2E0lZTdhvQi9En11Fdspamzu5wls1nhF85b5rYg3NviTmmGOgS4r0bFndcYqpBTHN3WgodFtjr8PyaKcgDPReb/BAt5suBUf7WAr0eiwlX6kFmBZi3gCfmFp2ykubP8p1EKtbfAgZvx77piEEh3/IgxvvfH/rPb4vkKpWLCF3iawwYvQ9GskJ3NSiS2G5zB2biOeX8m+uxb+GKeCzgVHgmbfEPyTykz0uTtKzGkddmof0ynoXeZnNTEWqpBvNrIrULBj7DA6v8tkTRDkNiNBYrLRrXUZxlWOiWc0QuykxKAX4hkD0f/h7IbGDK/S/s6OEU3z3wlv7ArLlErsP53YwBDddBp5QEimkvJSrYGN8RBddbpzoMhkKGPM9VwEh6voJNDpf0sA+nmTYKh1/44hHDREH0N2qyCotjGib4h+6tATwijCnqfZLEym6GkBemPVEMTSH9X6OX9l6KzrFwxgAWrcQEwVnK6STTijt++cSom9p/BtQkvTd9v47iQzseynBHybLdJPLuW7UyY6rtV8UwhA0y8ZKJTyTO00lloMs/Zqq8J2sAW0X2qxd+KmENFXYFsO/ZzvNViJ7HLUEPe/IC9/V8WdmtcO8mwqse3oaNOil1b+KzXi732lEV6pBZ+J9pGLJ7fSbvQ5z8/olBSnNCnWtP7cUnPav4b4Ntf7ncEaDNuuqpux33cVRvi8hzzNXw2GtW5saXredvJKHTuLGarKBINFVtVOF/QXmfSZdq2fmTFNw4qA1lUF0k9b2ZweqYG3EzJkIpa3eodSt80rpPRJHTqdlWRY5X9aUVTvNPZoW4T4fRABwFDDGq1SEfLmKj5z5igNjKwzNorvNlXXbF7aW3ildp3EBNXOVphrnIivN/O7FV3+YzaoXKsa9Tv92+8TmY6rNBOU/YmXpmE2ve37SHK7kVG/ilE6y/gITffP5f2J7IJvxEpV+4N23RBp1F4FiMe02RXRUmXzrIcPIH33vELJIF7F+z1SqsJM69z93r6jFMhLGV3PxUnlHG/NnsINLHP9plXntqjF6Q+A9OmqxW4I1AZRUujRnXZu76ous8cx3lxNry1RpEJ6OefU2QQsPoWisUfKggjMXPtXBo8kQdP985WpoIYY9AAh8KaAft+ueL4NjxLHNwlYU/DvkrfRgqTW+pEvCpA+Xjvvhn33v9tQTLnTTs0KxwyaYimtfeS2RCRfTZJKrPqFodhxR+4rXLr+t6KN25ihQOu75y5WMVAHT6IWI4fS9GelxTb4ZEt9ygWFQM1/d5YttpEM0fgXaeBhsf3S7jDj/Gb6nhOMGb87+9K+hW5s1OLvE0Dsi+3by1s31kuJ7GKImQKgsYcGssOUPofccVy0FBr38fmLv4wdK7XYe4aK1B26p5BFtUbElDofCCIMgus7hRuVpm+qA9JPmxXPt9FTc78YF4XGvbZvscsBdZGhYnLfX7PYZYLafKihYnGnnJIVunxQ870ZBwWaXlyseLHlhOq4HDTE8C2jkkqLG2qb4PchoPVjCxW77FC5b/BB0O7wnWKotHx/e+lqHS4FpG8vOVviitpzEkGo7q+bV19spWSFWuLtEIdAILx+oHUrN17SZv+l4ChA+nrDXKVVvXFD7TWRILSDxUv72DHrNMlO2s8MFZL70eq5MrtW4ydt31sIIainaZkUvF5S5tJiGO7LsZfZnl/bxwDGnHSsqjamZJEaeJt3CjQ9vXhxpcUvtfc0Y3p1/yw5WOSZ+trcHt27Oz25vNRgfW/3RQHQP7vYvznuL2WoiQReeukbS1zWqeXtOxru3Z+28XmwyE/aPjatY7d1bf9qLuNpD51B4NT9dK1iNw3U6r8ayt0e64KOeq5k+Vai62FHFGj6eM2aZbaUbFMHTydwUmYfz9EeS0bzzjYgvboUU3usUO5BDxBATbfu6/IpqMGOMmlr7bEWKVDpMle1VFV33EE191jJqMG6Hq1Ggab75y92k0ad2CynAOjvXYorrdRRG/5d8oDeliN3d+UOFpN5z/1yIQVIv25TvMFOIqXON1TRO8ODqrtSykSZSmw00lA594NVaowp7ZUsaqE3DGXcSxq1lhvbkkUJdYXW9N7qNfdYbZEsapsfT5W21qjbkn/1+N96/G89/rdgmwBWUDggagsAAPBAAJ0BKgABAAE+YTCUR6QjIikldfjJIAwJZW7hcIDm4ZrZnneWR6LlVJH9BXoS8wD9RemF5gP2f9Z70X+gB/Y+oA9AD9QPTU9h39zv2++AD+T/2//9dYB1E/HX6APMX/LfkZ0ZXtb+ul9m7C5VSAD8t4R9I18m9gD8xfrJ7Mf/R5R/pz2Af5d/WfSj9kf7l+w/+to3S2UmdFw6tYwxFE1OrWMMRRNTq1jDEUTU1rOMwVqK2yHPcFrUeWaak2tzy0B4iKJqdV/rhRYjekgQaiv02ZOmHOPjbFjok6a89licYi2UkDJkHePpmbL7O9Bh1Y56LZX5slE2LMGtNKtRvk1e/sKXQ/rjZWZQD4mjYIWcStFdI1HmajjqdPYAvfl8u5hy6JdCKM2OXirqwqAwOZsma2rRgPYzzrplvGMqaOGDvRHh8r2f6gcsE4nStKNzMVdy2Je6W9Br6x6VHsGxjuLxZli/Sr92xV9qZwGhSoyzlI15UAATnCdd/K1s3MkCNwjR+GhcxWsw4x2/HYJsdZXewEKM0oF9rX5xrvsOHuVrYh2pH07m19v9Nl7aKxLUjhqiUobnby0DX+/4ZhZ0RFpZeYaaJ36USt2mHmKUp66MJP5g754v+s5wTKTOhohpQThE7UeXGF5lb3MzClPYajW+pk0aL99E1Ondp0SJsX76JqdWsYYiianVrGGIomprAAD+/10aAAAAAAHby7kYwf4ht91OyvsKe2xQWYE7tA+A3l446iwBQGgrLogttxc4qEUM5QiN/k+lWJt35f5neZ5b9LZLEUj+Qu1iSSCQj4hUkqwGAZGDBbbBDKhEKbu9j/LwR99V+mNWEoqAslV1ptzQ4hunc7TGRVRXQHSvov4MvIcKFn/zC1z1eSJchBEoi0r4w7PGRHLA7sOM8OTc5KwYE7G1ODot4O8Nks/FfnoF20fG5l8q90gakun2cksPKm8c8IJhRaeHJ3LABOYAAafhKz7rP15LB0r/SuFDZSXTPQTy3vhOojavqrF7dGosGM4MRsPSeybpHfkV1My5Aiybehzq5YaQKApcW7bgIJZtyWWcr0SMKWlRL1uJCk3WNkqLnHbb40YKSPxpx/l8bAu4TTGGx+b3cPcAHmlmqrhBL4uxFKcjJk4a97+L618yK80Q+7gaJdQfuVIXMgj2Wp2vPv2fEynpfeiyLVb6i6J/diG98XpiCXK+C5jSxjfetKobYp7wsczJZzlr+gfEIL1nZEwRgV6aw2Ortlnw5j8c2A0+kip3Fc4L2yjw91XRH3vUkCZf9pkh1RNt68tC9uZVrLtg1tIuhJROJJ45ne4SHpYlZbp3WTW1uNpoXhsmA+14heJetRaWesx4tlvoAJ1ice8bP5DAsaDKfoYWA+1MLQimHs43/a5z5YMMsa8IKiiYcGUy+1o6q/B3QntL4/dd1+2B9WwKycz89rNF1xuJneWRSMQkPMKJkBAfFhrkmcdOmJtpY13ZyTBAxU4+aknGo1TQ7eWTnYUsiwGt7UQj+xv/nsw0FpGjMpFvs5fNHj8rmUjnyf5vd3RNP7O1qNK6I3niRtxpQxrrI+BaP7iuJzNNUirAI6qvHliBA4H8/3Ez5sLrBlh1yb0RYK8kb/jQTiagX+/4m5yqueayhlufgjKljIOaC2WWJD7U5A5HkCQGZN6VoyBq/97SCndYTukd73iO2cga9z/q+RcsJFzhlt6FS7U/v5AreEzdl807o+4+hW2abFGnSymBKrUPruZ2ZsDloRijOXfjY2vuH5jEA8esSdJ6kPhYmUv9xBFdOBvSwDLFzSrxW5AK9/t4dmN8/fFaqKGVg1o6vbxbXiGlG4jx7JEYvfN7+enEFi0hpdqktt+kfxx9Zq6j7xeY+tA14jqWoS8v43NFRXqGAhM8DOBkLje6368Bb0dvMOkGvSX/otx6hAuxtY9v3VY9L+MtRlYNm74FEctu3v+QWYmr/ArdhuX7dV5Qh+hgeskkVqX0+Rd6iLDJvJBDaQZsvNV8N5pSubLd4QpctIgPiNBGeTbPUJIMyPmi6O5ojjL9jyc9MMD7EaDVnPL5hLeeJ0UQXg+Go+zT4GtN0KAyX95OygzN8dH/7z7kvOIVq9WjAMQO5jj3TyBzigjI2Z9iW619/+9pN4AtaAFCfE9xoS9GqLuEwQQ4LUEz+g0nzem8CbMsP0A8l2LUHyQCKD7klajDwxnLKvMolCY/eUA85HbSP82zZh+qasAoJCBtGszLOq5H3uGt28ipLRxoAkpU1qyc+zZofP/iETf+jUVJzY/25ZdcfesLf+sC7sNUaQAVbc2DylfUZasqjMYeYVmiSnlS2tLcb4szilCMtHntEWDE8sHLRkIAeCYaKF8d2Q1zLi8TELG8C4fnW8pyYB4mumsJpPrjaJ3L8yea/QscqaeDXsDt/sQ/7mOnqWyqxbuQIo9vl9lgjXi/AkUZaGkpA/SoX3AGi41YTNwO7Bsnp+IKq5HBlNoYA6E2jaNgN2FjxcimAwB2r71EYJXkCnNudouLkddKrbxvOMGIAi+IayffhyMGSH+oZmF/uAFdkBW5uittbOP9XX+QmV2pkDNwBBYqCURD1PVCSGin8GE/YaRyZ3rxjMa6ceiYLS8Gjn5XDcbpvSB0oHjMC8Q4peyi7x0myrSAIBDlYC/LldiUcUplBUKfbi37z62xCgysIe+a4Ng/LHL51H11CX2yAS5lcswNepZTn+sd+Bi4iYpX8nBN+2JNEtswQACJB1zdqcrN7uN3Rva425t7/5/rkqeEDSARL8w5v1R+8TBs3oLAyQevq63J+GSJGpHNuouqGTp2bnzjyf8Y6SwzHE9SNMw/3csCtPhz5x9RMPBAhQp2x4143TS7uZpLtUA3uEnyD4WsqZITxRj1WIlLHTYItJ7EF8k1lAUUXSNAPor9WhCFFygOIdltqjniaARq2zXHSnfeEGWl29YfOyfXc6VRE90X9h8d77ZyRZOC4eWuzBm2CfsdG5cQCXPBf2FitIki6ABRWyKlOCHSbTqXjUvcdWOdzWqDV9Swwzy8SUZhvPblJRE6UsPcKbwUysZ3y3WDiJRUnvKacaKkIBcRZXkkkJFZ2UqEvzk8vmcsbSabiJPza3qTx+mmjuWaTMQtrRv7tu+8Bcl5BjC2mg+D+ihGmW6eEUa65kDolj2t5PCM/+m34GHy/4rVUWEeVbWs8GUXBXrqNDfjh2MX56Xm7t4OVeOv8Qli/0yDu7nNtvpBIt9/ynQuo6LT9wWx8wRIIGvCisZpt7pjy/utgpB3gsnSzYAA1JAnh3Bc4xdkhZrQMJy3j/ETx9TetArDXt9fHRcv2dFAQ3DHGSzYVyJ9Ww6rPWNh010bdbBGnJQp7oFjqMJWHNtntQhG6uuuIsuLUhzLYJLgL+O1Oym7bLGx6lt/sPsdGXBkRlOzq3Ey/QIS7lfAP+fLr0mKrTtNhI6c5J0LbmxV4/ix2oWOq46oZIdFAznc6h0jOhNOWVoYIhSMAz9W/jFwmciL63XV412jIUfrj6vvInQNpwCi1c7TSv4Zm1uV6jZM4WJpF7zviCN4Tn8KzPdZEvuSRLTcDh1wv/zJ4mWJu8FmUwmfmvMiqYNyEnKhc5PrM+1tUuaZX8EHGRVJwJDU6f9KLgldolagH33/ANy85ll4nY6Bs+Gan/GXXieKSNSjowly4Q5eIsFyBfjKauJcvUEvviE1RaH2Z5LTHpyUcmJm0o3B9KUy5ZDonyh0hAaDz5xtyTgeceRA8gGjuW6sTEOvmpi9aMJbhPdea25gzFtJvEi6fshwARkzVuh0p71W1wx1nhlBfjIcZebvZZ8y7GQlt9eL5IWegS91idjCzSdaJamdf45ozKOMTtAtVDc7inL+4aXHv6Jbrh4WPN05pwAAAAAAAAAAAA==',
|
|
6
|
+
flat: 'data:image/webp;base64,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',
|
|
7
|
+
gable: 'data:image/webp;base64,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',
|
|
8
|
+
gambrel: 'data:image/webp;base64,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',
|
|
9
|
+
hip: 'data:image/webp;base64,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',
|
|
10
|
+
mansard: 'data:image/webp;base64,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',
|
|
11
|
+
shed: 'data:image/webp;base64,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',
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-thumbnail.d.ts","sourceRoot":"","sources":["../../src/roof/type-thumbnail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGhD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,+BAW7D"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { roofTypeThumbnails } from './type-thumbnail-assets.js';
|
|
3
|
+
export function RoofTypeThumbnail({ type }) {
|
|
4
|
+
return (_jsx("img", { alt: "", src: roofTypeThumbnails[type], width: 56, height: 56, className: "h-14 w-14 object-contain grayscale transition-[filter] duration-150 [button:hover_&]:grayscale-0 [button:focus-visible_&]:grayscale-0", draggable: false }));
|
|
5
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { type AnyNode, type AnyNodeId, type RoofNode, type RoofSegmentNode, type WallNode } from '@pascal-app/core';
|
|
2
|
+
type Pt = readonly [number, number];
|
|
3
|
+
/** How near a roof's wall line comes to a wall's centre line before it catches on it (metres). */
|
|
4
|
+
export declare const ROOF_WALL_CATCH_M = 0.25;
|
|
5
|
+
/**
|
|
6
|
+
* A side drawn or picked this near a room's edge stands on it (metres): as near as a drawn corner
|
|
7
|
+
* sticks to a wall in grid (the wall snap's connect radius), so one drawn on a railing's centre
|
|
8
|
+
* line, a grid point, still takes its outside face.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ROOF_EDGE_ON_M = 0.05;
|
|
11
|
+
/**
|
|
12
|
+
* A segment's footprint at its wall centre lines, in its level's plan: its centre, the plan angle
|
|
13
|
+
* of its own x axis (the floor plan's `-(roof.rotation + segment.rotation)`), and its own walls'
|
|
14
|
+
* thickness, their outer faces half of it outside the line (absent, none).
|
|
15
|
+
*/
|
|
16
|
+
export type RoofWallLine = {
|
|
17
|
+
center: Pt;
|
|
18
|
+
angle: number;
|
|
19
|
+
hw: number;
|
|
20
|
+
hd: number;
|
|
21
|
+
wallThickness?: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* A room's edge a roof lines up with but does not stand on: an invisible wall (its line, no
|
|
25
|
+
* thickness), or a railing (a guard round a deck or a porch, its faces half its thickness either
|
|
26
|
+
* side of its line). A wall takes a roof's wall line on its centre line, the roof's walls as thick
|
|
27
|
+
* as it, so their outer faces meet its outside face; an edge takes the roof's outer face itself,
|
|
28
|
+
* on the edge's face on the roof's outer side, so the roof reaches the room's edge as it reaches
|
|
29
|
+
* the house's walls' outside faces.
|
|
30
|
+
*/
|
|
31
|
+
export type RoofEdgeLine = {
|
|
32
|
+
type: 'roof-edge';
|
|
33
|
+
id: string;
|
|
34
|
+
start: Pt;
|
|
35
|
+
end: Pt;
|
|
36
|
+
thickness: number;
|
|
37
|
+
};
|
|
38
|
+
/** A line a roof catches on: a wall's centre line, or a room's edge (`RoofEdgeLine`). */
|
|
39
|
+
export type RoofCatchLine = WallNode | RoofEdgeLine;
|
|
40
|
+
/** Which axes of the dragged frame caught on a wall, and the plan shift that lays them there. */
|
|
41
|
+
export type RoofWallCatch = {
|
|
42
|
+
shift: [number, number];
|
|
43
|
+
u: boolean;
|
|
44
|
+
v: boolean;
|
|
45
|
+
};
|
|
46
|
+
/** A segment's wall line with its roof at `roof`'s place, which a drag may be proposing. */
|
|
47
|
+
export declare function segmentWallLine(roof: Pick<RoofNode, 'position' | 'rotation'>, segment: Pick<RoofSegmentNode, 'position' | 'rotation' | 'width' | 'depth'> & Partial<Pick<RoofSegmentNode, 'wallThickness'>>): RoofWallLine;
|
|
48
|
+
/**
|
|
49
|
+
* What a roof on `levelId` catches on, on its own level and the storey below, which the roof plan
|
|
50
|
+
* draws dashed: the walls it sits on, and the rooms' edges there, their invisible walls and
|
|
51
|
+
* railings (`RoofEdgeLine`): a porch's, a deck's, a patio's. Curved walls have no straight line to
|
|
52
|
+
* catch on.
|
|
53
|
+
*/
|
|
54
|
+
export declare function roofCatchWalls(nodes: Readonly<Record<AnyNodeId, AnyNode>>, levelId: string | null | undefined): RoofCatchLine[];
|
|
55
|
+
/**
|
|
56
|
+
* Where a dragged roof's wall lines catch on the walls under it. Along each axis of the frame at
|
|
57
|
+
* `angle` (the dragged segment's or roof's x and z), the edge nearest the centre line of a wall
|
|
58
|
+
* that runs alongside it, parallel and within `threshold`, sets the shift onto that wall; one
|
|
59
|
+
* nearest a room's edge (`RoofEdgeLine`) stands the outer face of the walls the segment takes
|
|
60
|
+
* there on it.
|
|
61
|
+
*/
|
|
62
|
+
export declare function catchRoofOnWalls(args: {
|
|
63
|
+
lines: readonly RoofWallLine[];
|
|
64
|
+
walls: readonly RoofCatchLine[];
|
|
65
|
+
angle: number;
|
|
66
|
+
threshold?: number;
|
|
67
|
+
}): RoofWallCatch;
|
|
68
|
+
/**
|
|
69
|
+
* A dragged roof's place: along an axis its wall line caught on, the raw place shifted onto the
|
|
70
|
+
* wall; along the other, the snapped place (the grid's, or the raw cursor's with no grid).
|
|
71
|
+
*/
|
|
72
|
+
export declare function placeRoofOnWalls(raw: Pt, snapped: Pt, caught: RoofWallCatch, angle: number): [number, number];
|
|
73
|
+
/**
|
|
74
|
+
* A side dragged out from `line` (the segment's wall line before the drag), its opposite side held:
|
|
75
|
+
* the size along `axis` that lays the dragged side on the centre line of a wall alongside it, or
|
|
76
|
+
* stands its outer face on a room's edge there (`RoofEdgeLine`); null when neither is within
|
|
77
|
+
* `threshold` of `value`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function catchRoofSideOnWalls(args: {
|
|
80
|
+
line: RoofWallLine;
|
|
81
|
+
axis: 'x' | 'z';
|
|
82
|
+
side: 1 | -1;
|
|
83
|
+
value: number;
|
|
84
|
+
walls: readonly RoofCatchLine[];
|
|
85
|
+
threshold?: number;
|
|
86
|
+
}): number | null;
|
|
87
|
+
/**
|
|
88
|
+
* The thickness a segment's walls take to stand flush on the walls under it: the thickest wall
|
|
89
|
+
* whose centre line runs along an edge of its wall line, within `threshold`. A room's edge (an
|
|
90
|
+
* invisible wall, a railing) carries no roof and gives none. Null when no wall does.
|
|
91
|
+
*/
|
|
92
|
+
export declare function bearingWallThickness(line: RoofWallLine, walls: readonly RoofCatchLine[], threshold?: number): number | null;
|
|
93
|
+
/**
|
|
94
|
+
* A wall line drawn or picked out to a room's edges (`RoofEdgeLine`): each side lying on one,
|
|
95
|
+
* within `tolerance`, moved in so the outer face of its walls, `thickness` thick, stands there, as
|
|
96
|
+
* the house's roof stands its walls' outer faces on the walls' outside faces. A side on a wall's
|
|
97
|
+
* centre line, or on nothing, stays.
|
|
98
|
+
*/
|
|
99
|
+
export declare function settleRoofOnEdges(line: RoofWallLine, walls: readonly RoofCatchLine[], thickness: number, tolerance?: number): RoofWallLine;
|
|
100
|
+
/**
|
|
101
|
+
* A segment drawn or picked out to a room's edges, in its roof at `roof`'s place: its size and
|
|
102
|
+
* place in its roof with its walls' outer faces on them (`settleRoofOnEdges`).
|
|
103
|
+
*/
|
|
104
|
+
export declare function settleSegmentOnEdges(roof: Pick<RoofNode, 'position' | 'rotation'>, segment: Pick<RoofSegmentNode, 'position' | 'rotation' | 'width' | 'depth' | 'wallThickness'>, walls: readonly RoofCatchLine[]): Pick<RoofSegmentNode, 'position' | 'width' | 'depth'>;
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=wall-catch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wall-catch.d.ts","sourceRoot":"","sources":["../../src/roof/wall-catch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EAMd,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAEzB,KAAK,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEnC,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC;;;;GAIG;AACH,eAAO,MAAM,cAAc,OAAO,CAAA;AAKlC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,EAAE,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,EAAE,CAAC;IAAC,GAAG,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnG,yFAAyF;AACzF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEnD,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAsE/E,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC,EAC7C,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAChD,YAAY,CAWd;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAC3C,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,aAAa,EAAE,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,aAAa,CAiChB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,EAAE,EACP,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,CAAC,MAAM,EAAE,MAAM,CAAC,CAelB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAA;IACf,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,MAAM,GAAG,IAAI,CA4BhB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,SAAoB,GAC5B,MAAM,GAAG,IAAI,CAUf;AAWD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,SAAiB,GACzB,YAAY,CAiBd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC,EAC7C,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,eAAe,CAAC,EAC7F,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAWvD"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { getLevelBelow, getWallBodyLine, getWallThickness, isCurvedWall, isRailingWall, } from '@pascal-app/core';
|
|
2
|
+
/** How near a roof's wall line comes to a wall's centre line before it catches on it (metres). */
|
|
3
|
+
export const ROOF_WALL_CATCH_M = 0.25;
|
|
4
|
+
/**
|
|
5
|
+
* A side drawn or picked this near a room's edge stands on it (metres): as near as a drawn corner
|
|
6
|
+
* sticks to a wall in grid (the wall snap's connect radius), so one drawn on a railing's centre
|
|
7
|
+
* line, a grid point, still takes its outside face.
|
|
8
|
+
*/
|
|
9
|
+
export const ROOF_EDGE_ON_M = 0.05;
|
|
10
|
+
/** A wall within this of parallel (the sine of 1°) runs along a roof edge. */
|
|
11
|
+
const PARALLEL = Math.sin(Math.PI / 180);
|
|
12
|
+
const NO_CATCH = { shift: [0, 0], u: false, v: false };
|
|
13
|
+
const dot = (a, b) => a[0] * b[0] + a[1] * b[1];
|
|
14
|
+
/**
|
|
15
|
+
* A catch line's ends: a wall's body centre line (a wall drawn by a face has it half its thickness
|
|
16
|
+
* off the middle), an edge's own.
|
|
17
|
+
*/
|
|
18
|
+
function lineEnds(line) {
|
|
19
|
+
if (line.type === 'roof-edge')
|
|
20
|
+
return [line.start, line.end];
|
|
21
|
+
const body = getWallBodyLine(line);
|
|
22
|
+
return [
|
|
23
|
+
[body.start.x, body.start.y],
|
|
24
|
+
[body.end.x, body.end.y],
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
/** A railing as a room's edge: its body's centre line, its faces half its thickness off it. */
|
|
28
|
+
function railingEdge(wall) {
|
|
29
|
+
const [start, end] = lineEnds(wall);
|
|
30
|
+
return { type: 'roof-edge', id: wall.id, start, end, thickness: getWallThickness(wall) };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The line nearest an edge through `mid`, and how far along `n` the edge moves onto it: lines
|
|
34
|
+
* parallel to the edge, within `threshold` of it, and overlapping its `half` length either side of
|
|
35
|
+
* `mid` along `t`. Null when none does. A wall takes the edge on its centre line; a room's edge
|
|
36
|
+
* takes the outer face of the roof's walls, `thickness` thick, on its face on the outer side.
|
|
37
|
+
*/
|
|
38
|
+
function nearestLine(mid, n, t, half, lines, threshold, thickness) {
|
|
39
|
+
let best = null;
|
|
40
|
+
for (const line of lines) {
|
|
41
|
+
const [from, to] = lineEnds(line);
|
|
42
|
+
const run = [to[0] - from[0], to[1] - from[1]];
|
|
43
|
+
const length = Math.hypot(run[0], run[1]);
|
|
44
|
+
if (length < 1e-6 || Math.abs(dot(run, n)) / length > PARALLEL)
|
|
45
|
+
continue;
|
|
46
|
+
const start = [from[0] - mid[0], from[1] - mid[1]];
|
|
47
|
+
const end = [to[0] - mid[0], to[1] - mid[1]];
|
|
48
|
+
const gap = dot(start, n) + (line.type === 'roof-edge' ? (line.thickness - thickness) / 2 : 0);
|
|
49
|
+
if (Math.abs(gap) > threshold)
|
|
50
|
+
continue;
|
|
51
|
+
const a = dot(start, t);
|
|
52
|
+
const b = dot(end, t);
|
|
53
|
+
if (Math.max(a, b) <= -half || Math.min(a, b) >= half)
|
|
54
|
+
continue;
|
|
55
|
+
if (best === null || Math.abs(gap) < Math.abs(best.gap))
|
|
56
|
+
best = { gap, line };
|
|
57
|
+
}
|
|
58
|
+
return best;
|
|
59
|
+
}
|
|
60
|
+
/** A wall line's four edges: outward normal, run, distance from the centre, half length. */
|
|
61
|
+
function lineEdges(line) {
|
|
62
|
+
const ex = [Math.cos(line.angle), Math.sin(line.angle)];
|
|
63
|
+
const ez = [-ex[1], ex[0]];
|
|
64
|
+
return [
|
|
65
|
+
{ n: ex, t: ez, offset: line.hw, half: line.hd },
|
|
66
|
+
{ n: [-ex[0], -ex[1]], t: ez, offset: line.hw, half: line.hd },
|
|
67
|
+
{ n: ez, t: ex, offset: line.hd, half: line.hw },
|
|
68
|
+
{ n: [-ez[0], -ez[1]], t: ex, offset: line.hd, half: line.hw },
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
/** A segment's wall line with its roof at `roof`'s place, which a drag may be proposing. */
|
|
72
|
+
export function segmentWallLine(roof, segment) {
|
|
73
|
+
const cos = Math.cos(-roof.rotation);
|
|
74
|
+
const sin = Math.sin(-roof.rotation);
|
|
75
|
+
const [lx, , lz] = segment.position;
|
|
76
|
+
return {
|
|
77
|
+
center: [roof.position[0] + lx * cos - lz * sin, roof.position[2] + lx * sin + lz * cos],
|
|
78
|
+
angle: -(roof.rotation + segment.rotation),
|
|
79
|
+
hw: segment.width / 2,
|
|
80
|
+
hd: segment.depth / 2,
|
|
81
|
+
wallThickness: segment.wallThickness,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* What a roof on `levelId` catches on, on its own level and the storey below, which the roof plan
|
|
86
|
+
* draws dashed: the walls it sits on, and the rooms' edges there, their invisible walls and
|
|
87
|
+
* railings (`RoofEdgeLine`): a porch's, a deck's, a patio's. Curved walls have no straight line to
|
|
88
|
+
* catch on.
|
|
89
|
+
*/
|
|
90
|
+
export function roofCatchWalls(nodes, levelId) {
|
|
91
|
+
if (!levelId)
|
|
92
|
+
return [];
|
|
93
|
+
const below = getLevelBelow(levelId, nodes);
|
|
94
|
+
const lines = [];
|
|
95
|
+
for (const id of [levelId, below?.id]) {
|
|
96
|
+
const level = id ? nodes[id] : undefined;
|
|
97
|
+
if (level?.type !== 'level')
|
|
98
|
+
continue;
|
|
99
|
+
for (const childId of level.children) {
|
|
100
|
+
const node = nodes[childId];
|
|
101
|
+
if (node?.type === 'separator')
|
|
102
|
+
lines.push({
|
|
103
|
+
type: 'roof-edge',
|
|
104
|
+
id: node.id,
|
|
105
|
+
start: node.start,
|
|
106
|
+
end: node.end,
|
|
107
|
+
thickness: 0,
|
|
108
|
+
});
|
|
109
|
+
else if (node?.type === 'wall' && !isCurvedWall(node))
|
|
110
|
+
lines.push(isRailingWall(node) ? railingEdge(node) : node);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return lines;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Where a dragged roof's wall lines catch on the walls under it. Along each axis of the frame at
|
|
117
|
+
* `angle` (the dragged segment's or roof's x and z), the edge nearest the centre line of a wall
|
|
118
|
+
* that runs alongside it, parallel and within `threshold`, sets the shift onto that wall; one
|
|
119
|
+
* nearest a room's edge (`RoofEdgeLine`) stands the outer face of the walls the segment takes
|
|
120
|
+
* there on it.
|
|
121
|
+
*/
|
|
122
|
+
export function catchRoofOnWalls(args) {
|
|
123
|
+
const threshold = args.threshold ?? ROOF_WALL_CATCH_M;
|
|
124
|
+
const u = [Math.cos(args.angle), Math.sin(args.angle)];
|
|
125
|
+
const v = [-u[1], u[0]];
|
|
126
|
+
let bestU = null;
|
|
127
|
+
let bestV = null;
|
|
128
|
+
for (const line of args.lines) {
|
|
129
|
+
const thickness = landedWallThickness(line, args.walls, threshold);
|
|
130
|
+
for (const { n, t, offset, half } of lineEdges(line)) {
|
|
131
|
+
// An edge of a segment turned off the dragged frame moves along neither axis alone.
|
|
132
|
+
const alongU = dot(n, u);
|
|
133
|
+
const alongV = dot(n, v);
|
|
134
|
+
const axis = Math.abs(alongV) <= PARALLEL ? 'u' : Math.abs(alongU) <= PARALLEL ? 'v' : null;
|
|
135
|
+
if (!axis)
|
|
136
|
+
continue;
|
|
137
|
+
const mid = [line.center[0] + n[0] * offset, line.center[1] + n[1] * offset];
|
|
138
|
+
const gap = nearestLine(mid, n, t, half, args.walls, threshold, thickness)?.gap;
|
|
139
|
+
if (gap === undefined)
|
|
140
|
+
continue;
|
|
141
|
+
const amount = gap * (axis === 'u' ? alongU : alongV);
|
|
142
|
+
if (axis === 'u') {
|
|
143
|
+
if (bestU === null || Math.abs(amount) < Math.abs(bestU))
|
|
144
|
+
bestU = amount;
|
|
145
|
+
}
|
|
146
|
+
else if (bestV === null || Math.abs(amount) < Math.abs(bestV))
|
|
147
|
+
bestV = amount;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (bestU === null && bestV === null)
|
|
151
|
+
return NO_CATCH;
|
|
152
|
+
const du = bestU ?? 0;
|
|
153
|
+
const dv = bestV ?? 0;
|
|
154
|
+
return {
|
|
155
|
+
shift: [u[0] * du + v[0] * dv, u[1] * du + v[1] * dv],
|
|
156
|
+
u: bestU !== null,
|
|
157
|
+
v: bestV !== null,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* A dragged roof's place: along an axis its wall line caught on, the raw place shifted onto the
|
|
162
|
+
* wall; along the other, the snapped place (the grid's, or the raw cursor's with no grid).
|
|
163
|
+
*/
|
|
164
|
+
export function placeRoofOnWalls(raw, snapped, caught, angle) {
|
|
165
|
+
const out = [snapped[0], snapped[1]];
|
|
166
|
+
const target = [raw[0] + caught.shift[0], raw[1] + caught.shift[1]];
|
|
167
|
+
const u = [Math.cos(angle), Math.sin(angle)];
|
|
168
|
+
const v = [-u[1], u[0]];
|
|
169
|
+
for (const [axis, on] of [
|
|
170
|
+
[u, caught.u],
|
|
171
|
+
[v, caught.v],
|
|
172
|
+
]) {
|
|
173
|
+
if (!on)
|
|
174
|
+
continue;
|
|
175
|
+
const k = (target[0] - out[0]) * axis[0] + (target[1] - out[1]) * axis[1];
|
|
176
|
+
out[0] += axis[0] * k;
|
|
177
|
+
out[1] += axis[1] * k;
|
|
178
|
+
}
|
|
179
|
+
return out;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* A side dragged out from `line` (the segment's wall line before the drag), its opposite side held:
|
|
183
|
+
* the size along `axis` that lays the dragged side on the centre line of a wall alongside it, or
|
|
184
|
+
* stands its outer face on a room's edge there (`RoofEdgeLine`); null when neither is within
|
|
185
|
+
* `threshold` of `value`.
|
|
186
|
+
*/
|
|
187
|
+
export function catchRoofSideOnWalls(args) {
|
|
188
|
+
const { line, axis, side, value } = args;
|
|
189
|
+
const threshold = args.threshold ?? ROOF_WALL_CATCH_M;
|
|
190
|
+
const ex = [Math.cos(line.angle), Math.sin(line.angle)];
|
|
191
|
+
const ez = [-ex[1], ex[0]];
|
|
192
|
+
const along = axis === 'x' ? ex : ez;
|
|
193
|
+
const n = [along[0] * side, along[1] * side];
|
|
194
|
+
const half = axis === 'x' ? line.hw : line.hd;
|
|
195
|
+
const reach = value - half;
|
|
196
|
+
const mid = [line.center[0] + n[0] * reach, line.center[1] + n[1] * reach];
|
|
197
|
+
// Sized to `value`, the opposite side held: the thickness its walls take there.
|
|
198
|
+
const shift = value / 2 - half;
|
|
199
|
+
const sized = {
|
|
200
|
+
...line,
|
|
201
|
+
center: [line.center[0] + n[0] * shift, line.center[1] + n[1] * shift],
|
|
202
|
+
hw: axis === 'x' ? value / 2 : line.hw,
|
|
203
|
+
hd: axis === 'z' ? value / 2 : line.hd,
|
|
204
|
+
};
|
|
205
|
+
const caught = nearestLine(mid, n, axis === 'x' ? ez : ex, axis === 'x' ? line.hd : line.hw, args.walls, threshold, landedWallThickness(sized, args.walls, threshold));
|
|
206
|
+
return caught ? value + caught.gap : null;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* The thickness a segment's walls take to stand flush on the walls under it: the thickest wall
|
|
210
|
+
* whose centre line runs along an edge of its wall line, within `threshold`. A room's edge (an
|
|
211
|
+
* invisible wall, a railing) carries no roof and gives none. Null when no wall does.
|
|
212
|
+
*/
|
|
213
|
+
export function bearingWallThickness(line, walls, threshold = ROOF_WALL_CATCH_M) {
|
|
214
|
+
const bearing = walls.filter((wall) => wall.type === 'wall');
|
|
215
|
+
let thickest = null;
|
|
216
|
+
for (const { n, t, offset, half } of lineEdges(line)) {
|
|
217
|
+
const mid = [line.center[0] + n[0] * offset, line.center[1] + n[1] * offset];
|
|
218
|
+
const wall = nearestLine(mid, n, t, half, bearing, threshold, 0)?.line;
|
|
219
|
+
if (wall?.type === 'wall' && (thickest === null || getWallThickness(wall) > thickest))
|
|
220
|
+
thickest = getWallThickness(wall);
|
|
221
|
+
}
|
|
222
|
+
return thickest;
|
|
223
|
+
}
|
|
224
|
+
/** The thickness a wall line's walls take where it stands: the walls' under it, else its own. */
|
|
225
|
+
function landedWallThickness(line, walls, threshold) {
|
|
226
|
+
return bearingWallThickness(line, walls, threshold) ?? line.wallThickness ?? 0;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* A wall line drawn or picked out to a room's edges (`RoofEdgeLine`): each side lying on one,
|
|
230
|
+
* within `tolerance`, moved in so the outer face of its walls, `thickness` thick, stands there, as
|
|
231
|
+
* the house's roof stands its walls' outer faces on the walls' outside faces. A side on a wall's
|
|
232
|
+
* centre line, or on nothing, stays.
|
|
233
|
+
*/
|
|
234
|
+
export function settleRoofOnEdges(line, walls, thickness, tolerance = ROOF_EDGE_ON_M) {
|
|
235
|
+
const ex = [Math.cos(line.angle), Math.sin(line.angle)];
|
|
236
|
+
const ez = [-ex[1], ex[0]];
|
|
237
|
+
// How far each side (+x, -x, +z, -z) moves out along its own normal.
|
|
238
|
+
const [px = 0, nx = 0, pz = 0, nz = 0] = lineEdges(line).map(({ n, t, offset, half }) => {
|
|
239
|
+
const mid = [line.center[0] + n[0] * offset, line.center[1] + n[1] * offset];
|
|
240
|
+
const on = nearestLine(mid, n, t, half, walls, tolerance, 0);
|
|
241
|
+
return on?.line.type === 'roof-edge' ? on.gap - thickness / 2 : 0;
|
|
242
|
+
});
|
|
243
|
+
const du = (px - nx) / 2;
|
|
244
|
+
const dv = (pz - nz) / 2;
|
|
245
|
+
return {
|
|
246
|
+
...line,
|
|
247
|
+
center: [line.center[0] + ex[0] * du + ez[0] * dv, line.center[1] + ex[1] * du + ez[1] * dv],
|
|
248
|
+
hw: Math.max(1e-3, line.hw + (px + nx) / 2),
|
|
249
|
+
hd: Math.max(1e-3, line.hd + (pz + nz) / 2),
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* A segment drawn or picked out to a room's edges, in its roof at `roof`'s place: its size and
|
|
254
|
+
* place in its roof with its walls' outer faces on them (`settleRoofOnEdges`).
|
|
255
|
+
*/
|
|
256
|
+
export function settleSegmentOnEdges(roof, segment, walls) {
|
|
257
|
+
const settled = settleRoofOnEdges(segmentWallLine(roof, segment), walls, segment.wallThickness);
|
|
258
|
+
const dx = settled.center[0] - roof.position[0];
|
|
259
|
+
const dz = settled.center[1] - roof.position[2];
|
|
260
|
+
const cos = Math.cos(-roof.rotation);
|
|
261
|
+
const sin = Math.sin(-roof.rotation);
|
|
262
|
+
return {
|
|
263
|
+
position: [dx * cos + dz * sin, segment.position[1], -dx * sin + dz * cos],
|
|
264
|
+
width: settled.hw * 2,
|
|
265
|
+
depth: settled.hd * 2,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type RoofSegmentNode } from '@pascal-app/core';
|
|
2
|
+
export declare function RoofBuildUpSection({ node, onApplyToRoof, onUpdate, unit, }: {
|
|
3
|
+
node: RoofSegmentNode;
|
|
4
|
+
/** Present when the plane's roof has other planes to take the same layers. */
|
|
5
|
+
onApplyToRoof?: () => void;
|
|
6
|
+
onUpdate: (patch: Partial<RoofSegmentNode>) => void;
|
|
7
|
+
unit: 'metric' | 'imperial';
|
|
8
|
+
}): import("react").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=build-up-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-up-section.d.ts","sourceRoot":"","sources":["../../src/roof-segment/build-up-section.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,eAAe,EAMrB,MAAM,kBAAkB,CAAA;AAuNzB,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,IAAI,GACL,EAAE;IACD,IAAI,EAAE,eAAe,CAAA;IACrB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAA;IACnD,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC5B,+BAkLA"}
|