@pascal-app/nodes 1.0.7 → 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 +42 -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/definition.d.ts +64 -13
- package/dist/beam/definition.d.ts.map +1 -1
- 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 -173
- 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/floorplan.d.ts.map +1 -1
- package/dist/beam/floorplan.js +2 -2
- package/dist/beam/panel.d.ts.map +1 -1
- package/dist/beam/panel.js +2 -2
- package/dist/beam/tool.d.ts.map +1 -1
- package/dist/beam/tool.js +2 -2
- 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/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/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 -2115
- 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/kitchen-module-actions.d.ts.map +1 -1
- package/dist/cabinet/kitchen-module-actions.js +2 -2
- 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/system.js +1 -1
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +268 -15
- 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/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 -207
- 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/panel.js +2 -2
- 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/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 -439
- 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 +33 -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 +3 -2
- 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 +451 -363
- package/dist/column/parametrics.js +1 -1
- package/dist/column/post-section.d.ts.map +1 -1
- package/dist/column/post-section.js +2 -2
- 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.map +1 -1
- package/dist/column/tool.js +21 -10
- 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/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/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 -341
- 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-move.d.ts.map +1 -1
- package/dist/door/floorplan-move.js +11 -8
- 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 +25 -23
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +2 -1
- 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/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/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/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-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/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 +152 -100
- 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/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/move-endpoint-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.js +2 -2
- package/dist/fence/tool.js +2 -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/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/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/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/i18n/definition-messages.js +1 -1
- 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 +3 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -136
- 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.map +1 -1
- package/dist/item/floorplan.js +2 -2
- 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/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 +2 -2
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +3 -3
- 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-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/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 +4 -21
- 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/roof/barrel-panel.d.ts.map +1 -1
- package/dist/roof/barrel-panel.js +2 -2
- 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 -284
- 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/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.map +1 -1
- package/dist/roof/glazing-controls.js +2 -2
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +4 -3
- package/dist/roof/tool.d.ts +3 -0
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +56 -170
- 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-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 -364
- 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 +2 -2
- package/dist/roof-segment/paint.d.ts +0 -1
- package/dist/roof-segment/paint.d.ts.map +1 -1
- package/dist/roof-segment/paint.js +0 -1
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +32 -34
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +13 -11
- 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 -37
- 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/renderer.d.ts +2 -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 +3 -5
- package/dist/separator/selection.d.ts.map +1 -1
- package/dist/separator/selection.js +2 -2
- 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/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 +2 -3
- 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/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/opening-guides-runtime.d.ts.map +1 -1
- package/dist/shared/opening-guides-runtime.js +2 -2
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +1 -1
- 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/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-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +2 -0
- 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-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-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 -272
- 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/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/slab/definition.d.ts +289 -20
- 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 -334
- 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/panel.js +2 -2
- 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/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/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/panel.js +2 -2
- package/dist/stair/structure-controls.d.ts.map +1 -1
- package/dist/stair/structure-controls.js +2 -2
- 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/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/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 +2 -2
- package/dist/wall/contextual-dimensions.d.ts.map +1 -1
- package/dist/wall/contextual-dimensions.js +2 -2
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
- package/dist/wall/curtain-wall-panel.js +2 -2
- 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 -279
- 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.js +1 -1
- 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 +3 -3
- package/dist/wall/move-shared.js +1 -1
- package/dist/wall/panel-model.d.ts.map +1 -1
- package/dist/wall/panel-model.js +4 -3
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +15 -6
- package/dist/wall/quick-measurement.js +1 -1
- package/dist/wall/rectangle-command.d.ts +1 -0
- package/dist/wall/rectangle-command.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.js +2 -2
- 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/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +138 -36
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +36 -16
- 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 -338
- 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 +7 -4
- package/dist/window/mechanism.js +1 -1
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +7 -11
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +5 -2
- 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/quantities-panel.d.ts.map +1 -1
- package/dist/zone/quantities-panel.js +2 -2
- package/package.json +21 -10
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Vector3 } from 'three';
|
|
2
|
+
export declare const INCHES_TO_METERS = 0.0254;
|
|
3
|
+
/**
|
|
4
|
+
* Area-equivalent round diameter (inches) for a rect cross-section —
|
|
5
|
+
* what a rect trunk advertises on its ports so round fittings / branches
|
|
6
|
+
* mate at a sensible size.
|
|
7
|
+
*/
|
|
8
|
+
export declare function equivalentDiameterIn(widthIn: number, heightIn: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* Area-equivalent round diameter (inches) for a flat-oval cross-section:
|
|
11
|
+
* a rectangle of (width − height) × height plus the two semicircular caps.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ovalEquivalentDiameterIn(widthIn: number, heightIn: number): number;
|
|
14
|
+
/** The diameter (inches) a duct segment presents at its ports. */
|
|
15
|
+
export declare function ductPortDiameterIn(node: {
|
|
16
|
+
shape?: 'round' | 'rect' | 'oval';
|
|
17
|
+
diameter: number;
|
|
18
|
+
width?: number;
|
|
19
|
+
height?: number;
|
|
20
|
+
}): number;
|
|
21
|
+
/**
|
|
22
|
+
* Cross-section axes for a rect run along `dir`, rolled `roll` radians
|
|
23
|
+
* about the run direction. At roll 0: width is the horizontal axis
|
|
24
|
+
* (UP × dir) and height the vertical one — vertical runs, where that
|
|
25
|
+
* cross product degenerates, fall back to world X/Z. `roll` rotates the
|
|
26
|
+
* pair in the plane perpendicular to `dir`, letting a riser carry the
|
|
27
|
+
* orientation of the run it turned off instead of the bare fallback.
|
|
28
|
+
*/
|
|
29
|
+
export declare function rectSectionAxes(dir: Vector3, roll?: number): {
|
|
30
|
+
width: Vector3;
|
|
31
|
+
height: Vector3;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Roll (radians) that keeps a rect cross-section continuous across an
|
|
35
|
+
* elbow: the dimension lying along the joint's hinge — the bend-plane
|
|
36
|
+
* normal `portDir × newDir`, perpendicular to both legs — must stay on
|
|
37
|
+
* the same physical face on the new run as on the source run. Returns 0
|
|
38
|
+
* for an in-plane (degenerate-normal) joint, so horizontal turns keep
|
|
39
|
+
* the natural width-horizontal orientation.
|
|
40
|
+
*/
|
|
41
|
+
export declare function rollToContinueAcrossElbow(sourceDir: Vector3, sourceRoll: number, portDir: Vector3, newDir: Vector3): number;
|
|
42
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/duct-segment/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,eAAO,MAAM,gBAAgB,SAAS,CAAA;AAGtC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,MAAM,CAQT;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,SAAI,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAW3F;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAeR"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Vector3 } from 'three';
|
|
2
|
+
export const INCHES_TO_METERS = 0.0254;
|
|
3
|
+
const UP = new Vector3(0, 1, 0);
|
|
4
|
+
/**
|
|
5
|
+
* Area-equivalent round diameter (inches) for a rect cross-section —
|
|
6
|
+
* what a rect trunk advertises on its ports so round fittings / branches
|
|
7
|
+
* mate at a sensible size.
|
|
8
|
+
*/
|
|
9
|
+
export function equivalentDiameterIn(widthIn, heightIn) {
|
|
10
|
+
return 2 * Math.sqrt((widthIn * heightIn) / Math.PI);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Area-equivalent round diameter (inches) for a flat-oval cross-section:
|
|
14
|
+
* a rectangle of (width − height) × height plus the two semicircular caps.
|
|
15
|
+
*/
|
|
16
|
+
export function ovalEquivalentDiameterIn(widthIn, heightIn) {
|
|
17
|
+
const minor = Math.min(widthIn, heightIn);
|
|
18
|
+
const major = Math.max(widthIn, heightIn);
|
|
19
|
+
const area = (major - minor) * minor + Math.PI * (minor / 2) ** 2;
|
|
20
|
+
return 2 * Math.sqrt(area / Math.PI);
|
|
21
|
+
}
|
|
22
|
+
/** The diameter (inches) a duct segment presents at its ports. */
|
|
23
|
+
export function ductPortDiameterIn(node) {
|
|
24
|
+
if (node.shape === 'rect' && node.width && node.height) {
|
|
25
|
+
return equivalentDiameterIn(node.width, node.height);
|
|
26
|
+
}
|
|
27
|
+
if (node.shape === 'oval' && node.width && node.height) {
|
|
28
|
+
return ovalEquivalentDiameterIn(node.width, node.height);
|
|
29
|
+
}
|
|
30
|
+
return node.diameter;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Cross-section axes for a rect run along `dir`, rolled `roll` radians
|
|
34
|
+
* about the run direction. At roll 0: width is the horizontal axis
|
|
35
|
+
* (UP × dir) and height the vertical one — vertical runs, where that
|
|
36
|
+
* cross product degenerates, fall back to world X/Z. `roll` rotates the
|
|
37
|
+
* pair in the plane perpendicular to `dir`, letting a riser carry the
|
|
38
|
+
* orientation of the run it turned off instead of the bare fallback.
|
|
39
|
+
*/
|
|
40
|
+
export function rectSectionAxes(dir, roll = 0) {
|
|
41
|
+
const d = dir.clone().normalize();
|
|
42
|
+
const xBase = new Vector3().crossVectors(UP, d);
|
|
43
|
+
if (xBase.lengthSq() < 1e-8)
|
|
44
|
+
xBase.set(1, 0, 0);
|
|
45
|
+
xBase.normalize();
|
|
46
|
+
const zBase = new Vector3().crossVectors(xBase, d);
|
|
47
|
+
const c = Math.cos(roll);
|
|
48
|
+
const s = Math.sin(roll);
|
|
49
|
+
const width = xBase.clone().multiplyScalar(c).addScaledVector(zBase, s);
|
|
50
|
+
const height = xBase.clone().multiplyScalar(-s).addScaledVector(zBase, c);
|
|
51
|
+
return { width, height };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Roll (radians) that keeps a rect cross-section continuous across an
|
|
55
|
+
* elbow: the dimension lying along the joint's hinge — the bend-plane
|
|
56
|
+
* normal `portDir × newDir`, perpendicular to both legs — must stay on
|
|
57
|
+
* the same physical face on the new run as on the source run. Returns 0
|
|
58
|
+
* for an in-plane (degenerate-normal) joint, so horizontal turns keep
|
|
59
|
+
* the natural width-horizontal orientation.
|
|
60
|
+
*/
|
|
61
|
+
export function rollToContinueAcrossElbow(sourceDir, sourceRoll, portDir, newDir) {
|
|
62
|
+
const n = new Vector3().crossVectors(portDir, newDir);
|
|
63
|
+
if (n.lengthSq() < 1e-8)
|
|
64
|
+
return 0;
|
|
65
|
+
n.normalize();
|
|
66
|
+
const src = rectSectionAxes(sourceDir, sourceRoll);
|
|
67
|
+
const carriesWidth = Math.abs(src.width.dot(n)) >= Math.abs(src.height.dot(n));
|
|
68
|
+
const d = newDir.clone().normalize();
|
|
69
|
+
const xBase = new Vector3().crossVectors(UP, d);
|
|
70
|
+
if (xBase.lengthSq() < 1e-8)
|
|
71
|
+
xBase.set(1, 0, 0);
|
|
72
|
+
xBase.normalize();
|
|
73
|
+
const zBase = new Vector3().crossVectors(xBase, d);
|
|
74
|
+
// Place the hinge-aligned face on the same axis the source carries it.
|
|
75
|
+
return carriesWidth
|
|
76
|
+
? Math.atan2(n.dot(zBase), n.dot(xBase))
|
|
77
|
+
: Math.atan2(-n.dot(xBase), n.dot(zBase));
|
|
78
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/duct-segment/selection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/duct-segment/selection.tsx"],"names":[],"mappings":"AAqJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,QAAA,MAAM,8BAA8B,0CAuCnC,CAAA;eA4gDc,8BAA8B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { analyzePortConnectivity, DuctSegmentNode, nodeRegistry, pauseSceneHistory, resolveConnectivityUpdates, resumeSceneHistory, sceneRegistry, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
4
|
-
import { clearPlacementSurface, DimensionPill, isAngleSnapActive, isGridSnapActive, swallowNextClick, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
3
|
+
import { analyzePortConnectivity, DuctSegmentNode, findLevelAncestorId, nodeRegistry, pauseSceneHistory, resolveConnectivityUpdates, resumeSceneHistory, sceneRegistry, useLiveNodeOverrides, useScene, } from '@pascal-app/core';
|
|
4
|
+
import { AXIS_MOVE_DRAG_LABEL, clearPlacementSurface, DimensionPill, isAngleSnapActive, isGridSnapActive, PATH_POINT_DRAG_LABEL, ROTATE_HANDLE_DRAG_LABEL, swallowNextClick, triggerSFX, useEditor, } from '@pascal-app/editor';
|
|
5
5
|
import { collectScenePorts, findNearestPortXZ } from '@pascal-app/editor/distribution';
|
|
6
6
|
import { useViewer } from '@pascal-app/viewer';
|
|
7
7
|
import { Html } from '@react-three/drei';
|
|
@@ -11,6 +11,7 @@ import { Euler, Matrix4, Plane, Quaternion, Raycaster, Vector2, Vector3, } from
|
|
|
11
11
|
import { newAutoOffsetGroupId, readAutoOffsetTag, translateAutoOffsetBase, withAutoOffsetTag, withoutAutoOffsetTag, } from '../shared/auto-offset-tag.js';
|
|
12
12
|
import { planRunEndCapFollowUpdates } from '../shared/automatic-run-end-cap.js';
|
|
13
13
|
import { detectFittingEndpoint, planFittingEndpointReaim, } from '../shared/fitting-endpoint-reaim.js';
|
|
14
|
+
import { useHandleDragScope } from '../shared/handle-drag-scope.js';
|
|
14
15
|
import { DuctSegmentGhost, FittingGhost } from '../shared/mep-ghost.js';
|
|
15
16
|
import { DUCT_PORT_SYSTEMS } from '../shared/port-systems.js';
|
|
16
17
|
import { planRunTranslationOffsets } from '../shared/run-translation-offset.js';
|
|
@@ -18,7 +19,7 @@ import { ContinuePlusHandle, HandleCube, MoveChevron, RotateArc } from '../share
|
|
|
18
19
|
import { planVerticalOffsets } from '../shared/vertical-offset.js';
|
|
19
20
|
import { refreshWallRunAttachment } from '../shared/wall-run-move.js';
|
|
20
21
|
import { activateDuctContinuation, ductContinuationHandlePlan, } from './continuation.js';
|
|
21
|
-
import { INCHES_TO_METERS } from './
|
|
22
|
+
import { INCHES_TO_METERS } from './profile.js';
|
|
22
23
|
/** Port-snap radius for dragged run endpoints (meters, XZ). */
|
|
23
24
|
const PORT_SNAP_RADIUS_M = 0.4;
|
|
24
25
|
// In-world arrow handle layout (meters) — the arrows stand off the run body so
|
|
@@ -146,6 +147,7 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
146
147
|
});
|
|
147
148
|
const unit = useViewer((s) => s.unit);
|
|
148
149
|
const [draggingIndex, setDraggingIndex] = useState(null);
|
|
150
|
+
const claimHandleDrag = useHandleDragScope();
|
|
149
151
|
const [rolling, setRolling] = useState(false);
|
|
150
152
|
const [runMoving, setRunMoving] = useState(false);
|
|
151
153
|
// Auto-routed offset preview shown while the run-center cube's ±Y arrows
|
|
@@ -307,9 +309,12 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
307
309
|
]);
|
|
308
310
|
}
|
|
309
311
|
const path = drag.initialPath.map((p, i) => (i === drag.index ? next : p));
|
|
312
|
+
const followers = detached ? [] : connectivityUpdatesForPath(drag.connectivity, path);
|
|
313
|
+
if (!followers)
|
|
314
|
+
return null;
|
|
310
315
|
const updates = [
|
|
311
316
|
{ id: duct.id, data: { path, wallAttachment: attachmentFor(path) } },
|
|
312
|
-
...
|
|
317
|
+
...followers,
|
|
313
318
|
];
|
|
314
319
|
return detached ? updates : withEndCapFollow(path, updates);
|
|
315
320
|
};
|
|
@@ -322,12 +327,13 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
322
327
|
};
|
|
323
328
|
// Follow-updates for fittings / ducts mated to this run's endpoints, given
|
|
324
329
|
// the run's live path. Endpoints whose position didn't change resolve to a
|
|
325
|
-
// zero delta, so only the dragged endpoint's partner actually moves.
|
|
330
|
+
// zero delta, so only the dragged endpoint's partner actually moves. Null
|
|
331
|
+
// when the mated joints cannot follow the path.
|
|
326
332
|
const connectivityUpdatesForPath = (connectivity, path) => {
|
|
327
333
|
if (!connectivity)
|
|
328
334
|
return [];
|
|
329
335
|
const preview = { ...duct, path };
|
|
330
|
-
return resolveConnectivityUpdates(connectivity, preview)
|
|
336
|
+
return (resolveConnectivityUpdates(connectivity, preview)?.filter((u) => useScene.getState().nodes[u.id]) ?? null);
|
|
331
337
|
};
|
|
332
338
|
// A corner arrow drag: the point is locked to one axis (X / Z / Y). All the
|
|
333
339
|
// rich behaviour — port-snap, elbow re-aim, connectivity follow, single-undo
|
|
@@ -342,10 +348,20 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
342
348
|
const livePreviewIds = new Set();
|
|
343
349
|
const publishLivePreview = (updates) => {
|
|
344
350
|
const scene = useScene.getState();
|
|
351
|
+
const overrides = useLiveNodeOverrides.getState();
|
|
345
352
|
const entries = updates
|
|
346
353
|
.filter((update) => scene.nodes[update.id])
|
|
347
354
|
.map((update) => [update.id, update.data]);
|
|
348
|
-
|
|
355
|
+
const previewed = new Set(entries.map(([id]) => id));
|
|
356
|
+
for (const id of livePreviewIds) {
|
|
357
|
+
if (previewed.has(id))
|
|
358
|
+
continue;
|
|
359
|
+
overrides.clear(id);
|
|
360
|
+
if (scene.nodes[id])
|
|
361
|
+
scene.markDirty(id);
|
|
362
|
+
livePreviewIds.delete(id);
|
|
363
|
+
}
|
|
364
|
+
overrides.setMany(entries);
|
|
349
365
|
for (const [id] of entries) {
|
|
350
366
|
livePreviewIds.add(id);
|
|
351
367
|
scene.markDirty(id);
|
|
@@ -363,6 +379,10 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
363
379
|
useViewer.getState().setInputDragging(true);
|
|
364
380
|
document.body.style.cursor = kind.axis === 'y' ? 'ns-resize' : 'grabbing';
|
|
365
381
|
setDraggingIndex(index);
|
|
382
|
+
const releaseScope = claimHandleDrag(duct.id, PATH_POINT_DRAG_LABEL, () => {
|
|
383
|
+
swallowNextClick();
|
|
384
|
+
finish(false);
|
|
385
|
+
});
|
|
366
386
|
const isEndpoint = index === 0 || index === initialPath.length - 1;
|
|
367
387
|
// Swing pivot: the across-run (side) and up / down arrows DON'T stretch the
|
|
368
388
|
// run — they sweep the grabbed point around its neighbour at a fixed radius
|
|
@@ -452,6 +472,7 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
452
472
|
if (isEndpoint && (detached || !drag.fittingEndpoint)) {
|
|
453
473
|
const port = findNearestPortXZ([next[0], next[1], next[2]], collectScenePorts({
|
|
454
474
|
excludeNodeId: duct.id,
|
|
475
|
+
levelId: (findLevelAncestorId(duct.id, useScene.getState().nodes) ?? undefined),
|
|
455
476
|
systems: DUCT_PORT_SYSTEMS,
|
|
456
477
|
}), PORT_SNAP_RADIUS_M);
|
|
457
478
|
if (port)
|
|
@@ -471,16 +492,10 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
471
492
|
triggerSFX('sfx:grid-snap');
|
|
472
493
|
publishLivePreview(batch);
|
|
473
494
|
};
|
|
474
|
-
const
|
|
495
|
+
const finish = (commit) => {
|
|
475
496
|
const drag = dragRef.current;
|
|
476
497
|
if (!drag)
|
|
477
498
|
return;
|
|
478
|
-
// Swallow the trailing synthetic click so it doesn't reach the
|
|
479
|
-
// background-click deselect handler — `cleanup()` drops `inputDragging`
|
|
480
|
-
// synchronously here, so without this the click that fires after
|
|
481
|
-
// pointerup would land with the drag gate already down and clear the
|
|
482
|
-
// selection. Mirrors `useHandleDrag`'s onUp.
|
|
483
|
-
swallowNextClick();
|
|
484
499
|
drag.cleanup();
|
|
485
500
|
dragRef.current = null;
|
|
486
501
|
setDraggingIndex(null);
|
|
@@ -491,7 +506,7 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
491
506
|
// detached — just the duct path).
|
|
492
507
|
const detached = drag.detached;
|
|
493
508
|
const moved = drag.current.some((v, axis) => v !== drag.initialPath[drag.index][axis]);
|
|
494
|
-
const finalBatch = buildDragBatch(drag, drag.current, detached);
|
|
509
|
+
const finalBatch = commit ? buildDragBatch(drag, drag.current, detached) : null;
|
|
495
510
|
resumeSceneHistory(useScene);
|
|
496
511
|
if (moved && finalBatch) {
|
|
497
512
|
// A manual corner edit invalidates any stored auto-offset base (the
|
|
@@ -509,10 +524,23 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
509
524
|
useScene.getState().updateNodes(finalWithTagStrip);
|
|
510
525
|
}
|
|
511
526
|
};
|
|
527
|
+
const onUp = () => {
|
|
528
|
+
if (!dragRef.current)
|
|
529
|
+
return;
|
|
530
|
+
// Swallow the trailing synthetic click so it doesn't reach the
|
|
531
|
+
// background-click deselect handler — `cleanup()` drops `inputDragging`
|
|
532
|
+
// synchronously here, so without this the click that fires after
|
|
533
|
+
// pointerup would land with the drag gate already down and clear the
|
|
534
|
+
// selection. Mirrors `useHandleDrag`'s onUp.
|
|
535
|
+
swallowNextClick();
|
|
536
|
+
finish(true);
|
|
537
|
+
};
|
|
538
|
+
const onCancel = () => finish(false);
|
|
512
539
|
const cleanup = () => {
|
|
513
540
|
window.removeEventListener('pointermove', onMove);
|
|
514
541
|
window.removeEventListener('pointerup', onUp);
|
|
515
|
-
window.removeEventListener('pointercancel',
|
|
542
|
+
window.removeEventListener('pointercancel', onCancel);
|
|
543
|
+
releaseScope();
|
|
516
544
|
useViewer.getState().setInputDragging(false);
|
|
517
545
|
document.body.style.cursor = '';
|
|
518
546
|
};
|
|
@@ -530,7 +558,7 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
530
558
|
};
|
|
531
559
|
window.addEventListener('pointermove', onMove);
|
|
532
560
|
window.addEventListener('pointerup', onUp);
|
|
533
|
-
window.addEventListener('pointercancel',
|
|
561
|
+
window.addEventListener('pointercancel', onCancel);
|
|
534
562
|
};
|
|
535
563
|
// Roll: spin the rect / oval cross-section about the run (length) axis. The
|
|
536
564
|
// cursor's bearing in the plane perpendicular to the run direction (taken in
|
|
@@ -572,6 +600,10 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
572
600
|
useViewer.getState().setInputDragging(true);
|
|
573
601
|
document.body.style.cursor = 'grabbing';
|
|
574
602
|
setRolling(true);
|
|
603
|
+
const releaseScope = claimHandleDrag(duct.id, ROTATE_HANDLE_DRAG_LABEL, () => {
|
|
604
|
+
swallowNextClick();
|
|
605
|
+
finish(false);
|
|
606
|
+
});
|
|
575
607
|
let current = startRoll;
|
|
576
608
|
let lastStep = Number.NaN;
|
|
577
609
|
const onMove = (event) => {
|
|
@@ -580,15 +612,16 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
580
612
|
const b = bearing(event.clientX, event.clientY);
|
|
581
613
|
if (b === null)
|
|
582
614
|
return;
|
|
583
|
-
// Snap the roll to 45° steps only in the active angle mode.
|
|
615
|
+
// Snap the roll to 45° steps only in the active angle mode; held Alt rolls freely.
|
|
584
616
|
const raw = b - startBearing;
|
|
585
|
-
const
|
|
617
|
+
const snapped = !event.altKey && isAngleSnapActive();
|
|
618
|
+
const delta = snapped ? Math.round(raw / ROLL_STEP_RAD) * ROLL_STEP_RAD : raw;
|
|
586
619
|
const next = startRoll + delta;
|
|
587
620
|
if (next === current)
|
|
588
621
|
return;
|
|
589
622
|
current = next;
|
|
590
623
|
// Tick the rotate SFX each time a fresh snapped step is crossed.
|
|
591
|
-
if (
|
|
624
|
+
if (snapped) {
|
|
592
625
|
const step = Math.round(raw / ROLL_STEP_RAD);
|
|
593
626
|
if (step !== lastStep) {
|
|
594
627
|
lastStep = step;
|
|
@@ -598,11 +631,11 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
598
631
|
useLiveNodeOverrides.getState().set(duct.id, { roll: next });
|
|
599
632
|
useScene.getState().markDirty(duct.id);
|
|
600
633
|
};
|
|
601
|
-
const
|
|
602
|
-
swallowNextClick();
|
|
634
|
+
const finish = (commit) => {
|
|
603
635
|
window.removeEventListener('pointermove', onMove);
|
|
604
636
|
window.removeEventListener('pointerup', onUp);
|
|
605
|
-
window.removeEventListener('pointercancel',
|
|
637
|
+
window.removeEventListener('pointercancel', onCancel);
|
|
638
|
+
releaseScope();
|
|
606
639
|
useViewer.getState().setInputDragging(false);
|
|
607
640
|
clearPlacementSurface();
|
|
608
641
|
document.body.style.cursor = '';
|
|
@@ -610,16 +643,21 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
610
643
|
useLiveNodeOverrides.getState().clear(duct.id);
|
|
611
644
|
useScene.getState().markDirty(duct.id);
|
|
612
645
|
resumeSceneHistory(useScene);
|
|
613
|
-
if (current !== startRoll) {
|
|
646
|
+
if (commit && current !== startRoll) {
|
|
614
647
|
useScene.getState().updateNode(duct.id, {
|
|
615
648
|
roll: current,
|
|
616
649
|
...(readAutoOffsetTag(duct) ? { metadata: withoutAutoOffsetTag(duct.metadata) } : {}),
|
|
617
650
|
});
|
|
618
651
|
}
|
|
619
652
|
};
|
|
653
|
+
const onUp = () => {
|
|
654
|
+
swallowNextClick();
|
|
655
|
+
finish(true);
|
|
656
|
+
};
|
|
657
|
+
const onCancel = () => finish(false);
|
|
620
658
|
window.addEventListener('pointermove', onMove);
|
|
621
659
|
window.addEventListener('pointerup', onUp);
|
|
622
|
-
window.addEventListener('pointercancel',
|
|
660
|
+
window.addEventListener('pointercancel', onCancel);
|
|
623
661
|
};
|
|
624
662
|
// Move the WHOLE run, locked to one direction: the vertical world axis, or a
|
|
625
663
|
// run-relative horizontal line (node-local XZ unit dir) so the along-/across-
|
|
@@ -755,10 +793,14 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
755
793
|
useViewer.getState().setInputDragging(true);
|
|
756
794
|
document.body.style.cursor = kind.axis === 'y' ? 'ns-resize' : 'grabbing';
|
|
757
795
|
setRunMoving(true);
|
|
796
|
+
const releaseScope = claimHandleDrag(duct.id, AXIS_MOVE_DRAG_LABEL, () => {
|
|
797
|
+
swallowNextClick();
|
|
798
|
+
finish(false);
|
|
799
|
+
});
|
|
758
800
|
let delta = 0;
|
|
759
801
|
// Last frame's offset outcome (vertical move only): a valid plan to mint on
|
|
760
802
|
// release, an invalid marker (preview-only, snap back), or null for a plain
|
|
761
|
-
// translate. `
|
|
803
|
+
// translate. `finish` reads it to decide create vs. translate vs. nothing.
|
|
762
804
|
let offsetResult = null;
|
|
763
805
|
// Shift the LOGICAL L: vertical adds the carried `baseDy` plus this drag's
|
|
764
806
|
// delta (so a re-drag accumulates from the L, not the lifted Z); horizontal
|
|
@@ -774,10 +816,10 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
774
816
|
}
|
|
775
817
|
return next;
|
|
776
818
|
});
|
|
777
|
-
const batchFor = (path) =>
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
819
|
+
const batchFor = (path) => {
|
|
820
|
+
const followers = connectivityUpdatesForPath(connectivity, path);
|
|
821
|
+
return followers && [{ id: duct.id, data: { path } }, ...followers];
|
|
822
|
+
};
|
|
781
823
|
// Patches restoring every connected partner to its post-rewind (logical-L)
|
|
782
824
|
// pose — runs by path, fittings by position (+ a re-aimed elbow's rotation /
|
|
783
825
|
// angle). Used to FREEZE partners on an invalid frame.
|
|
@@ -878,30 +920,37 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
878
920
|
const s = sample(event.clientX, event.clientY);
|
|
879
921
|
if (s === null)
|
|
880
922
|
return;
|
|
881
|
-
const step = isGridSnapActive() ? useEditor.getState().gridSnapStep : 0;
|
|
923
|
+
const step = !event.altKey && isGridSnapActive() ? useEditor.getState().gridSnapStep : 0;
|
|
882
924
|
const next = snap(s - startSample, step);
|
|
883
925
|
if (next === delta)
|
|
884
926
|
return;
|
|
885
|
-
delta = next;
|
|
886
|
-
if (step > 0)
|
|
887
|
-
triggerSFX('sfx:grid-snap');
|
|
888
927
|
const dyEff = baseDy + next;
|
|
889
928
|
// Vertical move: connected ends stay welded to their (stationary)
|
|
890
929
|
// partner via an auto-routed elbow → riser → elbow offset, planned from
|
|
891
930
|
// the LOGICAL L by the accumulated lift. The planner returns valid (offset
|
|
892
931
|
// fits), invalid (connected but no clean offset at this height), or null
|
|
893
932
|
// (no connections, or dyEff 0 → back at the L → plain translate).
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
933
|
+
const result = isVertical && dyEff !== 0
|
|
934
|
+
? planVerticalOffsets({
|
|
935
|
+
duct: logicalDuct,
|
|
936
|
+
dy: dyEff,
|
|
937
|
+
profile,
|
|
938
|
+
connections: connectivity?.connections ?? [],
|
|
939
|
+
scenePorts,
|
|
940
|
+
nodesById,
|
|
941
|
+
})
|
|
942
|
+
: null;
|
|
943
|
+
const followUpdates = result?.status === 'invalid'
|
|
944
|
+
? []
|
|
945
|
+
: connectivityUpdatesForPath(connectivity, result?.status === 'valid' ? result.plan.followPath : shiftedPath(next));
|
|
946
|
+
// Joints that cannot follow hold the last shown frame, which is what
|
|
947
|
+
// release commits.
|
|
948
|
+
if (!followUpdates)
|
|
949
|
+
return;
|
|
950
|
+
delta = next;
|
|
951
|
+
offsetResult = result;
|
|
952
|
+
if (step > 0)
|
|
953
|
+
triggerSFX('sfx:grid-snap');
|
|
905
954
|
if (offsetResult?.status === 'valid') {
|
|
906
955
|
applyLogicalBasePreview();
|
|
907
956
|
// Lift the run to the offset path; trim run-offset partners back one
|
|
@@ -913,7 +962,6 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
913
962
|
const scene = useScene.getState();
|
|
914
963
|
const deletePreview = (plan.delete ?? []).filter((id) => scene.nodes[id]);
|
|
915
964
|
setPreviewHidden([...mintedIds, ...deletePreview]);
|
|
916
|
-
const followUpdates = connectivityUpdatesForPath(connectivity, plan.followPath);
|
|
917
965
|
const updates = [
|
|
918
966
|
{ id: duct.id, data: { path: plan.ductPath } },
|
|
919
967
|
...plan.updates.filter((u) => scene.nodes[u.id]),
|
|
@@ -941,15 +989,17 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
941
989
|
else {
|
|
942
990
|
applyLogicalBasePreview();
|
|
943
991
|
setVerticalGhost(null);
|
|
944
|
-
|
|
945
|
-
|
|
992
|
+
publishLivePreview([
|
|
993
|
+
{ id: duct.id, data: { path: shiftedPath(next) } },
|
|
994
|
+
...followUpdates,
|
|
995
|
+
]);
|
|
946
996
|
}
|
|
947
997
|
};
|
|
948
|
-
const
|
|
949
|
-
swallowNextClick();
|
|
998
|
+
const finish = (commit) => {
|
|
950
999
|
window.removeEventListener('pointermove', onMove);
|
|
951
1000
|
window.removeEventListener('pointerup', onUp);
|
|
952
|
-
window.removeEventListener('pointercancel',
|
|
1001
|
+
window.removeEventListener('pointercancel', onCancel);
|
|
1002
|
+
releaseScope();
|
|
953
1003
|
useViewer.getState().setInputDragging(false);
|
|
954
1004
|
document.body.style.cursor = '';
|
|
955
1005
|
setRunMoving(false);
|
|
@@ -957,7 +1007,7 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
957
1007
|
clearLivePreview();
|
|
958
1008
|
setPreviewHidden([]);
|
|
959
1009
|
resumeSceneHistory(useScene);
|
|
960
|
-
if (delta === 0)
|
|
1010
|
+
if (!commit || delta === 0)
|
|
961
1011
|
return;
|
|
962
1012
|
const dyEff = baseDy + delta;
|
|
963
1013
|
const result = offsetResult;
|
|
@@ -983,6 +1033,8 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
983
1033
|
base,
|
|
984
1034
|
};
|
|
985
1035
|
const followUpdates = connectivityUpdatesForPath(connectivity, plan.followPath);
|
|
1036
|
+
if (!followUpdates)
|
|
1037
|
+
return;
|
|
986
1038
|
const updates = [
|
|
987
1039
|
{
|
|
988
1040
|
id: duct.id,
|
|
@@ -1068,6 +1120,8 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
1068
1120
|
return;
|
|
1069
1121
|
}
|
|
1070
1122
|
const updates = batchFor(finalPath);
|
|
1123
|
+
if (!updates)
|
|
1124
|
+
return;
|
|
1071
1125
|
if (isVertical && existingTag) {
|
|
1072
1126
|
updates[0] = {
|
|
1073
1127
|
...updates[0],
|
|
@@ -1095,9 +1149,14 @@ const DuctPointHandles = ({ duct, target }) => {
|
|
|
1095
1149
|
ensureSceneObjectsVisible(updates.map((update) => update.id));
|
|
1096
1150
|
}
|
|
1097
1151
|
};
|
|
1152
|
+
const onUp = () => {
|
|
1153
|
+
swallowNextClick();
|
|
1154
|
+
finish(true);
|
|
1155
|
+
};
|
|
1156
|
+
const onCancel = () => finish(false);
|
|
1098
1157
|
window.addEventListener('pointermove', onMove);
|
|
1099
1158
|
window.addEventListener('pointerup', onUp);
|
|
1100
|
-
window.addEventListener('pointercancel',
|
|
1159
|
+
window.addEventListener('pointercancel', onCancel);
|
|
1101
1160
|
};
|
|
1102
1161
|
const cornerArrows = useMemo(() => getCornerArrows(displayDuct), [displayDuct]);
|
|
1103
1162
|
const rollGizmo = useMemo(() => (displayDuct.shape === 'round' ? null : runAxisAndCenter(displayDuct)), [displayDuct]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/duct-segment/tool.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/duct-segment/tool.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAA;AAQpG,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAGf,MAAM,iCAAiC,CAAA;AAgKxC,qEAAqE;AACrE,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,UAAQ,GAAG,MAAM,CAUjF;AAgDD;;;;;6BAK6B;AAC7B,KAAK,YAAY,GAAG;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,EAAE,CAAA;IACxD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;CACxB,CAAA;AA4CD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,OAAO,EAAE,SAAS,GAAG,IAAI,EACzB,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,EACjC,WAAW,UAAQ,EACnB,YAAY,GAAE,OAAO,CAAC,eAAe,CAAM,EAC3C,WAAW,GAAE,QAAQ,GAAG,QAAmB,GAC1C,YAAY,GAAG,IAAI,CAsNrB;AAED,QAAA,MAAM,eAAe,0CA6VpB,CAAA;eAEc,eAAe"}
|