@pascal-app/nodes 1.0.4 → 1.0.5
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 -0
- package/dist/agent-operations/index.d.ts +12 -0
- package/dist/agent-operations/index.d.ts.map +1 -0
- package/dist/agent-operations/index.js +6 -0
- package/dist/agent-tools/index.d.ts +50 -0
- package/dist/agent-tools/index.d.ts.map +1 -0
- package/dist/agent-tools/index.js +21 -0
- package/dist/block/commands.d.ts +2 -2
- package/dist/block/contextual-help.js +1 -1
- package/dist/block/definition.d.ts +1 -1
- package/dist/block/definition.js +13 -13
- package/dist/block/edit-session.d.ts +2 -2
- package/dist/block/edit-session.d.ts.map +1 -1
- package/dist/block/edit-session.js +1 -1
- package/dist/block/face-host.js +1 -1
- package/dist/block/geometry-snap.d.ts +2 -2
- package/dist/block/geometry-snap.js +2 -2
- package/dist/block/gesture-wheel.d.ts.map +1 -1
- package/dist/block/hosted-edit.d.ts +1 -1
- package/dist/block/hosted-edit.js +3 -3
- package/dist/block/interaction-sfx.d.ts +1 -1
- package/dist/block/last-operation.d.ts +1 -1
- package/dist/block/last-operation.js +2 -2
- package/dist/block/modal-face-operation.d.ts +2 -2
- package/dist/block/modal-face-operation.js +1 -1
- package/dist/block/paint.js +2 -2
- package/dist/block/panel.js +8 -8
- package/dist/block/parametrics.d.ts +1 -1
- package/dist/block/parametrics.js +1 -1
- package/dist/block/preview.js +1 -1
- package/dist/block/selection-geometry.d.ts +1 -1
- package/dist/block/selection-geometry.js +1 -1
- package/dist/block/selection.d.ts.map +1 -1
- package/dist/block/selection.js +19 -19
- package/dist/block/tool.d.ts.map +1 -1
- package/dist/block/tool.js +3 -3
- package/dist/block/use-block-face-operation.d.ts +4 -4
- package/dist/block/use-block-face-operation.js +6 -6
- package/dist/box-vent/definition.d.ts +1 -1
- package/dist/box-vent/definition.d.ts.map +1 -1
- package/dist/box-vent/definition.js +9 -8
- package/dist/box-vent/geometry.d.ts.map +1 -1
- package/dist/box-vent/geometry.js +2 -2
- package/dist/box-vent/index.d.ts +3 -3
- package/dist/box-vent/index.js +3 -3
- package/dist/box-vent/move-tool.js +4 -4
- package/dist/box-vent/paint.js +2 -2
- package/dist/box-vent/panel.js +2 -2
- package/dist/box-vent/parametrics.d.ts +1 -1
- package/dist/box-vent/parametrics.js +1 -1
- package/dist/box-vent/preview.d.ts +1 -1
- package/dist/box-vent/preview.d.ts.map +1 -1
- package/dist/box-vent/preview.js +2 -2
- package/dist/box-vent/renderer.d.ts.map +1 -1
- package/dist/box-vent/renderer.js +3 -3
- package/dist/box-vent/tool.d.ts.map +1 -1
- package/dist/box-vent/tool.js +7 -7
- package/dist/building/definition.d.ts +1 -1
- package/dist/building/definition.d.ts.map +1 -1
- package/dist/building/definition.js +5 -4
- package/dist/building/index.d.ts +1 -1
- package/dist/building/index.js +1 -1
- package/dist/building/move-tool.d.ts.map +1 -1
- package/dist/building/move-tool.js +2 -3
- package/dist/building/renderer.d.ts.map +1 -1
- package/dist/cabinet/__bench__/geometry.d.ts +2 -0
- package/dist/cabinet/__bench__/geometry.d.ts.map +1 -0
- package/dist/cabinet/__bench__/geometry.js +21 -0
- package/dist/cabinet/appliance-layout.d.ts +1 -1
- package/dist/cabinet/appliance-layout.d.ts.map +1 -1
- package/dist/cabinet/compartment-card.d.ts +1 -1
- package/dist/cabinet/compartment-card.js +12 -12
- package/dist/cabinet/continuous-placement.d.ts +1 -1
- package/dist/cabinet/continuous-placement.js +2 -2
- package/dist/cabinet/countertop-layout.d.ts +65 -65
- package/dist/cabinet/countertop-layout.js +3 -3
- package/dist/cabinet/definition.d.ts +1 -1
- package/dist/cabinet/definition.d.ts.map +1 -1
- package/dist/cabinet/definition.js +33 -28
- package/dist/cabinet/essential-controls.d.ts +7 -0
- package/dist/cabinet/essential-controls.d.ts.map +1 -0
- package/dist/cabinet/essential-controls.js +47 -0
- package/dist/cabinet/finish-operation.d.ts +9 -0
- package/dist/cabinet/finish-operation.d.ts.map +1 -0
- package/dist/cabinet/finish-operation.js +86 -0
- package/dist/cabinet/floorplan-move.js +3 -3
- package/dist/cabinet/floorplan.js +5 -5
- package/dist/cabinet/geometry/cooktop.d.ts +2 -2
- package/dist/cabinet/geometry/cooktop.d.ts.map +1 -1
- package/dist/cabinet/geometry/cooktop.js +55 -18
- package/dist/cabinet/geometry/dishwasher.d.ts +1 -1
- package/dist/cabinet/geometry/dishwasher.d.ts.map +1 -1
- package/dist/cabinet/geometry/dishwasher.js +5 -6
- package/dist/cabinet/geometry/fridge.d.ts +2 -2
- package/dist/cabinet/geometry/fridge.d.ts.map +1 -1
- package/dist/cabinet/geometry/fridge.js +49 -8
- package/dist/cabinet/geometry/fronts.d.ts +1 -1
- package/dist/cabinet/geometry/fronts.d.ts.map +1 -1
- package/dist/cabinet/geometry/fronts.js +22 -8
- package/dist/cabinet/geometry/hood.d.ts +2 -2
- package/dist/cabinet/geometry/hood.d.ts.map +1 -1
- package/dist/cabinet/geometry/hood.js +15 -3
- package/dist/cabinet/geometry/oven-microwave.d.ts +1 -1
- package/dist/cabinet/geometry/oven-microwave.d.ts.map +1 -1
- package/dist/cabinet/geometry/oven-microwave.js +46 -21
- package/dist/cabinet/geometry/pantry.d.ts +2 -2
- package/dist/cabinet/geometry/pantry.d.ts.map +1 -1
- package/dist/cabinet/geometry/pantry.js +11 -9
- package/dist/cabinet/geometry/run.d.ts.map +1 -1
- package/dist/cabinet/geometry/run.js +18 -8
- package/dist/cabinet/geometry/shared.d.ts +4 -2
- package/dist/cabinet/geometry/shared.d.ts.map +1 -1
- package/dist/cabinet/geometry/shared.js +77 -17
- package/dist/cabinet/geometry/sink.d.ts +2 -2
- package/dist/cabinet/geometry/sink.d.ts.map +1 -1
- package/dist/cabinet/geometry/sink.js +30 -12
- package/dist/cabinet/geometry.d.ts +1 -1
- package/dist/cabinet/geometry.d.ts.map +1 -1
- package/dist/cabinet/geometry.js +15 -11
- package/dist/cabinet/hosted-resize.d.ts +2 -2
- package/dist/cabinet/hosted-resize.d.ts.map +1 -1
- package/dist/cabinet/hosted-resize.js +3 -1
- package/dist/cabinet/index.d.ts +9 -5
- package/dist/cabinet/index.d.ts.map +1 -1
- package/dist/cabinet/index.js +9 -5
- package/dist/cabinet/insertion.d.ts.map +1 -1
- package/dist/cabinet/insertion.js +3 -1
- package/dist/cabinet/interaction.js +1 -1
- package/dist/cabinet/kitchen-catalog.d.ts +14 -0
- package/dist/cabinet/kitchen-catalog.d.ts.map +1 -0
- package/dist/cabinet/kitchen-catalog.js +62 -0
- package/dist/cabinet/kitchen-collection.d.ts +11 -0
- package/dist/cabinet/kitchen-collection.d.ts.map +1 -0
- package/dist/cabinet/kitchen-collection.js +19 -0
- package/dist/cabinet/kitchen-module-actions.d.ts +8 -0
- package/dist/cabinet/kitchen-module-actions.d.ts.map +1 -0
- package/dist/cabinet/kitchen-module-actions.js +117 -0
- package/dist/cabinet/kitchen-placement.d.ts +3 -0
- package/dist/cabinet/kitchen-placement.d.ts.map +1 -0
- package/dist/cabinet/kitchen-placement.js +16 -0
- package/dist/cabinet/move-frame.js +4 -4
- package/dist/cabinet/neighbor-placement.d.ts +335 -0
- package/dist/cabinet/neighbor-placement.d.ts.map +1 -0
- package/dist/cabinet/neighbor-placement.js +48 -0
- package/dist/cabinet/opening-clearance.d.ts +22 -0
- package/dist/cabinet/opening-clearance.d.ts.map +1 -0
- package/dist/cabinet/opening-clearance.js +158 -0
- package/dist/cabinet/paint.js +1 -1
- package/dist/cabinet/panel-visibility.js +2 -2
- package/dist/cabinet/panel.d.ts.map +1 -1
- package/dist/cabinet/panel.js +86 -77
- package/dist/cabinet/parametrics.js +3 -3
- package/dist/cabinet/placement-dimensions.js +2 -2
- package/dist/cabinet/placement-notice.d.ts +6 -0
- package/dist/cabinet/placement-notice.d.ts.map +1 -0
- package/dist/cabinet/placement-notice.js +34 -0
- package/dist/cabinet/placement-status.d.ts +2 -0
- package/dist/cabinet/placement-status.d.ts.map +1 -1
- package/dist/cabinet/placement-status.js +3 -1
- package/dist/cabinet/placement-type.d.ts.map +1 -1
- package/dist/cabinet/preset-width-debt.js +2 -2
- package/dist/cabinet/presets.d.ts +3 -1
- package/dist/cabinet/presets.d.ts.map +1 -1
- package/dist/cabinet/presets.js +27 -8
- package/dist/cabinet/quick-action-icons.js +1 -1
- package/dist/cabinet/quick-actions.js +7 -7
- package/dist/cabinet/resize-limits.d.ts.map +1 -1
- package/dist/cabinet/reveals.d.ts +16 -16
- package/dist/cabinet/reveals.d.ts.map +1 -1
- package/dist/cabinet/run-finishing.d.ts +168 -0
- package/dist/cabinet/run-finishing.d.ts.map +1 -0
- package/dist/cabinet/run-finishing.js +100 -0
- package/dist/cabinet/run-layout.d.ts.map +1 -1
- package/dist/cabinet/run-layout.js +20 -3
- package/dist/cabinet/run-ops.d.ts +62 -62
- package/dist/cabinet/run-ops.js +6 -6
- package/dist/cabinet/run-panel.d.ts +11 -0
- package/dist/cabinet/run-panel.d.ts.map +1 -1
- package/dist/cabinet/run-panel.js +43 -17
- package/dist/cabinet/scene-action.js +1 -1
- package/dist/cabinet/stack-transitions.d.ts +1 -1
- package/dist/cabinet/stack-transitions.js +2 -2
- package/dist/cabinet/stack.d.ts +60 -60
- package/dist/cabinet/stack.d.ts.map +1 -1
- package/dist/cabinet/stack.js +1 -1
- package/dist/cabinet/surfaces.js +3 -3
- package/dist/cabinet/system.d.ts.map +1 -1
- package/dist/cabinet/system.js +4 -4
- package/dist/cabinet/tool.d.ts +1 -2
- package/dist/cabinet/tool.d.ts.map +1 -1
- package/dist/cabinet/tool.js +212 -87
- package/dist/cabinet/validation.js +3 -3
- package/dist/cabinet/wall-snap.d.ts +1 -1
- package/dist/cabinet/wall-snap.js +2 -2
- package/dist/ceiling/boundary-editor.d.ts.map +1 -1
- package/dist/ceiling/definition.d.ts +1 -1
- package/dist/ceiling/definition.d.ts.map +1 -1
- package/dist/ceiling/definition.js +18 -16
- package/dist/ceiling/floorplan-affordances.d.ts +80 -80
- package/dist/ceiling/floorplan-affordances.js +1 -1
- package/dist/ceiling/floorplan-move.js +1 -1
- package/dist/ceiling/hole-editor.d.ts.map +1 -1
- package/dist/ceiling/index.d.ts +2 -2
- package/dist/ceiling/index.js +2 -2
- package/dist/ceiling/materials.d.ts +7 -3
- package/dist/ceiling/materials.d.ts.map +1 -1
- package/dist/ceiling/materials.js +45 -18
- package/dist/ceiling/move-tool.d.ts.map +1 -1
- package/dist/ceiling/paint.d.ts.map +1 -1
- package/dist/ceiling/paint.js +12 -21
- package/dist/ceiling/panel.d.ts.map +1 -1
- package/dist/ceiling/panel.js +5 -5
- package/dist/ceiling/parametrics.d.ts +1 -1
- package/dist/ceiling/parametrics.js +1 -1
- package/dist/ceiling/renderer.d.ts.map +1 -1
- package/dist/ceiling/renderer.js +26 -27
- package/dist/ceiling/system.d.ts.map +1 -1
- package/dist/ceiling/tool.d.ts.map +1 -1
- package/dist/ceiling/tool.js +1 -1
- package/dist/chimney/definition.d.ts +1 -1
- package/dist/chimney/definition.d.ts.map +1 -1
- package/dist/chimney/definition.js +9 -8
- package/dist/chimney/floorplan.js +1 -1
- package/dist/chimney/holes.js +1 -1
- package/dist/chimney/index.d.ts +3 -3
- package/dist/chimney/index.js +3 -3
- package/dist/chimney/move-tool.d.ts.map +1 -1
- package/dist/chimney/move-tool.js +3 -3
- package/dist/chimney/paint.js +1 -1
- package/dist/chimney/panel.js +4 -4
- package/dist/chimney/parametrics.d.ts +1 -1
- package/dist/chimney/parametrics.js +1 -1
- package/dist/chimney/presets.d.ts +1 -1
- package/dist/chimney/preview.d.ts.map +1 -1
- package/dist/chimney/preview.js +2 -2
- package/dist/chimney/renderer.d.ts.map +1 -1
- package/dist/chimney/renderer.js +4 -4
- package/dist/chimney/roof-trim.js +2 -2
- package/dist/chimney/tool.d.ts.map +1 -1
- package/dist/chimney/tool.js +6 -6
- package/dist/column/definition.d.ts +1 -1
- package/dist/column/definition.d.ts.map +1 -1
- package/dist/column/definition.js +17 -15
- package/dist/column/floorplan-affordances.js +3 -3
- package/dist/column/floorplan-move.js +2 -2
- package/dist/column/floorplan.js +1 -1
- package/dist/column/hosted-resize.d.ts +119 -113
- package/dist/column/hosted-resize.d.ts.map +1 -1
- package/dist/column/hosted-resize.js +1 -1
- package/dist/column/index.d.ts +1 -1
- package/dist/column/index.js +1 -1
- package/dist/column/paint.js +1 -1
- package/dist/column/panel.d.ts.map +1 -1
- package/dist/column/panel.js +9 -7
- package/dist/column/parametrics.d.ts +1 -1
- package/dist/column/parametrics.js +2 -2
- package/dist/column/renderer.d.ts.map +1 -1
- package/dist/column/renderer.js +3 -3
- package/dist/column/surface.js +1 -1
- package/dist/column/tool.d.ts.map +1 -1
- package/dist/column/tool.js +3 -3
- package/dist/construction-dimension/definition.d.ts +1 -1
- package/dist/construction-dimension/definition.js +6 -6
- package/dist/construction-dimension/floorplan-affordances.js +1 -1
- package/dist/construction-dimension/floorplan-tool.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan-tool.js +1 -1
- package/dist/construction-dimension/floorplan.js +4 -4
- package/dist/construction-dimension/index.d.ts +3 -3
- package/dist/construction-dimension/index.js +3 -3
- package/dist/construction-dimension/panel.js +1 -1
- package/dist/construction-dimension/parametrics.js +1 -1
- package/dist/cupola/definition.d.ts +1 -1
- package/dist/cupola/definition.d.ts.map +1 -1
- package/dist/cupola/definition.js +9 -8
- package/dist/cupola/geometry.d.ts.map +1 -1
- package/dist/cupola/geometry.js +1 -1
- package/dist/cupola/index.d.ts +3 -3
- package/dist/cupola/index.js +3 -3
- package/dist/cupola/move-tool.js +4 -4
- package/dist/cupola/paint.js +2 -2
- package/dist/cupola/panel.js +1 -1
- package/dist/cupola/parametrics.d.ts +1 -1
- package/dist/cupola/parametrics.js +1 -1
- package/dist/cupola/preview.d.ts +1 -1
- package/dist/cupola/preview.d.ts.map +1 -1
- package/dist/cupola/preview.js +2 -2
- package/dist/cupola/renderer.d.ts.map +1 -1
- package/dist/cupola/renderer.js +3 -3
- package/dist/cupola/tool.d.ts.map +1 -1
- package/dist/cupola/tool.js +7 -7
- package/dist/door/contextual-dimensions.js +1 -1
- package/dist/door/definition.d.ts +1 -1
- package/dist/door/definition.d.ts.map +1 -1
- package/dist/door/definition.js +30 -26
- package/dist/door/door-math.d.ts +1 -1
- package/dist/door/door-math.js +1 -1
- package/dist/door/floorplan-affordances.js +2 -2
- package/dist/door/floorplan-move.js +5 -5
- package/dist/door/floorplan.js +3 -3
- package/dist/door/index.d.ts +2 -2
- package/dist/door/index.js +2 -2
- package/dist/door/mechanism.js +1 -1
- package/dist/door/move-tool.d.ts.map +1 -1
- package/dist/door/move-tool.js +11 -11
- package/dist/door/paint.js +1 -1
- package/dist/door/panel.d.ts.map +1 -1
- package/dist/door/panel.js +12 -12
- package/dist/door/parametrics.d.ts +1 -1
- package/dist/door/parametrics.js +1 -1
- package/dist/door/preview.d.ts +1 -1
- package/dist/door/preview.d.ts.map +1 -1
- package/dist/door/preview.js +1 -1
- package/dist/door/renderer.d.ts.map +1 -1
- package/dist/door/renderer.js +2 -2
- package/dist/door/system.d.ts.map +1 -1
- package/dist/door/system.js +1 -1
- package/dist/door/tool.d.ts.map +1 -1
- package/dist/door/tool.js +8 -8
- package/dist/dormer/csg-geometry.js +1 -1
- package/dist/dormer/definition.d.ts +1 -1
- package/dist/dormer/definition.d.ts.map +1 -1
- package/dist/dormer/definition.js +10 -9
- package/dist/dormer/index.d.ts +4 -4
- package/dist/dormer/index.js +3 -3
- package/dist/dormer/move-tool.d.ts.map +1 -1
- package/dist/dormer/move-tool.js +3 -3
- package/dist/dormer/paint.js +1 -1
- package/dist/dormer/panel-actions-section.js +1 -1
- package/dist/dormer/panel-windows-section.js +1 -1
- package/dist/dormer/panel.js +8 -8
- package/dist/dormer/parametrics.d.ts +1 -1
- package/dist/dormer/parametrics.js +1 -1
- package/dist/dormer/placement-guides.js +3 -3
- package/dist/dormer/preview.d.ts +1 -1
- package/dist/dormer/preview.d.ts.map +1 -1
- package/dist/dormer/preview.js +2 -2
- package/dist/dormer/renderer.d.ts +1 -1
- package/dist/dormer/renderer.d.ts.map +1 -1
- package/dist/dormer/renderer.js +2 -2
- package/dist/dormer/tool.d.ts.map +1 -1
- package/dist/dormer/tool.js +6 -6
- package/dist/dormer/use-dormer-placement.js +3 -3
- package/dist/downspout/definition.d.ts +1 -1
- package/dist/downspout/definition.d.ts.map +1 -1
- package/dist/downspout/definition.js +9 -8
- package/dist/downspout/geometry.d.ts +1 -1
- package/dist/downspout/geometry.js +2 -2
- package/dist/downspout/index.d.ts +3 -3
- package/dist/downspout/index.js +3 -3
- package/dist/downspout/parametrics.d.ts +1 -1
- package/dist/downspout/parametrics.js +1 -1
- package/dist/downspout/preview.d.ts +2 -2
- package/dist/downspout/preview.d.ts.map +1 -1
- package/dist/downspout/preview.js +3 -3
- package/dist/downspout/renderer.d.ts.map +1 -1
- package/dist/downspout/renderer.js +5 -5
- package/dist/downspout/routing.d.ts +2 -2
- package/dist/downspout/routing.d.ts.map +1 -1
- package/dist/downspout/routing.js +5 -4
- package/dist/downspout/system.d.ts.map +1 -1
- package/dist/downspout/tool.d.ts.map +1 -1
- package/dist/downspout/tool.js +7 -7
- package/dist/duct-fitting/accessory-geometry.js +1 -1
- package/dist/duct-fitting/definition.d.ts +1 -1
- package/dist/duct-fitting/definition.js +11 -11
- package/dist/duct-fitting/floorplan.d.ts +1 -1
- package/dist/duct-fitting/floorplan.js +5 -5
- package/dist/duct-fitting/geometry.d.ts +1 -1
- package/dist/duct-fitting/geometry.js +3 -3
- package/dist/duct-fitting/index.d.ts +4 -4
- package/dist/duct-fitting/index.js +4 -4
- package/dist/duct-fitting/inspector-editors.d.ts +1 -1
- package/dist/duct-fitting/move-tool.d.ts.map +1 -1
- package/dist/duct-fitting/move-tool.js +4 -4
- package/dist/duct-fitting/parametrics.d.ts +1 -1
- package/dist/duct-fitting/parametrics.js +3 -3
- package/dist/duct-fitting/ports.d.ts +1 -1
- package/dist/duct-fitting/selection.d.ts.map +1 -1
- package/dist/duct-fitting/selection.js +8 -9
- package/dist/duct-fitting/tool.d.ts +1 -1
- package/dist/duct-fitting/tool.d.ts.map +1 -1
- package/dist/duct-fitting/tool.js +14 -15
- package/dist/duct-segment/continuation.d.ts +3 -3
- package/dist/duct-segment/continuation.d.ts.map +1 -1
- package/dist/duct-segment/continuation.js +2 -2
- package/dist/duct-segment/definition.d.ts +1 -1
- package/dist/duct-segment/definition.js +13 -13
- package/dist/duct-segment/floorplan.d.ts +1 -1
- package/dist/duct-segment/floorplan.js +3 -3
- package/dist/duct-segment/geometry.d.ts +1 -1
- package/dist/duct-segment/geometry.js +1 -1
- package/dist/duct-segment/index.d.ts +3 -3
- package/dist/duct-segment/index.js +3 -3
- package/dist/duct-segment/move-tool.d.ts.map +1 -1
- package/dist/duct-segment/move-tool.js +8 -7
- package/dist/duct-segment/parametrics.d.ts +1 -1
- package/dist/duct-segment/parametrics.js +5 -5
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +13 -12
- package/dist/duct-segment/tool.d.ts +1 -2
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +22 -18
- package/dist/duct-terminal/definition.d.ts +1 -1
- package/dist/duct-terminal/definition.js +6 -6
- package/dist/duct-terminal/floorplan.d.ts +1 -1
- package/dist/duct-terminal/floorplan.js +1 -1
- package/dist/duct-terminal/geometry.d.ts +1 -1
- package/dist/duct-terminal/geometry.js +2 -2
- package/dist/duct-terminal/index.d.ts +4 -4
- package/dist/duct-terminal/index.js +4 -4
- package/dist/duct-terminal/parametrics.d.ts +1 -1
- package/dist/duct-terminal/ports.d.ts +1 -1
- 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 -12
- package/dist/elevator/definition.d.ts +1 -1
- package/dist/elevator/definition.js +7 -7
- package/dist/elevator/floorplan-affordances.js +1 -1
- package/dist/elevator/index.d.ts +1 -1
- package/dist/elevator/index.js +1 -1
- package/dist/elevator/paint.js +1 -1
- package/dist/elevator/panel.js +9 -9
- package/dist/elevator/parametrics.js +1 -1
- package/dist/elevator/renderer.d.ts.map +1 -1
- package/dist/elevator/renderer.js +1 -1
- package/dist/elevator/system.js +1 -1
- package/dist/eyebrow-vent/definition.d.ts +1 -1
- package/dist/eyebrow-vent/definition.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.js +9 -8
- package/dist/eyebrow-vent/geometry.d.ts.map +1 -1
- package/dist/eyebrow-vent/geometry.js +1 -1
- package/dist/eyebrow-vent/index.d.ts +3 -3
- package/dist/eyebrow-vent/index.js +3 -3
- package/dist/eyebrow-vent/move-tool.js +4 -4
- package/dist/eyebrow-vent/paint.js +3 -3
- package/dist/eyebrow-vent/panel.js +1 -1
- package/dist/eyebrow-vent/parametrics.d.ts +1 -1
- package/dist/eyebrow-vent/parametrics.js +1 -1
- package/dist/eyebrow-vent/preview.d.ts +1 -1
- package/dist/eyebrow-vent/preview.d.ts.map +1 -1
- package/dist/eyebrow-vent/preview.js +2 -2
- package/dist/eyebrow-vent/renderer.d.ts.map +1 -1
- package/dist/eyebrow-vent/renderer.js +3 -3
- package/dist/eyebrow-vent/tool.d.ts.map +1 -1
- package/dist/eyebrow-vent/tool.js +7 -7
- package/dist/fence/actions/move-endpoint.d.ts +1 -1
- package/dist/fence/actions/move-endpoint.js +1 -1
- package/dist/fence/curve-tool.d.ts.map +1 -1
- package/dist/fence/definition.d.ts +1 -1
- package/dist/fence/definition.d.ts.map +1 -1
- package/dist/fence/definition.js +32 -17
- package/dist/fence/drafting.d.ts +7 -1
- package/dist/fence/drafting.d.ts.map +1 -1
- package/dist/fence/drafting.js +63 -4
- package/dist/fence/feature-tool.js +1 -1
- package/dist/fence/floorplan-affordances.js +1 -1
- package/dist/fence/floorplan.js +1 -1
- package/dist/fence/geometry.d.ts.map +1 -1
- package/dist/fence/geometry.js +3 -3
- package/dist/fence/index.d.ts +3 -3
- package/dist/fence/index.js +3 -3
- package/dist/fence/inspector-editors.js +1 -1
- package/dist/fence/lift.d.ts +3 -3
- package/dist/fence/lift.d.ts.map +1 -1
- package/dist/fence/lift.js +12 -3
- package/dist/fence/move-control-point-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.d.ts.map +1 -1
- package/dist/fence/move-endpoint-tool.js +4 -4
- package/dist/fence/move-tangent-tool.d.ts.map +1 -1
- package/dist/fence/move-tool.d.ts.map +1 -1
- package/dist/fence/move-tool.js +1 -1
- package/dist/fence/paint.js +1 -1
- package/dist/fence/panel-model.js +1 -1
- package/dist/fence/parametrics.d.ts +1 -1
- package/dist/fence/parametrics.js +1 -1
- package/dist/fence/system.d.ts.map +1 -1
- package/dist/fence/system.js +1 -1
- package/dist/fence/tool.d.ts.map +1 -1
- package/dist/fence/tool.js +90 -16
- package/dist/fence-feature/actions.js +1 -1
- package/dist/fence-feature/definition.d.ts.map +1 -1
- package/dist/fence-feature/definition.js +14 -10
- package/dist/fence-feature/geometry.js +2 -2
- package/dist/fence-feature/handles.js +2 -2
- package/dist/fence-feature/inspector.js +3 -3
- package/dist/fence-feature/move-session.d.ts +2 -2
- package/dist/fence-feature/move-session.js +1 -1
- package/dist/fence-feature/move-tool.js +1 -1
- package/dist/floor-opening/definition.js +1 -1
- package/dist/floor-opening/floorplan.d.ts +52 -52
- package/dist/floor-opening/floorplan.js +1 -1
- package/dist/guide/definition.d.ts +1 -1
- package/dist/guide/definition.js +4 -4
- package/dist/guide/index.d.ts +1 -1
- package/dist/guide/index.js +1 -1
- package/dist/guide/renderer.d.ts.map +1 -1
- package/dist/guide/system.d.ts.map +1 -1
- package/dist/gutter/definition.d.ts +1 -1
- package/dist/gutter/definition.d.ts.map +1 -1
- package/dist/gutter/definition.js +10 -9
- package/dist/gutter/downspouts-panel.js +3 -3
- package/dist/gutter/eave-align.js +2 -2
- package/dist/gutter/eave-snap.d.ts.map +1 -1
- package/dist/gutter/eave-snap.js +2 -2
- package/dist/gutter/floorplan.d.ts.map +1 -1
- package/dist/gutter/floorplan.js +5 -4
- package/dist/gutter/geometry.d.ts +1 -1
- package/dist/gutter/geometry.js +3 -3
- package/dist/gutter/index.d.ts +3 -3
- package/dist/gutter/index.js +3 -3
- package/dist/gutter/move-tool.js +4 -4
- package/dist/gutter/outlet-lookup.d.ts +1 -1
- package/dist/gutter/outlet-lookup.js +1 -1
- package/dist/gutter/paint.js +1 -1
- package/dist/gutter/parametrics.d.ts +1 -1
- package/dist/gutter/parametrics.js +1 -1
- package/dist/gutter/preview.d.ts +1 -1
- package/dist/gutter/preview.d.ts.map +1 -1
- package/dist/gutter/preview.js +3 -3
- package/dist/gutter/renderer.d.ts.map +1 -1
- package/dist/gutter/renderer.js +6 -6
- package/dist/gutter/tool.d.ts.map +1 -1
- package/dist/gutter/tool.js +7 -7
- package/dist/hvac-equipment/definition.d.ts +1 -1
- package/dist/hvac-equipment/definition.js +6 -6
- package/dist/hvac-equipment/floorplan.d.ts +1 -1
- package/dist/hvac-equipment/floorplan.js +2 -2
- package/dist/hvac-equipment/geometry.d.ts +1 -1
- package/dist/hvac-equipment/geometry.js +2 -2
- package/dist/hvac-equipment/index.d.ts +4 -4
- package/dist/hvac-equipment/index.js +4 -4
- package/dist/hvac-equipment/parametrics.d.ts +1 -1
- package/dist/hvac-equipment/ports.d.ts +1 -1
- package/dist/hvac-equipment/ports.js +1 -1
- package/dist/hvac-equipment/tool.d.ts.map +1 -1
- package/dist/hvac-equipment/tool.js +7 -8
- package/dist/imported-mesh/definition.d.ts +1 -1
- package/dist/imported-mesh/definition.js +4 -4
- package/dist/imported-mesh/index.d.ts +3 -3
- package/dist/imported-mesh/index.js +3 -3
- package/dist/index.d.ts +65 -61
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +118 -114
- package/dist/item/authored-params.js +1 -1
- package/dist/item/definition.d.ts +1 -1
- package/dist/item/definition.d.ts.map +1 -1
- package/dist/item/definition.js +18 -16
- package/dist/item/floorplan-move.js +4 -4
- package/dist/item/floorplan.d.ts +1 -1
- package/dist/item/floorplan.js +2 -2
- package/dist/item/index.d.ts +3 -3
- package/dist/item/index.js +3 -3
- package/dist/item/model-loader.d.ts +5 -0
- package/dist/item/model-loader.d.ts.map +1 -1
- package/dist/item/model-loader.js +49 -0
- package/dist/item/move-tool.d.ts.map +1 -1
- package/dist/item/paint.js +1 -1
- package/dist/item/panel.js +7 -7
- package/dist/item/parametrics.d.ts +1 -1
- package/dist/item/parametrics.js +1 -1
- package/dist/item/renderer.d.ts.map +1 -1
- package/dist/item/renderer.js +16 -12
- package/dist/item/system.d.ts.map +1 -1
- package/dist/item/system.js +7 -2
- package/dist/item/tool.d.ts.map +1 -1
- package/dist/item/tool.js +3 -3
- package/dist/item/wall-object-observations.d.ts +6 -0
- package/dist/item/wall-object-observations.d.ts.map +1 -0
- package/dist/item/wall-object-observations.js +260 -0
- package/dist/lean-to-extension/assembly.d.ts +2 -2
- package/dist/lean-to-extension/assembly.js +8 -8
- package/dist/lean-to-extension/canopy-joint.d.ts +1 -1
- package/dist/lean-to-extension/canopy-joint.js +1 -1
- package/dist/lean-to-extension/corner-joint.js +4 -4
- package/dist/lean-to-extension/definition.d.ts +1 -1
- package/dist/lean-to-extension/definition.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.js +17 -16
- package/dist/lean-to-extension/floorplan-affordances.js +4 -4
- package/dist/lean-to-extension/floorplan-move.js +4 -4
- package/dist/lean-to-extension/floorplan-tool.d.ts.map +1 -1
- package/dist/lean-to-extension/floorplan-tool.js +7 -7
- package/dist/lean-to-extension/floorplan.js +5 -5
- package/dist/lean-to-extension/geometry.js +4 -4
- package/dist/lean-to-extension/index.d.ts +7 -7
- package/dist/lean-to-extension/index.js +7 -7
- package/dist/lean-to-extension/layout.d.ts +1 -1
- package/dist/lean-to-extension/layout.js +4 -4
- package/dist/lean-to-extension/managed-preview.js +4 -4
- package/dist/lean-to-extension/move-tool.d.ts.map +1 -1
- package/dist/lean-to-extension/move-tool.js +5 -5
- package/dist/lean-to-extension/paint.js +1 -1
- package/dist/lean-to-extension/parametrics.js +1 -1
- package/dist/lean-to-extension/placement-validation.d.ts.map +1 -1
- package/dist/lean-to-extension/placement-validation.js +5 -5
- package/dist/lean-to-extension/placement.d.ts +1 -1
- package/dist/lean-to-extension/placement.js +6 -6
- package/dist/lean-to-extension/plan-footprint.js +2 -2
- package/dist/lean-to-extension/preview-geometry.js +1 -1
- package/dist/lean-to-extension/preview.d.ts.map +1 -1
- package/dist/lean-to-extension/preview.js +1 -1
- package/dist/lean-to-extension/renderer.d.ts.map +1 -1
- package/dist/lean-to-extension/renderer.js +1 -1
- package/dist/lean-to-extension/roof-attachment.d.ts.map +1 -1
- package/dist/lean-to-extension/roof-attachment.js +4 -4
- package/dist/lean-to-extension/system.d.ts.map +1 -1
- package/dist/lean-to-extension/system.js +10 -10
- package/dist/lean-to-extension/tool.d.ts.map +1 -1
- package/dist/lean-to-extension/tool.js +11 -11
- package/dist/level/definition.d.ts +1 -1
- package/dist/level/definition.d.ts.map +1 -1
- package/dist/level/definition.js +5 -4
- package/dist/level/index.d.ts +1 -1
- package/dist/level/index.js +1 -1
- package/dist/level/renderer.d.ts.map +1 -1
- package/dist/level/system.d.ts.map +1 -1
- package/dist/lineset/definition.d.ts +1 -1
- package/dist/lineset/definition.js +8 -8
- package/dist/lineset/floorplan.d.ts +1 -1
- package/dist/lineset/floorplan.js +1 -1
- package/dist/lineset/geometry.d.ts +1 -1
- package/dist/lineset/geometry.js +1 -1
- package/dist/lineset/index.d.ts +3 -3
- package/dist/lineset/index.js +3 -3
- package/dist/lineset/move-tool.d.ts.map +1 -1
- package/dist/lineset/move-tool.js +2 -2
- package/dist/lineset/parametrics.d.ts +1 -1
- package/dist/lineset/selection.d.ts.map +1 -1
- package/dist/lineset/selection.js +1 -1
- package/dist/lineset/tool.d.ts.map +1 -1
- package/dist/lineset/tool.js +7 -8
- package/dist/liquid-line/definition.d.ts +1 -1
- package/dist/liquid-line/definition.js +8 -8
- package/dist/liquid-line/floorplan.d.ts +1 -1
- package/dist/liquid-line/floorplan.js +1 -1
- package/dist/liquid-line/geometry.d.ts +1 -1
- package/dist/liquid-line/geometry.js +1 -1
- package/dist/liquid-line/index.d.ts +4 -4
- package/dist/liquid-line/index.js +4 -4
- package/dist/liquid-line/move-tool.d.ts.map +1 -1
- package/dist/liquid-line/move-tool.js +1 -1
- package/dist/liquid-line/parametrics.d.ts +1 -1
- package/dist/liquid-line/selection.d.ts.map +1 -1
- package/dist/liquid-line/selection.js +1 -1
- package/dist/liquid-line/tool.d.ts.map +1 -1
- package/dist/liquid-line/tool.js +9 -10
- package/dist/measurement/definition.d.ts +1 -1
- package/dist/measurement/definition.js +6 -6
- package/dist/measurement/edit.d.ts +1 -1
- package/dist/measurement/floorplan-affordance.js +2 -2
- package/dist/measurement/floorplan.js +2 -2
- package/dist/measurement/index.d.ts +2 -2
- package/dist/measurement/index.js +2 -2
- package/dist/measurement/renderer.d.ts.map +1 -1
- package/dist/measurement/renderer.js +2 -2
- package/dist/measurement/selection.d.ts.map +1 -1
- package/dist/measurement/selection.js +4 -4
- package/dist/measurement/smart-surface.d.ts +1 -1
- package/dist/measurement/smart-tool.d.ts.map +1 -1
- package/dist/measurement/smart-tool.js +2 -2
- package/dist/measurement/surface-query.js +1 -1
- package/dist/measurement/tool-router.js +2 -2
- package/dist/measurement/tool.d.ts +1 -1
- package/dist/measurement/tool.d.ts.map +1 -1
- package/dist/measurement/tool.js +3 -3
- package/dist/pipe-fitting/definition.d.ts +1 -1
- package/dist/pipe-fitting/definition.js +11 -11
- package/dist/pipe-fitting/floorplan.d.ts +1 -1
- package/dist/pipe-fitting/floorplan.js +4 -4
- package/dist/pipe-fitting/geometry.d.ts +1 -1
- package/dist/pipe-fitting/geometry.js +4 -4
- package/dist/pipe-fitting/index.d.ts +4 -4
- package/dist/pipe-fitting/index.js +4 -4
- package/dist/pipe-fitting/inline-insertion.d.ts +1 -1
- package/dist/pipe-fitting/inline-insertion.d.ts.map +1 -1
- package/dist/pipe-fitting/inline-insertion.js +1 -1
- package/dist/pipe-fitting/move-tool.d.ts.map +1 -1
- package/dist/pipe-fitting/move-tool.js +3 -3
- package/dist/pipe-fitting/parametrics.d.ts +1 -1
- package/dist/pipe-fitting/parametrics.js +1 -1
- package/dist/pipe-fitting/ports.d.ts +1 -1
- package/dist/pipe-fitting/ports.js +1 -1
- package/dist/pipe-fitting/selection.d.ts.map +1 -1
- package/dist/pipe-fitting/selection.js +6 -7
- package/dist/pipe-fitting/tool.d.ts +2 -2
- package/dist/pipe-fitting/tool.d.ts.map +1 -1
- package/dist/pipe-fitting/tool.js +15 -16
- package/dist/pipe-segment/continuation.d.ts +4 -4
- package/dist/pipe-segment/continuation.d.ts.map +1 -1
- package/dist/pipe-segment/continuation.js +1 -1
- package/dist/pipe-segment/definition.d.ts +1 -1
- package/dist/pipe-segment/definition.js +11 -11
- package/dist/pipe-segment/floorplan.d.ts +1 -1
- package/dist/pipe-segment/floorplan.js +3 -3
- package/dist/pipe-segment/geometry.d.ts +1 -1
- package/dist/pipe-segment/geometry.js +2 -2
- package/dist/pipe-segment/index.d.ts +3 -3
- package/dist/pipe-segment/index.js +3 -3
- package/dist/pipe-segment/move-tool.d.ts.map +1 -1
- package/dist/pipe-segment/move-tool.js +3 -3
- package/dist/pipe-segment/parametrics.d.ts +1 -1
- package/dist/pipe-segment/parametrics.js +3 -3
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +10 -9
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +13 -14
- package/dist/pipe-trap/definition.d.ts +1 -1
- package/dist/pipe-trap/definition.js +6 -6
- package/dist/pipe-trap/floorplan.d.ts +1 -1
- package/dist/pipe-trap/floorplan.js +1 -1
- package/dist/pipe-trap/geometry.d.ts +1 -1
- package/dist/pipe-trap/geometry.js +2 -2
- package/dist/pipe-trap/index.d.ts +4 -4
- package/dist/pipe-trap/index.js +4 -4
- package/dist/pipe-trap/parametrics.d.ts +1 -1
- package/dist/pipe-trap/ports.d.ts +1 -1
- package/dist/pipe-trap/ports.js +1 -1
- package/dist/pipe-trap/tool.d.ts.map +1 -1
- package/dist/pipe-trap/tool.js +7 -8
- package/dist/procedural-item/animation.d.ts.map +1 -1
- package/dist/procedural-item/definition.d.ts.map +1 -1
- package/dist/procedural-item/definition.js +10 -8
- package/dist/procedural-item/geometry.d.ts.map +1 -1
- package/dist/procedural-item/index.d.ts +2 -2
- package/dist/procedural-item/index.js +2 -2
- package/dist/procedural-item/move-session.d.ts +1 -1
- package/dist/procedural-item/move-session.js +2 -2
- package/dist/procedural-item/move-tool.js +3 -3
- package/dist/procedural-item/renderer.js +5 -5
- package/dist/ridge-vent/definition.d.ts +1 -1
- package/dist/ridge-vent/definition.d.ts.map +1 -1
- package/dist/ridge-vent/definition.js +9 -8
- package/dist/ridge-vent/geometry.js +1 -1
- package/dist/ridge-vent/index.d.ts +3 -3
- package/dist/ridge-vent/index.js +3 -3
- package/dist/ridge-vent/move-tool.js +5 -5
- package/dist/ridge-vent/panel.js +1 -1
- package/dist/ridge-vent/parametrics.d.ts +1 -1
- package/dist/ridge-vent/parametrics.js +1 -1
- package/dist/ridge-vent/preview.d.ts +1 -1
- package/dist/ridge-vent/preview.d.ts.map +1 -1
- package/dist/ridge-vent/preview.js +2 -2
- package/dist/ridge-vent/renderer.d.ts.map +1 -1
- package/dist/ridge-vent/renderer.js +5 -4
- package/dist/ridge-vent/tool.d.ts.map +1 -1
- package/dist/ridge-vent/tool.js +8 -8
- package/dist/roof/barrel-panel.d.ts +5 -0
- package/dist/roof/barrel-panel.d.ts.map +1 -0
- package/dist/roof/barrel-panel.js +17 -0
- package/dist/roof/conical-roof.d.ts +5 -1
- package/dist/roof/conical-roof.d.ts.map +1 -1
- package/dist/roof/conical-roof.js +19 -15
- package/dist/roof/definition.d.ts +1 -1
- package/dist/roof/definition.d.ts.map +1 -1
- package/dist/roof/definition.js +18 -10
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +11 -4
- package/dist/roof/glazed-geometry.d.ts +5 -0
- package/dist/roof/glazed-geometry.d.ts.map +1 -0
- package/dist/roof/glazed-geometry.js +27 -0
- package/dist/roof/glazed-materials.d.ts +14 -0
- package/dist/roof/glazed-materials.d.ts.map +1 -0
- package/dist/roof/glazed-materials.js +42 -0
- package/dist/roof/glazing-controls.d.ts +33 -0
- package/dist/roof/glazing-controls.d.ts.map +1 -0
- package/dist/roof/glazing-controls.js +50 -0
- package/dist/roof/glazing-panel-editor.d.ts +6 -0
- package/dist/roof/glazing-panel-editor.d.ts.map +1 -0
- package/dist/roof/glazing-panel-editor.js +44 -0
- package/dist/roof/glazing-panel.d.ts +5 -0
- package/dist/roof/glazing-panel.d.ts.map +1 -0
- package/dist/roof/glazing-panel.js +41 -0
- package/dist/roof/glazing-preview.d.ts +10 -0
- package/dist/roof/glazing-preview.d.ts.map +1 -0
- package/dist/roof/glazing-preview.js +48 -0
- package/dist/roof/index.d.ts +3 -3
- package/dist/roof/index.js +3 -3
- package/dist/roof/panel.d.ts.map +1 -1
- package/dist/roof/panel.js +41 -6
- package/dist/roof/parametrics.js +1 -1
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +36 -6
- package/dist/roof/roof-footprint-source.d.ts.map +1 -1
- package/dist/roof/roof-level-target.d.ts +75 -0
- package/dist/roof/roof-level-target.d.ts.map +1 -0
- package/dist/roof/roof-level-target.js +119 -0
- package/dist/roof/roof-placement-mode.d.ts +3 -2
- package/dist/roof/roof-placement-mode.d.ts.map +1 -1
- package/dist/roof/system.d.ts +1 -2
- package/dist/roof/system.d.ts.map +1 -1
- package/dist/roof/system.js +5 -1
- package/dist/roof/tool.d.ts +3 -3
- package/dist/roof/tool.d.ts.map +1 -1
- package/dist/roof/tool.js +80 -41
- package/dist/roof-segment/definition.d.ts +1 -1
- package/dist/roof-segment/definition.d.ts.map +1 -1
- package/dist/roof-segment/definition.js +31 -62
- package/dist/roof-segment/floorplan-affordances.d.ts.map +1 -1
- package/dist/roof-segment/floorplan-affordances.js +13 -34
- package/dist/roof-segment/floorplan.d.ts.map +1 -1
- package/dist/roof-segment/floorplan.js +1 -0
- package/dist/roof-segment/index.d.ts +1 -1
- package/dist/roof-segment/index.js +1 -1
- package/dist/roof-segment/measurement.js +1 -1
- package/dist/roof-segment/paint.d.ts +4 -0
- package/dist/roof-segment/paint.d.ts.map +1 -0
- package/dist/roof-segment/paint.js +92 -0
- package/dist/roof-segment/panel.d.ts.map +1 -1
- package/dist/roof-segment/panel.js +16 -7
- package/dist/roof-segment/parametrics.d.ts +1 -1
- package/dist/roof-segment/parametrics.d.ts.map +1 -1
- package/dist/roof-segment/parametrics.js +12 -1
- package/dist/roof-segment/renderer.d.ts +1 -1
- package/dist/roof-segment/renderer.d.ts.map +1 -1
- package/dist/roof-segment/renderer.js +65 -12
- package/dist/scan/definition.d.ts +1 -1
- package/dist/scan/definition.js +4 -4
- package/dist/scan/index.d.ts +1 -1
- package/dist/scan/index.js +1 -1
- package/dist/scan/renderer.d.ts.map +1 -1
- package/dist/scan/system.d.ts.map +1 -1
- package/dist/separator/definition.js +1 -1
- package/dist/separator/renderer.js +1 -1
- package/dist/shared/accessory-placement.d.ts +1 -1
- package/dist/shared/accessory-placement.d.ts.map +1 -1
- package/dist/shared/accessory-placement.js +3 -3
- package/dist/shared/accessory-snapping.d.ts +1 -1
- package/dist/shared/accessory-snapping.d.ts.map +1 -1
- package/dist/shared/accessory-snapping.js +1 -1
- package/dist/shared/auto-fitting.d.ts +1 -1
- package/dist/shared/auto-fitting.d.ts.map +1 -1
- package/dist/shared/auto-fitting.js +3 -3
- package/dist/shared/automatic-run-end-cap.d.ts +1 -1
- package/dist/shared/automatic-run-end-cap.d.ts.map +1 -1
- package/dist/shared/automatic-run-end-cap.js +4 -4
- package/dist/shared/block-face-host.d.ts +1 -1
- package/dist/shared/connection-feedback.d.ts +1 -2
- package/dist/shared/connection-feedback.d.ts.map +1 -1
- package/dist/shared/connection-feedback.js +1 -2
- package/dist/shared/construction-dimension-standards.d.ts +1 -1
- package/dist/shared/curtain-opening-limits.js +1 -1
- package/dist/shared/draft-axis-guides.js +1 -1
- package/dist/shared/duct-adapter.d.ts +2 -2
- package/dist/shared/duct-adapter.d.ts.map +1 -1
- package/dist/shared/duct-adapter.js +3 -3
- package/dist/shared/duct-body-paint.js +1 -1
- package/dist/shared/elbow-branch-continuation.d.ts +1 -1
- package/dist/shared/elbow-branch-continuation.d.ts.map +1 -1
- package/dist/shared/elbow-branch-continuation.js +2 -2
- package/dist/shared/finish-script-model.d.ts +12 -0
- package/dist/shared/finish-script-model.d.ts.map +1 -0
- package/dist/shared/finish-script-model.js +32 -0
- package/dist/shared/fitting-deletion-cleanup.js +2 -2
- package/dist/shared/fitting-endpoint-reaim.js +3 -3
- package/dist/shared/fitting-surface-support.d.ts.map +1 -1
- package/dist/shared/fitting-surface-support.js +2 -2
- package/dist/shared/fitting-tool-options.js +1 -1
- package/dist/shared/floor-placement.d.ts.map +1 -1
- package/dist/shared/floorplan-cursor.d.ts.map +1 -1
- package/dist/shared/hosted-resize.d.ts +2 -1
- package/dist/shared/hosted-resize.d.ts.map +1 -1
- package/dist/shared/hosted-resize.js +11 -3
- package/dist/shared/item-interaction-actions.js +1 -1
- package/dist/shared/lean-to-post-omissions.d.ts +1 -1
- package/dist/shared/lean-to-post-omissions.js +1 -1
- package/dist/shared/mep-ghost.js +5 -5
- package/dist/shared/move-roof-tool.d.ts.map +1 -1
- package/dist/shared/move-roof-tool.js +129 -36
- package/dist/shared/node-batch/batchable.d.ts.map +1 -1
- package/dist/shared/node-batch/batchable.js +5 -3
- package/dist/shared/node-batch/candidates.d.ts +1 -1
- package/dist/shared/node-batch/candidates.js +1 -1
- package/dist/shared/node-batch/store.d.ts +1 -1
- package/dist/shared/node-batch/store.d.ts.map +1 -1
- package/dist/shared/node-batch/store.js +1 -1
- package/dist/shared/node-batch/system.d.ts.map +1 -1
- package/dist/shared/node-batch/system.js +22 -7
- package/dist/shared/opening-documentation.d.ts +1 -1
- package/dist/shared/opening-documentation.js +1 -1
- package/dist/shared/opening-guides-runtime.js +1 -1
- package/dist/shared/opening-move-wall-gate.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +2 -2
- package/dist/shared/opening-property-preview-host.d.ts +1 -1
- package/dist/shared/opening-property-preview.d.ts.map +1 -1
- package/dist/shared/opening-property-preview.js +1 -1
- package/dist/shared/panel-fields.js +2 -2
- package/dist/shared/path-point-affordance.js +2 -2
- package/dist/shared/pipe-run-translation-offset.d.ts +2 -2
- package/dist/shared/pipe-run-translation-offset.d.ts.map +1 -1
- package/dist/shared/pipe-run-translation-offset.js +2 -2
- package/dist/shared/pipe-vertical-offset.d.ts +2 -2
- package/dist/shared/pipe-vertical-offset.d.ts.map +1 -1
- package/dist/shared/pipe-vertical-offset.js +2 -2
- package/dist/shared/polygon-centroid-move.js +1 -1
- package/dist/shared/port-systems.d.ts +9 -0
- package/dist/shared/port-systems.d.ts.map +1 -0
- package/dist/shared/port-systems.js +10 -0
- package/dist/shared/refrigerant-line-selection.d.ts.map +1 -1
- package/dist/shared/refrigerant-line-selection.js +3 -2
- package/dist/shared/relative-roof-drag.d.ts +1 -1
- package/dist/shared/relative-roof-drag.js +2 -2
- package/dist/shared/roof-segment-hit.d.ts.map +1 -1
- package/dist/shared/roof-segment-hit.js +7 -5
- package/dist/shared/roof-surface-placement-guides.d.ts +1 -1
- package/dist/shared/roof-surface-placement-guides.js +11 -11
- package/dist/shared/roof-surface.d.ts.map +1 -1
- package/dist/shared/roof-surface.js +25 -5
- package/dist/shared/run-hanger-controls.d.ts +1 -1
- package/dist/shared/run-hanger-controls.js +1 -1
- package/dist/shared/run-hanger-inspector.d.ts +1 -1
- package/dist/shared/run-hanger-inspector.js +3 -3
- package/dist/shared/run-hangers.js +2 -2
- package/dist/shared/run-move-connectivity.d.ts.map +1 -1
- package/dist/shared/run-translation-offset.d.ts +3 -3
- package/dist/shared/run-translation-offset.d.ts.map +1 -1
- package/dist/shared/run-translation-offset.js +2 -2
- package/dist/shared/scripted-opening.d.ts +3 -3
- package/dist/shared/scripted-opening.d.ts.map +1 -1
- package/dist/shared/scripted-opening.js +1 -1
- package/dist/shared/slot-paint.js +1 -1
- package/dist/shared/surface-paint.js +2 -2
- package/dist/shared/swap-preview-material.d.ts +9 -7
- package/dist/shared/swap-preview-material.d.ts.map +1 -1
- package/dist/shared/swap-preview-material.js +18 -7
- package/dist/shared/system-check-panel.js +1 -1
- package/dist/shared/system-checks.js +2 -2
- package/dist/shared/vertical-offset.d.ts +3 -3
- package/dist/shared/vertical-offset.d.ts.map +1 -1
- package/dist/shared/vertical-offset.js +3 -3
- package/dist/shared/wall-run-move.d.ts +1 -1
- package/dist/shared/wall-run-move.d.ts.map +1 -1
- package/dist/shelf/definition.d.ts +1 -1
- package/dist/shelf/definition.d.ts.map +1 -1
- package/dist/shelf/definition.js +13 -11
- package/dist/shelf/dimensions.d.ts +1 -1
- package/dist/shelf/floorplan-affordances.js +1 -1
- package/dist/shelf/floorplan-move.js +1 -1
- package/dist/shelf/floorplan.d.ts +1 -1
- package/dist/shelf/floorplan.js +2 -2
- package/dist/shelf/geometry.d.ts +1 -1
- package/dist/shelf/geometry.js +1 -1
- package/dist/shelf/index.d.ts +3 -3
- package/dist/shelf/index.js +3 -3
- package/dist/shelf/parametrics.d.ts +1 -1
- package/dist/shelf/preview.d.ts +1 -1
- package/dist/shelf/preview.d.ts.map +1 -1
- package/dist/shelf/preview.js +1 -1
- package/dist/shelf/tool.d.ts.map +1 -1
- package/dist/shelf/tool.js +3 -3
- package/dist/site/definition.d.ts +1 -1
- package/dist/site/definition.d.ts.map +1 -1
- package/dist/site/definition.js +5 -4
- package/dist/site/generic-foundation-geometry.d.ts +16 -0
- package/dist/site/generic-foundation-geometry.d.ts.map +1 -0
- package/dist/site/generic-foundation-geometry.js +75 -0
- package/dist/site/generic-foundation.d.ts +4 -0
- package/dist/site/generic-foundation.d.ts.map +1 -0
- package/dist/site/generic-foundation.js +91 -0
- package/dist/site/ground-hole.d.ts +92 -0
- package/dist/site/ground-hole.d.ts.map +1 -0
- package/dist/site/ground-hole.js +306 -0
- package/dist/site/ground-pit-geometry.d.ts +39 -0
- package/dist/site/ground-pit-geometry.d.ts.map +1 -0
- package/dist/site/ground-pit-geometry.js +213 -0
- package/dist/site/ground-pit.d.ts +45 -0
- package/dist/site/ground-pit.d.ts.map +1 -0
- package/dist/site/ground-pit.js +175 -0
- package/dist/site/ground-veil.d.ts +39 -0
- package/dist/site/ground-veil.d.ts.map +1 -0
- package/dist/site/ground-veil.js +86 -0
- package/dist/site/ground-window-system.d.ts +9 -0
- package/dist/site/ground-window-system.d.ts.map +1 -0
- package/dist/site/ground-window-system.js +108 -0
- package/dist/site/hole-noise.d.ts +11 -0
- package/dist/site/hole-noise.d.ts.map +1 -0
- package/dist/site/hole-noise.js +79 -0
- package/dist/site/index.d.ts +1 -1
- package/dist/site/index.js +1 -1
- package/dist/site/lot-mask.d.ts +5 -3
- package/dist/site/lot-mask.d.ts.map +1 -1
- package/dist/site/lot-mask.js +9 -5
- package/dist/site/panel.d.ts.map +1 -1
- package/dist/site/panel.js +25 -1
- package/dist/site/parametrics.js +1 -1
- package/dist/site/renderer.d.ts.map +1 -1
- package/dist/site/renderer.js +136 -32
- package/dist/site/terrain-holes.d.ts +1 -1
- package/dist/site/terrain-mesh.d.ts +2 -2
- package/dist/site/terrain-mesh.js +2 -2
- package/dist/site/terrain-renderer.d.ts +3 -1
- package/dist/site/terrain-renderer.d.ts.map +1 -1
- package/dist/site/terrain-renderer.js +13 -6
- package/dist/site/underground-edge.d.ts +26 -0
- package/dist/site/underground-edge.d.ts.map +1 -0
- package/dist/site/underground-edge.js +46 -0
- package/dist/skylight/definition.d.ts +1 -1
- package/dist/skylight/definition.d.ts.map +1 -1
- package/dist/skylight/definition.js +11 -10
- package/dist/skylight/geometry.d.ts +1 -1
- package/dist/skylight/geometry.js +1 -1
- package/dist/skylight/index.d.ts +4 -4
- package/dist/skylight/index.js +4 -4
- package/dist/skylight/move-tool.js +4 -4
- package/dist/skylight/panel.js +3 -3
- package/dist/skylight/parametrics.d.ts +1 -1
- package/dist/skylight/parametrics.js +1 -1
- package/dist/skylight/preview.d.ts +1 -1
- package/dist/skylight/preview.d.ts.map +1 -1
- package/dist/skylight/preview.js +2 -2
- package/dist/skylight/renderer.d.ts.map +1 -1
- package/dist/skylight/renderer.js +5 -5
- package/dist/skylight/system.d.ts.map +1 -1
- package/dist/skylight/tool.d.ts.map +1 -1
- package/dist/skylight/tool.js +7 -7
- package/dist/slab/boundary-editor.d.ts.map +1 -1
- package/dist/slab/definition.d.ts +1 -1
- package/dist/slab/definition.d.ts.map +1 -1
- package/dist/slab/definition.js +26 -17
- package/dist/slab/floorplan-affordances.d.ts +100 -100
- package/dist/slab/floorplan-affordances.js +1 -1
- package/dist/slab/floorplan-move.js +1 -1
- package/dist/slab/geometry.js +3 -3
- package/dist/slab/hole-editor.d.ts.map +1 -1
- package/dist/slab/index.d.ts +2 -2
- package/dist/slab/index.js +2 -2
- package/dist/slab/move-tool.d.ts.map +1 -1
- package/dist/slab/move-tool.js +1 -1
- package/dist/slab/paint.d.ts +1 -1
- package/dist/slab/paint.d.ts.map +1 -1
- package/dist/slab/paint.js +6 -3
- package/dist/slab/panel.d.ts.map +1 -1
- package/dist/slab/panel.js +5 -5
- package/dist/slab/parametrics.d.ts +1 -1
- package/dist/slab/parametrics.js +1 -1
- package/dist/slab/quick-measurement.js +1 -1
- package/dist/slab/system.d.ts.map +1 -1
- package/dist/slab/system.js +1 -1
- package/dist/slab/tool.d.ts.map +1 -1
- package/dist/slab/tool.js +5 -3
- package/dist/solar-panel/definition.d.ts +1 -1
- package/dist/solar-panel/definition.d.ts.map +1 -1
- package/dist/solar-panel/definition.js +8 -7
- package/dist/solar-panel/index.d.ts +4 -4
- package/dist/solar-panel/index.js +4 -4
- package/dist/solar-panel/move-tool.js +3 -3
- package/dist/solar-panel/panel.d.ts.map +1 -1
- package/dist/solar-panel/panel.js +4 -4
- package/dist/solar-panel/parametrics.d.ts +1 -1
- package/dist/solar-panel/parametrics.js +1 -1
- package/dist/solar-panel/preview.d.ts +1 -1
- package/dist/solar-panel/preview.d.ts.map +1 -1
- package/dist/solar-panel/preview.js +2 -2
- package/dist/solar-panel/renderer.d.ts.map +1 -1
- package/dist/solar-panel/renderer.js +3 -3
- package/dist/solar-panel/tool.d.ts.map +1 -1
- package/dist/solar-panel/tool.js +7 -7
- package/dist/spawn/definition.d.ts +1 -1
- package/dist/spawn/definition.js +7 -7
- package/dist/spawn/floorplan-affordances.js +1 -1
- package/dist/spawn/floorplan.d.ts +1 -1
- package/dist/spawn/index.d.ts +2 -2
- package/dist/spawn/index.js +2 -2
- package/dist/spawn/panel.js +1 -1
- package/dist/spawn/parametrics.d.ts +1 -1
- package/dist/spawn/parametrics.js +1 -1
- package/dist/spawn/renderer.d.ts.map +1 -1
- package/dist/spawn/renderer.js +1 -1
- package/dist/spawn/tool.d.ts.map +1 -1
- package/dist/spawn/tool.js +2 -2
- package/dist/stair/baluster-geometry.d.ts +2 -2
- package/dist/stair/baluster-guard.d.ts +1 -1
- package/dist/stair/baluster-guard.d.ts.map +1 -1
- package/dist/stair/baluster-guard.js +1 -1
- package/dist/stair/boards-guard.d.ts +1 -1
- package/dist/stair/boards-guard.js +1 -1
- package/dist/stair/cable-guard.d.ts +1 -1
- package/dist/stair/cable-guard.js +1 -1
- package/dist/stair/construction-controls.js +1 -1
- package/dist/stair/continuous-railings.d.ts +1 -1
- package/dist/stair/continuous-railings.js +9 -9
- package/dist/stair/definition.d.ts +1 -1
- package/dist/stair/definition.d.ts.map +1 -1
- package/dist/stair/definition.js +23 -9
- package/dist/stair/documentation.d.ts +1 -1
- package/dist/stair/documentation.js +1 -1
- package/dist/stair/floorplan-affordances.js +1 -1
- package/dist/stair/floorplan-move.d.ts.map +1 -1
- package/dist/stair/floorplan-move.js +90 -10
- package/dist/stair/floorplan.d.ts +1 -1
- package/dist/stair/floorplan.d.ts.map +1 -1
- package/dist/stair/floorplan.js +24 -5
- package/dist/stair/glass-guard.d.ts +1 -1
- package/dist/stair/glass-guard.js +1 -1
- package/dist/stair/guard-path.d.ts.map +1 -1
- package/dist/stair/index.d.ts +1 -1
- package/dist/stair/index.js +1 -1
- package/dist/stair/metal-guard.d.ts +1 -1
- package/dist/stair/metal-guard.js +1 -1
- package/dist/stair/paint.d.ts +9 -9
- package/dist/stair/paint.d.ts.map +1 -1
- package/dist/stair/paint.js +2 -2
- package/dist/stair/panel.d.ts.map +1 -1
- package/dist/stair/panel.js +23 -9
- package/dist/stair/parametrics.js +3 -3
- package/dist/stair/post-and-rail-guard.d.ts +1 -1
- package/dist/stair/post-and-rail-guard.js +1 -1
- package/dist/stair/railing-controls.js +1 -1
- package/dist/stair/renderer.d.ts.map +1 -1
- package/dist/stair/renderer.js +108 -15
- package/dist/stair/stair-click-guard.d.ts +43 -0
- package/dist/stair/stair-click-guard.d.ts.map +1 -0
- package/dist/stair/stair-click-guard.js +44 -0
- package/dist/stair/stair-type.d.ts.map +1 -1
- package/dist/stair/stair-type.js +1 -2
- package/dist/stair/surface-move-preview.d.ts +4 -0
- package/dist/stair/surface-move-preview.d.ts.map +1 -0
- package/dist/stair/surface-move-preview.js +53 -0
- package/dist/stair/surface-transition.d.ts +9 -0
- package/dist/stair/surface-transition.d.ts.map +1 -0
- package/dist/stair/surface-transition.js +61 -0
- package/dist/stair/system.d.ts.map +1 -1
- package/dist/stair/tool.d.ts +2 -0
- package/dist/stair/tool.d.ts.map +1 -0
- package/dist/stair/tool.js +580 -0
- package/dist/stair/use-stair-render-data.d.ts +87 -85
- package/dist/stair/use-stair-render-data.d.ts.map +1 -1
- package/dist/stair-segment/definition.d.ts +1 -1
- package/dist/stair-segment/definition.d.ts.map +1 -1
- package/dist/stair-segment/definition.js +7 -10
- package/dist/stair-segment/index.d.ts +1 -1
- package/dist/stair-segment/index.js +1 -1
- package/dist/stair-segment/panel.js +3 -3
- package/dist/stair-segment/parametrics.js +2 -2
- package/dist/stair-segment/renderer.d.ts.map +1 -1
- package/dist/stair-segment/renderer.js +2 -2
- package/dist/structural-grid/definition.d.ts +1 -1
- package/dist/structural-grid/definition.js +3 -3
- package/dist/structural-grid/floorplan-tool.d.ts.map +1 -1
- package/dist/structural-grid/index.d.ts +1 -1
- package/dist/structural-grid/index.js +1 -1
- package/dist/turbine-vent/definition.d.ts +1 -1
- package/dist/turbine-vent/definition.d.ts.map +1 -1
- package/dist/turbine-vent/definition.js +9 -8
- package/dist/turbine-vent/geometry.js +1 -1
- package/dist/turbine-vent/index.d.ts +3 -3
- package/dist/turbine-vent/index.js +3 -3
- package/dist/turbine-vent/move-tool.js +4 -4
- package/dist/turbine-vent/paint.js +2 -2
- package/dist/turbine-vent/panel.js +1 -1
- package/dist/turbine-vent/parametrics.d.ts +1 -1
- package/dist/turbine-vent/parametrics.js +1 -1
- package/dist/turbine-vent/preview.d.ts +1 -1
- package/dist/turbine-vent/preview.d.ts.map +1 -1
- package/dist/turbine-vent/preview.js +2 -2
- package/dist/turbine-vent/renderer.d.ts.map +1 -1
- package/dist/turbine-vent/renderer.js +3 -3
- package/dist/turbine-vent/tool.d.ts.map +1 -1
- package/dist/turbine-vent/tool.js +7 -7
- package/dist/unit/definition.d.ts +1 -1
- package/dist/unit/definition.js +2 -2
- package/dist/unit/index.d.ts +1 -1
- package/dist/unit/index.js +1 -1
- package/dist/unit/parametrics.js +1 -1
- package/dist/unit/unit-panel.js +2 -2
- package/dist/wall/actions.js +2 -2
- package/dist/wall/construction-dimensions.d.ts +3 -3
- package/dist/wall/construction-dimensions.js +6 -6
- package/dist/wall/curtain-opening-frame.d.ts.map +1 -1
- package/dist/wall/curtain-wall-adapter.js +2 -2
- package/dist/wall/curtain-wall-floorplan.js +2 -2
- package/dist/wall/curtain-wall-geometry.d.ts.map +1 -1
- package/dist/wall/curtain-wall-geometry.js +4 -4
- package/dist/wall/curtain-wall-layout.d.ts +1 -2
- package/dist/wall/curtain-wall-layout.d.ts.map +1 -1
- package/dist/wall/curtain-wall-layout.js +1 -23
- package/dist/wall/curtain-wall-materials.d.ts.map +1 -1
- package/dist/wall/curtain-wall-materials.js +2 -1
- package/dist/wall/curtain-wall-panel.d.ts.map +1 -1
- package/dist/wall/curtain-wall-panel.js +4 -4
- package/dist/wall/curtain-wall-piece-geometry.d.ts +1 -1
- package/dist/wall/curve-tool.d.ts.map +1 -1
- package/dist/wall/definition.d.ts +1 -1
- package/dist/wall/definition.d.ts.map +1 -1
- package/dist/wall/definition.js +31 -26
- package/dist/wall/exterior.d.ts +6 -0
- package/dist/wall/exterior.d.ts.map +1 -0
- package/dist/wall/exterior.js +13 -0
- package/dist/wall/floorplan-move.js +1 -1
- package/dist/wall/floorplan-tool.js +1 -1
- package/dist/wall/floorplan.d.ts +2 -2
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +4 -4
- package/dist/wall/index.d.ts +2 -2
- package/dist/wall/index.js +2 -2
- package/dist/wall/measurement.js +1 -1
- package/dist/wall/move-endpoint-tool.d.ts.map +1 -1
- package/dist/wall/move-endpoint-tool.js +5 -6
- package/dist/wall/move-shared.js +1 -1
- package/dist/wall/move-tool.d.ts.map +1 -1
- package/dist/wall/move-tool.js +3 -4
- package/dist/wall/paint.d.ts +1 -1
- package/dist/wall/paint.d.ts.map +1 -1
- package/dist/wall/paint.js +11 -16
- package/dist/wall/panel-model.d.ts.map +1 -1
- package/dist/wall/panel-model.js +6 -6
- package/dist/wall/panel.d.ts.map +1 -1
- package/dist/wall/panel.js +50 -17
- package/dist/wall/parametrics.d.ts +1 -1
- package/dist/wall/parametrics.js +1 -1
- package/dist/wall/pointer-transparency.d.ts +1 -1
- package/dist/wall/pointer-transparency.d.ts.map +1 -1
- package/dist/wall/preview.d.ts.map +1 -1
- package/dist/wall/property-preview.d.ts.map +1 -1
- package/dist/wall/quick-measurement.js +1 -1
- package/dist/wall/rectangle-command.d.ts +235 -42
- package/dist/wall/rectangle-command.d.ts.map +1 -1
- package/dist/wall/rectangle-tool.js +1 -1
- package/dist/wall/renderer.d.ts.map +1 -1
- package/dist/wall/renderer.js +27 -8
- package/dist/wall/selection-hit-owner.d.ts.map +1 -1
- package/dist/wall/split-floorplan-layer.js +3 -3
- package/dist/wall/split-pointer.js +2 -2
- package/dist/wall/split-preview.d.ts +1 -1
- package/dist/wall/split-session.js +2 -2
- package/dist/wall/split-store.d.ts +1 -1
- package/dist/wall/split-tool.js +3 -3
- package/dist/wall/system.d.ts.map +1 -1
- package/dist/wall/system.js +6 -6
- package/dist/wall/tool.d.ts.map +1 -1
- package/dist/wall/tool.js +9 -4
- package/dist/wall/treatment-level-data.d.ts.map +1 -1
- package/dist/wall/treatments.d.ts +1 -1
- package/dist/wall/treatments.d.ts.map +1 -1
- package/dist/wall/treatments.js +11 -4
- package/dist/wall/wall-batch-system.d.ts.map +1 -1
- package/dist/wall/wall-batch-system.js +47 -5
- package/dist/window/contextual-dimensions.js +1 -1
- package/dist/window/corner-cue.d.ts +9 -0
- package/dist/window/corner-cue.d.ts.map +1 -0
- package/dist/window/corner-cue.js +31 -0
- package/dist/window/corner-fuse.d.ts +14 -0
- package/dist/window/corner-fuse.d.ts.map +1 -0
- package/dist/window/corner-fuse.js +42 -0
- package/dist/window/definition.d.ts +1 -1
- package/dist/window/definition.d.ts.map +1 -1
- package/dist/window/definition.js +31 -26
- package/dist/window/floor-projection.js +1 -1
- package/dist/window/floorplan-affordances.js +2 -2
- package/dist/window/floorplan-move.d.ts.map +1 -1
- package/dist/window/floorplan-move.js +47 -13
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +98 -56
- package/dist/window/index.d.ts +2 -2
- package/dist/window/index.js +2 -2
- package/dist/window/mechanism.js +1 -1
- package/dist/window/move-tool.d.ts.map +1 -1
- package/dist/window/move-tool.js +92 -27
- package/dist/window/paint.js +1 -1
- package/dist/window/panel.d.ts.map +1 -1
- package/dist/window/panel.js +108 -18
- package/dist/window/parametrics.d.ts +1 -1
- package/dist/window/parametrics.d.ts.map +1 -1
- package/dist/window/parametrics.js +7 -1
- package/dist/window/placement.d.ts +6 -0
- package/dist/window/placement.d.ts.map +1 -1
- package/dist/window/placement.js +26 -0
- package/dist/window/preview.d.ts +1 -1
- package/dist/window/preview.d.ts.map +1 -1
- package/dist/window/preview.js +1 -1
- package/dist/window/renderer.d.ts.map +1 -1
- package/dist/window/renderer.js +2 -2
- package/dist/window/system.d.ts.map +1 -1
- package/dist/window/system.js +1 -1
- package/dist/window/tool.d.ts.map +1 -1
- package/dist/window/tool.js +113 -28
- package/dist/window/window-math.d.ts +1 -1
- package/dist/window/window-math.js +1 -1
- package/dist/zone/definition.d.ts +1 -1
- package/dist/zone/definition.d.ts.map +1 -1
- package/dist/zone/definition.js +14 -12
- package/dist/zone/floorplan-affordances.d.ts +463 -87
- package/dist/zone/floorplan-affordances.d.ts.map +1 -1
- package/dist/zone/floorplan-affordances.js +1 -1
- package/dist/zone/floorplan-move.js +1 -1
- package/dist/zone/floorplan.js +3 -3
- package/dist/zone/index.d.ts +1 -1
- package/dist/zone/index.js +1 -1
- package/dist/zone/parametrics.js +1 -1
- package/dist/zone/quantities-panel.js +3 -3
- package/dist/zone/quick-measurement.js +1 -1
- package/dist/zone/renderer.d.ts.map +1 -1
- package/dist/zone/renderer.js +10 -2
- package/dist/zone/room-clear-dimensions.js +1 -1
- package/dist/zone/room-documentation.d.ts +1 -1
- package/dist/zone/room-documentation.js +1 -1
- package/dist/zone/system.d.ts.map +1 -1
- package/package.json +26 -13
- package/dist/shared/connection-compatibility.d.ts +0 -8
- package/dist/shared/connection-compatibility.d.ts.map +0 -1
- package/dist/shared/connection-compatibility.js +0 -28
- package/dist/shared/distribution-run-contract.d.ts +0 -49
- package/dist/shared/distribution-run-contract.d.ts.map +0 -1
- package/dist/shared/distribution-run-contract.js +0 -30
- package/dist/shared/distribution-run-tool.d.ts +0 -117
- package/dist/shared/distribution-run-tool.d.ts.map +0 -1
- package/dist/shared/distribution-run-tool.js +0 -986
- package/dist/shared/draw-alignment.d.ts +0 -25
- package/dist/shared/draw-alignment.d.ts.map +0 -1
- package/dist/shared/draw-alignment.js +0 -30
- package/dist/shared/ports.d.ts +0 -92
- package/dist/shared/ports.d.ts.map +0 -1
- package/dist/shared/ports.js +0 -305
- package/dist/shared/run-cursor.d.ts +0 -22
- package/dist/shared/run-cursor.d.ts.map +0 -1
- package/dist/shared/run-cursor.js +0 -19
- package/dist/shared/run-direction-feedback.d.ts +0 -20
- package/dist/shared/run-direction-feedback.d.ts.map +0 -1
- package/dist/shared/run-direction-feedback.js +0 -139
- package/dist/shared/run-port-snap.d.ts +0 -11
- package/dist/shared/run-port-snap.d.ts.map +0 -1
- package/dist/shared/run-port-snap.js +0 -19
- package/dist/shared/run-screen-direction.d.ts +0 -5
- package/dist/shared/run-screen-direction.d.ts.map +0 -1
- package/dist/shared/run-screen-direction.js +0 -24
- package/dist/site/setbacks.d.ts +0 -33
- package/dist/site/setbacks.d.ts.map +0 -1
- package/dist/site/setbacks.js +0 -204
package/dist/site/panel.js
CHANGED
|
@@ -140,7 +140,31 @@ export function SiteNodePanel() {
|
|
|
140
140
|
setSuggestions([]);
|
|
141
141
|
}, type: "button", children: [_jsx(MapPin, { className: "mt-0.5 size-3 shrink-0 text-muted-foreground" }), _jsx("span", { children: s.label ?? [s.line1, s.line2].filter(Boolean).join(', ') })] }) }, `${s.label}-${s.lat}-${s.lng}`))) })) : null, _jsx(ActionGroup, { children: _jsx(ActionButton, { disabled: busy, icon: _jsx(Search, { className: "size-4" }), label: busy ? 'Finding…' : 'Find parcel', onClick: findParcel }) }), status ? _jsx("p", { className: "text-muted-foreground text-xs", children: status }) : null] })) : null, node.parcel ? (_jsxs(PanelSection, { title: "Parcel", children: [_jsx(Row, { label: "APN", value: node.parcel.apn || '—' }), _jsx(Row, { label: "County", value: node.parcel.county || '—' }), _jsx(Row, { label: "Lot area", value: node.parcel.lotAreaSqFt
|
|
142
142
|
? `${Math.round(node.parcel.lotAreaSqFt).toLocaleString()} sq ft`
|
|
143
|
-
: '—' }), _jsx(Row, { label: "Source", value: node.parcel.layer || node.parcel.source || '—' }), node.parcel.notes?.length ? (_jsx("p", { className: "text-muted-foreground text-xs leading-snug", children: node.parcel.notes.join(' ') })) : null] })) : null, _jsxs(PanelSection, { title: "Setbacks", children: [setbackField('front', 'Front'), setbackField('side', 'Side'), setbackField('rear', 'Rear'), setbackField('left', 'Left (override)', true), setbackField('right', 'Right (override)', true), _jsxs("label", { className: "space-y-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "Source / citation" }), _jsx("input", { className: "w-full rounded-md border border-border/70 bg-background px-2 py-1.5 text-foreground", defaultValue: node.setbacksSource ?? '', onBlur: (event) => update({ setbacksSource: event.target.value || undefined }), placeholder: "e.g. Tampa LDC \u00A727-156" }, node.setbacksSource ?? '')] }), _jsxs("label", { className: "space-y-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "Zone" }), _jsx("input", { className: "w-full rounded-md border border-border/70 bg-background px-2 py-1.5 text-foreground", defaultValue: node.zone ?? '', onBlur: (event) => update({ zone: event.target.value || undefined }), placeholder: "e.g. RS-60" }, node.zone ?? '')] })] }), _jsxs(PanelSection, { title: "
|
|
143
|
+
: '—' }), _jsx(Row, { label: "Source", value: node.parcel.layer || node.parcel.source || '—' }), node.parcel.notes?.length ? (_jsx("p", { className: "text-muted-foreground text-xs leading-snug", children: node.parcel.notes.join(' ') })) : null] })) : null, _jsxs(PanelSection, { title: "Setbacks", children: [setbackField('front', 'Front'), setbackField('side', 'Side'), setbackField('rear', 'Rear'), setbackField('left', 'Left (override)', true), setbackField('right', 'Right (override)', true), _jsxs("label", { className: "space-y-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "Source / citation" }), _jsx("input", { className: "w-full rounded-md border border-border/70 bg-background px-2 py-1.5 text-foreground", defaultValue: node.setbacksSource ?? '', onBlur: (event) => update({ setbacksSource: event.target.value || undefined }), placeholder: "e.g. Tampa LDC \u00A727-156" }, node.setbacksSource ?? '')] }), _jsxs("label", { className: "space-y-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "Zone" }), _jsx("input", { className: "w-full rounded-md border border-border/70 bg-background px-2 py-1.5 text-foreground", defaultValue: node.zone ?? '', onBlur: (event) => update({ zone: event.target.value || undefined }), placeholder: "e.g. RS-60" }, node.zone ?? '')] })] }), _jsxs(PanelSection, { title: "Project look", children: [_jsx("p", { className: "text-muted-foreground text-xs", children: "Save the current lighting and display as this project's default. Personal display changes stay in this browser." }), _jsxs(ActionGroup, { children: [_jsx(ActionButton, { label: "Save current look", onClick: () => {
|
|
144
|
+
const viewer = useViewer.getState();
|
|
145
|
+
const look = viewer.sceneAppearance;
|
|
146
|
+
update({
|
|
147
|
+
presentation: {
|
|
148
|
+
...node.presentation,
|
|
149
|
+
theme: viewer.sceneTheme,
|
|
150
|
+
exposure: look.toneMappingExposure,
|
|
151
|
+
shading: viewer.shading,
|
|
152
|
+
edges: viewer.edges,
|
|
153
|
+
shadows: viewer.shadows,
|
|
154
|
+
lighting: {
|
|
155
|
+
background: look.background,
|
|
156
|
+
backgroundSky: look.backgroundSky,
|
|
157
|
+
ground: look.ground,
|
|
158
|
+
ambient: look.ambient,
|
|
159
|
+
hemi: look.hemi,
|
|
160
|
+
lights: look.lights,
|
|
161
|
+
environment: look.environment,
|
|
162
|
+
},
|
|
163
|
+
postprocessing: look.postprocessing,
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
viewer.resetProjectLook();
|
|
167
|
+
} }), _jsx(ActionButton, { label: "Use project look", onClick: () => useViewer.getState().resetProjectLook() })] })] }), _jsxs(PanelSection, { title: "Terrain", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm", children: [_jsx("input", { checked: node.showGround !== false, onChange: (event) => update({ showGround: event.target.checked }), type: "checkbox" }), _jsx("span", { className: "text-muted-foreground", children: "Show ground" })] }), _jsxs("label", { className: "space-y-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "Contour interval (site plan and 3D)" }), _jsxs("select", { className: "w-full rounded-md border border-border/70 bg-background px-2 py-1.5 text-foreground", onChange: (event) => update({ contourIntervalIn: Number(event.target.value) }), value: String(node.contourIntervalIn ?? 12), children: [_jsx("option", { value: "0", children: "none" }), _jsx("option", { value: "6", children: "every 6 in" }), _jsx("option", { value: "12", children: "every 12 in" }), _jsx("option", { value: "24", children: "every 24 in" })] })] }), _jsxs("label", { className: "flex items-center gap-2 text-sm", children: [_jsx("input", { checked: node.contours3d ?? false, onChange: (event) => update({ contours3d: event.target.checked }), type: "checkbox" }), _jsx("span", { className: "text-muted-foreground", children: "Show the contour lines in 3D" })] }), node.terrainContours ? (_jsxs("p", { className: "text-muted-foreground text-xs", children: [node.terrainContours.lines.length, " surveyed lines at ", node.terrainContours.intervalFt, ' ', "ft (", node.terrainContours.datum, ") \u2014 ", node.terrainContours.source ?? 'survey'] })) : (_jsx("p", { className: "text-muted-foreground text-xs", children: "No surveyed lines \u2014 contours are drawn from the sculpted ground." }))] }), _jsxs(PanelSection, { title: "Orientation", children: [_jsxs("label", { className: "space-y-1 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "Front (street) edge" }), _jsxs("select", { className: "w-full rounded-md border border-border/70 bg-background px-2 py-1.5 text-foreground", onChange: (event) => update({
|
|
144
168
|
frontEdge: event.target.value === '' ? undefined : Number(event.target.value),
|
|
145
169
|
}), value: node.frontEdge == null ? '' : String(node.frontEdge), children: [_jsx("option", { value: "", children: "Auto \u2014 most north-facing edge" }), edges.map((edge) => (_jsx("option", { value: String(edge.index), children: edge.label }, edge.index)))] })] }), _jsxs("label", { className: "flex items-center justify-between gap-3 text-sm", children: [_jsx("span", { className: "text-muted-foreground", children: "North rotation" }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx("input", { className: "w-20 rounded-md border border-border/70 bg-background px-2 py-1 text-right text-foreground", defaultValue: String(Math.round((((node.northRotation ?? 0) * 180) / Math.PI) * 10) / 10), inputMode: "decimal", onFocus: (event) => event.target.select(), onBlur: (event) => {
|
|
146
170
|
const deg = Number(event.target.value.trim());
|
package/dist/site/parametrics.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/site/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/site/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,QAAQ,EAed,MAAM,kBAAkB,CAAA;AA2KzB,eAAO,MAAM,YAAY,aAAc;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,uCAmpBxD,CAAA;eAEc,YAAY"}
|
package/dist/site/renderer.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import { sightTriangle, streetCorners, terrainContours, terrainFieldOf, unionPolygons, useLiveNodeOverrides, useLiveTerrain, useRegistry, useScene, } from '@pascal-app/core';
|
|
4
|
-
import { backdropGradient,
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { belowGradeFloorY, belowGradeFootprints, coveredBelowGradeFootprints, groundPitFloorY, intersection, sightTriangle, siteFrontEdge, siteSetbackEnvelope, streetCorners, surfaceHeightAt, terrainContours, terrainFieldOf, union, unionPolygons, useLiveNodeOverrides, useLiveTerrain, useRegistry, useScene, } from '@pascal-app/core';
|
|
4
|
+
import { backdropColors, backdropGradient, groundWindowMaskNode, NodeRenderer, SITE_GROUND, siteGroundShown, UNDERGROUND_RIM, useImmersiveXRPresentation, useNodeEvents, useSceneAtmosphere, useSceneGroundReplacement, useViewer, } from '@pascal-app/viewer';
|
|
5
5
|
import { useEffect, useMemo, useRef } from 'react';
|
|
6
6
|
import { BufferAttribute, BufferGeometry, DoubleSide, Path, Shape, ShapeGeometry, } from 'three';
|
|
7
7
|
import { cameraPosition, color, mix, positionWorld, smoothstep, float as tslFloat, vec2, } from 'three/tsl';
|
|
8
8
|
import { MeshLambertNodeMaterial } from 'three/webgpu';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
9
|
+
import { GenericFoundation } from './generic-foundation.js';
|
|
10
|
+
import { GroundHole, groundHoleColorNode, groundHoleShadowNode, solidGroundMaskNode, } from './ground-hole.js';
|
|
11
|
+
import { GroundVeil, gradeRingGeometry, gradeRingMaterial, groundVeilMaterial, horizonVeilMaterial, noopRaycast, } from './ground-veil.js';
|
|
12
|
+
import { GroundWindowSystem } from './ground-window-system.js';
|
|
13
|
+
import { buildPatternedRibbon, PROPERTY_LINE_PATTERN, SETBACK_LINE_PATTERN, updateRibbonHeights, } from './line-ribbon.js';
|
|
14
|
+
import { getRecessedSlabGroundHoles } from './recessed-slab-ground-holes.js';
|
|
15
|
+
import { buildDrapedPolyline, terrainGridKey, updateDrapedHeights, } from './terrain-drape.js';
|
|
16
|
+
import { HORIZON_PLANE_Y, terrainBlockBase } from './terrain-geometry.js';
|
|
17
|
+
import { TerrainRenderer } from './terrain-renderer.js';
|
|
15
18
|
const Y_OFFSET = 0.01;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
+
/** The flat lot's fill, just under grade; the plan's shapes lie in XY, turned to lie flat. */
|
|
20
|
+
const GROUND_FILL_POSITION = [0, -0.05, 0];
|
|
21
|
+
const FLAT_ON_THE_GROUND = [-Math.PI / 2, 0, 0];
|
|
19
22
|
/**
|
|
20
23
|
* The site boundary line, laid on the ground rather than across it.
|
|
21
24
|
*
|
|
@@ -83,14 +86,10 @@ export const SiteRenderer = ({ node }) => {
|
|
|
83
86
|
const atmosphere = useSceneAtmosphere();
|
|
84
87
|
const groundReplaced = useSceneGroundReplacement();
|
|
85
88
|
useRegistry(node.id, 'site', ref);
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
const skyColor =
|
|
89
|
-
|
|
90
|
-
return theme.backgroundSky ?? theme.background;
|
|
91
|
-
});
|
|
92
|
-
const appearance = useViewer((state) => getSceneTheme(state.sceneTheme).appearance);
|
|
93
|
-
const maxLightIntensity = useViewer((state) => Math.max(1, ...getSceneTheme(state.sceneTheme).lights.map((light) => light.intensity)));
|
|
89
|
+
const theme = useViewer((state) => state.sceneAppearance);
|
|
90
|
+
const bgColor = theme.ground;
|
|
91
|
+
const { background: backgroundColor, sky: skyColor, haze, skyDeep } = backdropColors(theme);
|
|
92
|
+
const maxLightIntensity = Math.max(1, ...theme.lights.map((light) => light.intensity));
|
|
94
93
|
const livePolygon = useLiveNodeOverrides((state) => state.overrides.get(node.id)?.polygon ?? null);
|
|
95
94
|
const polygonPoints = livePolygon?.points ?? node.polygon?.points;
|
|
96
95
|
// Persisted terrain only. A stroke is applied imperatively further down, for the
|
|
@@ -123,16 +122,73 @@ export const SiteRenderer = ({ node }) => {
|
|
|
123
122
|
}
|
|
124
123
|
return { cx, cz, radius };
|
|
125
124
|
}, [polygonPoints]);
|
|
125
|
+
// Where the ground meets the levels below grade. `all` says whether the scene has any (the
|
|
126
|
+
// ground materials carry the hole's mask from then on); `shown` is what the hole is cut over and
|
|
127
|
+
// the grade ring runs along under the veil: the level shown and the ones between it and grade, as
|
|
128
|
+
// the level display hides them. While the level shown is not below grade the last such set is
|
|
129
|
+
// kept, so a hole easing shut keeps its shape. `covered` is the part of them under the house
|
|
130
|
+
// itself, whatever level is shown: the ground stands open there (see `holes`).
|
|
131
|
+
const shownLevelId = useViewer((state) => state.hideLevelsAboveSelection ? state.selection.levelId : null);
|
|
132
|
+
const belowGrade = useViewer((state) => state.belowGrade);
|
|
133
|
+
const groundMode = useViewer((state) => state.groundMode);
|
|
134
|
+
const buriedCache = useRef({ all: [], shown: [], floorY: null, drawnFloorY: null, covered: [] });
|
|
135
|
+
const buried = useScene((state) => {
|
|
136
|
+
const prev = buriedCache.current;
|
|
137
|
+
const found = belowGradeFootprints(state.nodes);
|
|
138
|
+
const all = polygonsMatch(found, prev.all) ? prev.all : found;
|
|
139
|
+
const foundCovered = all.length > 0 ? coveredBelowGradeFootprints(state.nodes) : [];
|
|
140
|
+
const covered = polygonsMatch(foundCovered, prev.covered) ? prev.covered : foundCovered;
|
|
141
|
+
let shown = [];
|
|
142
|
+
let floorY = null;
|
|
143
|
+
let drawnFloorY = null;
|
|
144
|
+
if (all.length > 0) {
|
|
145
|
+
shown = shownLevelId ? belowGradeFootprints(state.nodes, shownLevelId) : [];
|
|
146
|
+
floorY = shownLevelId ? belowGradeFloorY(state.nodes, shownLevelId) : null;
|
|
147
|
+
drawnFloorY = shownLevelId ? groundPitFloorY(state.nodes, shownLevelId) : null;
|
|
148
|
+
if (shown.length === 0)
|
|
149
|
+
shown = prev.shown.length > 0 ? prev.shown : all;
|
|
150
|
+
floorY ??= prev.floorY;
|
|
151
|
+
drawnFloorY ??= prev.drawnFloorY;
|
|
152
|
+
}
|
|
153
|
+
if (polygonsMatch(shown, prev.shown))
|
|
154
|
+
shown = prev.shown;
|
|
155
|
+
if (all === prev.all &&
|
|
156
|
+
shown === prev.shown &&
|
|
157
|
+
floorY === prev.floorY &&
|
|
158
|
+
drawnFloorY === prev.drawnFloorY &&
|
|
159
|
+
covered === prev.covered)
|
|
160
|
+
return prev;
|
|
161
|
+
buriedCache.current = { all, shown, floorY, drawnFloorY, covered };
|
|
162
|
+
return buriedCache.current;
|
|
163
|
+
});
|
|
164
|
+
// Where the pit's walls start: the ground itself, flat or the sculpted terrain.
|
|
165
|
+
const groundTopAt = useMemo(() => (x, z) => persistedField ? surfaceHeightAt(persistedField, x, z) : GROUND_FILL_POSITION[1], [persistedField]);
|
|
126
166
|
// Lit (not Basic) so the site ground receives the directional shadow — Basic
|
|
127
167
|
// is unlit, which is why shadows used to stop dead at the slab edge. polygonOffset
|
|
128
168
|
// keeps it tucked behind the grid/slab as before.
|
|
169
|
+
// The hole's nodes are in the material from the moment the scene has a level below grade (once,
|
|
170
|
+
// not when a floor is picked), the opening a uniform; without one the materials stay plain.
|
|
171
|
+
const hasBasement = buried.all.length > 0;
|
|
129
172
|
const groundMaterial = useMemo(() => {
|
|
130
173
|
const material = new MeshLambertNodeMaterial({ color: bgColor });
|
|
131
174
|
material.polygonOffset = true;
|
|
132
175
|
material.polygonOffsetFactor = 1;
|
|
133
176
|
material.polygonOffsetUnits = 1;
|
|
177
|
+
// The ground window cuts the solid ground where it stands in the eye's way (viewer
|
|
178
|
+
// lib/ground-window), and the hole opens over a level below grade (ground-hole.tsx), its
|
|
179
|
+
// edge a noise threshold with a thin slate rim; with both closed the mask passes everywhere.
|
|
180
|
+
if (hasBasement) {
|
|
181
|
+
;
|
|
182
|
+
material.maskNode = solidGroundMaskNode();
|
|
183
|
+
material.colorNode = groundHoleColorNode(UNDERGROUND_RIM);
|
|
184
|
+
material.receivedShadowNode = groundHoleShadowNode();
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
;
|
|
188
|
+
material.maskNode = groundWindowMaskNode();
|
|
189
|
+
}
|
|
134
190
|
return material;
|
|
135
|
-
}, [bgColor]);
|
|
191
|
+
}, [bgColor, hasBasement]);
|
|
136
192
|
// Presentation horizon: a large ground disc under the lot, fading into the
|
|
137
193
|
// active fog radiance (or the theme backdrop when there is no atmosphere) so
|
|
138
194
|
// the scene sits on an "infinite" plane instead of a hard-edged plate. Never pickable.
|
|
@@ -164,25 +220,43 @@ export const SiteRenderer = ({ node }) => {
|
|
|
164
220
|
: backdropGradient({
|
|
165
221
|
dirY: viewDir.y,
|
|
166
222
|
background: color(backgroundColor),
|
|
167
|
-
haze: color(
|
|
223
|
+
haze: color(haze),
|
|
168
224
|
sky: color(skyColor),
|
|
169
|
-
skyDeep: color(
|
|
225
|
+
skyDeep: color(skyDeep),
|
|
170
226
|
});
|
|
171
227
|
material.emissiveNode = mix(color('#000000'), backdrop, fade).mul(haloFactor);
|
|
172
228
|
material.polygonOffset = true;
|
|
173
229
|
material.polygonOffsetFactor = 2;
|
|
174
230
|
material.polygonOffsetUnits = 2;
|
|
231
|
+
if (hasBasement) {
|
|
232
|
+
;
|
|
233
|
+
material.maskNode = solidGroundMaskNode();
|
|
234
|
+
material.receivedShadowNode = groundHoleShadowNode();
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
;
|
|
238
|
+
material.maskNode = groundWindowMaskNode();
|
|
239
|
+
}
|
|
175
240
|
return material;
|
|
176
241
|
}, [
|
|
242
|
+
hasBasement,
|
|
177
243
|
atmosphere,
|
|
178
244
|
bgColor,
|
|
179
245
|
backgroundColor,
|
|
180
246
|
skyColor,
|
|
181
|
-
|
|
247
|
+
haze,
|
|
248
|
+
skyDeep,
|
|
182
249
|
maxLightIntensity,
|
|
183
250
|
fadeBounds,
|
|
184
251
|
groundReplaced,
|
|
185
252
|
]);
|
|
253
|
+
// Over a level below grade the ground is drawn as a veil (ground-veil.tsx).
|
|
254
|
+
const groundVeil = useMemo(() => groundVeilMaterial(bgColor), [bgColor]);
|
|
255
|
+
useEffect(() => () => groundVeil.dispose(), [groundVeil]);
|
|
256
|
+
const horizonVeil = useMemo(() => fadeBounds && polygonPoints && !groundReplaced
|
|
257
|
+
? horizonVeilMaterial(bgColor, polygonPoints, fadeBounds)
|
|
258
|
+
: null, [bgColor, fadeBounds, polygonPoints, groundReplaced]);
|
|
259
|
+
useEffect(() => () => horizonVeil?.dispose(), [horizonVeil]);
|
|
186
260
|
// Cache computed polygons to keep the selector stable across unrelated store updates.
|
|
187
261
|
const slabPolygonsCache = useRef([]);
|
|
188
262
|
const slabPolygons = useScene((state) => {
|
|
@@ -193,6 +267,30 @@ export const SiteRenderer = ({ node }) => {
|
|
|
193
267
|
slabPolygonsCache.current = next;
|
|
194
268
|
return next;
|
|
195
269
|
});
|
|
270
|
+
// What the ground is cut open over: the recessed slabs, and the basement under the house. The
|
|
271
|
+
// house covers that part of a basement, so the ground there is open whatever level is shown:
|
|
272
|
+
// from outside nothing changes, and a stairwell, a floor opening or a walkthrough on the stair
|
|
273
|
+
// meets the basement, not a sheet of ground across it. A basement reaching out under the garden
|
|
274
|
+
// stays closed past the house (no pit in the garden) until its level is shown, and the hole of
|
|
275
|
+
// the level shown does the rest as it does. The one case it closes: the level display has the
|
|
276
|
+
// storeys away over a level below grade and the person keeps the ground Solid, nothing covers
|
|
277
|
+
// it then and Solid asks for solid ground. Clipped to the lot, as a hole past its line breaks
|
|
278
|
+
// the triangulation.
|
|
279
|
+
const coverOpen = !(belowGrade && groundMode === 'solid');
|
|
280
|
+
const holes = useMemo(() => {
|
|
281
|
+
if (!coverOpen || buried.covered.length === 0 || !polygonPoints || polygonPoints.length < 3)
|
|
282
|
+
return slabPolygons;
|
|
283
|
+
const inLot = intersection(union(buried.covered), polygonPoints);
|
|
284
|
+
const covered = inLot.filter((piece) => piece.holes.length === 0).map((piece) => piece.outer);
|
|
285
|
+
return covered.length > 0 ? [...slabPolygons, ...covered] : slabPolygons;
|
|
286
|
+
}, [coverOpen, buried.covered, polygonPoints, slabPolygons]);
|
|
287
|
+
const gradeRings = useMemo(() => buried.shown.map((outline) => gradeRingGeometry(outline, persistedField)), [buried.shown, persistedField]);
|
|
288
|
+
useEffect(() => () => {
|
|
289
|
+
for (const ring of gradeRings)
|
|
290
|
+
ring.dispose();
|
|
291
|
+
}, [gradeRings]);
|
|
292
|
+
const gradeRing = useMemo(gradeRingMaterial, []);
|
|
293
|
+
useEffect(() => () => gradeRing.dispose(), [gradeRing]);
|
|
196
294
|
// Ground shape: site polygon with slab footprints punched as holes
|
|
197
295
|
const groundShape = useMemo(() => {
|
|
198
296
|
if (!polygonPoints || polygonPoints.length < 3)
|
|
@@ -203,9 +301,9 @@ export const SiteRenderer = ({ node }) => {
|
|
|
203
301
|
for (let i = 1; i < pts.length; i++)
|
|
204
302
|
shape.lineTo(pts[i][0], -pts[i][1]);
|
|
205
303
|
shape.closePath();
|
|
206
|
-
addSlabHoles(shape,
|
|
304
|
+
addSlabHoles(shape, holes);
|
|
207
305
|
return shape;
|
|
208
|
-
}, [polygonPoints,
|
|
306
|
+
}, [polygonPoints, holes]);
|
|
209
307
|
// With terrain the lot is a block — its ground cut to the property line, its
|
|
210
308
|
// skirt dropping to one flat base — and the disc lies just under that base, so
|
|
211
309
|
// nothing of it caps the lot and nothing of the block stands proud of it from
|
|
@@ -223,9 +321,9 @@ export const SiteRenderer = ({ node }) => {
|
|
|
223
321
|
shape.lineTo(Math.cos(angle) * radius, Math.sin(angle) * radius);
|
|
224
322
|
}
|
|
225
323
|
shape.closePath();
|
|
226
|
-
addSlabHoles(shape,
|
|
324
|
+
addSlabHoles(shape, holes, fadeBounds.cx, fadeBounds.cz);
|
|
227
325
|
return new ShapeGeometry(shape);
|
|
228
|
-
}, [fadeBounds,
|
|
326
|
+
}, [fadeBounds, holes, groundReplaced]);
|
|
229
327
|
useEffect(() => () => horizonGeometry?.dispose(), [horizonGeometry]);
|
|
230
328
|
useEffect(() => () => horizonMaterial?.dispose(), [horizonMaterial]);
|
|
231
329
|
// Boundary line geometry, subdivided against the terrain grid when there is one.
|
|
@@ -263,12 +361,14 @@ export const SiteRenderer = ({ node }) => {
|
|
|
263
361
|
let envelopeGeometry = null;
|
|
264
362
|
const triangleGeometries = [];
|
|
265
363
|
const points = polygonPoints.map(([x, z]) => [x ?? 0, z ?? 0]);
|
|
266
|
-
|
|
364
|
+
// the live ring, measured the one way the site plan and the agents measure it
|
|
365
|
+
const lot = { ...node, polygon: { type: 'polygon', points } };
|
|
366
|
+
const front = siteFrontEdge(lot);
|
|
267
367
|
const streetEdges = node.streetEdges ?? [];
|
|
268
368
|
const sightTriangleM = typeof node.sightTriangleFt === 'number' && node.sightTriangleFt > 0
|
|
269
369
|
? node.sightTriangleFt * 0.3048
|
|
270
370
|
: 0;
|
|
271
|
-
const envelope =
|
|
371
|
+
const envelope = siteSetbackEnvelope(lot);
|
|
272
372
|
if (envelope.length >= 3) {
|
|
273
373
|
const draped = buildDrapedPolyline({
|
|
274
374
|
points: envelope,
|
|
@@ -426,11 +526,15 @@ export const SiteRenderer = ({ node }) => {
|
|
|
426
526
|
// drops the parcel's own presentation — ground fill, sculpted ground, lot
|
|
427
527
|
// line — while everything standing on the site keeps its own flag (the
|
|
428
528
|
// exporter and the 2D plan draw the same line). The horizon disc is a world
|
|
429
|
-
// backdrop rather than part of the parcel, so
|
|
529
|
+
// backdrop rather than part of the parcel, so `visible` does not hide it.
|
|
530
|
+
// `showGround` hides both ground and horizon when authored geometry supplies them, unless a level
|
|
531
|
+
// below grade is shown: the level display hides that geometry then, and the ground stands in.
|
|
430
532
|
const showSiteSurfaces = node.visible !== false;
|
|
533
|
+
const showGround = siteGroundShown(node, { belowGrade });
|
|
431
534
|
if (!(node && lineGeometry)) {
|
|
432
535
|
return null;
|
|
433
536
|
}
|
|
434
|
-
return (_jsxs("group", { ref: ref, ...handlers, children: [(
|
|
537
|
+
return (_jsxs("group", { ref: ref, ...handlers, children: [_jsx(GroundWindowSystem, {}), _jsx(GenericFoundation, {}), _jsx(GroundHole, { drawnFloorY: buried.drawnFloorY, floorY: buried.floorY, footprints: buried.shown, present: hasBasement, topAt: groundTopAt, topsoil: bgColor, topY: GROUND_FILL_POSITION[1] }), (node.children ?? []).map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))), showSiteSurfaces && showGround && showTerrain && (_jsx(TerrainRenderer, { holes: holes, material: groundMaterial, polygon: polygonPoints, site: node, veil: groundVeil })), showSiteSurfaces && showGround && groundGeometry && !showTerrain && (_jsxs(_Fragment, { children: [_jsx("mesh", { geometry: groundGeometry, material: groundMaterial, position: GROUND_FILL_POSITION, receiveShadow: true, rotation: FLAT_ON_THE_GROUND, userData: { [SITE_GROUND]: 'solid' } }), _jsx(GroundVeil, { geometry: groundGeometry, material: groundVeil, position: GROUND_FILL_POSITION, rotation: FLAT_ON_THE_GROUND })] })), showGround && !immersiveXR && horizonGeometry && horizonMaterial && fadeBounds && (_jsx("mesh", { geometry: horizonGeometry, material: horizonMaterial, position: [fadeBounds.cx, horizonY, fadeBounds.cz], raycast: noopRaycast, receiveShadow: true, rotation: FLAT_ON_THE_GROUND, userData: { pascalExport: 'strip', [SITE_GROUND]: 'solid' } })), showGround && !immersiveXR && horizonGeometry && horizonVeil && fadeBounds && (_jsx(GroundVeil, { geometry: horizonGeometry, material: horizonVeil, position: [fadeBounds.cx, horizonY, fadeBounds.cz], rotation: FLAT_ON_THE_GROUND })), showSiteSurfaces &&
|
|
538
|
+
gradeRings.map((geometry, index) => (_jsx(GroundVeil, { geometry: geometry, material: gradeRing, shows: "veiled" }, index))), showSiteSurfaces && ribbons && (_jsxs(_Fragment, { children: [_jsx("mesh", { frustumCulled: false, geometry: ribbons.property, raycast: noopRaycast, renderOrder: 9, children: _jsx("meshBasicMaterial", { color: "#1c1917", depthWrite: false, side: DoubleSide, toneMapped: false }) }), ribbons.envelope && (_jsx("mesh", { frustumCulled: false, geometry: ribbons.envelope, raycast: noopRaycast, renderOrder: 9, children: _jsx("meshBasicMaterial", { color: "#000000", depthWrite: false, opacity: 0.85, side: DoubleSide, toneMapped: false, transparent: true }) })), ribbons.triangles.map((g, i) => (_jsx("mesh", { frustumCulled: false, geometry: g, raycast: noopRaycast, renderOrder: 9, children: _jsx("meshBasicMaterial", { color: "#000000", depthWrite: false, opacity: 0.85, side: DoubleSide, toneMapped: false, transparent: true }) }, i))), _jsx("line", { frustumCulled: false, geometry: lineGeometry, renderOrder: 8, children: _jsx("lineBasicMaterial", { color: "#1c1917", opacity: 0.5, transparent: true }) })] })), showSiteSurfaces && !ribbons && (_jsx("line", { frustumCulled: false, geometry: lineGeometry, renderOrder: 9, children: _jsx("lineBasicMaterial", { color: "#f59e0b", linewidth: 2, opacity: 0.6, transparent: true }) })), showSiteSurfaces && contourGeometry && (_jsx("lineSegments", { frustumCulled: false, geometry: contourGeometry, raycast: noopRaycast, renderOrder: 8, children: _jsx("lineBasicMaterial", { color: "#000000", depthWrite: false, opacity: 0.22, toneMapped: false, transparent: true }) }))] }));
|
|
435
539
|
};
|
|
436
540
|
export default SiteRenderer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Ring } from '@pascal-app/core';
|
|
2
2
|
import { BufferGeometry } from 'three';
|
|
3
|
-
import type { TerrainMeshBuffers } from './terrain-geometry';
|
|
3
|
+
import type { TerrainMeshBuffers } from './terrain-geometry.js';
|
|
4
4
|
type Sample = {
|
|
5
5
|
indices: number[];
|
|
6
6
|
weights: number[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HeightPatch, Ring, TerrainField } from '@pascal-app/core';
|
|
2
2
|
import { BufferGeometry } from 'three';
|
|
3
|
-
import { type TerrainMeshBuffers, type TerrainSkirtBuffers } from './terrain-geometry';
|
|
4
|
-
import { type TerrainHoleBoundary } from './terrain-holes';
|
|
3
|
+
import { type TerrainMeshBuffers, type TerrainSkirtBuffers } from './terrain-geometry.js';
|
|
4
|
+
import { type TerrainHoleBoundary } from './terrain-holes.js';
|
|
5
5
|
/**
|
|
6
6
|
* The Three.js side of the terrain heightfield: owns the `BufferGeometry` and the
|
|
7
7
|
* dirty-rect upload.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BufferAttribute, BufferGeometry, DynamicDrawUsage, Sphere } from 'three';
|
|
2
|
-
import { buildTerrainMesh, buildTerrainSkirt, HORIZON_PLANE_Y, patchUpdateRange, SKIRT_DROP, updateTerrainMesh, updateTerrainSkirt, } from './terrain-geometry';
|
|
3
|
-
import { cutTerrainHoles, updateTerrainHoleBoundary, } from './terrain-holes';
|
|
2
|
+
import { buildTerrainMesh, buildTerrainSkirt, HORIZON_PLANE_Y, patchUpdateRange, SKIRT_DROP, updateTerrainMesh, updateTerrainSkirt, } from './terrain-geometry.js';
|
|
3
|
+
import { cutTerrainHoles, updateTerrainHoleBoundary, } from './terrain-holes.js';
|
|
4
4
|
/**
|
|
5
5
|
* `ring` (from `skirtRing`) runs the skirt along the lot's property line instead
|
|
6
6
|
* of the field's rectangle: the surface is cut to the lot by its material (see
|
|
@@ -19,9 +19,11 @@ import type { Material } from 'three';
|
|
|
19
19
|
* the editor layer, but moving actual scene geometry there would exclude it from
|
|
20
20
|
* the MRT depth/normal pass and break the screen-space ink against it.
|
|
21
21
|
*/
|
|
22
|
-
export declare const TerrainRenderer: ({ material, site, holes, polygon, }: {
|
|
22
|
+
export declare const TerrainRenderer: ({ material, veil, site, holes, polygon, }: {
|
|
23
23
|
/** Owned by `SiteRenderer` so the ground material stays defined in one place. */
|
|
24
24
|
material: Material;
|
|
25
|
+
/** The veil drawn in the ground's place over a level below grade, owned there too. */
|
|
26
|
+
veil: Material;
|
|
25
27
|
site: SiteNode;
|
|
26
28
|
holes: Ring[];
|
|
27
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terrain-renderer.d.ts","sourceRoot":"","sources":["../../src/site/terrain-renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAkC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"terrain-renderer.d.ts","sourceRoot":"","sources":["../../src/site/terrain-renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAkC,MAAM,kBAAkB,CAAA;AAG3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAYrC;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,8CAMzB;IACD,iFAAiF;IACjF,QAAQ,EAAE,QAAQ,CAAA;IAClB,sFAAsF;IACtF,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,IAAI,EAAE,CAAA;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;CAC1D,uCA+GA,CAAA;eAEc,eAAe"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { terrainFieldOf, useLiveTerrain } from '@pascal-app/core';
|
|
4
|
+
import { SITE_GROUND } from '@pascal-app/viewer';
|
|
4
5
|
import { useEffect, useMemo, useRef } from 'react';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { GroundVeil } from './ground-veil.js';
|
|
7
|
+
import { lotMaskedMaterial } from './lot-mask.js';
|
|
8
|
+
import { skirtRing } from './terrain-geometry.js';
|
|
9
|
+
import { applyTerrainPatch, createTerrainGeometry, disposeTerrainGeometry, needsRebuild, } from './terrain-mesh.js';
|
|
8
10
|
/**
|
|
9
11
|
* Renders the site's sculpted ground.
|
|
10
12
|
*
|
|
@@ -24,7 +26,7 @@ import { applyTerrainPatch, createTerrainGeometry, disposeTerrainGeometry, needs
|
|
|
24
26
|
* the editor layer, but moving actual scene geometry there would exclude it from
|
|
25
27
|
* the MRT depth/normal pass and break the screen-space ink against it.
|
|
26
28
|
*/
|
|
27
|
-
export const TerrainRenderer = ({ material, site, holes, polygon, }) => {
|
|
29
|
+
export const TerrainRenderer = ({ material, veil, site, holes, polygon, }) => {
|
|
28
30
|
const targetRef = useRef(null);
|
|
29
31
|
// Persisted terrain only — the live stroke is applied imperatively below, so a
|
|
30
32
|
// dab never triggers a React render.
|
|
@@ -43,6 +45,11 @@ export const TerrainRenderer = ({ material, site, holes, polygon, }) => {
|
|
|
43
45
|
if (surfaceMaterial !== material)
|
|
44
46
|
surfaceMaterial.dispose();
|
|
45
47
|
}, [surfaceMaterial, material]);
|
|
48
|
+
const surfaceVeil = useMemo(() => (polygon && polygon.length >= 3 ? lotMaskedMaterial(veil, polygon) : veil), [veil, polygon]);
|
|
49
|
+
useEffect(() => () => {
|
|
50
|
+
if (surfaceVeil !== veil)
|
|
51
|
+
surfaceVeil.dispose();
|
|
52
|
+
}, [surfaceVeil, veil]);
|
|
46
53
|
targetRef.current = target;
|
|
47
54
|
useEffect(() => () => {
|
|
48
55
|
if (target)
|
|
@@ -74,6 +81,6 @@ export const TerrainRenderer = ({ material, site, holes, polygon, }) => {
|
|
|
74
81
|
}, [site.id]);
|
|
75
82
|
if (!target)
|
|
76
83
|
return null;
|
|
77
|
-
return (_jsxs(_Fragment, { children: [_jsx("mesh", { castShadow: true, geometry: target.geometry, material: surfaceMaterial, receiveShadow: true }), target.holeBoundary && (_jsx("mesh", { castShadow: true, geometry: target.holeBoundary.geometry, material: surfaceMaterial, receiveShadow: true })), _jsx("mesh", { geometry: target.skirt.geometry, material: material, receiveShadow: true })] }));
|
|
84
|
+
return (_jsxs(_Fragment, { children: [_jsx("mesh", { castShadow: true, geometry: target.geometry, material: surfaceMaterial, receiveShadow: true, userData: { [SITE_GROUND]: 'solid' } }), _jsx(GroundVeil, { geometry: target.geometry, material: surfaceVeil }), target.holeBoundary && (_jsxs(_Fragment, { children: [_jsx("mesh", { castShadow: true, geometry: target.holeBoundary.geometry, material: surfaceMaterial, receiveShadow: true, userData: { [SITE_GROUND]: 'solid' } }), _jsx(GroundVeil, { geometry: target.holeBoundary.geometry, material: surfaceVeil })] })), _jsx("mesh", { geometry: target.skirt.geometry, material: material, receiveShadow: true, userData: { [SITE_GROUND]: 'solid' } }), _jsx(GroundVeil, { geometry: target.skirt.geometry, material: veil })] }));
|
|
78
85
|
};
|
|
79
86
|
export default TerrainRenderer;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { UndergroundEdge } from '@pascal-app/viewer';
|
|
2
|
+
/**
|
|
3
|
+
* The hole's edge looks (`UndergroundEdge`), as numbers: the ground's mask and its rim read them
|
|
4
|
+
* as uniforms and the pit's walls as uniforms and a CPU contour, so changing the look compiles
|
|
5
|
+
* nothing. `noise` is the shipped one; the others are variants to choose from.
|
|
6
|
+
*/
|
|
7
|
+
export type EdgeLook = {
|
|
8
|
+
/** The hole's base margin around the footprint, in metres. */
|
|
9
|
+
margin: number;
|
|
10
|
+
/** How far the noise moves the edge in or out of the margin, in metres (0: a constant offset). */
|
|
11
|
+
erode: number;
|
|
12
|
+
/** Noise cells per metre on the ground, of the broadest octave. */
|
|
13
|
+
scale: number;
|
|
14
|
+
/** The soft shade on the ground side of the cut: its width in metres and how dark it gets. */
|
|
15
|
+
featherWidth: number;
|
|
16
|
+
featherStrength: number;
|
|
17
|
+
/** The thin line along the cut: its width in metres and colour. */
|
|
18
|
+
lineWidth: number;
|
|
19
|
+
lineColor: string;
|
|
20
|
+
/** How far (m) the pit's walls are roughened sideways in depth. */
|
|
21
|
+
crumble: number;
|
|
22
|
+
/** 1: the wall is a flat section face with a line at grade, not strata under a topsoil layer. */
|
|
23
|
+
section: number;
|
|
24
|
+
};
|
|
25
|
+
export declare const EDGE_LOOKS: Record<UndergroundEdge, EdgeLook>;
|
|
26
|
+
//# sourceMappingURL=underground-edge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"underground-edge.d.ts","sourceRoot":"","sources":["../../src/site/underground-edge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,kGAAkG;IAClG,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,8FAA8F;IAC9F,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,CA6CxD,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export const EDGE_LOOKS = {
|
|
2
|
+
noise: {
|
|
3
|
+
margin: 1.6,
|
|
4
|
+
erode: 0.9,
|
|
5
|
+
scale: 0.6,
|
|
6
|
+
featherWidth: 0.55,
|
|
7
|
+
featherStrength: 0.6,
|
|
8
|
+
lineWidth: 0.09,
|
|
9
|
+
lineColor: '#f4f4f4',
|
|
10
|
+
crumble: 0.9,
|
|
11
|
+
section: 0,
|
|
12
|
+
},
|
|
13
|
+
quiet: {
|
|
14
|
+
margin: 1.6,
|
|
15
|
+
erode: 0.15,
|
|
16
|
+
scale: 2.4,
|
|
17
|
+
featherWidth: 0.55,
|
|
18
|
+
featherStrength: 0.6,
|
|
19
|
+
lineWidth: 0.09,
|
|
20
|
+
lineColor: '#f4f4f4',
|
|
21
|
+
crumble: 0.25,
|
|
22
|
+
section: 0,
|
|
23
|
+
},
|
|
24
|
+
section: {
|
|
25
|
+
margin: 0.6,
|
|
26
|
+
erode: 0,
|
|
27
|
+
scale: 0.6,
|
|
28
|
+
featherWidth: 0.25,
|
|
29
|
+
featherStrength: 0.4,
|
|
30
|
+
lineWidth: 0.07,
|
|
31
|
+
lineColor: '#2b2b2b',
|
|
32
|
+
crumble: 0,
|
|
33
|
+
section: 1,
|
|
34
|
+
},
|
|
35
|
+
'section-earth': {
|
|
36
|
+
margin: 0.6,
|
|
37
|
+
erode: 0,
|
|
38
|
+
scale: 0.6,
|
|
39
|
+
featherWidth: 0.25,
|
|
40
|
+
featherStrength: 0.4,
|
|
41
|
+
lineWidth: 0.07,
|
|
42
|
+
lineColor: '#2b2b2b',
|
|
43
|
+
crumble: 0.25,
|
|
44
|
+
section: 0,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type NodeDefinition } from '@pascal-app/core';
|
|
2
|
-
import { SkylightNode } from './schema';
|
|
2
|
+
import { SkylightNode } from './schema.js';
|
|
3
3
|
/**
|
|
4
4
|
* Skylight — a framed glass opening hosted on a roof segment. All five
|
|
5
5
|
* type variants (flat / walk-on / lantern / opening / sliding) render
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/skylight/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAA;AASzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAoMvC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,OAAO,YAAY,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/skylight/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAA;AASzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAoMvC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,OAAO,YAAY,CAmFlE,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SkylightNode as SkylightNodeSchema, } from '@pascal-app/core';
|
|
2
|
-
import { buildSkylightFloorplan } from './floorplan';
|
|
3
|
-
import { closeSkylightOpenState, isOperableSkylightNode, toggleSkylightOpenState, } from './interaction';
|
|
4
|
-
import { skylightParametrics } from './parametrics';
|
|
5
|
-
import { buildSkylightRoofCut } from './roof-cut';
|
|
6
|
-
import { SkylightNode } from './schema';
|
|
2
|
+
import { buildSkylightFloorplan } from './floorplan.js';
|
|
3
|
+
import { closeSkylightOpenState, isOperableSkylightNode, toggleSkylightOpenState, } from './interaction.js';
|
|
4
|
+
import { skylightParametrics } from './parametrics.js';
|
|
5
|
+
import { buildSkylightRoofCut } from './roof-cut.js';
|
|
6
|
+
import { SkylightNode } from './schema.js';
|
|
7
7
|
// In-world handle constants. Offsets are measured from the skylight's
|
|
8
8
|
// edge to the arrow's CENTER, so they need to clear half the chevron's
|
|
9
9
|
// own length (~13 cm at default scale) plus the frame's outward depth
|
|
@@ -212,6 +212,7 @@ export const skylightDefinition = {
|
|
|
212
212
|
return rest;
|
|
213
213
|
},
|
|
214
214
|
capabilities: {
|
|
215
|
+
exterior: true,
|
|
215
216
|
selectable: { hitVolume: 'bbox' },
|
|
216
217
|
duplicable: true,
|
|
217
218
|
deletable: true,
|
|
@@ -229,16 +230,16 @@ export const skylightDefinition = {
|
|
|
229
230
|
rendersChildren: false,
|
|
230
231
|
renderer: {
|
|
231
232
|
kind: 'parametric',
|
|
232
|
-
module: () => import('./renderer'),
|
|
233
|
+
module: () => import('./renderer.js'),
|
|
233
234
|
},
|
|
234
|
-
preview: () => import('./preview'),
|
|
235
|
+
preview: () => import('./preview.js'),
|
|
235
236
|
system: {
|
|
236
|
-
module: () => import('./system'),
|
|
237
|
+
module: () => import('./system.js'),
|
|
237
238
|
priority: 3,
|
|
238
239
|
},
|
|
239
|
-
tool: () => import('./tool'),
|
|
240
|
+
tool: () => import('./tool.js'),
|
|
240
241
|
affordanceTools: {
|
|
241
|
-
move: () => import('./move-tool'),
|
|
242
|
+
move: () => import('./move-tool.js'),
|
|
242
243
|
},
|
|
243
244
|
toolHints: [
|
|
244
245
|
{ key: 'Left click', label: 'Place skylight on roof' },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import { getAnalyticalNormal, getSurfaceY } from '../shared/roof-surface';
|
|
2
|
+
import { getAnalyticalNormal, getSurfaceY } from '../shared/roof-surface.js';
|
|
3
3
|
export { getAnalyticalNormal, getSurfaceY };
|
|
4
4
|
export declare function paneSize(value: number): number;
|
|
5
5
|
export declare function clamp01(value: number): number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import { getAnalyticalNormal, getSurfaceY } from '../shared/roof-surface';
|
|
2
|
+
import { getAnalyticalNormal, getSurfaceY } from '../shared/roof-surface.js';
|
|
3
3
|
export { getAnalyticalNormal, getSurfaceY };
|
|
4
4
|
export function paneSize(value) {
|
|
5
5
|
return Math.max(0.02, value);
|
package/dist/skylight/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { skylightDefinition } from './definition';
|
|
2
|
-
export { buildFrameGeometry } from './frame-csg';
|
|
3
|
-
export { buildLanternGlassGeometry } from './geometry';
|
|
4
|
-
export { SkylightNode } from './schema';
|
|
1
|
+
export { skylightDefinition } from './definition.js';
|
|
2
|
+
export { buildFrameGeometry } from './frame-csg.js';
|
|
3
|
+
export { buildLanternGlassGeometry } from './geometry.js';
|
|
4
|
+
export { SkylightNode } from './schema.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|